aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-24 02:04:34 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-24 02:04:34 +0000
commiteb4a78a9b28bad1a011d592f2f2f3abf83e65da8 (patch)
treecbb5ff57058cd5efa55eea42e95abf1f549d9eff /channels
parentbb1667f5c8b054f4c5ea5c9c0b42e3ca0046dd22 (diff)
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: http://svn.digium.com/svn/asterisk/trunk@56574 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_skinny.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 9de13427e..fb658f76e 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 {