Skip to main content

System Architecture Diagram

dg.pngimage.png

  • When a customer call comes in, the call enters the FreeSWITCH dialplan. Within the dialplan, a curl command is executed to call an API endpoint provided by EasyCallCenter365, sending the call UUID, caller number, callee number, and other related information.
    At this point, the call is taken over and managed by EasyCallCenter365.

  • EasyCallCenter365 starts call recording and attempts to establish a connection with the large language model (LLM).

  • The LLM returns responses through a streaming HTTP response. While EasyCallCenter365 receives the text stream, it simultaneously sends the text to theĀ speak command for text-to-speech synthesis.

  • After the FreeSWITCH TTS module receives the speech synthesis command, it extracts the text parameters, connects to the TTS server, and sends a speech synthesis request.

  • Since text is continuously generated throughout the process, the TTS module sends text for synthesis while simultaneously receiving the synthesized audio stream, decoding the audio, and playing it back in real time.

  • Throughout the entire call, the FreeSWITCH ASR module continuously performs real-time speech recognition.

    The ASR module is responsible for sending the audio stream and receiving the speech recognition result text.

  • Through Event Socket messages, FreeSWITCH sends the recognized speech text back to EasyCallCenter365.

  • EasyCallCenter365 packages the speech recognition result together with the previous conversation context and sends it to the LLM.

  • The process then continues in a loop until the phone call ends.