ipm_GetQoSThreshold( )
Termination Events | Cautions | Errors | Example | See Also
Name: int ipm_GetQoSThreshold(nDeviceHandle, *pQoSThresholdInfo, usMode) Inputs:
Returns: Includes: Category: Mode: Platform: Description
The ipm_GetQoSThreshold( ) function retrieves QoS alarm threshold settings. Quality of Service (QoS) alarms report the status of a media channel, they do not report alarms for a board.
nDeviceHandle handle of the IP Media device pQoSThresholdInfo pointer to IPM_QOS_THRESHOLD_INFO structure which contains one or more IPM_QOS_THRESHOLD_DATA structures usMode operation mode. Set to EV_ASYNC for asynchronous execution or to EV_SYNC for synchronous execution. Termination Events
- IPMEV_GET_QOS_THRESHOLD_INFO
- indicates successful completion, that is, alarm threshold settings were returned. Use SRL functions to retrieve IPM_QOS_THRESHOLD_INFO structure fields.
- IPMEV_ERROR
- indicates the function failed.
Cautions
- The IPM_QOS_THRESHOLD_INFO structure specifies the QoS Alarm Identifier thresholds. The application may use this structure to get statistics for only specified QoS types. Use SRL functions to retrieve IPM_QOS_THRESHOLD_INFO structure fields.
- If ipm_GetQoSThreshold( ) is called synchronously, the IPM_QOS_THRESHOLD_INFO structure is both an input and output parameter. If ipm_GetQoSThreshold( ) is called asynchronously, the structure is used only as an input parameter. To retrieve all the QoS threshold settings, in both synchronous and asynchronous modes, set the unCount field in IPM_QOS_THRESHOLD_INFO structure to 0.
Errors
If the function returns -1 to indicate failure, call ATDV_LASTERR( ) and ATDV_ERRMSGP( ) to return one of the following errors:
- EIPM_BADPARM
- Invalid parameter
- EIPM_INTERNAL
- Internal error
- EIPM_INV_MODE
- Invalid mode
- EIPM_INV_STATE
- Invalid state. Initial command did not complete before another function call was made.
- EIPM_SYSTEM
- System error
Example
#include <stdio.h> #include <srllib.h> #include <ipmlib.h> void CheckEvent(); typedef long int(*HDLR)(unsigned long); void main() { int nDeviceHandle; // Register event handler function with srl sr_enbhdlr( EV_ANYDEV ,EV_ANYEVT ,(HDLR)CheckEvent); /* . . Main Processing . . . */ /* Query the alarm threshold settings for IP device handle, nDeviceHandle. ASSUMPTION: A valid nDeviceHandle was obtained from prior call to ipm_Open(). */ IPM_QOS_THRESHOLD_INFO myThresholdInfo; myThresholdInfo.unCount = 0; if(ipm_GetQoSThreshold(nDeviceHandle, &myThresholdInfo, EV_ASYNC) == -1) { printf("ipm_GetQoSAlarmStatus failed for device name = %s with error = %d\n", ATDV_NAMEP(nDeviceHandle), ATDV_LASTERR(nDeviceHandle)); /* . . Perform Error Processing . . */ } /* . . . continue . */ } void CheckEvent() { unsigned int i; int nEventType = sr_getevttype(); int nDeviceID = sr_getevtdev(); void* pVoid = sr_getevtdatap(); IPM_QOS_THRESHOLD_INFO* pThresholdInfo; switch(nEventType) { /* . . Other events . */ /* Expected reply to ipm_GetQoSThreshold */ case IPMEV_GET_QOS_THRESHOLD_INFO: pThresholdInfo = (IPM_QOS_THRESHOLD_INFO*)pVoid; printf("Received IPMEV_GET_QOS_THRESHOLD_INFO for device = %s\n", ATDV_NAMEP(nDeviceID)); for(i=0; i<pThresholdInfo->unCount; ++i) { switch(pThresholdInfo->QoSThresholdData[i].eQoSType) { case QOSTYPE_DTMFDISCARDED: printf("QOSTYPE_DTMFDISCARDED\n"); printf("unTimeInterval = %d\n", pThresholdInfo->QoSThresholdData[i].unTimeInterval); printf("unDebounceOn = %d\n", pThresholdInfo->QoSThresholdData[i].unDebounceOn); printf("unDebounceOff = %d\n", pThresholdInfo->QoSThresholdData[i].unDebounceOff); printf("unFaultThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unFaultThreshold); printf("unPercentSuccessThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unPercentSuccessThreshold); printf("unPercentFailThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unPercentFailThreshold); break; case QOSTYPE_LOSTPACKETS: printf("QOSTYPE_LOSTPACKETS\n"); printf("unTimeInterval = %d\n", pThresholdInfo->QoSThresholdData[i].unTimeInterval); printf("unDebounceOn = %d\n", pThresholdInfo->QoSThresholdData[i].unDebounceOn); printf("unDebounceOff = %d\n", pThresholdInfo->QoSThresholdData[i].unDebounceOff); printf("unFaultThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unFaultThreshold); printf("unPercentSuccessThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unPercentSuccessThreshold); printf("unPercentFailThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unPercentFailThreshold); break; case QOSTYPE_JITTER: printf("QOSTYPE_JITTER\n"); printf("unTimeInterval = %d\n", pThresholdInfo->QoSThresholdData[i].unTimeInterval); printf("unDebounceOn = %d\n", pThresholdInfo->QoSThresholdData[i].unDebounceOn); printf("unDebounceOff = %d\n", pThresholdInfo->QoSThresholdData[i].unDebounceOff); printf("unFaultThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unFaultThreshold); printf("unPercentSuccessThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unPercentSuccessThreshold); printf("unPercentFailThreshold = %d\n", pThresholdInfo->QoSThresholdData[i].unPercentFailThreshold); break; } } break; default: printf("Received unknown event = %d for device = %s\n", nEventType, ATDV_NAMEP(nDeviceID)); break; } }See Also
Click here to contact Telecom Support Resources
Copyright 2002, Intel Corporation