Asterisk SIP 摘要认证用户名不匹配

Asterisk SIP 摘要认证用户名不匹配

我有一个星号系统,我正尝试将其作为我们 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:[电子邮件保护]

有人知道如何告诉星号在摘要认证中接受这种格式的用户名吗?

以下是该扩展的 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  

...对于那些对勇气感兴趣的人,这里是注册尝试的调试输出:

注册 sip:192.168.254.12 SIP/2.0
验证码:SIP/2.0/UDP 192.168.254.157:5060
吨:
F:
我:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9
CSeq: 18580 注册
最大前锋:70
米: ;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 行)---
使用最新的 REGISTER 请求作为基础请求
发送至 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 注册
用户代理:Asterisk PBX
允许:邀请、确认、取消、选项、再见、推荐、订阅、通知
支持:替代
接触:
内容长度: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 注册
用户代理:Asterisk PBX
允许:邀请、确认、取消、选项、再见、推荐、订阅、通知
支持:替代
WWW-Authenticate:摘要算法=MD5,realm="asterisk",nonce="6c915c33"
内容长度:0


计划在 32000 毫秒内销毁 SIP 对话“fa4451d8-01d6-1cc2-13e4-00e0bb33beb9”(方法:REGISTER)
confbridge * CLI>

注册 sip:192.168.254.12 SIP/2.0
验证码:SIP/2.0/UDP 192.168.254.157:5060
吨:
F:
我:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9
序号: 18581 注册
最大前锋:70
米: ;dt=544
有效期:3600
用户代理:3Com-SIP-Phone/V8.0.1.3
授权:摘要用户名=“sip:[电子邮件保护]", 领域="星号", nonce="6c915c33", uri="sip:192.168.254.12", 不透明="", 算法=MD5, 响应="a89df25f19e4b4598595f919dac9db81"
X-3Com-PhoneInfo:firstRegistration=no;primaryCallP=192.168.254.12;secondaryCallP=0.0.0.0;


--- (12 个标题 0 行)---
使用最新的 REGISTER 请求作为基础请求
发送至 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
序号: 18581 注册
用户代理:Asterisk PBX
允许:邀请、确认、取消、选项、再见、推荐、订阅、通知
支持:替代
接触:
内容长度:0



SIP/2.0 403 认证用户名与账户名不匹配
通过:SIP/2.0/UDP 192.168.254.157:5060;已接收=192.168.254.157
从:
收件人:;tag=as3fb867e2
呼叫 ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9
序号: 18581 注册
用户代理:Asterisk PBX
允许:邀请、确认、取消、选项、再见、推荐、订阅、通知
支持:替代
内容长度:0


计划在 32000 毫秒内销毁 SIP 对话“fa4451d8-01d6-1cc2-13e4-00e0bb33beb9”(方法:REGISTER)

答案1

我发现这是一个适合我的情况的解决方法,但我一般认为这是一个糟糕的黑客行为。我在 chan_sip.c 中发现了这个精华:

/* 如果没有秘密就总是可以的 */
如果 (ast_strlen_zero(secret) && ast_strlen_zero(md5secret))
  返回 AUTH_SUCCESSFUL;

因此,我的解决方法是:

秘密=

在每个扩展的配置中。这对我来说没问题,因为我不担心网络上有人试图注册不属于他们的扩展。但总的来说,这是完全不安全的,因为它会绕过任何进一步的身份验证(包括我的用户名不匹配问题)。

答案2

从我所能找到的所有内容来看(我相信您已经查看过),您的设置似乎是正确的。

我唯一的建议是设置defaultip=192.168.254.12,这似乎是我所读到的标准和你的 sip.conf 之间唯一缺少的东西

祝你好运!

相关内容