dect
/
asterisk
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/addons/ooh323c/src/ooh323.h

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