Provides access to Session Initiation Protocol (SIP) functionality, such as making and answering VOIP calls using SIP.

For more information, see the Session Initiation Protocol developer guide.

{@more}

To get started, you need to get an instance of the {@link android.net.sip.SipManager} by calling {@link android.net.sip.SipManager#newInstance newInstance()}.

With the {@link android.net.sip.SipManager}, you can initiate SIP audio calls with {@link android.net.sip.SipManager#makeAudioCall makeAudioCall()} and {@link android.net.sip.SipManager#takeAudioCall takeAudioCall()}. Both methods require a {@link android.net.sip.SipAudioCall.Listener} that receives callbacks when the state of the call changes, such as when the call is ringing, established, or ended.

Both {@link android.net.sip.SipManager#makeAudioCall makeAudioCall()} also requires two {@link android.net.sip.SipProfile} objects, representing the local device and the peer device. You can create a {@link android.net.sip.SipProfile} using the {@link android.net.sip.SipProfile.Builder} subclass.

Once you have a {@link android.net.sip.SipAudioCall}, you can perform SIP audio call actions with the instance, such as make a call, answer a call, mute a call, turn on speaker mode, send DTMF tones, and more.

If you want to create generic SIP connections (such as for video calls or other), you can create a SIP connection from the {@link android.net.sip.SipManager}, using {@link android.net.sip.SipManager#open open()}. If you only want to create audio SIP calls, though, you should use the {@link android.net.sip.SipAudioCall} class, as described above.

Note: Not all Android-powered devices support VOIP functionality with SIP. Before performing any SIP activity, you should call {@link android.net.sip.SipManager#isVoipSupported isVoipSupported()} to verify that the device supports VOIP calling and {@link android.net.sip.SipManager#isApiSupported isApiSupported()} to verify that the device supports the SIP APIs. Your application must also request the {@link android.Manifest.permission#INTERNET} and {@link android.Manifest.permission#USE_SIP} permissions in order to use the SIP APIs.