Enables the new Routing Engine for the Tele2 Kazgaz DID +77476456048
(lands on queue 7100/voice_lab_ai): AI handoff now reserves a real L2
agent from the pool instead of the static extension redirect.
Streaming TTS caused poor voice quality in live testing on Creator
plan too — not just a quota-era fluke. Reverting to non-streaming
synthesis until the root cause is understood.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Lower AI_VOICE_VAD_TRAILING_SILENCE_MS from 500 to 350 so the bot
starts responding sooner after the caller stops speaking.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Swap RU and KK TTS voice IDs to "Nataly Mi Soft voice" — a soft,
gentle, young female voice verified for Russian on eleven_turbo_v2_5.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
AudioSocket was delivering 16kHz audio despite the telecom-kz trunk being
codec-restricted to alaw/ulaw, causing the 8k->16k ASR resample to double
an already-16kHz stream to an effective 32kHz labeled as 16000 Hz -
audible as slow, deep-pitched, unintelligible speech. Force
audioread/writeformat=slin before AudioSocket() so the channel always
delivers narrowband 8kHz, matching every rate assumption in the runtime.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A separate deployment on the same host (aimaq-call-center) already binds
127.0.0.1:9019, so this project's ai-voice-runtime-service could never
start there. Remap the host side to 9024 and point Asterisk's
AudioSocket target at the new port; the container still listens on 9019
internally.
Wires the production number 87273901485 (SIP account 86205414@sip.telecom.kz)
into the voice stack as a no-registration IP trunk. Inbound INVITEs are
identified by source IP 92.46.61.21 and routed straight into the AI-first
entrypoint (7100), with the existing AudioSocket -> live operator fallback
preserved.
The Asterisk container was also never started by the source-based CI deploy
(only the registry-based path brought it up). Patch scripts/deploy_gitlab.sh
to also run docker-compose.asterisk.server.yml so the voice channel stays in
sync with the rest of the platform on every push to the default branch.
- deployment/asterisk/pjsip.conf: add telecom-kz aor/auth/endpoint/identify
- deployment/asterisk/entrypoint.sh: inject ASTERISK_TELECOM_KZ_PASSWORD
- deployment/asterisk/extensions.conf: new [from-telecom] context -> 7100
- .env.production.template: document ASTERISK_TELECOM_KZ_PASSWORD
- scripts/deploy_gitlab.sh: also bring up the asterisk compose file
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>