Failed to authenticate on INVITE
| Quote: |
| [s1] type=friend host=serv1ip context=default |
у второго
| Quote: |
| [s2] type=friend host=serv2ip contexnt=default |
Соответственно в диалплане у каждого прописал Dial(SIP/s1/${EXTEN}) и Dial(SIP/s2/${EXTEN})
Сервера подцепились, при sip show peers оба высвечиваются и status стоит Ok.
При попытке позвонить от юзера с сервера 1 на сервер 2 вылетает мессага
| Quote: |
| [Nov 21 03:49:21] NOTICE[85399]: chan_sip.c:15256 handle_response_invite: Failed to authenticate on INVITE to '"D-Link Test" ;tag=as7657fd2a' |
С чем связана данная ошибка?
Конфиг sip.conf укаждого одинаковый, только externip соотв. указаны разные
| Quote: |
| [general] context=default ;allowoverlap=no bindport=5060 bindaddr=0.0.0.0 rtcachefriends=yes rtupdate=yes rtautoclear=yes rtsavesysname=yes ;ignoreregexpire=yes externip=servip srvlookup=yes ;canreinvite=no dtmfmode=rfc2833 qualify=yes nat=rfc3581 ;alwaysauthreject=yes registerattempts=3 disallow=all allow=alaw allow=g729 Allow=gsm allow=ulaw insecure=port,invite |
asterisk -rx 'sip show peer s1' | grep Insecure
и то же самое с s2
Ну и sip set debug ip на 2м и наоборот, после чего логи сюда
| Quote: |
| asterisk -rx 'sip show peer s1' | grep Insecure |
Выдаёт соотв. Insecure: port, invite (пробовал убрать данный параметр, ошибка та же; конфига на двух серверах одинаковая)
Выставил core debug 5 и core verbose 5, соотв. при звонке с сервера s2 на s1 выдаёт (обратно - аналогично)
| Quote: |
| -- Executing [9000@default:1] Dial("SIP/9999-28630000", "SIP/s1/9000") in new stack -- Called s1/9000 [Nov 22 02:12:41] NOTICE[89564]: chan_sip.c:15256 handle_response_invite: Failed to authenticate on INVITE to '"D-Link Test" ;tag=as7c36049a' -- SIP/s1-29805000 is circuit-busy == Everyone is busy/congested at this time (1:0/1/0) -- Auto fallthrough, channel 'SIP/9999-28630000' status is 'CONGESTION' |
sip show peer s1 (на s2)
| Quote: |
| s2*CLI> * Name : s1 Realtime peer: No Secret : MD5Secret : Context : default Subscr.Cont. : Language : AMA flags : Unknown Transfer mode: open CallingPres : Presentation Allowed, Not Screened Callgroup : Pickupgroup : Mailbox : VM Extension : asterisk LastMsgsSent : 32767/65535 Call limit : 0 Dynamic : No Callerid : "" MaxCallBR : 384 kbps Expire : -1 Insecure : invite Nat : RFC3581 ACL : No T38 pt UDPTL : No CanReinvite : Yes PromiscRedir : No User=Phone : No Video Support: No Text Support : No Trust RPID : No Send RPID : No Subscriptions: Yes Overlap dial : Yes DTMFmode : rfc2833 Timer T1 : 500 Timer B : 32000 ToHost : serv1ip Addr->IP : serv1ip Port 5060 Defaddr->IP : 0.0.0.0 Port 0 Transport : UDP Def. Username: SIP Options : (none) Codecs : 0x27f9fff (g723|gsm|ulaw|alaw|g726|adpcm|slin|lpc10|g729|speex|ilbc|g726aal2|g722|slin16|jpeg|png|h261|h263|h263p|h264|mpeg4|t140) Codec Order : (alaw:20,g729:20,gsm:20,ulaw:20) Auto-Framing : No 100 on REG : No Status : OK (1 ms) Useragent : Reg. Contact : Qualify Freq : 60000 ms Sess-Timers : Accept Sess-Refresh : uas Sess-Expires : 1800 secs Min-Sess : 90 secs |
Лог звонка юера 9999 (s2) на юзера 9000 (s1)
| Quote: |
| SIP Debugging Enabled for IP: serv1ip -- Executing [9000@default:1] Dial("SIP/9999-2862d000", "SIP/s1/9000") in new stack Audio is at serv2ip port 16844 Adding codec 0x8 (alaw) to SDP Adding codec 0x4 (ulaw) to SDP Adding codec 0x10 (g726aal2) to SDP Adding codec 0x20 (adpcm) to SDP Adding codec 0x40 (slin) to SDP Adding codec 0x80 (lpc10) to SDP Adding codec 0x200 (speex) to SDP Adding codec 0x800 (g726) to SDP Adding codec 0x1000 (g722) to SDP Adding codec 0x8000 (slin16) to SDP Adding non-codec 0x1 (telephone-event) to SDP Reliably Transmitting (no NAT) to serv1ip:5060: INVITE sip:9000@serv1ip SIP/2.0 Via: SIP/2.0/UDP serv2ip:5060;branch=z9hG4bK4932a648;rport Max-Forwards: 70 From: "D-Link Test" ;tag=as2ab9f60b To: Contact: Call-ID: 787667473f5dc46d7c18bb823dcdcaf1@serv2ip CSeq: 102 INVITE User-Agent: Asterisk PBX 1.6.0.9 Date: Sun, 22 Nov 2009 04:47:55 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Content-Type: application/sdp Content-Length: 483 v=0 o=root 1050278646 1050278646 IN IP4 serv2ip s=Asterisk PBX 1.6.0.9 c=IN IP4 serv2ip t=0 0 m=audio 16844 RTP/AVP 8 0 112 5 10 7 110 111 9 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:112 AAL2-G726-32/8000 a=rtpmap:5 DVI4/8000 a=rtpmap:10 L16/8000 a=rtpmap:7 LPC/8000 a=rtpmap:110 speex/8000 a=rtpmap:111 G726-32/8000 a=rtpmap:9 G722/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv --- -- Called s1/9000 s2*CLI> SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP serv2ip:5060;branch=z9hG4bK4932a648;received=serv2ip;rport=5060 From: "D-Link Test" ;tag=as2ab9f60b To: ;tag=as03711894 Call-ID: 787667473f5dc46d7c18bb823dcdcaf1@serv2ip CSeq: 102 INVITE User-Agent: Asterisk PBX 1.6.0.9 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="3147a01d" Content-Length: 0 --- (11 headers 0 lines) --- Transmitting (no NAT) to serv1ip:5060: ACK sip:9000@serv1ip SIP/2.0 Via: SIP/2.0/UDP serv2ip:5060;branch=z9hG4bK4932a648;rport Max-Forwards: 70 From: "D-Link Test" ;tag=as2ab9f60b To: ;tag=as03711894 Contact: Call-ID: 787667473f5dc46d7c18bb823dcdcaf1@serv2ip CSeq: 102 ACK User-Agent: Asterisk PBX 1.6.0.9 Content-Length: 0 --- [Nov 22 07:47:55] NOTICE[89613]: chan_sip.c:15256 handle_response_invite: Failed to authenticate on INVITE to '"D-Link Test" ;tag=as2ab9f60b' -- SIP/s1-29811000 is circuit-busy == Everyone is busy/congested at this time (1:0/1/0) -- Auto fallthrough, channel 'SIP/9999-2862d000' status is 'CONGESTION' Really destroying SIP dialog '787667473f5dc46d7c18bb823dcdcaf1@serv2ip' Method: INVITE |
Есть идеи?
| Quote: |
| s2*CLI> sip show peer 9999 s2*CLI> * Name : 9999 Realtime peer: Yes, cached Secret : MD5Secret : Context : default Subscr.Cont. : Language : AMA flags : Unknown Transfer mode: open CallingPres : Presentation Allowed, Not Screened Callgroup : Pickupgroup : Mailbox : VM Extension : asterisk LastMsgsSent : 32767/65535 Call limit : 0 Dynamic : Yes Callerid : "D-Link Test" MaxCallBR : 384 kbps Expire : 3466 Insecure : port,invite Nat : Always ACL : No T38 pt UDPTL : No CanReinvite : No PromiscRedir : No User=Phone : No Video Support: No Text Support : No Trust RPID : No Send RPID : No Subscriptions: Yes Overlap dial : Yes DTMFmode : rfc2833 Timer T1 : 500 Timer B : 32000 ToHost : Addr->IP : 10.10.10.10 Port 57812 Defaddr->IP : 0.0.0.0 Port 5060 Transport : UDP Def. Username: 9999 SIP Options : (none) Codecs : 0x8 (alaw) Codec Order : (alaw:20) Auto-Framing : No 100 on REG : No Status : OK (6 ms) Useragent : Zoiper rev.4829 Reg. Contact : sip:9999@10.51.17.194:5060;rinstance=d17ffaa2cdad4b9f;transport=UDP Qualify Freq : 60000 ms Sess-Timers : Accept Sess-Refresh : uas Sess-Expires : 1800 secs Min-Sess : 90 secs |
Так нет же, первую надо было проигнорировать а в ответ на втору выложить логи исходящего звонка. Круто.
Как оказалось, проблема решалась добавлением параметра fromuser=, тогда звонки проходили.
Теперь получается, что при звонке у того, кому звонят, высвечивается callerid , как сделать, чтобы высвечивался callerid и номер звонящего?
И логов снова нет
Предлагаю таки запростить лог звонка с сервера, для которого звонок входящий, убрав при этом все fromuser
| Лог s1 при звонке с 9999 на 9000 wrote: |
| s2*CLI> sip set debug peer s1 SIP Debugging Enabled for IP: serv1ip:5060 s2*CLI> INVITE sip:9000@serv2ip SIP/2.0 Via: SIP/2.0/UDP serv1ip:5060;branch=z9hG4bK7a9d5501;rport Max-Forwards: 70 From: "Zoiper" ;tag=as01c34a39 To: Contact: Call-ID: 4303375d4bfd97430a9e852414ae5e50@serv1ip CSeq: 102 INVITE User-Agent: Asterisk PBX 1.6.0.9 Date: Mon, 23 Nov 2009 16:12:49 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Content-Type: application/sdp Content-Length: 289 v=0 o=root 509035813 509035813 IN IP4 serv1ip s=Asterisk PBX 1.6.0.9 c=IN IP4 serv1ip t=0 0 m=audio 10372 RTP/AVP 8 0 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv --- (14 headers 13 lines) --- Sending to serv1ip : 5060 (NAT) Using INVITE request as basis request - 4303375d4bfd97430a9e852414ae5e50@serv1ip Found user '9999' for '9999' s2*CLI> SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP serv1ip:5060;branch=z9hG4bK7a9d5501;received=serv1ip;rport=5060 From: "Zoiper" ;tag=as01c34a39 To: ;tag=as4cbc1e97 Call-ID: 4303375d4bfd97430a9e852414ae5e50@serv1ip CSeq: 102 INVITE User-Agent: Asterisk PBX 1.6.0.9 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="0f9a6a10" Content-Length: 0 Scheduling destruction of SIP dialog '4303375d4bfd97430a9e852414ae5e50@serv1ip' in 32000 ms (Method: INVITE) s2*CLI> ACK sip:9000@serv2ip SIP/2.0 Via: SIP/2.0/UDP serv1ip:5060;branch=z9hG4bK7a9d5501;rport Max-Forwards: 70 From: "Zoiper" ;tag=as01c34a39 To: ;tag=as4cbc1e97 Contact: Call-ID: 4303375d4bfd97430a9e852414ae5e50@serv1ip CSeq: 102 ACK User-Agent: Asterisk PBX 1.6.0.9 Content-Length: 0 --- (10 headers 0 lines) --- |
| Centast wrote: |
| Found user '9999' for '9999' |
А логи просились вот ровно из-за этой строчки. Запостили бы сразу - решилось бы сразу
Если вкратце, астериск при инвайтах ищет соответствие пирам (freind'ам?)
* сначала по username
* затем по hostname
В данном случае он находит 9999 (потому что вот такой username прилетает от инвайта), а там host наверняка dynamic, поэтому аутентификация не проходит
Мораль сей басни такова - либо убирайте пир [9999] вообще,
либо просто приделайте ему какой-нибудь префикс типа [s1_9999], чтобы он никогда не пересекся с username'ом и все будет хорошо[/quote]
| Настройки юзера из файла sip.conf wrote: |
| [2222] secret=password mailbox=2222@default context=default type=friend host=dynamic nat=yes |
Проблема та же, но вот в чем фишка - ничего не меняли.
У оператора что-то сбойнуло.
С одной станции звонки идут, с дрйго такая же проблема.