> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# キーパッドのタッチトーンを再生

## 概要

キーパッドのタッチトーンツールを使用すると、ElevenLabsエージェントは通話中にDTMF（Dual-Tone Multi-Frequency）トーンを再生できます。これはキーパッドの数字を押したときに鳴るトーンです。これにより、エージェントは自動電話システムとやり取りし、音声メニューの操作、内線番号の入力、PINコードの入力など、通常は人間の発信者が電話のキーパッドでキーを押す必要があるタッチトーン操作を実行できます。

このシステムツールは、標準のDTMFトーン（0～9、\*、#）に加え、タイミング制御用の一時停止コマンドもサポートします。TwilioとSIPトランキングの電話インテグレーションの両方でシームレスに動作し、基盤となる電話インフラに適したオーディオトーンを自動生成します。

発信者からキーパッドの数字を収集する方法については、[DTMF入力](/docs/ja/eleven-agents/customization/multimodal-input#dtmf-input)をご覧ください。

## 機能

* **標準DTMFトーン**：標準キーパッドのすべての文字（0～9、\*、#）をサポート
* **一時停止制御**：正確なタイミングのための一時停止コマンドを含む（w＝0.5秒、W＝1.0秒）
* **複数プロバイダーのサポート**：TwilioとSIPトランキングの両方のインテグレーションで動作

このシステムツールは、電話メニューの操作、内線番号の入力、コードの入力に使用できます。
LLMは会話のコンテキストに基づいて、再生するタイミングとトーンを判断します。

デフォルトのツール説明では、会話を処理するLLMにこれらのトーンを再生できることを伝えます。
エージェントがこのツールを呼び出すタイミングを説明するよう、エージェントのシステムプロンプトを更新することをおすすめします。

**パラメーター**：

* `reason`（文字列、任意）：DTMFトーンを再生する理由（例：「内線へ移動」、「PINを入力」）
* `dtmf_tones`（文字列、必須）：再生するDTMFシーケンス。有効な文字：0～9、\*、#、w（0.5秒の一時停止）、W（1秒の一時停止）

**関数呼び出し形式**：

```json
{
  "type": "function",
  "function": {
    "name": "play_keypad_touch_tone",
    "arguments": "{"reason": "Navigating to customer service", "dtmf_tones": "2"}"
  }
}
```

## 帯域外DTMF

デフォルトでは、DTMFトーンは音声ストリーム内の帯域内オーディオ信号として送信されます。ただし、一部のIVR（自動音声応答）システムでは、オーディオ圧縮、ネットワーク状況、システム設定により、これらの帯域内トーンを確実に検出できない場合があります。

帯域外DTMF（RFC 4733）は、オーディオではなく個別のRTPパケットとしてトーンを送信します。この方法は、受信側のIVRシステムが標準の帯域内DTMFを検出しにくいSIPトランキングの実装で、より信頼性が高くなります。

帯域外DTMFを有効にするには：

1. エージェントのツール設定に移動します
2. **キーパッドのタッチトーンを再生**ツールを選択します
3. **帯域外DTMF（RFC 4733）を使用する**チェックボックスをオンにします

> **Note**
>
> 帯域外DTMFはSIPトランキング通話でのみ利用できます。この設定は、Twilio
> Nativeインテグレーションの通話では無視されます。

## サポートされる文字

このツールは、次のDTMF文字とコマンドをサポートします：

* **数字**：`0`、`1`、`2`、`3`、`4`、`5`、`6`、`7`、`8`、`9`
* **特殊トーン**：`*`（アスタリスク）、`#`（シャープ／ハッシュ）
* **一時停止コマンド**：
  * `w`：短い一時停止（0.5秒）
  * `W`：長い一時停止（1.0秒）

## API実装

APIでエージェントを作成または更新する際に、`play_keypad_touch_tone`システムツールを設定できます。このツールでは、有効化以外の追加設定パラメーターは必要ありません。

```python
from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs

elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")

response = elevenlabs.conversational_ai.agents.create(
    conversation_config=ConversationalConfig(
        agent=AgentConfig(
            first_message="Hi, I can help you navigate phone systems. How can I assist you today?",
            prompt={
                "prompt": "You are a helpful assistant that can interact with phone systems.",
                "built_in_tools": {
                    "play_keypad_touch_tone": {
                        "type": "system",
                        "name": "play_keypad_touch_tone",
                        # Optional custom description
                        "description": "Play DTMF tones to interact with automated phone systems.",
                        "params": {"system_tool_type": "play_keypad_touch_tone"},
                    }
                },
            },
        ),
    ),
)
```

```javascript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient({
  apiKey: "YOUR_API_KEY",
});

await elevenlabs.conversationalAi.agents.create({
  conversationConfig: {
    agent: {
      firstMessage: "Hi, I can help you navigate phone systems. How can I assist you today?",
      prompt: {
        prompt: "You are a helpful assistant that can interact with phone systems.",
        builtInTools: {
          playKeypadTouchTone: {
            type: "system",
            name: "play_keypad_touch_tone",
            description: "Play DTMF tones to interact with automated phone systems.", // Optional custom description
            params: {
              systemToolType: "play_keypad_touch_tone",
            },
          },
        },
      },
    },
  },
});
```

> **Note**
>
> このツールは、TwilioまたはSIPトランキングによるアクティブな通話中にのみ動作します。電話での会話以外のコンテキストで呼び出すと、
> エラーが返されます。