Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android SIP API: Shows supported, yet error 'not supported'

Tags:

android

api

sip

I have a quick sample app I am trying to build, to demonstrate simple SIP calls to and from a Nexus 7. The device is currently running Android 4.2.1.

LogCat shows the error:

SipBroadcastRequest / SIP VOIP not supported: com.android.phone.SIP_REMOVE_PHONE

I see from the API docs (and the code) that this happens if SipManager.isApiSupported(Context context) returns false. For good measure, I checked both:

SipManager.isVoipSupported(this);
SipManager.isApiSupported(this);

and both return true. I also see (from the API code) that IF the api call returns false, SipManager.newInstance(Context context) will return null. When I create a manager with SipManager.newInstance(this); I get a valid manager back.

I see a lot of posts for similar problems, but have found none that report true for the SipManager.isVoipSupported(Context context) call. Any ideas?

Note: I am not sure if this matters or not, but cSipSimple (another SIP/Voip app for android) DOES work on this device.

UPDATE (12/20/12): I tried SipDemo per pboy's suggestion. That does not work either. Both that app and my app fail during the registration step. Using the debugger, I break in the onRegistrationFailed callback for the SipRegistrationListener. From here I can see an int errorCode of -9 and a String errorMessage of "0". I looked up this error code, and it corresponds to the following (taken from the SIP API docs):

public static final int IN_PROGRESS  

Added in API level 9
The client is in a transaction and cannot initiate a new one.
Constant Value: -9 (0xfffffff7)

I have no other SIP programs running. My app is only freshly installed and not currently running either. I'm not sure what other transaction it would be in the middle of?

like image 891
trh178 Avatar asked Dec 19 '12 19:12

trh178


1 Answers

I hope you have mention following permission in your manifest,

<uses-permission android:name="android.permission.USE_SIP" />   
<uses-permission android:name="android.permission.INTERNET" />   
<uses-feature android:name="android.hardware.sip.voip" android:required="true" />   
<uses-feature android:name="android.hardware.wifi" android:required="true" />   
<uses-feature android:name="android.hardware.microphone" android:required="true" />

Also please make sure that you are testing this when you are connected with wifi because android SIP is provide connection when you are connected with wifi not with other network.

like image 166
Silvans Solanki Avatar answered Oct 06 '22 00:10

Silvans Solanki