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

📄 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;

⌨️ 快捷键说明

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