Soracom

Users

アーキテクチャーセンター
Home アーキテクチャーセンター データ送信とシステム連携

IoT デバイスの音声通話を担当者や音声 AI につなぐ

デバイスから担当者や音声 AI に音声通話で接続するときに、発着信、担当者への引き継ぎ、外部システム操作の役割と利用条件を整理する。

マイクとスピーカーを備えた IoT デバイスから、離れた場所の担当者や音声 AI と会話する構成です。LTE の音声通話方式である VoLTE (Voice over LTE) を利用し、デバイスの音声を SORACOM Air RTC Gateway から指定した音声システムへ接続します。

このページでは、通話の要件と利用条件を確認したうえで、音声を届ける経路、発信や転送の制御、外部システムを操作する権限を分けて設計します。音声 AI を利用する場合は、接続方式の違いと、担当者へ引き継ぐために必要な構成も比較します。

このページが役立つケース

  • 現場の機器から、サポート窓口や担当者を音声で呼び出したい。
  • 音声 AI が一次対応し、必要に応じて担当者へ通話を引き継ぎたい。
  • 設備やカメラの検知イベントをきっかけに、システムから現場のデバイスを呼び出したい。
  • 通話中にセンサーデータを確認したり、外部システムへ操作を依頼したりしたい。

実現したい通話を決める

最初に、発信する側、会話相手、通話中に必要な動作を決めます。会話を成立させることと、会話の内容に応じて別のシステムを動かすことは、分けて考えます。

やりたいこと通話を開始する側会話相手接続先で必要になる役割
現場から担当者を呼び出すデバイスを使う人サポート窓口や担当者指定した相手へ通話を接続する。
音声 AI に相談するデバイスを使う人音声 AIデバイスと音声 AI の間で音声を受け渡す。
音声 AI から担当者へ引き継ぐデバイスを使う人、またはシステム音声 AI、必要に応じて担当者引き継ぐ条件を判断し、担当者へ通話を転送する。
検知イベントを音声で知らせるイベントを受け取るシステムデバイスを使う人イベントを受けて発信し、音声 AI との通話を接続する。
会話しながらデータ取得や操作を依頼するデバイスを使う人、またはシステム音声 AI音声 AI の要求を外部システムへ渡し、実行結果を会話に戻す。
通話できる範囲を先に確認する

RTC Gateway は、契約しているお客様のアカウント範囲内で音声セッションが完結するサービスです。第三者や不特定多数への接続、および 110・118・119 などの公共緊急通報には対応していません。発信先や転送先が サービスの利用条件 に合うことを確認してから、構成を決めてください。

デバイスと接続先の利用条件を確認する

RTC Gateway は、デバイスの通信モジュールが持つ VoLTE の音声通話機能を利用します。デバイス側に通話用のアプリケーションを独自に実装する負担を抑えられますが、通信モジュールの VoLTE 対応と音声を入出力する機器が必要です。

接続先には、IP ネットワークで音声を扱う VoIP (Voice over IP) サービスや、通話先の選択や転送を行う PBX (Private Branch Exchange、構内交換機) を利用します。IP ネットワークに対応した PBX が IP-PBX です。

確認する対象構成を決める前に確認すること
デバイス通信モジュールが VoLTE に対応しているか。また、通話の音声を入力するマイクと、受信した音声を再生するスピーカーを備えているか。
IoT SIM と利用可否対象のデバイス、IoT SIM、接続先、用途で利用できるか。RTC Gateway は事前申請が必要なため、利用条件をサービス窓口に確認する。
接続先利用する VoIP プロバイダーや PBX と、その接続先情報・認証情報を用意できるか。
SIM グループの設定グループごとの接続先と、SIM ID ごとの VoIP 認証情報をどう割り当てるか。
企業内の PBX への接続閉域接続が必要か。必要な場合は、Virtual Private Gateway (VPG) を使う接続構成を確認する。
利用料金接続先、デバイス、想定通話量などの条件を整理する。料金は個別見積もりのため、事前申請時に確認する。

対応するデバイスや IoT SIM、利用可否、料金は、SORACOM Air RTC Gateway のサービスページ から問い合わせて確認します。

構成の概要

デバイスと会話相手の音声は、RTC Gateway と接続先の音声システムを経由して双方向にやり取りします。担当者への転送やイベントをきっかけにした発信を行う場合は、PBX と、それを制御するアプリケーションを組み合わせます。

次の図は、Asterisk を使った試作構成 の接続関係を示しています。PBX から音声 AI へは、音声通話などの接続を制御する通信方式である SIP (Session Initiation Protocol) で接続します。実線は音声の経路、破線は通話の制御やイベント通知、太線は外部 API の呼び出しと結果を表します。API は、外部の機能をプログラムから利用するための仕組みです。

構成図: IoT デバイスと担当者または音声 AI の通話を RTC Gateway と PBX で接続し、アプリケーションからの発信・転送の指示と外部システムの操作を別の経路で扱う

音声 AI との接続を、データを双方向にやり取りする通信方式の WebSocket で行う場合は、PBX と音声 AI の間に音声を変換・転送する中継処理を置きます。方式による違いは、音声 AI への接続方式を選ぶ で比較します。企業内の PBX に閉域接続する場合は、RTC Gateway と PBX の接続に VPG を利用します。

VoLTE の通話は、通常のデータ送信とは異なる経路を使います。センサーデータを SORACOM Beam、SORACOM Funnel、SORACOM Funk で転送する構成については、データパイプラインとファンアウトを設計する を参照してください。

構成要素と役割

構成要素担当する役割設計時に決めること
VoLTE 対応デバイスマイクで音声を入力し、受け取った音声をスピーカーで再生する。利用する機器と音声入出力、発着信の操作方法。
RTC Gatewayデバイスからの VoLTE 接続を受け取り、指定された VoIP プロバイダーや PBX へ伝送する。接続先、SIM グループ、IoT SIM ごとの認証情報。
VoIP プロバイダーや PBX通話を接続する。PBX を組み合わせる構成では、発信や担当者への転送も扱う。会話相手、発信先、転送先、必要な通話制御。
音声 AI通話相手の発話を受け取り、音声で応答する。応答する内容と、人へ引き継ぐ条件。
通話制御・外部連携のアプリケーションPBX への発信・転送の指示や、音声 AI と外部システムの連携を担当する。呼び出す条件、外部システムへの操作要求、実行権限。
外部システム・IoT デバイス許可されたデータ取得や操作を実行し、結果を返す。操作対象、利用する API、認証・権限、結果の確認方法。

RTC Gateway の接続設定と、PBX や音声 AI 側の処理を分けて設計します。担当者への転送条件、外部サービスを操作する処理、音声 AI との接続方式に応じた中継処理は、組み合わせるシステム側で扱います。

音声 AI との通話と担当者への引き継ぎを設計する

音声 AI に一次対応を任せる場合は、AI へ音声を接続する方法と、担当者へ通話を引き継ぐ方法を分けます。PBX は音声の中継だけでなく、通話先の切り替えや発信の起点として利用します。必要な通話制御を先に決めることで、PBX を組み合わせる目的が明確になります。

ここでは、PBX の一つである Asterisk と、音声 AI の OpenAI Realtime API を組み合わせた試作例を使って、接続方式と通話制御の役割を整理します。

音声 AI への接続方式を選ぶ

音声 AI が対応する接続方式によって、PBX と音声 AI の間に必要な処理が変わります。WebSocket を音声の中継に使う場合と、AI への指示や操作要求のやり取りに使う場合を区別します。

接続方式選ぶときの判断構成と実装上の負担
WebSocket で接続する音声データの中継処理を自分で制御する必要があるか。Asterisk と音声 AI の間で音声の形式や受け渡し方式を変換する。柔軟に制御できる一方、変換・転送する処理の開発が必要になる。
SIP で接続する音声 AI が SIP に対応し、音声変換用の中継処理を省けるか。試作例では Asterisk から音声 AI へ直接接続できる。接続要求を受けて通話を許可する処理と、AI への指示や外部操作を扱う制御用の接続は別に必要になる。

この試作例の SIP 接続では、音声の変換・転送用の中継処理を省けます。AI への指示や外部システムとの連携を担うアプリケーションは、引き続き必要です。このアプリケーションは WebSocket で音声 AI に接続し、AI への指示や外部システムからの実行結果を渡します。

音声の変換が必要かどうかだけで PBX の要否を決めず、担当者への転送やシステムからの発信が必要かも確認します。

担当者へ引き継ぐ

担当者への引き継ぎは、次の流れで行います。

  1. 音声 AI が一次対応する。
  2. AI では判断できない場合や、担当者への問い合わせが必要な場合に、引き継ぎを判断する。
  3. 通話制御のアプリケーションから PBX に転送を指示する。
  4. PBX が担当者へ通話を接続する。

設計時は、引き継ぎ先と引き継ぐ条件を決めます。転送時に通話が継続するか、相手が応答しない場合にどう扱うかは、利用する PBX とデバイスの組み合わせで確認します。

検知イベントをきっかけに発信する

システム側から呼び出す場合は、イベントを受け取るアプリケーションが、発信を開始する役割を持ちます。試作例では、ソラカメのモーション検知をきっかけに状況を判断し、Asterisk にデバイスへの発信を指示して、音声 AI との通話に接続しています。

通話の接続先だけでなく、どのイベントで誰を呼び出すかを決めます。イベントの検知と、発信の判断、実際の発信を分けると、どの処理がどの動作を担当するかを確認できます。

外部システム操作の権限を分ける

音声でデータ取得や機器操作を依頼する場合は、構成図 の太線で示した外部システムへの接続を用意します。音声 AI からの操作要求を受け取り、API を呼び出し、実行結果を AI に返す役割をアプリケーションが担います。試作例では、この役割をコントロールプレーンと呼んでいます。

通話できることと、外部システムを操作できることは、別の条件です。IoT SIM の認証だけで、その SIM が意図したデバイスで利用されていることまで保証されるわけではありません。利用するデバイスの確認、通話する人の本人確認、操作を許可する範囲を分けて決めます。

判断すること設計する内容
誰からの操作を受け付けるか通話する人を確認する方法と、その人に許可する操作の範囲。
何を操作できるか対象の機器やシステム、呼び出せる API、データ取得と状態変更の権限。
AI にどこまで任せるか音声で案内する範囲、担当者が確認する範囲、自動で実行する範囲。
結果をどう確認するか外部システムからの応答を受け取り、操作の成否を利用者へ伝える方法。

ここで決める権限や確認方法は、構築するシステムの設計事項です。RTC Gateway の音声接続だけで、外部システムの操作権限まで設定されるわけではありません。機器へ命令を送る方法は、必要時アクセス、常時閉域アクセス、命令送信を使い分ける を参照してください。

判断ポイントとトレードオフ

  • 担当者との通話が目的なら、指定した VoIP 接続先で必要な発着信を扱えるかを確認します。音声 AI から担当者への転送や、イベントをきっかけにした発信も必要なら、PBX と制御するアプリケーションの役割を決めます。
  • WebSocket で音声を中継する構成は、音声の受け渡しを柔軟に制御できる一方、変換・転送する処理が必要です。SIP で音声 AI に直接接続できる場合は、音声変換用の中継処理を省けますが、通話の許可や AI の制御は引き続き必要です。
  • AI が一次対応し、必要なときに担当者へ引き継ぐ構成では、対応の範囲を分担できます。そのために、転送先、切り替える条件、担当者が応答しない場合の扱いを設計します。
  • 会話に加えてデータ取得や機器操作まで行う構成では、外部システムの結果を応答に使えます。その分、操作対象と実行権限、成否の確認、通話が切れた場合の処理を決める必要があります。

運用前に確認すること

利用するデバイス、接続先、通話量に合わせて確認項目を決めます。Asterisk を使った公開例は試作であり、対象機器での動作、音声品質、遅延、同時通話数、転送時の通話継続を保証するものではありません。

確認する場面確認する挙動
デバイスからの発信指定した相手につながり、マイクとスピーカーで双方向に会話できるか。
システムからの発信対象のイベントで、指定したデバイスが着信し、音声 AI と会話できるか。
音声 AI との会話対象環境での聞き取りやすさ、応答までの時間、必要な同時通話数が要件を満たすか。
担当者への引き継ぎ決めた条件で転送されるか。転送中の通話継続や、担当者が応答しない場合の処理が設計どおりか。
通話や接続の切断デバイス、PBX、音声 AI の接続が切れた場合に、通話と処理をどう終了するか。
外部システムの操作許可した利用者と操作だけを受け付けるか。実行結果を取得し、通話中に伝えられるか。
操作中の切断通話が切れた場合に、依頼済みの操作が実行されたかを確認できるか。処理を継続する条件と停止する条件が決まっているか。

元記事・元資料

このページは、以下の記事・資料をもとにしています。
正確な内容や最新の情報を確認するときは、元の記事・資料もあわせて参照してください。