Fusion NbUP Endpoint uses two MSPP unsolicited event structures:
MSPEVN_NBUP_INIT
MSPEVN_NBUP_ERROR
typedef struct tag_msp_NBUP_INIT
{
DWORD FilterId; /* NbUP Filter ID (MSP_ENDPOINT_RTPFDX_NBUP)*/
DWORD status; /* Success or error condition */
} msp_NBUP_INIT;
typedef struct tag_msp_NBUP_ERROR
{
DWORD FilterId; /* NbUP Filter ID (MSP_ENDPOINT_RTPFDX_NBUP)*/
DWORD error; /* Error condition */
} msp_NBUP_ERROR;
For more information, refer to the Dialogic® NaturalAccess™ Media Stream Protocol Processing API Developer’s Manual.
The following illustration shows the NbUP state machine and all the possible transitions:
Note: NbUP states and MSPP states are independent of each other.
An application can query the status of the endpoint when it is in Active State (both the RTP and NbUP states must be in Active State). The query returns filter status information in a buffer. For more information, refer to the Dialogic® NaturalAccess™ Media Stream Protocol Processing API Developer’s Manual.
The buffer received with the query response is of type msp_ENDPOINT_RTPFDX_NBUP_STATUS:
typedef struct tag_msp_ENDPOINT_RTPFDX_STATUS {
msp_ENDPOINT_RTPFDX_STATUS rtpfdxstats; // RTP status
msp_ENDPOINT_NBUP_STATUS nbupstats; // NbUP status
} msp_ENDPOINT_RTPFDX_NBUP_STATUS;
typedef struct tag_msp_ENDPOINT_NBUP_STATUS {
DWORD mode;
DWORD state;
DWORD rtptype;
DWORD rxPduFrame;
DWORD rxCtrlFrame;
DWORD txPduFrame;
DWORD txCtrlFrame;
DWORD rateCtrlError;
DWORD timeAlignmentError;
DWORD frameLossError;
DWORD unexpectedFrameError;
DWORD unexpectedPduError;
DWORD unknownProcError;
DWORD unknownPduError;
DWORD crcHeaderError;
DWORD crcPayloadError;
} msp_ENDPOINT_NBUP_STATUS;
For more information about the msp_ENDPOINT_RTPFDX_STATUS structure, refer to the Dialogic® NaturalAccess™ Media Stream Protocol Processing API Developer’s Manual.
The following NbUP-related information is returned as part of msp_ENDPOINT_NBUP_STATUS:
Field | Description |
mode | NbUP Mode configured. |
state | Indicates the current NbUP state of the filter: Idle (0x00) Inactive (0x01) Active (0x02) |
rtptype | Type of Media being transferred. Valid values: 1 = RTP_DATA_TYPE_G711_5MS 2 = RTP_DATA_TYPE_G711_20MS 3 = RTP_DATA_TYPE_AMR 4 = RTP_DATA_TYPE_H223_5MS 5 = RTP_DATA_TYPE_H223_20MS |
rxPduFrame | Received NbUP PDU message count. |
rxCtrlFrame | Received NbUP Control message count. |
txPduFrame | Transmitted NbUP PDU message count. |
txCtrlFrame | Transmitted NbUP Control message count. |
rateCtrlError | Rate control failure count. |
timeAlignmentError | Time Alignment Error count. |
frameLossError | Number of frames lost. |
unexpectedFrameError | Unexpected frame error count. |
unexpectedPduError | Unexpected PDU error count. |
unknownProcError | Unexpected Control Procedure count. |
unknownPduError | Unknown PDU error count. |
crcHeaderError | Header CRC checksum error count. |
crcPayloadError | Payload CRC checksum error count. |