[SR-Users] How to hook to Register And Unregister event in Kamailio

David Villasmil david.villasmil.work at gmail.com
Tue Jul 23 16:15:03 CEST 2019


The module should remove the user's contact when the register expires.

Regards,

David Villasmil
email: david.villasmil.work at gmail.com
phone: +34669448337


On Tue, Jul 23, 2019 at 10:07 AM Anuran Barman <anuranbarman at gmail.com>
wrote:

> db_mode is already set to 2. There is one parameter I saw which is saying
> about cleaning expired db records so I set it to Enabled.
> But it did not change anything.
>
> modparam("usrloc", "db_timer_clean", 1)
>
>
> On Tue, Jul 23, 2019 at 1:34 PM Henning Westerholt <hw at skalatan.de> wrote:
>
>> Hello,
>>
>> have a look to the db_mode parameter in the usrloc module. You can
>> operate the module in different database modes.
>>
>> Cheers,
>>
>> Henning
>> Am 23.07.19 um 09:48 schrieb Anuran Barman:
>>
>> So I tried the the Expires header for UNREGISTER and it is working fine.
>> Thanks for that. But the problem is that SIP Phone does not send UNREGISTER
>> event. It only sends REGISTER method periodically. So in my Server it will
>> be always online. So to overcome that I will be running e cron job which
>> will pool the online users from 'location' table of kamailio mysql db. But
>> the problem is, 'location' table does not get updated as soon as possible,
>> rather if I disconnect the SIP Phone and do 'kamctl ul show' it will be
>> still there for like 5 mins, after that it goes away. How can I change the
>> timeout of this,say to 2mins, meaning that after 2mins if there is no
>> response from the client ,Kamailio will mark it as offline. Where to change
>> that parameter?
>>
>> On Mon, Jul 22, 2019 at 11:20 PM Anuran Barman <anuranbarman at gmail.com>
>> wrote:
>>
>>> Thanks, I will try these out and get back to you.
>>>
>>> On Mon, Jul 22, 2019 at 11:18 PM Henning Westerholt <hw at skalatan.de>
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>> you can get the result of the register module "save()" function call
>>>> from its return value:
>>>>
>>>>
>>>> https://www.kamailio.org/docs/modules/5.2.x/modules/registrar.html#registrar.f.save
>>>> and then use a similar logic like you quoted in the initial question.
>>>>
>>>> You can of course also just query the usrloc module with the provide
>>>> remote function API:
>>>>
>>>>
>>>> https://www.kamailio.org/docs/modules/5.2.x/modules/usrloc.html#usrloc.r.lookup
>>>>
>>>> This can be called over HTTP, JSON HTTP and others.
>>>>
>>>> Cheers,
>>>>
>>>> Henning
>>>> Am 22.07.19 um 14:34 schrieb Anuran Barman:
>>>>
>>>> evapi seems to be complicated and more than necessary for I want to do.
>>>> Can't I get the successful register and unregister event from config file
>>>> just like got INVITE event without using it?
>>>>
>>>> On Mon, Jul 22, 2019 at 6:02 PM Anuran Barman <anuranbarman at gmail.com>
>>>> wrote:
>>>>
>>>>> # IP authorization and user authentication
>>>>> route[AUTH] {
>>>>> #!ifdef WITH_AUTH
>>>>>
>>>>> #!ifdef WITH_IPAUTH
>>>>> if((!is_method("REGISTER")) && allow_source_address()) {
>>>>> # source IP allowed
>>>>> return;
>>>>> }
>>>>> #!endif
>>>>>
>>>>> if (is_method("REGISTER") || from_uri==myself) {
>>>>> xlog("LOG_LOCAL3","L_INFO","authentication request from domain=$ad
>>>>> realm=$ar username=$Au sourceIP=$si agentHeader=$ua");
>>>>> # authenticate requests
>>>>> if (!auth_check("$fd", "subscriber", "1")) {
>>>>> auth_challenge("$fd", "0");
>>>>> exit;
>>>>> }
>>>>> # user authenticated - remove auth header
>>>>> if(!is_method("REGISTER|PUBLISH"))
>>>>> consume_credentials();
>>>>> xlog("LOG_LOCAL3","L_INFO","authentication successful"); *<==============
>>>>> At this point can I assume authentication is successful ??*
>>>>> }
>>>>> # if caller is not local subscriber, then check if it calls
>>>>> # a local destination, otherwise deny, not an open relay here
>>>>> if (from_uri!=myself && uri!=myself) {
>>>>> sl_send_reply("403","Not relaying");
>>>>> exit;
>>>>> }
>>>>>
>>>>> #!endif
>>>>> return;
>>>>> }
>>>>>
>>>>> Kindly look into the snippet above. The bold lettered one. At that
>>>>> point can I assume authentication is successful ??
>>>>>
>>>>> On Mon, Jul 22, 2019 at 5:58 PM E. Schmidbauer <eschmidbauer at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> you should be doing some sort of authentication and then saving the
>>>>>> user's registration data.
>>>>>> add a route to fire an event when the registration data is saved.
>>>>>> or even better IMO would be to use an event queue like mqueue and
>>>>>> rtimer to push events into a queue and process them with rtimer and evapi
>>>>>>
>>>>>> On Mon, Jul 22, 2019 at 7:46 AM Anuran Barman <anuranbarman at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> But it does not tell me if thats a successful register. I can make
>>>>>>> the user online but may be the request fails as credentials are wrong. So
>>>>>>> the REGISTER is not successful. How can I handle that?
>>>>>>>
>>>>>>> On Mon, 22 Jul 2019 at 5:14 PM, David Villasmil <
>>>>>>> david.villasmil.work at gmail.com> wrote:
>>>>>>>
>>>>>>>> Just as you do is_method(“INVITE”) you can do is_method(“REGISTER”)
>>>>>>>> after that you can check the EXPIRE, if it is zero then it is an
>>>>>>>> UN-REGISTER.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, 22 Jul 2019 at 12:35, E. Schmidbauer <
>>>>>>>> eschmidbauer at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> here is a good example of how you can use evapi in kamailio:
>>>>>>>>>
>>>>>>>>> http://kb.asipto.com/kamailio:k43-async-sip-routing-nodejs#evapi_processing
>>>>>>>>>
>>>>>>>>> here is a good example of how you can implement it with a go app:
>>>>>>>>> https://github.com/cgrates/kamevapi
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jul 22, 2019 at 7:18 AM Anuran Barman <
>>>>>>>>> anuranbarman at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> It seems like this module is useful for making the
>>>>>>>>>> connection/message flow. But that I need when I have the events of Register
>>>>>>>>>> and unregister. How to get the events from this module?
>>>>>>>>>>
>>>>>>>>>> On Mon, Jul 22, 2019 at 3:51 PM Anuran Barman <
>>>>>>>>>> anuranbarman at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Though I have already a NodeJS server running, I will try the
>>>>>>>>>>> evapi module. If there are some tutorial/Wiki on how to do this please
>>>>>>>>>>> share that with me. That will be great help.
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Jul 22, 2019 at 3:39 PM E. Schmidbauer <
>>>>>>>>>>> eschmidbauer at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I would recommend using `evapi` for something like this
>>>>>>>>>>>> You could build a small go app that connects via evapi and
>>>>>>>>>>>> send/receive events to/from kamailio.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Jul 22, 2019 at 3:07 AM Anuran Barman <
>>>>>>>>>>>> anuranbarman at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>> I  am integrating Kamailio into my application. I want to hook
>>>>>>>>>>>>> to the successful REGISTER and unregister event into Kamailio into my
>>>>>>>>>>>>> application. For now, I am able to hook into INVITE event and can hit my
>>>>>>>>>>>>> server to send a email to the callee user that user X is calling you. The
>>>>>>>>>>>>> way I am doing is by this
>>>>>>>>>>>>>         if (is_method("INVITE")) {
>>>>>>>>>>>>>                 xlog("LOG_LOCAL3","L_INFO","invite came ($fU)
>>>>>>>>>>>>> ($tU)");
>>>>>>>>>>>>>                 $var(res) = http_connect("sipnodejsserver",
>>>>>>>>>>>>> "/","text/plain","src_user:$fU,dst_user:$tU" ,"$avp(route)");
>>>>>>>>>>>>>                 xlog("LOG_LOCAL3","L_INFO","request sent
>>>>>>>>>>>>> $avp(route)  $var(res)");
>>>>>>>>>>>>>                 setflag(FLT_ACC); # do accounting
>>>>>>>>>>>>>         }
>>>>>>>>>>>>>
>>>>>>>>>>>>> I need to show into my application that their SIP phone is
>>>>>>>>>>>>> online or not. How can I hook into this?
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>>>>>>>> sr-users at lists.kamailio.org
>>>>>>>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>>>>>>> sr-users at lists.kamailio.org
>>>>>>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>>>>> sr-users at lists.kamailio.org
>>>>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>>>> sr-users at lists.kamailio.org
>>>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>>>
>>>>>>>> --
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>> David Villasmil
>>>>>>>> email: david.villasmil.work at gmail.com
>>>>>>>> phone: +34669448337
>>>>>>>> _______________________________________________
>>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>>> sr-users at lists.kamailio.org
>>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Kamailio (SER) - Users Mailing List
>>>>>>> sr-users at lists.kamailio.org
>>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Kamailio (SER) - Users Mailing List
>>>>>> sr-users at lists.kamailio.org
>>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>> --
>>>> Henning Westerholt - https://skalatan.de/blog/
>>>> Kamailio services - https://skalatan.de/services
>>>>
>>>> --
>> Henning Westerholt - https://skalatan.de/blog/
>> Kamailio services - https://skalatan.de/services
>>
>> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20190723/6e4e910d/attachment.html>


More information about the sr-users mailing list