2
votes

So I'm using the native sip library, and I can connect and register with the server just fine. And when I make the call, it hits a proxy that routes it to a regular phone call, then calls the number inputed. It will connect fine, and the phone on the other end receives the call, but there is no audio. I know the proxy can handle audio because there is an iPhone app hitting the same server and it connects just fine.

Here's my code for making the call :

public void makeCall(String s) {

    SipAudioCall.Listener listener = new SipAudioCall.Listener() {

        @Override
        public void onCallEstablished(SipAudioCall call) {


                Log.d(TAG, "Call Established");
                call.startAudio();

                //I've tried with speaker mode on and off
                call.setSpeakerMode(true);


        }

        @Override
        public void onCallEnded(SipAudioCall call) {

            Log.d(TAG, "Call Ended");

        }
    };

    if (sipManager != null && sipProfile != null) {
        try {
            Log.d(TAG, "Make call");
            sipManager.makeAudioCall(sipProfile.getUriString(), app.sipToUri(s, sipProfile.getProxyAddress()), listener, 30);
        } catch (SipException e) {
            e.printStackTrace();
        }
    }

}

In my manifest I have

<uses-permission android:name="android.permission.USE_SIP"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<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" />

And I'm using a sip enabled tablet as well as a sip enabled note 2 to test.

1
Did you write all the permission&feature you need? What devices you are using?Gina
Updated with the info, thanks for taking a look!adonal3
@adonal3 can you explain me this app.sipToUri(s, sipProfile.getProxyAddress()) what's app type and what's S ?Chlebta
Please what proxy are you using to routes it to a regular phone callC Williams

1 Answers

7
votes

This maybe unnecessary

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

SIP related

<uses-permission android:name="android.permission.CONFIGURE_SIP" />
<uses-feature android:name="android.software.sip" android:required="true" />
<uses-feature android:name="android.software.sip.voip" android:required="true" />

This you need if you use speaker

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />