Hi Jeremy,
Indeed, seems to be an incompatibility here...What I would suggest is a
bit of a trick, to manually handle the NATed contact in a dialog
variable...Haven;t tried it, just an idea.
On initial INVITE :
modparam("nathelper", "received_avp", "$avp(contact)")
...
topology_hiding();
if (nat_uac_test()) {
fix_nated_register(); # puts the fix contact into received avp
$dlg_val(caller_contact) = $avp(contact);
}
...
And for sequential requests:
...
loose_route();
...
if ( match_dialog() ) {
# sequential request from callee to caller?
if ($DLG_dir=="UPSTREAM") $ru = $dlg_val(caller_contact) ;
}
Again, not tested, not sure it will work, but just an idea :)
Regards,
Bogdan
On 09/13/2011 07:30 PM, Jeremy Childs wrote:
I'm having a problem with the dialog module's topology hiding when a
UA is behind a NAT.
If I call
if (nat_uac_test()) {
fix_nated_contact();
}
topology_hiding();
The Contact header is rewritten twice - once by fix_nated_contact()
and again by topology_hiding(). This results in an invalid contact header.
Is there an obvious way I'm missing that could make these two modules
coexist, or is the best solution to add NAT knowledge to
dlg_tophiding.c? This seems like a lot of code to duplicate.
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 19th of September 2011
OpenSIPS solutions and "know-how"
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users