[asterisk-commits] rmudgett: branch rmudgett/call_waiting r252487 - in /team/rmudgett/call_waiti...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Mar 15 11:12:41 CDT 2010


Author: rmudgett
Date: Mon Mar 15 11:12:36 2010
New Revision: 252487

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=252487
Log:
Merged revisions 252132,252139,252230,252266,252279,252319,252370,252446 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/team/group/CCSS

................
  r252132 | mmichelson | 2010-03-12 16:28:20 -0600 (Fri, 12 Mar 2010) | 3 lines
  
  Resolve conflict and reset automerge.
................
  r252139 | root | 2010-03-12 18:17:30 -0600 (Fri, 12 Mar 2010) | 9 lines
  
  Merged revisions 252133 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r252133 | tilghman | 2010-03-12 17:18:20 -0600 (Fri, 12 Mar 2010) | 2 lines
    
    Test script to verify that timezone cache is properly removed on zonefile alteration.
  ........
................
  r252230 | root | 2010-03-13 16:17:36 -0600 (Sat, 13 Mar 2010) | 11 lines
  
  Merged revisions 252229 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r252229 | russell | 2010-03-13 16:17:05 -0600 (Sat, 13 Mar 2010) | 4 lines
    
    Resolve compiler warning by paying attention to system() return value.
    
    This resolves the last compile failure on bamboo.
  ........
................
  r252266 | root | 2010-03-13 17:17:36 -0600 (Sat, 13 Mar 2010) | 13 lines
  
  Merged revisions 252241 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r252241 | russell | 2010-03-13 16:21:18 -0600 (Sat, 13 Mar 2010) | 6 lines
    
    Resolve unit test failure that occurred on Mac OSX.
    
    On Linux (glibc), regcomp() does not return an error for an empty string.
    However, the version on OSX will return an error.  The test for channel group
    matching by regex now passes on the mac, as well.
  ........
................
  r252279 | root | 2010-03-14 10:17:31 -0500 (Sun, 14 Mar 2010) | 20 lines
  
  Merged revisions 252277 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r252277 | may | 2010-03-14 09:42:59 -0500 (Sun, 14 Mar 2010) | 14 lines
    
    generate roundtrip delay requests and responses
    
    added response to roundtrip delay requests from opposite side
    added roundtrip delay request sending to opposite side after answer,
    added options for sending request (interval between request and 
    count of unreplied requests before forced call hangup)
    
    (closes issue #16976)
    Reported by: vmikhelson
    Patches:
          rtdr-1.6.0-2.patch uploaded by may213 (license 454)
    Tested by: vmikhelson, may213
  ........
................
  r252319 | root | 2010-03-14 13:17:30 -0500 (Sun, 14 Mar 2010) | 15 lines
  
  Merged revisions 252314 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r252314 | seanbright | 2010-03-14 12:43:46 -0500 (Sun, 14 Mar 2010) | 8 lines
    
    Fix building CDR and CEL SQLite3 modules.
    
    They added a sqlite3_log() function which was conflicting with our function
    names.
    
    (closes issue #17017)
    Reported by: alephlg
  ........
................
  r252370 | root | 2010-03-14 21:17:47 -0500 (Sun, 14 Mar 2010) | 29 lines
  
  Merged revisions 252362,252367 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ................
    r252362 | tilghman | 2010-03-14 20:37:04 -0500 (Sun, 14 Mar 2010) | 11 lines
    
    Merged revisions 252361 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r252361 | tilghman | 2010-03-14 20:33:50 -0500 (Sun, 14 Mar 2010) | 4 lines
      
      Launch Asterisk on Mac OS X with launchd.
      
      Reviewboard: https://reviewboard.asterisk.org/r/551/
    ........
  ................
    r252367 | tilghman | 2010-03-14 20:39:39 -0500 (Sun, 14 Mar 2010) | 9 lines
    
    Recorded merge of revisions 252366 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r252366 | tilghman | 2010-03-14 20:39:00 -0500 (Sun, 14 Mar 2010) | 2 lines
      
      Typo
    ........
  ................
................
  r252446 | root | 2010-03-15 00:17:30 -0500 (Mon, 15 Mar 2010) | 14 lines
  
  Merged revisions 252442 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r252442 | tilghman | 2010-03-14 23:25:35 -0500 (Sun, 14 Mar 2010) | 7 lines
    
    THIS IS NOT PYTHON.  Indentation doesn't matter, only braces do.
    
    (closes issue #17025)
     Reported by: smurfix
     Patches: 
           sip.patch uploaded by smurfix (license 547)
  ........
................

Added:
    team/rmudgett/call_waiting/contrib/init.d/org.asterisk.asterisk.plist
      - copied unchanged from r252446, team/group/CCSS/contrib/init.d/org.asterisk.asterisk.plist
    team/rmudgett/call_waiting/tests/test_time.c
      - copied unchanged from r252446, team/group/CCSS/tests/test_time.c
Modified:
    team/rmudgett/call_waiting/   (props changed)
    team/rmudgett/call_waiting/Makefile
    team/rmudgett/call_waiting/addons/chan_ooh323.c
    team/rmudgett/call_waiting/addons/ooh323c/src/ooCalls.h
    team/rmudgett/call_waiting/addons/ooh323c/src/ooSocket.c
    team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.c
    team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.h
    team/rmudgett/call_waiting/addons/ooh323c/src/ooh323.c
    team/rmudgett/call_waiting/addons/ooh323c/src/ooq931.c
    team/rmudgett/call_waiting/addons/ooh323c/src/ootypes.h
    team/rmudgett/call_waiting/cdr/cdr_sqlite3_custom.c
    team/rmudgett/call_waiting/cel/cel_sqlite3_custom.c
    team/rmudgett/call_waiting/channels/chan_dahdi.c
    team/rmudgett/call_waiting/channels/chan_h323.c
    team/rmudgett/call_waiting/channels/chan_mgcp.c
    team/rmudgett/call_waiting/channels/chan_sip.c
    team/rmudgett/call_waiting/channels/chan_skinny.c
    team/rmudgett/call_waiting/channels/sip/include/sip.h
    team/rmudgett/call_waiting/configs/chan_ooh323.conf.sample
    team/rmudgett/call_waiting/configs/sip.conf.sample
    team/rmudgett/call_waiting/include/asterisk/frame.h
    team/rmudgett/call_waiting/include/asterisk/rtp_engine.h
    team/rmudgett/call_waiting/main/app.c
    team/rmudgett/call_waiting/main/asterisk.c
    team/rmudgett/call_waiting/main/channel.c
    team/rmudgett/call_waiting/main/rtp_engine.c
    team/rmudgett/call_waiting/res/res_rtp_asterisk.c

Propchange: team/rmudgett/call_waiting/
------------------------------------------------------------------------------
    automerge = *

Propchange: team/rmudgett/call_waiting/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/rmudgett/call_waiting/
------------------------------------------------------------------------------
--- call_waiting-integrated (original)
+++ call_waiting-integrated Mon Mar 15 11:12:36 2010
@@ -1,1 +1,1 @@
-/team/group/CCSS:1-252114
+/team/group/CCSS:1-252486

Propchange: team/rmudgett/call_waiting/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Mar 15 11:12:36 2010
@@ -1,1 +1,1 @@
-/trunk:1-252000
+/trunk:1-252445

Modified: team/rmudgett/call_waiting/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/Makefile?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/Makefile (original)
+++ team/rmudgett/call_waiting/Makefile Mon Mar 15 11:12:36 2010
@@ -851,6 +851,8 @@
 		elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
 			cat contrib/init.d/rc.archlinux.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/asterisk ;\
 			chmod 755 $(DESTDIR)/etc/rc.d/asterisk;\
+		elif [ -d $(DESTDIR)/Library/LaunchDaemons -a ! -f $(DESTDIR)/Library/LaunchDaemons/org.asterisk.asterisk.plist ]; then \
+			$(INSTALL) -m 644 contrib/init.d/org.asterisk.asterisk.plist $(DESTDIR)/Library/LaunchDaemons/org.asterisk.asterisk.plist; \
 		elif [ -f /etc/slackware-version ]; then \
 			echo "Slackware is not currently supported, although an init script does exist for it."; \
 		else \

Modified: team/rmudgett/call_waiting/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/chan_ooh323.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/chan_ooh323.c (original)
+++ team/rmudgett/call_waiting/addons/chan_ooh323.c Mon Mar 15 11:12:36 2010
@@ -187,6 +187,7 @@
 	struct ast_dsp *vad;
 	struct OOH323Regex *rtpmask;	/* rtp ip regexp */
 	char rtpmaskstr[120];
+	int rtdrcount, rtdrinterval;	/* roundtripdelayreq */
 	struct ooh323_pvt *next;	/* Next entity */
 } *iflist = NULL;
 
@@ -212,6 +213,7 @@
 	char        mIP[20];
 	struct OOH323Regex	    *rtpmask;
 	char	    rtpmaskstr[120];
+	int	    rtdrcount, rtdrinterval;
 	struct ooh323_user *next;
 };
 
@@ -238,6 +240,7 @@
 	int         rtptimeout;
 	struct OOH323Regex	    *rtpmask;
 	char	    rtpmaskstr[120];
+	int	    rtdrcount,rtdrinterval;
 	struct ooh323_peer *next;
 };
 
@@ -302,6 +305,7 @@
 static int  gOutgoingLimit = 1024;
 OOBOOL gH323Debug = FALSE;
 static int gTRCLVL = OOTRCLVLERR;
+static int gRTDRCount = 0, gRTDRInterval = 0;
 
 static int t35countrycode = 0;
 static int t35extensions = 0;
@@ -502,6 +506,8 @@
 	pvt->faxmode = 0;
 	pvt->t38support = gT38Support;
 	pvt->rtptimeout = gRTPTimeout;
+	pvt->rtdrinterval = gRTDRInterval;
+	pvt->rtdrcount = gRTDRCount;
 
 	pvt->call_reference = callref;
 	if (callToken)
@@ -627,6 +633,12 @@
 			p->rtpmask = peer->rtpmask;
 			ast_copy_string(p->rtpmaskstr, peer->rtpmaskstr, sizeof(p->rtpmaskstr));
 		}
+
+		if (peer->rtdrinterval) {
+			p->rtdrinterval = peer->rtdrinterval;
+			p->rtdrcount = peer->rtdrcount;
+		}
+
 		ast_copy_string(p->accountcode, peer->accountcode, sizeof(p->accountcode));
 		p->amaflags = peer->amaflags;
 	} else {
@@ -635,6 +647,8 @@
 		p->t38support = gT38Support;
 		p->rtptimeout = gRTPTimeout;
 		p->capability = gCapability;
+		p->rtdrinterval = gRTDRInterval;
+		p->rtdrcount = gRTDRCount;
 
 		memcpy(&p->prefs, &gPrefs, sizeof(struct ast_codec_pref));
 		p->username = strdup(dest);
@@ -1206,10 +1220,12 @@
 	    		ooManualRingback(callToken);
 	    }
 	 break;
-      case AST_CONTROL_SRCUPDATE:
-		ast_rtp_instance_new_source(p->rtp);
+	case AST_CONTROL_SRCUPDATE:
+		ast_rtp_instance_update_source(p->rtp);
 		break;
-
+	case AST_CONTROL_SRCCHANGE:
+		ast_rtp_instance_change_source(p->rtp);
+		break;
       case AST_CONTROL_CONNECTED_LINE:
 		if (gH323Debug)
 			ast_log(LOG_DEBUG, "Sending connected line info for %s (%s)\n",
@@ -1719,6 +1735,10 @@
 			ast_copy_string(p->rtpmaskstr, user->rtpmaskstr, 
 							 sizeof(p->rtpmaskstr));
 		}
+		if (user->rtdrcount > 0 && user->rtdrinterval > 0) {
+			p->rtdrcount = user->rtdrcount;
+			p->rtdrinterval = user->rtdrinterval;
+		}
 	 	if (user->incominglimit) user->inUse++;
 		ast_mutex_unlock(&user->lock);
 	} else {
@@ -2127,6 +2147,8 @@
 			} else if (!strcasecmp(v->name, "accountcode")) {
             			strncpy(user->accountcode, v->value, 
 						sizeof(user->accountcode)-1);
+			} else if (!strcasecmp(v->name, "roundtrip")) {
+				sscanf(v->value, "%d,%d", &user->rtdrcount, &user->rtdrinterval);
 			} else if (!strcasecmp(v->name, "rtptimeout")) {
 				user->rtptimeout = atoi(v->value);
 				if (user->rtptimeout < 0)
@@ -2286,6 +2308,8 @@
 												 tcodecs, 1);				 
 			} else if (!strcasecmp(v->name,  "amaflags")) {
 				peer->amaflags = ast_cdr_amaflags2int(v->value);
+			} else if (!strcasecmp(v->name, "roundtrip")) {
+				sscanf(v->value, "%d,%d", &peer->rtdrcount, &peer->rtdrinterval);
 			} else if (!strcasecmp(v->name, "dtmfmode")) {
 				if (!strcasecmp(v->value, "rfc2833"))
 					peer->dtmfmode = H323_DTMF_RFC2833;
@@ -2429,6 +2453,8 @@
 	gRasGkMode = RasNoGatekeeper;
 	gGatekeeper[0] = '\0';
 	gRTPTimeout = 60;
+	gRTDRInterval = 0;
+	gRTDRCount = 0;
 	strcpy(gAccountcode, DEFAULT_H323ACCNT);
 	gFastStart = 1;
 	gTunneling = 1;
@@ -2486,6 +2512,8 @@
 				ooH323EpEnableH245Tunneling();
 			else
 				ooH323EpDisableH245Tunneling();
+		} else if (!strcasecmp(v->name, "roundtrip")) {
+			sscanf(v->value, "%d,%d", &gRTDRCount, &gRTDRInterval);
       		} else if (!strcasecmp(v->name, "trybemaster")) {
 			gBeMaster = ast_true(v->value);
 			if (gBeMaster)
@@ -2755,6 +2783,8 @@
 	ast_cli(a->fd, "%-15.15s%d\n", "rtptimeout: ", peer->rtptimeout);
 	if (peer->rtpmaskstr[0])
 		ast_cli(a->fd, "%-15.15s%s\n", "rtpmask: ", peer->rtpmaskstr);
+	if (peer->rtdrcount && peer->rtdrinterval) 
+		ast_cli(a->fd, "%-15.15s%d,%d\n", "RoundTrip: ", peer->rtdrcount, peer->rtdrinterval);
 	ast_mutex_unlock(&peer->lock);
 	} else {
 	ast_cli(a->fd, "Peer %s not found\n", a->argv[3]);
@@ -2898,6 +2928,8 @@
 	if (user->rtpmaskstr[0])
 		ast_cli(a->fd, "%-15.15s%s\n", "rtpmask: ", user->rtpmaskstr);
 		ast_mutex_unlock(&user->lock);
+	if (user->rtdrcount && user->rtdrinterval) 
+		ast_cli(a->fd, "%-15.15s%d,%d\n", "RoundTrip: ", user->rtdrcount, user->rtdrinterval);
 	} else {
      ast_cli(a->fd, "User %s not found\n", a->argv[3]);
      ast_cli(a->fd, "\n");
@@ -3064,6 +3096,9 @@
 	else if (gT38Support == T38_FAXGW)
 		ast_cli(a->fd, "%s\n", "faxgw/chan_sip compatible");
 
+	if (gRTDRCount && gRTDRInterval)
+		ast_cli(a->fd, "%-15.15s%d,%d\n", "RoundTrip: ", gRTDRCount, gRTDRInterval);
+
    ast_cli(a->fd, "%-20s%ld\n", "Call counter: ", callnumber);
    ast_cli(a->fd, "%-20s%s\n", "AccountCode: ", gAccountcode);
 
@@ -3807,6 +3842,13 @@
 		}
 		ast_rtp_instance_set_prop(p->rtp, AST_RTP_PROPERTY_RTCP, 1);
 		
+	}
+
+	if (p->rtdrcount) {
+		if (gH323Debug)
+			ast_verbose("Setup RTDR info: %d, %d\n", p->rtdrinterval, p->rtdrcount);
+		call->rtdrInterval = p->rtdrinterval;
+		call->rtdrCount = p->rtdrcount;
 	}
 
 

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ooCalls.h
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ooCalls.h?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ooCalls.h (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ooCalls.h Mon Mar 15 11:12:36 2010
@@ -219,6 +219,8 @@
    char			rtpMaskStr[120];
    char			lastDTMF;
    ASN1UINT		nextDTMFstamp;
+   int			rtdrInterval, rtdrCount;	/* roundTripDelay interval and unreplied count */
+   ASN1UINT		rtdrSend, rtdrRecv;		/* last sended/replied RTD request */
    void                 *usrData; /*!<User can set this to user specific data*/
    struct OOH323CallData* next;
    struct OOH323CallData* prev;

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ooSocket.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ooSocket.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ooSocket.c (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ooSocket.c Mon Mar 15 11:12:36 2010
@@ -611,6 +611,7 @@
    struct ifconf ifc;
    int ifNum;
    OOInterface *pIf=NULL;
+   struct sockaddr_in sin;
 
    OOTRACEDBGA1("Retrieving local interfaces\n");
    if(ooSocketCreateUDP(&sock)!= ASN_OK)
@@ -686,7 +687,8 @@
             memFreePtr(pctxt, pIf);
             continue;
          }
-         strcpy(addr, ast_inet_ntoa(((struct sockaddr_in*)&ifReq.ifr_addr)->sin_addr));
+	 memcpy(&sin, &ifReq.ifr_addr, sizeof(struct sockaddr_in));
+	 strcpy(addr, ast_inet_ntoa(sin.sin_addr));
          OOTRACEDBGA2("\tIP address is %s\n", addr);
          pIf->addr = (char*)memAlloc(pctxt, strlen(addr)+1);
          if(!pIf->addr)
@@ -709,7 +711,8 @@
             memFreePtr(pctxt, pIf);
             continue;
          }
-         strcpy(mask, ast_inet_ntoa(((struct sockaddr_in *)&ifReq.ifr_netmask)->sin_addr));
+	 memcpy(&sin, &ifReq.ifr_netmask, sizeof(struct sockaddr_in));
+	 strcpy(mask, ast_inet_ntoa(sin.sin_addr));
          OOTRACEDBGA2("\tMask is %s\n", mask);
          pIf->mask = (char*)memAlloc(pctxt, strlen(mask)+1);
          if(!pIf->mask)

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.c (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.c Mon Mar 15 11:12:36 2010
@@ -2409,6 +2409,132 @@
    return ret;
 }
 
+int ooSendRoundTripDelayRequest(OOH323CallData *call)
+{
+   int ret=0;
+   H245Message *ph245msg=NULL;
+   H245RequestMessage *request = NULL;
+   OOCTXT *pctxt=NULL;
+   H245RoundTripDelayRequest *rtdr;
+   ooTimerCallback *cbData=NULL;
+
+   if (call->rtdrSend > call->rtdrRecv + call->rtdrCount) {
+	if(call->callState < OO_CALL_CLEAR) {
+		call->callState = OO_CALL_CLEAR;
+		call->callEndReason = OO_REASON_UNKNOWN;
+		call->q931cause = Q931RecoveryOnTimerExpiry;
+	}
+	return OO_FAILED;
+   }
+   
+   ret = ooCreateH245Message(call, &ph245msg, 
+                             T_H245MultimediaSystemControlMessage_request);
+   if(ret != OO_OK)
+   {
+      OOTRACEERR3("ERROR:Memory allocation for RoundTripDelayResponse message "
+                  "failed (%s, %s)\n", call->callType, call->callToken);
+      return OO_FAILED;
+   }
+
+   pctxt = call->msgctxt;
+   ph245msg->msgType = OORequestDelayRequest;
+   request = ph245msg->h245Msg.u.request;
+   request->t = T_H245RequestMessage_roundTripDelayRequest;
+   request->u.roundTripDelayRequest = (H245RoundTripDelayRequest *)ASN1MALLOC
+                                   (pctxt, sizeof(H245RoundTripDelayRequest));
+   if(!request->u.roundTripDelayRequest)
+   {
+      OOTRACEERR3("ERROR:Failed to allocate memory for H245RoundTripDelayRequest "
+                  "message (%s, %s)\n", call->callType, call->callToken);
+      return OO_FAILED;
+   }
+   rtdr = request->u.roundTripDelayRequest;
+   memset(rtdr, 0, sizeof(H245RoundTripDelayRequest));
+   rtdr->sequenceNumber = ++call->rtdrSend;
+
+   OOTRACEDBGA3("Built RoundTripDelayRequest message (%s, %s)\n", 
+                 call->callType, call->callToken);
+   ret = ooSendH245Msg(call, ph245msg);
+   if(ret != OO_OK)
+   {
+      OOTRACEERR3("Error:Failed to enqueue RoundTripDelayRequest to outbound queue. (%s, %s)\n",
+	call->callType, call->callToken);
+      return OO_FAILED;
+   } else {
+      cbData = (ooTimerCallback*) memAlloc(call->pctxt,
+                                     sizeof(ooTimerCallback));
+      if(!cbData)
+      {
+         OOTRACEERR3("Error:Unable to allocate memory for timer callback data."
+                     "(%s, %s)\n", call->callType, call->callToken);
+         return OO_FAILED;
+      }
+      cbData->call = call;
+      cbData->timerType = OO_RTD_TIMER;
+      if(!ooTimerCreate(call->pctxt, &call->timerList, &ooRTDTimerExpired,
+                        call->rtdrInterval, cbData, FALSE))
+      {
+         OOTRACEERR3("Error:Unable to create RTDR timer. "
+                     "(%s, %s)\n", call->callType, call->callToken);
+         memFreePtr(call->pctxt, cbData);
+         return OO_FAILED;
+      }
+
+   }
+
+   ooFreeH245Message(call, ph245msg);
+
+   return ret;
+}
+
+int ooOnReceivedRoundTripDelayRequest(OOH323CallData *call, 
+                                     H245SequenceNumber sequenceNumber)
+{
+   int ret=0;
+   H245Message *ph245msg=NULL;
+   H245ResponseMessage *response = NULL;
+   OOCTXT *pctxt=NULL;
+   H245RoundTripDelayResponse *rtdr;
+
+   ret = ooCreateH245Message(call, &ph245msg, 
+                             T_H245MultimediaSystemControlMessage_response);
+   if(ret != OO_OK)
+   {
+      OOTRACEERR3("ERROR:Memory allocation for RoundTripDelayResponse message "
+                  "failed (%s, %s)\n", call->callType, call->callToken);
+      return OO_FAILED;
+   }
+
+   pctxt = call->msgctxt;
+   ph245msg->msgType = OORequestDelayResponse;
+   response = ph245msg->h245Msg.u.response;
+   response->t = T_H245ResponseMessage_roundTripDelayResponse;
+   response->u.roundTripDelayResponse = (H245RoundTripDelayResponse *)ASN1MALLOC
+                                   (pctxt, sizeof(H245RoundTripDelayResponse));
+   if(!response->u.roundTripDelayResponse)
+   {
+      OOTRACEERR3("ERROR:Failed to allocate memory for H245RoundTripDelayResponse "
+                  "message (%s, %s)\n", call->callType, call->callToken);
+      return OO_FAILED;
+   }
+   rtdr = response->u.roundTripDelayResponse;
+   memset(rtdr, 0, sizeof(H245RoundTripDelayResponse));
+   rtdr->sequenceNumber = sequenceNumber;
+
+   OOTRACEDBGA3("Built RoundTripDelayResponse message (%s, %s)\n", 
+                 call->callType, call->callToken);
+   ret = ooSendH245Msg(call, ph245msg);
+   if(ret != OO_OK)
+   {
+      OOTRACEERR3("Error:Failed to enqueue RoundTripDelayResponse to outbound queue. (%s, %s)\n",
+	call->callType, call->callToken);
+   }
+
+   ooFreeH245Message(call, ph245msg);
+   
+   return ret;
+}
+
 /*
   We clear channel here. Ideally the remote endpoint should send 
   CloseLogicalChannel and then the channel should be cleared. But there's no
@@ -2609,6 +2735,11 @@
                ooOnReceivedRequestChannelClose(call, 
                                                request->u.requestChannelClose);
                break;
+	     case T_H245RequestMessage_roundTripDelayRequest:
+	       OOTRACEINFO4("Received roundTripDelayRequest - %d (%s, %s)\n",
+		  request->u.roundTripDelayRequest->sequenceNumber,  call->callType, call->callToken);
+	       ooOnReceivedRoundTripDelayRequest(call, request->u.roundTripDelayRequest->sequenceNumber);
+	       break;
             default:
                ;
          } /* End of Request Message */
@@ -2833,6 +2964,11 @@
                ooOnReceivedRequestChannelCloseReject(call, 
                                            response->u.requestChannelCloseReject);
                break;
+	     case T_H245ResponseMessage_roundTripDelayResponse:
+	       OOTRACEINFO4("Received roundTripDelayResponse - %d (%s, %s)\n",
+		  response->u.roundTripDelayResponse->sequenceNumber,  call->callType, call->callToken);
+	       call->rtdrRecv = response->u.roundTripDelayResponse->sequenceNumber;
+	       break;
             default:
                ;
          }
@@ -3932,6 +4068,18 @@
    return OO_OK;
 }
 
+int ooRTDTimerExpired(void *data)
+{
+   ooTimerCallback *cbData = (ooTimerCallback*)data;
+   OOH323CallData *call = cbData->call;
+   OOTRACEINFO3("Time to send new RTD request. (%s, %s)\n",
+                 call->callType, call->callToken);
+   ASN1MEMFREEPTR(call->pctxt, cbData);
+   ooSendRoundTripDelayRequest(call);
+   return OO_OK;
+
+}
+
 int ooOpenLogicalChannelTimerExpired(void *pdata)
 {
    ooTimerCallback *cbData = (ooTimerCallback*)pdata;

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.h
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.h?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.h (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ooh245.h Mon Mar 15 11:12:36 2010
@@ -631,6 +631,7 @@
 /** 
  * @} 
  */
+int ooRTDTimerExpired(void *pdata);
 
 int ooHandleRequestMode(OOH323CallData* call,
                                 H245RequestMode *requestMode);
@@ -642,6 +643,12 @@
                                       H245SequenceNumber sequenceNumber);
 
 void ooOnReceivedRequestModeAck(OOH323CallData* call, H245RequestModeAck * requestModeAck);
+
+int ooOnReceivedRoundTripDelayRequest(OOH323CallData *call,
+                                     H245SequenceNumber sequenceNumber);
+
+int ooSendRoundTripDelayRequest(OOH323CallData *call);
+
 
 #ifdef __cplusplus
 }

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ooh323.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ooh323.c (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ooh323.c Mon Mar 15 11:12:36 2010
@@ -1542,6 +1542,10 @@
          }   
       }
 
+   }
+   call->callState = OO_CALL_CONNECTED;
+   if (call->rtdrCount > 0 && call->rtdrInterval > 0) {
+        return ooSendRoundTripDelayRequest(call);
    }
    return OO_OK;  
 }
@@ -2239,7 +2243,8 @@
          }
          switch(pAlias->type)
          {
-         case T_H225AliasAddress_dialedDigits:
+	 /* Don't populate DialedDigits as alias they populate as prefixes
+            case T_H225AliasAddress_dialedDigits:
             pAliasEntry->t = T_H225AliasAddress_dialedDigits;
             pAliasEntry->u.dialedDigits = (ASN1IA5String)memAlloc(pctxt,
                                                      strlen(pAlias->value)+1);
@@ -2252,7 +2257,7 @@
             }
             strcpy(*(char**)&pAliasEntry->u.dialedDigits, pAlias->value);
             bValid = TRUE;
-            break;
+            break; */
          case T_H225AliasAddress_h323_ID:
             pAliasEntry->t = T_H225AliasAddress_h323_ID;
             pAliasEntry->u.h323_ID.nchars = strlen(pAlias->value);

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ooq931.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ooq931.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ooq931.c (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ooq931.c Mon Mar 15 11:12:36 2010
@@ -2003,6 +2003,11 @@
    /* memReset(&gH323ep.msgctxt); */
    memReset(call->msgctxt);
 
+   call->callState = OO_CALL_CONNECTED;
+   
+   if (call->rtdrCount > 0 && call->rtdrInterval > 0) {
+	return ooSendRoundTripDelayRequest(call);
+   }
    return OO_OK;
 }
 
@@ -3669,7 +3674,9 @@
       "OOUserInputIndication",
       "OORequestModeAck",
       "OORequestModeReject",
-      "OORequestMode"
+      "OORequestMode",
+      "OORequestDelayResponse",
+      "OORequestDelayRequest"
    };
    int idx = msgType - OO_MSGTYPE_MIN;
    return ooUtilsGetText (idx, msgTypeText, OONUMBEROF(msgTypeText));

Modified: team/rmudgett/call_waiting/addons/ooh323c/src/ootypes.h
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/addons/ooh323c/src/ootypes.h?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/addons/ooh323c/src/ootypes.h (original)
+++ team/rmudgett/call_waiting/addons/ooh323c/src/ootypes.h Mon Mar 15 11:12:36 2010
@@ -188,8 +188,10 @@
 #define OORequestModeAck		   131
 #define OORequestModeReject		   132
 #define OORequestMode			   133
-
-#define OO_MSGTYPE_MAX                     133
+#define OORequestDelayResponse		   134
+#define OORequestDelayRequest		   135
+
+#define OO_MSGTYPE_MAX                     135
 
 /* Timer types */
 #define OO_CALLESTB_TIMER  (1<<0)
@@ -200,6 +202,7 @@
 #define OO_RCC_TIMER       (1<<5)
 #define OO_SESSION_TIMER   (1<<6)
 #define OO_H245CONNECT_TIMER (1<<7)
+#define OO_RTD_TIMER	   (1<<8)
 
 /** Maximum length for received messages */
 #define MAXMSGLEN 4096

Modified: team/rmudgett/call_waiting/cdr/cdr_sqlite3_custom.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/cdr/cdr_sqlite3_custom.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/cdr/cdr_sqlite3_custom.c (original)
+++ team/rmudgett/call_waiting/cdr/cdr_sqlite3_custom.c Mon Mar 15 11:12:36 2010
@@ -219,7 +219,7 @@
 	}
 }
 
-static int sqlite3_log(struct ast_cdr *cdr)
+static int write_cdr(struct ast_cdr *cdr)
 {
 	int res = 0;
 	char *error = NULL;
@@ -329,7 +329,7 @@
 		}
 	}
 
-	res = ast_cdr_register(name, desc, sqlite3_log);
+	res = ast_cdr_register(name, desc, write_cdr);
 	if (res) {
 		ast_log(LOG_ERROR, "Unable to register custom SQLite3 CDR handling\n");
 		free_config(0);

Modified: team/rmudgett/call_waiting/cel/cel_sqlite3_custom.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/cel/cel_sqlite3_custom.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/cel/cel_sqlite3_custom.c (original)
+++ team/rmudgett/call_waiting/cel/cel_sqlite3_custom.c Mon Mar 15 11:12:36 2010
@@ -226,7 +226,7 @@
 	}
 }
 
-static void sqlite3_log(const struct ast_event *event, void *userdata)
+static void write_cel(const struct ast_event *event, void *userdata)
 {
 	char *error = NULL;
 	char *sql = NULL;
@@ -336,7 +336,7 @@
 		}
 	}
 
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, sqlite3_log, "CEL sqlite3 custom backend", NULL, AST_EVENT_IE_END);
+	event_sub = ast_event_subscribe(AST_EVENT_CEL, write_cel, "CEL sqlite3 custom backend", NULL, AST_EVENT_IE_END);
 	if (!event_sub) {
 		ast_log(LOG_ERROR, "Unable to register custom SQLite3 CEL handling\n");
 		free_config();

Modified: team/rmudgett/call_waiting/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/channels/chan_dahdi.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/channels/chan_dahdi.c (original)
+++ team/rmudgett/call_waiting/channels/chan_dahdi.c Mon Mar 15 11:12:36 2010
@@ -17362,6 +17362,8 @@
 				confp->mfcr2.forced_release = ast_true(v->value) ? 1 : 0;
 			} else if (!strcasecmp(v->name, "mfcr2_immediate_accept")) {
 				confp->mfcr2.immediate_accept = ast_true(v->value) ? 1 : 0;
+			} else if (!strcasecmp(v->name, "mfcr2_skip_category")) {
+				confp->mfcr2.skip_category_request = ast_true(v->value) ? 1 : 0;
 			} else if (!strcasecmp(v->name, "mfcr2_call_files")) {
 				confp->mfcr2.call_files = ast_true(v->value) ? 1 : 0;
 			} else if (!strcasecmp(v->name, "mfcr2_max_ani")) {

Modified: team/rmudgett/call_waiting/channels/chan_h323.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/channels/chan_h323.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/channels/chan_h323.c (original)
+++ team/rmudgett/call_waiting/channels/chan_h323.c Mon Mar 15 11:12:36 2010
@@ -914,7 +914,11 @@
 		res = 0;
 		break;
 	case AST_CONTROL_SRCUPDATE:
-		ast_rtp_instance_new_source(pvt->rtp);
+		ast_rtp_instance_update_source(pvt->rtp);
+		res = 0;
+		break;
+	case AST_CONTROL_SRCCHANGE:
+		ast_rtp_instance_change_source(pvt->rtp);
 		res = 0;
 		break;
 	case AST_CONTROL_PROCEEDING:

Modified: team/rmudgett/call_waiting/channels/chan_mgcp.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/channels/chan_mgcp.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/channels/chan_mgcp.c (original)
+++ team/rmudgett/call_waiting/channels/chan_mgcp.c Mon Mar 15 11:12:36 2010
@@ -1456,7 +1456,10 @@
 		ast_moh_stop(ast);
 		break;
 	case AST_CONTROL_SRCUPDATE:
-		ast_rtp_instance_new_source(sub->rtp);
+		ast_rtp_instance_update_source(sub->rtp);
+		break;
+	case AST_CONTROL_SRCCHANGE:
+		ast_rtp_instance_change_source(sub->rtp);
 		break;
 	case AST_CONTROL_PROGRESS:
 	case AST_CONTROL_PROCEEDING:

Modified: team/rmudgett/call_waiting/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/channels/chan_sip.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/channels/chan_sip.c (original)
+++ team/rmudgett/call_waiting/channels/chan_sip.c Mon Mar 15 11:12:36 2010
@@ -4722,7 +4722,6 @@
 	if (dialog->rtp) { /* Audio */
 		ast_rtp_instance_set_prop(dialog->rtp, AST_RTP_PROPERTY_DTMF, ast_test_flag(&dialog->flags[0], SIP_DTMF) == SIP_DTMF_RFC2833);
 		ast_rtp_instance_set_prop(dialog->rtp, AST_RTP_PROPERTY_DTMF_COMPENSATE, ast_test_flag(&dialog->flags[1], SIP_PAGE2_RFC2833_COMPENSATE));
-		ast_rtp_instance_set_prop(dialog->rtp, AST_RTP_PROPERTY_CONSTANT_SSRC, ast_test_flag(&dialog->flags[1], SIP_PAGE2_CONSTANT_SSRC));
 		ast_rtp_instance_set_timeout(dialog->rtp, peer->rtptimeout);
 		ast_rtp_instance_set_hold_timeout(dialog->rtp, peer->rtpholdtimeout);
 		/* Set Frame packetization */
@@ -4732,7 +4731,6 @@
 	if (dialog->vrtp) { /* Video */
 		ast_rtp_instance_set_timeout(dialog->vrtp, peer->rtptimeout);
 		ast_rtp_instance_set_hold_timeout(dialog->vrtp, peer->rtpholdtimeout);
-		ast_rtp_instance_set_prop(dialog->vrtp, AST_RTP_PROPERTY_CONSTANT_SSRC, ast_test_flag(&dialog->flags[1], SIP_PAGE2_CONSTANT_SSRC));
 	}
 	if (dialog->trtp) { /* Realtime text */
 		ast_rtp_instance_set_timeout(dialog->trtp, peer->rtptimeout);
@@ -5811,7 +5809,7 @@
 
 		ast_setstate(ast, AST_STATE_UP);
 		ast_debug(1, "SIP answering channel: %s\n", ast->name);
-		ast_rtp_instance_new_source(p->rtp);
+		ast_rtp_instance_update_source(p->rtp);
 		res = transmit_response_with_sdp(p, "200 OK", &p->initreq, XMIT_CRITICAL, FALSE, TRUE);
 		ast_set_flag(&p->flags[1], SIP_PAGE2_DIALOG_ESTABLISHED);
 	}
@@ -5843,7 +5841,7 @@
 				if ((ast->_state != AST_STATE_UP) &&
 				    !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) &&
 				    !ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
-					ast_rtp_instance_new_source(p->rtp);
+					ast_rtp_instance_update_source(p->rtp);
 					if (!global_prematuremediafilter) {
 						p->invitestate = INV_EARLY_MEDIA;
 						transmit_provisional_response(p, "183 Session Progress", &p->initreq, TRUE);
@@ -6174,11 +6172,11 @@
 		res = -1;
 		break;
 	case AST_CONTROL_HOLD:
-		ast_rtp_instance_new_source(p->rtp);
+		ast_rtp_instance_update_source(p->rtp);
 		ast_moh_start(ast, data, p->mohinterpret);
 		break;
 	case AST_CONTROL_UNHOLD:
-		ast_rtp_instance_new_source(p->rtp);
+		ast_rtp_instance_update_source(p->rtp);
 		ast_moh_stop(ast);
 		break;
 	case AST_CONTROL_VIDUPDATE:	/* Request a video frame update */
@@ -6197,7 +6195,10 @@
 		}
 		break;
 	case AST_CONTROL_SRCUPDATE:
-		ast_rtp_instance_new_source(p->rtp);
+		ast_rtp_instance_update_source(p->rtp);
+		break;
+	case AST_CONTROL_SRCCHANGE:
+		ast_rtp_instance_change_source(p->rtp);
 		break;
 	case AST_CONTROL_CONNECTED_LINE:
 		update_connectedline(p, data, datalen);
@@ -13050,15 +13051,30 @@
 				/* URI not found */
 				if (res == AUTH_PEER_NOT_DYNAMIC) {
 					transmit_response(p, "403 Forbidden", &p->initreq);
-					if (global_authfailureevents)
-						manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: AUTH_PEER_NOT_DYNAMIC\r\nAddress: %s\r\nPort: %d\r\n",
+					if (global_authfailureevents) {
+						manager_event(EVENT_FLAG_SYSTEM, "PeerStatus",
+							"ChannelType: SIP\r\n"
+							"Peer: SIP/%s\r\n"
+							"PeerStatus: Rejected\r\n"
+							"Cause: AUTH_PEER_NOT_DYNAMIC\r\n"
+							"Address: %s\r\n"
+							"Port: %d\r\n",
 							name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
 					}
-				else
+				} else {
 					transmit_response(p, "404 Not found", &p->initreq);
-					if (global_authfailureevents)
-						manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: %s\r\nAddress: %s\r\nPort: %d\r\n",
-							      name, (res == AUTH_USERNAME_MISMATCH) ? "AUTH_USERNAME_MISMATCH" : "URI_NOT_FOUND", ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
+					if (global_authfailureevents) {
+						manager_event(EVENT_FLAG_SYSTEM, "PeerStatus",
+							"ChannelType: SIP\r\n"
+							"Peer: SIP/%s\r\n"
+							"PeerStatus: Rejected\r\n"
+							"Cause: %s\r\n"
+							"Address: %s\r\n"
+							"Port: %d\r\n",
+							name, (res == AUTH_USERNAME_MISMATCH) ? "AUTH_USERNAME_MISMATCH" : "URI_NOT_FOUND",
+							ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
+					}
+				}
 			}
 			break;
 		case AUTH_BAD_TRANSPORT:
@@ -20432,12 +20448,6 @@
 				res = -1;
 				goto request_invite_cleanup;
 			}
-			if (p->rtp) {
-				ast_rtp_instance_set_prop(p->rtp, AST_RTP_PROPERTY_CONSTANT_SSRC, ast_test_flag(&p->flags[1], SIP_PAGE2_CONSTANT_SSRC));
-			}
-			if (p->vrtp) {
-				ast_rtp_instance_set_prop(p->vrtp, AST_RTP_PROPERTY_CONSTANT_SSRC, ast_test_flag(&p->flags[1], SIP_PAGE2_CONSTANT_SSRC));
-			}
 		} else {	/* No SDP in invite, call control session */
 			p->jointcapability = p->capability;
 			ast_debug(2, "No SDP in Invite, third party call control\n");
@@ -24358,9 +24368,6 @@
 	} else if (!strcasecmp(v->name, "buggymwi")) {
 		ast_set_flag(&mask[1], SIP_PAGE2_BUGGY_MWI);
 		ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_BUGGY_MWI);
-	} else if (!strcasecmp(v->name, "constantssrc")) {
-		ast_set_flag(&mask[1], SIP_PAGE2_CONSTANT_SSRC);
-		ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_CONSTANT_SSRC);
 	} else
 		res = 0;
 

Modified: team/rmudgett/call_waiting/channels/chan_skinny.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/channels/chan_skinny.c?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/channels/chan_skinny.c (original)
+++ team/rmudgett/call_waiting/channels/chan_skinny.c Mon Mar 15 11:12:36 2010
@@ -4304,7 +4304,10 @@
 	case AST_CONTROL_PROCEEDING:
 		break;
 	case AST_CONTROL_SRCUPDATE:
-		ast_rtp_instance_new_source(sub->rtp);
+		ast_rtp_instance_update_source(sub->rtp);
+		break;
+	case AST_CONTROL_SRCCHANGE:
+		ast_rtp_instance_change_source(sub->rtp);
 		break;
 	case AST_CONTROL_CONNECTED_LINE:
 		update_connectedline(sub, data, datalen);

Modified: team/rmudgett/call_waiting/channels/sip/include/sip.h
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/call_waiting/channels/sip/include/sip.h?view=diff&rev=252487&r1=252486&r2=252487
==============================================================================
--- team/rmudgett/call_waiting/channels/sip/include/sip.h (original)
+++ team/rmudgett/call_waiting/channels/sip/include/sip.h Mon Mar 15 11:12:36 2010
@@ -309,7 +309,6 @@
 #define SIP_PAGE2_Q850_REASON           (1 << 4)    /*!< DP: Get/send cause code via Reason header */
 
 /* Space for addition of other realtime flags in the future */
-#define SIP_PAGE2_CONSTANT_SSRC         (1 << 7)    /*!< GDP: Don't change SSRC on reinvite */
 #define SIP_PAGE2_SYMMETRICRTP          (1 << 8)    /*!< GDP: Whether symmetric RTP is enabled or not */
 #define SIP_PAGE2_STATECHANGEQUEUE      (1 << 9)    /*!< D: Unsent state pending change exists */
 
@@ -347,7 +346,7 @@
 	SIP_PAGE2_VIDEOSUPPORT | SIP_PAGE2_T38SUPPORT | SIP_PAGE2_RFC2833_COMPENSATE | \
 	SIP_PAGE2_BUGGY_MWI | SIP_PAGE2_TEXTSUPPORT | SIP_PAGE2_FAX_DETECT | \
 	SIP_PAGE2_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS | SIP_PAGE2_PREFERRED_CODEC | \
-	SIP_PAGE2_RPID_IMMEDIATE | SIP_PAGE2_RPID_UPDATE | SIP_PAGE2_SYMMETRICRTP | SIP_PAGE2_CONSTANT_SSRC |\
+	SIP_PAGE2_RPID_IMMEDIATE | SIP_PAGE2_RPID_UPDATE | SIP_PAGE2_SYMMETRICRTP |\
 	SIP_PAGE2_Q850_REASON)
 
 /*@}*/

Modified: team/rmudgett/call_waiting/configs/chan_ooh323.conf.sample

[... 433 lines stripped ...]



More information about the asterisk-commits mailing list