[asterisk-commits] jdixon: branch jdixon/chan_usbradio-1.4 r160099 - /team/jdixon/chan_usbradio-...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Dec 1 15:30:23 CST 2008


Author: jdixon
Date: Mon Dec  1 15:30:22 2008
New Revision: 160099

URL: http://svn.digium.com/view/asterisk?view=rev&rev=160099
Log:
Fixed problem with system "coming back connected" after disconnect

Modified:
    team/jdixon/chan_usbradio-1.4/channels/chan_irlp.c

Modified: team/jdixon/chan_usbradio-1.4/channels/chan_irlp.c
URL: http://svn.digium.com/view/asterisk/team/jdixon/chan_usbradio-1.4/channels/chan_irlp.c?view=diff&rev=160099&r1=160098&r2=160099
==============================================================================
--- team/jdixon/chan_usbradio-1.4/channels/chan_irlp.c (original)
+++ team/jdixon/chan_usbradio-1.4/channels/chan_irlp.c Mon Dec  1 15:30:22 2008
@@ -34,7 +34,7 @@
 #define	rpt_free(p) __ast_free(p,__FILE__,__LINE__,__PRETTY_FUNCTION__)
 
 
-/* Version 0.16, 11/17/2008
+/* Version 0.18, 12/1/2008
 irlp channel driver for Asterisk/app_rpt.
 
 I wish to thank the following people for the immeasurable amount of
@@ -102,6 +102,7 @@
 #define IRLP_ADPCM_STATE_INFO_SIZE 3
 
 #define	LARGEST_PACKET_SIZE 1024
+#define	DISC_LINGER_TIME 2
 #define	IRLP_ROOT "/home/irlp/local"
 #define	IRLP_RESET "su - repeater /tmp/irlpwrap /home/irlp/custom/irlp_fullreset"
 #define	IRLP_END "su - repeater /tmp/irlpwrap /home/irlp/scripts/end &"
@@ -213,6 +214,7 @@
 static char astnode1[20];
 static short rtcptimeout = 10;
 static short localispeakerport = 2174;
+time_t lingertime = 0;
 static int radmode = 0;
 static int nodenum = 0;
 static int audio_sock = -1;
@@ -292,6 +294,7 @@
 	if (alt_ctrl_sock != -1) close(alt_ctrl_sock);
 	alt_ctrl_sock = -1;
 	proto = IRLP_NOPROTO;
+	time(&lingertime);
 	keepalive = 0;
 	in_node = 0;
 	nodenum = 0;
@@ -769,7 +772,8 @@
 			       {
 	                          strncpy(remote_irlp_node_ip, ip, IRLP_IP_SIZE);
 				  cp = irlp_read_file(IRLP_ROOT,"active");
-				  if (cp && (strlen(cp) > 3))
+				  if ((cp && (strlen(cp) > 3)) && 
+				    (time(NULL) >= (lingertime + DISC_LINGER_TIME)))
 				  {
 					if (cp[strlen(cp) - 1] == '\n')
 						cp[strlen(cp) - 1] = 0;




More information about the asterisk-commits mailing list