Voice Call Skill - Clawdbot向け音声通話機能
Clawdbot向けVoice Call Skillを利用して、Twilio、Telnyx、Plivoを使用したAI Agent主導の音声通話を実現する方法を解説します。
Voice Call Skill - Clawdbot向け音声通話機能
ClawdbotのVoice Call Skillは、Twilio、Telnyx、Plivoなどのクラウド電話サービスを利用したAI Agent主導の音声通話機能を提供する。音声メッセージの送信、通話ステータスの確認、対話的な音声通話の制御が可能である。
概要
Voice Call Skillは、voice-callプラグインとして実装されており、複数のVoIPプロバイダーに対応している。Clawdbot Agentは、ユーザーへのリマインダー、緊急通知、対話型アシスタント機能を音声通話を通じて提供できる。
2026年2月時点で、以下のプロバイダーに対応:
- Twilio: 最大手のクラウド通信プラットフォーム(190カ国以上対応)
- Telnyx: エンタープライズ向けVoIP/SMS提供(グローバル対応)
- Plivo: 低価格な代替プロバイダー
- Mock: 開発・テスト用のネットワーク通信なしモード
技術的仕様
システム要件
- Clawdbot: voice-callプラグインが有効化されていること
- プロバイダーアカウント: Twilio、Telnyx、またはPlivoの有効なアカウント
- 電話番号: 発信元電話番号(各プロバイダーから取得)
インストール・設定
voice-callプラグインの有効化は、~/.clawdbot/clawdbot.jsonで設定:
{
"plugins": {
"entries": {
"voice-call": {
"enabled": true,
"config": {
"provider": "twilio",
"fromNumber": "+15555550100",
"twilio": {
"accountSid": "AC...",
"authToken": "..."
}
}
}
}
}
}
プロバイダー別設定
Twilio設定:
{
"provider": "twilio",
"fromNumber": "+15555550100",
"twilio": {
"accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"authToken": "your_auth_token"
}
}
取得方法:
- Twilioコンソール(https://console.twilio.com)にログイン
- Account SIDとAuth Tokenを取得
- 電話番号を購入(Phone Numbers → Buy a Number)
Telnyx設定:
{
"provider": "telnyx",
"fromNumber": "+15555550200",
"telnyx": {
"apiKey": "KEY...",
"connectionId": "..."
}
}
取得方法:
- Telnyxポータル(https://portal.telnyx.com)でAPI Keyを生成
- Connection IDを作成(Voice → Connections)
- 電話番号を購入
Plivo設定:
{
"provider": "plivo",
"fromNumber": "+15555550300",
"plivo": {
"authId": "MA...",
"authToken": "..."
}
}
Mock設定(開発用):
{
"provider": "mock"
}
ネットワーク通信を行わず、ログ出力のみで動作確認可能。
主要機能
Voice Call Skillは以下のアクションを提供:
| アクション | 説明 | パラメータ |
|---|---|---|
initiate_call | 新規通話を開始 | message, to, mode |
continue_call | 既存通話を継続 | callId, message |
speak_to_user | 通話中にメッセージを送信 | callId, message |
end_call | 通話を終了 | callId |
get_status | 通話ステータスを取得 | callId |
CLI使用方法
コマンドラインからの直接実行:
# 通話開始
clawdbot voicecall call --to "+15555550123" --message "Hello from Clawdbot"
# ステータス確認
clawdbot voicecall status --call-id <call-id>
ツール使用方法(Agent統合)
Clawdbot Agentからvoice_callツールを使用:
// 通話開始
voice_call({
action: "initiate_call",
message: "This is a reminder from Clawdbot. Your meeting starts in 10 minutes.",
to: "+15555550123"
})
// 通話ステータス確認
voice_call({
action: "get_status",
callId: "CA..."
})
// 通話終了
voice_call({
action: "end_call",
callId: "CA..."
})
実装例
1. リマインダー通知
会議10分前に自動音声通知:
#!/bin/bash
MEETING_TIME="2026-02-15 14:00:00"
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
TARGET_NUMBER="+15555550123"
# 10分前を計算(簡略版)
REMINDER_TIME=$(date -d "$MEETING_TIME - 10 minutes" +"%Y-%m-%d %H:%M:%S")
if [[ "$CURRENT_TIME" == "$REMINDER_TIME" ]]; then
clawdbot voicecall call \
--to "$TARGET_NUMBER" \
--message "This is your meeting reminder. Your meeting starts in 10 minutes."
fi
2. 緊急アラート通知
システム障害時の緊急連絡:
const { exec } = require('child_process');
function sendEmergencyAlert(phoneNumber, message) {
const cmd = `clawdbot voicecall call --to "${phoneNumber}" --message "${message}"`;
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.error('通話エラー:', error);
return;
}
console.log('緊急通知送信完了:', stdout);
});
}
// 使用例
sendEmergencyAlert(
'+15555550123',
'Critical alert: Database server is down. Immediate action required.'
);
3. 対話型音声アシスタント
ユーザーからの音声入力に応答(Twilio Webhook使用):
// Express.jsサーバー例
const express = require('express');
const app = express();
app.post('/voice/incoming', (req, res) => {
const response = `<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Hello, this is Clawdbot. How can I assist you today?</Say>
<Gather input="speech" action="/voice/process" method="POST" />
</Response>`;
res.type('text/xml');
res.send(response);
});
app.post('/voice/process', (req, res) => {
const userSpeech = req.body.SpeechResult;
// AI Agentで処理(Anthropic Claude API等を使用)
const aiResponse = processWithAI(userSpeech);
const response = `<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>${aiResponse}</Say>
</Response>`;
res.type('text/xml');
res.send(response);
});
app.listen(3000, () => console.log('Voice server running on port 3000'));
4. バッチ通知(複数番号への一斉送信)
複数の電話番号に同じメッセージを送信:
#!/bin/bash
MESSAGE="System maintenance will begin in 30 minutes. Please save your work."
NUMBERS=("+15555550123" "+15555550456" "+15555550789")
for number in "${NUMBERS[@]}"; do
clawdbot voicecall call --to "$number" --message "$MESSAGE"
sleep 2 # Rate limit対策
done
5. 通話ステータス監視
通話完了までステータスをポーリング:
import subprocess
import time
import json
def initiate_call(to_number, message):
result = subprocess.run(
['clawdbot', 'voicecall', 'call', '--to', to_number, '--message', message],
capture_output=True,
text=True
)
# Call IDを抽出(実装はCLI出力に依存)
return extract_call_id(result.stdout)
def get_call_status(call_id):
result = subprocess.run(
['clawdbot', 'voicecall', 'status', '--call-id', call_id],
capture_output=True,
text=True
)
return json.loads(result.stdout)
# 使用例
call_id = initiate_call('+15555550123', 'Test message')
while True:
status = get_call_status(call_id)
print(f"通話ステータス: {status['status']}")
if status['status'] in ['completed', 'failed', 'no-answer']:
break
time.sleep(5)
6. Clawdbot Agentからの自律的通話
Clawdbot Agentが状況判断して自律的に通話:
// Clawdbot Agent内部ロジック例
async function checkSystemHealth() {
const cpuUsage = await getCPUUsage();
const memoryUsage = await getMemoryUsage();
if (cpuUsage > 90 || memoryUsage > 95) {
// 緊急通知
voice_call({
action: "initiate_call",
to: "+15555550123",
message: `Critical system alert. CPU usage is at ${cpuUsage}% and memory usage is at ${memoryUsage}%. Immediate investigation required.`
});
}
}
// 5分ごとにヘルスチェック
setInterval(checkSystemHealth, 5 * 60 * 1000);
ユースケース
自動リマインダー
- 会議・予定のリマインダー通知
- 薬の服用時間通知
- タスク期限アラート
緊急通知
- システム障害アラート
- セキュリティインシデント通知
- インフラストラクチャー監視アラート
カスタマーサポート
- 注文確認通知
- 配送ステータス更新
- アポイントメント確認
対話型アシスタント
- 音声によるタスク管理
- 情報検索(天気、ニュース等)
- スマートホーム制御
制限事項・セキュリティ考慮事項
機能制限
- プラグイン有効化必須: voice-callプラグインが無効の場合、ツールは使用不可
- プロバイダー依存: 各VoIPプロバイダーのAPI仕様に依存(Rate Limit、地域制限等)
- TTS制約: 音声合成の品質はプロバイダーのTTSエンジンに依存
コスト
各プロバイダーの従量課金(2026年2月時点の参考価格、公式サイト要確認):
- Twilio: $0.013/分(米国内通話)
- Telnyx: $0.004/分(米国内通話)
- Plivo: $0.0060/分(米国内通話)
国際通話は国により価格が異なる。
セキュリティ
- 認証情報管理: Account SID、Auth Token、API Keyは環境変数または設定ファイル(適切な権限設定)で管理
- 電話番号検証: 発信先電話番号の検証を実装し、意図しない通話を防ぐ
- Rate Limit: 短時間に大量の通話を発信しないよう制御(プロバイダーの利用規約遵守)
- プライバシー: 通話ログ、録音データの取り扱いは各国の電気通信事業法に準拠
コンプライアンス
- TCPA(米国): 自動電話発信はTelephone Consumer Protection Act(TCPA)に準拠する必要がある
- GDPR(EU): 個人データ(電話番号)の処理にはGDPR遵守が必要
- Do Not Call Registry: 各国のDo Not Call Registryに登録された番号への発信を避ける
パフォーマンス
- 通話接続時間: 通話開始まで5-15秒程度かかる場合がある
- 音声遅延: TTS生成および音声伝送による遅延(通常1-3秒)
- 並列通話数: プロバイダーのアカウントプランにより同時通話数制限がある
トラブルシューティング
「plugin not enabled」エラー:
~/.clawdbot/clawdbot.jsonでvoice-callプラグインを有効化。
「invalid credentials」エラー:
Account SID、Auth Token、API Key等の認証情報を確認。
通話が接続されない:
発信元電話番号が正しく設定されているか、プロバイダーで番号が有効化されているか確認。
参考リンク
- Twilio公式サイト: https://www.twilio.com
- Twilio Voice API仕様: https://www.twilio.com/docs/voice/api
- Telnyx公式サイト: https://telnyx.com
- Telnyx Voice API: https://developers.telnyx.com/docs/api/v2/voice
- Plivo公式サイト: https://www.plivo.com
- Plivo Voice API: https://www.plivo.com/docs/voice/api/
- Clawdbot公式ドキュメント: https://github.com/cncf/clawdbot
本記事の情報は2026年2月15日時点のものです。各VoIPプロバイダーのAPI仕様、価格、規制は変更される可能性があります。最新情報は各公式サイトをご確認ください。
関連記事
SAG Skill - ElevenLabs TTSをmacOS標準sayコマンド風UIで提供するClawdbot拡張機能
Clawdbot向けSAG Skillを利用して、ElevenLabs Text-to-Speech APIによる高品質音声合成をmacOS標準sayコマンド風のインターフェースで実現する方法を解説します。
Sherpa ONNX TTS Skill - オフライン音声合成をClawdbot環境で実現
Clawdbot向けSherpa ONNX TTS Skillを利用して、クラウド不要のローカル音声合成環境を構築する方法を解説します。
BlueBubbles Skill - ClawdbotでiMessageを統合
Clawdbot向けBlueBubbles Skillを利用して、Apple iMessageおよびSMS経由でのメッセージ送受信を実現する方法を解説します。
人気記事
Claude Code v2.1.93 リリース - PreToolUseフック延期決定やフリッカーFREE渲染など
AnthropicがClaude Code v2.1.93をリリース。PreToolUseフックの延期決定機能、フリッカー-freeレンダリングオプション、PermissionDeniedフック、名前付きサブエージェントのタイプアヘッド対応などを含む。
Claude Code v2.1.92 リリース - forceRemoteSettingsRefreshやBedrockセットアップウィザードなど
AnthropicがClaude Code v2.1.92をリリース。forceRemoteSettingsRefreshポリシー設定、Bedrockセットアップウィザード、costコマンドの改善など多数の機能追加とバグ修正を含む。
Claude Code v2.1.84 リリース - PowerShellツールプレビューと環境設定の強化
Claude Code v2.1.84がリリース。Windows向けのPowerShellツール、環境変数によるモデル選択のカスタマイズアイドルセッション処理の改善などが含まれる。
最新記事
Claude Code v2.1.93 リリース - PreToolUseフック延期決定やフリッカーFREE渲染など
AnthropicがClaude Code v2.1.93をリリース。PreToolUseフックの延期決定機能、フリッカー-freeレンダリングオプション、PermissionDeniedフック、名前付きサブエージェントのタイプアヘッド対応などを含む。
Claude Code v2.1.92 リリース - forceRemoteSettingsRefreshやBedrockセットアップウィザードなど
AnthropicがClaude Code v2.1.92をリリース。forceRemoteSettingsRefreshポリシー設定、Bedrockセットアップウィザード、costコマンドの改善など多数の機能追加とバグ修正を含む。
Claude Code v2.1.91 リリース - MCPツール結果の永続化とEditツールの最適化
Claude Code v2.1.91ではMCPツールの結果サイズの上書き、シェル実行の制御強化、Editツールの効率改善などが行われた。