]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 56569 via svnmerge from
authorJason Parker <jparker@digium.com>
Sat, 24 Feb 2007 02:04:34 +0000 (02:04 +0000)
committerJason Parker <jparker@digium.com>
Sat, 24 Feb 2007 02:04:34 +0000 (02:04 +0000)
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

channels/chan_skinny.c

index 9de13427eb79bd8f7bed9f2cb4510212c89d3b52..fb658f76e73f313b520404107e244b2669558b98 100644 (file)
@@ -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 {