投稿日

SORACOM Air RTC GatewayとAsteriskで音声AIエージェント開発

こんにちは!ソラコムのインターンのsotaです!

インターン参加の背景と目的

今回のインターンでは、2026年7月に提供開始のSORACOM Air RTC Gatewayと、IP-PBX (電話交換機)の一つであるAsteriskを用いて、音声AIエージェントの実現に取り組みました。特にソラコムのサービスとして、SORACOM Knowledge MCPサーバーや、SORACOM IoT SIM、ソラカメとも連携することで、音声AIエージェントがSORACOM公式ドキュメントを参照しながら、現場のIoTの操作まで行えることを想定しています。

社会的課題と技術的課題

ChatGPTやGoogle Geminiのような従来の対話型AIを経て、近年はOpenClawのようなAIエージェントが注目されています。しかし、これらの主な使用方法はテキスト上のやり取りです。非常に便利なサービスですが、現場作業中や運転中では、手はふさがっており、画面を見る余裕もありません。スマホを取り出してタップしてタイピングして——という一連の動作自体が、現場では成立しないことが多いという課題が存在します。このような状況でもAIエージェントを使うためには、音声通話が必要不可欠です。

通話しながら自分の声でAIエージェントに指示を行い、後の作業はAIエージェントに任せる。このような動作を実現させるために必要な技術は、音声通話サービスと音声AIです。しかし、これらのサービスを統合し、音声通話向けAIを実現するためには、クラウド型のAPIプラットフォームのTwilioや電話交換機のAsteriskのようなクッションが必要になります。

そこで今回のソラコムでのインターンでは、AIと「音声通話」する仕組みを実現するために、通話サービスSORACOM Air RTC Gatewayと音声AI (OpenAI Realtime API) の橋渡しとして、Asteriskを使用します。さらに、AIが自発的に外部ツールと連携する技術(Tool CallingやMCP)を活用し、それらを制御するコントロールプレーンを開発し、現場向け音声AIエージェント基盤の構築に挑戦しました。

活用事例は以下の通りです。

  • 工場や建設工事などの現場で両手がふさがっている作業者
  • 運転中でスマホを操作できない人

インターンシップの成果:音声通話の3つの拡張

  1. 単発の応答で終わらない、エージェント的な運用
     「質問して答えが返ってくる」だけの一問一答を実現するだけでなく、OpenClawのようなエージェント的な振る舞いを組み合わせることで、音声通話の一時受けから異常時の初期対応まで可能です。
  2. 音声からIoTへの橋渡し
     SORACOM IoT SIMがあれば、Asterisk/コントロールプレーンはWioLTEといったマイコンやソラカメ、 PLC (Programmable Logic Controller) といったIoTデバイスともシームレスに繋がります。つまり、現場について「電話でAIと話す」だけでなく「音声でIoTに指示を出す」ことが実現可能です。
  3. スマートグラスとの連携という最終形
     スマートグラスと今回開発する音声AIエージェントを組み合わせれば、視界そのものをAIと共有可能です。現場の設備の状態を見せながら「これ、どこが壊れてる?」と聞き、AIが故障箇所を特定して直し方を音声で指示や、HUD (Head-Up Display)を調整することで視認での指示も可能になりました。

この記事では、SORACOM Air RTC Gatewayの拡張性を活かした音声AIエージェントの開発のために、土台となるソラコムサービスのSORACOM Air RTC Gatewayの概要を説明します。次に、音声AIとの接続方式とソラコムの音声AIエージェントの概要をユースケースを用いて説明します。最後に、スマートグラスとの連携について触れ、インターンのまとめを示します。

音声AIエージェントの開発

土台となるソラコムのサービス

2026年7月からSORACOM Air RTC Gateway が提供開始されました。

SORACOM Air RTC Gatewayとは、ソラコムが提供するSIM (SORACOM IoT SIM) を使うデバイスが標準搭載しているVoLTE機能をそのまま活用し、その音声接続をSORACOM側で受け取って、指定したVoIPプロバイダやIP-PBXへ伝送してくれるサービスです。

デバイス側に専用のSIPアプリを実装したり、ファームウェアを作り込んだりする必要がありません。SIMグループごとに接続先を設定し、SIM IDごとにVoIP認証情報を割り当てることで、デバイスごとに柔軟な接続先ルーティングができます。

SORACOM Air RTC Gatewayの構成概要

今回は、このSORACOM Air RTC Gatewayの拡張性を活用するために、IP-PBXの一つであるAsteriskを用いて、画像の右下のAIエージェントと通話を実現します。

VoLTE対応デバイスからの音声を、「SORACOMのネットワークを経由してそのままAsteriskに引き渡し、そこから音声AIへ繋ぐ」という構図がSORACOM純正の仕組みとして成立可能になります。

音声AIと繋ぐアプローチ

音声AIと繋ぐためには、リアルタイム通信プロトコルの一つであるWebsocketの使用が一般的です。さらに、今回使用したOpenAI Realtime APIは通話専用の通信プロトコルであるSIPでの接続を提供しているため、WebSocketとSIPの2パターンを想定しました。

WebSocketを使って通信する場合、下図のようにAsteriskと音声AIの間でデータ形式を変換する「中継役(ブリッジ)」が必要になります。具体的には、電話サーバーから届く音声データをAIが理解できる通信方式(WebSocket)へ変換して転送するブリッジを開発しました。

Asteriskと音声AIをWebSocketで接続する構成
UE → [SIP/RTP] → Asterisk → *Bridge → [WebSocket] → OpenAI Realtime API

WebSocket方式は柔軟な制御が可能な一方で、音声データのフォーマットをAI用に変換する処理が発生します。

SIPを使えば、自前のブリッジを用意する必要がありません。OpenAI Realtime APIはSIP接続に標準対応しているため、システム構成を大幅にシンプル化できます。結果として、Asteriskの内線からOpenAIの接続先へ直接発信するだけで、スムーズな音声接続が実現できました。

ここで、SORACOM Air RTC GatewayからOpenAIのSIPインターフェースに直結せず、間にAsteriskを挟んでいる理由を補足します。音声の中継だけを見れば不要に思えるかもしれませんが、AsteriskはIP-PBXとして、人間の担当者への転送や、IoTデバイスの検知をきっかけにした発信の起点など、通話そのものを制御する役割を担っています。後述するユースケースでも説明しますが、今回の目的を達成するためには、中間にAsteriskを介することが必要不可欠になります。

AsteriskとOpenAI Realtime APIをSIPで接続する構成
UE → [SIP/RTP] → Asterisk → [SIP] → OpenAI Realtime API

実装はこちらの記事を参考にしました(ありがとうございます!)。

  1. Asteriskに登録された電話機が、特定の内線に発信
  2. OpenAIが接続可否を判断するためにWebhookを呼び出す
  3. 自前のWebhookサーバがWebhookを受け、許可する場合はAccept API(POST /v2/realtime/calls/{call_id}/accept)を呼び出す
  4. (AIエージェントとして扱うには)コントロールプレーンは別途wss://api.openai.com/v2/realtime?call_id={call_id}にsidebandを使ってWebSocketで接続し、通話の制御・プロンプトの更新・tool callへの応答を行います。

SIP方式では、音声コーデック変換のためのブリッジは必要なくなりましたが、接続可否の判断のために認証用のWebhookサーバが必要になります。しかし、一度認証を行えば、その後の音声データのやり取りにサーバーが介入する必要はありません。

ここまでに構築したシステムは、実際にどのような場面で活きるのでしょうか。想定している具体的なユースケースを紹介します。

【ユースケース1:AIと相談しながら、障害対応】

項目

内容

コンポーネント

  1. SORACOM Air RTC Gateway
  2. Asterisk
  3. 音声AI(OpenAI Realtime API)

流れ

  1. SORACOM Air RTC Gatewayを使用し、音声AIへダイアル
  2. 作業者がセンサ情報を読み取り、情報を音声AIに伝達
  3. プロンプトで定義している対応手順を元に、音声AIが指示
  • Asteriskのエスカレーション機能のAMI (Asterisk Manage Interface)を使用することで、着信の一時受けを音声AIが担当し、判断が不可能な場合やより詳しい専門家に問い合わせたい場合に、担当者に転送可能

Soracom Agent デモ – 06 音声.mp4

音声AIエージェント

音声AIと通話できる技術ができた段階では、AIはあくまで「話を聞いて返事をする」だけの状態です。今回のインターンの目的である「実際に行動できる音声AI(ツールの実行)」を実現するには、この上にもう1段、AIの判断と外部サービスの実行を仲介するコントロールプレーンが必要になります。

コントロールプレーンを用いて、SORACOM IoT SIMや外部サービスと接続

コントロールプレーンを用いた音声AIエージェントの構成

【ユースケース2:障害対応時に、センシングデータを取得し、状況を確認しながら、対処法を提供】

項目

内容

コンポーネント

  1. SORACOM Air RTC Gateway
  2. Asterisk
  3. 音声AI(OpenAI Realtime API)
  4. IoTデバイス(WioLTEなど、SORACOM IoT SIM搭載)
  5. SORACOM Downlink API

流れ

  1. SORACOM Air RTC Gatewayを使用し、音声AIへダイアル
  2. センシングデータを音声AIに問い合わせ
  3. コントロールプレーン経由で、SORACOM IoT SIMにアクセスし、センシングデータを取得
  4. 取得した情報をもとに、音声AIが状況を解析
  5. プロンプトで定義している対応手順通りに音声AIが作業者に指示
  • SORACOM Air RTC Gatewayを利用する際でもUEにはSORACOM IoT SIMが必要ですが、センシングデータを取得するIoTデバイスもSORACOM IoT SIMを搭載することで、SORACOM Downlink APIを使用することが可能となり、閉域網の中でコントロールプレーンからデバイスへHTTPで直接コマンドを送信できます。
  • 障害対応ドキュメントをGoogle Document等で管理し、音声AIにコントロールプレーン経由で読み込ませることで、細かな修正手順も定義可能です。さらに、手順の変更も、コードを修正せずに、ドキュメント上で行うことができ、プロンプト調整等の音声AIエージェント自体の操作は不要です。同様の流れでSlackと連携すると、日々の業務の指示も可能になります。
  • また、2026年7月に提供を開始したSORACOM knowledge MCPサーバとの連携も可能のため、音声AIエージェントが、SORACOMの公開ドキュメントを検索し、回答の根拠となる一次情報を取得することも可能になります。

【ユースケース3:ソラカメで異常検知した際に、音声AIエージェントからUEに発信】 

これまでの内容を統合し、ソラコムが提供するクラウド側カメラのソラカメを使用すると、モーションを検知した際にコントロールプレーンが発信の起点となり、音声AIエージェントとともに迅速な障害対応に着手することが可能です。以下の図のように、ソラカメには標準でモーション検知の通知設定機能があり、検知イベントが発生するとWebhook URLへPOSTでイベント情報が送られます。この通知先を、コントロールプレーンのエンドポイントに指定することで、検知をそのまま音声AIエージェントからの発信のトリガーとして使えます。

ソラカメのモーション検知Webhook設定画面

項目

内容

コンポーネント

  1. SORACOM Air RTC Gateway
  2. Asterisk
  3. 音声AI(OpenAI Realtime API)
  4. SORACOM IoT SIM
  5. SORACOM Downlink API
  6. ソラカメ

流れ

  1. ソラカメがモーション検知し、Webhookが発火
  2. ソラカメから受け取った画像をもとに音声AI自身に重要度を判断させ、異常と判断した場合に、コントロールプレーンからAisteriskにUEの発信を指示して、音声AIエージェントと接続
  3. 音声AIエージェントが「モーションを検知しました」といったソラカメの状況を伝達
  4. 作業者がセンシングデータを音声AIエージェントに問い合わせると、コントロールプレーンがSORACOM IoT SIM経由でIoTデバイスにアクセスし、センシングデータを取得
  5. 取得した情報をもとに、音声AIエージェントと対応方法を相談
  6. 音声AIエージェントで判断できない場合は、上司に転送

AIスマートグラスとの連携

冒頭で述べた「現場作業中・運転中は両手がふさがっている」という課題は、音声通話だけでも一定解決できます。しかし、電話越しに「今、目の前の制御盤のどこが壊れているか」を言葉だけで説明するのは、作業者にとって負担が大きく、AI側も状況を正確に把握しづらいという課題があります。そこで、スマートグラスであれば、装着したまま音声で会話しつつ、視界の映像もAIに渡すことができます。

スマートグラスと音声AIエージェントの連携構成

本インターン期間中に、以下の2点をRokidスマートAIグラスで確認しました。Rokid スマートAIグラスは、スマートフォンと連携し、翻訳やAI検索、ナビゲーションなどの情報を視界に表示します。スマートフォンを何度も取り出さず音声やボタンで操作可能のため、移動中や作業中でも、目の前のことに集中したまま使用可能です。

  1. SORACOM Air RTC Gateway経由での音声AI通話:スマートグラスをヘッドセットとして扱い、これまでと同じようにSORACOM Air RTC Gateway経由で、音声AIエージェントと会話できることを確認
  2. 視界の共有:グラスの物理ボタンを押すと撮影した画像が音声AIエージェント側に送られ、視界を共有できることを確認。また、音声で「写真を撮って」と指示することでも同様に撮影・共有できることを確認

上図に示されるように、音声はUE – 音声AIエージェント間の経路をそのまま使い、画像も既存の経路である音声AIとコントロールプレーン間のsidebandを通じての音声AI側に送信します。

今回新しく取り組んだのは、この既存の仕組みにRokidスマートAIグラスを接続するためのアプリ開発です。具体的には、スマートフォン側で動くCXR-L SDKを用いたカスタムアプリを改良し、音声AIエージェントからの指示による撮影と、既存の画像送信経路への連携を実装しました。あわせて、グラス本体(YodaOS-Sprite)側で動くCXR-S SDKにも一部着手しています。これは、グラスの物理シャッターボタンによる撮影がCXR-L側のコールバックでは検知できず、グラス本体の特権プロセスが直接ファイルシステムに書き込む仕様であるため、撮影イベントを監視し、画像をチャンク分割してBluetooth経由でスマートフォン側に転送するグラス側アプリが必要でした。

【ユースケース4:現場の故障診断支援】

項目

内容

コンポーネント

  1. SORACOM Air RTC Gateway
  2. Asterisk
  3. 音声AI(OpenAI Realtime API)
  4. Rokid AI Smart Glass

流れ

  1. 作業者が制御盤を見ながら「ここ、どこが壊れてる?」と話しかける、あるいは物理ボタンで撮影
  2. 作業者の視界を画像としてAIに送信
  3. AIが視界(画像)を解析
  4. 修理手順を音声やHUD表示で案内

この一連の流れが実現すれば、現場作業者は完全に手がふさがった状態でも、AIに相談しながら障害対応を進められるようになります。既存の仕組みに変更はないため、Asteriskのエスカレーション機能やセンサ情報の取得も可能です。

現状の位置づけ

SORACOM Air RTC Gateway経由の音声通話と、グラスからの視界共有(物理ボタン起動・音声指示起動の両方)は実機で動作確認済みです。一方で、グラス上でのHUD表示(修理手順やセンサー値を視界に重ねて表示する機能)はCXR-S SDKを使った実装が必要で、本インターンの期間内では未着手・未検証のため、今後実装に取り組むべき機能となります。

インターンを通して学んだこと

約6ヶ月のインターンシップを通して、数多くの技術的な知識や開発経験を得ることができましたが、最も価値のある学びだったと考えることは以下の2つです。

  1. ソラコムが提供している価値

研究活動でも同様ですが、開発側ではこのサービスは誰にとって嬉しいのかを整理することが重要だと考えています。開発当初は、SORACOM Air RTC Gatewayにより、IoTデバイスと音声AIとの接続が可能になり、さらに外部サービスとの連携までが、今回のインターンシップ期間で携わるソラコムの価値と認識していました。しかし、メンターのoguとの会話をきっかけに、ソラコムとして提供できる嬉しさは何があるのかを再度整理すると、AI/IoT通信プラットフォーム SORACOMを通して、IoTと、その先へ繋げるためには、音声AIとの会話だけではなく、IoTデバイスの制御から、センシングデータの取得、障害対応も可能な音声AIエージェントの開発が、このインターンシップでの私の役割であることを理解しました。メンターのoguからは、私の認識と現場の実情とのギャップや、創業当初からソラコムが提供してきた価値を学びました。このような視点でソラコムの他のサービスを見ると、企業理念であるMaking Things Happen for a world that works togetherに従って、目指す世界の実現のために進み続けている会社であることを理解しました。

  1. 社風について

ガートナー社の「マネージドIoTコネクティビティサービス、ワールドワイド」部門のMagic Quadrant™でリーダーの1社に評価されるような、グローバルでも高い評価を得ている会社であり、インターンシップへの参加以前から公開情報などを通じて認識できる点だと思います。同時に、月に一回のHAPPY HOUR(メンバーで集まる会)でのカジュアルな発表や、不定期で発生する卓球イベント(!)のような遊び心が、働く上での心理的安全性に寄与しているのかもしれないと考えています。グローバルで評価されている環境下と、肩の力が抜けた社内の空気のギャップが私には非常に心地よいと感じました。

― ソラコム sota

参考リンク