没有使用原生android sip库的音频



所以我使用的是本机sip库,我可以很好地连接和注册服务器。当我打电话时,它会打到一个代理,该代理会将它路由到一个常规电话,然后拨打输入的号码。它会很好地连接,另一端的手机会接到电话,但没有音频。我知道代理可以处理音频,因为有一个iPhone应用程序正在访问同一台服务器,并且连接良好。

这是我打电话的代码:

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();
        }
    }
}

在我的清单上我有

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

我正在使用一款支持sip的平板电脑和一款支持sip的note 2进行测试。

这可能是不必要的

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

SIP相关

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

如果你使用扬声器,你需要这个

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

最新更新