Столкнулся с плавающей проблемой - не прохождение звонков (как внутрянка, так и наружка). Симптоматика такая:
1. в fs_cli видно что регистрация внутренних номеров проходит. Шлюзы (gateway) зарегистрированы. IP корректные.
2. При попытке набрать исходящий (внешний) номер видно что маршрут определяется верно.
3. в SDP IPшники для внутреннего клиента - внутренний (10.100.2.2), для внешнего - внешний IP.
4. У внутреннего клиента (тестирую на microsip и phoner на 2 компах разных) слышен 1 ringback который прописан в диалплане и звук обрывается. Иногда не проходит даже 1 гудок ringbackа (длительность явно короче). Далее в ходе дозвона (ringin) гудков нет вообще.
5. При этом вызов проходит до пункта назначения (на свой мобильник звоню - 2 разных номера у разных операторов). В ходе этого вызова не могу сбросить вызов с вызывающей стороны (видимо MicroSIP/phoner посылает команду АТС, но Freeswitch не отвечает корректно).
6. Подняв трубку мобильника - нет звука в обе стороны.
7. На мобильнике - сбрасываю, а софтфон так и висит - пока не завершишь процесс Windows (видимо он статус переводит по ответу АТС).
Сначала думал проблема с доступом к VoIP провайдеру, но такая-же проблема появилась и во внутренних звонках, где нет ни NAT ни каких Firewallов и прочего.
У phoner есть debug лог, который показал отбой с вызывающей стороны следующим образом:
-------------------------------------------
10:26:10,725: T: 10.100.2.2:5060 (UDP)
CANCEL sip:7987*******@sip.******.ru SIP/2.0
Via: SIP/2.0/UDP 192.168.6.165:5060;branch=z9hG4bK808d8d44c25be711b85c073bde28244a;rport
From: "Excl" <sip:1002@sip.******.ru>;tag=3383824730
To: <sip:7987*******@sip.******.ru>
Call-ID:
808D8D44-C25B-E711-B859-073BDE28244A@192.168.6.165CSeq: 9 CANCEL
Proxy-Authorization: Digest username="1002", realm="sip.******.ru", nonce="98f0fdf6-5d54-11e7-ac82-bffce44cf2cf", uri="sip:7987*******@sip.******.ru", response="80eda74c7454019234fe2ab6dbf935b4", algorithm=MD5, cnonce="00051c4bc25be711b85c073bde28244a", qop=auth, nc=00000002
Allow: INVITE, ACK, BYE, CANCEL, INFO, MESSAGE, NOTIFY, OPTIONS, REFER, UPDATE, PRACK
Max-Forwards: 70
User-Agent: SIPPER for phoner
Content-Length: 0
-------------------------------------------
10:26:10,766: R: 10.100.2.2:5060 (UDP)
SIP/2.0 481 Call/Transaction Does Not Exist
Via: SIP/2.0/UDP 192.168.6.165:5060;branch=z9hG4bK808d8d44c25be711b85c073bde28244a;rport=5060
From: "Excl" <sip:1002@sip.******.ru>;tag=3383824730
To: <sip:7987*******@sip.******.ru>;tag=FvZtZU9ZUQ5Dm
Call-ID:
808D8D44-C25B-E711-B859-073BDE28244A@192.168.6.165CSeq: 9 CANCEL
Content-Length: 0
-------------------------------------------
10:26:10,830: R: close UDP port (RTP): 5062
-------------------------------------------
10:26:10,830: R: close UDP port (RTCP): 5063
т.е. АТС говорит: "Вызов не найден".
Иногда звонки проходят (и гудки и звук в обе стороны после приема и отбой корректно). Почему - непонятно, т.к. ребут АТС и софтфонов вместе и по отдельности ничего не меняют. Похоже, что "нужно постоять" - потом начинают проходить звонки: кто только внутрянка, то внутрянка и внешка, кто пару раз внешка проходит - потом нет...
Почему freeswitch теряет вызов, при этом обе стороны об этом не знают и fs_cli в включенным debug режимом не показывает никакие проблемы?
Какие направления необходимо проверить? Что может влиять на подобное поведение?