From 78a93bc386c516c84390952c0a36ce66fbd3aaf4 Mon Sep 17 00:00:00 2001 From: Michiel van Baak Date: Thu, 7 Aug 2008 21:19:39 +0000 Subject: 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: https://origsvn.digium.com/svn/asterisk/trunk@136679 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_skinny.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'channels/chan_skinny.c') 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; -- cgit v1.2.3