Finally I find a root of a problem with my T.38 reinvites.
A->(NAT)->Kami->PSTN
When NATted caller does reinvite, and remote side answers with 200 OK+SDP, Kami (why?) doesn't rewrite SDP for its own IP (so NATted caller can receive RTP) and leaves remote's IP as media address, so of course there is no RTP/UDPTL. All other NAT related stuff works fine. Even if remote side sends me T.38 reinvite first, everything works properly. Config file is default from Kami sources.
Any ideas?
Gotcha!
Maybe it will be useful for someone.
Problem was that SDPs in reinvite sequence have already "nortpproxy=yes" flag set (from initial INVITE transaction I think), and SDP rewriting just don't triggers when it should. One little line has solved this issue:
modparam("rtpproxy", "nortpproxy_str", "")
Pretty dumb solution, but for now it finally works. Sorry for annoying :)
14.08.2017 12:55, Yu Boot пишет:
Finally I find a root of a problem with my T.38 reinvites.
A->(NAT)->Kami->PSTN
When NATted caller does reinvite, and remote side answers with 200 OK+SDP, Kami (why?) doesn't rewrite SDP for its own IP (so NATted caller can receive RTP) and leaves remote's IP as media address, so of course there is no RTP/UDPTL. All other NAT related stuff works fine. Even if remote side sends me T.38 reinvite first, everything works properly. Config file is default from Kami sources.
Hi,
On Mon, Aug 14, 2017 at 9:50 PM, Yu Boot yu@yu-boot.ru wrote:
Problem was that SDPs in reinvite sequence have already "nortpproxy=yes" flag set (from initial INVITE transaction I think), and SDP rewriting just don't triggers when it should.
Oh, I've seen that before. User Agents adding received custom SDP fields in their own response. Can be confusing.
One little line has solved this issue: modparam("rtpproxy", "nortpproxy_str", "") Pretty dumb solution, but for now it finally works. Sorry for annoying :)
There's actually a flag for it in the rtpproxy_offer call.
From http://www.kamailio.net/docs/modules/5.0.x/modules/rtpproxy.html#rtpproxy.f....
f - instructs rtpproxy to ignore marks inserted by another rtpproxy in transit to indicate that the session is already goes through another proxy. Allows creating a chain of proxies.
Best Regards, Sebastian