183 lines
6.1 KiB
C
183 lines
6.1 KiB
C
/*
|
|
* 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.
|
|
*
|
|
*****************************************************************************/
|
|
|
|
/**
|
|
* @file ooh323.h
|
|
* This file contains functions to support H.225 messages.
|
|
*/
|
|
#ifndef _OOH323HDR_H_
|
|
#define _OOH323HDR_H_
|
|
|
|
#include "ooasn1.h"
|
|
#include "ootypes.h"
|
|
#include "ootrace.h"
|
|
#include "ooq931.h"
|
|
#include "MULTIMEDIA-SYSTEM-CONTROL.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef EXTERN
|
|
#ifdef MAKE_DLL
|
|
#define EXTERN __declspec(dllexport)
|
|
#else
|
|
#define EXTERN
|
|
#endif /* MAKE_DLL */
|
|
#endif /* EXTERN */
|
|
|
|
struct OOH323CallData;
|
|
|
|
/**
|
|
* @addtogroup q931
|
|
* @{
|
|
*/
|
|
/**
|
|
* This function is used to process a received SETUP message.
|
|
* @param call Pointer to call for which SETUP message is received.
|
|
* @param q931Msg Pointer to the received SETUP message.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooOnReceivedSetup
|
|
(struct OOH323CallData *call, Q931Message *q931Msg);
|
|
|
|
/**
|
|
* This function is used to process a received CONNECT message.
|
|
* It creates H.245 negotiation channel, and starts TCS and MSD
|
|
* procedures.
|
|
* @param call Pointer to call for which CONNECT message is received.
|
|
* @param q931Msg Pointer to the received q931Msg
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooOnReceivedSignalConnect
|
|
(struct OOH323CallData* call, Q931Message *q931Msg);
|
|
|
|
/**
|
|
* This function is used to handle received H.2250 messages. It
|
|
* calls helper functions based on the type of message received.
|
|
* @param call Pointer to the call for which a H.2250 message is received
|
|
* @param q931Msg Pointer to the received q931Msg
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure
|
|
*/
|
|
EXTERN int ooHandleH2250Message
|
|
(struct OOH323CallData *call, Q931Message *q931Msg);
|
|
|
|
/**
|
|
* This function is used to process a received Facility message.
|
|
* @param call Handle to the call for which message has been received.
|
|
* @param pQ931Msg Pointer the the received Facility message.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooOnReceivedFacility
|
|
(struct OOH323CallData *call, Q931Message * pQ931Msg);
|
|
|
|
/**
|
|
* This function is used to process tunneled H245 messages
|
|
* @param call Handle to the call
|
|
* @param pH323UUPdu Pointer to the pdu containing tunneled messages.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooHandleTunneledH245Messages(struct OOH323CallData *call,
|
|
H225H323_UU_PDU * pH323UUPdu);
|
|
|
|
/**
|
|
* This is a helper function used to handle an startH245 Facility message.
|
|
* @param call Handle to the call
|
|
* @param facility Pointer to the facility message.
|
|
*/
|
|
EXTERN int ooHandleStartH245FacilityMessage(struct OOH323CallData *call,
|
|
H225Facility_UUIE *facility);
|
|
|
|
/**
|
|
* This function is used to retrieve the aliases from Sequence of alias
|
|
* addresses.
|
|
* @param call Handle to the call.Null when retrieving registered
|
|
* aliases.
|
|
* @param pAddresses Pointer to the sequence of alias addresses.
|
|
* @param aliasList Handle to alias list to be populated with retrieved
|
|
* aliases.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooH323RetrieveAliases
|
|
(struct OOH323CallData *call, H225_SeqOfH225AliasAddress *pAddresses,
|
|
OOAliases **aliasList);
|
|
|
|
/**
|
|
* This is a helper function used to populate alias list using aliases.
|
|
* @param pctxt Pointer to OOCTXT structure which will be used for memory
|
|
* allocations.
|
|
* @param pAliases Pointer to aliases to be used for populating list.
|
|
* @param pAliasList Pointer to alias list to be populated.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
EXTERN int ooPopulateAliasList(OOCTXT *pctxt, OOAliases *pAliases,
|
|
H225_SeqOfH225AliasAddress *pAliasList);
|
|
|
|
/**
|
|
* This function is used to search a particular alias in the alias list. The
|
|
* search can be on the basis of alias type or value or both.
|
|
* @param aliasList Handle to the alias list to be searched.
|
|
* @param type Type of the alias, if search has to consider type as
|
|
* criterion, otherwise 0.
|
|
* @param value Value of the alias, if the search has to consider value as
|
|
* criterion, NULL otherwise.
|
|
*/
|
|
EXTERN OOAliases* ooH323GetAliasFromList
|
|
(OOAliases *aliasList, int type, char *value);
|
|
|
|
/**
|
|
* This function is used to add a new alias to alias list.
|
|
* @param pAliasList Pointer to Alias list.
|
|
* @param pctxt Pointer to OOCTXT structure to be used for memory
|
|
* allocation.
|
|
* @param pAliasAddress New alias address to be added.
|
|
*
|
|
* @return Handle to newly added alias or NULL in case of failure.
|
|
*/
|
|
EXTERN OOAliases* ooH323AddAliasToList
|
|
(OOAliases **pAliasList, OOCTXT *pctxt, H225AliasAddress *pAliasAddress);
|
|
|
|
/**
|
|
* This function is used to retrieve ip address and port number from an
|
|
* H225TransportAddress structure.
|
|
* @param call Handle to the associated call.
|
|
* @param h225Address Pointer to H225TransportAddress structure
|
|
* @param ip Pointer to the buffer in which dotted ip address will
|
|
* be returned.
|
|
* @param port Pointer to the integer in which port value will be
|
|
* returned.
|
|
*
|
|
* @return OO_OK, on success; OO_FAILED, on failure.
|
|
*/
|
|
int ooH323GetIpPortFromH225TransportAddress(struct OOH323CallData *call,
|
|
H225TransportAddress *h225Address, char *ip, int *port);
|
|
/**
|
|
* @}
|
|
*/
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|