aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_skinny.c
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-07-18 19:48:12 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-07-18 19:48:12 +0000
commiteb57b07ddd778797446c0c65a4b3c51a3de304fa (patch)
tree8e98717d24f691f7851583d65c6f51390cb6c7e1 /channels/chan_skinny.c
parentf49e2841f8caedfcf9d547032ef9a66d7d29a97c (diff)
Fix issues with new 79x1 phones.
Issue 9887, patches by DEA git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@75707 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_skinny.c')
-rw-r--r--channels/chan_skinny.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 841778c6e..534abfe00 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -605,10 +605,8 @@ static const uint8_t soft_key_default_connwithconf[] = {
};
static const uint8_t soft_key_default_ringout[] = {
+ SOFTKEY_NONE,
SOFTKEY_ENDCALL,
- SOFTKEY_TRNSFER,
- SOFTKEY_CFWDALL,
- SOFTKEY_CFWDBUSY,
};
static const uint8_t soft_key_default_offhookwithfeat[] = {
@@ -3070,6 +3068,14 @@ static int handle_stimulus_message(struct skinny_req *req, struct skinnysession
ast_verbose("Received Stimulus: Redial(%d)\n", instance);
#if 0
+ if (ast_strlen_zero(l->lastnumberdialed)) {
+ ast_log(LOG_WARNING, "Attempted redial, but no previously dialed number found.\n");
+ l->hookstate = SKINNY_ONHOOK;
+ transmit_speaker_mode(s, SKINNY_SPEAKEROFF);
+ transmit_callstate(s, l->instance, SKINNY_ONHOOK, instance);
+ break;
+ }
+
c = skinny_new(l, AST_STATE_DOWN);
if(!c) {
ast_log(LOG_WARNING, "Unable to create channel for %s@%s\n", l->name, d->name);
@@ -3080,11 +3086,8 @@ static int handle_stimulus_message(struct skinny_req *req, struct skinnysession
ast_verbose("Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
transmit_displaymessage(s, NULL); /* clear display */
transmit_tone(s, SKINNY_DIALTONE);
+ transmit_selectsoftkeys(s, l->instance, sub->callid, KEYDEF_RINGOUT);
- if (ast_strlen_zero(l->lastnumberdialed)) {
- ast_log(LOG_WARNING, "Attempted redial, but no previously dialed number found.\n");
- return 0;
- }
if (!ast_ignore_pattern(c->context, l->lastnumberdialed)) {
transmit_tone(s, SKINNY_SILENCE);
}
@@ -3105,6 +3108,14 @@ static int handle_stimulus_message(struct skinny_req *req, struct skinnysession
return 0;
}
+ if (ast_strlen_zero(l->lastnumberdialed)) {
+ ast_log(LOG_WARNING, "Attempted redial, but no previously dialed number found.\n");
+ l->hookstate = SKINNY_ONHOOK;
+ transmit_speaker_mode(s, SKINNY_SPEAKEROFF);
+ transmit_callstate(s, l->instance, SKINNY_ONHOOK, instance);
+ break;
+ }
+
c = skinny_new(l, AST_STATE_DOWN);
if(c) {
sub = c->tech_pvt;
@@ -3114,6 +3125,7 @@ static int handle_stimulus_message(struct skinny_req *req, struct skinnysession
ast_verbose("Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
transmit_displaymessage(s, NULL); /* clear display */
transmit_tone(s, SKINNY_DIALTONE);
+ transmit_selectsoftkeys(s, l->instance, sub->callid, KEYDEF_RINGOUT);
if (!ast_ignore_pattern(c->context, sd->exten)) {
transmit_tone(s, SKINNY_SILENCE);
@@ -3804,11 +3816,8 @@ static int handle_soft_key_event_message(struct skinny_req *req, struct skinnyse
ast_verbose("Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
transmit_displaymessage(s, NULL); /* clear display */
transmit_tone(s, SKINNY_DIALTONE);
+ transmit_selectsoftkeys(s, l->instance, sub->callid, KEYDEF_RINGOUT);
- if (ast_strlen_zero(l->lastnumberdialed)) {
- ast_log(LOG_WARNING, "Attempted redial, but no previously dialed number found.\n");
- break;
- }
if (!ast_ignore_pattern(c->context, l->lastnumberdialed)) {
transmit_tone(s, SKINNY_SILENCE);
}