[OpenSIPS-Users] URI PARSING

Richard Revels rrevels at bandwidth.com
Thu Jul 8 23:19:41 CEST 2010


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>> 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>> 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/>)
>>>        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>>> 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>>> 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>>
>>>>    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




More information about the Users mailing list