我写了您问题中引用的博客文章。您没有收到来电事件可能有几个原因。您是否为来电注册了接收方?
@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();
希望这会有所帮助。