mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-07-25 12:01:04 +02:00
add vici specific configs
This commit is contained in:
parent
8d0be05d71
commit
991dff655b
2 changed files with 61 additions and 15 deletions
|
|
@ -3,9 +3,10 @@
|
|||
# instead of pulling them from a registry. Remove this file to revert to
|
||||
# pulling prebuilt images.
|
||||
#
|
||||
# NOTE: also carries the POC pbx-net attachment (see api.networks below). If
|
||||
# setup_remote.sh regenerates this file, re-add the api networks block and the
|
||||
# external pbx-net declaration, otherwise dograh->VICIdial API calls will time out.
|
||||
# NOTE: VICIdial now runs on a SEPARATE server, so there is no shared pbx-net —
|
||||
# the api container reaches VICIdial's agent API over normal egress (set
|
||||
# VICIDIAL_API_URL in .env). If setup_remote.sh regenerates this file it only
|
||||
# restores the build blocks below, which is exactly what we want.
|
||||
services:
|
||||
api:
|
||||
build:
|
||||
|
|
@ -13,12 +14,6 @@ services:
|
|||
dockerfile: api/Dockerfile
|
||||
image: dograh-local/dograh-api:local
|
||||
pull_policy: never
|
||||
# POC: attach api to the VICIdial PBX LAN so its Python (upstream_pbx.py)
|
||||
# can reach VICIdial's agent API at 10.10.10.15. Without this the
|
||||
# ra_call_control HANGUP/TRANSFER calls time out. Survives recreate.
|
||||
networks:
|
||||
- app-network
|
||||
- pbx-net
|
||||
|
||||
ui:
|
||||
build:
|
||||
|
|
@ -26,9 +21,3 @@ services:
|
|||
dockerfile: ui/Dockerfile
|
||||
image: dograh-local/dograh-ui:local
|
||||
pull_policy: never
|
||||
|
||||
# pbx-net is created/managed outside this compose project (the LXD/PBX bridge),
|
||||
# so reference it as external — compose attaches to it but won't create/destroy it.
|
||||
networks:
|
||||
pbx-net:
|
||||
external: true
|
||||
|
|
|
|||
|
|
@ -164,6 +164,24 @@ services:
|
|||
# from this value and nginx load-balances across them with least_conn.
|
||||
FASTAPI_WORKERS: "${FASTAPI_WORKERS:-1}"
|
||||
|
||||
# VICIdial call control. When an inbound call is patched in from VICIdial
|
||||
# over the SIP trunk, the customer's real leg lives THERE, not on dograh's
|
||||
# Asterisk — so the AI's hangup/transfer is driven via VICIdial's agent API
|
||||
# (api/services/telephony/upstream_pbx.py). VICIdial runs on a SEPARATE
|
||||
# server: point these at its reachable agent API (the api container reaches
|
||||
# it over normal egress). Leave VICIDIAL_API_URL unset to disable.
|
||||
VICIDIAL_API_URL: "${VICIDIAL_API_URL:-}"
|
||||
VICIDIAL_API_USER: "${VICIDIAL_API_USER:-}"
|
||||
VICIDIAL_API_PASS: "${VICIDIAL_API_PASS:-}"
|
||||
VICIDIAL_API_SOURCE: "${VICIDIAL_API_SOURCE:-dograh}"
|
||||
# VICIdial non-agent API (update_lead, e.g. tagging address3=MEDICAID=Y
|
||||
# before a transfer). Separate endpoint (non_agent_api.php) and creds from
|
||||
# the agent API above. Leave VICIDIAL_NON_AGENT_API_URL unset to disable.
|
||||
VICIDIAL_NON_AGENT_API_URL: "${VICIDIAL_NON_AGENT_API_URL:-}"
|
||||
VICIDIAL_NON_AGENT_API_USER: "${VICIDIAL_NON_AGENT_API_USER:-}"
|
||||
VICIDIAL_NON_AGENT_API_PASS: "${VICIDIAL_NON_AGENT_API_PASS:-}"
|
||||
VICIDIAL_NON_AGENT_API_SOURCE: "${VICIDIAL_NON_AGENT_API_SOURCE:-dograh}"
|
||||
|
||||
# Trust X-Forwarded-* headers from any peer so uvicorn honors nginx's
|
||||
# `X-Forwarded-Proto: https`. nginx runs as its own container and reaches
|
||||
# uvicorn from a Docker-network IP (not loopback), but uvicorn trusts only
|
||||
|
|
@ -262,6 +280,45 @@ services:
|
|||
networks:
|
||||
- app-network
|
||||
|
||||
# dograh-asterisk — SIP/ARI gateway. A remote VICIdial SIP-trunks in here;
|
||||
# calls route to Stasis(dograh) and dograh's ari_manager (in the api container)
|
||||
# takes over: it reaches ARI at http://dograh-asterisk:8088 and Asterisk
|
||||
# streams externalMedia audio back to ws://api:8000/api/v1/telephony/ws/ari —
|
||||
# both over this compose network, so ARI/8088 is deliberately NOT published.
|
||||
asterisk:
|
||||
build:
|
||||
context: ./asterisk
|
||||
dockerfile: Dockerfile
|
||||
image: dograh-asterisk:22
|
||||
container_name: dograh-asterisk
|
||||
restart: unless-stopped
|
||||
# Asterisk is started with `-c` (interactive console). Without a TTY, its
|
||||
# console read-loop hits instant EOF on stdin (/dev/null) and busy-spins,
|
||||
# pinning a CPU core and spewing NUL bytes to stdout (77GB of logs in a day).
|
||||
# Allocating a pty gives the console a blocking stdin, so it idles instead.
|
||||
tty: true
|
||||
stdin_open: true
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
# Config is dir-mounted from ./asterisk/etc — edit the .conf files on the host
|
||||
# and apply with `docker exec dograh-asterisk asterisk -rx "module reload
|
||||
# res_pjsip.so"` (or `dialplan reload`), no image rebuild. Host-specific values
|
||||
# (public IP, ARI password, ws URI, RTP ports) are set literally in those
|
||||
# files, so there are no env vars to configure here. Transport/port changes
|
||||
# still need a container restart.
|
||||
volumes:
|
||||
- ./asterisk/etc:/etc/asterisk
|
||||
ports:
|
||||
- "${ASTERISK_SIP_PORT:-5060}:5060/udp" # SIP signalling
|
||||
- "10000-10020:10000-10020/udp" # RTP media (must match rtp.conf rtpstart/rtpend)
|
||||
networks:
|
||||
- app-network
|
||||
depends_on:
|
||||
- api
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
redis_data:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue