[Users] fix_nated_contact not rewriting contact?
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Tue Sep 26 12:12:15 CEST 2006
Hi Cameron,
that's a side effect of how openser deals with changes on the sip
messages. instead of keep re-generating the message buffer after each
change, openser keeps the original received buffer and the changes are
stored as lumps - they will be applied only when the message is to be
sent out.
all parsing functions (including ones used by pseudo-variables) use the
original buffer, so the changes are not visible.
regards,
bogdan
kjcsb wrote:
> I have the following code in openser.cfg
>
> if (client_nat_test("3")) {
> #IP address in contact is private IP
> #Via is different to address client has contacted us from
> #If so then setflag7 to indicate that sender is behind NAT
> xlog("client nat test 3 returned true for r-uri <$ru> in
> route 3 so will setflag7");
> setflag(7);
> xlog("contact before update <$ct>");
> xlog("via before update <$hdr(via)>");
> force_rport();
> #Rewrite Contact: header to contain Sip client's public
> IP:port
> fix_nated_contact();
> xlog("contact is now <$ct>");
> xlog("via is now <$hdr(via)>");
> };
>
> However the value returned by $ct is the same before and after
> fix_nated_contact(). Is that because I'm doing something wrong, or
> because
> I've misunderstood fix_nated_contact or because the $ct variable
> doesn't get
> updated by fix_nated_contact? If the latter, how can I find out the
> result
> of fix_nated_contact? The same applies to force_rport and the via
> details.
>
> Any advice appreciated.
>
> Regards
>
> Cameron
>
>
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>
More information about the sr-users
mailing list