[svn-commits] objsys: trunk r274 - in /trunk: ./ asterisk-ooh323c/ asterisk-ooh323c/ooh323c...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Tue Aug 8 10:27:31 MST 2006


Author: objsys
Date: Tue Aug  8 12:27:31 2006
New Revision: 274

URL: http://svn.digium.com/view/asterisk-addons?rev=274&view=rev
Log:
Merged revisions 268-273 via svnmerge from 
https://origsvn.digium.com/svn/asterisk-addons/branches/1.2

........
r268 | objsys | 2006-08-04 12:36:48 -0400 (Fri, 04 Aug 2006) | 1 line

1.2 branch update for media wait for connect, fast start reply in ALERTING
........
r269 | objsys | 2006-08-04 14:15:00 -0400 (Fri, 04 Aug 2006) | 1 line

Fix for uint flag values, causing wrong behaviour of ooh323c
........
r270 | objsys | 2006-08-04 18:01:39 -0400 (Fri, 04 Aug 2006) | 1 line

Fix for reload problem of faststart, tunneling, mediawaitforconnect flags
........
r271 | objsys | 2006-08-08 11:31:03 -0400 (Tue, 08 Aug 2006) | 1 line

Fix for call transfer crash caused by change in ownership
........
r272 | objsys | 2006-08-08 11:32:01 -0400 (Tue, 08 Aug 2006) | 1 line

update
........
r273 | objsys | 2006-08-08 11:35:46 -0400 (Tue, 08 Aug 2006) | 1 line

update for Flagman patch
........

Modified:
    trunk/   (props changed)
    trunk/asterisk-ooh323c/ChangeLog
    trunk/asterisk-ooh323c/README
    trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGES.h
    trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.h
    trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESDec.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESEnc.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.h
    trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLDec.c
    trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c
    trunk/asterisk-ooh323c/ooh323c/src/ooCalls.c
    trunk/asterisk-ooh323c/ooh323c/src/ooCalls.h
    trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c
    trunk/asterisk-ooh323c/ooh323c/src/ooasn1.h
    trunk/asterisk-ooh323c/ooh323c/src/ooq931.c
    trunk/asterisk-ooh323c/ooh323c/src/ootypes.h
    trunk/asterisk-ooh323c/src/chan_h323.c

Propchange: trunk/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Aug  8 12:27:31 2006
@@ -1,1 +1,1 @@
-/branches/1.2:1-183,209,211,257-258,264
+/branches/1.2:1-183,209,211,257-258,264,268-273

Modified: trunk/asterisk-ooh323c/ChangeLog
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ChangeLog?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ChangeLog (original)
+++ trunk/asterisk-ooh323c/ChangeLog Tue Aug  8 12:27:31 2006
@@ -1,3 +1,7 @@
+SVN Branch:
+* Fixed crash for call transfer caused by channel ownership change.
+	Thanks to Flagman <Flagman at incomtel.ru>
+
 Release 0.5
 * Includes changes of ooh323c stack 0.8.2 version
 	1. Used rand number for conference id, Thanks to Patrick Jordan

Modified: trunk/asterisk-ooh323c/README
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/README?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/README (original)
+++ trunk/asterisk-ooh323c/README Tue Aug  8 12:27:31 2006
@@ -25,10 +25,10 @@
     you have to have latest version of asterisk installed on your system. 
     You can skip to step 2, if you have already installed the asterisk.
 
-      Following precedure help you download and install asterisk
+      Following precedure help you download and install asterisk 1.2.x
 
-      To get latest asterisk sources from svn:
-      >svn checkout http://svn.digium.com/svn/asterisk/trunk asterisk
+      To get latest asterisk sources from svn branch 1.2:
+      >svn checkout http://svn.digium.com/svn/asterisk/branches/1.2 asterisk-1.2
 
       To install asterisk.(You will have to be in 'super user' mode for this)
       >cd asterisk
@@ -39,18 +39,18 @@
 
       To update or if you hadn't downloaded the asterisk-ooh323c channel driver
       code, you can do so using following command (To get the latest 
-      asterisk-addons source from svn):
-      >svn checkout http://svn.digium.com/svn/asterisk-addons/trunk asterisk-addons
+      asterisk-addons 1.2 branch source from svn):
+      >svn checkout http://svn.digium.com/svn/asterisk-addons/branches/1.2 asterisk-addons-1.2
 
       To build & install:
-      >cd asterisk-addons/asterisk-ooh323c
+      >cd asterisk-addons-1.2/asterisk-ooh323c
       >./configure
       >make
 
       For debugging purpose, instead of "make", run "make debug"
 
       The library will be generated at 
-      asterisk-addons/asterisk-ooh323c/.libs/libchan_h323.so.1.0.1 
+      asterisk-addons-1.2/asterisk-ooh323c/.libs/libchan_h323.so.1.0.1 
  
       To install libchan_h323.so in /usr/libs/modules/ directory, change to 
       'super user' mode and then run:

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGES.h
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGES.h?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGES.h (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGES.h Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.h
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.h?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.h (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGES.h Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESDec.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESDec.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESDec.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESDec.c Tue Aug  8 12:27:31 2006
@@ -1,7 +1,19 @@
-/**
- * This file was generated by the Objective Systems ASN1C Compiler
- * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.
- */
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+
 #include "ooasn1.h"
 #include "H323-MESSAGES.h"
 #include "eventHandler.h"

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESEnc.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESEnc.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESEnc.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/H323-MESSAGESEnc.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.h
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.h?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.h (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.h Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLDec.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLDec.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLDec.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLDec.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c Tue Aug  8 12:27:31 2006
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be 
+ * used and copied only in accordance with the terms of this license. 
+ * The text of the license may generally be found in the root 
+ * directory of this installation in the COPYING file.  It 
+ * can also be viewed online at the following URL:
+ *
+ *   http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must 
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
 /**
  * This file was generated by the Objective Systems ASN1C Compiler
  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooCalls.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooCalls.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooCalls.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooCalls.c Tue Aug  8 12:27:31 2006
@@ -145,6 +145,7 @@
    call->nextSessionID = 4; /* 1,2,3 are reserved for audio, video and data */
    dListInit(&call->timerList);
    call->msdRetries = 0;
+   call->pFastStartRes = NULL;
    call->usrData = NULL;
    OOTRACEINFO3("Created a new call (%s, %s)\n", call->callType, 
                  call->callToken);

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooCalls.h
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooCalls.h?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooCalls.h (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooCalls.h Tue Aug  8 12:27:31 2006
@@ -41,18 +41,18 @@
 */
 
 
-
-#define OO_M_ENDPOINTCREATED    0x00010000
-#define OO_M_ENDSESSION_BUILT   0x00800000
-#define OO_M_RELEASE_BUILT      0x00400000
-#define OO_M_GKROUTED           0x00200000
-#define OO_M_AUTOANSWER         0x00100000
-#define OO_M_TUNNELING	        0x08000000
-#define OO_M_FASTSTARTANSWERED  0x04000000
-#define OO_M_MEDIAWAITFORCONN   0x03000000 
-#define OO_M_FASTSTART	        0x02000000 
-#define OO_M_DISABLEGK          0x01000000
-#define OO_M_MANUALRINGBACK     0x10000000
+#define OO_M_ENDSESSION_BUILT   ASN1UINTCNT(0x00800000)
+#define OO_M_RELEASE_BUILT      ASN1UINTCNT(0x00400000)
+#define OO_M_FASTSTARTANSWERED  ASN1UINTCNT(0x04000000)
+
+#define OO_M_ENDPOINTCREATED    ASN1UINTCNT(0x00010000)
+#define OO_M_GKROUTED           ASN1UINTCNT(0x00200000)
+#define OO_M_AUTOANSWER         ASN1UINTCNT(0x00100000)
+#define OO_M_TUNNELING	        ASN1UINTCNT(0x08000000)
+#define OO_M_MEDIAWAITFORCONN   ASN1UINTCNT(0x20000000)
+#define OO_M_FASTSTART	        ASN1UINTCNT(0x02000000)
+#define OO_M_DISABLEGK          ASN1UINTCNT(0x01000000)
+#define OO_M_MANUALRINGBACK     ASN1UINTCNT(0x10000000)
 
 
 /** 
@@ -118,6 +118,16 @@
    int      port;      /*!< Port assigned to the channel */
    DList    outQueue;  /*!< Output message queue */
 } OOH323Channel;
+
+/**
+ * Structure to store information on fast start response (H.225) to 
+ * reply same answer in CALL PROCEEDING, ALERTING & CONNECT.
+ */
+typedef struct EXTERN FastStartResponse {
+   ASN1UINT n;
+   ASN1DynOctStr *elem;
+} FastStartResponse;
+
 
 /**
  * This structure is used to maintain all information on an active call. 
@@ -175,6 +185,7 @@
    unsigned             nextSessionID; /* Note by default 1 is audio session, 2 is video and 3 is data, from 3 onwards master decides*/
    DList                timerList;
    ASN1UINT             msdRetries;
+   FastStartResponse    *pFastStartRes; /* fast start response */
    void                 *usrData; /*!<User can set this to user specific data*/
    struct OOH323CallData* next;
    struct OOH323CallData* prev;

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c Tue Aug  8 12:27:31 2006
@@ -945,29 +945,26 @@
    /* Can we receive this capability */
    if(dir & OORX)
    {
-      //if(cap == OO_G7231) {
-      //   if(((OOCapParams*)epCap->params)->rxframes <= noofframes) {
-      //      return TRUE;
-      //   }
-      //}
-      //else
       if(((OOCapParams*)epCap->params)->rxframes >= noofframes) {
          return TRUE;
       }
+      //else {
+      //  not supported, as already told other ep our max. receive rate
+      //  our ep can't receive more rate than it
+      //  return FALSE;
+      //}
    }
 
    /* Can we transmit compatible stream */
    if(dir & OOTX)
    {
-      //if(cap == OO_G7231) {
-      //   if(((OOCapParams*)epCap->params)->txframes >= noofframes) {
-      //      return TRUE;
-      //   }
-      //}
-      //else 
       if(((OOCapParams*)epCap->params)->txframes <= noofframes) {
          return TRUE;
       }
+      //else {
+      //   TODO: reduce our ep transmission rate, as peer EP has low receive
+      //   cap, than return TRUE
+      //}
    }
    return FALSE;
 

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooasn1.h
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooasn1.h?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooasn1.h (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooasn1.h Tue Aug  8 12:27:31 2006
@@ -32,41 +32,6 @@
  * @defgroup cruntime C Runtime Common Functions 
  * @{
  */
-/* Tagging Value and Mask Constants */
-
-/* tag class value constants */
-
-#define TV_UNIV         0       /* universal                    */
-#define TV_APPL         1       /* application-wide             */
-#define TV_CTXT         2       /* context-specific             */
-#define TV_PRIV         3       /* private-use                  */
-
-/* tag form value constants */
-
-#define TV_PRIM         0       /* primitive                    */
-#define TV_CONS         1       /* constructor                  */
-
-/* tag mask values - these can be logically or'd together to    */
-/* form tags compatible with the ASNTAG structure..             */
-
-#define TM_UNIV         0x00000000  /* universal class          */
-#define TM_APPL         0x40000000  /* application-wide class   */
-#define TM_CTXT         0x80000000  /* context-specific class   */
-#define TM_PRIV         0xC0000000  /* private-use class        */
-
-#define TM_PRIM         0x00000000  /* primitive form           */
-#define TM_CONS         0x20000000  /* constructor form         */
-#define TM_IDCODE       0x1FFFFFFF  /* ID code mask             */
-
-#define ASN_K_BADTAG    0xFFFFFFFF  /* invalid tag code         */
-#define ASN_K_NOTAG     0xFFFFFFFF  /* no tag input parameter   */
-
-#define TM_CLASS        0xC0    /* class mask                   */
-#define TM_FORM         0x20    /* form mask                    */
-#define TM_CLASS_FORM   0xE0    /* class/form mask              */
-#define TM_B_IDCODE     0x1F    /* id code mask (byte)          */
-
-#define MINMSGLEN       8       /* minimum message length               */
 
 /* Error Code Constants */
 
@@ -258,6 +223,8 @@
 #define ASN1INT_MAX     ((ASN1INT)2147483647L)
 #define ASN1INT_MIN     ((ASN1INT)(-ASN1INT_MAX-1))
 
+#define ASN1UINTCNT(val) val##u
+
 
 #ifndef ASN1INT64
 

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooq931.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooq931.c?rev=274&r1=273&r2=274&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooq931.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooq931.c Tue Aug  8 12:27:31 2006
@@ -720,6 +720,15 @@
       i += pq931Msg->causeIE->length;
    } 
       
+   /*Add progress indicator IE 
+   if(pq931Msg->messageType == Q931AlertingMsg || pq931Msg->messageType == Q931CallProceedingMsg)
+   {
+      msgbuf[i++] = Q931ProgressIndicatorIE;
+      msgbuf[i++] = 2; //Length is 2 octet
+      msgbuf[i++] = 0x80; //PI=8
+      msgbuf[i++] = 0x88;
+  }*/
+
    /*Add display ie. */
    if(!ooUtilsIsStrEmpty(call->ourCallerId))
    {
@@ -817,6 +826,371 @@
    return OO_OK;
 }
 
+int ooSetFastStartResponse(OOH323CallData *pCall, Q931Message *pQ931msg, 
+   ASN1UINT *fsCount, ASN1DynOctStr **fsElem)
+{
+   OOCTXT *pctxt = &gH323ep.msgctxt;   
+   int ret = 0, i=0, j=0, remoteMediaPort=0, remoteMediaControlPort = 0, dir=0;
+   char remoteMediaIP[20], remoteMediaControlIP[20];
+   DListNode *pNode = NULL;
+   H245OpenLogicalChannel *olc = NULL, printOlc;
+   ooH323EpCapability *epCap = NULL;
+   ASN1DynOctStr *pFS=NULL;
+   H245H2250LogicalChannelParameters *h2250lcp = NULL;  
+   ooLogicalChannel* pChannel;
+
+
+   if(pCall->pFastStartRes) {
+      ASN1UINT k = 0;
+      ASN1OCTET* pData;
+
+      /* copy the stored fast start response to structure */
+      *fsCount = pCall->pFastStartRes->n;
+      *fsElem = (ASN1DynOctStr*)
+         memAlloc(pctxt, pCall->pFastStartRes->n * sizeof(ASN1DynOctStr));
+
+      for(k = 0; k < pCall->pFastStartRes->n; k ++) {
+         (*fsElem)[k].numocts = pCall->pFastStartRes->elem[k].numocts;
+         pData = (ASN1OCTET*) memAlloc(
+            pctxt, (*fsElem)[k].numocts * sizeof(ASN1OCTET));
+         memcpy(pData, 
+            pCall->pFastStartRes->elem[k].data, 
+            pCall->pFastStartRes->elem[k].numocts);
+         (*fsElem)[k].data = pData;
+      }
+
+      /* free the stored fast start response */
+      if(pQ931msg->messageType == Q931ConnectMsg) {
+         for(k = 0; k < pCall->pFastStartRes->n; k ++) {
+            memFreePtr(pCall->pctxt, pCall->pFastStartRes->elem[k].data);
+         }
+         memFreePtr(pCall->pctxt, pCall->pFastStartRes->elem);
+         memFreePtr(pCall->pctxt, pCall->pFastStartRes);
+         pCall->pFastStartRes = NULL;
+      }
+
+      return ASN_OK;
+   }
+   
+      
+   /* If fast start supported and remote endpoint has sent faststart element */
+   if(OO_TESTFLAG(gH323ep.flags, OO_M_FASTSTART) && 
+      pCall->remoteFastStartOLCs.count>0)
+   {
+      pFS = (ASN1DynOctStr*)memAlloc(pctxt, 
+                        pCall->remoteFastStartOLCs.count*sizeof(ASN1DynOctStr));
+      if(!pFS)
+      {
+         OOTRACEERR3("Error:Memory - ooSetFastStartResponse - pFS (%s, %s)\n", 
+                      pCall->callType, pCall->callToken);    
+         return OO_FAILED;
+      }
+      memset(pFS, 0, pCall->remoteFastStartOLCs.count*sizeof(ASN1DynOctStr));
+
+      /* Go though all the proposed channels */
+      for(i=0, j=0; i<(int)pCall->remoteFastStartOLCs.count; i++)
+      {
+
+         pNode = dListFindByIndex(&pCall->remoteFastStartOLCs, i);
+         olc = (H245OpenLogicalChannel*)pNode->data;
+
+         /* Don't support both direction channel */
+         if(olc->forwardLogicalChannelParameters.dataType.t != 
+                                                   T_H245DataType_nullData &&
+            olc->m.reverseLogicalChannelParametersPresent)
+         {
+            OOTRACEINFO3("Ignoring bidirectional OLC as it is not supported."
+                         "(%s, %s)\n", pCall->callType, pCall->callToken);
+            continue;
+         }
+
+         /* Check forward logic channel */
+         if(olc->forwardLogicalChannelParameters.dataType.t != 
+                                                   T_H245DataType_nullData)
+         {
+            /* Forward Channel - remote transmits - local receives */
+            OOTRACEDBGC4("Processing received forward olc %d (%s, %s)\n", 
+                          olc->forwardLogicalChannelNumber, pCall->callType, 
+                          pCall->callToken);
+            dir = OORX;
+            epCap = ooIsDataTypeSupported(pCall, 
+                                &olc->forwardLogicalChannelParameters.dataType,
+                                OORX);
+            
+            if(!epCap) { continue; } /* Not Supported Channel */
+
+            OOTRACEINFO1("Receive Channel data type supported\n");
+            if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
+               T_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
+            {
+               OOTRACEERR4("ERROR:Unknown multiplex parameter type for "
+                           "channel %d (%s, %s)\n", 
+                           olc->forwardLogicalChannelNumber, 
+                           pCall->callType, pCall->callToken);
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               continue;
+            }
+            h2250lcp = olc->forwardLogicalChannelParameters.multiplexParameters.u.h2250LogicalChannelParameters;
+
+            /* Check session is Not already established */
+            if(ooIsSessionEstablished(pCall, olc->forwardLogicalChannelParameters.multiplexParameters.u.h2250LogicalChannelParameters->sessionID, "receive"))
+            {
+
+               OOTRACEINFO4("Receive channel with sessionID %d already "
+                            "established.(%s, %s)\n", olc->forwardLogicalChannelParameters.multiplexParameters.u.h2250LogicalChannelParameters->sessionID, 
+                            pCall->callType, pCall->callToken);
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               continue;
+            }
+
+            /* Extract mediaControlChannel info, if supplied */
+            if(h2250lcp->m.mediaControlChannelPresent)
+            {
+               if(OO_OK != ooGetIpPortFromH245TransportAddress(pCall, 
+                                &h2250lcp->mediaControlChannel, 
+                                remoteMediaControlIP, &remoteMediaControlPort))
+               {
+                  OOTRACEERR3("Error: Invalid media control channel address "
+                              "(%s, %s)\n", pCall->callType, pCall->callToken);
+                  memFreePtr(pCall->pctxt, epCap);
+                  epCap = NULL;
+                  continue;
+               }
+            }
+         }
+         /* Check reverse logical channel */
+         else if(olc->m.reverseLogicalChannelParametersPresent)
+         {
+            /* Reverse channel - remote receives - local transmits */
+            OOTRACEDBGC4("Processing received reverse olc %d (%s, %s)\n", 
+                          olc->forwardLogicalChannelNumber, pCall->callType, 
+                          pCall->callToken);
+            dir = OOTX;
+            epCap = ooIsDataTypeSupported(pCall, 
+                                &olc->reverseLogicalChannelParameters.dataType,
+                                OOTX);
+
+            if(!epCap) { continue; } /* Capability not supported */
+
+            OOTRACEINFO1("Transmit Channel data type supported\n");
+
+            if(olc->reverseLogicalChannelParameters.multiplexParameters.t != 
+               T_H245OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
+            {
+               OOTRACEERR4("ERROR:Unknown multiplex parameter type for "
+                           "channel %d (%s, %s)\n", 
+                           olc->forwardLogicalChannelNumber, 
+                           pCall->callType, pCall->callToken);
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               continue;
+            }
+
+            /* Check session is not established */
+            if(ooIsSessionEstablished(pCall, olc->reverseLogicalChannelParameters.multiplexParameters.u.h2250LogicalChannelParameters->sessionID, "transmit"))
+            {
+
+               OOTRACEINFO4("Transmit session with sessionID %d already "
+                            "established.(%s, %s)\n", olc->reverseLogicalChannelParameters.multiplexParameters.u.h2250LogicalChannelParameters->sessionID, pCall->callType, pCall->callToken);
+
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               continue;
+            }
+            
+            /* Extract the remote media endpoint address */
+            h2250lcp = olc->reverseLogicalChannelParameters.multiplexParameters.u.h2250LogicalChannelParameters;
+            if(!h2250lcp)
+            {
+               OOTRACEERR3("ERROR:Invalid OLC received in fast start. No "
+                           "reverse Logical Channel Parameters found. "
+                           "(%s, %s)\n", pCall->callType, pCall->callToken);
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               return OO_FAILED;
+            }
+            
+            /* Reverse Channel info will be always present, crash proof */
+            if(!h2250lcp->m.mediaChannelPresent)
+            {
+               OOTRACEERR3("ERROR:Invalid OLC received in fast start. No "
+                           "reverse media channel information found. "
+                           "(%s, %s)\n", pCall->callType, pCall->callToken);
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               return OO_FAILED;
+            }
+
+            /* Get IP, PORT of reverse channel */
+            if(OO_OK != ooGetIpPortFromH245TransportAddress(pCall, 
+                                &h2250lcp->mediaChannel, 
+                                remoteMediaIP, &remoteMediaPort))
+            {
+               OOTRACEERR3("Error: Invalid media  channel address "
+                           "(%s, %s)\n", pCall->callType, pCall->callToken);
+               memFreePtr(pCall->pctxt, epCap);
+               epCap = NULL;
+               continue;
+            }
+
+            /* Extract mediaControlChannel info, if supplied */
+            if(h2250lcp->m.mediaControlChannelPresent)
+            {
+               if(OO_OK != ooGetIpPortFromH245TransportAddress(pCall, 
+                                &h2250lcp->mediaControlChannel, 
+                                remoteMediaControlIP, &remoteMediaControlPort))
+               {
+                  OOTRACEERR3("Error: Invalid media control channel address "
+                              "(%s, %s)\n", pCall->callType, pCall->callToken);
+                  memFreePtr(pCall->pctxt, epCap);
+                  epCap = NULL;
+                  continue;
+               }
+            }
+         }
+
+         if(dir & OOTX)
+         {  
+            /* According to the spec if we are accepting olc for transmission
+               from called endpoint to calling endpoint, called endpoint should
+               insert a unqiue forwardLogicalChannelNumber into olc
+            */
+            olc->forwardLogicalChannelNumber =  pCall->logicalChanNoCur++;
+            if(pCall->logicalChanNoCur > pCall->logicalChanNoMax)
+               pCall->logicalChanNoCur = pCall->logicalChanNoBase;
+         }
+
+         
+         ooPrepareFastStartResponseOLC(pCall, olc, epCap, pctxt, dir);
+         
+         pChannel = ooFindLogicalChannelByLogicalChannelNo
+                      (pCall, olc->forwardLogicalChannelNumber);
+   
+         /* start receive and tramsmit channel listening */
+         if(dir & OORX)
+         {
+            strcpy(pChannel->remoteIP, remoteMediaControlIP);
+            pChannel->remoteMediaControlPort = remoteMediaControlPort;
+            if(epCap->startReceiveChannel)
+            {   
+               epCap->startReceiveChannel(pCall, pChannel);      
+               OOTRACEINFO4("Receive channel of type %s started (%s, %s)\n", 
+                        (epCap->capType == OO_CAP_TYPE_AUDIO)?"audio":"video",
+                        pCall->callType, pCall->callToken);
+            }
+            else{
+               OOTRACEERR4("ERROR:No callback registered to start receive %s"
+                          " channel (%s, %s)\n", 
+                        (epCap->capType == OO_CAP_TYPE_AUDIO)?"audio":"video", 
+                           pCall->callType, pCall->callToken);
+               return OO_FAILED;
+            }
+         }
+         if(dir & OOTX)
+         {
+            pChannel->remoteMediaPort = remoteMediaPort;
+            strcpy(pChannel->remoteIP, remoteMediaIP);
+            pChannel->remoteMediaControlPort = remoteMediaControlPort;
+
+            if(epCap->startTransmitChannel)
+            {   
+               epCap->startTransmitChannel(pCall, pChannel);      
+               OOTRACEINFO3("Transmit channel of type audio started "
+                            "(%s, %s)\n", pCall->callType, pCall->callToken);
+               /*OO_SETFLAG (pCall->flags, OO_M_AUDIO);*/
+            }
+            else{
+               OOTRACEERR3("ERROR:No callback registered to start transmit"
+                           " audio channel (%s, %s)\n", pCall->callType, 
+                           pCall->callToken);
+               return OO_FAILED;
+            }
+         }
+
+         /* Encode fast start element */
+         setPERBuffer(pctxt, NULL, 0, 1);
+         if(asn1PE_H245OpenLogicalChannel(pctxt, olc) != ASN_OK)
+         {
+            OOTRACEERR3("ERROR:Encoding of olc failed for faststart "
+                        "(%s, %s)\n", pCall->callType, pCall->callToken);
+            ooFreeQ931Message(pQ931msg);
+            if(pCall->callState < OO_CALL_CLEAR)

[... 605 lines stripped ...]


More information about the svn-commits mailing list