Rafael J. Risco G.V. wrote:
Hi does anyone has a working example for this escenario?
I am working on this same situation.
I can make it work if I define a specific URI length/prefix to always be treated as 'local' - meaning we don't want to 'fix' the SDP for say all 3 digit 'extensions'
I call resetflag(6) (i am using 6 for my NAT detection flag) for those URIs i don't want to use the mediaproxy (i use mediaproxy)
This situation will only work if there is a SINGLE layer of NAT at the 'customer' premise. If there is more than one NAT behind the same public IP this may (will not) work.
In my route block I do
...
if (uri =~ "^sip:[0-9]{3}@.*") { resetflag(6); resetflag(7); }
...
lookup('location');
...
# If NAT is previously detected, proxy if (isflagset(6) || isflagset(7)) { use_media_proxy(); }; route(1);
} // End route
Then:
onreply_route[1] { if ((isflagset(6) || isflagset(7)) && (status=~"(180)|(183)|2[0-9][0-9]")) { if (!search("^Content-Length:\ +0")) { use_media_proxy(); }; }; if (client_nat_test("1")) { fix_nated_contact(); }; }
Jeremy McNamara