我一直在尝试整合杜邦戈·西普·斯塔克。
首先,我尝试使用手册和测试调用示例。
但是我不会在我的广播收发器中接收ACTION_INVITE事件,虽然我已经添加了所有的过滤器等等。我得到注册事件没有任何问题。
最后,我检查了IMSDroid体系结构,并做了同样的工作- NativeService和Engine,扩展了ngn类。增加舱单等的服务
但我仍然没有收到来电事件,虽然我得到了登记活动。
我在这里做错什么了?方法是什么呢?
附注:我的代码看起来很像下面列出的代码:http://kehers.github.io/2014/06/04/sip-on-android.html (参见双戈示例)
发布于 2015-03-26 19:57:53
我写了你问题中提到的博客文章。可能有几个原因,你没有收到来电事件。你为来电登记了接收器吗?
@Override
public void onCreate() {
// Get engines
mEngine = NgnEngine.getInstance();
mSipService = mEngine.getSipService();
// ...code blocks
// Incoming call broadcast receiver
final IntentFilter intentRFilter = new IntentFilter();
callStateReceiver = new CallStateReceiver();
intentRFilter.addAction(NgnInviteEventArgs.ACTION_INVITE_EVENT);
registerReceiver(callStateReceiver, intentRFilter);
}接受者:
public class CallStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if(NgnInviteEventArgs.ACTION_INVITE_EVENT.equals(action)){
NgnInviteEventArgs args =
intent.getParcelableExtra(NgnEventArgs.EXTRA_EMBEDDED);
if(args == null){
Log.d("DEBUG", "Invalid event args");
return;
}
NgnAVSession avSession
= NgnAVSession.getSession(args.getSessionId());
if (avSession == null) {
return;
}
final InviteState callState = avSession.getState();
NgnEngine mEngine = NgnEngine.getInstance();
switch(callState){
case NONE:
default:
break;
case INCOMING:
Log.i("DEBUG", "Incoming call");
// Ring
mEngine.getSoundService().startRingTone();
break;
case INCALL:
Log.i("DEBUG", "Call connected");
mEngine.getSoundService().stopRingTone();
break;
case TERMINATED:
Log.i("DEBUG", "Call terminated");
mEngine.getSoundService().stopRingTone();
mEngine.getSoundService().stopRingBackTone();
break;
}
}
}
}第二,配置是否使用了正确的SIP帐户详细信息?确保用有效的详细信息替换sip_username、sip_domain、sip_password、sip_server_port和sip_server_host。
NgnEngine mEngine = NgnEngine.getInstance();
INgnConfigurationService mConfigurationService
= mEngine.getConfigurationService();
mConfigurationService.putString(NgnConfigurationEntry.IDENTITY_IMPI,
"sip_username");
mConfigurationService.putString(NgnConfigurationEntry.IDENTITY_IMPU,
String.format("sip:%s@%s", "sip_username", "sip_domain"));
mConfigurationService.putString(NgnConfigurationEntry.IDENTITY_PASSWORD,
"sip_password");
mConfigurationService.putString(NgnConfigurationEntry.NETWORK_PCSCF_HOST,
"sip_server_host");
mConfigurationService.putInt(NgnConfigurationEntry.NETWORK_PCSCF_PORT,
"sip_server_port");
mConfigurationService.putString(NgnConfigurationEntry.NETWORK_REALM,
"sip_domain");
mConfigurationService.commit();希望这能有所帮助。
https://stackoverflow.com/questions/25113001
复制相似问题