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仕様、価格、規制は変更される可能性があります。最新情報は各公式サイトをご確認ください。
Related Articles
OpenClaw Skills Ranking February 2026: Planning Skills and Security Suite Dominate Top 10
GitHub OpenClaw skills ranking shows awesome-openclaw-skills (16,139 stars), Manus-style planning implementation planning-with-files (14,000 stars), and Obsidian integration (9,998 stars) claiming top 3 positions.
OpenClaw v2026.2.17: Claude Sonnet 4.6 Support, 1M Context, Slack/Telegram Enhancements
OpenClaw releases major update with Claude Sonnet 4.6 and 1M context window support, Slack native streaming, Telegram inline button styles, iOS Share Extension, and critical security fixes (OC-09) among 100+ changes.
Popular Articles
Claude Code v2.1.93 Released - Deferred Permission Decisions, Flicker-Free Rendering, and More
Anthropic releases Claude Code v2.1.93 with deferred permission decisions for PreToolUse hooks, flicker-free rendering option, PermissionDenied hook, and named subagent typeahead support.
Claude Code v2.1.92 Released - forceRemoteSettingsRefresh, Bedrock Setup Wizard, and More
Anthropic releases Claude Code v2.1.92 with forceRemoteSettingsRefresh policy setting, AWS Bedrock setup wizard, /cost command improvements, and numerous bug fixes.
Claude Code v2.1.84 Release - PowerShell Tool Preview and Environment Configuration Enhancements
Claude Code v2.1.84 introduces PowerShell tool for Windows, new environment variable overrides for model selection, idle session handling improvements, and various stability fixes.
Latest Articles
Claude Code v2.1.93 Released - Deferred Permission Decisions, Flicker-Free Rendering, and More
Anthropic releases Claude Code v2.1.93 with deferred permission decisions for PreToolUse hooks, flicker-free rendering option, PermissionDenied hook, and named subagent typeahead support.
Claude Code v2.1.92 Released - forceRemoteSettingsRefresh, Bedrock Setup Wizard, and More
Anthropic releases Claude Code v2.1.92 with forceRemoteSettingsRefresh policy setting, AWS Bedrock setup wizard, /cost command improvements, and numerous bug fixes.
Claude Code v2.1.91 Released - MCP Tool Result Persistence and Improved Edit Tool
Claude Code v2.1.91 introduces MCP tool result persistence override, improved shell execution controls, and enhanced Edit tool efficiency.