Asterisk SIP 自架 PBX
2026-04-22 Jarvis 語音 B 路 — Docker Asterisk + PJSIP,目標讓 vampire iPhone Linphone 撥到 Mac Studio 上的 CC bot
Asterisk SIP 自架 PBX(B 路)
已完成
andrius/asterisk:latestDocker image 拉好- 容器
asterisk跑在 port 5060 UDP + RTP 10000-10100 ~/jarvis/asterisk-config/pjsip.conf兩個分機:1001 (vampire) / 1002 (CC bot)~/jarvis/asterisk-config/extensions.confdialplan:6000 echo test / 6001 playback test / 1001/1002 互撥
Linphone 設定(vampire 家裡 Wi-Fi 測)
SIP 帳號:
Username: 1001
Password: vampire2026pw
Domain: 192.168.88.10:5060
Transport: UDP
iOS Linphone 在 App Store 搜「Linphone」免費下載。
測試流程
- iPhone 同 Wi-Fi → Linphone 設帳號 → 右上綠色連線
- 撥
6000→ 講話自己會聽到(echo 測試音訊) - 撥
6001→ 聽到「hello world」(驗證播放)
外網打通(待做)
Mac Studio + iPhone 雙裝 Tailscale
- brew install tailscale 然後 sudo tailscale up
- vampire 掃 QR code 加入同一 tailnet
- Linphone Domain 改成 tailnet IP 100.x.x.x:5060
- 4G 一樣能撥
AI 接入(待做,週末)
Asterisk → AudioSocket → Pipecat pipeline - 分機 9999 設為「呼叫 CC bot」 - AudioSocket 協議把音訊流丟給 Pipecat server - Pipecat 跑 Whisper → Gemini/Claude → Edge TTS 回流 - vampire 撥 9999 → 接通 → 對話
Docker 管理指令
docker logs asterisk # 看 log
docker exec asterisk asterisk -rx "pjsip show endpoints" # 看分機狀態
docker restart asterisk
docker stop asterisk
為什麼選這條
- vampire 要「切 App 不斷」的真電話感
- Linphone + CallKit 讓來電像 iPhone 原生電話(鎖屏亮屏震動)
- 全部自架不用 Twilio / eSIM / Apple / Google,只用家裡 Mac Studio
How to apply
- vampire 提「SIP / Linphone / Asterisk / 電話 / 賈維斯」→ 接這條
- 週末動工 Pipecat AI 接入