Files
ai-operator/docs/asterisk-routing.md
T

91 lines
2.0 KiB
Markdown

# Asterisk Routing
## Current State
Production Kazakhtelecom inbound routing remains unchanged.
Current production contexts:
- `from-telecom`
- `from-telecom-sales`
Both still route to the existing AudioSocket entrypoint:
```text
from-softphones,7100,1
```
The current AudioSocket route is preserved as the rollback path. It uses the existing local AudioSocket service and `slin16` media path.
A test-only Stasis route has been added for future controlled ARI testing. The Stasis app name is:
```text
ai-operator
```
## Test Route
Context:
```text
ai-operator-test
```
Extension:
```text
7199
```
Softphone entrypoint:
```text
7199@from-softphones
```
Dialplan behavior:
```text
Stasis(ai-operator,test)
```
The route does not call `Answer()`. The future Go ARI Call Manager is expected to answer the channel.
Purpose:
- controlled test route for TZ-03 ARI Call Manager;
- controlled test route for TZ-04 Media Gateway;
- not a production Kazakhtelecom route.
Warning: do not call this route before the Go ARI service is ready except for a controlled expected-failure test. Without an active ARI app, Asterisk may reject or end the call path.
## Future Production Switch
Switch production Kazakhtelecom routes to `Stasis(ai-operator,production,...)` only after:
- TZ-03 ARI Call Manager is implemented;
- TZ-04 Media Gateway is implemented;
- a controlled softphone test succeeds;
- rollback has been confirmed;
- Kazakhtelecom SIP registration no-response is resolved or production testing is otherwise approved.
Do not switch `from-telecom` or `from-telecom-sales` during skeleton or unit-test work.
## Rollback
Rollback target:
```text
Goto(from-softphones,7100,1)
```
Rollback procedure:
1. Restore the AudioSocket route for the affected production DID or pattern.
2. Remove or disable the production `Stasis(ai-operator,production,...)` route.
3. Confirm there are no active calls.
4. Run `dialplan reload`.
5. Verify `7100@from-softphones` still exists.
Reference patches are stored outside the repository in `/tmp/ai-operator-tz02` for this TZ.