[OpenSIPS-Users] URI PARSING
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Fri Jul 9 20:09:34 CEST 2010
In SIP requests there are 2 ways to define the "expires" val for a
contact : a global one, via the "Expires" header or a local one, via the
"expires" parameter for Contact hdr.
So, each device may choose one of these options, not necessarily
defining both....that's way you see the $ct.fields(expires) NULL,
because your device uses the EXPIRES header.
Regards,
Bogdan
Premalatha Kuppan wrote:
> Also, $ct.fields(expires) is always null
>
> xlog("---- contact expires=$ct.fields(expires) ; header expires =
> $hdr(Expires) \n");
> _
> OUTPUT:_
> During Registration:
> ---- contact expires=<null> ; header expires =1800
>
> During De-Registration:
> ---- contact expires=<null> ; header expires = 0
>
> On Fri, Jul 9, 2010 at 1:47 PM, Premalatha Kuppan
> <premalatha at ngintech.com <mailto:premalatha at ngintech.com>> wrote:
>
> Thanks Bogdan.
>
> It was throwing me errors.
> Now i used the following to check de-registration. It works.
>
> if( is_present_hf("Expires") && $(hdr(Expires){s.int
> <http://s.int>})==0)
>
> BTW, how to differentiate registration and RE-registration request ?
>
>
> On Fri, Jul 9, 2010 at 1:01 PM, Bogdan-Andrei Iancu
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
> 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>
> > <mailto: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>>
> > <mailto: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>>
> > <mailto: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>
> > <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>>>
> > >>>> <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
> <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>>>
> > >>> <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
> <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>>>
> > >>> <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
> <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>>
> > <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
> > >>>>
> > >>>
> > >>>
> > >>> --
> > >>> 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>
> > <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>>
> <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>>
> > <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
> 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