web-dev-qa-db-ja.com

アスタリスクSIPダイジェスト認証ユーザー名の不一致

3comシステムのバックアップとして機能させようとしているアスタリスクシステムがあります。すでにカンファレンスブリッジに使用しています。私たちの電話は3com3C10402Bなので、SIPイメージがない古い3com電話の問題はありません。

3com電話はSIP Asteriskと通信していますが、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のDigest usernameフィールドにユーザー名を表示したいと考えていますが、3com電話はsip:[email protected]を送信しています。

ダイジェスト認証でこの形式のユーザー名を受け入れるようにアスタリスクに指示する方法を知っている人はいますか?

その拡張機能の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  

...そして、グリットに興味がある人のために、登録試行のデバッグ出力は次のとおりです。

 
 REGISTER sip:192.168.254.12 SIP/2.0 
 v:SIP/2.0/UDP 192.168.254.157:5060
t:
 f: 
 i:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 
 CSeq:18580 REGISTER 
 Max-Forwards: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行)--- 
最新のREGISTERリクエストを基本リクエストとして使用
 192.168.254.157に送信:5060(NATなし)
 
 
 SIP/2.0100試行中
経由:SIP/2.0/UDP 192.168.254.157:5060;受信= 192.168.254.157 
 From:
 To:
 Call-ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 
 CSeq:18580 REGISTER 
ユーザーエージェント:アスタリスクPBX 
許可:INVITE、ACK、CANCEL、OPTIONS、BYE、REFER、SUBSCRIBE、NOTIFY 
サポート:置換
連絡先:
 Content-長さ:0 
 
 
 
 SIP/2.0401無許可
経由:SIP/2.0/UDP 192.168.254.157:5060;received=192.168。 254.157 
 From:
 To :; tag = as3fb867e2 
 Call-ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 
 CSeq:18580 REGISTER 
ユーザーエージェント:アスタリスクPBX 
許可:INVITE、ACK、CANCEL、OPTIONS、BYE、REFER、SUBSCRIBE、NOTIFY 
サポート:置換
 WWW-認証:ダイジェストアルゴリズム= MD5 、realm = "asterisk"、nonce = "6c915c33" 
 Content-Length:0 
 
 
 SIPダイアログ 'fa4451d8-01d6-1cc2-13e4-00e0bb33beb9' in 32000 ms(メソッド:REGISTER)
 confbridge * CLI> 
 
 REGISTER sip:192.168.254.12 SIP/2.0 
 v:SIP/2.0/UDP 192.168.254.157:5060
t:
 f:
 i:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 
 CSeq:18581 REGISTER 
 Max-Forwards:70 
 m :; dt = 544 
 Expires:3600 
 User-Agent:3Com-SIP-Phone/V8。 0.1.3 
認証:ダイジェスト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行)--- 
最新のREGISTERリクエストを基本リクエストとして使用
 192.168.254.157に送信:5060(NAT)
 
 
 SIP/2.0100試行中
経由:SIP/2.0/UDP 192.168.254.157:5060;received= 192.168.254.157 
 From:
 To:
 Call-ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 
 CSeq:18581 REGISTER 
 User -エージェント:Asterisk PBX 
許可:INVITE、ACK、CANCEL、OPTIONS、BYE、REFER、SUBSCRIBE、NOTIFY 
サポート:置換
連絡先:
 Content-Length :0 
 
 
 
 SIP/2.0403認証ユーザー名がアカウント名と一致しません
経由:SIP/2.0/UDP 192.168.254.157: 5060; receive = 192.168.254.157 
 From:
 To :; tag = as3fb867e2 
 Call-ID:fa4451d8-01d6-1cc2-13e4-00e0bb33beb9 
 CSeq: 18581登録
ユーザーエージェント:Asterisk PBX 
許可:INVITE、ACK、CANCEL、OPTIONS、BYE、REFER、SUBSCRIBE、NOTIFY 
サポート:置換
 C ontent-Length:0 
 
 
 32000ミリ秒でSIPダイアログ 'fa4451d8-01d6-1cc2-13e4-00e0bb33beb9'の破棄をスケジュールする(方法: 登録)
2
Matt

これは私の状況では問題ないことがわかった回避策ですが、一般的にはひどいハックだと思います。私はこの宝石をchan_sip.cで見つけました:

[。

だから、私の回避策は置くことです:

シークレット=

各拡張機能の構成内。ネットワーク上の誰かが自分のものではない拡張機能に登録しようとしていることを心配していないので、これは私にとっては問題ありません。ただし、一般的には、それ以上の認証をバイパスするため、完全に安全ではありません(ユーザー名の不一致に関する問題を含む)。

2
Matt

私が見つけることができるすべてのことから(そしてあなたが見てきたと確信しています)、あなたの設定は正しいようです。

私の唯一の提案は、defaultip=192.168.254.12を設定することです。これは、私が標準として読んだものとあなたのsip.confの間に欠けていることがわかる唯一の考えのようです。

幸運を!

0
Andrew Bolster