dont send reorder tone after a device is hungup if a dialout is abandoned or failed.

Without this reorder tone will play after hangup and both wedhorn's and my wife have threatened to use an axe on our asterisk box

(closes issue #13948)
Reported by: wedhorn
Patches:
	switch.diff uploaded by wedhorn (license 30)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.2
Michiel van Baak 17 years ago
parent ced8427b09
commit 4a68fe383a

@ -3180,7 +3180,9 @@ static void *skinny_ss(void *data)
} else if (res == 0) {
ast_debug(1, "Not enough digits (%s) (and no ambiguous match)...\n", d->exten);
memset(d->exten, 0, sizeof(d->exten));
transmit_tone(d, SKINNY_REORDER, l->instance, sub->callid);
if (l->hookstate == SKINNY_OFFHOOK) {
transmit_tone(d, SKINNY_REORDER, l->instance, sub->callid);
}
if (sub->owner && sub->owner->_state != AST_STATE_UP) {
ast_indicate(c, -1);
ast_hangup(c);
@ -3190,9 +3192,11 @@ static void *skinny_ss(void *data)
((d->exten[0] != '*') || (!ast_strlen_zero(d->exten) > 2))) {
ast_log(LOG_WARNING, "Can't match [%s] from '%s' in context %s\n", d->exten, c->cid.cid_num ? c->cid.cid_num : "<Unknown Caller>", c->context);
memset(d->exten, 0, sizeof(d->exten));
transmit_tone(d, SKINNY_REORDER, l->instance, sub->callid);
/* hang out for 3 seconds to let congestion play */
ast_safe_sleep(c, 3000);
if (l->hookstate == SKINNY_OFFHOOK) {
transmit_tone(d, SKINNY_REORDER, l->instance, sub->callid);
/* hang out for 3 seconds to let congestion play */
ast_safe_sleep(c, 3000);
}
break;
}
if (!timeout) {
@ -3312,6 +3316,7 @@ static int skinny_hangup(struct ast_channel *ast)
transmit_closereceivechannel(d, sub);
transmit_stopmediatransmission(d, sub);
transmit_lamp_indication(d, STIMULUS_LINE, l->instance, SKINNY_LAMP_BLINK);
transmit_tone(d, SKINNY_SILENCE, l->instance, sub->callid);
} else { /* we are killing a background sub on the line with other subs*/
ast_verb(4,"Killing inactive sub %d\n", sub->callid);
if (AST_LIST_NEXT(sub, list)) {
@ -3332,6 +3337,7 @@ static int skinny_hangup(struct ast_channel *ast)
transmit_stopmediatransmission(d, sub);
transmit_speaker_mode(d, SKINNY_SPEAKEROFF);
transmit_ringer_mode(d, SKINNY_RING_OFF);
transmit_tone(d, SKINNY_SILENCE, l->instance, sub->callid);
/* we should check to see if we can start the ringer if another line is ringing */
}
}
@ -4579,9 +4585,9 @@ static int handle_offhook_message(struct skinny_req *req, struct skinnysession *
if (sub && sub->outgoing) {
/* We're answering a ringing call */
ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
transmit_callstateonly(d, sub, SKINNY_CONNECTED);
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
transmit_tone(d, SKINNY_SILENCE, l->instance, sub->callid);
transmit_callstate(d, l->instance, SKINNY_CONNECTED, sub->callid);
transmit_callstateonly(d, sub, SKINNY_CONNECTED);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_CONNECTED);
start_rtp(sub);
ast_setstate(sub->owner, AST_STATE_UP);

Loading…
Cancel
Save