1

我已经安装了 asterisk 11.5.1,并且我在 iPhone 上安装了 Bria 作为 sip 客户端。用户名/密码在 sip.conf 中设置,默认拨号方案(由客户端使用)是

exten => _X.,1,Dial(SIP/${EXTEN},20)
exten => _X.,n,Hangup()

我有两部 iphone,比如说 A 和 B,我用asterisk -rvvvv. 当我从 A 中点击“注册”按钮时,我看到了

Registered SIP 'A' at ww.xx.yy.zz:mmmm

星号 cli 上的消息。当我从 B 中点击“注册”按钮时,我看到了

Registered SIP 'B' at aa.bb.cc.dd:nnnn
Unregistered SIP 'B'   <== HERE IS THE PROBLEM

虽然我没有从客户端 B 中取消注册。此外,B 似乎已在客户端注册。从现在开始,来自 B 的任何调用都会导致“请求超时”。如果我从 A 呼叫 B,我会在星号 cli 上看到“订户缺席”消息。

为什么星号注销客户端B?有什么建议吗?

ps:我在星号 cli 中看到以下错误:

chan_sip.c:3905 __sip_xmit: sip_xmit of 0x7f7df4027b00 (len 622) to aa.bb.cc.dd:nnnn returned -2: Interrupted system call

编辑:我的 sip.conf 文件如下

[myConf](!)
        disallow=all
        allow=g729
        allow=gsm
        allow=g723
        allow=ulaw
        allow=ilbc
        directmedia=no
        host=dynamic
        dtmfmode=rfc2833
        context=default
        type=friend
        transport=tls,tcp
        qualify=4000
        nat=force_rport,comedia
        encryption=yes

[A](myConf)
        secret=AAAA
[B](myConf)
        secret=BBBB
4

2 回答 2

0

我认为你需要处理 NAT

http://www.voip-info.org/wiki/view/Asterisk+SIP+NAT+solutions

或者您已检查您的 B 是否可以从星号收到消息并正确回答。可以使用 sip debug 获得更多信息

asterisk -r 
sip set debug on
于 2013-09-21T06:50:18.670 回答
0

我不能给你确切的解决方案,但我可以指出可能是问题所在。

您在 chan_sip.c 中遇到问题的代码的文档部分说

 * \return length of transmitted message, XMIT_ERROR on know network failures -1 on other failures

在您的情况下,您会因系统调用中断而陷入其他故障。该消息导致我发现由于此处缺乏活动而暂停的开放错误。所以我的出价是这个错误与操作系统有关,而不是与 Asterisk 本身有关。

我的以下问题是,如果您颠倒顺序(首先注册 B,然后注册 A)是最后一个收到错误的人吗?如果是,那么您可以开始查看 selinux 或任何其他在建立连接后会终止连接的安全工具。否则,您可能需要更新错误并让 Asterisk 的人员修复错误。

让我们知道结果,总是很高兴找到有修复的帖子 :)

于 2013-09-20T12:32:06.100 回答