aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-07 21:19:39 +0000
committermvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-07 21:19:39 +0000
commit4050034860c1eb09e775087f7f65adfa142311fb (patch)
tree73713dd7e417226e1c9b15fdf9a6a449110fefd4
parentcc06499d99b2c68648281f622ca63fbe4e286d82 (diff)
show correct called party id and also store this to the 'placed calls' list once the call is connected.
(closes issue #13180) Reported by: pj Patches: 2008080700_skinny_calledpartyid.diff uploaded by mvanbaak (license 7) Tested by: mvanbaak, pj git-svn-id: http://svn.digium.com/svn/asterisk/trunk@136679 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_skinny.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index bd2ff6c04..b59598721 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -3523,9 +3523,6 @@ static int skinny_answer(struct ast_channel *ast)
struct skinny_subchannel *sub = ast->tech_pvt;
struct skinny_line *l = sub->parent;
struct skinny_device *d = l->parent;
- char exten[AST_MAX_EXTENSION] = "";
-
- ast_copy_string(exten, S_OR(ast->macroexten, ast->exten), sizeof(exten));
if (sub->blindxfer) {
if (skinnydebug)
@@ -3550,10 +3547,10 @@ static int skinny_answer(struct ast_channel *ast)
/* order matters here...
for some reason, transmit_callinfo must be before transmit_callstate,
or you won't get keypad messages in some situations. */
- transmit_callinfo(d, ast->cid.cid_name, ast->cid.cid_num, exten, exten, l->instance, sub->callid, 2);
+ transmit_callinfo(d, ast->cid.cid_name, ast->cid.cid_num, l->lastnumberdialed, l->lastnumberdialed, l->instance, sub->callid, 2);
transmit_callstateonly(d, sub, SKINNY_CONNECTED);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_CONNECTED);
- transmit_dialednumber(d, exten, l->instance, sub->callid);
+ transmit_dialednumber(d, l->lastnumberdialed, l->instance, sub->callid);
transmit_displaypromptstatus(d, "Connected", 0, l->instance, sub->callid);
l->activesub = sub;
return res;
@@ -3822,15 +3819,12 @@ static int skinny_indicate(struct ast_channel *ast, int ind, const void *data, s
struct skinny_line *l = sub->parent;
struct skinny_device *d = l->parent;
struct skinnysession *s = d->session;
- char exten[AST_MAX_EXTENSION] = "";
if (!s) {
ast_log(LOG_NOTICE, "Asked to indicate '%s' condition on channel %s, but session does not exist.\n", control2str(ind), ast->name);
return -1;
}
- ast_copy_string(exten, S_OR(ast->macroexten, ast->exten), sizeof(exten));
-
if (skinnydebug)
ast_verb(3, "Asked to indicate '%s' condition on channel %s\n", control2str(ind), ast->name);
switch(ind) {
@@ -3847,9 +3841,9 @@ static int skinny_indicate(struct ast_channel *ast, int ind, const void *data, s
transmit_tone(d, SKINNY_ALERT, l->instance, sub->callid);
}
transmit_callstateonly(d, sub, SKINNY_RINGOUT);
- transmit_dialednumber(d, exten, l->instance, sub->callid);
+ transmit_dialednumber(d, l->lastnumberdialed, l->instance, sub->callid);
transmit_displaypromptstatus(d, "Ring Out", 0, l->instance, sub->callid);
- transmit_callinfo(d, ast->cid.cid_name, ast->cid.cid_num, exten, exten, l->instance, sub->callid, 2); /* 2 = outgoing from phone */
+ transmit_callinfo(d, ast->cid.cid_name, ast->cid.cid_num, l->lastnumberdialed, l->lastnumberdialed, l->instance, sub->callid, 2); /* 2 = outgoing from phone */
sub->ringing = 1;
if (!d->earlyrtp) {
break;
@@ -3890,7 +3884,7 @@ static int skinny_indicate(struct ast_channel *ast, int ind, const void *data, s
}
transmit_callstateonly(d, sub, SKINNY_PROGRESS);
transmit_displaypromptstatus(d, "Call Progress", 0, l->instance, sub->callid);
- transmit_callinfo(d, ast->cid.cid_name, ast->cid.cid_num, exten, exten, l->instance, sub->callid, 2); /* 2 = outgoing from phone */
+ transmit_callinfo(d, ast->cid.cid_name, ast->cid.cid_num, l->lastnumberdialed, l->lastnumberdialed, l->instance, sub->callid, 2); /* 2 = outgoing from phone */
sub->progress = 1;
if (!d->earlyrtp) {
break;