[svn-commits] jdixon: branch jdixon/chan_usbradio-1.4 r139279 - /team/jdixon/chan_usbradio-...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Aug 21 01:01:32 CDT 2008


Author: jdixon
Date: Thu Aug 21 01:01:31 2008
New Revision: 139279

URL: http://svn.digium.com/view/asterisk?view=rev&rev=139279
Log:
A few changes to make compatible with chan_echolink as it currently is

Modified:
    team/jdixon/chan_usbradio-1.4/apps/app_rpt.c

Modified: team/jdixon/chan_usbradio-1.4/apps/app_rpt.c
URL: http://svn.digium.com/view/asterisk/team/jdixon/chan_usbradio-1.4/apps/app_rpt.c?view=diff&rev=139279&r1=139278&r2=139279
==============================================================================
--- team/jdixon/chan_usbradio-1.4/apps/app_rpt.c (original)
+++ team/jdixon/chan_usbradio-1.4/apps/app_rpt.c Thu Aug 21 01:01:31 2008
@@ -21,7 +21,7 @@
 /*! \file
  *
  * \brief Radio Repeater / Remote Base program 
- *  version 0.123 8/17/08 2055 EDT
+ *  version 0.124 8/20/08 2055 EDT
  * 
  * \author Jim Dixon, WB6NIL <jim at lambdatel.com>
  *
@@ -374,7 +374,7 @@
 /*! Stop the tones from playing */
 void ast_playtones_stop(struct ast_channel *chan);
 
-static  char *tdesc = "Radio Repeater / Remote Base  version 0.123  8/17/2008";
+static  char *tdesc = "Radio Repeater / Remote Base  version 0.124  8/20/2008";
 
 static char *app = "Rpt";
 
@@ -12517,36 +12517,39 @@
 					rpt_mutex_lock(&myrpt->lock);
 					__kickshort(myrpt);
 					rpt_mutex_unlock(&myrpt->lock);
-					if ((!l->disced) && (!l->outbound))
+					if (strncasecmp(l->chan->name,"echolink",8))
 					{
-						if ((l->name[0] == '0') || l->isremote)
-							l->disctime = 1;
-						else
-							l->disctime = DISC_TIME;
-						rpt_mutex_lock(&myrpt->lock);
-						ast_hangup(l->chan);
-						l->chan = 0;
-						break;
-					}
-
-					if (l->retrytimer) 
-					{
-						ast_hangup(l->chan);
-						l->chan = 0;
-						rpt_mutex_lock(&myrpt->lock);
-						break; 
-					}
-					if (l->outbound && (l->retries++ < l->max_retries) && (l->hasconnected))
-					{
-						rpt_mutex_lock(&myrpt->lock);
-						if (l->chan) ast_hangup(l->chan);
-						l->chan = 0;
-						l->hasconnected = 1;
-						l->retrytimer = RETRY_TIMER_MS;
-						l->elaptime = 0;
-						l->connecttime = 0;
-						l->thisconnected = 0;
-						break;
+						if ((!l->disced) && (!l->outbound))
+						{
+							if ((l->name[0] == '0') || l->isremote)
+								l->disctime = 1;
+							else
+								l->disctime = DISC_TIME;
+							rpt_mutex_lock(&myrpt->lock);
+							ast_hangup(l->chan);
+							l->chan = 0;
+							break;
+						}
+	
+						if (l->retrytimer) 
+						{
+							ast_hangup(l->chan);
+							l->chan = 0;
+							rpt_mutex_lock(&myrpt->lock);
+							break; 
+						}
+						if (l->outbound && (l->retries++ < l->max_retries) && (l->hasconnected))
+						{
+							rpt_mutex_lock(&myrpt->lock);
+							if (l->chan) ast_hangup(l->chan);
+							l->chan = 0;
+							l->hasconnected = 1;
+							l->retrytimer = RETRY_TIMER_MS;
+							l->elaptime = 0;
+							l->connecttime = 0;
+							l->thisconnected = 0;
+							break;
+						}
 					}
 					rpt_mutex_lock(&myrpt->lock);
 					/* remove from queue */
@@ -12763,35 +12766,38 @@
 						rpt_mutex_lock(&myrpt->lock);
 						__kickshort(myrpt);
 						rpt_mutex_unlock(&myrpt->lock);
-						if ((!l->outbound) && (!l->disced))
+						if (strncasecmp(l->chan->name,"echolink",8))
 						{
-							if ((l->name[0] == '0') || l->isremote)
-								l->disctime = 1;
-							else
-								l->disctime = DISC_TIME;
-							rpt_mutex_lock(&myrpt->lock);
-							ast_hangup(l->chan);
-							l->chan = 0;
-							break;
-						}
-						if (l->retrytimer) 
-						{
-							if (l->chan) ast_hangup(l->chan);
-							l->chan = 0;
-							rpt_mutex_lock(&myrpt->lock);
-							break;
-						}
-						if (l->outbound && (l->retries++ < l->max_retries) && (l->hasconnected))
-						{
-							rpt_mutex_lock(&myrpt->lock);
-							if (l->chan) ast_hangup(l->chan);
-							l->chan = 0;
-							l->hasconnected = 1;
-							l->elaptime = 0;
-							l->retrytimer = RETRY_TIMER_MS;
-							l->connecttime = 0;
-							l->thisconnected = 0;
-							break;
+							if ((!l->outbound) && (!l->disced))
+							{
+								if ((l->name[0] == '0') || l->isremote)
+									l->disctime = 1;
+								else
+									l->disctime = DISC_TIME;
+								rpt_mutex_lock(&myrpt->lock);
+								ast_hangup(l->chan);
+								l->chan = 0;
+								break;
+							}
+							if (l->retrytimer) 
+							{
+								if (l->chan) ast_hangup(l->chan);
+								l->chan = 0;
+								rpt_mutex_lock(&myrpt->lock);
+								break;
+							}
+							if (l->outbound && (l->retries++ < l->max_retries) && (l->hasconnected))
+							{
+								rpt_mutex_lock(&myrpt->lock);
+								if (l->chan) ast_hangup(l->chan);
+								l->chan = 0;
+								l->hasconnected = 1;
+								l->elaptime = 0;
+								l->retrytimer = RETRY_TIMER_MS;
+								l->connecttime = 0;
+								l->thisconnected = 0;
+								break;
+							}
 						}
 						rpt_mutex_lock(&myrpt->lock);
 						/* remove from queue */
@@ -13400,14 +13406,15 @@
 	{
 #ifdef ALLOW_LOCAL_CHANNELS
 	        /* Check to insure the connection is IAX2 or Local*/
-	        if ( (strncmp(chan->name,"IAX2",4)) && (strncmp(chan->name,"Local",5)) ) {
-	            ast_log(LOG_WARNING, "We only accept links via IAX2 or Local!!\n");
+	        if ( (strncmp(chan->name,"IAX2",4)) && (strncmp(chan->name,"Local",5)) &&
+		  (strncasecmp(chan->name,"echolink",8)) ) {
+	            ast_log(LOG_WARNING, "We only accept links via IAX2, Echolink  or Local!!\n");
 	            return -1;
 	        }
 #else
-		if (strncmp(chan->name,"IAX2",4))
-		{
-			ast_log(LOG_WARNING, "We only accept links via IAX2!!\n");
+		if (strncmp(chan->name,"IAX2",4) && strncasecmp(chan->name,"Echolink",8))
+		{
+			ast_log(LOG_WARNING, "We only accept links via IAX2 or Echolink!!\n");
 			return -1;
 		}
 #endif
@@ -13750,6 +13757,7 @@
 		rpt_mutex_lock(&myrpt->lock);
 		if ((phone_mode == 2) && (!phone_vox)) l->lastrealrx = 1;
 		l->max_retries = MAX_RETRIES;
+/* foop */		l->retries = l->max_retries + 1;
 		/* insert at end of queue */
 		insque((struct qelem *)l,(struct qelem *)myrpt->links.next);
 		__kickshort(myrpt);
@@ -13769,6 +13777,8 @@
 			donodelog(myrpt,str);
 		}
 		if (!phone_mode) send_newkey(chan);
+		if (!strncasecmp(chan->name,"echolink",8))
+			rpt_telemetry(myrpt,CONNECTED,l);
 		return AST_PBX_KEEPALIVE;
 	}
 	/* well, then it is a remote */




More information about the svn-commits mailing list