The idea is:
A native SIP node capable of handling bidirectional calls, monitoring RTSP streams, and processing SIP messages including transfer, waiting, and queue functionality.
My use case:
I plan to build a natural speech IVR system where callers can interact verbally to reach their desired destinations. By leveraging state-of-the-art TTS and speech synthesis with langchain, we can create powerful applications. One key use case enables customers to create tickets directly through voice calls, with AI handling everything from speech interpretation and intent recognition to customer authentication and Jira ticket creation.
I think it would be beneficial to add this because:
A natural sounding customer care agent that can perform multitask within minutes.
Any resources to support this?
Open-source SIP server API endpoints that implements all standard SIP RFCs: https://docs.asterisk.org/
Are you willing to work on this?
Yes
Wow, awesome! Just trying to get your container running. However, it seems I’m too stupid to get the an inbound call to trigger my n8n webhook. Could you assist?
Thanks!
Here are a few things you can check to get inbound calls working with the n8n webhook.
-
First verify whether the voice output is working in German. The voice can be changed in the docker-compose file using for example: --voice de_DE-kerstin-low (piper).
You can check the logs with:
docker logs fritz-ai-assistant-fritz-voice-assistant-1
-
One common issue is a missing environment variable. Make sure the OPENAI_API_KEY is set.
-
Check whether n8n can be reached. If it is not running on the same host, adjust the host address either directly in the Python code or in the configuration file.
In freya.yaml, verify the entry under n8n: webhook_url.
Typical error messages for this case look like:
ConnectionRefusedError: [Errno 111] Connection refused
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5678): Max retries...
-
Verify your n8n configuration.
In the Webhook node:
-
Production URL (POST): http://localhost:5678/webhook/on_message
-
In the overview, the workflow must be set to Active (top right). This step is easy to forget.
In the Respond to Webhook node, you can temporarily set a fixed reply for testing. Example:
I uploaded my workflow: fritz-ai-assistant/examples/n8n_workflow.json at main · dohren/fritz-ai-assistant · GitHub