MemPalace · Wiki
專案 / Project

Asterisk SIP 自架 PBX

2026-04-22 Jarvis 語音 B 路 — Docker Asterisk + PJSIP,目標讓 vampire iPhone Linphone 撥到 Mac Studio 上的 CC bot

檔名 project_asterisk_sip.md · 修改 2026-04-22 18:42 · session 1675278e

Asterisk SIP 自架 PBX(B 路)

已完成

  • andrius/asterisk:latest Docker image 拉好
  • 容器 asterisk 跑在 port 5060 UDP + RTP 10000-10100
  • ~/jarvis/asterisk-config/pjsip.conf 兩個分機:1001 (vampire) / 1002 (CC bot)
  • ~/jarvis/asterisk-config/extensions.conf dialplan: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」免費下載。

測試流程

  1. iPhone 同 Wi-Fi → Linphone 設帳號 → 右上綠色連線
  2. 6000 → 講話自己會聽到(echo 測試音訊)
  3. 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 接入

← 回索引