2014-12-09 5 views
0

У меня проблема с SIP android. Я ничего не слышу, когда звонки установлены. Мой код:Android SIP не записывает речь

Инициировать вызов:

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

      @Override 
      public void onCallEstablished(SipAudioCall call) { 
       RefreshView listener = new ConnectingNumberActivity(); 
       listener.refreshOnCallEstablished(); 
       call.startAudio(); 
       call.setSpeakerMode(true); 
       if (call.isMuted()) { 
        call.toggleMute(); 
       } 
      } 

      @Override 
      public void onCallEnded(SipAudioCall call) { 
       stopRigtone(); 
       endCall(); 
      } 
     }; 

     sipAudioCall = sipManager.makeAudioCall(sipProfile.getUriString(), sipAddress + "@" + domain , listener, 30); 
     playRingtone("calling_tone.wav"); 
     sipAudioCall.toggleMute(); 

Входящий вызов:

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

      @Override 
      public void onRinging(SipAudioCall call, SipProfile caller) { 
       try { 
        call.answerCall(30); 
       } catch (Exception e) { 
        Log.e(RINGING_ACTIVITY_TAG, e.toString()); 
       } 
      } 

      @Override 
      public void onCallEnded(SipAudioCall call) { 
       super.onCallEnded(call); 
       closeIncomingCall(); 
       PhoneSipManager.stopRigtone(); 
       finish(); 
      } 

      @Override 
      public void onCallEstablished(SipAudioCall call) { 
       super.onCallEstablished(call); 

       try { 
        incomingCall.answerCall(30); 
        incomingCall.startAudio(); 
        incomingCall.setSpeakerMode(true); 
        if (incomingCall.isMuted()) { 
         incomingCall.toggleMute(); 
        } 

        PhoneSipManager.sipAudioCall = incomingCall; 
       } catch (SipException e) { 
        e.printStackTrace(); 
       } 

      } 
     }; 

и метод вызывается после нажатия кнопки Ответ:

private void answerCall() { 

    try { 
     refreshView(); 
     incomingCall.answerCall(30); 
     incomingCall.startAudio(); 
     incomingCall.setSpeakerMode(true); 
     if (incomingCall.isMuted()) { 
      incomingCall.toggleMute(); 
     } 

     PhoneSipManager.sipAudioCall = incomingCall; 

     Log.i(RINGING_ACTIVITY_TAG, "Ringing"); 
    } catch (Exception e) { 
     Log.e(RINGING_ACTIVITY_TAG, e.toString()); 

     if (incomingCall != null) { 
      incomingCall.close(); 
     } 
    } 
} 

Этот код основан на примере рация Android. У кого-то была такая же проблема с записью на первое устройство, и ничего не слышно на другом устройстве?

ответ

0

Возможно, вам захочется проверить ваши разрешения. меня аналогичные проблемы, но они ушли, когда я установил следующие права доступа и возможности:

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

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

удачи.

+1

Спасибо, Роб за ваш ответ. Решение проблемы было на стороне сервера VoIP. – Marshall