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

Donat Zenichev donat.zenichev at gmail.com
Wed Dec 16 13:14:38 EST 2020


Good day Sasmita and Saurabh,
that's a good question to ask and answer actually.

As I was mentioning at the very beginning, did you try to look into the
logs with the deep log_level?
https://www.opensips.org/Documentation/Script-CoreParameters-3-1#toc37
This is highly appreciated when doing a debug of an issue.

What do "db_mysql.so" and "usrloc.so" say when you try to de-register a
subscriber? (with a debug log_level)

Other than that, I want to mention that the "db_mode" parameter is kept now
for backwards compatibility.
It also conflicts with "working_mode_preset" parameter:
https://opensips.org/html/docs/modules/3.1.x/usrloc.html#param_working_mode_preset
Try to see if "working_mode_preset" is also configured on your OpenSIPS
instance.
And might be, this would also be a good idea to switch to usage of
"working_mode_preset" instead of "db_mode", at least because it's a more
actual one.

Also how about the:
https://opensips.org/html/docs/modules/3.1.x/usrloc.html#param_restart_persistency
https://opensips.org/html/docs/modules/3.1.x/usrloc.html#param_sql_write_mode

Is that configured on your OpenSIPS instance? If so, what are the options
set for that?
(of course, this couple should be useless in db only mode, but just in case
you have inadvertently configured this as well).

Anyway, pay much attention to logs at the debug level.
As this can give you some insight on what happens.

Have a nice day!

On Wed, Dec 16, 2020 at 7:58 AM Sasmita Panda <spanda at 3clogic.com> wrote:

> 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
>>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>


-- 

Best regards,
Donat Zenichev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20201216/9ddb0421/attachment.html>


More information about the Users mailing list