<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("$avp(s:divhdr)", "/.*sip:(.*)(@.*)/\1/");</div><div> xlog("L_WARN", "$avp(s:divhdr)");</div>
<div> if (!is_user_in("$avp(s:divhdr)", "7")) {</div><div> sl_send_reply("403", "NOT ALLOWED");</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: <script>: 313</div><div>Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: ERROR: group [group.c:114]: failed to parse URI <313></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: <tel:22030009>;reason=no-answer;screen=no;privacy=off</div><div>Diversion: "Solonas A" <<a href="mailto:sip%3A16@10.10.10.22">sip:16@10.10.10.22</a>>;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 <</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">></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: "Kamailio (SER) - Users Mailing List"</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px"> <</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">></span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">Message-ID: <</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">></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="iso-8859-1"; Format="flowed"</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">> Hi,</span><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"><span style="font-family:arial,sans-serif;font-size:13px">> 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">></span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> $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">> avp_subst("$avp(s:divhdr)", "/.*sip:\+45(.*)(@.*)/\1/"); # Extract</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> 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">></span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> if (is_user_in("$avp(s:divhdr)", "1") { ... }</span><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"><span style="font-family:arial,sans-serif;font-size:13px">> 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">> 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">></span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">> $var(i)=0;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> 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">> $avp(s:divhdr) =</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> $(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">> xlog("L_WARN", "$avp(s:divhdr)");</span><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">
<span style="font-family:arial,sans-serif;font-size:13px">></span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> $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">> }</span><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">
<span style="font-family:arial,sans-serif;font-size:13px">></span><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">
<span style="font-family:arial,sans-serif;font-size:13px">> /Morten</span><br></div>