⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mgcpdef.h

📁 mgcp协议源代码和测试程序,还有一个编译器
💻 H
📖 第 1 页 / 共 3 页
字号:
	char *pcParamName;
	char *pcParamValue;
} EVENT_PARAMETER;

typedef struct 
{
	WORD wNum;
	EVENT_PARAMETER *pEventParamList;
} EVENT_PARAMETERS;

typedef enum
{
	ACTION_UNDEFINED,
	ACTION_NOTIFY,
	ACTION_ACCUMU,
	ACTION_ACCU_DIG,
	ACTION_SWAP,
	ACTION_IGNORE,
	ACTION_KEEP,
	ACTION_EMBED_REQ,
	ACTION_EXTENDED
} E_EVENT_ACTION;

typedef struct 
{
	char *pcPackageName;
	char *pcActionName;
	EVENT_PARAMETERS ActionParameters;
} EXTENSION_ACTION;

typedef struct 
{
	E_EVENT_ACTION eType;
	union
	{
		struct EMBEDDED_REQUEST *pEmbeddedRequest;
		EXTENSION_ACTION *pExtensionAction;
	} u;
} EVENT_ACTION;

typedef enum
{
	DIGIT_MAP_STRING = 1,
	DIGIT_MAP_STRING_LIST
} E_DIGIT_MAP;

typedef struct
{
	E_DIGIT_MAP eType;

	WORD wNum;
	char **pDigitString;
} DIGIT_MAP;

/* The digit strings of the digit map can be splited into several sub types as below  */
typedef enum
{
	DIGIT_STR_NORMAL = 1, /* The sub string is consist of only DTMF letters and
							'T' */
	DIGIT_STR_RANGE,      /* The sub string is a range, include the sub range */
	DIGIT_STR_POSITION    /* The sub string is a range or normal string after
							which a '.' is followed */
} E_SUB_DIGIT_STR;

typedef struct
{
	E_SUB_DIGIT_STR eType;
	char *pcDigitString;
} SUB_DIGIT_STRING;

typedef struct
{
	WORD wSubStrNum;
	SUB_DIGIT_STRING *pSubStrList;
} DIGIT_STRING;

typedef struct
{
	DIGIT_MAP DigitMap;

	WORD wStrNum;                  /* String number */
	DIGIT_STRING *pDigitStrList;   /* Parsed digit string list */
} MGCP_DIGIT_MAP;

typedef struct 
{
	E_EVENT_ACTION eType;
	SLIST ReqEventList;
	SLIST ReqSigList;
	DIGIT_MAP *pDigitMap;
} MGCP_EVENT_ACTION;


typedef struct 
{
	WORD wNum;
	EVENT_ACTION *pActionList;
} EVENT_ACTIONS;

typedef struct 
{
	EVENT_NAME EventName;
	EVENT_ACTIONS *pEventActions;
	EVENT_PARAMETERS EventParams;
} REQUESTED_EVENT;

typedef struct 
{
	WORD wNum; 
	REQUESTED_EVENT *pReqEventList;
} REQUESTED_EVENTS;


typedef enum
{
	MGCP_EVENT_ID_SPECI,
	MGCP_EVENT_ID_RANGE 
} E_MGCP_EVENT_ID;

typedef struct
{
	char *pcEventName;         /* Original event name range */
	SLIST EventList;           /* Parsered event ID list, E_MGCP_EVENT type */
} MGCP_EVENT_RANGE;


typedef struct
{
	E_MGCP_EVENT_ID eEventIdType;
	union
	{
		E_MGCP_EVENT eEventID;
		MGCP_EVENT_RANGE *pEventRange;
	} u;
} MGCP_EVENT_ID;

typedef enum
{
	CONNEC_UNDEFINE = 0,
	CONNEC_CURRENT,
	CONNEC_ALL,
	CONNEC_SPECIFIC
} E_MGCP_CONNEC_ID;

typedef struct
{
	E_MGCP_CONNEC_ID eConnecType;
	DWORD dwConnecID;                 /* Used only when connection id is specific */
} MGCP_CONNEC_ID;

typedef struct
{
	E_MGCP_PACKAGE ePkgID;
	MGCP_EVENT_ID EventID;
	MGCP_CONNEC_ID ConnectionId;
} MGCP_EVENT_NAME;

typedef struct
{
	E_MGCP_PACKAGE ePkgID;
	MGCP_EVENT_ID EventID;
	MGCP_CONNEC_ID ConnectionID;

	SLIST ActionList;
	EVENT_PARAMETERS EventParams;    /* Event parameters */
} MGCP_REQUESTED_EVENT;


typedef struct
{ 
	EVENT_NAME SignalName;
	EVENT_PARAMETERS SigParamList;   /* Signal parameters */
} SIGNAL_REQUEST;

#define OO_SIG_OFF 0
#define OO_SIG_ON  1
#define TO_SIG_OFF 0
typedef struct
{ 
	E_MGCP_PACKAGE ePkgID;
	E_MGCP_EVENT eSigID;
	DWORD dwConnecID;

	EVENT_PARAMETERS SigParamList;    /* Signal parameters */

	E_MGCP_SIGNAL_TYPE eSigType;        /* Signal type: OO/TO/BRF */
	DWORD dwTimeOutValue;               /* Signal duration for TO signal, if OO
										 signal, 0 is off, 1 is on */
} MGCP_SIGNAL;

typedef struct
{ 
	WORD wNum;
	SIGNAL_REQUEST *pSigReqList;
} SIGNAL_REQUESTS;

typedef SIGNAL_REQUESTS OBSERVED_EVENTS;

typedef struct
{
	E_MGCP_PACKAGE ePkgID;
	E_MGCP_EVENT eEventID;
	DWORD dwConnecID;

	EVENT_PARAMETERS EventParams; /* Event parameters, mostly for OC/OF event,
								   these two events include the TO signal
								   type as the event parameter */
} MGCP_OBSERVED_EVENT;

typedef struct
{
	E_MGCP_PACKAGE ePkgID;
	E_MGCP_EVENT EventID;
} MGCP_PERSIS_EVENT;

typedef SIGNAL_REQUESTS DETECT_EVENTS;

typedef struct
{
	E_MGCP_PACKAGE ePkgID;
	MGCP_EVENT_ID EventID;
	MGCP_CONNEC_ID ConnectionID;

	EVENT_PARAMETERS EventParams;   /* Event parameters */
} MGCP_DETECT_EVENT;

typedef SIGNAL_REQUESTS EVENT_STATES;

typedef enum
{
	CONPARAM_EXT_VENDOR = 1,
	CONPARAM_EXT_PACKAGE
} E_CONPARAM_EXTENSION;

typedef struct
{
	E_CONPARAM_EXTENSION eType;
	char *pcPackageName;
	char *pcExtensionName;
	DWORD dwExtensionValue;
} CONNECTION_PARAM_EXTEN;

/* Connection parameter number, used when encode */
#define CONNECTION_PARAMETERS_NUM 7
typedef struct
{
	DWORD PacketsSent;
	DWORD OctetsSent;
	DWORD PacketsReceived;
	DWORD OctetsReceived;
	DWORD PacketsLost;
	DWORD Jitter;
	DWORD AverageLatency;
	CONNECTION_PARAM_EXTEN *pExtension;
} CONNECTION_PARAMETERS;

typedef struct
{
	WORD wCode;
	char *pcReasonDescription;
} REASON_CODE;

typedef struct
{
	char *pcLocalName;
	char *pcDomainName;
} ENDPOINT_NAME;

typedef enum
{
	INFO_REQUESTED_EVENTS = 1,
	INFO_DIGIT_MAP,
	INFO_SIGNAL_REQUESTS,
	INFO_REQUEST_IDENTIFIER,
	INFO_QUARANTINE_HANDLING,
	INFO_CONNECTION_IDENTIFIERS,
	INFO_DETECT_EVENTS,
	INFO_OBSERVED_EVENTS,
	INFO_EVENT_STATES,
	INFO_BEARER_INFORMATION,
	INFO_RESTART_METHOD,
	INFO_RESTART_DELAY,
	INFO_REASON_CODE,
	INFO_PACKAGE_LIST,
	INFO_MAX_MGCP_DATAGRAM,
	INFO_CAPABILITIES,
	INFO_CALL_ID,
	INFO_NOTIFIED_ENTITY,
	INFO_LOCAL_CONNECTION_OPTIONS,
	INFO_CONNECTION_MODE,
	INFO_REMOTE_CONNECTION_DESCRIPTOR,
	INFO_LOCAL_CONNECTIOND_ESCRIPTOR,
	INFO_CONNECTION_PARAMETERS,
	INFO_SPECIFIC_ENDPOINTID,

	INFO_EXTENSION
} E_REQ_INFO;

typedef enum
{
	EXT_PARAM_VENDOR_MAN = 1,
	EXT_PARAM_VENDOR_OPT,
	EXT_PARAM_PACKAGE,
	EXT_PARAM_OTHER
} E_EXTENSION_PARAMETER;

typedef struct
{
	E_EXTENSION_PARAMETER eType;
	char *pcPackageName;
	char *pcParamName;
} EXTENSION_PARAMETER;

typedef struct
{
	EXTENSION_PARAMETER ExtenParamName;
	char *pcParamValue;
} EXPERIMENTAL_PARAMETER;

typedef struct
{
	WORD wNum;
	EXPERIMENTAL_PARAMETER *pExperiParamList;
} EXPERIMENTAL_PARAMS;

typedef struct
{
	E_REQ_INFO eType;
	char *pExtenInfoCode;
} REQUESTED_INFO_CODE;

typedef struct
{
	WORD wNum; 
	REQUESTED_INFO_CODE *pInfoCodeList;
} REQUESTED_INFO;

typedef enum
{
	QUARAN_HANDLING_UNDEF,
	QUARAN_HANDLING_PROCESS,
	QUARAN_HANDLING_DISCARD,
	QUARAN_HANDLING_STEP,
	QUARAN_HANDLING_LOOP
} E_QUARANTINE_HANDLING;

typedef struct
{ 
	E_QUARANTINE_HANDLING eLoopControl;
	E_QUARANTINE_HANDLING eProcessControl;
} QUARANTINE_HANDLING;


typedef enum
{
	RESTART_METHOD_GRACEFUL = 1,
	RESTART_METHOD_FORCED,
	RESTART_METHOD_RESTART,
	RESTART_METHOD_DISCONNECTED,
	RESTART_METHOD_CANCEL_GRACEFUL,
	RESTART_METHOD_EXTENSION
} E_RESTART_METHOD;

typedef struct
{
	E_RESTART_METHOD eType;
	char *pcExtenPackageName;
	char *pcExtenMethodName;
} RESTART_METHOD;

/* Capabilities can only be in the response to AUEP command */
typedef struct
{
	LOCAL_CONNEC_OPTS ConnectionOpts;

	WORD wPackageNum;
	char **ppcSupportedPackageList;

	WORD wConnModeNum;
	CONNECTION_MODE *pSupportedModeList;
} CAPABILITIES;

#define MAX_CODEC_NAME_LEN 10
typedef struct
{
	char CodecName[MAX_CODEC_NAME_LEN+1];

	WORD wPacketizationMin;
	WORD wPacketizationMax;
	BOOL bEchcancellation;
	BOOL bSilenceSuppress;
} MGCP_CODEC;

typedef struct
{
	SLIST CompressAlgo;			/*	Supported codecs, MGCP_CODEC type	*/
	SLIST ConnectionModes;		/*	Supported connection mode, CONNECTION_MODE type	*/
	SLIST SupportedPackages;	/*	Supported package list, E_MGCP_PACKAGE type,
									the first one is the default package	*/
} MGCP_CAPABILITIES;


typedef struct
{
	char *pcPackageName;
	DWORD dwVersion;
} PKG_NAME_AND_VERS;

typedef struct
{
	WORD wNum;
	PKG_NAME_AND_VERS *pPackageList;
} PACKAGE_LIST;


/******************************************************************************
 * MGCP command defination
 ******************************************************************************/
typedef struct
{
	BEARER_INFO *pBearerInfo;

	EXPERIMENTAL_PARAMS ExperiParamList;
	RESPONSE_ACK *pRspAck;			/*	ResponseAck parameter	*/
} MGCP_EPCF_CMD;		// 端点配置

typedef struct
{
	BEARER_INFO *pBearerInfo;
} ENCAPSULATED_EPCF;

typedef struct
{
	NOTIFIED_ENTITY *pNotifiedEntity;
	REQUESTED_EVENTS *pRequestedEvents;
	char *pcRequestIdentifier;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -