Hi, No, the original r-uri is untouched. We loop over each node, adding a branch then calling t_replicate() from the tm API, passing the destination uri as a parameter.
We have to add a branch for each replication node, otherwise tm complains there are none available. The API method t_replicate() maps to t_replicate_uri(), which eventually calls t_relay_to(), setting the replicate/local_trans bit so that replies are ignored. Cheers, Charles On 5 Feb 2015 10:54, "Daniel-Constantin Mierla" <[email protected]> wrote: > Hello, > > so how is the full code for this case, first you change the r-uri and then > call append_branch()? > > Cheers, > Daniel > > On 05/02/15 11:46, Charles Chance wrote: > > Hi Daniel, > > I believe this is expected, since we are simply replicating the original > message to other (multiple, hence the additional branches) nodes so they > have a copy. Should we in fact change the r-uri in this case? I'm not sure. > It all seems to test ok. > > All the best, > > Charles > On 5 Feb 2015 09:41, "Daniel-Constantin Mierla" <[email protected]> > wrote: > >> Hello, >> >> haven't looked at the whole function, but what you are using now is >> adding the r-uri as a branch. Do you want that? At the end it might be that >> the r-ruri and the last branch have the same address. >> >> You can look inside registrar module at lookup() function to see how >> first location record is added as r-uri and the rest as branches. >> >> Cheers, >> Daniel >> >> On 04/02/15 13:29, Charles Chance wrote: >> >> Hi All, >> >> Can anyone confirm, is this safe? Primary use case is replication of >> REGISTER after local save(). >> >> >> diff --git a/modules/dmq/dmq_funcs.c b/modules/dmq/dmq_funcs.c >> index b31deba..a3611e8 100644 >> --- a/modules/dmq/dmq_funcs.c >> +++ b/modules/dmq/dmq_funcs.c >> @@ -24,6 +24,7 @@ >> >> #include "dmq_funcs.h" >> #include "notification_peer.h" >> +#include "../../dset.h" >> >> /** >> * @brief register a DMQ peer >> @@ -385,6 +386,7 @@ int cfg_dmq_t_replicate(struct sip_msg* msg, char* s) >> dmq_node_t* node; >> struct socket_info* sock; >> int i = 0; >> + int first = 1; >> >> /* avoid loops - do not replicate if message has come from >> another node >> * (override if optional parameter is set) >> @@ -413,10 +415,22 @@ int cfg_dmq_t_replicate(struct sip_msg* msg, char* >> s) >> node = node->next; >> continue; >> } >> + >> + if (!first) { >> + if (append_branch(msg, 0, 0, 0, Q_UNSPECIFIED, 0, >> sock, 0, 0, 0, 0) == -1) { >> + LM_ERR("failed to append a branch\n"); >> + node = node->next; >> + continue; >> + } >> + } else { >> + first = 0; >> + } >> + >> if(tmb.t_replicate(msg, &node->orig_uri) < 0) { >> LM_ERR("error calling t_replicate\n"); >> goto error; >> } >> + >> node = node->next; >> } >> lock_release(&node_list->lock); >> >> >> Many thanks, >> >> Charles >> >> >> www.sipcentric.com >> >> Follow us on twitter @sipcentric <http://twitter.com/sipcentric> >> >> Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered >> office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, >> Birmingham Science Park, Birmingham B7 4BB. >> >> _______________________________________________ >> sr-dev mailing >> [email protected]http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >> >> >> -- >> Daniel-Constantin Mierlahttp://twitter.com/#!/miconda - >> http://www.linkedin.com/in/miconda >> Kamailio World Conference, May 27-29, 2015 >> Berlin, Germany - http://www.kamailioworld.com >> >> >> _______________________________________________ >> sr-dev mailing list >> [email protected] >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >> >> > www.sipcentric.com > > Follow us on twitter @sipcentric <http://twitter.com/sipcentric> > > Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered > office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, > Birmingham Science Park, Birmingham B7 4BB. > > > -- > Daniel-Constantin Mierlahttp://twitter.com/#!/miconda - > http://www.linkedin.com/in/miconda > Kamailio World Conference, May 27-29, 2015 > Berlin, Germany - http://www.kamailioworld.com > > -- www.sipcentric.com Follow us on twitter @sipcentric <http://twitter.com/sipcentric> Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, Birmingham Science Park, Birmingham B7 4BB.
_______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
