3

I am developing a softphone using jain sip which is about to complete except the following problem: I am using restcomm-android-sdk on android-jain-sip-ri-1.2.233.jar and the problem is let say two clients are client A and client B,

  1. If client A and client B are using 3G/4G , then everything is working fine as they both can call each other and can here each others voice properly.

  2. If client A is using 3G/4G network and clent B is on public WiFi then both can call each other but only client A can hear voice of Client B, client B cannot hear anything.

I think is something relating to routing and nat, here is my android manifest

<uses-permission android:name="android.permission.USE_SIP" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-feature android:name="android.hardware.telephony" android:required="true"/>
<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" />

Could anyone please help in solving this problem?

user0946076422
  • 85
  • 1
  • 12

1 Answers1

3

The NAT may be too restrictive in the public Wifi that you're using. Did you try on a non public wifi ? Which SIP Server do you use ? Do you use RestComm as Server ?

To be sure a network capture aka wireshark trace would needed (on the client side - you can try https://play.google.com/store/apps/details?id=lv.n3o.shark&hl=fr and on the server side too)

If that's the case (NAT too restrictive, STUN And TURN will need to be implemented on the Android client, planned on the roadmap). Another option if you use RestComm is to create a conferencing application and have both clients call the conferencing application to see if that helps.

Did you try with both clients on different public wifi networks ?

jeand
  • 2,325
  • 14
  • 12
  • 2. I am using asterisk as PBX 3. I import the open source project and work upon him [link](http://github.com/Mobicents/restcomm-android-sdk/tree/master/Examples/JAIN%20SIP) 4. i am not using conferencing application this is single one to one dial – user0946076422 May 29 '15 at 12:04
  • 1. It seems this is a NAT issue (too restrictive) or the Public Wifi is too restrictive and block Media Packets. – jeand May 29 '15 at 14:23
  • 2. I don't have much experience with Asterisk, just make sure that Asterisk stays in the media path, that should help.but if you switch to RestComm (see http://www.telestax.com/rapid-telecom-application-development-with-restcomm-and-docker/), I can potentially help – jeand May 29 '15 at 14:25
  • [shark for root](https://play.google.com/store/apps/details?id=lv.n3o.shark&hl=fr) gives output : syntax error:"can't execute root start up sequence. Do you have root? "on both public and non -public wifi – user0946076422 May 29 '15 at 15:51
  • Asterisk stay in media path for sure, because when i am using another softphone or sip phone i.e. Zoiper, its work in public wifi also, means problem insists with my ip phone, yes its seems this is NAT issue(too restrictive) , can you lead me direction where i can solve this. – user0946076422 May 29 '15 at 15:59
  • Would you like to do a guest blog post of your experience and the setup you just did on http://telestax.com/, if so contact us on info@telestax.com, we would very pleased to feature you there – jeand May 31 '15 at 22:51