將 Twilio SIP 中繼連接到 Wixzel Voice
若要在 Twilio 號碼上執行 AI 語音代理,請將 Twilio Elastic SIP Trunking 連接到 Wixzel Voice:將中繼回傳的 platform_ip 加入 IP Access Control List,讓外撥通話被接受,並將 Origination SIP URI 設為 它的 origination_uri,讓來電能夠抵達。Twilio 會繼續以您的費率向您收取線路費用;Wixzel Voice 則從預付餘額中按秒收取語音引擎的費用。
最後更新於
發布於
Twilio 是電信業者;Wixzel Voice 是在其上執行代理的語音 AI API。兩者透過標準 SIP 協同運作。Twilio 是其所有者的商標,Wixzel Voice 與 Twilio 沒有關聯,也未獲得 Twilio 的背書。
開始之前需要準備什麼?
- 具備 Elastic SIP Trunking 的 Twilio 帳號,以及中繼的主機和憑證。
- 一個您在 Twilio 擁有的電話號碼,並已附加到該中繼。Wixzel Voice 不販售號碼,也不提供號碼移轉。 如果您從主控台連接 Twilio 帳號,也可以從「電話號碼」頁面在該帳號上購買號碼。Twilio 會以其價格計費。
- 一把 Wixzel Voice API 金鑰和一些預付點數。最低儲值金額為 $5;沒有免費方案。
- Wixzel Voice 預設每個帳號可同時進行 5 通通話,可依需求提高;網頁和應用程式工作階段也計入同一個上限。
如何在 Wixzel Voice 中建立 Twilio 中繼?
Twilio 在中繼上顯示的 Termination SIP URI,也就是主控台中同一個 your-domain.pstn.twilio.com。
curl https://api.voice.wixzel.com/v1/sip-trunks \
-H "Authorization: Bearer $WIXZEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Twilio",
"host": "your-domain.pstn.twilio.com",
"transport": "udp"
}'如果 Twilio 以憑證而非 IP 進行驗證,請在 body 中加入 username 和 password。密碼會加密儲存,API 之後也不會再回傳。回應中包含 platform_ip 和 origination_uri:下一步需要這兩個值。
要在 Twilio 設定什麼?
| 設定 | Twilio 的名稱 | 值 |
|---|---|---|
| 允許來自 Wixzel Voice 的通話 | IP Access Control List | 187.126.120.231 |
| 將來電送到 Wixzel Voice | Origination SIP URI | sip:187.126.120.231:5090 |
兩個值都以當下為準:請從 GET /v1/sip-trunks 讀取 platform_ip 和 origination_uri,不要從頁面上複製。接著用 POST /v1/phone-numbers 將每個號碼註冊到中繼,並設定 inbound_agent_id,讓代理接聽。 AI 電話通話 API 逐步說明中有這些請求,Twilio 的完整設定步驟則逐一說明主控台中的每個欄位。
在 Twilio 上會出什麼問題?
- Twilio 依來源 IP 授權外撥通話,其他來源一律立即拒絕。IP ACL 缺少項目時,會在撥出後約一秒立即被拒絕,
failure_code為 21(通話被拒絕)。不會響鈴,也不會逾時。 - 沒有 Origination URI 時外撥仍可運作;來電則不行,而且不會有任何錯誤訊息。號碼已附加、代理已指派,但電話就是永遠不會轉到代理。
- Twilio 要求撥打的號碼前面有
+,因此請將send_plus保持預設值true。
為什麼透過 Twilio 的通話沒有接通?
在 Twilio 上最常見的失敗代碼:
| failure_code | 電信業者回報 | 意思 | 處理方式 |
|---|---|---|---|
| 21 | 403 / 407 | 電信業者在嘗試撥打號碼之前就直接拒絕了通話。 | 依可能性排序:電信業者帳號已停權、已關閉或餘額不足;中繼的使用者名稱或密碼錯誤;platform_ip 未加入允許清單;或來電顯示號碼未在帳號上授權。請先檢查電信業者的 Dashboard。 |
被 Twilio 拒絕的通話會帶有 status: "failed"、failure_code(電信業者回傳的 Q.850 原因碼),以及說明該怎麼處理的 failure_reason,而且不會產生任何費用。 所有失敗代碼、所有拒絕原因,以及如何為中繼除錯都在電信業者頁面上。
透過 Twilio 的 AI 通話費用是多少?
Twilio 以您的費率向您收取線路費用;Wixzel Voice 只收取語音引擎的費用,依實際用量按秒計費,從 gemini-live 的每接通分鐘 $0.0491,到 deepgram-agent 的 $0.1851。 每個引擎的價格。
常見問題
為什麼我的 Twilio 通話在一秒內就被拒絕?
failure_code 為 21 且沒有響鈴,表示 Twilio 在路由之前就拒絕了它。在 Twilio 上,這幾乎都是 Termination IP Access Control List 的問題:將 187.126.120.231(您的中繼回傳的 platform_ip)加入其中。若通話被接受、幾秒後才失敗,則是另一個問題:路由、號碼格式或帳號權限。可以用 Twilio Credential List 取代 IP ACL 嗎?
username 和 password 欄位,它們就會取代 IP 驗證。密碼會加密儲存,API 也不會再回傳它。其他電信業者
以 IP 驗證的 SIP Connection。將平台 IP 加入為授權位址、選擇來電區域,並讓傳輸協定一致。
Zentrunk。一個在 IP ACL 中加入平台 IP 的外撥中繼,以及一個 Primary URI 指向平台的獨立來電中繼。
Programmable SIP。在 SIP Dashboard 中將平台 IP 加入中繼的 ACL,並將來電送到 origination URI。
不支援 SIP REGISTER,因此必須使用固定 IP。將平台 IP 加入 location,分別設定 Termination 和 Origination,或使用 network bridge 憑證。
Virtual SIP Trunking (vSIP),適用於印度號碼,透過 TCP。將平台 IP 以 ACL 對應到中繼,並將 Destination URI 指向平台的 TCP 連接埠以接收來電。
以每條中繼專屬的 SIP 網域作為主機,將平台 IP 加入中繼的 IP ACL,而「origination URI」的意思與 Twilio 上相反。
Saudi Arabia, ordered through Mobily Business sales and delivered over a private link. No one-step connect: your own SBC on the link relays calls, with G.711 A-law and a one-hour call cap.
各家的做法都相同:將平台 IP 加入允許清單、將來電目的地設為 origination URI,並讓號碼格式和傳輸協定一致。
中繼的兩個部分如何運作、所有失敗代碼,以及每份電信業者指南,都在同一頁。

