Scalable solution for EAGI

I’m using EAGI to connect a channel with some nodejs script for AI conversation with callers.

Everything works fine, but I have performance issues when simultaneous calls reach over 100.

because 100+ nodejs processes were launched on the asterisk machine.

To fix it, I need to use something like FastAGI, but unfortunately - EAGI doesn’t support audio channel streaming to remote machines. Using some proxy for EAGI (some light script to get fd3 audio and stream it over ws to a remote machine) obviously couldn’t fix the problem, because processes will be launched on the asterisk machine.

Is there any option to use FastAGI with audio channel streaming?

Is Jack() capable of resolving performance issues, and is it a scalable solution (audio channel streaming to remote machines with no additional processing created on the asterisk machine)?

I found AudioFork on GitHub, but it seems it works only with asterisk 16+ and has issues with stable work.

I considered building a PBX with nodejs and routing calls from Asterisk to it via Dial(), but it would be a lot of work for me and I wouldn’t be able to control the calls with AGI commands.

Really, no one has yet created a patch for EAGI to work like FastAGI over the network?

PS. FastAgi works really well. I can make about 800+ simultaneous calls. Asterisk v11 with chan_sip.

No, FastAGI has no audio channel streaming support at all. You could try using Jack, but it is community supported and rarely used. On your version of Asterisk besides normal calls I don’t know of anything that would really do the job.

Thank you for your reply. What do you mean “on your version of the asterisk”? I don’t see any features for eagi or fastagi for the latest versions of asterisk…

Anyway, changing the version of Asterisk is easier than developing your own module (application) to transfer an audio stream or nodejs sip client for receiving it :smiling_face_with_tear:

It was more of a general statement, not in regards to FastAGI or EAGI.

So I decided to try two options:

  1. fastAGI + GitHub audiofork
  2. fastAGI + Jack ()
    Of course, I will check resource usage (cpu+ram) with max simultaneous calls on the asterisk machine. If asterisk can handle 500 calls, it will be enough for one node of asterisk.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.