Started as the SIP_ENGINE row flagged in the last commit. Cross-checking the tables against config.py mechanically (rather than by eye) turned up more, including two entries that were actively wrong. Corrections: - GATEWAY_RTP_PORT_MIN/MAX and GATEWAY_HOST are documented in configuration.md but do not exist — no code reads them and they are absent from .env.example. Setting them today does nothing. Replaced with the real GATEWAY_SIP_ fields (host/port/domain). - GATEWAY_SIP_PORT was documented as 5080 in two places; the code and .env.example both say 5060. - DATABASE_URL was documented with a SQLite default. There is none, and startup exits if it is unset. Additions — every env var the models accept is now documented somewhere (verified bidirectionally: nothing in the models undocumented, nothing documented that the models reject): - Server section: HOST, PORT, DEBUG, LOG_LEVEL, LOG_FORMAT - Safety section: MAX_CONCURRENT_CALLS, USE_MOCK_SIP, SIP_ENGINE - Receptionist section (configuration.md had none, though seven vars exist) Structural staleness, from the PR #8 media-plane work: - core/pjsua_engine.py was absent from the component list and file tree; so were dial_plan.py (the emergency guard) and sip_engine.py. - architecture.md's banner still read "media plane in transition". The engine landed; it is now two selectable engines with the audio consequence stated. - Tech Stack described "single-process async architecture" — the simplification CLAUDE.md explicitly calls out. Now points at the threading model, since there are three execution contexts. - The Asterisk lab shipped in PR #8 with its own README but nothing linked to it. Linked from the test section and both doc indexes. - CLAUDE.md's "no structured JSON logging" gap is closed; test count was 146 across 16 files, now 189 across 19. The other listed gaps (no /metrics, no rate limiting, no health-probe log filter) were re-verified and still hold. Deliberately not hardcoding a test count in the README — that is the same staleness this commit is clearing up. All internal links and anchors verified to resolve; 189 tests pass; lint unchanged at its 216 baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
22 lines
1.3 KiB
Markdown
22 lines
1.3 KiB
Markdown
# Hold Slayer Documentation
|
|
|
|
Comprehensive documentation for the Hold Slayer AI telephony gateway.
|
|
|
|
## Contents
|
|
|
|
| Document | Description |
|
|
|----------|-------------|
|
|
| [Architecture](architecture.md) | System architecture, component diagram, data flow |
|
|
| [Core Engine](core-engine.md) | SIP engine, media pipeline, call manager, event bus |
|
|
| [Dial Plan](dial-plan.md) | Number normalisation and the emergency-number guard |
|
|
| [PJSUA2 Build](pjsua2-build.md) | Building the `pjsua2` bindings (not pip-installable) |
|
|
| [Asterisk Lab](../tests/lab/README.md) | The fake PSTN used for media validation |
|
|
| [Hold Slayer Service](hold-slayer-service.md) | IVR navigation, hold detection, human detection, transfer |
|
|
| [Audio Classifier](audio-classifier.md) | Waveform analysis, feature extraction, classification logic |
|
|
| [Services](services.md) | LLM client, transcription, recording, analytics, notifications |
|
|
| [Call Flows](call-flows.md) | Call flow model, step types, learner, CRUD API |
|
|
| [API Reference](api-reference.md) | REST endpoints, WebSocket protocol, request/response schemas |
|
|
| [MCP Server](mcp-server.md) | MCP tools and resources for AI assistant integration |
|
|
| [Configuration](configuration.md) | Environment variables, settings, deployment options |
|
|
| [Development](development.md) | Setup, testing, contributing, project conventions |
|