<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML - förformaterad Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New",serif;
        color:black;}
tt
        {mso-style-priority:99;
        font-family:"Courier New",serif;}
span.HTML-frformateradChar
        {mso-style-name:"HTML - förformaterad Char";
        mso-style-priority:99;
        mso-style-link:"HTML - förformaterad";
        font-family:Consolas;
        color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.E-postmall21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.E-postmall22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.E-postmall23
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=SV link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='color:windowtext'>Hi , thanks Bogdan this sorted it out and call forking works as a charm </span><span lang=EN-US style='font-family:Wingdings;color:windowtext'>J</span><span lang=EN-US style='color:windowtext'>.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>The only problem issue I have seen is that sometimes a single registration triggers multiple events below is a log snippet for such an case ( a bit anonymized)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>2018-01-31T09:51:56.296843+00:00 info sip-qa-1 cF6apbQMV66SfiQ2phordLXqQQvJIRxj|Route0|REGISTER|Save location|true|userA@domain.com]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>2018-01-31T09:51:56.297101+00:00 info sip-qa-1 INSERT_CALL: user userA@domain.com registered the a new contact sip:userA@212.116.71.162:50734;transport=TLS;ob, injecting it in transaction<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>2018-01-31T09:51:56.297470+00:00 info sip-qa-1 INSERT_CALL: user userA@domain.com registered the a new contact sip:userA@212.116.71.162:50734;transport=TLS;ob, injecting it in transaction<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>2018-01-31T09:51:56.297803+00:00 info sip-qa-1 INSERT_CALL: user userA@domain.com registered the a new contact sip:userA@212.116.71.162:50734;transport=TLS;ob, injecting it in transaction<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>One could of course check if this contact IP/port have already been injected into the call, but I just wondered if this is anything you have seen before.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>BR/Olle<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'>Från:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'> Bogdan-Andrei Iancu [mailto:bogdan@opensips.org] <br><b>Skickat:</b> den 26 januari 2018 15:53<br><b>Till:</b> Olle Frimanson <olle@zaark.com>; 'OpenSIPS users mailling list' <users@lists.opensips.org><br><b>Ämne:</b> Re: SV: [OpenSIPS-Users] Problem with event based routing<o:p></o:p></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><tt><span lang=EN-US style='font-size:10.0pt'>Hi,</span></tt><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New",serif'><br><br><tt>It is illegal to do signalling (like t_relay()) in branch route. Simply remove the whole branch route stuff from your script as you do not need it.</tt><br><br><tt>Regards,</tt><br><br></span><span lang=EN-US style='mso-fareast-language:SV'><o:p></o:p></span></p><pre><span lang=EN-US>Bogdan-Andrei Iancu<o:p></o:p></span></pre><pre><span lang=EN-US><o:p> </o:p></span></pre><pre><span lang=EN-US>OpenSIPS Founder and Developer<o:p></o:p></span></pre><pre><span lang=EN-US>  </span><a href="http://www.opensips-solutions.com"><span lang=EN-US>http://www.opensips-solutions.com</span></a><span lang=EN-US><o:p></o:p></span></pre><pre><span lang=EN-US>OpenSIPS Summit 2018<o:p></o:p></span></pre><pre><span lang=EN-US>  </span><a href="http://www.opensips.org/events/Summit-2018Amsterdam"><span lang=EN-US>http://www.opensips.org/events/Summit-2018Amsterdam</span></a><span lang=EN-US><o:p></o:p></span></pre><div><p class=MsoNormal><span lang=EN-US>On 01/25/2018 12:31 PM, Olle Frimanson wrote:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='color:windowtext'>Hi I call a relay route from the branch route, so it’s basically</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>Route {              </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    ….</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    t_wait_for_new_branches();</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    $avp(filter)= "aor="+ $avp(to_user_uri);</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    notify_on_event("E_UL_CONTACT_INSERT","$avp(filter)", "INSERT_CALL", "40");</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    t_on_branch(“1”)</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    If ( lookup(“location”)</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>        route(relay)</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>}</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>route[RELAY] {</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    if (is_method("INVITE")) {</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>        t_on_reply("1");</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>        t_on_failure("3");</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>        if (!t_relay()) {</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>            ….</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>        }</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    }</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>}</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>route[INSERT_CALL] {</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    t_inject_branches("event","cancel");</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>}</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>branch_route[1]         {</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    route(RELAY);</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>    exit;</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>}</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>BR / Olle</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'>PS I send another mail on the same subject since I missed your reply pls ignore that.</span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:windowtext'> </span><span lang=EN-US><o:p></o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'>Från:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'> Bogdan-Andrei Iancu [</span><a href="mailto:bogdan@opensips.org"><span lang=EN-US style='mso-fareast-language:SV'>mailto:bogdan@opensips.org</span></a><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'>] <br><b>Skickat:</b> den 24 januari 2018 17:42<br><b>Till:</b> OpenSIPS users mailling list </span><a href="mailto:users@lists.opensips.org"><span lang=EN-US style='mso-fareast-language:SV'><users@lists.opensips.org></span></a><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'>; Olle Frimanson </span><a href="mailto:olle@zaark.com"><span lang=EN-US style='mso-fareast-language:SV'><olle@zaark.com></span></a><span lang=EN-US style='color:windowtext;mso-fareast-language:SV'><br><b>Ämne:</b> Re: [OpenSIPS-Users] Problem with event based routing</span><span lang=EN-US><o:p></o:p></span></p></div></div><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><tt><span lang=EN-US style='font-size:10.0pt'>Hi Olle,</span></tt><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New",serif'><br><br><tt>Do you call t_relay() from a BRANCH_ROUTE ?? IF so, this is not legal as the branch route is only an inspection and modification route, not a signaling route.</tt><br><br><tt>Regards,</tt><br><br><br></span><span lang=EN-US><o:p></o:p></span></p><pre><span lang=EN-US>Bogdan-Andrei Iancu<o:p></o:p></span></pre><pre><span lang=EN-US> <o:p></o:p></span></pre><pre><span lang=EN-US>OpenSIPS Founder and Developer<o:p></o:p></span></pre><pre><span lang=EN-US>  </span><a href="http://www.opensips-solutions.com"><span lang=EN-US>http://www.opensips-solutions.com</span></a><span lang=EN-US><o:p></o:p></span></pre><pre><span lang=EN-US>OpenSIPS Summit 2018<o:p></o:p></span></pre><pre><span lang=EN-US>  </span><a href="http://www.opensips.org/events/Summit-2018Amsterdam"><span lang=EN-US>http://www.opensips.org/events/Summit-2018Amsterdam</span></a><span lang=EN-US><o:p></o:p></span></pre><div><p class=MsoNormal><span lang=EN-US>On 01/24/2018 11:33 AM, Olle Frimanson wrote:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US>Hi,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>We are looking into changing our logic for push notification to the new event based routing that is available in opensips 2.3.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>In live scenarios everything is working fine but when I relay the call after injecting it into the branch I get the following error:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>CRITICAL:tm:w_t_relay: unsupported route type: 8<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>It would be great if you could share the configuration file that is used in the example mention in the blog post.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>BR/Olle<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:SV'><br><br><br><br></span><span lang=EN-US><o:p></o:p></span></p><pre><span lang=EN-US>_______________________________________________<o:p></o:p></span></pre><pre><span lang=EN-US>Users mailing list<o:p></o:p></span></pre><pre><a href="mailto:Users@lists.opensips.org"><span lang=EN-US>Users@lists.opensips.org</span></a><span lang=EN-US><o:p></o:p></span></pre><pre><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users"><span lang=EN-US>http://lists.opensips.org/cgi-bin/mailman/listinfo/users</span></a><span lang=EN-US><o:p></o:p></span></pre></blockquote><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:SV'> </span><span lang=EN-US><o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:SV'><o:p> </o:p></span></p></div></body></html>