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

Henning Westerholt hw at skalatan.de
Mon Jul 22 19:48:22 CEST 2019


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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto:david.villasmil.work at gmail.com>
phone: +34669448337
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users at lists.kamailio.org<mailto: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<mailto: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<mailto: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<mailto:sr-users at lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


--
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/20190722/36d37374/attachment.html>


More information about the sr-users mailing list