Назад | Перейти на главную страницу

Asterisk 401 Неавторизован при попытке зарегистрировать sip-клиентов

Попытка зарегистрировать sip-клиент на моем сервере asterisk часто (примерно в 90% случаев, не всегда, как ни странно) приводит к 401 Unauthorized ошибки.

Это конфигурация одного из расширений:

[11]
deny=0.0.0.0/0.0.0.0
secret=xxxxxxxxxxxxxxxxxxxx
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=no
type=friend
nat=no
port=5060
qualify=yes
qualifyfreq=60
transport=udp
avpf=no
icesupport=no
encryption=no
callgroup=
pickupgroup=
dial=SIP/11
mailbox=11@default
permit=0.0.0.0/0.0.0.0
callerid=Caller <11>
callcounter=yes
faxdetect=no

Выдержка из журнала:

<--- SIP read from UDP:192.168.178.69:60686 --->
REGISTER sip:192.168.178.26 SIP/2.0
Via: SIP/2.0/UDP 192.168.178.69:60686;rport;branch=z9hG4bKPj7IVefnk0j6Wn9oUM78ubmcURGDehvKEc
Route: <sip:192.168.178.26;lr>
Max-Forwards: 70
From: <sip:12@192.168.178.26>;tag=XOO-LeGIwZmwa2UROKMXEhZGA5mKcY0b
To: <sip:12@192.168.178.26>
Call-ID: p8gpcmxSdWwcM5xV89nm2LkEbcTPUdT1
CSeq: 62833 REGISTER
User-Agent: CSipSimple_g2-17/r2330
Contact: <sip:12@192.168.178.69:60686;ob>
Expires: 900
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length: 0

<------------->
--- (13 headers 0 lines) ---
[2014-02-08 14:54:00] DEBUG[2922]: acl.c:979 ast_ouraddrfor: For destination '192.168.178.69', our source address is '192.168.178.26'.
[2014-02-08 14:54:00] DEBUG[2922]: chan_sip.c:4031 ast_sip_ouraddrfor: Setting SIP_TRANSPORT_UDP with address 192.168.178.26:5060
Sending to 192.168.178.69:60686 (NAT)
[2014-02-08 14:54:00] DEBUG[2922]: chan_sip.c:8764 sip_alloc: Allocating new SIP dialog for p8gpcmxSdWwcM5xV89nm2LkEbcTPUdT1 - REGISTER (No RTP)
Sending to 192.168.178.69:60686 (NAT)

<--- Transmitting (no NAT) to 192.168.178.69:60686 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.178.69:60686;branch=z9hG4bKPj7IVefnk0j6Wn9oUM78ubmcURGDehvKEc;received=192.168.178.69;rport=60686
From: <sip:12@192.168.178.26>;tag=XOO-LeGIwZmwa2UROKMXEhZGA5mKcY0b
To: <sip:12@192.168.178.26>;tag=as68275e50
Call-ID: p8gpcmxSdWwcM5xV89nm2LkEbcTPUdT1
CSeq: 62833 REGISTER
Server: FPBX-2.11.0(11.6.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="7cdb20a0"
Content-Length: 0

Заполните журнал одной попытки регистрации, пока на клиенте не появится сообщение о тайм-ауте: http://pastebin.com/sqjAqa2T

Я уже пробовал методы, упомянутые в этом вопросе: Asterisk SIP / 2.0 401 Неавторизовано

Как я могу заставить регистрацию работать правильно?

У вас нет username =, установленного в вашем расширении (часто просто номер расширения - неважно, какой он, он просто должен соответствовать клиенту)

Образец журнала, который у вас есть, показывает, что расширение 12 пытается зарегистрироваться, но не отправляет заголовок авторизации, что выглядит странно. CSipSimple отлично работает для меня, используя номер расширения в качестве имени пользователя (и, конечно же, пароль - независимо от того, какой секрет = установлен для этого расширения).