[OpenSIPS-Users] URI PARSING
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Fri Jul 9 09:31:37 CEST 2010
Try:
xlog("---- contact expire=$ct.fields(expires) ; header expire =
$hdr(Expires) \n");
if ($ct.fields(expires)) == '0' || $hdr(Expires)=="0")
xlog("L_ERR", "De-registration\n");
Regards,
Bogdan
Premalatha Kuppan wrote:
> I couldn't understand.
>
> I used $ct.fields(expires).
>
> if ($ct.fields(expires)) == '0')
> xlog("L_ERR", "De-registration\n");
>
> else
> perform some operation
> exit;
>
> But its not working though.
>
> I want to differentiate register and de-register SIP request. Thought
> expires field in contact header would hold good. Is there any other way?
>
> What is the mistake iam doing ?
>
> On Fri, Jul 9, 2010 at 2:49 AM, Richard Revels <rrevels at bandwidth.com
> <mailto:rrevels at bandwidth.com>> wrote:
>
> Ha! Never thought about both being present when I wrote that.
> Thank you.
>
>
> On Jul 8, 2010, at 4:47 PM, Bogdan-Andrei Iancu wrote:
>
> > Hi Richard,
> >
> > actually the logic should be the other way around - the "per
> contact"
> > expire (if present) has higher priority over the header Expire.
> >
> > Regards,
> > Bogdan
> >
> > Richard Revels wrote:
> >> #this next part logs an error if the message has no expires
> >> info (scanner messages sent directly to proxy for instance)
> >> if(is_present_hf("Expires"))
> >> $avp(i:10) := $hdr(Expires);
> >> else
> >> $avp(i:10) := $ct.fields(expires);
> >> if( $avp(i:10) == "0" )
> >> {
> >> ...
> >>
> >>
> >> Speaking of this, using a min_expires param to the registrar module
> >> seems to defeat allowing users to unregister by sending a
> expires of
> >> zero. I seem to remember it gets bumped to the min value. If
> true, I
> >> think there should be a check added in the minimum time check
> to let
> >> zero sneak through as is and remove the user from userloc table.
> >>
> >> Richard
> >>
> >>
> >> On Jul 8, 2010, at 5:33 AM, Premalatha Kuppan wrote:
> >>
> >>> Hi,
> >>>
> >>> How do i check expiration for user, meaning to identify
> de-registration.
> >>> When user is de-registred; then the request comes with
> expires=0; how
> >>> to get this field and check in opensips.cfg file ?
> >>>
> >>> Any help ?
> >>>
> >>> Thanks,
> >>> Prem
> >>>
> >>>
> >>> On Wed, Jul 7, 2010 at 7:42 PM, Premalatha Kuppan
> >>> <premalatha at ngintech.com <mailto:premalatha at ngintech.com>
> <mailto:premalatha at ngintech.com <mailto:premalatha at ngintech.com>>>
> wrote:
> >>>
> >>> Thanks to all.
> >>>
> >>> Its working now using $tu and avp_db_query.
> >>>
> >>> $var(x)=$(tu{uri.user});
> >>> avp_db_query("INSERT INTO TESTTABLE
> (xxx,yyy,zzz)
> >>>
> VALUES('$(var(x){s.select,0,_})','$(var(x){s.select,1,_})','$(var(x){s.select,2,_})')");
> >>>
> >>> Now, have to look how to remove these entries during
> de-registration.
> >>>
> >>> Thanks,
> >>> Prem
> >>>
> >>>
> >>>
> >>> On Wed, Jul 7, 2010 at 5:05 PM, Bogdan-Andrei Iancu
> >>> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>
> <mailto:bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>>>
> wrote:
> >>>
> >>> Premalatha Kuppan wrote:
> >>>> Thanks. Corrected teh opensips.cfg file
> >>>>
> >>>> But the problem was due to this. by default DB URL was
> >>> NULL. Now i
> >>>> have added the DB URL for avpops.
> >>>> # default URL
> >>>> modparam("avpops","db_url","mysql://user:passwd@host/database")
> >>>>
> >>>>
> >>>>
> >>>> But the value of $rU is NULL..am i placing it in wrong
> >>> location?
> >>>
> >>> In REGISTER requests, the RURI has only domain part
> >>> (sip:opensips.org <http://opensips.org>
> <http://opensips.org/>)
> >>> so it is normal to have $rU NULL. If you need to
> identity of
> >>> the user
> >>> who registered, according to SIP, you have to look at
> the TO
> >>> URI - so
> >>> use $tu to get TO uri and use the URI transformation if you
> >>> want to
> >>> split in in username and domain (see
> >>> http://www.opensips.org/Resources/DocsCoreTran16#toc17 ).
> >>>
> >>>
> >>> Regards,
> >>> Bogdan
> >>>
> >>>> I want the userpart e.g: sip:userpart at domain is the
> >>> request uri; i
> >>>> need only userpart . I believe that would be stored in $rU;
> >>> but tis
> >>>> coming as NULL. Which variable or where should i place this
> >>> command
> >>>> for registration and de-registration.
> >>>>
> >>>> Any Idea ?
> >>>>
> >>>> On Wed, Jul 7, 2010 at 4:13 PM, mayamatakeshi
> >>> <mayamatakeshi at gmail.com
> <mailto:mayamatakeshi at gmail.com> <mailto:mayamatakeshi at gmail.com
> <mailto:mayamatakeshi at gmail.com>>
> >>>> <mailto:mayamatakeshi at gmail.com <mailto:mayamatakeshi at gmail.com>
> >>> <mailto:mayamatakeshi at gmail.com
> <mailto:mayamatakeshi at gmail.com>>>> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On Wed, Jul 7, 2010 at 7:32 PM, Premalatha Kuppan
> >>>> <premalatha at ngintech.com <mailto:premalatha at ngintech.com>
> >>> <mailto:premalatha at ngintech.com
> <mailto:premalatha at ngintech.com>>
> >>> <mailto:premalatha at ngintech.com
> <mailto:premalatha at ngintech.com>
> >>> <mailto:premalatha at ngintech.com
> <mailto:premalatha at ngintech.com>>>> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> Iam using avp_db_query, but opensips is dead with
> >>> following error,
> >>>>
> >>>> During Registration, when the user is registered. I
> >>> have to
> >>>> parse and store th value in DB. So, included the
> >>> avp_db_query
> >>>> in this loop. Is this right one to do. I assume the
> >>> value of
> >>>> rU is NULL over here, probably its failing. Not sure :(
> >>>>
> >>>> Any insight ?
> >>>>
> >>>> if (is_method("REGISTER"))
> >>>> {
> >>>> # authenticate the REGISTER requests
> >>>> (uncomment to enable auth)
> >>>> if (!www_authorize("10.140.1.110",
> >>> "subscriber"))
> >>>> {
> >>>>
> >>> www_challenge("10.140.1.110", "0");
> >>>> exit;
> >>>> }
> >>>>
> >>>> # if (!db_check_to())
> >>>> # {
> >>>> #
> >>> sl_send_reply("403","Forbidden auth ID");
> >>>> # exit;
> >>>> # }
> >>>>
> >>>> if (!save("location"))
> >>>> sl_reply_error();
> >>>>
> >>>> $var(x) = $rU ;
> >>>> avp_db_query("INSERT INTO TESTTABLE
> >>>> (xxx,yyy,zzz)
> >>>>
> >>>
> VALUES('$(var(x){s.select,0,_})','$var(x)({s.select,1,_})','$(var(x){s.select,2,_})'");
> >>>> exit;
> >>>> }
> >>>>
> >>>>
> >>>> Jul 7 06:25:16 204548-4
> >>> /usr/local/sbin/opensips[17791]:
> >>>> ERROR:avpops:fixup_db_query_avp: no db url defined
> >>> to be used
> >>>> by this function
> >>>> Jul 7 06:25:16 204548-4
> >>> /usr/local/sbin/opensips[17791]:
> >>>> *ERROR:core:fix_actions: fixing failed (code=-6) at
> >>> cfg line 351*
> >>>> Jul 7 06:25:16 204548-4
> >>> /usr/local/sbin/opensips[17791]:
> >>>> ERROR:core:main: failed to fix configuration with
> >>> err code -6
> >>>>
> >>>>
> >>>> Clearly you misplaced the parenthesis:
> >>>>
> >>>>
> >>>> $(var(x){s.select,0,_})',
> >>>> '$var(x)({s.select,1,_})',
> >>>> '$(var(x){s.select,2,_})'
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> Users mailing list
> >>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> >>> <mailto:Users at lists.opensips.org
> <mailto:Users at lists.opensips.org>>
> >>> <mailto:Users at lists.opensips.org
> <mailto:Users at lists.opensips.org>
> >>> <mailto:Users at lists.opensips.org
> <mailto:Users at lists.opensips.org>>>
> >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>>>
> >>>>
> >>>>
> >>>
> ------------------------------------------------------------------------
> >>>>
> >>>> _______________________________________________
> >>>> Users mailing list
> >>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> <mailto:Users at lists.opensips.org <mailto:Users at lists.opensips.org>>
> >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>>>
> >>>
> >>>
> >>> --
> >>> Bogdan-Andrei Iancu
> >>> OpenSIPS Bootcamp
> >>> 20 - 24 September 2010, Frankfurt, Germany
> >>> www.voice-system.ro <http://www.voice-system.ro>
> <http://www.voice-system.ro/>
> >>>
> >>>
> >>> _______________________________________________
> >>> Users mailing list
> >>> Users at lists.opensips.org
> <mailto:Users at lists.opensips.org> <mailto:Users at lists.opensips.org
> <mailto:Users at lists.opensips.org>>
> >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Users mailing list
> >>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> <mailto:Users at lists.opensips.org <mailto:Users at lists.opensips.org>>
> >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>
> >>
> ------------------------------------------------------------------------
> >>
> >> _______________________________________________
> >> Users mailing list
> >> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>
> >
> >
> > --
> > Bogdan-Andrei Iancu
> > OpenSIPS Bootcamp
> > 20 - 24 September 2010, Frankfurt, Germany
> > www.voice-system.ro <http://www.voice-system.ro>
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
--
Bogdan-Andrei Iancu
OpenSIPS Bootcamp
20 - 24 September 2010, Frankfurt, Germany
www.voice-system.ro
More information about the Users
mailing list