feat(asterisk): add telecom.kz IP trunk for DID 87273901485

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>
This commit is contained in:
Yera All
2026-04-16 01:19:06 +05:00
co-authored by Claude Opus 4.6
parent 0d7e833a0d
commit 436821737e
5 changed files with 82 additions and 0 deletions
+3
View File
@@ -11,6 +11,7 @@ password_1001="${ASTERISK_ENDPOINT_1001_PASSWORD:-${ASTERISK_AMI_SECRET:-ChangeM
password_2001="${ASTERISK_ENDPOINT_2001_PASSWORD:-${ASTERISK_AMI_SECRET:-ChangeMe-2001}}"
password_2002="${ASTERISK_ENDPOINT_2002_PASSWORD:-${ASTERISK_AMI_SECRET:-ChangeMe-2002}}"
ami_secret="${ASTERISK_AMI_SECRET:-ChangeMe-AmiSecret}"
telecom_kz_password="${ASTERISK_TELECOM_KZ_PASSWORD:-ChangeMe-TelecomKzPassword}"
external_address="${ASTERISK_EXTERNAL_ADDRESS:-92.38.48.166}"
mkdir -p /etc/asterisk "$monitor_dir" "$primary_sounds_dir" "$legacy_sounds_dir" "$keys_dir"
@@ -23,6 +24,7 @@ export ASTERISK_PASSWORD_1001="$password_1001"
export ASTERISK_PASSWORD_2001="$password_2001"
export ASTERISK_PASSWORD_2002="$password_2002"
export ASTERISK_MANAGER_SECRET="$ami_secret"
export ASTERISK_TELECOM_KZ_PASSWORD_VALUE="$telecom_kz_password"
export ASTERISK_EXTERNAL_ADDRESS_VALUE="$external_address"
python3 - <<'PY'
@@ -34,6 +36,7 @@ replacements = {
"ChangeMe-2001": os.environ["ASTERISK_PASSWORD_2001"],
"ChangeMe-2002": os.environ["ASTERISK_PASSWORD_2002"],
"ChangeMe-AmiSecret": os.environ["ASTERISK_MANAGER_SECRET"],
"ChangeMe-TelecomKzPassword": os.environ["ASTERISK_TELECOM_KZ_PASSWORD_VALUE"],
"92.38.48.166": os.environ["ASTERISK_EXTERNAL_ADDRESS_VALUE"],
}
+17
View File
@@ -117,3 +117,20 @@ exten => h,1,StopMixMonitor()
[mvpcc-operators]
exten => _X.,1,Dial(PJSIP/${EXTEN},30)
same => n,Hangup()
;=======================================================================
; Inbound context for Telecom.kz IP-trunk (endpoint [telecom-kz]).
; Routes the production DID 87273901485 straight into the AI-first
; voice lab entrypoint (7100). AudioSocket failure falls back to
; live operators inside the 7100 flow.
;=======================================================================
[from-telecom]
exten => 86205414,1,NoOp(Incoming from telecom.kz DID 87273901485 -> AI)
same => n,Set(CALLERID(dnid)=87273901485)
same => n,Goto(from-softphones,7100,1)
exten => 87273901485,1,NoOp(Incoming from telecom.kz DID 87273901485 -> AI)
same => n,Goto(from-softphones,7100,1)
exten => _X.,1,NoOp(Incoming from telecom.kz, DID=${EXTEN})
same => n,Goto(from-softphones,7100,1)
+40
View File
@@ -82,3 +82,43 @@ type=aor
max_contacts=1
remove_existing=yes
support_path=yes
;=======================================================================
; Telecom.kz IP-trunk (no registration, identified by source IP).
; DID: 87273901485
; SIP account: 86205414@sip.telecom.kz
; Password is injected at container start from ASTERISK_TELECOM_KZ_PASSWORD
; (see deployment/asterisk/entrypoint.sh).
;=======================================================================
[telecom-kz-aor]
type=aor
contact=sip:sip.telecom.kz:5060
qualify_frequency=60
[telecom-kz-auth]
type=auth
auth_type=userpass
username=86205414
password=ChangeMe-TelecomKzPassword
[telecom-kz]
type=endpoint
context=from-telecom
disallow=all
allow=alaw,ulaw
aors=telecom-kz-aor
outbound_auth=telecom-kz-auth
from_user=86205414
from_domain=sip.telecom.kz
direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
trust_id_inbound=yes
send_rpid=yes
language=ru
[telecom-kz-identify]
type=identify
endpoint=telecom-kz
match=92.46.61.21