bilbo Posted August 13, 2017 Posted August 13, 2017 (edited) Колупаюсь с дефолтным конфигом Kamailio. Всё заявленное работает, но столкнулся с противной проблемой. A -> (NAT) -> Kamailio -> B А звонит B. Всё работает, звук есть, nat traversal и rtp-proxy отрабатывают корректно. При звонке в обратную сторону тоже всё ОК, но не суть. Далее, A в той же сессии кидает реинвайт, на T.38 допустим. Реинвайт уходит к B как надо, а вот когда B отвечает 200 OK с SDP, Kamailio отдаёт A в SDP айпишник железки B, а не подменяет его на собственный IP, как по идее должен делать. A и B друг друга впрямую не видят разумеется, да и хочется чтобы трафик всегда шёл через Kamailio. Где копать? Plz хоть в роут конкретный ткните или в функцию какую. Особо буду благодарен если кто на это напарывался и поборол. Конфиг дефолтный: # Caller NAT detection route[NATDETECT] { #!ifdef WITH_NAT force_rport(); if (nat_uac_test("51")) { if (is_method("REGISTER")) { fix_nated_register(); } else { if(is_first_hop()) set_contact_alias(); } setflag(FLT_NATS); } #!endif return; } # RTPProxy control and singaling updates for NAT traversal route[NATMANAGE] { #!ifdef WITH_NAT if (is_request()) { if(has_totag()) { if(check_route_param("nat=yes")) { setbflag(FLB_NATB); } } } if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return; rtpproxy_manage("co"); if (is_request()) { if (!has_totag()) { if(t_is_branch_route()) { add_rr_param(";nat=yes"); } } } if (is_reply()) { if(isbflagset(FLB_NATB)) { if(is_first_hop()) set_contact_alias(); } } #!endif return; } Edited August 13, 2017 by bilbo Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.