2016-05-10 263 views
1

已經有幾個星期,我嘗試用安卓的restcomm爲SIP服務唱歌。我檢查與第三方應用程序(cSipSimple)的連接,並且一切正常。但是當我嘗試用restcomm演示應用程序進行連接時,連接在4秒後每次都會下降。我的sdk有什麼問題,或者我可以怎樣正確唱歌?我如何正確使用restcomm?

SipProfile sipProfile = new SipProfile();

 HashMap<String, Object> params = new HashMap<String, Object>(); 
     params.put("pref_proxy_ip", "my.server.ip"); 
     params.put("pref_proxy_port", "5060"); 
     params.put("pref_sip_user", "7879114"); 
     params.put("pref_sip_password", "EeFei2Fa"); 
     for (String key : params.keySet()) { 
      if (key.equals("pref_proxy_ip")) { 
       sipProfile.setRemoteIp((String) params.get(key)); 
      } else if (key.equals("pref_proxy_port")) { 
       sipProfile.setRemotePort(Integer.parseInt((String) params.get(key))); 
      } else if (key.equals("pref_sip_user")) { 
       sipProfile.setSipUserName((String) params.get(key)); 
      } else if (key.equals("pref_sip_password")) { 
       sipProfile.setSipPassword((String) params.get(key)); 
      } 
     } 

     final SipManager sipManager = new SipManager(sipProfile, true); 

     Register registerRequest = new Register(); 

     final Request r = registerRequest.MakeRequest(sipManager, 100000, null); 
      // Send the request statefully, through the client transaction. 
     Thread thread = new Thread() { 
      public void run() { 
       try { 
        final ClientTransaction transaction = sipManager.sipProvider.getNewClientTransaction(r); 
        transaction.sendRequest(); 
       } catch (SipException e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 
     thread.start(); 

回答

1

@Vladislav,您正在使用SDK的低級設施,這些設施已經過時,並不打算直接使用。我建議你直接使用SDK公開的RestCommClient API。它使用起來更容易,並提供相同的功能和更多。

有關如何使用它的一個例子,請檢查:

https://github.com/RestComm/restcomm-android-sdk/blob/master/Examples/restcomm-helloworld/app/src/main/java/com/telestax/restcomm_helloworld/MainActivity.java

您需要從改變SIP服務器設置:

https://github.com/RestComm/restcomm-android-sdk/blob/master/Examples/restcomm-helloworld/app/src/main/java/com/telestax/restcomm_helloworld/MainActivity.java#L99

從被呼叫方:

https://github.com/RestComm/restcomm-android-sdk/blob/master/Examples/restcomm-helloworld/app/src/main/java/com/telestax/restcomm_helloworld/MainActivity.java#L174

請記住,對於媒體使用Webrtc可以正確處理NAT。這意味着接收方也需要能夠處理Webrtc。除非中間有服務器處理調解,例如Restcomm-Connect

欲瞭解更多信息,請RestComm Client Android SDK Quick Start

+0

非常感謝。但我仍然連接到服務它發生下一個: 4秒後,連接下降 [May 11 11:15:25] VERBOSE chan_sip.c: - 註冊的SIP'7879114'在62.33.107.234:59011 [5月11 11:15:25] VERBOSE [3516] chan_sip.c:>對等7879114 [May 11 11:15:29]保存的useragent「TelScale Restcomm Android Client 1.0.0 BETA3」通知[3516] chan_sip.c :Peer'7879114'現在無法匹敵!最後符合條件:0 Sdk因此有效嗎? –

+0

你可以在這裏粘貼從Android應用程序的完整日誌,也可以收集網絡流量的tcpdump看到底下發生了什麼? – atsakiridis

+0

你記住'詳細'日誌android studio並使用控制檯命令tcpdump登錄adnroid設備? –