[asterisk-commits] wedhorn: trunk r281226 - /trunk/channels/chan_skinny.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Aug 7 17:07:50 CDT 2010


Author: wedhorn
Date: Sat Aug  7 17:07:43 2010
New Revision: 281226

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=281226
Log:
Start rtp on answer before the answer is queued

(closes issue #17770)
Reported by: salecha
Patches:
      skinny.answercrash.diff uploaded by wedhorn (license 30)
Tested by: salecha

Review: NA 

Modified:
    trunk/channels/chan_skinny.c

Modified: trunk/channels/chan_skinny.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_skinny.c?view=diff&rev=281226&r1=281225&r2=281226
==============================================================================
--- trunk/channels/chan_skinny.c (original)
+++ trunk/channels/chan_skinny.c Sat Aug  7 17:07:43 2010
@@ -5225,7 +5225,6 @@
 
 		if (sub && sub->outgoing) {
 			/* We're answering a ringing call */
-			ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
 			transmit_callstate(d, l->instance, sub->callid, SKINNY_OFFHOOK);
 			transmit_activatecallplane(d, l);
 			transmit_stop_tone(d, l->instance, sub->callid);
@@ -5233,6 +5232,7 @@
 			transmit_displaypromptstatus(d, "Connected", 0, l->instance, sub->callid);
 			transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_CONNECTED);
 			start_rtp(sub);
+			ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
 			ast_setstate(sub->owner, AST_STATE_UP);
 		} else {
 			if (sub && sub->owner) {
@@ -5327,13 +5327,13 @@
 
 	if (sub && sub->outgoing) {
 		/* We're answering a ringing call */
-		ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
 		transmit_callstate(d, l->instance, sub->callid, SKINNY_OFFHOOK);
 		transmit_activatecallplane(d, l);
 		transmit_stop_tone(d, l->instance, sub->callid);
 		transmit_callstate(d, sub->parent->instance, sub->callid, SKINNY_CONNECTED);
 		transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_CONNECTED);
 		start_rtp(sub);
+		ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
 		ast_setstate(sub->owner, AST_STATE_UP);
 	} else {
 		if (sub && sub->owner) {
@@ -6050,13 +6050,13 @@
 
 		if (sub && sub->outgoing) {
 			/* We're answering a ringing call */
-			ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
 			transmit_callstate(d, l->instance, sub->callid, SKINNY_OFFHOOK);
 			transmit_activatecallplane(d, l);
 			transmit_stop_tone(d, l->instance, sub->callid);
 			transmit_callstate(d, sub->parent->instance, sub->callid, SKINNY_CONNECTED);
 			transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_CONNECTED);
 			start_rtp(sub);
+			ast_queue_control(sub->owner, AST_CONTROL_ANSWER);
 			ast_setstate(sub->owner, AST_STATE_UP);
 		}
 		break;




More information about the asterisk-commits mailing list