Asterisk SIP摘要authentication用户名不匹配

我有一个星号系统,我正试图作为我们的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

祝你好运!