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

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


Author: wedhorn
Date: Sat Aug  7 17:36:08 2010
New Revision: 281257

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=281257
Log:
Fix up handling and indications during transfer.

Cleaned up handling of onhook indications and added indications if more than one sub on device. Also fixes issue in 12324 so that the phone can call itself without locking up.

(closes issue #17692)
Reported by: jmhunter
Patches:
      chan_skinny-transfer-v4.txt uploaded by DEA (license 3)
      skinnytransfver.v8.diff uploaded by wedhorn (license 30)
Tested by: jmhunter, salecha, wedhorn

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=281257&r1=281256&r2=281257
==============================================================================
--- trunk/channels/chan_skinny.c (original)
+++ trunk/channels/chan_skinny.c Sat Aug  7 17:36:08 2010
@@ -4075,12 +4075,15 @@
 						l->activesub = AST_LIST_FIRST(&l->sub);
 					}
 				}
-				//transmit_callstate(d, l->instance, SKINNY_ONHOOK, sub->callid);
-				transmit_activatecallplane(d, l);
+				if (l->activesub) {
+					transmit_selectsoftkeys(d, 0, 0, KEYDEF_ONHOLD);
+				}
 				transmit_closereceivechannel(d, sub);
 				transmit_stopmediatransmission(d, sub);
 				transmit_lamp_indication(d, STIMULUS_LINE, l->instance, SKINNY_LAMP_BLINK);
 				transmit_stop_tone(d, l->instance, sub->callid);
+				transmit_callstate(d, l->instance, sub->callid, SKINNY_ONHOOK);
+				transmit_activatecallplane(d, l);
 			} 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)) {
@@ -4088,6 +4091,8 @@
 				} else {
 					transmit_lamp_indication(d, STIMULUS_LINE, l->instance, SKINNY_LAMP_ON);
 				}
+				transmit_callstate(d, l->instance, sub->callid, SKINNY_ONHOOK);
+				transmit_activatecallplane(d, l);
 			}
 		} else {                                                /* no more subs on line so make idle */
 			ast_verb(4,"Killing only sub %d\n", sub->callid);
@@ -4790,7 +4795,7 @@
 			sub->related = newsub;
 			newsub->xferor = 1;
 			l->activesub = newsub;
-			transmit_callstate(d, l->instance, sub->callid, SKINNY_OFFHOOK);
+			transmit_callstate(d, l->instance, newsub->callid, SKINNY_OFFHOOK);
 			transmit_activatecallplane(d, l);
 			transmit_clear_display_message(d, l->instance, newsub->callid);
 			transmit_start_tone(d, SKINNY_DIALTONE, l->instance, newsub->callid);




More information about the asterisk-commits mailing list