2010/3/9 Pascal Maugeri <[email protected]>: > Hi > We need to force some NOTIFY messages going through our kamailio instance > over UDP to be sent over TCP. > For that purpose we inserted the following relaying rule at the beginning of > the routing script: > route{ > > if (!mf_process_maxfwd_header("10")) { > sl_send_reply("483","Too Many Hops"); > exit; > } > > if(msg:len>1300 && is_method("NOTIFY") && proto==UDP) > { > $du = "sip:" + $(ruri{uri.host}) + ":" + $(ruri{uri.port}) + > ";transport=tcp"; > t_relay(); > exit; > } > > > > [...] > > This works well if the destination of the NOTIFY message is not behind NAT. > We're looking for a solution for the NAT case. We did some tests using > lookup("location") before changing $du but we did not get any success. > Do you have any idea on how to implement this relaying properly ?
Does such NOTIFY go to a TCP registered user? Of course if there is not an existing TCP connection between Kamailio and the final natted user then it's not possible to send such NOTIFY. > Is it acceptable to change the $du and then execute the t_relay as we did ? Yes. -- Iñaki Baz Castillo <[email protected]> _______________________________________________ Kamailio (OpenSER) - Users mailing list [email protected] http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
