MSPP Unsolicited Event Structures

Fusion NbUP Endpoint uses two MSPP unsolicited event structures:

MSPEVN_NBUP_INIT

typedef struct tag_msp_NBUP_INIT
{
    DWORD FilterId; /* NbUP Filter ID (MSP_ENDPOINT_RTPFDX_NBUP)*/
    DWORD status;   /* Success or error condition */
} msp_NBUP_INIT;

MSPEVN_NBUP_ERROR

typedef struct tag_msp_NBUP_ERROR
{
    DWORD FilterId; /* NbUP Filter ID (MSP_ENDPOINT_RTPFDX_NBUP)*/
    DWORD error;    /* Error condition */
} msp_NBUP_ERROR;

MSPP State Machine

For more information, refer to the Dialogic® NaturalAccess™ Media Stream Protocol Processing API Developer’s Manual.

NbUP State Machine

The following illustration shows the NbUP state machine and all the possible transitions:

NbUP_state_machine.png

Note: NbUP states and MSPP states are independent of each other.

NbUP Endpoint Status Query

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)
The filter is created.

Inactive (0x01)
The filter is configured with its NbUP parameters.

Active (0x02)
The filter is transferring media.

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.