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

Asterisk завершает исходящий вызов при получении сигнала, отправляет сообщение BYE

Я использую Asterisk 1.6.1.10 / FreePBX 2.5.2.2, и у меня настроена исходящая магистраль. До недавнего времени все работало нормально (возможно, из-за обновления до FC12 или других вещей, я не уверен).

В любом случае при установке, похоже, нет проблем с регистрацией и настройкой вызова, пакеты RTP идут в обоих направлениях, и вы можете слышать звонок с другой стороны. Однако оказывается, что когда звонок перехватывается или около того, входящие пакеты RTP прекращаются. При более внимательном рассмотрении с помощью Wireshark выясняется, что причиной являются именно эти пакеты:

trunk->asterisk SIP/SD Status: 200 OK, with session description
asterisk->trunk SIP    Request: ACK sip:<phone>@trunk:6889
asterisk->trunk SIP    Request: BYE sip:<phone>@trunk:6889
[..about a dozzen RTP packets in/outbound..]
trunk->asterisk SIP    Status: 200 OK, CSeq: 104 Bye
[..outbound RTP continues, phone is silent..]

Затем входящие пакеты RTP прекращаются, однако журналы звездочки не показывают никакой активности на этом этапе. Последняя запись гласит: «SIP / отвечает SIP /».

Затем, когда вы повесите расширение, вы получите

asterisk->trunk SIP    Request: BYE sip:<phone>@trunk:6889
trunk->asterisk SIP    Status: 481 Call Leg/Transaction does not exist

Настройки моего транкового узла в FreePBX:

username=<user>
fromuser=<user>
canreinvite=no
type=friend
secret=<pass>
qualify=no [qualify yes produces 401/forbidden messages]
nat=yes
insecure=very
host=<sip trunk gateway>
fromdomain=<sip trunk gateway>
disallow=all
context=from-pstn
allow=ulaw
dtmfmode=inband

Под sip_general_custom.conf у меня есть

stunaddr=stun.xten.com
externrefresh=120
localnet=192.168.1.1/255.255.255.0
nat=yes

Что заставляет Asterisk преждевременно завершить вызов, но по-прежнему считает, что вызов продолжается? Я не знаю, где искать дальше.

Попробуйте повернуть canreinvite да, и перезагружая глоток. также опубликуйте вывод отладки sip set до и после этого изменения.

Когда вы берете трубку, там появляется BYE - отметок времени нет, но похоже, что это происходит сразу после 200 OK. Затем генерируется второй BYE, который сейчас находится вне разговора - отсюда и 481.

Можете ли вы предоставить нам SIP-трассировку разговора, показывающую текстовое содержание sip-разговора? Я считаю, что в звездочке это команда «отладка sip».

Ура, Алед.