You may consider writing the entire routing script in python as well - check out KEMI.

вт, 27 авг. 2024 г. в 15:38, Sergio Charrua via sr-users <sr-users@lists.kamailio.org>:
Thanks Fred!

>... but you’re really hacking kamailio to be an http api server...

Actually it will be a HTTP Client...kamailio will send requests to an HTTPS REST Service that requires authentication, returning a JWT token if authentication is OK. Then, with the Token, Kamailio will make another HTTPS Request to another endpoint of the REST Service to do some voodoo....
My issue is on how to handle, on Kamailio, the authentication JWT token returned from the REST Service.

I did consider having a Python script handling HTTP requests...might be the best solution, as it is (or seems to be....) more flexible in the long term....

Atenciosamente / Kind Regards / Cordialement / Un saludo,


Sérgio Charrua





On Tue, Aug 27, 2024 at 1:08 PM Fred Posner via sr-users <sr-users@lists.kamailio.org> wrote:

> On Aug 27, 2024, at 6:58 AM, Sergio Charrua via sr-users <sr-users@lists.kamailio.org> wrote:
>
> Hi all!
>
> I need to integrate a REST Service with Kamailio. Integration is easy, not a problem, but my concern is that the REST Services has a JWT token authentication required for each request, common to many (it not all) REST Services.
> So, it is required to POST for authentication (username and password) and once I get authentication done, and receive a JWT token, I will need to use this token in all other requests to the REST Service. The token is valid for 24h.
> My question is:
> - how to save the token for use during 24h, on all calls/sessions, without the need to authenticate on every call?
> - how to detect the token has expired and re-authenticate?
>
> I looked for some modules, but could not find any that suited me.
> I am thinking of executing a Python script for this, but concerned about latency and PDD....
> Any thoughts? Any suggestions? Any known best-practice?
>
> Atenciosamente / Kind Regards / Cordialement / Un saludo,
>
> Sérgio Charrua


Have you considered an inbetween service (such as a go/python/node api listener) to handle the authentication / token issuance part?

In theory I assume you could use the JWT and other modules to help do what you are looking for, but you’re really hacking kamailio to be an http api server at that point and although it may be able to do it quite well, it’s really not the first candidate I’d choose for the job.



Regards,

Fred Posner
https://fredoso.com




__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to sr-users-leave@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe:
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to sr-users-leave@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe:


--
Alexandru Covalschi
VoIP engineer and system administrator
tg: @acovalschi