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

Anuran Barman anuranbarman at gmail.com
Tue Jul 23 11:04:56 CEST 2019


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20190723/f85c1ece/attachment.html>


More information about the sr-users mailing list