48 lines
1.3 KiB
YAML
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
|