📄 mgcppackage.h
字号:
/******************************************************************************
Copyright(C) 2005,2006 Frank ZHANG
All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA.
******************************************************************************
* Authors : Frank ZHANG (openmgcp@gmail.com)
* Description :
*
*
* Date of creation : 04/10/2005
*
*
* History :
* 2005/04/10 Frank ZHANG : - Creation
******************************************************************************/
#ifndef __MGCP_PACKAGE__
#define __MGCP_PACKAGE__
#ifdef __cplusplus
extern "C" {#endif
#define TABLE_END ((DWORD)(0))
/* MGCP package Id definition */
typedef enum
{
MGCP_PKG_UNDEFINED = 0, /* Unknown package type */
MGCP_PKG_ANY, /* Any package, used in event name */
MGCP_PKG_GENERIC_MEDIA,
MGCP_PKG_DTMF,
MGCP_PKG_TRUNK,
MGCP_PKG_LINE,
MGCP_PKG_HANDSET_EMULATION,
MGCP_PKG_SERVICES_TONE,
MGCP_PKG_DIGIT_MAP_EXTENSION,
MGCP_PKG_SIGNAL_LIST,
MGCP_PKG_MEDIA_FORMAT_PARAMETER,
MGCP_PKG_RTP,
MGCP_PKG_RESOURCE_RESERVATION,
MGCP_PKG_ANNOUNCEMENT_SERVER,
MGCP_PKG_SCRIPT
} E_MGCP_PACKAGE;
#define MAX_PKG_NAME_LEN 10
typedef struct
{
char Name[MAX_PKG_NAME_LEN];
E_MGCP_PACKAGE ePackageType;
DWORD *pEventTable;
DWORD dwPackageVersion;
} MGCP_PACKAGE;
/* MGCP event type */
typedef enum
{
MGCP_EVT = 1, /* Event */
MGCP_SIG, /* Signal */
MGCP_ALL /* Event and signal */
} E_MGCP_EVENT_TYPE;
/* MGCP signal type */
typedef enum
{
SIG_BR = 1, /* Brief signal */
SIG_OO, /* On/Off signal */
SIG_TO, /* TimeOut signal with limited duration*/
SIG_INFI = 0xFF /* TimeOut signal with infinet duration */
} E_MGCP_SIGNAL_TYPE;
/* MGCP event/signal Id defination */
typedef enum
{
MGCP_EVT_UNDEFINED,
/* All event/signals */
MGCP_EVT_ALL,
/* Line package event/signal id */
L_ADSI_DISPLAY, /* ADSI Display */
L_ANSWER_TONE, /* Answer Tone */
L_BUSY_TONE, /* Busy Tone */
L_CALLER_ID, /* Caller-id */
L_DIAL_TONE, /* Dial Tone */
L_ERROR_TONE, /* Error Tone */
L_OFF_HOOK_TRANSITION, /* Off-hook Transition */
L_FLASH_HOOK, /* Flash-hook */
L_ON_HOLD_TONE, /* On Hold Tone */
L_ON_HOOK_TRANSITION, /* On-hook Transition */
L_LINE_SIDE_ANSWER_SUP, /* Line Side Answer Sup */
L_MESSAGE_WAITING_IND, /* Message Waiting ind */
L_NETWORK_BUSY, /* Network busy */
L_OPERATION_COMPLETE, /* Operation Complete */
L_OPERATION_FAILURE, /* Operation Failure */
L_NETWORK_DISCONNECT, /* Network Disconnect */
L_OFF_HOOK_WARNING_TONE, /* Off-hook Warning Tone */
L_PROMPT_TONE, /* Prompt Tone */
L_RINGING, /* Ringing */
L_DISTINCTIVE_RINGING, /* Distinctive Ringing */
L_REORDER_TONE, /* Reorder Tone */
L_RING_SPLASH, /* Ringsplash */
L_DISTINCTIVE_TONE_PATTERN, /* Distinctive Tone Pattern */
L_SPECIAL_INFORMATION_TONE, /* Special Information Tone */
L_STUTTER_DIAL_TONE, /* Stutter Dial Tone */
L_ALERTING_TONE, /* Alerting Tone */
L_VISUAL_MSG_WAITING_INDICATOR, /* Visual Message Waiting Indicator */
L_CALL_WAITING_TONE, /* Call Waiting Tone */
L_ALTERNATIVE_CALL_WAITING_TONES, /* Alternative Call Waiting Tones */
L_RECORDER_WARNING_TONE, /* Recorder Warning Tone */
L_CALLING_CARD_SERVICE_TONE, /* Calling Card Service Tone */
/* GENERIC_MEDIA package event/signal id */
G_CONFIRM_TONE, /* Confirm Tone */
G_CONGESTION_TONE, /* Congestion Tone */
G_FAX_TONE, /* Fax Tone */
G_INTERCEPT_TONE, /* Intercept Tone */
G_LONG_DURATION_CONNECTION, /* Long Duration Connection */
G_MODEM_TONE, /* Modem Tone */
G_OPERATION_COMPLETE, /* Operation Complete */
G_OPERATION_FAILURE, /* Operation Failure */
G_PATTERN_DETECTED, /* Pattern Detected */
G_PREEMPTION_TONE, /* Preemption Tone */
G_RINGBACK, /* Ringback */
G_RINGBACK_TONE, /* Ringback Tone */
/* DTMF package event/signal id */
D_DTMF_0, /* DTMF 0 */
D_DTMF_1, /* DTMF 1 */
D_DTMF_2, /* DTMF 2 */
D_DTMF_3, /* DTMF 3 */
D_DTMF_4, /* DTMF 4 */
D_DTMF_5, /* DTMF 5 */
D_DTMF_6, /* DTMF 6 */
D_DTMF_7, /* DTMF 7 */
D_DTMF_8, /* DTMF 8 */
D_DTMF_9, /* DTMF 9 */
D_DTMF_POUND, /* DTMF # */
D_DTMF_ASTERISK, /* DTMF * */
D_DTMF_A, /* DTMF A */
D_DTMF_B, /* DTMF B */
D_DTMF_C, /* DTMF C */
D_DTMF_D, /* DTMF D */
D_TONE_DURATION, /* DTMF Tone Duration */
D_OO_SIGNAL, /* DTMF OO Signal */
D_LONG_DURATION_INDICATOR, /* Long Duration Indicator */
D_OPERATION_COMPLETE, /* Operation Complete */
D_OPERATION_FAILURE, /* Operation Failure */
D_INTERDIGIT_TIMER, /* Interdigit Timer */
D_DTMF_WILDCARD, /* DTMF Tones Wildcard,match any digit 0-9 */
/* TRUNK package event/signal id */
T_ANSWER_SUPERVISION, /* Answer Supervision */
T_BLOCKING, /* Blocking */
T_BUSY, /* Busy */
T_CONTINUITY_TONE, /* Continuity Tone (go tone, or return tone in dual tone procedures) */
T_CONTINUITY_TEST, /* Continuity Test (go tone,or return tone in dual tone procedures) */
T_CONTINUITY_TRANSPONDER, /* Continuity Transponder */
T_LOOPBACK, /* Loopback */
T_NEW_MILLIWATT_TONE, /* New Milliwatt Tone */
T_NEWEST_MILLIWATT_TONE, /* Newest Milliwatt Tone */
T_OPERATION_COMPLETE, /* Operation Complete */
T_OPERATION_FAILURE, /* Operation Failure */
T_OLD_MILLIWATT_TONE, /* Old Milliwatt Tone */
T_PERMANENT_SIGNAL_TONE, /* Permanent Signal Tone */
T_QUIET_TERMINATION, /* Quiet Termination */
T_REORDER_TONE, /* Reorder Tone */
T_SPECIAL_INFORMATION_TONE, /* Special Information Tone */
T_TEST_LINE, /* Test Line */
T_TEST_PATTERN, /* Test Pattern */
T_NO_CIRCUIT, /* No Circuit */
/* HANDSET_EMULATION package event/signal id */
H_ADSI_DISPLAY, /* ADSI Display */
H_ANSWER_TONE, /* Answer Tone */
H_BUSY_TONE, /* Busy Tone */
H_CALLER_ID, /* Caller-id */
H_DIAL_TONE, /* Dial Tone */
H_ERROR_TONE, /* Error Tone */
H_OFF_HOOK_TRANSITION, /* Off-hook Transition */
H_ON_HOOK_TRANSITION, /* On-hook Transition */
H_FLASH_HOOK, /* Flash Hook */
H_TONE_ON_HOLD, /* Tone On Hold */
H_LINE_SIDE_ANSWER_SUP, /* Line Side Answer Sup */
H_MESSAGE_WAITING_IND, /* Message Waiting Ind */
H_NETWORK_BUSY, /* Network Busy */
H_OPERATION_COMPLETE, /* Operation Complete */
H_OFF_HOOK_WARNING_TONE, /* Off-hook Warning Tone */
H_OPERATION_FAILURE, /* Operation Failure */
H_NETWORK_DISCONNECT, /* Network Disconnect */
H_PROMPT_TONE, /* Prompt Tone */
H_RINGING, /* Ringing */
H_DISTINCTIVE_RINGING, /* Distinctive Ringing */
H_REORDER_TONE, /* Reorder Tone */
H_RINGSPLASH, /* Ringsplash */
H_DISTINCTIVE_TONE_PATTERN, /* Distinctive Tone Pattern */
H_SIT_TONE, /* Sit Tone */
H_STUTTER_DIAL_TONE, /* Stutter Dial Tone */
H_ALERTING_TONE, /* Alerting Tone */
H_VISAL_MESSAGE_WAITING, /* Vis. Message Waiting Ind */
H_CALL_WAITING_TONE, /* Call Waiting tone */
H_RECORDER_WARNING_TONE, /* Recorder Warning Tone */
H_CALLING_CARD_SERVICE_TONE, /* Calling Card Serv. Tone */
/* Supplement service tone package event/signal id */
SST_CONFERENCE_DEPART, /* Conference Depart */
SST_CONFERENCE_JOIN, /* Conference Join */
SST_COMFORT_TONE, /* Comfort Tone */
SST_CALLER_WAITING_TONE, /* Caller Waiting Tone */
SST_ON_HOLD_TONE, /* On Hold Tone */
SST_NEGATIVE_INDICATION, /* Negative Indication */
SST_NUMBER_UNOBTAINABLE, /* Number Unobtainable */
SST_OPERATION_COMPLETE, /* Operation Complete */
SST_OPERATION_FAILURE, /* Operation Failure */
SST_PAY_HONE_RECOGNITION, /* Pay Phone Recognition */
SST_PAY_TONE, /* Pay Tone */
/* SIGNAL_LIST package event/signal id */
SL_OPERATION_COMPLETE, /* Operation Complete */
SL_OPERATION_FAILURE, /* Operation Failure */
SL_SIGNAL_LIST, /* Signal List */
/* Rtp package event/signal id */
R_CONTINUITY_TONE, /* Continuity Tone (single or return tone) */
R_CONTINUITY_TEST, /* Continuity Test (go tone,in dual tone procedures) */
R_ICMP_UNREACHABLE, /* ICMP Unreachable */
R_JITTER_BUFFER_CHANGED, /* Jitter Buffer Size Changed */
R_MEDIA_START, /* Media Start */
R_OPERATION_COMPLETE, /* Operation Complete */
R_OPERATION_FAILURE, /* Operation Failure */
R_PACKET_LOSS_EXCEEDED, /* Packet Loss Exceeded */
R_QUALITY_ALERT, /* Quality Alert */
R_RTP_TIMEOUT, /* RTP/RTCP Timeout */
R_SAMPLING_RATE_CHANGED, /* Sampling Rate Changed */
R_USED_CODEC_CHANGED, /* Used Codec Changed */
/* RESOURCE_RESERVATION package event/signal id */
RES_ERROR, /* Resource Error */
RES_LOST, /* Resource Lost */
/* ANNOUNCEMENT_SERVER package event/signal id */
A_PLAY_ANNOUNCEMENT, /* Play an Announcement */
A_OPERATION_COMPLETE, /* Operation Complete */
A_OPERATION_FAILURE, /* Operation Failure */
/* Script package event/signal id */
SCRIPT_INTERMEDIATE_RESULTS, /* Intermediate Results/Req */
SCRIPT_JAVA, /* Load & Run java script */
SCRIPT_OPERATION_COMPLETE, /* operation complete */
SCRIPT_OPERATION_FAILURE, /* operation failure */
SCRIPT_PERL, /* Load & Run perl script */
SCRIPT_TCL, /* Load & Run TCL script */
SCRIPT_VXML, /* Load & Run VXML doc */
SCRIPT_XML /* Load & Run XML script */
} E_MGCP_EVENT;
#define MAX_PKG_EVENT_NAME_LEN 10
typedef struct
{
char Name[MAX_PKG_EVENT_NAME_LEN];
E_MGCP_EVENT eEventID;
E_MGCP_EVENT_TYPE eEventType;
E_MGCP_SIGNAL_TYPE eSigType;
DWORD dwSigDuration;
} MGCP_PKG_EVENT;
LONG FindMgcpPackageByName(MGCP_PACKAGE *pPackage, char *pcPackageName);
LONG FindMgcpPackageByID(MGCP_PACKAGE *pPackage, E_MGCP_PACKAGE PackageID);
LONG FindMgcpPkgEventByName(MGCP_PKG_EVENT *pEvent, char *pcEventName,
E_MGCP_PACKAGE ePackageType);
LONG FindMgcpPkgEventByID(MGCP_PKG_EVENT *pEvent, E_MGCP_EVENT eEventID,
E_MGCP_PACKAGE ePackageType);
#ifdef __cplusplus}#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -