mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Move Asterisk-addons modules into the main Asterisk source tree.
Someone asked yesterday, "is there a good reason why we can't just put these modules in Asterisk?". After a brief discussion, as long as the modules are clearly set aside in their own directory and not enabled by default, it is perfectly fine. For more information about why a module goes in addons, see README-addons.txt. chan_ooh323 does not currently compile as it is behind some trunk API updates. However, it will not build by default, so it should be okay for now. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@204413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
789
addons/ooh323c/src/ooh323ep.c
Normal file
789
addons/ooh323c/src/ooh323ep.c
Normal file
@@ -0,0 +1,789 @@
|
||||
/*
|
||||
* 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 "ooh323ep.h"
|
||||
#include "ootrace.h"
|
||||
#include "ooCalls.h"
|
||||
#include "ooCapability.h"
|
||||
#include "ooGkClient.h"
|
||||
#include "ooStackCmds.h"
|
||||
#include "ooCmdChannel.h"
|
||||
/** Global endpoint structure */
|
||||
ooEndPoint gH323ep;
|
||||
|
||||
|
||||
extern DList g_TimerList;
|
||||
|
||||
int ooH323EpInitialize
|
||||
(enum OOCallMode callMode, const char* tracefile)
|
||||
{
|
||||
|
||||
memset(&gH323ep, 0, sizeof(ooEndPoint));
|
||||
|
||||
initContext(&(gH323ep.ctxt));
|
||||
initContext(&(gH323ep.msgctxt));
|
||||
|
||||
if(tracefile)
|
||||
{
|
||||
if(strlen(tracefile)>= MAXFILENAME)
|
||||
{
|
||||
printf("Error:File name longer than allowed maximum %d\n",
|
||||
MAXFILENAME-1);
|
||||
return OO_FAILED;
|
||||
}
|
||||
strcpy(gH323ep.traceFile, tracefile);
|
||||
}
|
||||
else{
|
||||
strcpy(gH323ep.traceFile, DEFAULT_TRACEFILE);
|
||||
}
|
||||
|
||||
gH323ep.fptraceFile = fopen(gH323ep.traceFile, "w");
|
||||
if(gH323ep.fptraceFile == NULL)
|
||||
{
|
||||
printf("Error:Failed to open trace file %s for write.\n",
|
||||
gH323ep.traceFile);
|
||||
return OO_FAILED;
|
||||
}
|
||||
|
||||
/* Initialize default port ranges that will be used by stack.
|
||||
Apps can override these by explicitely setting port ranges
|
||||
*/
|
||||
|
||||
gH323ep.tcpPorts.start = TCPPORTSSTART;
|
||||
gH323ep.tcpPorts.max = TCPPORTSEND;
|
||||
gH323ep.tcpPorts.current=TCPPORTSSTART;
|
||||
|
||||
gH323ep.udpPorts.start = UDPPORTSSTART;
|
||||
gH323ep.udpPorts.max = UDPPORTSEND;
|
||||
gH323ep.udpPorts.current = UDPPORTSSTART;
|
||||
|
||||
gH323ep.rtpPorts.start = RTPPORTSSTART;
|
||||
gH323ep.rtpPorts.max = RTPPORTSEND;
|
||||
gH323ep.rtpPorts.current = RTPPORTSSTART;
|
||||
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_FASTSTART);
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_TUNNELING);
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_AUTOANSWER);
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_GKROUTED);
|
||||
|
||||
gH323ep.aliases = NULL;
|
||||
|
||||
gH323ep.termType = DEFAULT_TERMTYPE;
|
||||
|
||||
gH323ep.t35CountryCode = DEFAULT_T35COUNTRYCODE;
|
||||
|
||||
gH323ep.t35Extension = DEFAULT_T35EXTENSION;
|
||||
|
||||
gH323ep.manufacturerCode = DEFAULT_MANUFACTURERCODE;
|
||||
|
||||
gH323ep.productID = DEFAULT_PRODUCTID;
|
||||
|
||||
gH323ep.versionID = OOH323C_VERSION;
|
||||
|
||||
gH323ep.callType = T_H225CallType_pointToPoint;
|
||||
ooGetLocalIPAddress(gH323ep.signallingIP);
|
||||
gH323ep.listenPort = DEFAULT_H323PORT;
|
||||
|
||||
gH323ep.listener = NULL;
|
||||
|
||||
ooH323EpSetCallerID(DEFAULT_CALLERID);
|
||||
|
||||
|
||||
gH323ep.myCaps = NULL;
|
||||
gH323ep.noOfCaps = 0;
|
||||
gH323ep.callList = NULL;
|
||||
gH323ep.dtmfmode = 0;
|
||||
gH323ep.callingPartyNumber[0]='\0';
|
||||
gH323ep.callMode = callMode;
|
||||
gH323ep.isGateway = FALSE;
|
||||
|
||||
dListInit(&g_TimerList);/* This is for test application chansetup only*/
|
||||
|
||||
gH323ep.callEstablishmentTimeout = DEFAULT_CALLESTB_TIMEOUT;
|
||||
|
||||
gH323ep.msdTimeout = DEFAULT_MSD_TIMEOUT;
|
||||
|
||||
gH323ep.tcsTimeout = DEFAULT_TCS_TIMEOUT;
|
||||
|
||||
gH323ep.logicalChannelTimeout = DEFAULT_LOGICALCHAN_TIMEOUT;
|
||||
|
||||
gH323ep.sessionTimeout = DEFAULT_ENDSESSION_TIMEOUT;
|
||||
gH323ep.ifList = NULL;
|
||||
|
||||
ooSetTraceThreshold(OOTRCLVLINFO);
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_ENDPOINTCREATED);
|
||||
|
||||
gH323ep.cmdSock = 0;
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
EXTERN int ooH323EpSetAsGateway()
|
||||
{
|
||||
gH323ep.isGateway = TRUE;
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpSetLocalAddress(const char* localip, int listenport)
|
||||
{
|
||||
if(localip)
|
||||
{
|
||||
strcpy(gH323ep.signallingIP, localip);
|
||||
OOTRACEINFO2("Signalling IP address is set to %s\n", localip);
|
||||
}
|
||||
|
||||
if(listenport)
|
||||
{
|
||||
gH323ep.listenPort = listenport;
|
||||
OOTRACEINFO2("Listen port number is set to %d\n", listenport);
|
||||
}
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpAddAliasH323ID(const char *h323id)
|
||||
{
|
||||
ooAliases * psNewAlias=NULL;
|
||||
psNewAlias = (ooAliases*)memAlloc(&gH323ep.ctxt, sizeof(ooAliases));
|
||||
if(!psNewAlias)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for new H323-ID alias\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
psNewAlias->type = T_H225AliasAddress_h323_ID;
|
||||
psNewAlias->registered = FALSE;
|
||||
psNewAlias->value = (char*) memAlloc(&gH323ep.ctxt, strlen(h323id)+1);
|
||||
if(!psNewAlias->value)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for the new H323-ID alias "
|
||||
"value\n");
|
||||
memFreePtr(&gH323ep.ctxt, psNewAlias);
|
||||
return OO_FAILED;
|
||||
}
|
||||
strcpy(psNewAlias->value, h323id);
|
||||
psNewAlias->next = gH323ep.aliases;
|
||||
gH323ep.aliases = psNewAlias;
|
||||
OOTRACEDBGA2("Added alias: H323ID - %s\n", h323id);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpAddAliasDialedDigits(const char* dialedDigits)
|
||||
{
|
||||
ooAliases * psNewAlias=NULL;
|
||||
psNewAlias = (ooAliases*)memAlloc(&gH323ep.ctxt, sizeof(ooAliases));
|
||||
if(!psNewAlias)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for new DialedDigits "
|
||||
"alias\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
psNewAlias->type = T_H225AliasAddress_dialedDigits;
|
||||
psNewAlias->registered = FALSE;
|
||||
psNewAlias->value = (char*) memAlloc(&gH323ep.ctxt, strlen(dialedDigits)+1);
|
||||
if(!psNewAlias->value)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for the new DialedDigits"
|
||||
" alias value\n");
|
||||
memFreePtr(&gH323ep.ctxt, psNewAlias);
|
||||
return OO_FAILED;
|
||||
}
|
||||
strcpy(psNewAlias->value, dialedDigits);
|
||||
psNewAlias->next = gH323ep.aliases;
|
||||
gH323ep.aliases = psNewAlias;
|
||||
OOTRACEDBGA2("Added alias: DialedDigits - %s\n", dialedDigits);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpAddAliasURLID(const char * url)
|
||||
{
|
||||
ooAliases * psNewAlias=NULL;
|
||||
psNewAlias = (ooAliases*)memAlloc(&gH323ep.ctxt, sizeof(ooAliases));
|
||||
if(!psNewAlias)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for new URL-ID alias\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
psNewAlias->type = T_H225AliasAddress_url_ID;
|
||||
psNewAlias->registered = FALSE;
|
||||
psNewAlias->value = (char*) memAlloc(&gH323ep.ctxt, strlen(url)+1);
|
||||
if(!psNewAlias->value)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for the new URL-ID alias"
|
||||
" value\n");
|
||||
memFreePtr(&gH323ep.ctxt, psNewAlias);
|
||||
return OO_FAILED;
|
||||
}
|
||||
strcpy(psNewAlias->value, url);
|
||||
psNewAlias->next = gH323ep.aliases;
|
||||
gH323ep.aliases = psNewAlias;
|
||||
OOTRACEDBGA2("Added alias: URL-ID - %s\n", url);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpAddAliasEmailID(const char * email)
|
||||
{
|
||||
ooAliases * psNewAlias=NULL;
|
||||
psNewAlias = (ooAliases*)memAlloc(&gH323ep.ctxt, sizeof(ooAliases));
|
||||
if(!psNewAlias)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for new Email-ID alias\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
psNewAlias->type = T_H225AliasAddress_email_ID;
|
||||
psNewAlias->registered = FALSE;
|
||||
psNewAlias->value = (char*) memAlloc(&gH323ep.ctxt, strlen(email)+1);
|
||||
if(!psNewAlias->value)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for the new Email-ID alias"
|
||||
" value\n");
|
||||
memFreePtr(&gH323ep.ctxt, psNewAlias);
|
||||
return OO_FAILED;
|
||||
}
|
||||
strcpy(psNewAlias->value, email);
|
||||
psNewAlias->next = gH323ep.aliases;
|
||||
gH323ep.aliases = psNewAlias;
|
||||
OOTRACEDBGA2("Added alias: Email-ID - %s\n", email);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpAddAliasTransportID(const char * ipaddress)
|
||||
{
|
||||
ooAliases * psNewAlias=NULL;
|
||||
psNewAlias = (ooAliases*)memAlloc(&gH323ep.ctxt, sizeof(ooAliases));
|
||||
if(!psNewAlias)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for new Transport-ID "
|
||||
"alias\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
psNewAlias->type = T_H225AliasAddress_transportID;
|
||||
psNewAlias->registered = FALSE;
|
||||
psNewAlias->value = (char*) memAlloc(&gH323ep.ctxt, strlen(ipaddress)+1);
|
||||
if(!psNewAlias->value)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to allocate memory for the new Transport-ID "
|
||||
"alias value\n");
|
||||
memFreePtr(&gH323ep.ctxt, psNewAlias);
|
||||
return OO_FAILED;
|
||||
}
|
||||
strcpy(psNewAlias->value, ipaddress);
|
||||
psNewAlias->next = gH323ep.aliases;
|
||||
gH323ep.aliases = psNewAlias;
|
||||
OOTRACEDBGA2("Added alias: Transport-ID - %s\n", ipaddress);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpClearAllAliases(void)
|
||||
{
|
||||
ooAliases *pAlias = NULL, *pTemp;
|
||||
if(gH323ep.aliases)
|
||||
{
|
||||
pAlias = gH323ep.aliases;
|
||||
while(pAlias)
|
||||
{
|
||||
pTemp = pAlias;
|
||||
pAlias = pAlias->next;
|
||||
memFreePtr(&gH323ep.ctxt, pTemp);
|
||||
}
|
||||
gH323ep.aliases = NULL;
|
||||
}
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpSetH225MsgCallbacks(OOH225MsgCallbacks h225Callbacks)
|
||||
{
|
||||
gH323ep.h225Callbacks.onReceivedSetup = h225Callbacks.onReceivedSetup;
|
||||
gH323ep.h225Callbacks.onReceivedConnect = h225Callbacks.onReceivedConnect;
|
||||
gH323ep.h225Callbacks.onBuiltSetup = h225Callbacks.onBuiltSetup;
|
||||
gH323ep.h225Callbacks.onBuiltConnect = h225Callbacks.onBuiltConnect;
|
||||
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpSetH323Callbacks(OOH323CALLBACKS h323Callbacks)
|
||||
{
|
||||
gH323ep.h323Callbacks.onNewCallCreated = h323Callbacks.onNewCallCreated;
|
||||
gH323ep.h323Callbacks.onAlerting = h323Callbacks.onAlerting;
|
||||
gH323ep.h323Callbacks.onIncomingCall = h323Callbacks.onIncomingCall;
|
||||
gH323ep.h323Callbacks.onOutgoingCall = h323Callbacks.onOutgoingCall;
|
||||
gH323ep.h323Callbacks.onCallEstablished = h323Callbacks.onCallEstablished;
|
||||
gH323ep.h323Callbacks.onCallForwarded = h323Callbacks.onCallForwarded;
|
||||
gH323ep.h323Callbacks.onCallCleared = h323Callbacks.onCallCleared;
|
||||
gH323ep.h323Callbacks.openLogicalChannels = h323Callbacks.openLogicalChannels;
|
||||
gH323ep.h323Callbacks.onReceivedDTMF = h323Callbacks.onReceivedDTMF;
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpDestroy(void)
|
||||
{
|
||||
/* free any internal memory allocated
|
||||
close trace file free context structure
|
||||
*/
|
||||
OOH323CallData * cur, *temp;
|
||||
if(OO_TESTFLAG(gH323ep.flags, OO_M_ENDPOINTCREATED))
|
||||
{
|
||||
OOTRACEINFO1("Destroying H323 Endpoint\n");
|
||||
if(gH323ep.callList)
|
||||
{
|
||||
cur = gH323ep.callList;
|
||||
while(cur)
|
||||
{
|
||||
temp = cur;
|
||||
cur = cur->next;
|
||||
temp->callEndReason = OO_REASON_LOCAL_CLEARED;
|
||||
ooCleanCall(temp);
|
||||
}
|
||||
gH323ep.callList = NULL;
|
||||
}
|
||||
|
||||
|
||||
if(gH323ep.listener)
|
||||
{
|
||||
ooSocketClose(*(gH323ep.listener));
|
||||
gH323ep.listener = NULL;
|
||||
}
|
||||
|
||||
ooGkClientDestroy();
|
||||
|
||||
if(gH323ep.fptraceFile)
|
||||
{
|
||||
fclose(gH323ep.fptraceFile);
|
||||
gH323ep.fptraceFile = NULL;
|
||||
}
|
||||
|
||||
freeContext(&(gH323ep.ctxt));
|
||||
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_ENDPOINTCREATED);
|
||||
}
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpEnableGkRouted(void)
|
||||
{
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_GKROUTED);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpDisableGkRouted(void)
|
||||
{
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_GKROUTED);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpEnableAutoAnswer(void)
|
||||
{
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_AUTOANSWER);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpDisableAutoAnswer(void)
|
||||
{
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_AUTOANSWER);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpEnableManualRingback(void)
|
||||
{
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_MANUALRINGBACK);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpDisableManualRingback(void)
|
||||
{
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_MANUALRINGBACK);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpEnableMediaWaitForConnect(void)
|
||||
{
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_MEDIAWAITFORCONN);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpDisableMediaWaitForConnect(void)
|
||||
{
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_MEDIAWAITFORCONN);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpEnableFastStart(void)
|
||||
{
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_FASTSTART);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpDisableFastStart(void)
|
||||
{
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_FASTSTART);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpEnableH245Tunneling(void)
|
||||
{
|
||||
OO_SETFLAG(gH323ep.flags, OO_M_TUNNELING);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpDisableH245Tunneling(void)
|
||||
{
|
||||
OO_CLRFLAG(gH323ep.flags, OO_M_TUNNELING);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpSetTermType(int value)
|
||||
{
|
||||
gH323ep.termType = value;
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpSetProductID (const char* productID)
|
||||
{
|
||||
if (0 != productID) {
|
||||
char* pstr = (char*) memAlloc (&gH323ep.ctxt, strlen(productID)+1);
|
||||
strcpy (pstr, productID);
|
||||
if(gH323ep.productID)
|
||||
memFreePtr(&gH323ep.ctxt, gH323ep.productID);
|
||||
gH323ep.productID = pstr;
|
||||
return OO_OK;
|
||||
}
|
||||
else return OO_FAILED;
|
||||
}
|
||||
|
||||
int ooH323EpSetVersionID (const char* versionID)
|
||||
{
|
||||
if (0 != versionID) {
|
||||
char* pstr = (char*) memAlloc (&gH323ep.ctxt, strlen(versionID)+1);
|
||||
strcpy (pstr, versionID);
|
||||
if(gH323ep.versionID)
|
||||
memFreePtr(&gH323ep.ctxt, gH323ep.versionID);
|
||||
gH323ep.versionID = pstr;
|
||||
return OO_OK;
|
||||
}
|
||||
else return OO_FAILED;
|
||||
}
|
||||
|
||||
int ooH323EpSetCallerID (const char* callerID)
|
||||
{
|
||||
if (0 != callerID) {
|
||||
char* pstr = (char*) memAlloc (&gH323ep.ctxt, strlen(callerID)+1);
|
||||
strcpy (pstr, callerID);
|
||||
if(gH323ep.callerid)
|
||||
memFreePtr(&gH323ep.ctxt, gH323ep.callerid);
|
||||
gH323ep.callerid = pstr;
|
||||
return OO_OK;
|
||||
}
|
||||
else return OO_FAILED;
|
||||
}
|
||||
|
||||
int ooH323EpSetCallingPartyNumber(const char* number)
|
||||
{
|
||||
int ret=OO_OK;
|
||||
if(number)
|
||||
{
|
||||
strncpy(gH323ep.callingPartyNumber, number,
|
||||
sizeof(gH323ep.callingPartyNumber)-1);
|
||||
ret = ooH323EpAddAliasDialedDigits((char*)number);
|
||||
return ret;
|
||||
}
|
||||
else return OO_FAILED;
|
||||
}
|
||||
|
||||
int ooH323EpSetTraceLevel(int traceLevel)
|
||||
{
|
||||
ooSetTraceThreshold(traceLevel);
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
void ooH323EpPrintConfig(void)
|
||||
{
|
||||
OOTRACEINFO1("H.323 Endpoint Configuration is as follows:\n");
|
||||
|
||||
OOTRACEINFO2("\tTrace File: %s\n", gH323ep.traceFile);
|
||||
|
||||
if(!OO_TESTFLAG(gH323ep.flags, OO_M_FASTSTART))
|
||||
{
|
||||
OOTRACEINFO1("\tFastStart - disabled\n");
|
||||
}
|
||||
else{
|
||||
OOTRACEINFO1("\tFastStart - enabled\n");
|
||||
}
|
||||
|
||||
if(!OO_TESTFLAG(gH323ep.flags, OO_M_TUNNELING))
|
||||
{
|
||||
OOTRACEINFO1("\tH245 Tunneling - disabled\n");
|
||||
}
|
||||
else{
|
||||
OOTRACEINFO1("\tH245 Tunneling - enabled\n");
|
||||
}
|
||||
|
||||
if(!OO_TESTFLAG(gH323ep.flags, OO_M_MEDIAWAITFORCONN))
|
||||
{
|
||||
OOTRACEINFO1("\tMediaWaitForConnect - disabled\n");
|
||||
}
|
||||
else{
|
||||
OOTRACEINFO1("\tMediaWaitForConnect - enabled\n");
|
||||
}
|
||||
|
||||
if(OO_TESTFLAG(gH323ep.flags, OO_M_AUTOANSWER))
|
||||
OOTRACEINFO1("\tAutoAnswer - enabled\n");
|
||||
else
|
||||
OOTRACEINFO1("\tAutoAnswer - disabled\n");
|
||||
|
||||
OOTRACEINFO2("\tTerminal Type - %d\n", gH323ep.termType);
|
||||
|
||||
OOTRACEINFO2("\tT35 CountryCode - %d\n", gH323ep.t35CountryCode);
|
||||
|
||||
OOTRACEINFO2("\tT35 Extension - %d\n", gH323ep.t35Extension);
|
||||
|
||||
OOTRACEINFO2("\tManufacturer Code - %d\n", gH323ep.manufacturerCode);
|
||||
|
||||
OOTRACEINFO2("\tProductID - %s\n", gH323ep.productID);
|
||||
|
||||
OOTRACEINFO2("\tVersionID - %s\n", gH323ep.versionID);
|
||||
|
||||
OOTRACEINFO2("\tLocal signalling IP address - %s\n", gH323ep.signallingIP);
|
||||
|
||||
OOTRACEINFO2("\tH225 ListenPort - %d\n", gH323ep.listenPort);
|
||||
|
||||
OOTRACEINFO2("\tCallerID - %s\n", gH323ep.callerid);
|
||||
|
||||
|
||||
OOTRACEINFO2("\tCall Establishment Timeout - %d seconds\n",
|
||||
gH323ep.callEstablishmentTimeout);
|
||||
|
||||
OOTRACEINFO2("\tMasterSlaveDetermination Timeout - %d seconds\n",
|
||||
gH323ep.msdTimeout);
|
||||
|
||||
OOTRACEINFO2("\tTerminalCapabilityExchange Timeout - %d seconds\n",
|
||||
gH323ep.tcsTimeout);
|
||||
|
||||
OOTRACEINFO2("\tLogicalChannel Timeout - %d seconds\n",
|
||||
gH323ep.logicalChannelTimeout);
|
||||
|
||||
OOTRACEINFO2("\tSession Timeout - %d seconds\n", gH323ep.sessionTimeout);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpAddG711Capability(int cap, int txframes, int rxframes, int dir,
|
||||
cb_StartReceiveChannel startReceiveChannel,
|
||||
cb_StartTransmitChannel startTransmitChannel,
|
||||
cb_StopReceiveChannel stopReceiveChannel,
|
||||
cb_StopTransmitChannel stopTransmitChannel)
|
||||
{
|
||||
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes, FALSE,
|
||||
dir, startReceiveChannel, startTransmitChannel,
|
||||
stopReceiveChannel, stopTransmitChannel, FALSE);
|
||||
}
|
||||
|
||||
int ooH323EpAddG728Capability(int cap, int txframes, int rxframes, int dir,
|
||||
cb_StartReceiveChannel startReceiveChannel,
|
||||
cb_StartTransmitChannel startTransmitChannel,
|
||||
cb_StopReceiveChannel stopReceiveChannel,
|
||||
cb_StopTransmitChannel stopTransmitChannel)
|
||||
{
|
||||
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes, FALSE,
|
||||
dir, startReceiveChannel, startTransmitChannel,
|
||||
stopReceiveChannel, stopTransmitChannel, FALSE);
|
||||
}
|
||||
|
||||
int ooH323EpAddG729Capability(int cap, int txframes, int rxframes, int dir,
|
||||
cb_StartReceiveChannel startReceiveChannel,
|
||||
cb_StartTransmitChannel startTransmitChannel,
|
||||
cb_StopReceiveChannel stopReceiveChannel,
|
||||
cb_StopTransmitChannel stopTransmitChannel)
|
||||
{
|
||||
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes, FALSE,
|
||||
dir, startReceiveChannel, startTransmitChannel,
|
||||
stopReceiveChannel, stopTransmitChannel, FALSE);
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
|
||||
OOBOOL silenceSuppression, int dir,
|
||||
cb_StartReceiveChannel startReceiveChannel,
|
||||
cb_StartTransmitChannel startTransmitChannel,
|
||||
cb_StopReceiveChannel stopReceiveChannel,
|
||||
cb_StopTransmitChannel stopTransmitChannel)
|
||||
{
|
||||
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
|
||||
silenceSuppression, dir, startReceiveChannel,
|
||||
startTransmitChannel, stopReceiveChannel,
|
||||
stopTransmitChannel, FALSE);
|
||||
}
|
||||
|
||||
int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
|
||||
OOBOOL comfortNoise, OOBOOL scrambled, int dir,
|
||||
cb_StartReceiveChannel startReceiveChannel,
|
||||
cb_StartTransmitChannel startTransmitChannel,
|
||||
cb_StopReceiveChannel stopReceiveChannel,
|
||||
cb_StopTransmitChannel stopTransmitChannel)
|
||||
{
|
||||
return ooCapabilityAddGSMCapability(NULL, cap, framesPerPkt, comfortNoise,
|
||||
scrambled, dir, startReceiveChannel,
|
||||
startTransmitChannel, stopReceiveChannel,
|
||||
stopTransmitChannel, FALSE);
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpAddH263VideoCapability(int cap, unsigned sqcifMPI,
|
||||
unsigned qcifMPI, unsigned cifMPI,
|
||||
unsigned cif4MPI, unsigned cif16MPI,
|
||||
unsigned maxBitRate, int dir,
|
||||
cb_StartReceiveChannel startReceiveChannel,
|
||||
cb_StartTransmitChannel startTransmitChannel,
|
||||
cb_StopReceiveChannel stopReceiveChannel,
|
||||
cb_StopTransmitChannel stopTransmitChannel)
|
||||
{
|
||||
|
||||
return ooCapabilityAddH263VideoCapability(NULL, sqcifMPI, qcifMPI, cifMPI,
|
||||
cif4MPI, cif16MPI, maxBitRate,dir,
|
||||
startReceiveChannel, startTransmitChannel,
|
||||
stopReceiveChannel, stopTransmitChannel,
|
||||
FALSE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
int ooH323EpEnableDTMFRFC2833(int dynamicRTPPayloadType)
|
||||
{
|
||||
return ooCapabilityEnableDTMFRFC2833(NULL, dynamicRTPPayloadType);
|
||||
}
|
||||
|
||||
int ooH323EpDisableDTMFRFC2833(void)
|
||||
{
|
||||
return ooCapabilityDisableDTMFRFC2833(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpEnableDTMFH245Alphanumeric()
|
||||
{
|
||||
return ooCapabilityEnableDTMFH245Alphanumeric(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpDisableDTMFH245Alphanumeric()
|
||||
{
|
||||
return ooCapabilityDisableDTMFH245Alphanumeric(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpEnableDTMFH245Signal()
|
||||
{
|
||||
return ooCapabilityEnableDTMFH245Signal(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpDisableDTMFH245Signal()
|
||||
{
|
||||
return ooCapabilityDisableDTMFH245Signal(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpEnableDTMFQ931Keypad()
|
||||
{
|
||||
return ooCapabilityEnableDTMFQ931Keypad(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpDisableDTMFQ931Keypad()
|
||||
{
|
||||
return ooCapabilityDisableDTMFQ931Keypad(NULL);
|
||||
}
|
||||
|
||||
int ooH323EpSetGkClientCallbacks(OOGKCLIENTCALLBACKS gkClientCallbacks)
|
||||
{
|
||||
|
||||
if(gH323ep.gkClient)
|
||||
{
|
||||
return ooGkClientSetCallbacks(gH323ep.gkClient, gkClientCallbacks);
|
||||
}
|
||||
else{
|
||||
OOTRACEERR1("Error:Gk Client hasn't been initialized yet\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 0-1024 are reserved for well known services */
|
||||
int ooH323EpSetTCPPortRange(int base, int max)
|
||||
{
|
||||
if(base <= 1024)
|
||||
gH323ep.tcpPorts.start = 1025;
|
||||
else
|
||||
gH323ep.tcpPorts.start = base;
|
||||
if(max > 65500)
|
||||
gH323ep.tcpPorts.max = 65500;
|
||||
else
|
||||
gH323ep.tcpPorts.max = max;
|
||||
|
||||
if(gH323ep.tcpPorts.max<gH323ep.tcpPorts.start)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to set tcp ports- "
|
||||
"Max port number less than Start port number\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
gH323ep.tcpPorts.current = gH323ep.tcpPorts.start;
|
||||
|
||||
OOTRACEINFO1("TCP port range initialize - successful\n");
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpSetUDPPortRange(int base, int max)
|
||||
{
|
||||
if(base <= 1024)
|
||||
gH323ep.udpPorts.start = 1025;
|
||||
else
|
||||
gH323ep.udpPorts.start = base;
|
||||
if(max > 65500)
|
||||
gH323ep.udpPorts.max = 65500;
|
||||
else
|
||||
gH323ep.udpPorts.max = max;
|
||||
|
||||
if(gH323ep.udpPorts.max<gH323ep.udpPorts.start)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to set udp ports- Max port number"
|
||||
" less than Start port number\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
|
||||
gH323ep.udpPorts.current = gH323ep.udpPorts.start;
|
||||
|
||||
OOTRACEINFO1("UDP port range initialize - successful\n");
|
||||
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
int ooH323EpSetRTPPortRange(int base, int max)
|
||||
{
|
||||
if(base <= 1024)
|
||||
gH323ep.rtpPorts.start = 1025;
|
||||
else
|
||||
gH323ep.rtpPorts.start = base;
|
||||
if(max > 65500)
|
||||
gH323ep.rtpPorts.max = 65500;
|
||||
else
|
||||
gH323ep.rtpPorts.max = max;
|
||||
|
||||
if(gH323ep.rtpPorts.max<gH323ep.rtpPorts.start)
|
||||
{
|
||||
OOTRACEERR1("Error: Failed to set rtp ports- Max port number"
|
||||
" less than Start port number\n");
|
||||
return OO_FAILED;
|
||||
}
|
||||
|
||||
gH323ep.rtpPorts.current = gH323ep.rtpPorts.start;
|
||||
OOTRACEINFO1("RTP port range initialize - successful\n");
|
||||
return OO_OK;
|
||||
}
|
||||
|
Reference in New Issue
Block a user