---
title: "連接 VoIP 供應商"
description: "連接你已在使用的供應商（透過 API 金鑰連接 Twilio 或 Telnyx；透過 SIP 連接 SignalWire、Vonage、Plivo 或任何 SIP 中繼），或透過引導式設定開設新的 Telnyx 帳戶。"
---

正式流量應透過你自有的號碼與自己的 VoIP 供應商執行。控制台的 **連線 → VoIP** 頁面
（`/dashboard/voip-connections`）可連結你的供應商帳號；連結完成後，即可匯入支援撥入**與撥出**通話的號碼。

點選 **新增連線**，然後選擇以下兩種方式之一：**連接你已在使用的供應商**，或 **設定新的 Telnyx 帳戶**。

## 連線你已在使用的供應商

選擇你的號碼所屬的供應商：

| 供應商 | 連線方式 |
|----------|-----------------|
| Twilio | API 金鑰：貼上你的 Account SID 和 Auth Token |
| Telnyx | API 金鑰：貼上你的 v2 API 金鑰 |
| SignalWire | SIP 設定 |
| Vonage | SIP 設定 |
| Plivo | SIP 設定 |
| 其他供應商 | 透過 ThunderPhone 的設定精靈進行 SIP 設定，適用於其他任何電信業者或你自行管理的 PBX |

對於 Twilio 和 Telnyx，貼上憑證後按一下 **連線並測試**。ThunderPhone 會驗證憑證，並為你設定供應商端。
對於 Telnyx，ThunderPhone 會在你的 Telnyx 帳戶中新增一個自己的 SIP 連線（名稱為 `thunderphone-production-<org>-outbound-<id>`），並透過該連線撥出電話，因此 Telnyx 會向你收取這些通話費用。它會使用你的號碼所在 Telnyx 連線的撥出語音設定檔，因此該設定檔允許的國家和支出上限也會套用。如果該連線沒有撥出語音設定檔，而你的帳戶恰好有一個已啟用的設定檔，ThunderPhone 就會使用該設定檔。若要改用其他設定檔，請在 Telnyx 入口網站中將其指派給該連線，然後再次儲存 ThunderPhone 連線。如果帳戶沒有已啟用的設定檔，或有多個已啟用的設定檔，請在 Telnyx 入口網站中將其中一個指派給該連線，然後再次儲存 ThunderPhone 連線。在此之前，撥出電話會因 `outbound_trunk_unavailable` 而失敗；撥入電話仍可正常運作。

當 Telnyx 拒絕撥出電話時（例如 SIP 403 Forbidden），拒絕原因來自你自己的 Telnyx 帳戶。常見原因包括沒有可用餘額、來電顯示號碼不在該 Telnyx 帳戶中，或撥出語音設定檔不允許目的地國家。

### SignalWire、Vonage 和 Plivo 的 SIP 設定

這三個選項會開啟[手動 SIP 表單](#manual-sip-configuration)，表單頂端會顯示該供應商的操作步驟、供應商自身設定指南的連結，以及範例 SIP 網域：

- **SignalWire 設定**：為撥出電話建立 SIP 憑證，輸入 SIP 網域、使用者名稱和密碼，並為每個號碼設定 SWML 指令碼，將撥入電話連線至 ThunderPhone SIP 端點。
- **Vonage 設定**：在 SIP Trunking 控制台中，建立具有撥出憑證的 trunk，輸入其網域（例如 `your-trunk.sip-us.vonage.com`）和憑證，將 ThunderPhone SIP 端點新增為 trunk 的撥入 SIP URI，然後將你的號碼連結至該 trunk。
- **Plivo 設定**：建立具有憑證的撥出 trunk，並輸入其 Termination SIP Domain（`<trunk-id>.zt.plivo.com`）、使用者名稱和密碼；建立一個撥入 trunk，將其 Primary URI 設為 ThunderPhone SIP 端點，後接 `;transport=tcp`；接著將每個號碼的 Application Type 設為該 trunk。

結果會是手動 SIP 連線（API 中為 `provider: "manual"`），其測試與驗證方式完全與手動輸入的連線相同。連線卡片會顯示供應商名稱，例如 **SignalWire · SIP 連線**。

## 設定新的 Telnyx 帳戶

還沒有供應商嗎？引導流程會帶你建立 Telnyx
帳戶並連線：

<Steps>
  <Step title="建立帳號">
    按一下 **開啟 Telnyx 註冊頁面**，建立你的帳號，然後勾選
    「我已建立帳號」。
  </Step>
  <Step title="取得 API 金鑰">
    按一下 **開啟 API 金鑰頁面**，產生金鑰，並貼到
    **API 金鑰（v2）**。你也可以選擇為此連線命名。
  </Step>
  <Step title="連線並測試">
    按一下 **連線並測試** —— ThunderPhone 會驗證憑證，
    並在儲存前於 Telnyx 端佈建所需項目。
  </Step>
</Steps>

### ThunderPhone 在 Telnyx 中設定的項目

除非你輸入自己的連線 ID，否則兩種 Telnyx 方式（引導式
設定及貼上 API 金鑰）都會在你的 Telnyx
帳戶中留下相同設定：一個名為
`thunderphone-<your organization id>` 的 SIP 連線。這是一個 **FQDN 連線**，
其 FQDN 紀錄指向 ThunderPhone 的 SIP 端點，而你匯入的每個
號碼都會指派給它。Telnyx 會透過 SIP，將這些號碼的來電直接傳送至 ThunderPhone。

- 其 Webhook 欄位刻意留空。不會使用任何 Webhook、Call Control
  應用程式、TeXML 應用程式或已註冊的 SIP 電話。
- 請勿將匯入的號碼移至其他連線或應用程式，也不要在該連線上註冊裝置。
- 如果你在連接時輸入自己的連線 ID，ThunderPhone
  會改用該連線，且絕不會變更它；該連線必須是指向 ThunderPhone SIP
  端點的 FQDN 連線。

在 2026 年 8 月 30 日之前，ThunderPhone 建立的
`thunderphone-…` 連線是 **憑證連線**，無法接收來電。
如果你的連線仍顯示為憑證連線，請聯絡支援團隊，
我們會為你轉換。

## 手動 SIP 設定

SignalWire、Vonage 和 Plivo 方塊都會開啟此表單，**其他供應商**下的
**我要自行輸入所有設定**也會開啟此表單。任何 SIP 中繼都適用，包括 DIDWW 或你自行營運的 PBX。輸入連線名稱、**SIP 網域 / URI**、
選填的使用者名稱與密碼、連接埠及傳輸方式；**進階設定**
可新增媒體加密（SRTP）。表單也會顯示你的中繼必須將來電傳送至的 SIP
位址：`sip.thunderphone.com`，UDP 或 TCP 使用連接埠 5060，TLS 使用連接埠 5061。透過 TLS 時，SIP
訊號會一路保持加密至 LiveKit Cloud，由 ThunderPhone 在該處處理通話；音訊絕不會經過
`sip.thunderphone.com`，因此 SRTP 仍可如常運作。請將每通電話定址至以 E.164 格式表示的撥打號碼，並在請求行和 `To` 標頭中使用相同的號碼（包括
`+`）：例如
`sip:+14155550142@sip.thunderphone.com`。`+` 可讓
ThunderPhone 在正確的區域處理通話（請參閱
[IP 允許清單](#ip-allowlisting-and-trunk-authentication)下方的說明）。
先前使用 `<your-project>.sip.livekit.cloud`
位址設定的中繼，只要 **允許的來源 IP** 為空白即可繼續運作；你不需要變更它們。ThunderPhone
會將這些設定轉換為 LiveKit Cloud 上專用的一對 SIP 中繼：從連線號碼撥出的通話
會使用你的憑證撥至你的 SIP 網域；撥打至這些號碼的來電則可從任何位址接聽，除非你填入選填的 **允許的來源 IP** 欄位。
只有在你的電信業者公布固定訊號 IP 時才應填入此欄位：錯誤或不完整的清單會使 ThunderPhone 拒絕電信業者的來電。兩個按鈕會處理主要工作：

- **產生 AI 設定指南**——為你所需的中繼端設定撰寫供應商專屬說明。
- **測試並儲存連線**——確認 SIP 端點可解析為公開位址，並針對 TCP/TLS
  確認選定連接埠可接受連線（UDP 主機僅會進行 DNS 檢查），然後儲存。
  由於連線尚未有號碼，目前無法撥打通話；真正的驗證會在匯入時進行
  （如下所述）。

之後編輯連線時，系統會先依你變更後的設定重新執行相同檢查，確認無誤後才會儲存，接著重新建立中繼，並在背景透過短暫的測試通話重新驗證連線上的每個號碼——在測試通話成功前，號碼會顯示為 *佈建中*。在 *已連線*
的連線上只變更 **允許的來源 IP** 則不同：這絕不會影響撥出通話，因此
ThunderPhone 會立即更新來電中繼上的清單，號碼會維持 *啟用中*。其來電測試會重設為 *未測試*；
請再次執行測試，或透過你的電信業者撥打實際通話，以確認新清單允許通話進入。若測試通話依該清單會被拒絕，測試便會失敗。系統絕不會再次顯示已儲存的密碼；將密碼欄位留白即可保留密碼，或針對採用 IP 驗證的中繼勾選「移除已儲存的密碼」。

### IP 允許清單與中繼驗證

部分電信業者（DIDWW、Telnyx IP 驗證連線，以及多數位於防火牆後方的 PBX）只接受來自允許清單中位址的 SIP 流量，或透過來源 IP 驗證撥出通話。ThunderPhone 使用兩組位址。

**SIP 邊緣節點。** 你傳送至 `sip.thunderphone.com` 的撥入通話會經過 ThunderPhone 的 SIP 邊緣節點，該節點僅承載 SIP 訊號。第一個 INVITE 會傳送至 `sip.thunderphone.com`；其餘通話訊號（ACK、掛斷、轉接）則在你的電信業者與接聽該通話的邊緣伺服器 `sip-1` 或 `sip-2` 之間傳遞。若你的防火牆會篩選 SIP 訊號，請允許以下全部三個位址使用 UDP 與 TCP 連接埠 5060，以及 TLS 連接埠 5061：

| 主機 | IP 位址 |
|------|------------|
| `sip.thunderphone.com` | `172.170.39.202` |
| `sip-1.thunderphone.com` | `13.86.104.121` |
| `sip-2.thunderphone.com` | `20.80.98.90` |

**LiveKit Cloud。** 每通通話的音訊（RTP）以及撥出通話的 SIP 訊號，都在你的電信業者與 LiveKit Cloud 之間傳遞，絕不會經過 SIP 邊緣節點。請同時針對 SIP 訊號與媒體允許以下**所有**範圍：

{/* generated:livekit-static-ips:start */}
{/*
  GENERATED BLOCK — do not edit by hand.
  Source: scripts/docs-freshness/data/livekit-static-ips.json
  Regenerate: python3 scripts/docs-freshness/generate_livekit_static_ips.py
  CI regenerates this block and fails on drift
  (scripts/docs-freshness/generators.d/30-livekit-static-ips.sh).
*/}

| IP 範圍 |
|----------|
| `143.223.88.0/21` |
| `161.115.160.0/19` |
| `153.57.128.0/18` |

LiveKit 將這些範圍套用於 Realtime、SIP 信令和媒體以及 Webhook，涵蓋其加拿大、歐盟、印度、日本和美國區域所處理的通話。固定端點的區域名稱：`canada`、`eu`、`india`、`japan`、`us`。
{/* generated:livekit-static-ips:end */}

<Note>
  傳送至 `sip.thunderphone.com` 的通話會在涵蓋的區域中處理。`To` 標頭中帶有前置 `+` 的號碼，且具有日本、印度、EU/EEA、英國或瑞士國碼時，會傳送至該區域。其他所有通話則會在最接近 ThunderPhone SIP 邊緣節點的 LiveKit 區域處理，目前為美國。仍指向 `<your-project>.sip.livekit.cloud`
  位址的中繼線，會透過最接近來電者的 LiveKit 區域路由；若你的電信業者位於涵蓋區域外，該區域也可能不在涵蓋範圍內。請將其移至
  `sip.thunderphone.com`，或在 `.sip.livekit.cloud` 正前方插入區域名稱，以固定指定區域：例如
  `<your-project>.japan.sip.livekit.cloud`。撥入號碼比對不受影響。
</Note>

以下是中繼本身的幾項實務原則：

- **ThunderPhone 不會註冊。** 它絕不會向你的電信業者傳送 SIP `REGISTER`，因此請將中繼線設定為採用 IP 型和／或憑證（使用者名稱 + 密碼）驗證，而非註冊。
- **撥出通話應使用憑證。** 在電信業者端啟用使用者名稱／密碼驗證，並在手動 SIP 表單中輸入相同的值。請將 IP 允許清單視為第二層防護，而非唯一防護措施——撥往涵蓋區域外目的地的通話，可能會從其他位址發出。
- **撥入方向則相反。** 表單中的選用 **允許的來源 IP 位址** 欄位，可讓你輸入*你的電信業者*的訊號位址，使 ThunderPhone 僅接受來自這些位址的通話。請輸入 IP 位址或 CIDR 範圍；主機名稱永遠無法比對。除非你的電信業者公布固定清單，否則請保留空白。ThunderPhone 會針對每通撥入通話，以其 SIP 邊緣節點所見的位址檢查此清單，因此設定清單後，請將通話傳送至 `sip.thunderphone.com`。來自不在清單中的位址，或直接傳送至 `<your-project>.sip.livekit.cloud` 位址的通話，都會遭到拒絕：呼叫會失敗，或接通後立即結束。

LiveKit 在
[區域、區域端點和靜態 IP](https://docs.livekit.io/deploy/admin/regions/endpoints/)
發布這些範圍；ThunderPhone 每週檢查該頁面，並在內容變更時更新本指南。

## 連接後

從 **電話號碼 → 新增號碼 → 連接 VoIP
供應商** 匯入號碼（或直接從連線匯入）。每個匯入的號碼都會先經過驗證才會啟用。對於手動 SIP 連線，
驗證程序會**從你的號碼，經由你的 SIP 中繼線，撥打至一個 ThunderPhone 號碼**，進行一通短暫（數秒鐘）的測試通話——因此使用者名稱、密碼、傳輸方式及你的電信業者輸出路由都會實際接受測試。你的電信業者會如同一般通話般對這通電話計費。
如果電信業者拒絕通話，該號碼會維持在 *佈建中* 狀態，且電話號碼頁面會顯示電信業者的回應（例如「拒絕 ThunderPhone 的憑證（SIP 401）」）；請修正連線後再次驗證。如果你的電信業者接受中繼線，但其路由方案未涵蓋 ThunderPhone 的測試號碼（DIDWW 回覆「路由方案將目的地號碼列入黑名單」），該號碼會顯示為 *已驗證 · 電信業者已接受*：該號碼可供使用，但未測試撥打其他目的地的通話。該通電話可證明你的中繼線能以該號碼*撥出*電話；它無法證明你擁有該號碼，也不會測試*撥入*該號碼的通話；下方的選用來電測試可以完成這項測試。已驗證的號碼支援撥入與撥出——這會解鎖
[外撥行銷活動](/zh-Hant/guides/outbound-campaigns)及程式化
[外撥通話](/zh-Hant/guides/place-outbound-calls)。

### 來電測試

**驗證號碼**會開啟一個對話方塊，也可用於測試來電。測試會撥打你的號碼，確認通話是否到達 ThunderPhone，然後在不啟動你的智慧體的情況下掛斷：

- **具有自身外撥 SIP 中繼的號碼**（手動設定的 SIP 號碼，以及 ThunderPhone 在你的 Twilio 帳戶中設定外撥通話後的 Twilio 號碼）會先撥打自身號碼：ThunderPhone 會透過該中繼，以該號碼撥打該號碼。對話方塊會在撥打前通知你。通話會經由你的電信業者撥出；若你的來電路由設定正確，便會直接返回 ThunderPhone。當通話以該號碼本身的來電顯示返回時，這一通電話即可同時證明你的電信業者接受 ThunderPhone 以該號碼撥出的通話，以及撥往該號碼的通話可到達 ThunderPhone，無論在哪個國家皆然。部分電信業者會拒絕或無法接通從一個號碼撥打自身的通話；這不代表你的路由有問題，因此 ThunderPhone 會改用自己的其中一個號碼撥打。若你的號碼轉接至其他地方，該電話可能會響兩次：第一次顯示該號碼本身的來電顯示，第二次則顯示 ThunderPhone 的測試號碼。
- **其他號碼**（以及上述備援情況）會由 ThunderPhone 自己的其中一個號碼撥打。目前 ThunderPhone 僅能撥打美國和加拿大號碼；其他號碼的測試會顯示無法執行，若自撥通話遭拒，則會一併顯示你的電信業者回覆。

如果你的電信業者在通話途中變更來電顯示，ThunderPhone 就無法辨識該通話，因此你的智慧體可能會短暫接聽。來電測試為選用項目。即使略過測試，號碼仍可正常運作；電話號碼頁面會顯示 *尚未測試來電*，你可稍後透過 **測試** 或該號碼的 **測試來電** 選單項目執行測試。匯入後，電話號碼頁面也會要求你測試新號碼的來電。在對話方塊中確認前，不會撥出任何電話。

如果你的供應商將號碼轉送至其他地方，該號碼指向的目的地在 ThunderPhone 掛斷前，每通電話最多可能響 8 秒。若有其他項目先接聽（例如先接聽再轉接的 Twilio 應用程式，或電話選單），測試會等待轉接的通話到達 ThunderPhone：自撥通話最多等待 8 秒，由 ThunderPhone 號碼撥出的通話則最多等待 15 秒。結果會保留在該號碼上（*來電* 通過或失敗），直到你變更連線或重新匯入號碼，才會重設為 *尚未測試*。變更連線會在背景重新驗證外撥通話，但絕不會在未經你要求時撥打你的號碼。

## 排解入站通話問題

連線的 **測試** 按鈕會檢查憑證，而驗證會檢查出站撥號。若要檢查入站通話，請執行上述的來電測試，
或使用電話撥打該號碼，並在 **通話紀錄** 中查看通話。
瀏覽器的 **通話** 測試和智慧體對智慧體模擬不會經過你的電信業者，因此無法顯示入站通話是否正常運作。
以電話號碼為目標的模擬（SIP 回送）會透過你的電信業者撥打該號碼，因此接聽通話時確實會測試入站路由。

- **你聽到自己行動電信業者的訊息**（例如「歡迎使用 Verizon」或「你撥打的號碼已停止服務」）：通話在抵達 ThunderPhone 前便已失敗。請確認該號碼在供應商帳戶中仍為啟用狀態，且已指派給 ThunderPhone 連線或中繼。
- **忙線音或通話響鈴後逾時**：供應商已接受通話，但無法轉送。若使用 Telnyx，請在 Telnyx 入口網站檢查該號碼的 **連線**：應為上述說明的 `thunderphone-…` FQDN 連線，或是指向 ThunderPhone SIP 端點的自有 FQDN 連線。若使用 Twilio，該號碼應附加至 ThunderPhone SIP 中繼，而非 Voice Webhook 或 TwiML 應用程式。
- **你的電信業者紀錄顯示找不到中繼**（`404 No trunk found`，手動 SIP）：通話已抵達 ThunderPhone，但未符合任何中繼。請確認該號碼已匯入此連線，且中繼指向 `sip.thunderphone.com`。若指向 `<your-project>.sip.livekit.cloud` 位址，**允許的來源 IP 位址** 必須留空：設定清單後，只會接受傳送至 `sip.thunderphone.com` 的通話。
- **從 SIP 端點收到找不到錯誤**（`sip.thunderphone.com` 的 `404 Not Found`，手動 SIP）：通話並非指定給電話號碼，或請求行與 `To` 標頭指定了不同號碼。請如上所述，將撥打的號碼同時傳送至兩者。
- **從 SIP 端點收到禁止錯誤**（`sip.thunderphone.com` 的 `403 Forbidden`）：請求行指定了其他主機。請將通話指定給 `sip.thunderphone.com`，例如 `sip:+14155550142@sip.thunderphone.com`。
- **通話已抵達 ThunderPhone，但由錯誤的智慧體接聽，或無人接聽**：請在 **電話號碼** 中檢查該號碼的入站智慧體。

應用程式內的 copilot 可以協助你檢查號碼：詢問它為何撥打該號碼會失敗。對於 Telnyx 連線，它也會以唯讀方式為組織管理員查詢 Telnyx 將該號碼指派至哪個連線。

---

## 下一步

<CardGroup cols={2}>
  <Card title="取得電話號碼" icon="phone" href="/zh-Hant/guides/get-a-phone-number">
    完整的新增號碼流程，包括 ThunderPhone 號碼和 VoIP。
  </Card>
  <Card title="自備號碼（API）" icon="code" href="/zh-Hant/guides/bring-your-own-numbers">
    透過 REST 進行相同的連線、匯入與驗證流程。
  </Card>
  <Card title="執行撥出行銷活動" icon="megaphone" href="/zh-Hant/guides/outbound-campaigns">
    CSV 清單、撥打時段和重試政策。
  </Card>
  <Card title="VoIP 連線參考" icon="phone-volume" href="/api-reference/voip-connections">
    連線、驗證證據和匯入作業的所有欄位。
  </Card>
</CardGroup>
