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

📄 mgcppackage.h

📁 mgcp协议源代码和测试程序,还有一个编译器
💻 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 + -