Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?


In this guide we'll show you how to use Programmable Voice to record phone calls with your Node.js web application. You can tell Twilio to record part of a phone call or the entire thing. The code snippets in this guide are written using modern JavaScript language features in Node.js version 6 or higher, and make use of the following modules:




While it might be fun to program a robot to answer a physical phone, Twilio makes answering a phone call as easy as responding to an HTTP request. When a phone number you have bought through Twilio receives an incoming call, Twilio will send an HTTP request to a server you control, asking for instructions on how to handle the call. Your server will respond with an XML document containing TwiML that tells Twilio to read out a message, play an MP3 file, make a recording, and much more.


  • Buy and configure a Twilio-powered phone number capable of making and receiving phone calls, and point it at your web application
  • Webアプリケーションのコードを記述し、(TwiMLを使った)着信通話の処理方法をTwilioに指示します。
  • 通話の着信があったときにTwilioがWebhookのリクエストを送信できるよう、Webアプリケーションをインターネットからアクセス可能にしておきます


In the console, you can search for and buy phone numbers in dozens of different countries, capable of calling (and being called by) just about every phone on the planet.


Once you purchase a number, you'll need to configure that number to send a request to your web application. This callback mechanism is called a webhook. This can be done in the number's configuration page.



A webhook is a callback mechanism that allows two systems to communicate events to one another over the Internet using HTTP requests. In this case, Twilio is sending a webhook request to your web application whenever a phone number you control receives an incoming call. You'll see this webhook mechanism used in many Twilio APIs for handling event notifications like this.

インターネットからアクセスできるサーバーで作業をしていないですって? ローカルの開発マシンをインターネット上からアクセスできるようにする方法については、後ほどこのガイドのご紹介します。 続いて、通話が着信通話があったときに実行されるサーバー側のコードを書く必要があります。


ここからがいよいよお楽しみ - Twilioから受信されてきたHTTPリクエストを処理するコードの記述です!

In this example we'll use the Express web framework for Node.js to respond to Twilio's request and we'll use TwiML to tell Twilio how to handle the call.

        <Record> TwiML動詞を使って、発信者からのメッセージを録音します


        <Record> TwiML動詞を使って、発信者からのメッセージを録音します

        TwiML is a set of XML tags that tell Twilio how to handle an incoming call (or SMS). In this example we tell Twilio to read some instructions to the caller and then record whatever the caller says next.

        You can listen to your recordings in your Twilio Console or access them directly through Twilio's REST API.

        録音データのテキスト化 (日本語未対応)


              <Record> TwiML動詞をいくつかの追加の引数をともなって使用し、発信者のメッセージをテキスト化します


              <Record> TwiML動詞をいくつかの追加の引数をともなって使用し、発信者のメッセージをテキスト化します

              ここでは、応答に "transcribe: true" を追加して、録音の終了後、それをテキスト化するようTwilioに指示します。 また、録音の長さ(既定では1時間)を制限するため、 "maxLength"引数も渡します。

              <Record> のリファレンス・ドキュメントを参照して、録音データをカスタマイズできるすべてのパラメーターについてご覧ください。


              Twilio REST APIで通話を発信する際、通話の始めから終わりまでの通話全体を録音するよう、Twilioに指示できます。 


              First, you'll need to get your Twilio account credentials. They can be found on the home page of the console.



              "client.calls.create()" に、追加で "record" 引数を渡すだけで、Twilioは通話全体を録音します。


                    Once the call is complete, you can listen to your recordings in your Twilio Console or access them directly through Twilio's REST API.

                    "client.calls.create()" コマンドに"StatusCallbackUrl"を含めることで、通話完了後すぐに録音データにアクセスすることができます。 通話の終了時には、Twilioは指定したURLにリクエストを送り、そのリクエストにはレコーディングのオーディオファイルへのリンクが含まれます。

                    「通話の発信」リファレンス・ドキュメントで、 "StatusCallbackUrl" パラメーターについてより詳しく学ぶことができます 。


                    このガイドがお役に立ったなら、プログラマブルVoiceとNode.js向けの以下のチュートリアルも、ご興味を持たれるかもしれません。 チュートリアルではこうしたTwilioの活用事例を実装しているサンプルアプリケーションについて順を追って紹介しています。


                    David Prothero Ricky Robinett Kevin Whinnery Kat King Andrew Baker Jose Oliveros
                    Rate this page:


                    誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。