[OpenSIPS-Users] URI PARSING
Premalatha Kuppan
premalatha at ngintech.com
Fri Jul 9 13:10:01 CEST 2010
Please tell me how to search for special character in a string.
{s.select,0,_} this would return the value; instead if i want to search
whether special characters exist or not, which transformation should i use.
I tried various possiblities; but wonder is there a transformation available
to search special characters.
On Fri, Jul 9, 2010 at 1:53 PM, Premalatha Kuppan
<premalatha at ngintech.com>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
> > 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})==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> 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>> 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
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20100709/cae99635/attachment-0001.htm
More information about the Users
mailing list