我有一个星号系统,我正试图作为我们的3com系统的备份工作。 我们已经将它用于会议桥。 我们的手机是3com的3C10402B,所以我没有没有SIP图像的老3com手机的问题。
3com手机与Asterisk通信SIP,但无法注册,因为它们提供的摘要用户名值不符合Asterisk认为应该的值。
举例来说,以下是从软电话成功注册的相关信息:
Server sends: WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="1cac3853" Phone responds: Authorization: Digest username="2321", realm="asterisk", nonce="1cac3853", uri="sip:192.168.254.12", algorithm=md5, response="d32df9ec719817282460e7c2625b6120"
对于3com手机,这些相同的线看起来像这样(和失败):
Server sends: WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6c915c33" Phone responds: Authorization: Digest username="sip:[email protected]", realm="asterisk", nonce="6c915c33", uri="sip:192.168.254.12", opaque="", algorithm=MD5, response="a89df25f19e4b4598595f919dac9db81"
基本上,Asterisk希望在2321的摘要用户名字段中看到一个用户名,但是3com手机正在发送sip:[email protected]。
任何人都知道如何告诉星号在摘要validation接受这种格式的用户名?
以下是该扩展的sip.conf信息:
[2321] deny=0.0.0.0/0.0.0.0 disallow=all type=friend secret=1234 qualify=yes port=5060 permit=0.0.0.0/0.0.0.0 nat=yes mailbox=2321@device host=dynamic dtmfmode=rfc2833 dial=SIP/2321 context=from-internal canreinvite=no callerid=device <2321> allow=ulaw, alaw call-limit=50
…对于那些对砂砾感兴趣的人,这里是注册尝试的debugging输出:
注册sip:192.168.254.12 SIP / 2.0 v:SIP / 2.0 / UDP 192.168.254.157:5060 T: F: 我:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 CSeq:18580注册 最大前锋:70 m:; dt = 544 到期时间:3600 用户代理:3Com-SIP-Phone / V8.0.1.3 X-3Com-PhoneInfo:firstRegistration = no; primaryCallP = 192.168.254.12; secondaryCallP = 0.0.0.0; ---(11头0行)--- 使用最新的注册请求作为基础请求 发送到192.168.254.157:5060(没有NAT) SIP / 2.0 100试用 通过:SIP / 2.0 / UDP 192.168.254.157:5060;接收= 192.168.254.157 从: 至: 呼叫ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 CSeq:18580注册 用户代理:星号PBX 允许:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY 支持:replace 联系: 内容长度:0 SIP / 2.0 401未经授权 通过:SIP / 2.0 / UDP 192.168.254.157:5060;接收= 192.168.254.157 从: 要:; tag = as3fb867e2 呼叫ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 CSeq:18580注册 用户代理:星号PBX 允许:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY 支持:replace WWW-Authenticate:摘要algorithm= MD5,realm =“星号”,nonce =“6c915c33” 内容长度:0 在32000毫秒(方法:注册)中调度SIP对话框“fa4451d8-01d6-1cc2-13e4-00e0bb33beb9”的销毁 confbridge * CLI> 注册sip:192.168.254.12 SIP / 2.0 v:SIP / 2.0 / UDP 192.168.254.157:5060 T: F: 我:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 CSeq:18581注册 最大前锋:70 m:; dt = 544 到期时间:3600 用户代理:3Com-SIP-Phone / V8.0.1.3 Authorization:Digest username =“sip:[email protected]”,realm =“asterisk”,nonce =“6c915c33”,uri =“sip:192.168.254.12”,opaque =“”,algorithm = MD5,response =“a89df25f19e4b4598595f919dac9db81 “ X-3Com-PhoneInfo:firstRegistration = no; primaryCallP = 192.168.254.12; secondaryCallP = 0.0.0.0; ---(12头0行)--- 使用最新的注册请求作为基础请求 发送到192.168.254.157:5060(NAT) SIP / 2.0 100试用 通过:SIP / 2.0 / UDP 192.168.254.157:5060;接收= 192.168.254.157 从: 至: 呼叫ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 CSeq:18581注册 用户代理:星号PBX 允许:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY 支持:replace 联系: 内容长度:0 SIP / 2.0 403authentication用户名与帐户名称不匹配 通过:SIP / 2.0 / UDP 192.168.254.157:5060;接收= 192.168.254.157 从: 要:; tag = as3fb867e2 呼叫ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 CSeq:18581注册 用户代理:星号PBX 允许:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY 支持:replace 内容长度:0 在32000毫秒(方法:注册)中调度SIP对话框“fa4451d8-01d6-1cc2-13e4-00e0bb33beb9”的销毁
这是一个解决方法,我发现这对我的情况是可以的,但我通常认为这是一个严重的黑客攻击。 我在chan_sip.c中find了这个gem:
/ *如果没有秘密,总是确定* / if(ast_strlen_zero(secret)&& ast_strlen_zero(md5secret)) 返回AUTH_SUCCESSFUL;
所以,我的解决方法是把:
秘密=
在每个扩展的configuration。 这对我来说是好的,因为我不担心我的networking上有人试图注册不是他们的扩展名。 一般来说,它是完全不安全的,因为它绕过了任何进一步的authentication(包括我与用户名不符的问题)。
从我能find的所有东西(我相信你已经看过),你的设置似乎是正确的。
我唯一的build议是设置defaultip=192.168.254.12这似乎是唯一的想法,我可以看到之间我已经读作为标准和你的sip.conf
祝你好运!