Transferring data

After the SCTP layer returns a connection up message to M3UA, M3UA sends ASPUP (ASP Up) and ASPAC (ASP Active) messages to allow the transfer of higher-level messages.

M3UA sends a data request message to SCTP to request transmission of an SS7 packet. When a message or messages are acknowledged by the far exchange, there is no corresponding notification sent to M3UA.

When it receives an M3UA message, SCTP sends a data indication message to notify M3UA of an incoming data packet.

After an application binds to the M3UA layer and receives a RESUME for a given destination, it can start sending data to that destination using M3UASendData.  If the call succeeds, but later the message is undeliverable, the application receives a status indication describing the cause of failure. When the message is successfully delivered, no status indication is sent.

The following illustration shows how an application sends data:

Asynchronous notification and polling are two methods for an application to receive incoming data or status indications. Polling requires the application to call M3UARetrieveMessage to continually check for incoming messages. The application must call this function regularly to avoid excessive queuing of messages in the TX driver or the M3UA layer. M3UARetrieveMessage returns M3UA_NO_MSG until a message is available. M3UA returns M3UA_SUCCESS when a message is available.

An application can use an operating system-specific function, such as WaitForMultipleObjects in Windows, to set up asynchronous notifications that are triggered when a message is available. In this way, the application only calls M3UARetrieveData when a data or status indication is waiting to be read.

The following illustration shows the asynchronous notification method of receiving data: