[OpenSIPS-Users] Db_mode=3(sql only) in USRLOC module in opensips_3.1

Sasmita Panda spanda at 3clogic.com
Wed Dec 16 05:55:14 EST 2020


Hi Donat,

According to Saurabh , he is saying in " *db_mode=3 and sql-only mode* "
that direct DB operation happens .
When a user get registered that contact immediately get populated to the DB
and when the user send un-registration the entry from the DB should be
deleted at that time .
*The deletion part is not happening in his case *.* The contact from
location table delete when in the expiration time* .

According to opensips documentation , the timer works when the user not
able to un-registrer itself . Then data persist in the DB . That should be
deleted in the timer interval . This is fine .

If I will explain through example .
1. Usr get register at 11.10.10 with expire 300sec .
2. User send un-register at 11.11.10  (But the data wont get deleted from
the DB somehow)
3.  The user was gone away in 1min only . But the data in DB is there for
next 4min . * In this case the timer wont play any role . Even
though timer_interval is set to 120sec . Still the contact exists till 5min
. *
4. If an INVITE will come for that user . Then opensips will try to push
the call to that existing contact . But I was expecting 404 Not Found .

This is the problem . As for the previous version of opensips this is
working fine . But in 3.1 we are facing  issue .

I have  taken opensips code from

*git clone https://github.com/OpenSIPS/opensips.git
<https://github.com/OpenSIPS/opensips.git> -b 3.1 opensips-3.1*


*Please suggest what else we should do .*

*Thanks & Regards*
*Sasmita Panda*
*Senior Network Testing and Software Engineer*
*3CLogic , ph:07827611765*


On Mon, Dec 14, 2020 at 5:13 PM Donat Zenichev <donat.zenichev at gmail.com>
wrote:

> Good day Saurabh, could you refer to the RFC and the particular row in
> that, that talks about a backend database and time in which the row should
> be deleted from that?
> I just wonder if I missed this somewhere. I haven't ever seen a
> specification for databases backend in RFCs related to the SIP protocol.
> Would be a good thing for me to learn something new! :)
>
> I just want to mention, and focus you on the fact, that you might need to
> take a look at this parameter:
>
> https://opensips.org/html/docs/modules/3.0.x/usrloc.html#param_timer_interval
>
> As this plays not the last role when working in sql-only mode.
> Did you read something about that?
>
> One more time, a quotation:
> 1. "Number of seconds between two timer runs. During each run, the module
> will update/delete dirty/expired contacts from memory and/or mirror these
> operations to the database, if configured to do so."
> 2. "sql-only - DB-Only scheme. No memory cache is kept, all operations
> being directly performed with the database. The timer deletes all expired
> contacts from database - cleans after clients that didn't un-register or
> re-register."
>
> This is how it works.
>
>
> On Mon, Dec 14, 2020 at 12:26 PM Saurabh Chopra <saurabhc at 3clogic.com>
> wrote:
>
>> Hi Donat/Opensips Team,
>>
>> Apologies for late response, but ideally the entry should be deleted
>> after un-registration is sent otherwise it will violate the RFC rule.
>> Also, this SQL Only Mode is perfectly working with opensips 2.2 and 3.0
>> versions with the same configuration. Could you guys try to replicate this
>> Or confirm if I am missing anything in the configuration side.
>>
>>
>> Best Regards
>> Saurabh Chopra
>> +918861979979
>>
>>
>> On Fri, Dec 11, 2020 at 2:22 PM Donat Zenichev <donat.zenichev at gmail.com>
>> wrote:
>>
>>> I just want to follow up with the thing that, using the sql-only mode,
>>> expired location records might not be deleted right away.
>>> I just remembered all of the sudden, that the timer interval controls
>>> data clearing/updating when using sql-only mode.
>>>
>>> Then you might also want to play with your timer interval value. How
>>> huge is that now?
>>>
>>> https://opensips.org/html/docs/modules/3.0.x/usrloc.html#param_timer_interval
>>>
>>> This one is responsible for clearing out expired contacts from the user
>>> location table.
>>> Here is a quotation from the "sql-only" mod description:
>>> "The timer deletes all expired contacts from database - cleans after
>>> clients that didn't un-register or re-register."
>>>
>>> On Fri, Dec 11, 2020 at 9:22 AM Donat Zenichev <donat.zenichev at gmail.com>
>>> wrote:
>>>
>>>> Good morning Saurabh,
>>>> that sounds a bit odd, as the sql only mode supposes that usrloc.so
>>>> updates the backend sql right away.
>>>>
>>>> Do you have any warnings occurring in the OpenSIPS log?
>>>> There might be a case for an inability of OpenSIPS to reach the sql
>>>> server at the moment of de-registration.
>>>> See if there are any re-connections to the database.
>>>>
>>>> And also did you try to gather opensips logs with a debug level?
>>>> Try to see which log rows both "db_mysql.so" (if you are using mysql as
>>>> a backend db) and "usrloc.so" are throwing out into the log, when you send
>>>> a de-registration.
>>>>
>>>> Otherwise, you might also try to use either
>>>> "single-instance-sql-write-through" or "single-instance-sql-write-back",
>>>> which perhaps can better fit your demands.
>>>>
>>>>
>>>> On Fri, Dec 11, 2020 at 9:00 AM Saurabh Chopra <saurabhc at 3clogic.com>
>>>> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I am testing a usrloc module with db_mode=3(sql only) and a strange
>>>>> thing is happening, when we send an unregistration request the user entry
>>>>> is not deleting from the database . However the entry is deleted after
>>>>> expiry timer.
>>>>>
>>>>> loadmodule "usrloc.so"
>>>>> modparam("usrloc", "nat_bflag", "NAT")
>>>>> modparam("usrloc", "db_mode", 3)
>>>>> modparam("usrloc", "db_url", "mysql://root:xxxxg1c@localhost
>>>>> /opensips")
>>>>>
>>>>>
>>>>> Does db_mode=3 used to work like this? Or I am missing something?
>>>>>
>>>>> Best Regards
>>>>> Saurabh Chopra
>>>>> +918861979979
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at lists.opensips.org
>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Best regards,
>>>> Donat Zenichev
>>>>
>>>>
>>>
>>> --
>>>
>>> Best regards,
>>> Donat Zenichev
>>>
>>> _______________________________________________
>>> Users mailing list
>>> 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
>>
>
>
> --
>
> Best regards,
> Donat Zenichev
>
> _______________________________________________
> 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/20201216/a2339e7a/attachment.html>


More information about the Users mailing list