# Building a SIP application

To build a SIP application, use the SIP for NCC API and other NaturalAccess APIs. The following illustration shows the tasks a SIP application performs. Shaded tasks are optional.

The following table summarizes the tasks in the previous illustration:

Task | Application activity
--- | ---
Initialize NaturalAccess | Initializes NaturalAccess services and creates the required number of call control and media contexts.
Initialize connections to the SIP server | Invokes nccStartProtocol to establish a connection between the NCC SIP call control contexts and the SIP server.
Establish call | Uses NCC API functions to place outgoing calls, receive incoming calls, or both.
Establish media connection | Optional. Uses MSPP service functions to establish a media streaming channel.
Perform tasks | Uses functions from NaturalAccess or other APIs to perform tasks such as play or record voice, generate or detect DTMF tones, as well as send and receive faxes.
Disconnect call | Uses NaturalCallControl service functions to disconnect and release the call. The application can then establish another call.
Destroy media connection | Optional. Uses MSPP API functions to destroy the media streaming channel.

## Implementing media streaming

When using Fusion software, you must configure the CG boards appropriately. For information about Fusion software, refer to the Dialogic® NaturalAccess™ Fusion™ VoIP API Developer’s Manual.