SIPトランクは、電話システムをインターネット経由で公衆電話網につなぐ仕組みです。電話会社から物理回線を借りる代わりに、SIPのシグナリングとRTPの音声として通話を通信事業者に送り、事業者が世界中の電話につなぎます。1本のトランクで多数の同時通話と数百の電話番号を扱えます。
考え方はこれだけです。このガイドでは、ネットワーク上で何が起きているか、SIPトランクとVoIPやPRI回線の違い、そして電話に出るのが机の電話の前の人ではなくAI音声エージェントになったときに何が変わるかを説明します。電話システムを管理しているエンジニアや運用責任者、これから音声エージェントを電話につなごうとしている人に向けた内容です。
SIPトランクの仕組み
SIPトランク上の通話は、2つの別々の流れでできています。
- シグナリング。 SIPメッセージが通話の開始、変更、終了を行います。
INVITEで始まり、200 OKで応答し、BYEで切断します。SIPは通常、UDPかTCPの5060番ポート、またはTLSの5061番ポートを使います。 - メディア。 音声そのものはRTPパケットで、通常は別のポートを使って流れます。SRTPはその暗号化版です。
着信では、誰かがあなたの番号に電話をかけます。その番号を公衆網で保有する通信事業者があなたのトランクを探し、設定されたアドレスにSIPのINVITEを送ります。あなたのシステムが応答し、双方で音声コーデックを決めると、RTPが流れ始めます。発信はその逆で、あなたのシステムが事業者にINVITEを送り、事業者が相手に発信します。
「トランク」は昔の電話用語です。トランクとは2つの交換機の間を結ぶ回線の束で、多くの利用者が共有していました。SIPトランクは銅線のないトランクで、あなたのシステムと通信事業者の間の、設定と認証を済ませた接続です。同時に運べる通話数には上限があります。
SIPトランク事業者が提供するもの
- 電話番号。DID(ダイヤルイン番号)とも呼ばれます。既存の番号をトランクに移せる(番号ポータビリティ)ことが一般的です。
- チャネル。トランクで同時に扱える通話数です。固定ブロックで販売する事業者もあれば、同時接続数の上限付きで分単位で課金する事業者もあります。
- 終端と発信元。公衆電話網への発信と、公衆電話網からの着信です。
- 緊急通報と発信者番号の扱い。国や事業者によって異なります。
SIPトランク、VoIP、PRIの違い
これらの言葉はあいまいに使われがちなので、整理しておきます。
| 選択肢 | 内容 | 電話システムを運用するのは |
|---|---|---|
| VoIP | IPネットワークで音声を運ぶ技術全般。この表のPRI以外はすべてVoIPの一種です。 | サービスによる |
| ホスト型VoIP | 事業者が電話システムを運用し、電話機、アプリ、番号を提供します。 | 事業者 |
| SIPトランク | 自社の電話システムやアプリケーションと通信事業者を、インターネット経由で結ぶ接続です。 | 自社(PBX、コンタクトセンター、音声エージェント) |
| PRI(ISDN) | 電話会社の物理的なデジタル回線。米国のT1 PRIは同時23通話、欧州のE1は30通話を運びます。 | 自社 |
多くのチームがPRIをSIPトランクに置き換えるのは、容量を増やすのが新しい回線の工事ではなく設定変更で済むからです。ホスト型VoIPではなくSIPトランクを選ぶのは、ルーティングを自分で制御する必要があるときです。たとえば電話システムがコンタクトセンター基盤や自社開発のソフトウェア、あるいはホスト型サービスでは動かせない音声エージェントである場合です。
音声AIにとってSIPトランクが重要な理由
音声エージェントには電話に出る手段が必要です。よく使われる方法は3つあり、SIPトランクは今のテレフォニー環境をそのまま使える方法です。
| 選択肢 | 向いているケース | 注意点 |
|---|---|---|
| 基盤が提供する番号 | すぐに始めたい。通信事業者のアカウントは不要。 | 対応国。Cartesiaが提供する番号は米国のみです。 |
| CPaaS(Twilio)の番号 | すでにTwilioで番号と通話フローを運用しているチーム。 | 2社に支払いが発生し、ルーティングはCPaaSを経由します。 |
| 自社のSIPトランク | 既存の番号、通信事業者、国際カバレッジを維持したい。 | 認証、暗号化、転送を自分で設定します。 |
SIPトランクが適しているのは、たとえば次のような場合です。
- 番号がすでに請求書やWebサイト、社用車の側面に書かれていて、変えるつもりがない。
- 米国以外の番号や、特定の国で免許を持つ通信事業者が必要。
- セキュリティチームが、TLSによるシグナリング、暗号化されたメディア、通話を送れるIPアドレスの固定リストを求めている。
- エージェントから既存のコンタクトセンターのキューに通話を渡したい。そのキューもSIPで動いている。
電話回線でエージェントに聞こえる音
電話の音声は狭帯域です。公衆電話網の通話の多くはG.711を使い、8 kHzでサンプリングされます。北米と日本ではµ-law、欧州、インド、その他多くの地域ではA-lawです。約3.4 kHzを超える音はすべてカットされ、「f」と「s」の違いの多くはその帯域にあります。
そのため、ブラウザのデモでは完璧な音声エージェントが、実際の電話では「F as in Frank」を聞き間違えることがあります。音声認識は、実際の通信事業者から届く8 kHzの音声でテストしましょう。モデルを疑う前にコーデックを確認してください。自分で音声を接続する場合は、Cartesiaの音声入力ドキュメントに電話音声用の正確なエンコーディングが載っています。
遅延はホップごとに積み上がる
発信者とエージェントの間のホップごとに遅延が加わります。通信事業者のネットワーク、通話が経由するならSBCやPBX、エージェントまでのインターネット経路、そしてエージェント自身の音声認識、LLM、音声合成です。話し終えた後の沈黙が長くなると、発信者は気づきます。経路は短く保ちましょう。可能ならトランクをエージェント基盤に直接向け、基盤のリージョンに近い通信事業者の拠点を選びます。
転送にはSIP REFERを使う
エージェントが通話を人に引き継ぐときは、通常SIP REFERを送り、電話番号やSIPアドレスなど別の宛先に通話をつなぐよう通信事業者に依頼します。使う宛先の種類について、通信事業者がREFERに対応している必要があります。本番前に必ず確認してください。長い通話の最後で転送に失敗すると、その顧客は友人にあなたの会社の話をすることになります。
SIPトランクを音声エージェントに接続する方法
以下の手順はCartesiaのManaged Agentsを例にしています。他の基盤でも流れは同じで、フィールド名が違うだけです。詳細はSIPトランクのドキュメントを参照してください。
1. 通信事業者の向き先をエージェント基盤にする
トランクの発信元URIを、通信事業者が対応するトランスポートでCartesiaのSIPエンドポイントに設定します。
sip:sip.cartesia.ai;transport=tls
sip:sip.cartesia.ai;transport=tcp
TLSはシグナリングを暗号化します。通信事業者やファイアウォールがIPアドレスで制限している場合は、Cartesiaのサポートに許可リスト用の固定IP範囲を問い合わせてください。
2. 通話を送れる相手を制限する
着信側に少なくとも1つのアクセス制御を設定します。ダイジェスト認証(ユーザー名とパスワード)、通信事業者のシグナリングIPアドレスのリスト、またはその両方です。着信トランクを開けたままにしないでください。開いているSIPエンドポイントはインターネット上で常にスキャンされていて、予約の電話をかけてくるわけではありません。
着信でダイジェスト認証に対応していない通信事業者もあります。Twilio Elastic SIP Trunkingがその一例で、その場合はTwilioのシグナリングIP範囲を許可リストに入れます。
3. 必要ならメディア暗号化を有効にする
Cartesiaのmedia_encryption設定は、通話音声のSRTPを制御します。値はdisabled、allowed、requiredです。TLSでrequiredにする場合は、通信事業者側でもセキュアトランクとSRTPを有効にしてください。片側だけ設定しても暗号化されません。
4. トランクをCartesiaに登録する
着信用の認証情報と発信先の通信事業者アドレスを指定して、APIでトランクを作成します。
curl -X POST "https://api.cartesia.ai/agents/phone-numbers/providers" \
-H "X-API-Key: $CARTESIA_API_KEY" \
-H "Cartesia-Version: 2026-08-14" \
-H "Content-Type: application/json" \
-d '{
"type": "sip_trunk",
"label": "Primary carrier trunk",
"inbound": {
"credentials": { "username": "carrier-inbound", "password": "your-sip-password" },
"media_encryption": "allowed"
},
"outbound": {
"address": "sip.example.com",
"transport": "tls",
"destination_country": "US",
"media_encryption": "required",
"credentials": { "username": "cartesia-outbound", "password": "your-sip-password" }
}
}'
outbound.addressはCartesiaのINVITEを受け取る通信事業者のホストで、sip:の接頭辞は付けません。ポートを省略すると、TCPは5060、TLSは5061が使われます。
5. 番号をインポートしてエージェントを割り当てる
トランクのプロバイダーIDを指定して通信事業者の番号をインポートし、Playgroundか電話番号APIでエージェントに割り当てます。これでその番号への着信がエージェントに届きます。発信では、その番号をfrom_number_idとして渡します。相手に表示される発信者番号は通信事業者が決めます。
6. 転送を設定してテストする
エージェントでTransfer callを有効にするか、transfer_to_numberシステムツールを設定し、宛先に電話番号やSIP URIを指定します。Cartesiaの転送はSIP REFERによるコールド転送です。通信事業者が転送を拒否した場合、Cartesiaは元の通話をつないだままにするので、発信者が切られることはありません。Twilio Elastic SIP Trunkingでは、トランクの転送モードをenable-allにしてください。
その後、実際の電話からその番号にかけ、エージェントの話の途中で割り込み、注文番号を読み上げ、担当者につないでほしいと頼んでみましょう。10分ほどで、本番で起きる問題の大半が見つかります。
SIPトランクでよくある問題
| 症状 | よくある原因 |
|---|---|
| 着信がまったく届かない | 発信元URIやトランスポートの誤り、またはファイアウォールが通信事業者のIPをブロックしている。 |
401や403が返る | ダイジェスト認証情報の不一致、または送信元IPが許可リストにない。 |
| 通話はつながるが音が聞こえない | RTPがブロックされているか経路が誤っている。NATや、SIPは通すがメディアのポートを通さないファイアウォールが原因のことが多い。 |
| 暗号化を有効にすると通話が失敗する | 片側でSRTPを必須にしているのに、もう片側で有効になっていない。 |
| 転送が失敗する | 通信事業者がその宛先種別のREFERを受け付けない、またはトランクで転送が無効になっている。 |
| エージェントが名前や番号を聞き間違える | 8 kHzの狭帯域音声。ブラウザの録音ではなく、実際の電話音声で認識をテストする。 |
費用
請求は2つあります。通信事業者はトランクの料金を請求します。チャネル単位、分単位、またはその両方に、番号の利用料が加わります。音声エージェント基盤はエージェントの料金を請求します。Cartesiaでは、番号の種類にかかわらずManaged Agentsの通話は1分あたり$0.06です。SIPトランクの番号での通話には、通信事業者側の料金を事業者が請求するため、Cartesiaのテレフォニー料金はかかりません。1分あたり$0.014のテレフォニー料金は、Cartesiaが提供する番号にのみ適用されます。LLMの利用料は別途かかります。
試すには、Cartesiaのplaygroundでエージェントを作成し、トランクを接続して電話をかけてみてください。AI電話エージェントのページでは、番号、発信、転送について説明しています。