📄 mgcppackage.c
字号:
};
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 4
static 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);
memset(&Package, 0, sizeof(MGCP_PACKAGE));
/* 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);
memset(&Package, 0, sizeof(MGCP_PACKAGE));
/* 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 + -