mcpField
E
EXTEN.BOT

EXTEN.BOT

github.com/estvitaチャットアプリ559 週間前に更新

EXTEN.BOT について

EXTEN.BOTは、SIP対応のソフトウェアまたはハードウェアPBXに接続するVoIP音声ボットを作成するDjango製Webインターフェースです。OpenAI real-time APIを使い、カスタム関数やMCPサーバーで機能を拡張できます。

主な機能

  1. 01SIP接続音声ボットの作成
  2. 02OpenAI real-time API対応
  3. 03会話用カスタム関数
  4. 04MCPサーバーの設定
  5. 05SIP URIによる転送

活用シーン

  1. 01PBX経由で音声ボットを提供
  2. 02ボットからカスタム関数を呼び出す
  3. 03MCPサーバーでボットの機能を拡張

MCP 対応

管理者はベースURL、任意のAPIキー、承認設定を指定してMCPサーバーを登録し、会話中に機能を拡張するためボットに関連付けられます。

詳細

exten.bot

exten.bot は、SIP に対応するあらゆるソフトウェアまたはハードウェア PBX に接続できる VoIP 音声ボットを作成するための、Django ベースのウェブインターフェースです。

このシステムは、OpenSIPS サーバーと opensips-ai-voice-connector 上に構築されています。

AI には、OpenAI リアルタイム API を使用します。

このプラットフォームは、ボットの機能拡張や外部システムとの連携のために、カスタム関数と MCP サーバーに対応しています。

exten.bot で機能をお試しいただけます。

インストール

OS:Debian 12
DB:MySQL

SIP サーバー OpenSIPS
  • OpenSIPS 3.6 サーバーをインストールする必要があります。手順については公式ドキュメントをご覧ください。

  • opensips-cli をインストールします

  • opensips モジュールをインストールします:opensips-mysql-module、opensips-mysql-dbschema、opensips-json-module、opensips-http-modules、opensips-restclient-module、opensips-auth-modules、opensips-dialplan-module

curl https://apt.opensips.org/opensips-org.gpg -o /usr/share/keyrings/opensips-org.gpg
echo "deb [signed-by=/usr/share/keyrings/opensips-org.gpg] https://apt.opensips.org bookworm 3.6-releases" >/etc/apt/sources.list.d/opensips.list
echo "deb [signed-by=/usr/share/keyrings/opensips-org.gpg] https://apt.opensips.org bookworm cli-nightly" >/etc/apt/sources.list.d/opensips-cli.list

apt update

apt install opensips opensips-cli opensips-mysql-module opensips-mysql-dbschema opensips-json-module opensips-http-modules opensips-restclient-module opensips-auth-modules opensips-dialplan-module
  • 任意: openssips-cp をインストールします
  • 設定ファイル opensips.cfg と opensips-cli.sfg を次のフォルダーに配置し、 /etc/opensips データベース接続情報を自身のものに置き換えます
  • opensips データベースを作成します:opensips-cli -x database create
  • opensips のドメインテーブルに、sip exten.bot ドメイン(exten.example.com)を追加します
Exten.bot ウェブアプリ
sudo apt-get install build-essential libmysqlclient-dev python3-dev libssl-dev pkg-config
git clone https://github.com/estvita/exten_bot.git
cd exten_bot
cp examples/.env.example .env
Make the necessary changes to your .env
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements/production.txt

必要なパッケージと依存関係をインストールしたら、基本設定に進みます。

python manage.py migrate
python manage.py collectstatic
python manage.py createsuperuser

python manage.py runserver 0.0.0.0:8000

管理パネル /admin/authtoken/ でユーザートークンを作成して保存します

AI Voice Connector

機能を強化するため、私のフォーク版 voice connector を使用してください

Docker で openai voice connector をインストールする方法はテストしていないため、ひとまず仮想 Python 環境で実行します。

git clone https://github.com/estvita/opensips-ai-voice-connector-ce connector
cd connector 
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp docs/config.example config.ini

config.ini を変更します

[opensips]
ip = 127.0.0.1
port = 8080

[rtp]
ip = 192.168.3.29 vyour Opensips server external address
min_port = 10000
max_port = 20000

[engine]
event_ip = 127.0.0.1
bind_ip = 0.0.0.0
event_port = 50060
api_url = http://127.0.0.1:8000/api/bots/ your exten.bot api url
api_key = XXXXXXXXXXXXX token generated in exten.bot Django admin

voice connector の実行を試します

python src/main.py -c config.ini -l INFO

logs/app.log に次のような内容が表示されるはずです

2025-05-25 11:44:11,575 - tid: 139832749932608 - INFO - Starting server at 127.0.0.1:50060

テスト後は、voice connector を debian service として実行できます

設定

your_domain/admin の管理パネルに移動し、次のデータを入力します

  • /admin/bot/domain/ にドメイン(exten.example.com)を追加します。opensips のドメイン設定と同じものを指定します

  • /admin/bot/model/ にモデル gpt-4o-realtime-preview を追加します

  • /admin/bot/voice/ にボットの voices を追加します

  • /admin/workflow/function/ に、音声ボットが会話中に呼び出せるカスタム関数を追加します

  • /admin/workflow/mcp/ に、ボットの機能拡張用の MCP サーバーを追加します

これで音声ボットを作成できます

  • /admin/bot/bot/ にボットを追加します

フィールドの説明

  • Owner - ボットを関連付けるユーザー
  • Username and Password - 自動的に生成されます。SIP への接続にこの情報を使用します
  • Domain - exten.bot の SIP ドメイン
  • Token - openai token
  • Model - openai realtime model
  • Voice - openai voice
  • Instruction - ボットへの指示テキスト
  • Welcome msg - 接続時にボットが音声で伝えるメッセージ
  • Transfer uri - ユーザーのリクエストに応じて音声ボットが通話を転送する sip uri(sip:[email protected])
  • Functions - 会話中に音声ボットが利用できるカスタム関数を選択します
  • MCP Servers - ボットの機能拡張用の MCP サーバーを選択します

この後、opensips データベース(subscriber テーブル)にアカウントが作成されていることを確認します。

すべて問題なければ、受け取った sip アカウントの認証情報をソフトフォンまたは PBX で使用して [[email protected]] に発信し、電話で音声ボットと会話できます

サーバー上の SIP 接続を診断するには、コンソールユーティリティ [sngrep] を使用します

Functions and MCP Servers

カスタム関数
  • /admin/workflow/function/ に移動して、カスタム関数を作成します
  • 各関数には、名前、URL、JSON スキーマ、任意の入力スキーマが必要です
  • 関数はボットにリンクされ、会話中に呼び出すことができます
  • ボットの所有者のみが、自分の関数を自分のボットにリンクできます
MCP サーバー
  • /admin/workflow/mcp/ に移動して、MCP サーバーを追加します
  • 各サーバーには、ベース URL、任意の API キー、承認設定が必要です
  • サーバーのラベルは自動生成されますが、編集できます
  • MCP サーバーは音声ボットに拡張機能を提供します
  • ボットの所有者のみが、自分の MCP サーバーを自分のボットにリンクできます

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。