📄 mgcppackage.c
字号:
};static DWORD ResourceReservationPackage [] = { (DWORD)"re", RES_ERROR, MGCP_EVT, 0, 0, (DWORD)"rl", RES_LOST, MGCP_EVT, 0, 0, TABLE_END};static DWORD AnnouncementServerPackage [] = { (DWORD)"ann", A_PLAY_ANNOUNCEMENT, MGCP_SIG, SIG_TO, 0, (DWORD)"oc", A_OPERATION_COMPLETE, MGCP_EVT, 0, 0, (DWORD)"of", A_OPERATION_FAILURE, MGCP_EVT, 0, 0, TABLE_END};static DWORD ScriptPackage [] = { (DWORD)"ir", SCRIPT_INTERMEDIATE_RESULTS, MGCP_ALL, SIG_BR, 0, (DWORD)"java", SCRIPT_JAVA, MGCP_SIG, SIG_TO, 0, (DWORD)"oc", SCRIPT_OPERATION_COMPLETE, MGCP_EVT, 0, 0, (DWORD)"of", SCRIPT_OPERATION_FAILURE, MGCP_EVT, 0, 0, (DWORD)"perl", SCRIPT_PERL, MGCP_SIG, SIG_TO, 0, (DWORD)"tcl", SCRIPT_TCL, MGCP_SIG, SIG_TO, 0, (DWORD)"vxml", SCRIPT_VXML, MGCP_SIG, SIG_TO, 0, (DWORD)"xml", SCRIPT_XML, MGCP_SIG, SIG_TO, 0, TABLE_END};/* PakcageName / Package ID/ PackageTable / PackageVersion */#define MGCP_PKG_TABLE_OFFSET 4static DWORD MGCPPackageTable[] = { (DWORD)"*", MGCP_PKG_ANY, (DWORD)0, 0, (DWORD)"L", MGCP_PKG_LINE, (DWORD)LinePackage, 1, (DWORD)"G", MGCP_PKG_GENERIC_MEDIA, (DWORD)GenericMediaPackage, 1, (DWORD)"D", MGCP_PKG_DTMF, (DWORD)DTMFPackage, 1, (DWORD)"T", MGCP_PKG_TRUNK, (DWORD)TrunkPackage, 1, (DWORD)"H", MGCP_PKG_HANDSET_EMULATION, (DWORD)HandsetEmulationPackage, 1, (DWORD)"SST", MGCP_PKG_SERVICES_TONE, (DWORD)ServicesTonePackage, 1, (DWORD)"DM1", MGCP_PKG_DIGIT_MAP_EXTENSION, (DWORD)DigitMapExtensionPackage, 1, (DWORD)"SL", MGCP_PKG_SIGNAL_LIST, (DWORD)SignalListPackage, 1, (DWORD)"FM", MGCP_PKG_MEDIA_FORMAT_PARAMETER, (DWORD)MediaFormatPackage, 1, (DWORD)"R", MGCP_PKG_RTP, (DWORD)RTPPackage, 1, (DWORD)"RES", MGCP_PKG_RESOURCE_RESERVATION, (DWORD)ResourceReservationPackage, 1, (DWORD)"A", MGCP_PKG_ANNOUNCEMENT_SERVER, (DWORD)AnnouncementServerPackage, 1, (DWORD)"SCRIPT", MGCP_PKG_SCRIPT, (DWORD)ScriptPackage, 1, TABLE_END};/****************************************************************************** * Function : FindMgcpPackageByName * * Description : Find the mgcp package by name and return * * Input parameters : pcPackageName - Mgcp package name to be search * * Output parameters : pPackage - The target mgcp package found * * Return value : Return OK if the mgcp package is found successfully, * otherwise return FAIL. * * Comments : * * History : * 2005/08/05 : Creation * * Date : Aug 05 2005, Frank ZHANG ******************************************************************************/LONG FindMgcpPackageByName(MGCP_PACKAGE *pPackage, char *pcPackageName){ DWORD *pPkgTableEntry = MGCPPackageTable; Assert(pPackage); Assert(pcPackageName); while (*pPkgTableEntry != TABLE_END) { if (StrCaseCmp(pcPackageName, (char*)pPkgTableEntry[0]) == 0) { strcpy(pPackage->Name, (char*)pPkgTableEntry[0]); pPackage->ePackageType = (E_MGCP_PACKAGE)pPkgTableEntry[1]; pPackage->pEventTable = (DWORD*)pPkgTableEntry[2]; pPackage->dwPackageVersion = pPkgTableEntry[3]; return OK; } pPkgTableEntry += MGCP_PKG_TABLE_OFFSET; } pPackage->ePackageType = MGCP_PKG_UNDEFINED; pPackage->pEventTable = NULL; pPackage->dwPackageVersion = 0; return FAIL;}/****************************************************************************** * Function : FindMgcpPackageByID * * Description : Find the mgcp package by ID and return * * Input parameters : PackageID - Mgcp package ID to be search * * Output parameters : pPackage - The target mgcp package found * * Return value : Return OK if the mgcp package is found successfully, * otherwise return FAIL. * * Comments : * * History : * 2005/08/05 : Creation * * Date : Aug 05 2005, Frank ZHANG ******************************************************************************/LONG FindMgcpPackageByID(MGCP_PACKAGE *pPackage, E_MGCP_PACKAGE PackageID){ DWORD *pPkgTableEntry = MGCPPackageTable; Assert(pPackage); if (PackageID != MGCP_PKG_ANY && PackageID != MGCP_PKG_UNDEFINED) { while (*pPkgTableEntry != TABLE_END) { if (PackageID == pPkgTableEntry[1]) { strcpy(pPackage->Name, (char*)pPkgTableEntry[0]); pPackage->ePackageType = (E_MGCP_PACKAGE)pPkgTableEntry[1]; pPackage->pEventTable = (DWORD*)pPkgTableEntry[2]; pPackage->dwPackageVersion = pPkgTableEntry[3]; return OK; } pPkgTableEntry += MGCP_PKG_TABLE_OFFSET; } } pPackage->ePackageType = MGCP_PKG_UNDEFINED; pPackage->pEventTable = NULL; pPackage->dwPackageVersion = 0; return FAIL;}/****************************************************************************** * Function : FindMgcpPkgEventByName * * Description : Find the mgcp event by name and return * * Input parameters : pcEventName - Mgcp event name to be search * ePackageType - Mgcp event package type to be search * * Output parameters : MGCP_PKG_EVENT - The target mgcp event found * * Return value : Return OK if the mgcp event is found successfully, * otherwise return FAIL. * * Comments : * * History : * 2005/08/05 : Creation * * Date : Aug 05 2005, Frank ZHANG ******************************************************************************/LONG FindMgcpPkgEventByName(MGCP_PKG_EVENT *pEvent, char *pcEventName, E_MGCP_PACKAGE ePackageType){ MGCP_PACKAGE Package; DWORD *pEventTableEntry; Assert(pEvent); Assert(pcEventName); /* Find the package event table */ if (FindMgcpPackageByID(&Package, ePackageType) != OK) return FAIL; pEventTableEntry = Package.pEventTable; if (pEventTableEntry != NULL) { while (*pEventTableEntry != TABLE_END) { if (StrCaseCmp(pcEventName, (char*)pEventTableEntry[0]) == 0) { strcpy(pEvent->Name, (char*)pEventTableEntry[0]); pEvent->eEventID = (E_MGCP_EVENT)pEventTableEntry[1]; pEvent->eEventType = (E_MGCP_EVENT_TYPE)pEventTableEntry[2]; pEvent->eSigType = (E_MGCP_SIGNAL_TYPE)pEventTableEntry[3]; pEvent->dwSigDuration = pEventTableEntry[4]; return OK; } pEventTableEntry += MGCP_EVENT_TABLE_OFFSET; } } return FAIL;}/****************************************************************************** * Function : FindMgcpPkgEventByID * * Description : Find the mgcp event by ID and return * * Input parameters : eEventID - Mgcp event ID to be search * ePackageType - Mgcp event package type to be search * * Output parameters : MGCP_PKG_EVENT - The target mgcp event found * * Return value : Return OK if the mgcp event is found successfully, * otherwise return FAIL. * * Comments : * * History : * 2005/08/05 : Creation * * Date : Aug 05 2005, Frank ZHANG ******************************************************************************/LONG FindMgcpPkgEventByID(MGCP_PKG_EVENT *pEvent, E_MGCP_EVENT eEventID, E_MGCP_PACKAGE ePackageType){ MGCP_PACKAGE Package; DWORD *pEventTableEntry; Assert(pEvent); /* Find the package event table */ if (FindMgcpPackageByID(&Package, ePackageType) != OK) return FAIL; /* Check if is "ALL" event*/ if (eEventID == MGCP_EVT_ALL) { strcpy(pEvent->Name, "all"); return OK; } pEventTableEntry = Package.pEventTable; Assert(pEventTableEntry); if (pEventTableEntry != NULL) { while (*pEventTableEntry != TABLE_END) { if (eEventID == pEventTableEntry[1]) { strcpy(pEvent->Name, (char*)pEventTableEntry[0]); pEvent->eEventID = (E_MGCP_EVENT)pEventTableEntry[1]; pEvent->eEventType = (E_MGCP_EVENT_TYPE)pEventTableEntry[2]; pEvent->eSigType = (E_MGCP_SIGNAL_TYPE)pEventTableEntry[3]; pEvent->dwSigDuration = pEventTableEntry[4]; return OK; } pEventTableEntry += MGCP_EVENT_TABLE_OFFSET; } } return FAIL;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -