<div dir="ltr"><div><br></div><div style>Thank you Daniel and Morten for your assistance and prompt reply.</div><div style><br></div><div style>To use the tobody transformation, i see that i would need to upgrade to 4.1 right? Im currently on 3.3.</div>
<div style>I tried the below code:</div><div style><br></div><div style><div><br></div><div>                        $var(i)=0;</div><div>                        while($(hdr(Diversion)[$var(i)]) != $null ) {</div><div><br>
</div><div>                                 $avp(s:divhdr) = $(hdr(Diversion)[$var(i)]);</div><div>                                 avp_subst(&quot;$avp(s:divhdr)&quot;, &quot;/.*sip:(.*)(@.*)/\1/&quot;);</div><div>                                 xlog(&quot;L_WARN&quot;, &quot;$avp(s:divhdr)&quot;);</div>
<div>                                 if (!is_user_in(&quot;$avp(s:divhdr)&quot;, &quot;7&quot;)) {</div><div>                                 sl_send_reply(&quot;403&quot;, &quot;NOT ALLOWED&quot;);</div><div>                                 exit;</div>
<div>                                  };</div><div><br></div><div>                                 $var(i) = $var(i) +1;</div><div>                         }</div><div><br></div><div><br></div><div style>However, it seems like group module cant parse the output 313 as seen below:</div>
<div style><br></div><div style><div><br></div><div>Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: WARNING: &lt;script&gt;: 313</div><div>Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: ERROR: group [group.c:114]: failed to parse URI &lt;313&gt;</div>
<div>Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: ERROR: group [group.c:158]: failed to get username@domain</div><div><br></div><div><br></div><div style>A bigger issue is that a certain client is sending more than one diversion header with different format as seen below:</div>
<div style><br></div><div style><div><br></div><div>Diversion: &lt;tel:22030009&gt;;reason=no-answer;screen=no;privacy=off</div><div>Diversion: &quot;Solonas A&quot; &lt;<a href="mailto:sip%3A16@10.10.10.22">sip:16@10.10.10.22</a>&gt;;reason=unconditional</div>
<div><br></div><div><br></div><div style>So in this case i cant really know how to extract the diversion number using a static substitution. Is there a way to adapt to different formats to extract the diversion number? </div>
<div style><br></div><div style>Thanking you in advance</div><div style>Phillip</div></div></div></div><div><br></div><div><br></div><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Date: Tue, 09 Apr 2013 16:43:56 +0200</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">From: Daniel-Constantin Mierla &lt;</span><a href="mailto:miconda@gmail.com" style="font-family:arial,sans-serif;font-size:13px">miconda@gmail.com</a><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">Subject: Re: [SR-Users] Diversion header authentication</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">To: &quot;Kamailio (SER) - Users Mailing List&quot;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">        &lt;</span><a href="mailto:sr-users@lists.sip-router.org" style="font-family:arial,sans-serif;font-size:13px"><span class="" style="background-color:rgb(255,255,204);color:rgb(34,34,34)">sr-users@lists.sip-router.org</span></a><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">Message-ID: &lt;</span><a href="mailto:5164292C.4080408@gmail.com" style="font-family:arial,sans-serif;font-size:13px">5164292C.4080408@gmail.com</a><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">Content-Type: text/plain; charset=&quot;iso-8859-1&quot;; Format=&quot;flowed&quot;</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">Hello,</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">just adding that the tobody transformation could be handy to extract the</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">user or uri part of a Diversion header, not to fight with subst expressions:</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">-</span><br style="font-family:arial,sans-serif;font-size:13px"><a href="http://www.kamailio.org/wiki/cookbooks/devel/transformations#to-body_transformations" target="_blank" style="font-family:arial,sans-serif;font-size:13px">http://www.kamailio.org/wiki/cookbooks/devel/transformations#to-body_transformations</a><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Cheers,</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Daniel</span><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">On 4/9/13 3:16 PM, Morten Isaksen wrote:</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; Hi,</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; I have not tested this, but try:</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; $avp(s:divhdr) = $(hdr(Diversion)[$var(i)]);</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt; avp_subst(&quot;$avp(s:divhdr)&quot;, &quot;/.*sip:\+45(.*)(@.*)/\1/&quot;); # Extract</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; number between +45 and @</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; if (is_user_in(&quot;$avp(s:divhdr)&quot;, &quot;1&quot;) { ... }</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; Please note that there can be more than one Diverseion header. In that</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt; case you can use:</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;                         $var(i)=0;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;                         while($(hdr(Diversion)[$var(i)</span><span style="font-family:arial,sans-serif;font-size:13px">]) != $null ) {</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;                                 $avp(s:divhdr) =</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; $(hdr(Diversion)[$var(i)]);</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;                                 xlog(&quot;L_WARN&quot;, &quot;$avp(s:divhdr)&quot;);</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;                                 $var(i) = $var(i) +1;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;                         }</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">&gt; /Morten</span><br></div>