Я использую 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».
Ура, Алед.