首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android没有来电事件(双安戈)

Android没有来电事件(双安戈)
EN

Stack Overflow用户
提问于 2014-08-04 06:41:31
回答 1查看 1.4K关注 0票数 1

我一直在尝试整合杜邦戈·西普·斯塔克。

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

但是我不会在我的广播收发器中接收ACTION_INVITE事件,虽然我已经添加了所有的过滤器等等。我得到注册事件没有任何问题。

最后,我检查了IMSDroid体系结构,并做了同样的工作- NativeService和Engine,扩展了ngn类。增加舱单等的服务

但我仍然没有收到来电事件,虽然我得到了登记活动。

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

附注:我的代码看起来很像下面列出的代码:http://kehers.github.io/2014/06/04/sip-on-android.html (参见双戈示例)

EN

回答 1

Stack Overflow用户

发布于 2015-03-26 19:57:53

我写了你问题中提到的博客文章。可能有几个原因,你没有收到来电事件。你为来电登记了接收器吗?

代码语言:javascript
复制
@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);
}

接受者:

代码语言:javascript
复制
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。

代码语言:javascript
复制
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();

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25113001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档