[sr-dev] Append branches in module

Charles Chance charles.chance at sipcentric.com
Thu Feb 5 12:31:40 CET 2015


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" <miconda at gmail.com> 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" <miconda at gmail.com>
> 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 listsr-dev at lists.sip-router.orghttp://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
>> sr-dev at lists.sip-router.org
>> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20150205/658403fe/attachment.html>


More information about the sr-dev mailing list