feat: activate mod_xml_curl with b2bcall-fs-config (agente.md secao 26)
- apps/freeswitch-config (b2bcall-fs-config): Fastify service implementing the mod_xml_curl HTTP protocol (form-encoded POST -> XML response), containerized, no host port published - reactivated mod_xml_curl in FreeSWITCH, binding restricted to directory|dialplan only (configuration was removed after testing showed it firing several unnecessary HTTP round-trips at boot for module configs we don't need dynamic — matches agente.md's own 'don't put every critical config through XML Curl' guidance) - no extensions/dialplan tables exist yet (next phases), so the service always answers 'not found' for now — this phase only proves the wire protocol works without breaking the static vanilla config fallback - verified end-to-end: user/8888 (nowhere) -> SUBSCRIBER_ABSENT via fs-config; user/1000 (static vanilla extension) -> USER_NOT_REGISTERED, proving FreeSWITCH correctly falls through to static XML when xml_curl says not found - docs/XML_CURL.md, including the not-yet-authenticated endpoint note (fine while it only returns not-found; needs gateway-credentials before serving real directory/dialplan data)
This commit is contained in:
@@ -32,6 +32,20 @@ services:
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
fs-config:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: apps/freeswitch-config/Dockerfile
|
||||
container_name: b2bcall-fs-config
|
||||
restart: unless-stopped
|
||||
# Sem porta publicada: so o FreeSWITCH (mesma rede do compose) chama isto.
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "fetch('http://localhost:8080/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
start_period: 10s
|
||||
|
||||
freeswitch:
|
||||
build:
|
||||
context: ./infrastructure/freeswitch
|
||||
@@ -39,6 +53,8 @@ services:
|
||||
- freeswitch_pat
|
||||
container_name: b2bcall-freeswitch
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- fs-config
|
||||
environment:
|
||||
ESL_PASSWORD: ${ESL_PASSWORD}
|
||||
# Nenhuma porta publicada no host: SIP/RTP ainda não têm troncos reais
|
||||
|
||||
Reference in New Issue
Block a user