# MSPP Unsolicited Event Structures

Fusion NbUP Endpoint uses two MSPP unsolicited event structures:

- MSPEVN_NBUP_INIT

- MSPEVN_NBUP_ERROR

## 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:

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.