本文へスキップ
SIPトランクの持ち込み

SIPトランクの持ち込み:今お使いの通信事業者でAI音声エージェントを動かす

すでにお持ちのSIPトランクでAI音声エージェントを動かせます。電話番号も通信事業者の料金もそのままで、上乗せはありません。

最終更新日:

公開日 。通信事業者の名称は各所有者の商標です。Wixzel Voiceは標準のSIPでこれらと連携しており、いずれとも提携しておらず、推奨を受けてもいません。

通信事業者ガイド

Twilio

Elastic SIP Trunking。TerminationのIP ACLにプラットフォームのIPを登録し、着信用にOrigination SIP URIを設定します。

Telnyx

IP認証のSIP Connection。プラットフォームのIPを許可アドレスとして追加し、着信リージョンを選び、トランスポートを合わせます。

Plivo

Zentrunk。IP ACLにプラットフォームのIPを登録した発信用トランクと、Primary URIをプラットフォームに向けた別の着信用トランクを用意します。

Vonage

Vonage

Programmable SIP。SIP DashboardでトランクのACLにプラットフォームのIPを追加し、着信をOrigination URIに送ります。

Bandwidth

SIP REGISTERに対応していないため、固定IPが必要です。ロケーションにプラットフォームのIPを追加し、TerminationとOriginationを別々に設定するか、network bridgeの認証情報を使います。

Exotel

インドの電話番号向けのVirtual SIP Trunking(vSIP)で、TCPを使います。プラットフォームのIPをACLとしてトランクに紐付け、着信用にDestination URIをプラットフォームのTCPポートに向けます。

Vobiz

トランクごとのSIPドメインをホストに使い、トランクのIP ACLにプラットフォームのIPを登録します。「origination URI」はTwilioとは逆の意味です。

Mobily

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.

あらゆるSIPプロバイダー

手順はどこでも同じです。プラットフォームのIPを許可リストに登録し、着信の宛先をOrigination URIに設定し、番号の形式とトランスポートを合わせます。

なぜSIPトランクを持ち込むのですか?

電話番号はお客様のもの
Wixzel Voiceは電話番号の販売もポーティングも行いません。乗り換えるときは、通信事業者側で設定を1つ変えるだけです。
料金もお客様のまま
回線の料金は通信事業者から請求されます。Wixzel Voiceが課金するのは音声エンジンだけで、秒単位です。
コンプライアンスもそのまま
発信者番号、KYC、各種登録は、すでに信頼している通信事業者のもとに残ります。
あらゆるSIPプロバイダー
8社の通信事業者にガイドがあります。SIPトランクがあれば、どこでも動作します。

持ち込んだSIPトランクはどのように接続されますか?

Wixzel Voiceのトランクには2つの設定があり、それぞれ通信事業者のコンソールの別の場所で設定します。どちらのアドレスもすべてのトランクで返されるため、ページの情報が最新であることに頼らず、APIから読み取ってください。

発信:プラットフォームからの通話
platform_ip

通信事業者のIP許可リストに187.126.120.231を追加します。ほぼすべての通信事業者は発信元IPで発信を認可するため、他のすべてが正しく設定されたトランクでも、これがないと失敗します。

着信:お客様の番号への通話
origination_uri

通信事業者の着信の送信先をsip:187.126.120.231:5090に設定します。これを忘れると、番号はまったく鳴りません。通信事業者に通話の届け先がないため、どのログにも何も表示されません。

両方をAPIから読み取る
curl https://api.voice.wixzel.com/v1/sip-trunks \
  -H "Authorization: Bearer $WIXZEL_API_KEY" \
  | jq '.data[0] | {platform_ip, origination_uri}'

設定ガイドがある通信事業者は?

以下の通信事業者には、それぞれ専用のページがあります。購入すべきもの、許可リストに追加するもの、着信の送信先、その事業者に合うトランクのリクエスト、その事業者特有の注意点を説明し、ドキュメントの詳しいコンソール手順へのリンクを載せています。2つの設定の名称は事業者ごとに異なりますが、設定内容は同じです。

通信事業者製品許可リストの名称着信の送信先の名称トランスポート
TwilioElastic SIP TrunkingIP Access Control ListOrigination SIP URIudp
TelnyxSIP Connectionsauthorised addresses on an IP-authenticated SIP Connectionガイドにはまだ記載なしudp
PlivoZentrunkIP Access Control ListPrimary URIudp
VonageProgrammable SIPACL (Access Control List)ガイドにはまだ記載なしudp
Bandwidth-Voice IP addresses / DNS hosts on a locationOriginationudp
ExotelVirtual SIP Trunking (vSIP)ACL mapped to the trunkDestination URItcp
Vobiz-IP ACLガイドにはまだ記載なしudp
MobilySIP Trunktrusted peers on the SBC that holds your Mobily linkSBC route for inbound Mobily callsudp
あらゆるSIPプロバイダー-IP ACL、許可リスト、または許可アドレスOrigination URI、または通信事業者でのその呼び名udp

通信事業者は2つの設定を何と呼んでいますか?

役割通信事業者が使う名称
Wixzel Voiceからの通話を認可するIP ACL, IP Access Control List, Access Control List, allowlist, authorised address, network bridge
通話をWixzel Voiceに届けるOrigination URI, Primary URI, Destination URI, termination point, destination SIP URI, host

正しく見えるトランクが動作するかどうかは、さらに2つの設定で決まります。 番号形式: Twilio、Telnyx、Vobizは先頭の+を必要とします。多くのホールセール通信事業者はこれを解釈できず408でタイムアウトしますが、send_plus: falseで解決します。 トランスポート: ほとんどの事業者でUDPがデフォルトですが、ExotelはUDPを受け付けないため、ExotelのトランクはTCPで動作します。不一致があると、通信事業者に無視されているように見えます。

通話がつながらないとどうなりますか?

APIが受け付けた後に通信事業者が拒否した通話は、GET /v1/calls/{id}でstatus: "failed"(原因17の場合はbusy、原因19の場合はno-answer)と表示され、failure_code(通信事業者からのQ.850原因コードで、分岐に使える安定した値)とfailure_reason(対処方法をわかりやすく説明したもの)が付きます。cost_microsはnullです。つながらなかった通話には費用がかからず、そのために確保されたクレジットは解放されます。

まず通信事業者自身の通話ログを確認してください。通話が記載されていなければ、通信事業者に届いていません。許可リスト、トランクのホスト、ファイアウォールのいずれかが誤っています。応答0件、費用0で記載されている場合は、通信事業者がINVITEを受け付けた後に切断しています。これは設定の問題よりも、通信事業者側の権限の問題であることがはるかに多くあります。提示する発信者番号がアカウントで認可されていること、市場で必要な場合はKYCや宛先の登録が完了していること、宛先の番号帯が残高があるだけでなく有効化されていることが必要です。APIが説明する原因は次のとおりです:

すべての失敗コード、拒否理由、トランクのデバッグ方法
failure_code通信事業者の応答意味対処方法
1404通信事業者がその番号を認識できません。番号の形式を確認してください。通信事業者がテクニカルプレフィックスを必要とする場合は、トランクにdial_prefixを設定します。
3-通信事業者にこの宛先へのルートがありません。おそらく通信事業者のアカウントでこの宛先が有効になっていません。通信事業者にルートの開放を依頼してください。
16-正常切断:相手側が意図的に通話を終了しました。応答されなかった通話でこのコードが出た場合は、完了した通話ではなく、上流のどこかが通話を終了させたものと読んでください。
17486話し中です。-
18480宛先が応答しませんでした。電話の電源が切れているか、圏外の可能性があります。
19-呼び出したが、誰も出ませんでした。対処は不要です。トランクと番号はどちらも正常に動作しています。
20-相手が不在か、つながりません。-
21403 / 407通信事業者が、番号を試す前に通話をそのまま拒否しました。可能性の高い順に、通信事業者のアカウントが停止・解約・残高不足になっている、トランクのユーザー名かパスワードが間違っている、platform_ipが許可リストに登録されていない、発信者番号がアカウントで許可されていない、のいずれかです。まず通信事業者のダッシュボードを確認してください。
22-番号が変更され、現在は使われていません。-
27-宛先が故障しています。-
28484通信事業者が番号の形式を拒否しました。通信事業者がテクニカルプレフィックスを必要とする場合は、トランクにdial_prefixを設定します。
34-通信事業者に利用できる回線がありません(輻輳)。少し待ってから再試行してください。
38500 / 501 / 502通信事業者がサーバーエラーを返しました。-
41503通信事業者には到達できますが、通話を拒否しています。通常は、通信事業者側の容量、残高、またはルートの停止が原因です。
42-通信事業者の交換機が輻輳しています。少し待ってから再試行してください。
58488コーデックの不一致:通信事業者が提示された音声コーデックを拒否しました。通信事業者側でG.711(PCMUまたはPCMA)を提示してください。G.729には対応していません。
88493通信事業者が互換性のない通話として拒否しました。-
102408通信事業者が時間内に応答しませんでした。トランクのhostとport、そして通信事業者がplatform_ipからのSIPを受け付けているかを確認してください。通信事業者側で通話が受信済みだが応答なしと表示される場合は、send_plusをfalseに設定します。

以下は、ダイヤルする前にPOST /v1/callsが拒否するもので、費用はかかりません:

HTTPステータスcode意味
400no_outbound_number発信者番号がありません。from_number_idを渡すか、エージェントにoutbound_phone_number_idを設定してください。
400number_not_on_trunk発信元の番号にsip_trunk_idがないため、通話の送り先がありません。
400missing_idempotency_keyHTTPリクエストにIdempotency-Keyがありませんでした。SDKは自動で送信します。
402insufficient_credits残高が最初の15秒分に足りません。チャージしてから再試行してください。
429rate_limit_exceededこのキーで毎秒10リクエストを超えました。Retry-Afterまで待ってください。429に課金されることはありません。
503-音声エンジンが利用できないか、アカウントの進行中の通話数が同時通話数の上限(標準で5件)に達しているか、APIキーが支出上限に達しています。どれに当たるかはメッセージに記載されます。

GET /v1/sip-trunks/{id}/statusはトランクに現在到達できるかを示し、通信事業者による直近の拒否を一覧表示します。POST /v1/sip-trunks/{id}/testは任意のタイミングでトランクを検査し、GET /v1/sip-trunks/{id}/logsはSIPログを返します。

cURL
curl https://api.voice.wixzel.com/v1/sip-trunks/$TRUNK_ID/status \
  -H "Authorization: Bearer $WIXZEL_API_KEY"

着信番号がまったく鳴らない場合、それは調べられる失敗ではありません。通信事業者に送信先が設定されていなければ、通話は通信事業者の外に出ないため、確認できる失敗した通話が存在しません。着信の送信先、通信事業者側で番号がトランクに紐付いていること、番号にinbound_agent_idがあることを確認してください。通話はつながるのに何も聞こえない場合は、メディアが届いていません。経路上のファイアウォールで、シグナリングのポートだけでなくRTPの範囲も許可する必要があります。

よくある質問

Wixzel Voiceにはなぜ自分のSIPトランクが必要なのですか?

Wixzel Voiceは電話番号の販売やポーティングを行わず、電話回線の再販もしないためです。電話の通話はお客様が選んだ通信事業者のトランクを通るので、電話番号はお客様のものであり続け、通信事業者から上乗せなしでお客様の料金が直接請求されます。Wixzel Voiceにとってどの通信事業者を選ぶかは関係ありません。その代わり、最初の通話の前に設定の手順が1つ増えます。電話番号が必要な場合は、コンソールからTwilio、Telnyx、Plivo、Vobiz、Vonageのアカウントを接続し、Wixzel Voiceから離れずにそのアカウントで番号を購入できます。料金は通信事業者の価格で通信事業者から請求されます。

Wixzel Voiceで使える通信事業者は?

IP許可リスト(またはユーザー名とパスワードによる認証)と、設定可能な着信の送信先を備えたSIPトランクを提供している通信事業者であれば、どこでも使えます。Twilio, Telnyx, Plivo, Vonage, Bandwidth, Exotel, Vobiz, Mobilyには設定ガイドがあり、その他のSIPプロバイダー向けには共通のガイドがあります。

トランクに必要な2つの設定とは?

発信側は、通信事業者の許可リストにplatform_ip(現在は187.126.120.231)を追加する設定で、これにより通信事業者がプラットフォームからの通話を受け付けます。着信側は、通信事業者の着信の送信先をorigination_uri(現在はsip:187.126.120.231:5090)に設定するもので、これによりお客様の番号への通話がプラットフォームに届きます。ホストとポートだけを受け付ける通信事業者や、UDPで送信しない通信事業者では別の形式が必要で、それぞれのガイドに記載しています。どちらの値もGET /v1/sip-trunksですべてのトランクについて返されます。ページからコピーするのではなく、そこから読み取ってください。

既存の電話番号をそのまま使えますか?

はい。ルーティングできるSIPトランク上にある番号であれば使えます。そのトランクでPOST /v1/phone-numbersを使って番号を登録し、inbound_agent_idを指定してください。Wixzel Voiceは番号のポーティングを行わないため、番号は通信事業者のもとに残ります。

通信事業者のパスワードはどのように保存されますか?

新規または更新されたパスワードは、デプロイ環境だけが保持する鍵を使い、AES-256-GCMで保存時に暗号化されます。古い方式で保存されたパスワードは、次に保存されるときにこの方式で再暗号化されます。パスワードがAPIから返されることは、お客様に対しても二度とありません。通信事業者の他の認証情報と同じ場所に保管してください。

WebアプリやモバイルアプリにもSIPトランクは必要ですか?

いいえ。トランクは電話の通話にだけ使います。Webページやアプリにエージェントを置くには、お客様のサーバーがPOST /v1/realtime/sessionsでリアルタイムセッションを発行し、アプリはWebSocket経由でエージェントと話します。トランクも電話番号も不要です。

トランクの変更に再起動は必要ですか?

いいえ。トランクを作成、更新、削除すると電話回線の設定が書き換えられて再読み込みされるため、変更はすぐに反映されます。

電話番号はWixzel Voiceと通信事業者のどちらから購入しますか?

通信事業者から購入します。Wixzel Voiceは電話番号の販売やポーティングを行わず、通信事業者の通話料金に上乗せすることもありません。コンソールからTwilio、Telnyx、Plivo、Vobiz、Vonageのアカウントを接続すれば、コンソールの電話番号ページやPOST /v1/phone-numbers/purchaseで、そのアカウントの電話番号を購入できます。料金は通信事業者がその価格で請求します。ExotelとBandwidthでは、通信事業者で番号を購入してください。どの通信事業者でも、すでに所有している番号を、その番号があるトランクにPOST /v1/phone-numbersで登録できます。

電話番号にかけてもエージェントが応答しないのはなぜですか?

着信は発信とは別に設定します。通信事業者がトランクの返すorigination_uri(現在はsip:187.126.120.231:5090)に通話を配信すること、通信事業者側でその番号がトランクに紐付いていること、そしてWixzel Voiceでその番号にinbound_agent_idが設定されていることが必要です。1つ目がないと、通話は通信事業者から出ていかず、どのログにも何も表示されません。

自社のSIPトランク経由のAI通話にはいくらかかりますか?

請求は2つです。回線については、通信事業者が自社の1分あたりの料金を直接請求します。Wixzel Voiceは音声エンジンを実際の使用量に応じて秒単位で課金します。料金は、gemini-liveの接続1分あたり$0.0491から、deepgram-agentの$0.1851までです。最低$5からの前払いで、サブスクリプションも無料プランもありません。つながらなかった通話には、Wixzel Voice側の費用はかかりません。

最初の音声エージェントを構築