Am 11.02.2011 14:51, schrieb Spinov Evgeniy: >> Hello, > >> with the latest version there are alternatives you can use: > >>> On 12/10/09 5:06 PM, David wrote: >>> Hey, >>> >>> I won't pretend to be an expert in Kamailio, someone will probably >>> suggest a better way. But here is how I rewrote my SIP packet's TO >>> header before relaying it to the next hop : >>> >>> # Rewrite RURI >>> avp_printf("$rU", "prefix_$rU"); > >> $rU = "prefix_" + $rU; > >>> >>> # Remove existing header >>> remove_hf("To") ; >>> >>> # Add new header which is copied from RURI >>> insert_hf("To: $ru\r\n", "From"); > >> you can do in one step, so you avoid operations on r-uri: > >> insert_hf("To: sip:prefix_$rU@$rd\r\n", "From"); > >>> >>> >>> DISCLAIMER : Several threads have said that changing the TO header > is >>> a bad idea, so I only recommend using this as a last resort. > >> If devices are RFC3261 (SIP 2.0), then it is ok. If there are SIP 1.0 >> devices, then you have to preserve To/From header. > >> For the future, I would add options to change the From/To values via >> pseudo-variables. It is the admin to decide to use it or not -- now >> people need and do workarounds with subst or append_hf(). > >> Cheers, >> Daniel > > I use Kamailio 3.0.3, and tried to use both of methods, i.e. insert_ft() > and reassigning pseudo variable $rU and all mentioned in this topic. > However, handle_subscribe() and dlg_manage() somewhy uses unmodified > packet.
Yes, most functions do not see message manipulation as the manipulations are applied just before sending out the message again. So the changes are applied after the functions. Workaround 1: loop the message to Kamailio again Workaround 2: Since Kamailio 3.1 you can use msg_apply_changes(): http://www.kamailio.org/docs/modules/3.1.x/modules/textopsx.html#msg_apply_changes But note, this causes the message to be changed and reparsed, thus it may be a performance killer (double processing time for message parsing) klaus > > Is there any workaround to handle $rU or $tU overwrites that for > pua_dialoginfo module? > > I'm doing it like that: > > $var(orig_uri) = $rU; > $rU = $(fU{re.subst,/(.*)_(.*)/\1/}) + "_" + $rU; > if (is_method("INVITE")) { > dlg_manage(); > } > > > if (is_method("SUBSCRIBE")) { > handle_subscribe(); > } > > > $rU = $var(orig_uri); > > However, according to debug messages, NOTIFY's which are coming just > after INVITE are still without prefixes, but packets on Asterisk, which > is after Kamailio, are coming modified. > > Please, advice. > >> >> David >> >> >> >> >> >> David a écrit : >>> Hey, >>> >>> I do understand that normally the TO header should not be written, my >>> problem is that I am using the presence_dialoginfo module which uses > the >>> TO header and not the RURI, which means that in order to tell the >>> difference between customer A's extension 101 and Customer B's > extension >>> 101, I rewrite the TO header to add context. >>> >>> This is actually the ame problem that I started discussing here : >>> http://lists.kamailio.org/pipermail/users/2009-August/024316.html >>> >>> Trouble is I have not had time to work on this since then. >>> >>> Thanks, >>> >>> David >>> >>> Olle E. Johansson a écrit : >>>> 10 dec 2009 kl. 15.04 skrev Iñaki Baz Castillo: >>>> >>>> >>>>> El Jueves, 10 de Diciembre de 2009, David escribió: >>>>>> Hey, >>>>>> >>>>>> I need to rewrite the $tU variable on a packet before it is >>>>>> relayed. It >>>>>> is ok if the change is only on the relayed packet and the $tU >>>>>> variable >>>>>> change. The important thing is that I modify the To header, it > seems >>>>>> that rewritting $tU would be the easiest. >>>>> $tU is not writable, but just readable. >>>>> If you want to change the "To" header you should do some "dirty" >>>>> replacing operation (see textops module). >>>> >>>> This is propably something we need to change and make the To and >>>> From headers writable. >>>> It's not dirty to change them any more. >>>> >>>> David: In the original SIP 1.0 protocol the To/From headers was > part >>>> of the dialog identification, thus you where not allowed to change >>>> them in a proxy. THis was kept in RFC3261 - sip v2 - but has been >>>> removed in an additional RFC a short while ago (seen from SIP > history). >>>> >>>> Regards, >>>> /O >>>> _______________________________________________ >>>> Kamailio (OpenSER) - Users mailing list >>>> Users at lists.kamailio.org >>>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users >>>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users >>> >>> >>> >>> _______________________________________________ >>> Kamailio (OpenSER) - Users mailing list >>> Users at lists.kamailio.org >>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users >>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users >> >> >> _______________________________________________ >> Kamailio (OpenSER) - Users mailing list >> Users at lists.kamailio.org >> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users >> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users >> > _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users