Android SipProfile Uri UDP 端口错误

Posted

技术标签:

【中文标题】Android SipProfile Uri UDP 端口错误【英文标题】:Android SipProfile Uri UDP Port error 【发布时间】:2014-07-27 11:24:45 【问题描述】:

我想通过 UPD 连接到我的 sip 服务器,我有用户名、服务器的 IP 地址(域)和端口(例如 9990)。

我收到以下错误:

android.net.sip.SipException: SipService.createSession() returns null

在这一行:mSipManager.register(mSipProfile, 300, mSipRegistrationListener);


这是我正在使用的代码,改编自 android 文档:

private void startSip() 
    LogUtils.LOGE(TAG, "[startSip]");
    if (SipManager.isVoipSupported(this) && SipManager.isApiSupported(this)) 
        if (mSipManager == null) 
            mSipManager = SipManager.newInstance(this);
        

        try 
            SipProfile.Builder builder = new SipProfile.Builder("sip:user@domainIP:9990");
            builder.setPassword("pass"); 
            builder.setProtocol("UDP"); 

            mSipProfile = builder.build();
            mSipManager.open(mSipProfile);
            mSipManager.register(mSipProfile, 300, mSipRegistrationListener);

            mSipManager.setRegistrationListener(mSipProfile.getUriString(), mSipRegistrationListener); 

         catch (ParseException e) 
            e.printStackTrace();
         catch (SipException e) 
            e.printStackTrace();
        
     else 
        Log.d(TAG, "SIP is not supported!");
    

如果我尝试这样设置配置文件:

mSipProfile.Builder builder = new SipProfile.Builder("user", "domain:port");

我得到同样的错误。

如果我尝试:

mSipProfile.Builder builder = new SipProfile.Builder("user", "domain");
builder.setPort(9990);

和上面一样的错误。


如果我不指定端口,我会得到以下信息:

注册未运行,错误代码= -4 ,后跟: 注册超时,错误代码= -5

任何想法如何使用 UPD 和自定义端口注册到我的服务器?顺便说一句,我正在 WiFi 上进行测试,我已经在清单中设置了权限和所需的“使用功能”。

【问题讨论】:

【参考方案1】:

事实证明,使其工作的唯一方法是使用 PendingIntent,即使您不需要或不使用它。并且还设置了一个空监听器@open(),见下面的代码:

            mSipProfile = builder.build();

            Intent i = new Intent();
            i.setAction("android.SipDemo.INCOMING_CALL");
            PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);

            mSipManager.open(mSipProfile, pi, null);

【讨论】:

以上是关于Android SipProfile Uri UDP 端口错误的主要内容,如果未能解决你的问题,请参考以下文章

android之Uri使用

android 中的uri到底是啥?

android 常用URI

android如何通过path得到uri?

Android中常用的Uri

Android系统常用URI