Hello,
I'm working on a residential type application where we are using Kamailio for NAT
traversal and Freeswitch as a voicemail and media server. When a UA that is behind NAT
sends an INVITE to check voicemail everything works correctly until the user listens to
the message. The sdp in the initial INVITE is rewritten and rtp proxy is working but
Freeswitch (on a public IP) then sends an UPDATE to display the caller name of the person
who left the message. The problem is that the UAC (in this case a Polycom phone) then
responds with its private IP in the SDP. Is there a was to handle these UPDATEs? I'm
using Kamailio 3.2.3 with a fairly stock config. This is an excerpt of the config file
with the NAT handling route:
# RTPProxy control
route[NATMANAGE] {
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();
if (is_request()) {
if (!has_totag()) {
add_rr_param(";nat=yes");
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
fix_nated_contact();
}
}
return;
}
Thanks,
Spencer