本地SIP配置文件和对等配置文件具有相同的域,但仍可以进行呼叫

时间:2014-06-13 00:15:42

标签: android sip voip twilio

我刚刚开始用Sip弄湿我的脚,玩SipDemo作为SDK样本。

我的应用只能拨打Twilio拨打电话,理想情况下不会有#34; Sip Provider",我的应用只是直接连接到Twilio。我不确定这是否有效,但确实如此,我能够完成通话并与自己交谈。

使用所需的访问凭据注册到我在Twillio上创建的sip域:

    public void onRegister(View view)
    {
        String username = "myusername";
        String domain = "mytestsip.sip.twilio.com";
        String password = "mypassword";

        SipProfile.Builder builder = null;
        try {
           builder = new SipProfile.Builder(username, domain);
            builder.setPassword(password);
            me = builder.build();
        } catch (ParseException e) {
        // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            manager.open(me);
        } catch (SipException e) {
        // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

使用Twilio Sip域和伪造凭证发起呼叫:

    public void initiateCall() {
        try {
            SipAudioCall.Listener listener = new SipAudioCall.Listener() {
                @Override
                public void onCallEstablished(SipAudioCall call) {
                    call.startAudio();
                    call.setSpeakerMode(true);
                    call.toggleMute();
                    //updateStatus(call);
                }

                @Override
                public void onCallEnded(SipAudioCall call) {
                    //updateStatus("Ready.");
                }
            };
            SipProfile.Builder builder2 = new SipProfile.Builder("blah", "mytestsip.sip.twilio.com");
            builder2.setPassword("mehpass");
            SipProfile other = builder2.build();
            call = manager.makeAudioCall(me, other, listener, 30);
        }
        catch (Exception e) {
           ...
        }     
    }

这是如何工作的? Sip客户端的每个示例都提到需要为本地配置文件提供SIP提供程序。我如何能够为本地和对等配置文件使用相同的域?我的目标是了解Sip是如何工作的,所以我正在寻找一个详细的高级解释,说明这里发生了什么。

注意,我之所以使用Sip客户端而不是Android Twilio SDK是有原因的,所以您不需要提及它是否可用。

0 个答案:

没有答案