Hi, Try to give is_user_in() the whole URI as in sip:username@domain or just username@domain. I am not sure what format it expects.
/Morten On Wed, Apr 10, 2013 at 12:03 PM, phillman25 <phillma...@gmail.com> wrote: > > Thank you Daniel and Morten for your assistance and prompt reply. > > To use the tobody transformation, i see that i would need to upgrade to > 4.1 right? Im currently on 3.3. > I tried the below code: > > > $var(i)=0; > while($(hdr(Diversion)[$var(i)]) != $null ) { > > $avp(s:divhdr) = > $(hdr(Diversion)[$var(i)]); > avp_subst("$avp(s:divhdr)", > "/.*sip:(.*)(@.*)/\1/"); > xlog("L_WARN", "$avp(s:divhdr)"); > if (!is_user_in("$avp(s:divhdr)", "7")) { > sl_send_reply("403", "NOT ALLOWED"); > exit; > }; > > $var(i) = $var(i) +1; > } > > > However, it seems like group module cant parse the output 313 as seen > below: > > > Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: WARNING: > <script>: 313 > Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: ERROR: group > [group.c:114]: failed to parse URI <313> > Apr 10 13:16:43 SipProxy-Test /usr/local/sbin/kamailio[7471]: ERROR: group > [group.c:158]: failed to get username@domain > > > A bigger issue is that a certain client is sending more than one diversion > header with different format as seen below: > > > Diversion: <tel:22030009>;reason=no-answer;screen=no;privacy=off > Diversion: "Solonas A" <sip:16@10.10.10.22>;reason=unconditional > > > 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? > > Thanking you in advance > Phillip > > > > Date: Tue, 09 Apr 2013 16:43:56 +0200 > From: Daniel-Constantin Mierla <mico...@gmail.com> > Subject: Re: [SR-Users] Diversion header authentication > To: "Kamailio (SER) - Users Mailing List" > <sr-users@lists.sip-router.org> > Message-ID: <5164292c.4080...@gmail.com> > Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" > > Hello, > > just adding that the tobody transformation could be handy to extract the > user or uri part of a Diversion header, not to fight with subst > expressions: > > - > > http://www.kamailio.org/wiki/cookbooks/devel/transformations#to-body_transformations > > Cheers, > Daniel > > On 4/9/13 3:16 PM, Morten Isaksen wrote: > > Hi, > > > > I have not tested this, but try: > > > > $avp(s:divhdr) = $(hdr(Diversion)[$var(i)]); > > avp_subst("$avp(s:divhdr)", "/.*sip:\+45(.*)(@.*)/\1/"); # Extract > > number between +45 and @ > > > > if (is_user_in("$avp(s:divhdr)", "1") { ... } > > > > Please note that there can be more than one Diverseion header. In that > > case you can use: > > > > $var(i)=0; > > while($(hdr(Diversion)[$var(i)]) != $null ) { > > $avp(s:divhdr) = > > $(hdr(Diversion)[$var(i)]); > > xlog("L_WARN", "$avp(s:divhdr)"); > > > > > > $var(i) = $var(i) +1; > > } > > > > > > > > /Morten > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > -- Morten Isaksen
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users