我刚刚开始用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是有原因的,所以您不需要提及它是否可用。