Try to re-arm the branch route (t_on_branch(...)) in your failure_route. > On Dec 16, 2022, at 10:57 AM, Benoît Panizzon <benoit.paniz...@imp.ch> wrote: > > Hi List > > Some time ago, during my learning curve with kamailio, I learned that a > branch route is where you make modifications to callerId's. > > So I extensively re-engineered the config to move as much as possible > of callerid modification into branch routes. > > But now I discovered, when a call is dispatched via dispatch group with > multiple destinations and one destination fails, therefore the failure > route is triggered, the branch route is not being called on the second > attempt, thus callerid being in the wrong format. > > Example: > > dispatcher.lst > > As an example, consider having dispatcher group 2001 for national traffic > over two > dedicated links and Dispatcher group 2002 for international traffic. > > 2001 sip:192.168.1.1:5060 0 0 name="Carrier1" > 2001 sip:192.168.2.1:5060 0 0 name="Carrier1" > > 2002 sip:192.168.1.3:5060 0 0 name="Carrier2" > > request_route > { > # We determine where we want to send the call > # and choose dispatch group 2001, the 'national' one. > # But there are are other dispatch groups and branch triggers > # set this way and routed to DISPATCHCALL > $avp(dispgroup) = 2001; > t_on_branch("BR_TO_NATIONAL"); > route(DISPATCHCALL); > } > > route[DISPATCHCALL] > { > t_set_fr(120000,1500); # Fast Failover > t_set_max_lifetime(300000,0); > t_set_retr(200,800); > if (ds_select_dst("$avp(dispgroup)", "6")) { > if (ds_is_from_list(-1,0,"$du")) { > t_on_failure("DISPATCH_FAILURE"); > route(RELAY); > } > } > } > > branch_route[BR_TO_NATIONAL] > { > # Here I make sure, all CallerId and Header are correct for the > # national Carrier > } > > failure_route[DISPATCH_FAILURE] > { > if (t_check_status("(5[0-9][0-9])") or (t_branch_timeout() and > !t_branch_replied())) { > # Try next DS. > if (ds_next_dst()) { > xlog("L_INFO", " --> retargeting request\n"); > t_on_failure("DISPATCH_FAILURE"); > route(RELAY); #### RIGHT HERE! > exit; > } > } > # We fail > xlog("L_ERROR", "Call Failed\n"); > } > > My issue is not, that if the call is routed after the first path failed > (marked with #### RIGHT HERE!) then the appropriate branch route is not > triggered again and the headers are wrong. But I can not set t_on_branch > within route[DISPATCHCALL] or route[DISPATCH_FAILURE] because this is > called with a different pre-set branch trigger, depending on the target > dispatch group. > > Is there a way to make a branch trigger more persistent? > > -- > Mit freundlichen Grüssen > > -Benoît Panizzon- @ HomeOffice und normal erreichbar > -- > I m p r o W a r e A G - Leiter Commerce Kunden > ______________________________________________________ > > Zurlindenstrasse 29 Tel +41 61 826 93 00 > CH-4133 Pratteln Fax +41 61 826 93 01 > Schweiz Web http://www.imp.ch > ______________________________________________________ > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > To unsubscribe send an email to sr-users-le...@lists.kamailio.org > Important: keep the mailing list in the recipients, do not reply only to the > sender! > Edit mailing list options or unsubscribe:
-- Alex Balashov | Principal | Evariste Systems LLC Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/ __________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe send an email to sr-users-le...@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: