Hotline
Example for yate-based IVR applications (hotlines) in tcl and python
Install / Use
/learn @eventphone/HotlineREADME
minimal hotline setup
This is an example of a minimal yate setup, which registers via an upstream SIP trunk and answers all calls with script.
How to
get the source
git clone https://github.com/eventphone/hotline
cd hotline
git submodule update --init --recursive
modify SIP settings
Update accfile.conf with your SIP Account credentials. If you don't have a SIP Account, you may use an EPVPN Account for testing purposes.
script your hotline
We've currently 4 example hotlines:
- hotline.tcl - the famous PoC Service Hotline as heard on many CCC Events
- corona.tcl - the latest version of the gemeinschaft.online hotline
- ask for zipcode (via DTMF)
- ask for topic (via DTMF)
- send HTTP API Request with caller number, zip code and topic to REST Endpoint
- if anything goes wrong save the request to the filesystem for manual inspection
- corona.py - python version of the gemeinschaft.online hotline
- api.tcl - minimal HTTP API Example, which sends the caller number to an HTTP endpoint and plays success or failed messages
More examples can be found in the yate-tcl repository.
If you want to use custom audio files, place them in the sounds directory
convert your audio files
You can use the following sox command to convert your mp3 or wav files to slin:
sox input.mp3 -t raw -r 8000 -c 1 output.slin
You may need to install the sox format handler:
apt install libsox-fmt-mp3
configure your hotline
Update regexroute.conf to point to your custom hotline script. You can also route to different scripts depending on the caller or dialed number. Details can be found in the Yate WIKI.
build your custom docker container
docker build -t your_fancy_hotline .
run
docker run -it your_fancy_hotline
Help
If you need any additional help, you may contact us via our support.
Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.4kCommit, push, and open a PR
