[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