📞Layer 1: Voice Edge
電話の入口(HGW / Asterisk / bridge)。現状運用と Phase C v2 の違い。
電話の物理的な入口(Voice Edge)。ひかり電話 HGW で着信を受け、Asterisk から
AudioSocket で bridge.py に渡し、OpenAI Realtime で判定します。
構成図
現状運用 と Phase C v2 の違い
spam は Hangup(fail-safe=遮断)、判定不能・障害は 人へ取次(fail-open=業務継続)。 全切断(fail-closed)は採用していません(C-2(b) で廃止)。詳細は用語集へ。
主要パラメータ
- AudioSocket:
127.0.0.1:9092(μlaw 8kHz ↔ PCM16 24kHz リサンプル。GA のaudio/pcmu直送にも対応し、その場合はリサンプルをバイパス=下記) - AMI:
127.0.0.1:5039(B案・本線:Statusで対象チャンネルを逆引きしHangup。旧 A案のDBPut/ AstDB verdict は退避) - OpenAI Realtime:
gpt-realtime(GA)。接続は/v1/realtime - dialplan placeholder:
<ALLOW_DESTINATION>(allow 転送先) /<HUMAN_PEER>(fail-open 取次先)
OpenAI Realtime の Beta API は 2026-05-12 に廃止されました。bridge.py は GA(gpt-realtime)へ移行済みで、
実 OpenAI に対し live 検証済みです(接続 / session.update 受理 / classify_call 発火 / 分類 → 締めの一言 → AMI Hangup の通し)。
旧 Beta 前提のヘッダ・記述は残していません。
GA は入出力とも audio/pcmu(μlaw)を受理します。bridge.py は μlaw 直送に対応し、この場合
8kHz μlaw ↔ 24kHz PCM のリサンプルをバイパスします(環境変数 AUDIO_FORMAT=ulaw で opt-in)。
**デフォルトは pcm16(現行のリサンプル経路)**のままで、pcm16 と μlaw で 判定一致を実測済み。
実機 HGW での確認後にデフォルト化を検討します。
判定→切断の実装は B案(function calling + AMI Hangup)が本線です。AI が should_terminate を返し、
締めの一言の後に bridge.py が AMI 経由で対象チャンネルを切ります。旧 A案(AstDB verdict 経由)は退避し、
実機での B案 動作確認後に旧経路を撤去予定です。