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 端口错误的主要内容,如果未能解决你的问题,请参考以下文章