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

Anuran Barman anuranbarman at gmail.com
Tue Jul 23 16:17:45 CEST 2019


yeah it is removing. that sip phone had expiration time more so it was not
getting deleted. later I found out. Thanks

On Tue, 23 Jul 2019 at 7:46 PM, David Villasmil <
david.villasmil.work at gmail.com> wrote:

> 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
>>
> _______________________________________________
> 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/7a765ac2/attachment.html>


More information about the sr-users mailing list