如何使用本地服务器在Pjsip Android中执行呼叫?
我用过 用户代理:Pjsua2 Android 2.6-svn我做了成功的注册,之后我试图打电话但是它被禁止投掷(503) 我的注册码:
AccountConfig accCfg = new AccountConfig();
accCfg.setIdUri("sip:localhost");
accCfg.getNatConfig().setIceEnabled(true);
accCfg.getVideoConfig().setAutoTransmitOutgoing(true);
accCfg.getVideoConfig().setAutoShowIncoming(true);
//Like 123.12.12.23
accCfg.getRegConfig().setRegistrarUri("sip:172.16.4.124");
AuthCredInfoVector creds = accCfg.getAuthCreds();
creds.clear();
if (username.length() != 0) {
creds.add(new AuthCredInfo("Digest", "*", "abc@172.16.4.124", 0,
"123"));
}
StringVector proxies = accCfg.getSipConfig().getProxies();
proxies.clear();
if (proxy.length() != 0) {
proxies.add("sip:172.16.4.124");
}
accCfg.getSipConfig().setProxies(proxies);
/* Enable ICE */
accCfg.getNatConfig().setIceEnabled(true);
try {
account.add(accCfg);
} catch (Exception e) {
e.printStackTrace();
Log.i(TAG, "Exception in Dialog");
}
}
拨打电话我使用
public void makeCall(View view) {
if (buddyListSelectedIdx == -1)
return;
/* Only one call at anytime */
if (currentCall != null) {
return;
}
HashMap<String, String> item = (HashMap<String, String>) buddyListView.
getItemAtPosition(buddyListSelectedIdx);
String buddy_uri = item.get("uri");
MyCall call = new MyCall(account, -1);
SendInstantMessageParam param = new SendInstantMessageParam();
param.setContent("Hello Pjsip");
param.setContentType("text");
CallOpParam prm = new CallOpParam(true);
try {
call.makeCall(buddy_uri, prm);
// call.delete();
// call.sendInstantMessage(param);
} catch (Exception e) {
e.printStackTrace();
call.delete();
return;
}
currentCall = call;
showCallActivity();
}
我能够连接sip默认客户端,如sip:localhost和其他sip提供程序,如linphone,但禁止使用我们的服务器。 专家请帮帮忙。
答案 0 :(得分:-1)
非常感谢,最后我在3天锻炼后得到解决方案, 错过了我的亚马逊服务器的端口号,让我连接起来,并在sip端之间进行了一次简单的通话。