# 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 # 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 restart: unless-stopped