Files

48 lines
1.3 KiB
YAML

name: asterisk-ari
services:
asterisk1:
image: andrius/asterisk:latest
container_name: ast1
volumes:
- ./conf/http.conf:/etc/asterisk/http.conf:ro
- ./conf/ari.conf:/etc/asterisk/ari.conf:ro
- ./conf/pjsip.conf:/etc/asterisk/pjsip.conf:ro
- ./conf/rtp.conf:/etc/asterisk/rtp.conf:ro
ports: ["8088:8088"]
restart: unless-stopped
networks: [astari]
# 第二个 Asterisk 节点: 无共享状态, 出站外呼各自独立 (水平扩展验证)
asterisk2:
image: andrius/asterisk:latest
container_name: ast2
volumes:
- ./conf/http.conf:/etc/asterisk/http.conf:ro
- ./conf/ari.conf:/etc/asterisk/ari.conf:ro
- ./conf/pjsip.conf:/etc/asterisk/pjsip.conf:ro
- ./conf/rtp.conf:/etc/asterisk/rtp.conf:ro
ports: ["8089:8088"]
restart: unless-stopped
networks: [astari]
profiles: [scale]
# Mock SIP 运营商 (UAS): 应答 Asterisk 的出站 INVITE
mock-provider:
image: python:3.12-alpine
container_name: ast-mock-provider
working_dir: /app
command: python mock/mock-provider.py
volumes:
- ./mock:/app/mock:ro
environment:
SIP_PORT: "5060"
RTP_PORT: "40000"
RING_DELAY: "1.5"
restart: unless-stopped
networks: [astari]
networks:
astari:
driver: bridge