[asterisk-commits] may: trunk r308243 - in /trunk: ./ addons/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Feb 17 18:11:10 CST 2011


Author: may
Date: Thu Feb 17 18:11:06 2011
New Revision: 308243

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=308243
Log:
Merged revisions 308242 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r308242 | may | 2011-02-18 03:07:20 +0300 (Fri, 18 Feb 2011) | 3 lines
  
  added g729onlyA option for announce only AnnexA g.729 codec in
  h.323 capabilities. Option can be global or per user/peer.
........

Modified:
    trunk/   (props changed)
    trunk/addons/chan_ooh323.c
    trunk/addons/ooh323cDriver.c
    trunk/addons/ooh323cDriver.h

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: trunk/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/chan_ooh323.c?view=diff&rev=308243&r1=308242&r2=308243
==============================================================================
--- trunk/addons/chan_ooh323.c (original)
+++ trunk/addons/chan_ooh323.c Thu Feb 17 18:11:06 2011
@@ -184,6 +184,7 @@
 	int amaflags;
 	int progsent;			/* progress is sent */
 	int alertsent;			/* alerting is sent */
+	int g729onlyA;			/* G.729 only A */
 	struct ast_dsp *vad;
 	struct OOH323Regex *rtpmask;	/* rtp ip regexp */
 	char rtpmaskstr[120];
@@ -216,6 +217,7 @@
 	char	    rtpmaskstr[120];
 	int	    rtdrcount, rtdrinterval;
 	int	    faststart, h245tunneling;
+	int	    g729onlyA;
 	struct ooh323_user *next;
 };
 
@@ -244,6 +246,7 @@
 	char	    rtpmaskstr[120];
 	int	    rtdrcount,rtdrinterval;
 	int	    faststart, h245tunneling;
+	int	    g729onlyA;
 	struct ooh323_peer *next;
 };
 
@@ -301,6 +304,7 @@
 static int  gMediaWaitForConnect = 0;
 static int  gTOS = 0;
 static int  gRTPTimeout = 60;
+static int  g729onlyA = 0;
 static char gAccountcode[80] = DEFAULT_H323ACCNT;
 static int  gAMAFLAGS;
 static char gContext[AST_MAX_EXTENSION] = DEFAULT_CONTEXT;
@@ -521,6 +525,7 @@
 	pvt->rtptimeout = gRTPTimeout;
 	pvt->rtdrinterval = gRTDRInterval;
 	pvt->rtdrcount = gRTDRCount;
+	pvt->g729onlyA = g729onlyA;
 
 	pvt->call_reference = callref;
 	if (callToken)
@@ -639,6 +644,7 @@
 
 		ast_format_cap_copy(p->cap, peer->cap);
 		memcpy(&p->prefs, &peer->prefs, sizeof(struct ast_codec_pref));
+		p->g729onlyA = peer->g729onlyA;
 		p->dtmfmode |= peer->dtmfmode;
 		p->dtmfcodec  = peer->dtmfcodec;
 		p->t38support = peer->t38support;
@@ -667,6 +673,7 @@
 			ast_mutex_unlock(&iflock);
 			return NULL;
 		}
+		p->g729onlyA = g729onlyA;
 		p->dtmfmode = gDTMFMode;
 		p->dtmfcodec = gDTMFCodec;
 		p->t38support = gT38Support;
@@ -1767,6 +1774,7 @@
 		ast_copy_string(p->accountcode, user->accountcode, sizeof(p->accountcode));
 		p->amaflags = user->amaflags;
 		ast_format_cap_copy(p->cap, user->cap);
+		p->g729onlyA = user->g729onlyA;
 		memcpy(&p->prefs, &user->prefs, sizeof(struct ast_codec_pref));
 		p->dtmfmode |= user->dtmfmode;
 		p->dtmfcodec = user->dtmfcodec;
@@ -1779,9 +1787,11 @@
          		OO_SETFLAG(call->flags, OO_M_FASTSTART);
 		else
 			OO_CLRFLAG(call->flags, OO_M_FASTSTART);
-		if (p->h245tunneling)
-			OO_SETFLAG(call->flags, OO_M_TUNNELING);
-		else
+		/* if we disable h245tun for this user then we clear flag */
+		/* in any other case we don't must touch this */
+		/* ie if we receive setup without h245tun but enabled
+		   				we can't enable it per call */
+		if (!p->h245tunneling)
 			OO_CLRFLAG(call->flags, OO_M_TUNNELING);
 
 		if (user->rtpmask && user->rtpmaskstr[0]) {
@@ -1811,7 +1821,7 @@
 	}
 
 	ooh323c_set_capability_for_call(call, &p->prefs, p->cap, p->dtmfmode, p->dtmfcodec,
-					 p->t38support);
+					 p->t38support, p->g729onlyA);
 	configure_local_rtp(p, call);
 
 /* Incoming call */
@@ -1978,7 +1988,7 @@
 		}
 
       		ooh323c_set_capability_for_call(call, &p->prefs, p->cap,
-                                     p->dtmfmode, p->dtmfcodec, p->t38support);
+                                     p->dtmfmode, p->dtmfcodec, p->t38support, p->g729onlyA);
 
 		configure_local_rtp(p, call);
 		ast_mutex_unlock(&p->lock);
@@ -2198,6 +2208,7 @@
 		user->t38support = gT38Support;
 		user->faststart = gFastStart;
 		user->h245tunneling = gTunneling;
+		user->g729onlyA = g729onlyA;
 		/* set default context */
 		ast_copy_string(user->context, gContext, sizeof(user->context));
 		ast_copy_string(user->accountcode, gAccountcode, sizeof(user->accountcode));
@@ -2219,6 +2230,8 @@
 				user->faststart = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "h245tunneling")) {
 				user->h245tunneling = ast_true(v->value);
+			} else if (!strcasecmp(v->name, "g729onlyA")) {
+				user->g729onlyA = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "rtptimeout")) {
 				user->rtptimeout = atoi(v->value);
 				if (user->rtptimeout < 0)
@@ -2313,6 +2326,7 @@
 		peer->t38support = gT38Support;
 		peer->faststart = gFastStart;
 		peer->h245tunneling = gTunneling;
+		peer->g729onlyA = g729onlyA;
       		peer->port = 1720;
 		if (0 == friend_type) {
 			peer->mFriend = 1;
@@ -2363,6 +2377,8 @@
 				peer->faststart = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "h245tunneling")) {
 				peer->h245tunneling = ast_true(v->value);
+			} else if (!strcasecmp(v->name, "g729onlyA")) {
+				peer->g729onlyA = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "rtptimeout")) {
             			peer->rtptimeout = atoi(v->value);
             			if(peer->rtptimeout < 0)
@@ -2593,6 +2609,8 @@
 				ooH323EpEnableH245Tunneling();
 			else
 				ooH323EpDisableH245Tunneling();
+		} else if (!strcasecmp(v->name, "g729onlyA")) {
+			g729onlyA = ast_true(v->value);
 		} else if (!strcasecmp(v->name, "roundtrip")) {
 			sscanf(v->value, "%d,%d", &gRTDRCount, &gRTDRInterval);
       		} else if (!strcasecmp(v->name, "trybemaster")) {

Modified: trunk/addons/ooh323cDriver.c
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/ooh323cDriver.c?view=diff&rev=308243&r1=308242&r2=308243
==============================================================================
--- trunk/addons/ooh323cDriver.c (original)
+++ trunk/addons/ooh323cDriver.c Thu Feb 17 18:11:06 2011
@@ -386,7 +386,7 @@
 
 int ooh323c_set_capability_for_call
    (ooCallData *call, struct ast_codec_pref *prefs, struct ast_format_cap *cap, int dtmf, int dtmfcodec,
-		 int t38support)
+		 int t38support, int g729onlyA)
 {
    int ret = 0, x, txframes;
    struct ast_format tmpfmt;
@@ -472,17 +472,19 @@
       
          txframes = (prefs->framing[x])/10;
          if(gH323Debug)
+            ast_verbose("\tAdding g729A capability to call(%s, %s)\n",
+                                            call->callType, call->callToken);
+         ret= ooCallAddG729Capability(call, OO_G729A, txframes, txframes, 
+                                     OORXANDTX, &ooh323c_start_receive_channel,
+                                     &ooh323c_start_transmit_channel,
+                                     &ooh323c_stop_receive_channel, 
+                                     &ooh323c_stop_transmit_channel);
+	 if (g729onlyA)
+		continue;
+         if(gH323Debug)
             ast_verbose("\tAdding g729 capability to call(%s, %s)\n",
                                             call->callType, call->callToken);
          ret|= ooCallAddG729Capability(call, OO_G729, txframes, txframes, 
-                                     OORXANDTX, &ooh323c_start_receive_channel,
-                                     &ooh323c_start_transmit_channel,
-                                     &ooh323c_stop_receive_channel, 
-                                     &ooh323c_stop_transmit_channel);
-         if(gH323Debug)
-            ast_verbose("\tAdding g729A capability to call(%s, %s)\n",
-                                            call->callType, call->callToken);
-         ret= ooCallAddG729Capability(call, OO_G729A, txframes, txframes, 
                                      OORXANDTX, &ooh323c_start_receive_channel,
                                      &ooh323c_start_transmit_channel,
                                      &ooh323c_stop_receive_channel, 

Modified: trunk/addons/ooh323cDriver.h
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/ooh323cDriver.h?view=diff&rev=308243&r1=308242&r2=308243
==============================================================================
--- trunk/addons/ooh323cDriver.h (original)
+++ trunk/addons/ooh323cDriver.h Thu Feb 17 18:11:06 2011
@@ -41,5 +41,5 @@
 struct ast_format *convertH323CapToAsteriskCap(int cap, struct ast_format *format);
 int ooh323c_set_capability_for_call
    (ooCallData *call, struct ast_codec_pref *prefs, struct ast_format_cap *cap, int dtmf, int dtmfcodec,
-	int t38support);
+	int t38support, int g729onlyA);
 #endif




More information about the asterisk-commits mailing list