# Local Asterisk lab — for iterating on caliban before promoting to Virgo. # # This is the LOCAL variant: ports and credentials are concrete, not Jinja. # Ansible templates the same dialplan out to galatea with the estate's # variables (see virgo/ansible/asterisk/). # # Run: docker compose -f docker-compose.lab.yml up -d # CLI: docker compose -f docker-compose.lab.yml exec asterisk asterisk -rvvv # # host networking: SIP/RTP carry IP addresses *inside* the payload, so a # bridged network needs external_media_address set correctly or the call # connects with no audio. Host networking sidesteps that entirely for local # work. The Virgo deploy uses the same approach for the same reason. services: asterisk: image: andrius/asterisk:22.10.1_debian-trixie container_name: asterisk-lab network_mode: host volumes: - ./dialplan/extensions.conf:/etc/asterisk/extensions.conf:ro - ./dialplan/pjsip.local.conf:/etc/asterisk/pjsip.conf:ro - ./dialplan/rtp.local.conf:/etc/asterisk/rtp.conf:ro - ./dialplan/logger.conf:/etc/asterisk/logger.conf:ro # Carries `nocolor = yes`: without it every log line reaches Loki # wrapped in ANSI escape codes. - ./dialplan/asterisk.conf:/etc/asterisk/asterisk.conf:ro # The image ships no sound files at all. These are generated by # sounds/generate.py; Asterisk resolves Playback(lab-music) to # lab-music.sln here (8kHz signed-linear, no transcoding). - ./sounds:/var/lib/asterisk/sounds/en:ro # The image's default command is `-vvvdddf` — verbosity 3 and debug 3 # forced on the command line, which overrides both asterisk.conf and # logger.conf. That makes every healthcheck CLI connection log a # "Remote UNIX connection" pair: ~2900 lines/day of pure noise that # completely buried the real SIP events in Loki. # # -f foreground (required: Docker needs PID 1 to stay), -T timestamps, # -W colour off, -U run as asterisk, -p realtime priority. No -v, no -d: # warnings and errors still log, and verbosity can be raised at runtime # with `asterisk -rx "core set verbose 3"` when tracing a call. command: ["/usr/sbin/asterisk", "-f", "-T", "-W", "-U", "asterisk", "-p"] restart: unless-stopped