Hi Bodan, I think that the serial fork have some problem.
On the DB I modified the q value of two user User1, qvalue=0.1 User2, qvalue=0.2 I insert in the script the following line of code: [email protected] Lookup("location"); Append_branch(); [email protected] Lookup("location"); Serialize_branches(); T_relay(); The result was: Mar 2 17:36:53 [26014] DBG:core:serialize_branches: loaded <sip:[email protected]:6685;rinstance=0f314641b36adb7d>, q=-1 q_flag <0> Mar 2 17:36:53 [26014] DBG:core:serialize_branches: loaded <sip:[email protected]:54218;rinstance=e70bfc2dadad8857>, q=100 q_flag <16> The call are correctly serialized but if I add three destinations the result was: Mar 2 17:42:04 [26014] DBG:core:serialize_branches: loaded <sip:[email protected]:6685;rinstance=0f314641b36adb7d>, q=-1 q_flag <0> Mar 2 17:42:04 [26014] DBG:core:serialize_branches: loaded <sip:[email protected]:54218;rinstance=e70bfc2dadad8857>, q=-1 q_flag <0> Mar 2 17:42:04 [26014] DBG:core:serialize_branches: loaded <sip:[email protected]:54218;rinstance=e70bfc2dadad8857>, q=100 q_flag <16> The qvalue aren't inserted correctly... Is it a bug? Thanks in advance MD -----Messaggio originale----- Da: [email protected] [mailto:[email protected]] Per conto di Bogdan-Andrei Iancu Inviato: giovedì 26 febbraio 2009 19:08 A: Mauro Davi' Cc: [email protected] Oggetto: Re: [OpenSIPS-Users] R: R: serialize_branches() and q value.... Hi Mauro, you have to ways to go: 1) use the @domain.com URIs and relay them back to your proxy in order to do lookup 2) try to do lookup directly in the first step - the logic you tried. But to work replace the append_branch("$ru","0.1"); with append_branch(); this will take the RURI and add it as a branch, so you can override it with the next user2 URI. Regards, Bogdan Mauro Davi' wrote: > Hi Bogdan, > > I have a little problem... > > In this way I can serialize a set of know called party (i.e. with the sip > address in the form sip:usern...@ipaddress:port)... > > But I cannot add, for example the following branch: > > Append_branch("sip:[email protected]","0.1") > Append_branch("sip:[email protected]","0.2") > Append_branch("sip:[email protected]","0.3") > > Because the result is a misrouted call (i.e. the requested sip uri isn't > reacheable...). > > So I thought to add a RURI after invoked the lookup function... > > Somethink like this: > > $ru="sip:[email protected]"; > lookup("location"); > #Now $ru contain the resolved URI of user1 > append_branch("$ru","0.1"); > $ru="sip:[email protected]"; > lookup("location"); > #Now $ru contain the resolved URI of user2 > append_branch("$ru","0.2"); > $ru="sip:[email protected]"; > lookup("location"); > #Now $ru contain the resolved URI of user3 > append_branch("$ru","0.3"); > > But I didn't had the expected result... I cannot use pseudo-variable in the > append_branch function... > > Could you tell me how I can solve this problem? There is a work-around? Or is > there a correct way to call a group of user associated to a SIP URI via > serial forking? > > Thank in andvance > MD > > -----Messaggio originale----- > Da: Bogdan-Andrei Iancu [mailto:[email protected]] > Inviato: mercoledì 25 febbraio 2009 15:14 > A: Mauro Davi' > Cc: [email protected] > Oggetto: Re: R: [OpenSIPS-Users] serialize_branches() and q value.... > > Hi Mauro, > > (sorry for mistyping your name in the first place) > > the correct way to inject a q value via the append_branch is: > Append_branch("sip:[email protected]", 10 ); > > Regards, > Bogdan > > > Mauro Davi' wrote: > >> Hi Bogdan, >> >> Thanks for the reply. But I have only one question... >> >> Is it possible to set the branches qvalue from a script code? >> >> I try samething like: >> >> Append_branch(); >> $ru="sip:[email protected];q=0.1" >> >> Or: >> >> Append_branch("sip:[email protected];q=0.1"); >> >> But the log result is ever: >> >> "DBG:core:serialize_branches: nothing to do - all same q!" >> >> Coould you help me, please? >> >> Thanks a lot >> MD >> >> >> -----Messaggio originale----- >> Da: Bogdan-Andrei Iancu [mailto:[email protected]] >> Inviato: mercoledì 25 febbraio 2009 14:54 >> A: Mauro Davi' >> Cc: [email protected] >> Oggetto: Re: [OpenSIPS-Users] serialize_branches() and q value.... >> >> Hi Marco, >> >> before getting into your script, just some important notice about SIP, >> forking and q value... >> >> According to RFC 3261 (and how the serialize_branches() works), when you >> have a set of destinations with different q values, the forking must >> work like this: >> >> 1) order the entire set based on the q value >> 2) select all dsts that have as q value the min q val from the set (of >> course all of the selected dsts will have the q) >> 3) do parallel forking with the selected dsts >> 4) if still failed, remove the used dsts and go back to step 2 (serial >> forking). >> >> >> So, this is actually a combination of serial and parallel forking - the >> dsts with different q will be serial forked, but dsts with the same q >> will be parallel forked. >> >> Regards, >> Bogdan >> >> Mauro Davi' wrote: >> >> >>> Hi All, >>> >>> I saw the documentation but it is to much difficult for me J (really I >>> think that the folloeing information is missed...), so I have a question. >>> >>> The below script code add two new destination to my voip platform, >>> [email protected] and [email protected] <mailto:[email protected]>. >>> >>> The first one works great, but the second one have the same behaviour >>> of the first one... >>> >>> The question is: How I can specify the q value of every branches? >>> >>> Thanks in advance. >>> >>> MD >>> >>> if(uri=~"^sip:parallel@" || uri=~"^sip:serial@" ) >>> >>> { >>> >>> xlog("L_INFO","Check passed!!!\n"); >>> >>> $var(i)=0; >>> >>> while ($var(i) < 2) >>> >>> { >>> >>> xlog("L_INFO","Cycle Enter $var(i), RURI:$ru\n"); >>> >>> if ($var(i) == 0) >>> >>> { >>> >>> $ru="sip:[email protected]"; >>> >>> } >>> >>> else >>> >>> { >>> >>> append_branch(); >>> >>> $ru="sip:[email protected]"; >>> >>> } >>> >>> alias_db_lookup("dbaliases"); >>> >>> if (is_uri_host_local()) >>> >>> { >>> >>> # -- Inbound to inbound >>> >>> if(uri=~"^sip:[0-9]+@") >>> >>> { >>> >>> # only route numeric users to PSTN >>> >>> t_on_failure("2"); >>> >>> route(5); >>> >>> } >>> >>> route(6); >>> >>> } >>> >>> else >>> >>> { >>> >>> # -- Inbound to outbound >>> >>> # Here we must check the to domain to verify if >>> >>> # we can send the request to a corporate SBC >>> >>> sl_send_reply("403", "Forbidden"); >>> >>> exit; >>> >>> } >>> >>> $var(i) = $var(i) + 1; >>> >>> xlog("L_INFO","Cycle Leave $var(i), RURI:$ru"); >>> >>> } >>> >>> if (uri=~"^sip:serial@") >>> >>> { >>> >>> setbflag(10); >>> >>> serialize_branches(1); >>> >>> } >>> >>> route(3); >>> >>> exit; >>> >>> } >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >>> >> >> > > > _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
