gpt4 book ai didi

Android SIP 没有来电事件(doubango)

转载 作者:行者123 更新时间:2023-11-30 02:45:29 24 4
gpt4 key购买 nike

我一直在尝试集成 Doubango Sip Stack。

首先,我尝试使用手动和测试调用示例。

但我没有在我的广播接收器中收到 ACTION_INVITE 事件,尽管我已经添加了所有过滤器等。我没有任何问题地获得了注册事件。

最后我检查了 IMSDroid 架构并做了同样的事情 - NativeService 和 Engine,扩展了 ngn 类。向 list 等添加服务

但我仍然没有收到来电事件,尽管我收到了注册事件。

我在这里做错了什么?方法是什么?

附注我的代码看起来很像底部列出的代码: http://kehers.github.io/2014/06/04/sip-on-android.html (见doubango例子)

最佳答案

我写了您问题中引用的博文。您没有收到来电事件的原因可能有多种。您是否为来电注册了接收器?

@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_usernamesip_domainsip_passwordsip_server_portsip_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();

希望这对您有所帮助。

关于Android SIP 没有来电事件(doubango),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com