[svn-commits] may: branch may/ooh323_ipv6_direct_rtp r307671 - in /team/may/ooh323_ipv6_dir...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Feb 11 06:17:34 CST 2011


Author: may
Date: Fri Feb 11 06:17:27 2011
New Revision: 307671

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=307671
Log:
Merged revisions 307207,307246,307289,307332,307375,307411,307521-307522,307527,307561 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/team/may/ooh323_ipv6

................
  r307207 | root | 2011-02-09 22:20:42 +0300 (Wed, 09 Feb 2011) | 12 lines
  
  Merged revisions 307192 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r307192 | tzafrir | 2011-02-09 13:17:01 -0600 (Wed, 09 Feb 2011) | 4 lines
    
    clarify warning when no loadable module support
    
    Clarify warning message when LOADABLE_MODULES is disabled but we still
    try to load a module.
  ........
................
  r307246 | root | 2011-02-09 23:20:39 +0300 (Wed, 09 Feb 2011) | 40 lines
  
  Merged revisions 307229,307231 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ................
    r307229 | jpeeler | 2011-02-09 13:53:28 -0600 (Wed, 09 Feb 2011) | 24 lines
    
    Merged revisions 307228 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.8
    
    ................
      r307228 | jpeeler | 2011-02-09 13:52:51 -0600 (Wed, 09 Feb 2011) | 17 lines
      
      Merged revisions 307227 via svnmerge from 
      https://origsvn.digium.com/svn/asterisk/branches/1.6.2
      
      ........
        r307227 | jpeeler | 2011-02-09 13:52:12 -0600 (Wed, 09 Feb 2011) | 11 lines
        
        Make sure to set parking dial context for non-default parking lots.
        
        Since parking_con_dial isn't settable, set all parking lots to "park-dial".
        
        (closes issue #17946)
        Reported by: bluecrow76
        Patches:
              asterisk-1.8.0-beta4-multipark-fixes-2010SEP02.diff uploaded by bluecrow76 (license 270)
              modified by me
      ........
    ................
  ................
    r307231 | jpeeler | 2011-02-09 14:11:11 -0600 (Wed, 09 Feb 2011) | 7 lines
    
    Allow parkedmusicclass to be settable for non-default parking lots.
    
    (closes issue #17946)
    Reported by: bluecrow76
    Patches:
          asterisk-1.8.0-beta4-multipark-fixes-2010SEP02.diff
  ................
................
  r307289 | root | 2011-02-10 00:20:41 +0300 (Thu, 10 Feb 2011) | 22 lines
  
  Merged revisions 307274 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ................
    r307274 | jpeeler | 2011-02-09 15:08:22 -0600 (Wed, 09 Feb 2011) | 15 lines
    
    Merged revisions 307273 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.8
    
    ........
      r307273 | jpeeler | 2011-02-09 15:06:33 -0600 (Wed, 09 Feb 2011) | 8 lines
      
      Add missing debug info for ao2_link for use with REF_DEBUG in ao2 callback.
      
      (closes issue #18758)
      Reported by: rgagnon
      Patches: 
            branch-1.8-r306540-astobj-fix.diff uploaded by rgagnon (license 1202)
            trunk-r306540-astobj-fix.diff uploaded by rgagnon (license 1202)
    ........
  ................
................
  r307332 | root | 2011-02-10 01:20:31 +0300 (Thu, 10 Feb 2011) | 15 lines
  
  Merged revisions 307315 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r307315 | lathama | 2011-02-09 15:46:24 -0600 (Wed, 09 Feb 2011) | 8 lines
    
    Disable color during running test
    
    (closes issue #18776)
    Reported by: alecdavis
    Patches:
         ast_deb_init.diff uploaded by lathama (license 1028)
    Tested by: andrel, lathama
  ........
................
  r307375 | root | 2011-02-10 02:20:41 +0300 (Thu, 10 Feb 2011) | 21 lines
  
  Merged revisions 307359 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ........
    r307359 | jpeeler | 2011-02-09 16:48:02 -0600 (Wed, 09 Feb 2011) | 15 lines
    
    Add new manager action MeetmeListRooms.
    
    From the submitter:
    I've added a new manager action to list only the active conferences on an
    Asterisk system. It shows the same data displayed when you run a 'meetme list'
    on the Asterisk CLI.
    
    (closes issue #17905)
    Reported by: rcasas
    Patches: 
          app_meetme.c.patch uploaded by rcasas (license 641)
    
    Review: https://reviewboard.asterisk.org/r/874/
  ........
................
  r307411 | root | 2011-02-10 17:20:50 +0300 (Thu, 10 Feb 2011) | 1 line
  
  automerge cancel
................
  r307521 | may | 2011-02-10 23:10:14 +0300 (Thu, 10 Feb 2011) | 30 lines
  
  Recorded merge of revisions 307396 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/trunk
  
  ........
    r307396 | may | 2011-02-10 16:29:19 +0300 (Thu, 10 Feb 2011) | 23 lines
    
    Corrections for properly work with H.323v2 (older) endpoints and other
    small fixes.
    
    Interpret remote side H.225 version.
    
    Corrections for H.323v2 endpoints: 
    don't start TCS and MSD before connect,
    don't start TCS and MSD by accepting H.245 connection,
    start TCS and MSD by StartH245 facility message.
    
    Other fixes:
    fix non zeroended remoteDisplayName issue, small fixes in call clearing
    by closing H.245 connection, tcp keepalive introduced on TCP
    connections (now is hardcoded, will be configurable in the future), 
    don't force H.245tunneling if FastStart is active, don't send Alerting 
    singal more than once per call.
    
    (closes issue #18542)
    Reported by: vmikhelson
    Patches: 
          issue18542-final-3.patch uploaded by may213 (license 454)
    Tested by: vmikhelson
  ........
................
  r307522 | may | 2011-02-10 23:11:43 +0300 (Thu, 10 Feb 2011) | 2 lines
  
  reinit automerge
................
  r307527 | root | 2011-02-10 23:17:36 +0300 (Thu, 10 Feb 2011) | 26 lines
  
  Merged revisions 307433,307468 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ................
    r307433 | dvossel | 2011-02-10 11:12:10 -0600 (Thu, 10 Feb 2011) | 6 lines
    
    Fixes bug in chan_sip where nativeformats are not set correctly.
    
    The nativeformats field was being overwritten when it should have been
    appended too.  This caused some format capabilities to be lost briefly and
    some log warnings to be output.
  ................
    r307468 | mmichelson | 2011-02-10 11:45:24 -0600 (Thu, 10 Feb 2011) | 11 lines
    
    Merged revisions 307467 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.8
    
    ........
      r307467 | mmichelson | 2011-02-10 11:44:42 -0600 (Thu, 10 Feb 2011) | 5 lines
      
      Fix a gaffe in the CCSS sample configuration.
      
      Discovered by Philippe Lindheimer and pointed out on #asterisk-dev
    ........
  ................
................
  r307561 | root | 2011-02-11 02:22:23 +0300 (Fri, 11 Feb 2011) | 36 lines
  
  Merged revisions 307537 via svnmerge from 
  file:///srv/subversion/repos/asterisk/trunk
  
  ................
    r307537 | qwell | 2011-02-10 16:43:51 -0600 (Thu, 10 Feb 2011) | 29 lines
    
    Merged revisions 307536 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.8
    
    ................
      r307536 | qwell | 2011-02-10 16:39:30 -0600 (Thu, 10 Feb 2011) | 22 lines
      
      Merged revisions 307535 via svnmerge from 
      https://origsvn.digium.com/svn/asterisk/branches/1.6.2
      
      ................
        r307535 | qwell | 2011-02-10 16:35:49 -0600 (Thu, 10 Feb 2011) | 15 lines
        
        Merged revisions 307534 via svnmerge from 
        https://origsvn.digium.com/svn/asterisk/branches/1.4
        
        ........
          r307534 | qwell | 2011-02-10 16:33:09 -0600 (Thu, 10 Feb 2011) | 8 lines
          
          Remove color when executing commands via a remote console.
          
          Essentially this makes '-x' imply '-n' on rasterisk.  This was done in a
          different and incomplete way previously, which I'm reverting here.
          
          (issue #18776)
          Reported by: alecdavis
        ........
      ................
    ................
  ................
................

Modified:
    team/may/ooh323_ipv6_direct_rtp/   (props changed)
    team/may/ooh323_ipv6_direct_rtp/CHANGES
    team/may/ooh323_ipv6_direct_rtp/addons/chan_ooh323.c
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooCalls.h
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooSocket.c
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooStackCmds.c
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/oochannels.c
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh245.c
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh323.c
    team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooq931.c
    team/may/ooh323_ipv6_direct_rtp/apps/app_meetme.c
    team/may/ooh323_ipv6_direct_rtp/channels/chan_sip.c
    team/may/ooh323_ipv6_direct_rtp/configs/ccss.conf.sample
    team/may/ooh323_ipv6_direct_rtp/include/asterisk/format_cap.h
    team/may/ooh323_ipv6_direct_rtp/main/asterisk.c
    team/may/ooh323_ipv6_direct_rtp/main/astobj2.c
    team/may/ooh323_ipv6_direct_rtp/main/features.c
    team/may/ooh323_ipv6_direct_rtp/main/format_cap.c
    team/may/ooh323_ipv6_direct_rtp/main/loader.c

Propchange: team/may/ooh323_ipv6_direct_rtp/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Propchange: team/may/ooh323_ipv6_direct_rtp/
------------------------------------------------------------------------------
--- svnmerge-custom (original)
+++ svnmerge-custom Fri Feb 11 06:17:27 2011
@@ -1,1 +1,1 @@
-/team/may/ooh323_ipv6:1-307185
+/team/may/ooh323_ipv6:1-307670

Propchange: team/may/ooh323_ipv6_direct_rtp/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Feb 11 06:17:27 2011
@@ -1,1 +1,1 @@
-/trunk:1-307184
+/trunk:1-307560

Modified: team/may/ooh323_ipv6_direct_rtp/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/CHANGES?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/CHANGES (original)
+++ team/may/ooh323_ipv6_direct_rtp/CHANGES Fri Feb 11 06:17:27 2011
@@ -12,11 +12,17 @@
 --- Functionality changes from Asterisk 1.8 to Asterisk 1.10 -----------------
 ------------------------------------------------------------------------------
 
+Parking
+-------
+ * parkedmusicclass can now be set for non-default parking lots.
+
 Asterisk Manager Interface
 --------------------------
  * PeerStatus now includes Address and Port.
  * Added Hold events for when the remote party puts the call on and off hold
    for chan_dahdi ISDN channels.
+ * Added new action MeetmeListRooms to list active conferences (shows same
+   data as "meetme list" at the CLI).
 
 Asterisk HTTP Server
 --------------------------

Modified: team/may/ooh323_ipv6_direct_rtp/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/chan_ooh323.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/chan_ooh323.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/chan_ooh323.c Fri Feb 11 06:17:27 2011
@@ -186,6 +186,7 @@
 	int nat;
 	int amaflags;
 	int progsent;			/* progress is sent */
+	int alertsent;			/* alerting is sent */
 	struct ast_dsp *vad;
 	struct OOH323Regex *rtpmask;	/* rtp ip regexp */
 	char rtpmaskstr[120];
@@ -1231,12 +1232,16 @@
 	    break;
       case AST_CONTROL_RINGING:
 	    if (ast->_state == AST_STATE_RING || ast->_state == AST_STATE_RINGING) {
-	    	if (gH323Debug) 
-			ast_log(LOG_DEBUG,"Sending manual ringback for %s, res = %d\n", 
-			callToken,
-            		ooManualRingback(callToken));
-		 else
-	    		ooManualRingback(callToken);
+		if (!p->alertsent) {
+			if (gH323Debug) {
+				ast_debug(1, "Sending manual ringback for %s, res = %d\n",
+					callToken,
+					ooManualRingback(callToken));
+			} else {
+				ooManualRingback(callToken);
+			}
+			p->alertsent = 1;
+                }
 	    }
 	 break;
 	case AST_CONTROL_SRCUPDATE:

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooCalls.h
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooCalls.h?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooCalls.h (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooCalls.h Fri Feb 11 06:17:27 2011
@@ -174,6 +174,7 @@
    OOCallState          callState;
    OOCallClearReason    callEndReason;
    int			q931cause;
+   ASN1UINT		h225version;
    unsigned             h245ConnectionAttempts;
    OOH245SessionState   h245SessionState;
    int                  dtmfmode;

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooSocket.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooSocket.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooSocket.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooSocket.c Fri Feb 11 06:17:27 2011
@@ -199,8 +199,9 @@
 {
    int on;
    OOSOCKET sock;
-
+   int keepalive = 1, keepcnt = 24, keepidle = 120, keepintvl = 30;
    struct linger linger;
+
    if (family == 6) {
    	sock = socket (AF_INET6,
                              	SOCK_STREAM,
@@ -231,6 +232,11 @@
       OOTRACEERR1("Error:Failed to set socket option linger\n");
       return ASN_E_INVSOCKET;
    }
+   setsockopt (sock, SOL_SOCKET, SO_KEEPALIVE, (const char *)&keepalive,
+			sizeof(keepalive));
+   setsockopt (sock, SOL_TCP, TCP_KEEPCNT, &keepcnt, sizeof(keepcnt));
+   setsockopt (sock, SOL_TCP, TCP_KEEPIDLE, &keepidle, sizeof(keepidle));
+   setsockopt (sock, SOL_TCP, TCP_KEEPINTVL, &keepintvl, sizeof(keepintvl));
    *psocket = sock;
    return ASN_OK;
 }

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooStackCmds.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooStackCmds.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooStackCmds.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooStackCmds.c Fri Feb 11 06:17:27 2011
@@ -261,6 +261,9 @@
          return OO_STKCMD_CONNECTIONERR;
    }
 
+   if (call->h225version < 4)
+      return OO_STKCMD_SUCCESS;
+
    memset(&cmd, 0, sizeof(OOStackCommand));
    cmd.type = OO_CMD_MANUALPROGRESS;
    cmd.param1 = (void*) malloc(strlen(callToken)+1);

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/oochannels.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/oochannels.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/oochannels.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/oochannels.c Fri Feb 11 06:17:27 2011
@@ -484,15 +484,6 @@
    OOTRACEINFO3("H.245 connection established (%s, %s)\n", 
                 call->callType, call->callToken);
 
-
-   /* Start terminal capability exchange and master slave determination */
-   ret = ooSendTermCapMsg(call);
-   if(ret != OO_OK)
-   {
-      OOTRACEERR3("ERROR:Sending Terminal capability message (%s, %s)\n",
-                   call->callType, call->callToken);
-      return ret;
-   }
    return OO_OK;
 }
 
@@ -1847,6 +1838,8 @@
       }
       else{
          ooCloseH245Connection(call);
+	 if(call->callState < OO_CALL_CLEAR)
+	    call->callState = OO_CALL_CLEAR;
       }
       break;
    case OOCloseLogicalChannel:

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh245.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh245.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh245.c Fri Feb 11 06:17:27 2011
@@ -2167,14 +2167,12 @@
                }
             }
             ooCloseH245Connection(call);
+	    if (call->callState < OO_CALL_CLEAR)
+	        call->callState = OO_CALL_CLEAR;
          }
          else{
 
             call->h245SessionState = OO_H245SESSION_ENDRECVD;
-#if 0
-            if(call->callState < OO_CALL_CLEAR)
-               call->callState = OO_CALL_CLEAR;
-#else 
             if(call->logicalChans)
             {
                OOTRACEINFO3("In response to received EndSessionCommand - "
@@ -2183,7 +2181,6 @@
                ooClearAllLogicalChannels(call);
             }
             ooSendEndSessionCommand(call);
-#endif
          }
             
             

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh323.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh323.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooh323.c Fri Feb 11 06:17:27 2011
@@ -40,6 +40,7 @@
 int ooOnReceivedAlerting(OOH323CallData *call, Q931Message *q931Msg);
 int ooOnReceivedProgress(OOH323CallData *call, Q931Message *q931Msg);
 int ooHandleDisplayIE(OOH323CallData *call, Q931Message *q931Msg);
+int ooHandleH2250ID (OOH323CallData *call, H225ProtocolIdentifier protocolIdentifier);
 
 int ooHandleDisplayIE(OOH323CallData *call, Q931Message *q931Msg) {
    Q931InformationElement* pDisplayIE;
@@ -57,6 +58,17 @@
    return OO_OK;
 }
 
+int ooHandleH2250ID (OOH323CallData *call, H225ProtocolIdentifier protocolIdentifier) {
+   if (!call->h225version && (protocolIdentifier.numids >= 6) &&
+	(protocolIdentifier.subid[3] == 2250)) {
+	call->h225version = protocolIdentifier.subid[5];
+	OOTRACEDBGC4("Extract H.225 remote version, it's %d, (%s, %s)\n", call->h225version, 
+						call->callType, call->callToken);
+
+   }
+   return OO_OK;
+}
+
 int ooHandleFastStart(OOH323CallData *call, H225Facility_UUIE *facility)
 {
    H245OpenLogicalChannel* olc;
@@ -241,7 +253,9 @@
        }
       }
    } else if (OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
-	ret =ooSendTCSandMSD(call);
+	if (call->h225version >= 4) {
+		ret =ooSendTCSandMSD(call);
+	}
 	if (ret != OO_OK)
 		return ret;
    }
@@ -374,6 +388,7 @@
                   "%s\n", call->callType, call->callToken);
       return OO_FAILED;
    }
+   ooHandleH2250ID(call, setup->protocolIdentifier);
    memcpy(call->callIdentifier.guid.data, setup->callIdentifier.guid.data, 
           setup->callIdentifier.guid.numocts);
    call->callIdentifier.guid.numocts = setup->callIdentifier.guid.numocts;
@@ -386,9 +401,9 @@
    pDisplayIE = ooQ931GetIE(q931Msg, Q931DisplayIE);
    if(pDisplayIE)
    {
-      call->remoteDisplayName = (char *) memAlloc(call->pctxt, 
+      call->remoteDisplayName = (char *) memAllocZ(call->pctxt, 
                                  pDisplayIE->length*sizeof(ASN1OCTET)+1);
-      strcpy(call->remoteDisplayName, (char *)pDisplayIE->data);
+      strncpy(call->remoteDisplayName, (char *)pDisplayIE->data, pDisplayIE->length*sizeof(ASN1OCTET));
    }
    /*Extract Remote Aliases, if present*/
    if(setup->m.sourceAddressPresent)
@@ -628,6 +643,7 @@
       return OO_FAILED;
    }
 
+   ooHandleH2250ID(call, callProceeding->protocolIdentifier);
    /* Handle fast-start */
    if(OO_TESTFLAG (call->flags, OO_M_FASTSTART))
    {
@@ -856,6 +872,7 @@
       }
       return OO_FAILED;
    }
+   ooHandleH2250ID(call, alerting->protocolIdentifier);
    /*Handle fast-start */
    if(OO_TESTFLAG (call->flags, OO_M_FASTSTART) &&
       !OO_TESTFLAG(call->flags, OO_M_FASTSTARTANSWERED))
@@ -1006,7 +1023,9 @@
       	OOTRACEINFO3("Tunneling and h245address provided."
                      "Giving preference to Tunneling (%s, %s)\n", 
                    	call->callType, call->callToken);
-	ret =ooSendTCSandMSD(call);
+	if (call->h225version >= 4) {
+		ret =ooSendTCSandMSD(call);
+	}
 	if (ret != OO_OK)
 		return ret;
 
@@ -1048,6 +1067,10 @@
             call->callState = OO_CALL_CLEAR;
          }
          return OO_FAILED;
+       } else {
+	if (call->h225version >= 4) {
+		ret =ooSendTCSandMSD(call);
+	}
        }
       }
    }
@@ -1086,6 +1109,7 @@
       }
       return OO_FAILED;
    }
+   ooHandleH2250ID(call, progress->protocolIdentifier);
    /*Handle fast-start */
    if(OO_TESTFLAG (call->flags, OO_M_FASTSTART) &&
       !OO_TESTFLAG(call->flags, OO_M_FASTSTARTANSWERED))
@@ -1237,7 +1261,9 @@
       	OOTRACEINFO3("Tunneling and h245address provided."
                      "Giving preference to Tunneling (%s, %s)\n", 
                      call->callType, call->callToken);
-	ret =ooSendTCSandMSD(call);
+	if (call->h225version >= 4) {
+		ret =ooSendTCSandMSD(call);
+	}
 	if (ret != OO_OK)
 		return ret;
    } else if(progress->m.h245AddressPresent) {
@@ -1278,6 +1304,10 @@
             call->callState = OO_CALL_CLEAR;
          }
          return OO_FAILED;
+       } else {
+	if (call->h225version >= 4) {
+		ret =ooSendTCSandMSD(call);
+	}
        }
       }
    }
@@ -1323,7 +1353,7 @@
       }
       return OO_FAILED;
    }
-
+   ooHandleH2250ID(call, connect->protocolIdentifier);
    /*Handle fast-start */
    if(OO_TESTFLAG (call->flags, OO_M_FASTSTART) && 
       !OO_TESTFLAG (call->flags, OO_M_FASTSTARTANSWERED))
@@ -1559,24 +1589,24 @@
       OOTRACEDBGB3("Finished tunneled messages in Connect. (%s, %s)\n",
                     call->callType, call->callToken);
 
-      /*
+   }
+   /*
         Send TCS as call established and no capability exchange has yet 
         started. This will be true only when separate h245 connection is not
         established and tunneling is being used.
-      */
-      if(call->localTermCapState == OO_LocalTermCapExchange_Idle)
-      {
-         /*Start terminal capability exchange and master slave determination */
-         ret = ooSendTermCapMsg(call);
-         if(ret != OO_OK)
-         {
-            OOTRACEERR3("ERROR:Sending Terminal capability message (%s, %s)\n",
-                         call->callType, call->callToken);
-            return ret;
-         }
-      }
-
-   }
+   */
+   if(call->localTermCapState == OO_LocalTermCapExchange_Idle)
+   {
+        /*Start terminal capability exchange and master slave determination */
+        ret = ooSendTermCapMsg(call);
+        if(ret != OO_OK)
+        {
+           OOTRACEERR3("ERROR:Sending Terminal capability message (%s, %s)\n",
+                        call->callType, call->callToken);
+           return ret;
+        }
+   }
+
    call->callState = OO_CALL_CONNECTED;
    if (call->rtdrCount > 0 && call->rtdrInterval > 0) {
         return ooSendRoundTripDelayRequest(call);
@@ -1798,6 +1828,9 @@
    H225TransportAddress_ip6Address_ip *ip6 = NULL;
    OOTRACEDBGC3("Received Facility Message.(%s, %s)\n", call->callType, 
                                                         call->callToken);
+
+   ooHandleDisplayIE(call, pQ931Msg);
+
    /* Get Reference to H323_UU_PDU */
    if(!pQ931Msg->userInfo)
    {
@@ -1815,6 +1848,7 @@
    facility = pH323UUPdu->h323_message_body.u.facility;
    if(facility)
    {
+      ooHandleH2250ID(call, facility->protocolIdentifier);
       /* Depending on the reason of facility message handle the message */
       if(facility->reason.t == T_H225FacilityReason_transportedInformation)
       {
@@ -2027,6 +2061,7 @@
      OOTRACEINFO3("INFO: H.245 connection already established with remote"
                   " endpoint (%s, %s)\n", call->callType, call->callToken);
    }
+   ooSendTCSandMSD(call);
    return OO_OK;
 }
 

Modified: team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooq931.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooq931.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooq931.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/addons/ooh323c/src/ooq931.c Fri Feb 11 06:17:27 2011
@@ -55,6 +55,7 @@
    int offset, x;
    int rv = ASN_OK;
    char number[128];
+   char *display = NULL;
    /* OOCTXT *pctxt = &gH323ep.msgctxt; */
    OOCTXT *pctxt = call->msgctxt;
 
@@ -166,9 +167,15 @@
       }
       if(ie->discriminator == Q931DisplayIE)
       {
-         OOTRACEDBGB1("   Display IE = {\n");
-         OOTRACEDBGB2("      %s\n", ie->data);
-         OOTRACEDBGB1("   }\n");
+	 if (!(display = memAllocZ(pctxt, ie->length + 1))) {
+		OOTRACEERR4("Can't alloc DisplayIE buffer for %n bytes, (%s, %s)\n", ie->length,
+				call->callType, call->callToken);
+	 } else {
+            memcpy(display, ie->data,ie->length);
+            OOTRACEDBGB1("   Display IE = {\n");
+            OOTRACEDBGB2("      %s\n", display);
+            OOTRACEDBGB1("   }\n");
+	 }
       }
 
       if(ie->discriminator == Q931KeypadIE)
@@ -1453,7 +1460,9 @@
       OOTRACEERR3("Error: Failed to enqueue Alerting message to outbound queue. (%s, %s)\n", call->callType, call->callToken);
    }
 
-   ooSendTCSandMSD(call);
+   if (call->h225version >= 4) {
+	ooSendTCSandMSD(call);
+   }
    memReset (call->msgctxt);
 
    return ret;
@@ -1609,7 +1618,9 @@
    if (!OO_TESTFLAG(call->flags, OO_M_TUNNELING) && call->h245listener)
       ooSendStartH245Facility(call);
 
-   ooSendTCSandMSD(call);
+   if (call->h225version >= 4) {
+	ooSendTCSandMSD(call);
+   }
    memReset (call->msgctxt);
 
    return ret;
@@ -1996,12 +2007,16 @@
    }
 
 
-   /* Add h245 listener address. Do not add H245 listener address in case
-      of fast-start. */
+   /* Add h245 listener address. */
+   /* Do not add H245 listener address in case
+      of fast-start. why? */
+   /* May 20110205 */
+   /* Send h245 listener addr any case if H245 connection isn't established */
    if (/* (!OO_TESTFLAG(call->flags, OO_M_FASTSTART) || 
         call->remoteFastStartOLCs.count == 0) && */
        !OO_TESTFLAG (call->flags, OO_M_TUNNELING) &&
-       !call->h245listener && ooCreateH245Listener(call) == OO_OK)
+       ( (!call->h245listener && ooCreateH245Listener(call) == OO_OK) ||
+         !call->pH245Channel))
    {
       connect->m.h245AddressPresent = TRUE;
       if (call->versionIP == 6) {
@@ -2053,6 +2068,7 @@
       return OO_FAILED;
    }
    /* memReset(&gH323ep.msgctxt); */
+   ooSendTCSandMSD(call);
    memReset(call->msgctxt);
 
    call->callState = OO_CALL_CONNECTED;
@@ -2827,11 +2843,8 @@
 
    /* For H.323 version 4 and higher, if fast connect, tunneling should be 
       supported.
+      why?
    */
-   if(OO_TESTFLAG(call->flags, OO_M_FASTSTART)) {
-      q931msg->userInfo->h323_uu_pdu.h245Tunneling = TRUE;
-      OO_SETFLAG(call->flags, OO_M_TUNNELING);
-   }
 
    OOTRACEDBGA3("Built SETUP message (%s, %s)\n", call->callType, 
                  call->callToken);

Modified: team/may/ooh323_ipv6_direct_rtp/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/apps/app_meetme.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/apps/app_meetme.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/apps/app_meetme.c Fri Feb 11 06:17:27 2011
@@ -509,6 +509,19 @@
 			MeetmeListComplete.</para>
 		</description>
 	</manager>
+	<manager name="MeetmeListRooms" language="en_US">
+		<synopsis>
+			List active conferences.
+		</synopsis>
+		<syntax>
+			<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
+		</syntax>
+		<description>
+			<para>Lists data about all active conferences.
+				MeetmeListRooms will follow as separate events, followed by a final event called
+				MeetmeListRoomsComplete.</para>
+		</description>
+	</manager>
  ***/
 
 #define CONFIG_FILE_NAME "meetme.conf"
@@ -4891,6 +4904,73 @@
 	return 0;
 }
 
+static int action_meetmelistrooms(struct mansession *s, const struct message *m)
+{
+	const char *actionid = astman_get_header(m, "ActionID");
+	char idText[80] = "";
+	struct ast_conference *cnf;
+	int totalitems = 0;
+	int hr, min, sec;
+	time_t now;
+	char markedusers[5];
+
+	if (!ast_strlen_zero(actionid)) {
+		snprintf(idText, sizeof(idText), "ActionID: %s\r\n", actionid);
+	}
+
+	if (AST_LIST_EMPTY(&confs)) {
+		astman_send_error(s, m, "No active conferences.");
+		return 0;
+	}
+
+	astman_send_listack(s, m, "Meetme conferences will follow", "start");
+
+	now = time(NULL);
+
+	/* Traverse the conference list */
+	AST_LIST_LOCK(&confs);
+	AST_LIST_TRAVERSE(&confs, cnf, list) {
+		totalitems++;
+
+		if (cnf->markedusers == 0) {
+			strcpy(markedusers, "N/A");
+		} else {
+			sprintf(markedusers, "%.4d", cnf->markedusers);
+		}
+		hr = (now - cnf->start) / 3600;
+		min = ((now - cnf->start) % 3600) / 60;
+		sec = (now - cnf->start) % 60;
+
+		astman_append(s,
+		"Event: MeetmeListRooms\r\n"
+		"%s"
+		"Conference: %s\r\n"
+		"Parties: %d\r\n"
+		"Marked: %s\r\n"
+		"Activity: %2.2d:%2.2d:%2.2d\r\n"
+		"Creation: %s\r\n"
+		"Locked: %s\r\n"
+		"\r\n",
+		idText,
+		cnf->confno,
+		cnf->users,
+		markedusers,
+		hr,  min, sec,
+		cnf->isdynamic ? "Dynamic" : "Static",
+		cnf->locked ? "Yes" : "No"); 
+	}
+	AST_LIST_UNLOCK(&confs);
+
+	/* Send final confirmation */
+	astman_append(s,
+	"Event: MeetmeListRoomsComplete\r\n"
+	"EventList: Complete\r\n"
+	"ListItems: %d\r\n"
+	"%s"
+	"\r\n", totalitems, idText);
+	return 0;
+}
+
 static void *recordthread(void *args)
 {
 	struct ast_conference *cnf = args;
@@ -7152,6 +7232,7 @@
 	res = ast_manager_unregister("MeetmeMute");
 	res |= ast_manager_unregister("MeetmeUnmute");
 	res |= ast_manager_unregister("MeetmeList");
+	res |= ast_manager_unregister("MeetmeListRooms");
 	res |= ast_unregister_application(app4);
 	res |= ast_unregister_application(app3);
 	res |= ast_unregister_application(app2);
@@ -7187,6 +7268,7 @@
 	res |= ast_manager_register_xml("MeetmeMute", EVENT_FLAG_CALL, action_meetmemute);
 	res |= ast_manager_register_xml("MeetmeUnmute", EVENT_FLAG_CALL, action_meetmeunmute);
 	res |= ast_manager_register_xml("MeetmeList", EVENT_FLAG_REPORTING, action_meetmelist);
+	res |= ast_manager_register_xml("MeetmeListRooms", EVENT_FLAG_REPORTING, action_meetmelistrooms);
 	res |= ast_register_application_xml(app4, channel_admin_exec);
 	res |= ast_register_application_xml(app3, admin_exec);
 	res |= ast_register_application_xml(app2, count_exec);

Modified: team/may/ooh323_ipv6_direct_rtp/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/channels/chan_sip.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/channels/chan_sip.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/channels/chan_sip.c Fri Feb 11 06:17:27 2011
@@ -8881,8 +8881,8 @@
 		ast_codec_choose(&p->prefs, p->jointcaps, 1, &tmp_fmt);
 
 		ast_format_cap_set(p->owner->nativeformats, &tmp_fmt);
-		ast_format_cap_joint_copy(p->caps, vpeercapability, p->owner->nativeformats);
-		ast_format_cap_joint_copy(p->caps, tpeercapability, p->owner->nativeformats);
+		ast_format_cap_joint_append(p->caps, vpeercapability, p->owner->nativeformats);
+		ast_format_cap_joint_append(p->caps, tpeercapability, p->owner->nativeformats);
 
 		ast_set_read_format(p->owner, &p->owner->readformat);
 		ast_set_write_format(p->owner, &p->owner->writeformat);

Modified: team/may/ooh323_ipv6_direct_rtp/configs/ccss.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/configs/ccss.conf.sample?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/configs/ccss.conf.sample (original)
+++ team/may/ooh323_ipv6_direct_rtp/configs/ccss.conf.sample Fri Feb 11 06:17:27 2011
@@ -100,7 +100,7 @@
 ;         protocol-specific methods to request CC from this interface
 ;         and to monitor the interface for availability.
 ;
-;accept:  If an interface is set to "accept," then we will accept
+;always:  If an interface is set to "always," then we will accept
 ;         protocol-specific CC offers from the caller and use
 ;         a native CC monitor for the remainder of the CC transaction.
 ;         However, if the interface does not offer protocol-specific

Modified: team/may/ooh323_ipv6_direct_rtp/include/asterisk/format_cap.h
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/include/asterisk/format_cap.h?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/include/asterisk/format_cap.h (original)
+++ team/may/ooh323_ipv6_direct_rtp/include/asterisk/format_cap.h Fri Feb 11 06:17:27 2011
@@ -192,6 +192,14 @@
 int ast_format_cap_joint_copy(const struct ast_format_cap *cap1, const struct ast_format_cap *cap2, struct ast_format_cap *result);
 
 /*!
+ * \brief Get joint capability structure, append into result capabilities structure
+ *
+ * \retval 1, joint capabilities exist
+ * \retval 0, joint capabilities do not exist
+ */
+int ast_format_cap_joint_append(const struct ast_format_cap *cap1, const struct ast_format_cap *cap2, struct ast_format_cap *result);
+
+/*!
  * \brief Find out if capability structures have any joint capabilities without
  * returning those capabilities.
  *

Modified: team/may/ooh323_ipv6_direct_rtp/main/asterisk.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/main/asterisk.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/main/asterisk.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/main/asterisk.c Fri Feb 11 06:17:27 2011
@@ -3321,7 +3321,7 @@
 			ast_clear_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
 			break;
 		case 'x':
-			ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC);
+			ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC | AST_OPT_FLAG_NO_COLOR);
 			xarg = ast_strdupa(optarg);
 			break;
 		case '?':

Modified: team/may/ooh323_ipv6_direct_rtp/main/astobj2.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/main/astobj2.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/main/astobj2.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/main/astobj2.c Fri Feb 11 06:17:27 2011
@@ -705,7 +705,11 @@
 			 * link the object into the container that will hold the results.
 			 */
 			if (ret && (multi_container != NULL)) {
-				__ao2_link(multi_container, ret, flags);
+				if (tag) {
+					__ao2_link_debug(multi_container, ret, flags, tag, file, line, funcname);
+				} else {
+					__ao2_link(multi_container, ret, flags);
+				}
 				ret = NULL;
 			}
 

Modified: team/may/ooh323_ipv6_direct_rtp/main/features.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/main/features.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/main/features.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/main/features.c Fri Feb 11 06:17:27 2011
@@ -4701,6 +4701,8 @@
 			} else if (!strcasecmp(confvar->value, "callee")) {
 				parkinglot->parkedcallrecording = AST_FEATURE_FLAG_BYCALLEE;
 			}
+		} else if (!strcasecmp(confvar->name, "parkedmusicclass")) {
+			ast_copy_string(parkinglot->mohclass, confvar->value, sizeof(parkinglot->mohclass));
 		}
 		confvar = confvar->next;
 	}
@@ -4715,9 +4717,9 @@
 
 	if (!var) {	/* Default parking lot */
 		ast_copy_string(parkinglot->parking_con, "parkedcalls", sizeof(parkinglot->parking_con));
-		ast_copy_string(parkinglot->parking_con_dial, "park-dial", sizeof(parkinglot->parking_con_dial));
 		ast_copy_string(parkinglot->mohclass, "default", sizeof(parkinglot->mohclass));
 	}
+	ast_copy_string(parkinglot->parking_con_dial, "park-dial", sizeof(parkinglot->parking_con_dial));
 
 	/* Check for errors */
 	if (ast_strlen_zero(parkinglot->parking_con)) {

Modified: team/may/ooh323_ipv6_direct_rtp/main/format_cap.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/main/format_cap.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/main/format_cap.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/main/format_cap.c Fri Feb 11 06:17:27 2011
@@ -409,7 +409,7 @@
 	return NULL;
 }
 
-int ast_format_cap_joint_copy(const struct ast_format_cap *cap1, const struct ast_format_cap *cap2, struct ast_format_cap *result)
+static int joint_copy_helper(const struct ast_format_cap *cap1, const struct ast_format_cap *cap2, struct ast_format_cap *result, int append)
 {
 	struct ao2_iterator it;
 	struct ast_format *tmp;
@@ -417,8 +417,9 @@
 		.joint_cap = result,
 		.joint_found = 0,
 	};
-
-	ast_format_cap_remove_all(result);
+	if (!append) {
+		ast_format_cap_remove_all(result);
+	}
 	it = ao2_iterator_init(cap1->formats, cap2->nolock ? AO2_ITERATOR_DONTLOCK : 0);
 	while ((tmp = ao2_iterator_next(&it))) {
 		data.format = tmp;
@@ -431,6 +432,16 @@
 	ao2_iterator_destroy(&it);
 
 	return ao2_container_count(result->formats) ? 1 : 0;
+}
+
+int ast_format_cap_joint_append(const struct ast_format_cap *cap1, const struct ast_format_cap *cap2, struct ast_format_cap *result)
+{
+	return joint_copy_helper(cap1, cap2, result, 1);
+}
+
+int ast_format_cap_joint_copy(const struct ast_format_cap *cap1, const struct ast_format_cap *cap2, struct ast_format_cap *result)
+{
+	return joint_copy_helper(cap1, cap2, result, 0);
 }
 
 struct ast_format_cap *ast_format_cap_get_type(const struct ast_format_cap *cap, enum ast_format_type ftype)

Modified: team/may/ooh323_ipv6_direct_rtp/main/loader.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_ipv6_direct_rtp/main/loader.c?view=diff&rev=307671&r1=307670&r2=307671
==============================================================================
--- team/may/ooh323_ipv6_direct_rtp/main/loader.c (original)
+++ team/may/ooh323_ipv6_direct_rtp/main/loader.c Fri Feb 11 06:17:27 2011
@@ -843,7 +843,7 @@
 			}
 		}
 #else
-		ast_log(LOG_WARNING, "Module '%s' could not be loaded.\n", resource_name);
+		ast_log(LOG_WARNING, "Module support is not available. Module '%s' could not be loaded.\n", resource_name);
 		return required ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_DECLINE;
 #endif
 	}




More information about the svn-commits mailing list