Hello,

 

if a server dependency is not available at all, you will get problems in your Kamailio, regardless of you are using synchronous or asynchronous operations. With asynchronous operations you will get into some memory exhaustion situation after some time due to the waiting requests.

You probably want to think about short timeouts and then having a fail-safe logic that allows to continue (with limited functionality) when the enum server is not available.

 

Cheers,

 

Henning

 

From: Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com>
Sent: Dienstag, 19. Dezember 2023 09:55
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>; Henning Westerholt <hw@gilawa.com>
Subject: RE: enum queries using Kamailio in asynchronous mode ?

 

I’m not sure how to do that though…

If I do something like this:

 

...

async_workers_group="name=enum;workers=4;nonblock=0;usleep=0"

...

request_route {

    ...

    async_task_route("ENUM", "enum");

    ...

}

route[ENUM] {

   # query enum servers here

   # then proceed with the remaining of the routing logic

   ...

}

...

 

 

This can still block all async workers… and then my Kamailio would also become blocked ?

Am I missing something ?

 

 

Regards,

Nicolas.

 

De : Chaigneau, Nicolas via sr-users <sr-users@lists.kamailio.org>
Envoyé : mardi 19 décembre 2023 09:19
À : Henning Westerholt; Kamailio (SER) - Users Mailing List
Cc : Chaigneau, Nicolas
Objet : [SR-Users] Re: enum queries using Kamailio in asynchronous mode ?

 

Thanks Henning!

The async module seems a good solution indeed, I’ll look into this.

 

Regards,

Nicolas.

 

De : Henning Westerholt <hw@gilawa.com>
Envoyé : mardi 19 décembre 2023 09:10
À : Kamailio (SER) - Users Mailing List
Cc : Chaigneau, Nicolas
Objet : RE: enum queries using Kamailio in asynchronous mode ?

 

Hello,

 

the enum module seems to execute its queries synchronously indeed.

 

Asynchronous execution could be added to the module or as another module. Maybe also adding some configurable timeout values to not block the server in case of errors would be also sufficient. You can also look at the async module to see if maybe this is an easier solution:

https://www.kamailio.org/docs/modules/devel/modules/async.html

 

Cheers,

 

Henning

 

From: Chaigneau, Nicolas via sr-users <sr-users@lists.kamailio.org>
Sent: Freitag, 15. Dezember 2023 10:37
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Cc: Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com>
Subject: [SR-Users] enum queries using Kamailio in asynchronous mode ?

 

Hello,

 

 

I will need to perform enum queries from Kamailio.

 

I see that there is a module for that:

https://www.kamailio.org/docs/modules/devel/modules/enum.html

 

However, I’m worried that if the enum server is unresponsive, this could block all workers…

I don’t think the module can handle an asynchronous mode ? I see that we have a specific module for HTTP async:

https://www.kamailio.org/docs/modules/devel/modules/http_async_client.html

 

Has anyone had to implement this kind of need with enum in Kamailio ?

 

 

Thanks.

 

Regards,

Nicolas.

This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.