[asterisk-addons-commits] objsys: trunk r274 - in /trunk: ./
asterisk-ooh323c/ asterisk-ooh323c/ooh323c...
asterisk-addons-commits at lists.digium.com
asterisk-addons-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 asterisk-addons-commits
mailing list