У меня возникла небольшая забавная проблема с Asterisk 10.3, но, похоже, она применима и к 10.4.
Сервер, на котором запущен Asterisk, был перемещен с VPS на выделенное оборудование, и теперь только 1 из нескольких SIP-партнеров может правильно подключиться.
Одноранговые узлы SIP загружаются из соединения ODBC в реальном времени. Учитывая, что 1 может подключаться без каких-либо проблем и функционирует должным образом, выполняет запросы и так далее, я исключил любые проблемы с подключением к базе данных. Единственным клиентом оказался Grandsteam ATA.
Но на этом все заканчивается. Никто другой не может подключиться, поскольку Asterisk сообщает им 401 Unauthorized, когда они пытаются зарегистрироваться.
Единственными переменными, которые изменились в этом уравнении, может быть способ настройки сетей. Старый хост был VPS (Xen), а новое оборудование выделено. В этом случае сервер находится на публичном IP. На выделенном оборудовании не должно происходить каких-либо уловок с NAT, но в большинстве случаев все подключающиеся узлы находятся за каким-либо NAT.
Что я пробовал до сих пор:
В довершение ко всему, Grandstream отлично подключается. Но другие клиенты, такие как CSipSimple, Cisco IP 79xx, Polycoms ... нет.
Есть идеи, что может потребоваться изменить, чтобы эти одноранговые узлы могли снова подключаться?
Пример:
<--- SIP read from UDP:12.34.56.78:35286 --->
REGISTER sip:sip.server.com SIP/2.0
Via: SIP/2.0/UDP 10.0.0.163:35286;rport;branch=z9hG4bKPjZ8cqUxWzs6KnfN5kqG9lrD-V0hXQNppc
Route: <sip:sip.server.com;lr>
Max-Forwards: 70
From: "Erik" <sip:334@sip.server.com>;tag=uwgq3EEWaQ0DuPwWEzuLfVA3aajqyXL6
To: "Erik" <sip:334@sip.server.com>
Call-ID: ohWlNbqWRdOme5TvFr3.r6mnPUbjoKqs
CSeq: 1582 REGISTER
User-Agent: CSipSimple r1108 / GT-S5830D-10
Contact: "Erik" <sip:334@10.0.0.163:35286;ob>
Expires: 900
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length: 0
<------------->
--- (13 headers 0 lines) ---
Sending to 12.34.56.78:35286 (NAT)
<--- Transmitting (NAT) to 12.34.56.78:35286 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.0.0.163:35286;branch=z9hG4bKPjZ8cqUxWzs6KnfN5kqG9lrD-V0hXQNppc;received=12.34.56.78;rport=35286
From: "Erik" <sip:334@sip.server.com>;tag=uwgq3EEWaQ0DuPwWEzuLfVA3aajqyXL6
To: "Erik" <sip:334@sip.server.com>;tag=as2da10195
Call-ID: ohWlNbqWRdOme5TvFr3.r6mnPUbjoKqs
CSeq: 1582 REGISTER
Server: Asterisk PBX 10.3.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="7837df5c"
Content-Length: 0
<------------>
Поскольку это может помочь кому-то:
insecure=invite
помогли мне после подобного переезда. Для меня это был vm to vm, но был подключен к той же сети, поэтому я просто не понимаю, почему моя рабочая конфигурация перестала работать. Я испытал эффект одностороннего вызова. Звонки из внешней SIP PBX, поступающие в звездочку, а затем отправляемые программным клиентам VoIP, работали, но программные клиенты VoIP не могли общаться вообще.
Проблема решена! Несмотря на то, что Asterisk предлагает возможность работать с более чем одним адресом, указав 0.0.0.0 в качестве адреса прослушивания, ящик, на котором присутствовал Asterisk, отправлял приглашения с других IP-адресов с псевдонимами на сервере вместо предполагаемого. Привязка Asterisk к одному IP-адресу и подключение к этому IP-адресу полностью решает эту проблему.
У меня была эта проблема, и я решил ее, перейдя на соединение на основе TCP. У меня уже был включен TCP, и я просто включил расширение, чтобы использовать его.
Похоже, в моей среде возникла проблема с NAT и UDP. Если я узнаю больше, я обновлю свой ответ, но, надеюсь, это окажется полезным для других, которые также обнаружат эту проблему.