Hi, for now, the "normal" way to detect if an in-dialog request/response beyonds to a natted dialog is by adding a uri parameter ("nat=yes") in the "Contact" header of the first request and response and macthing that parameter in the RURI of subsequent in-dialog requests.
Typically this is done in this way: search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes'); Well, this mechanims (that is part of official OpenSer courses) is very RCF3261 non compliant: 1) In SIP a header field name is case insensitive but the above function wouldn't match a "CONTACT" of "contact" header names (even if they are 100% valid). 2) "Contact" header can appear abbreviated as "m" (or "M") but the above doesn't match it. 3) 1.1.1. Known Limitations search ignores folded lines. For example, search("(From|f):[EMAIL PROTECTED]") doesn't match the following From header field: From: medabeda <sip:[EMAIL PROTECTED]>;tag=1234 A solution for points 1 and 2 could be using "subst" with insensitive flag enabled, but it could be very anti-friendly. So I wonder: wouldn't be useful a good funtion to add/read/remove header and uri parameters (in any header or uri) being RFC 3261 compliant (this is: case insensitive and allowing header name abbreviations)? -- Iñaki Baz Castillo _______________________________________________ Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users