首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有授权的SIP堆栈注册包

具有授权的SIP堆栈注册包
EN

Stack Overflow用户
提问于 2012-03-13 17:22:16
回答 1查看 1.1K关注 0票数 2

我们希望在Android2.3.3上创建SIP应用程序,并且android.sip堆栈(默认的sip堆栈)有一些问题。我们的移动应用程序发送注册sip数据包,但是1)默认情况下,OpenIMS核心响应400个坏请求,P访问-网络ID报头丢失2)。如果我们将端口号设置为4060 -PCSCF /builder.setPort( 4060 )/ OpenIMS核心将请求从4060发送到4060(相同端口、相同IP、相同CSCF、相同数据包),直到OpenIMS核心发送响应移动应用程序- 504服务器超时为止。我们还尝试了SipDemo,CSipSimple,我们也遇到了同样的问题。当我们尝试怪物通信器或IMSDroid时,它就起作用了!

有一个不同的工作和有问题的应用程序-工作的应用程序发送寄存器包也与授权字段。

守则的一部分:

代码语言:javascript
复制
public SipManager mSipManager = null; 
public SipProfile mSipProfile = null;
SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setPassword(password);
builder.setDisplayName(username);
builder.setProfileName(username + "@" + domain);
port = Integer.parseInt(4060);
builder.setProtocol(protocol);
mSipProfile = builder.build();
...
try { mSipManager.open(mSipProfile);} catch (SipException e) { ...}
try {
        mSipManager.register(mSipProfile, 30, new SipRegistrationListener(){
        public void onRegistering(String localProfileUri) {
        }
        public void onRegistrationDone(String localProfileUri, long expiryTime) {
        }
        public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage) {
        }
        });
    } catch (SipException e) {

……}

如何在经典的SIP协议栈中给包注册授权字段?

我们也尝试了J,但它显示错误:转换为dalvik格式失败,错误1。

每一个答案都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2013-09-16 11:06:53

您的问题与缺少授权头无关。

登记工作涉及以下事项:

  1. 客户端发送没有授权头的注册请求。
  2. 服务器响应带有401响应代码,其中包含一个标题"WWW-Authnticate",该报头包含参数为领域、不透明、qop和哈希算法类型。使用这些参数使用用户名和密码的
  3. 是由SIP堆栈自动生成的。并发送第二个寄存器请求,其中包括“授权”头。
  4. 如果请求以正确的方式发送,则服务器返回200个OK响应代码,这意味着您现在已注册。

您的问题在于,您甚至没有进入步骤3(授权步骤),您在步骤1中失败,对于您的初始寄存器请求,您收到了400个坏请求响应代码,这几乎总是意味着您的请求中有语法错误。

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

https://stackoverflow.com/questions/9688906

复制
相关文章

相似问题

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