无法在Android上注册SIP

无法在Android上注册SIP,android,asterisk,sip,Android,Asterisk,Sip,我在服务器上安装了星号14.4。我可以从Zoiper(PC)注册到它。我正在尝试通过以下方式在android上注册: String SERVER_DOMAIN = "ec2-XX-XXX-XXX-XX.us-west-1.compute.amazonaws.com"; builder = new SipProfile.Builder(sipNumber, SERVER_DOMAIN); builder.setPassword("unsecurepassword");

我在服务器上安装了星号14.4。我可以从Zoiper(PC)注册到它。我正在尝试通过以下方式在android上注册:

String SERVER_DOMAIN = "ec2-XX-XXX-XXX-XX.us-west-1.compute.amazonaws.com";
builder = new SipProfile.Builder(sipNumber, SERVER_DOMAIN);
        builder.setPassword("unsecurepassword");
        builder.setProtocol("UDP");
        builder.setOutboundProxy(SERVER_DOMAIN);
        builder.setPort(5060);
        builder.setAuthUserName(sipNumber);
        builder.setAutoRegistration(true);

mSipProfile = builder.build();
mSipManager.open(mSipProfile, pendingIntent, listener);
就在那之后,我正试着打电话给Zoiper(个人电脑)

我的问题是我不能注册android(虽然我可以注册Zoiper,并因此调用它),但我可以打电话。 以下是我得到的SIP错误:

registration not running -4
no data connection -10
没有激发异常。 我错过了什么

UPD

这可能有助于:

    <--- SIP read from UDP:93.123.41.227:48234 --->
    REGISTER sip:ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com SIP/2.0
    Call-ID: 65f42070f602eae50ac0ce5b64fe8fcb@192.168.1.102
    CSeq: 2170 REGISTER
    From: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>;tag=22509741
    To: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>
    Via: SIP/2.0/UDP 192.168.1.102:48234;branch=z9hG4bKe10ab1bfd8e1c98e91a14ba0d3b07d55383131;rport
    Max-Forwards: 70
    User-Agent: SIPAUA/0.1.001
    Contact: *
    Expires: 0
    Content-Length: 0

            <------------->
    --- (11 headers 0 lines) ---
            Sending to 93.123.41.227:48234 (NAT)
            Sending to 93.123.41.227:48234 (NAT)

            <--- Transmitting (NAT) to 93.123.41.227:48234 --->
    SIP/2.0 401 Unauthorized
    Via: SIP/2.0/UDP 192.168.1.102:48234;branch=z9hG4bKe10ab1bfd8e1c98e91a14ba0d3b07d55383131;received=93.123.41.227;rport=48234
    From: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>;tag=22509741
    To: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>;tag=as56c127e1
    Call-ID: 65f42070f602eae50ac0ce5b64fe8fcb@192.168.1.102
    CSeq: 2170 REGISTER
    Server: Asterisk PBX 14.4.0
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
    Supported: replaces, timer
    WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="607265aa"
    Content-Length: 0


            <------------>

注册sip:ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com sip/2.0
呼叫ID:65f42070f602eae50ac0ce5b64fe8fcb@192.168.1.102
CSeq:2170寄存器
发件人:;标签=22509741
致:
Via:SIP/2.0/UDP 192.168.1.102:48234;分支=z9hG4bKe10ab1bfd8e1c98e91a14ba0d3b07d55383131;港口
最大前锋:70
用户代理:SIPAUA/0.1.001
联系人:*
过期日期:0
内容长度:0
---(11个标题0行)---
发送至93.123.41.227:48234(NAT)
发送至93.123.41.227:48234(NAT)
SIP/2.0 401未经授权
Via:SIP/2.0/UDP 192.168.1.102:48234;分支=z9hG4bKe10ab1bfd8e1c98e91a14ba0d3b07d55383131;已接收=93.123.41.227;rport=48234
发件人:;标签=22509741
致:;标签=as56c127e1
呼叫ID:65f42070f602eae50ac0ce5b64fe8fcb@192.168.1.102
CSeq:2170寄存器
服务器:星号PBX 14.4.0
允许:邀请、确认、取消、选项、再见、参考、订阅、通知、信息、发布、消息
支持:替换、定时器
WWW-Authenticate:Digest algorithm=MD5,realm=“asterisk”,nonce=“607265aa”
内容长度:0

不知何故,我设法使它工作起来。令人惊讶的是,如果我将侦听器传递给
SipManager#open(SipProfile,pendingent,SipRegistrationListener)
,那么它不会注册,但如果我将
null
传递为侦听器并使用
SipManager#setRegistrationListener(String,SipRegistrationListener)
,它会注册


另外,您可以强制使用
SipManager#register(SipProfile,int,SipRegistrationListener)
注册,但同样,如果我通过非空的listener,它对我不起作用。希望它能帮助你

不知何故,我设法使它工作起来了。令人惊讶的是,如果我将侦听器传递给
SipManager#open(SipProfile,pendingent,SipRegistrationListener)
,那么它不会注册,但如果我将
null
传递为侦听器并使用
SipManager#setRegistrationListener(String,SipRegistrationListener)
,它会注册


另外,您可以强制使用
SipManager#register(SipProfile,int,SipRegistrationListener)
注册,但同样,如果我通过非空的listener,它对我不起作用。希望它能帮助您在Amazon EC2上安装服务器(从日志)


亚马逊EC2是一个自然环境。您在sip.conf中使用externip=在AmazonEC2(从日志)上设置的服务器上显示了关于外部ip的星号提示


亚马逊EC2是一个自然环境。您在sip.conf中使用了externip=提示外部ip的星号,您是对的,它是aws。但是我尝试了使用
externip=
和不使用这两种方法,但都没有解决我的问题。此外,我可以从PC连接,但无法从Android连接,这让我相信问题出在客户端你是对的,这是aws。但是我尝试了使用
externip=
和不使用这两种方法,但都没有解决我的问题。此外,我可以从PC连接,但无法从Android连接,这让我相信问题出在客户端。请您解释一下小细节好吗。@Gurumoorthy Arumugam如果我将listener作为
SipManager#setRegistrationListener(String,SipRegistrationListener)以外的任何方法的参数,它都不起作用
:当时也没有调用它,我用两种不同的方法将注册和打开连接分离开来,
SipManager#open(SipProfile,pendingent,sippregistrationlistener)
SipManager#register(SipProfile,int,sippregistrationlistener)
(按此特定顺序)我也做了同样的操作,但它在移动数据中不工作,在wifi中工作正常这是我的代码PendingEvent PendingEvent=PendingEvent.getBroadcast(getApplicationContext(),0,intent,intent.FILL_in_data);sipManager.open(sipProfile,pendingent,null);sipManager.setRegistrationListener(sipProfile.getUriString(),新的SipRegistrationListener()){@gurumorthy-Arumugam请检查星号中的NAT设置,包括特定扩展名和全局扩展名。它很可能在某个地方。同时检查网络中的手机专用IP和星号中的专用网络设置。请您解释一下小细节。@gurumorthy-Arumugam如果我将侦听器作为参数,则它不起作用除了
SipManager#setRegistrationListener(String,SipRegistrationListener)
之外的任何方法的参数:也就是没有调用它,我用两个单独的方法将注册和打开连接分开,
SipManager#open(SipProfile,pendingent,SipRegistrationListener)
SipManager#register(SipProfile,int,SipRegistrationListener)
(按此特定顺序)我也这样做了,但它在移动数据中不起作用在wifi中工作正常这是我的代码PendingEvent PendingEvent=PendingEvent.getBroadcast(getApplicationContext(),0,intent,intent.FILL_in_data);sipManager.open(SipProfile,PendingEvent,null);sipManager.setRegistrationListener(sipProfile.getUriString(),new SipRegistrationListener(){@Gurumoorthy Arumugam请检查星号中的NAT设置,包括特定扩展名和全局扩展名。它很可能在那里的某个地方。同时检查手机在两个网络中的专用IP和星号中的专用网络设置
    <--- SIP read from UDP:93.123.41.227:48234 --->
    REGISTER sip:ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com SIP/2.0
    Call-ID: 65f42070f602eae50ac0ce5b64fe8fcb@192.168.1.102
    CSeq: 2170 REGISTER
    From: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>;tag=22509741
    To: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>
    Via: SIP/2.0/UDP 192.168.1.102:48234;branch=z9hG4bKe10ab1bfd8e1c98e91a14ba0d3b07d55383131;rport
    Max-Forwards: 70
    User-Agent: SIPAUA/0.1.001
    Contact: *
    Expires: 0
    Content-Length: 0

            <------------->
    --- (11 headers 0 lines) ---
            Sending to 93.123.41.227:48234 (NAT)
            Sending to 93.123.41.227:48234 (NAT)

            <--- Transmitting (NAT) to 93.123.41.227:48234 --->
    SIP/2.0 401 Unauthorized
    Via: SIP/2.0/UDP 192.168.1.102:48234;branch=z9hG4bKe10ab1bfd8e1c98e91a14ba0d3b07d55383131;received=93.123.41.227;rport=48234
    From: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>;tag=22509741
    To: <sip:6002@ec2-XX-XXX-XXX-XX.us-west-2.compute.amazonaws.com>;tag=as56c127e1
    Call-ID: 65f42070f602eae50ac0ce5b64fe8fcb@192.168.1.102
    CSeq: 2170 REGISTER
    Server: Asterisk PBX 14.4.0
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
    Supported: replaces, timer
    WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="607265aa"
    Content-Length: 0


            <------------>