Android 具有授权的SIP堆栈注册数据包

Android 具有授权的SIP堆栈注册数据包,android,sip,Android,Sip,我们希望在Android 2.3.3上创建SIP应用程序,但Android.SIP堆栈(默认SIP堆栈)存在一些问题。我们的移动应用程序发送注册sip数据包,但 1.)默认情况下,OpenIMS core响应400个错误请求P-visted-Network-ID报头丢失 2.)在我们将端口号设置为4060的情况下-PCSCF/builder.setPort(4060)/OpenIMS core将此请求从4060发送到4060(相同端口、相同IP、相同CSCF、相同数据包),这是cykling,直

我们希望在Android 2.3.3上创建SIP应用程序,但Android.SIP堆栈(默认SIP堆栈)存在一些问题。我们的移动应用程序发送注册sip数据包,但 1.)默认情况下,OpenIMS core响应400个错误请求P-visted-Network-ID报头丢失 2.)在我们将端口号设置为4060的情况下-PCSCF/builder.setPort(4060)/OpenIMS core将此请求从4060发送到4060(相同端口、相同IP、相同CSCF、相同数据包),这是cykling,直到OpenIMS core发送响应移动应用程序-504服务器超时。 我们还尝试了SipDemo和CSipSimple,但我们遇到了同样的问题。 当我们尝试Monster Communicator或IMSDroid时,它就工作了

工作应用程序和有问题的应用程序之间有一个区别——工作应用程序也发送带有授权字段的注册数据包

守则的一部分:

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-SIP,但显示错误:转换为dalvik格式失败,错误为1


非常感谢您的回答。

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

在以下事项中进行注册:

  • 客户端在没有“授权”标头的情况下发送注册请求

  • 带有401响应代码的服务器响应,其中包括名为“WWW Authnticate”的头,该头包含领域、不透明、qop和哈希算法类型等参数

  • 使用用户名和密码的这些参数,SIP堆栈会自动生成一个授权头。以及发送第二注册请求,其包括“authorization”报头

  • 如果请求以正确的方式发送,服务器将返回200 OK响应代码,这意味着您现在已注册

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

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

    在以下事项中进行注册:

  • 客户端在没有“授权”标头的情况下发送注册请求

  • 带有401响应代码的服务器响应,其中包括名为“WWW Authnticate”的头,该头包含领域、不透明、qop和哈希算法类型等参数

  • 使用用户名和密码的这些参数,SIP堆栈会自动生成一个授权头。以及发送第二注册请求,其包括“authorization”报头

  • 如果请求以正确的方式发送,服务器将返回200 OK响应代码,这意味着您现在已注册
  • 您的问题是其他的,您甚至没有进入步骤3(授权步骤),您在步骤1失败,对于您的初始注册请求,您会收到400个错误的请求-响应代码-这几乎总是意味着您的请求中有语法错误。