From: Jason Parker Date: Sat, 24 Feb 2007 02:04:34 +0000 (+0000) Subject: Merged revisions 56569 via svnmerge from X-Git-Tag: 1.6.0-beta1~3^2~3116 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=639aee2ec713de64a565b944333a427ef44ab699;p=thirdparty%2Fasterisk.git Merged revisions 56569 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r56569 | qwell | 2007-02-23 20:02:53 -0600 (Fri, 23 Feb 2007) | 4 lines Make sure to set a speeddials parent on creation. Don't crash if hold is pressed when no call is active. Don't return in places that we shouldn't.. Update softkey map when call is connected ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@56574 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 9de13427eb..fb658f76e7 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -2108,6 +2108,8 @@ static struct skinny_device *build_device(const char *cat, struct ast_variable * ast_copy_string(sd->label, exten, sizeof(sd->label)); sd->instance = speeddialInstance++; + sd->parent = d; + sd->next = d->speeddials; d->speeddials = sd; } @@ -2466,6 +2468,7 @@ static int skinny_answer(struct ast_channel *ast) or you won't get keypad messages in some situations. */ transmit_callinfo(s, ast->cid.cid_name, ast->cid.cid_num, ast->exten, ast->exten, l->instance, sub->callid, 2); transmit_callstate(s, l->instance, SKINNY_CONNECTED, sub->callid); + transmit_selectsoftkeys(s, l->instance, sub->callid, KEYDEF_CONNECTED); transmit_displaypromptstatus(s, "Connected", 0, l->instance, sub->callid); return res; } @@ -3086,6 +3089,9 @@ static int handle_stimulus_message(struct skinny_req *req, struct skinnysession if (skinnydebug) ast_verbose("Received Stimulus: Hold(%d)\n", instance); + if (!sub) + break; + if (sub->onhold) { skinny_unhold(sub); } else { @@ -3757,7 +3763,7 @@ static int handle_soft_key_event_message(struct skinny_req *req, struct skinnyse if (ast_strlen_zero(l->lastnumberdialed)) { ast_log(LOG_WARNING, "Attempted redial, but no previously dialed number found.\n"); - return 0; + break; } if (!ast_ignore_pattern(c->context, l->lastnumberdialed)) { transmit_tone(s, SKINNY_SILENCE); @@ -3876,7 +3882,7 @@ static int handle_soft_key_event_message(struct skinny_req *req, struct skinnyse } } else if (res) { ast_log(LOG_WARNING, "Transfer attempt failed\n"); - return 0; + break; } #endif } else {