メニュー

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?

RubyおよびRailsを使用した電話会議と一斉配信

この Ruby on Rails サンプルアプリケーションは、Twilio によって構築され、破滅的な状況で素早い対応を必要とする企業により世界中で使われている Rapid Response Kit が基になっています。

作業員がこのアプリのツールを使って、大勢のボランティアグループと直ちにコミュニケーションできるようにします。全関係者が一堂に会して話し合う必要が生じた場合、オーガナイザーが速やかにカンファレンスラインを開始できます。それ以外の状況では、ボランティアの電話番号のリストに音声メッセージを一斉に読み上げることができます。

専門家サービス企業のAlphasightsがTwilioを使用して、いかにして電話会議のコストを80%削減したかチェックしましょう。

このサンプルアプリを自分で実行するには、コードをダウンロードし、GitHub の指示に従ってください。また、このチュートリアルでは Twilio の部分だけしか扱わないので、このアプリのビューをクリックして参照してもかまいません。

はじめましょう!

カンファレンス番号を作成する

カンファレンスラインを呼び出す前に、着信を受けたときに HTTP リクエストをウェブアプリケーションに送信するように、いずれかの Twilio 番号を設定しておく必要があります。

いずれかの番号をクリックして、アプリをポイントするように Voice URL を設定します。コードでは、経路は /Conference/Join になります。

電話会議の一斉配信用に構成されたTwilio Console

Twilioに応答するコントローラーメソッドを確認する

サンプルのカンファレンス通話を作成する

これで、Twilio 番号は、音声通話の着信があると、このコントローラーメソッドに HTTP リクエストを送信するように設定されました。アプリは TwiML で応答し、その通話をどのように処理するか Twilio に指示します。

We use the Twilio Ruby library to generate some TwiML that tells Twilio to Dial into a Conference that we're naming RapidResponseRoom. This means that anyone who calls your Twilio number will automatically join this conference.

        
        
        
        
        app/controllers/twilio_controller.rb

        Conference Call Controller Code

        app/controllers/twilio_controller.rb

        次に、これをモデレーターとリスナーから構成されるモデレーター付きのカンファレンスラインにします。

        発信者に役割を選択させる方法を確認する

        モデレーター付きのカンファレンスを作成する

        このシナリオでは、発信者をカンファレンスに接続する前に、発信者の役割を尋ねます。役割は以下のとおりです。

        • モデレーター:カンファレンスを開始および終了できます
        • スピーカー:カンファレンス通話で話ができます
        • リスナー:黙って、通話を聞くことしかできません

        コントローラーでは簡単なメッセージを読み上げ(Say)て、発信者に役割を選択するよう尋ねます。

              
              
              
              
              app/controllers/twilio_controller.rb

              取りうる役割を返す

              app/controllers/twilio_controller.rb

              そうすることで発信者に選択可能な役割がいくつか読み上げられ、彼らがそれを選択します。 そのためには、発信者が指定した役割を判断できるよう、電話で押されたボタンの内容を収集(Gather)するようTwilioに指示します。 次に、その方法について見ておきましょう。

              See how to gather the user's role choice

              モデレーター付きのカンファレンスに接続する

              前のステップの <Gather> 動詞には、値として絶対的な URL または相対的な URL を取る action パラメーターが含まれていました(このケースでは、Conference/Connect 経路)。

              When the caller finishes entering digits Twilio makes a GET or POST request to this URL including a Digits parameter with the number our caller chose.

              このパラメーターを使用して、DialおよびConferenceTwiML要素で使用するいくつかの変数、isMutedおよびcanControlConferenceOnEnterを設定します。

                    
                    
                    
                    
                    app/controllers/twilio_controller.rb

                    役割と接続を収集する

                    app/controllers/twilio_controller.rb

                    That's it for connecting callers to our conference room. Let's explore next the other feature of this app: broadcasting a voice message to a list of phone numbers.

                    音声の一斉配信を確認する

                    音声ブロードキャスト

                    オーガナイザーはカンファレンス通話をホストするだけでなく、アプリケーションを使って、電話番号のリストに音声メッセージを一斉に送信できます。このためには、ドロップダウンから録音を選択し、電話番号のリストを入力して、「Submit」をクリックします。

                    この機能を利用するには、Twilio の REST API を使って、アカウントに関連付けられているすべての録音を取得します。オーガナイザーが新しいメッセージを録音する場合は、その電話番号を呼び出し、レスポンスを録音します。

                          
                          
                          
                          
                          app/controllers/twilio_controller.rb

                          Recordings Controller Code

                          app/controllers/twilio_controller.rb

                          Now that we know what this feature is all about, let's take a dig into the code.

                          既存の音声録音の取得方法を確認する

                          録音を取得する

                          このルートはTwilioアカウントと関連づけられた録音(recordings)をすべて取得します。 TwilioのAPIを使用して、日付または通話SIDごとにこれらの結果をフィルタリングできますが、この例ではすべての録音を単純に取得することにします。

                          Twilio の便利な API を使うには、まず Twilio クライアントを作成する必要があります。これは、クレデンシャルを受け渡せば簡単です。@client は少ししか使わないので、共有フィルターに設定し、アクションで必要となると呼び出されます。

                          録音をすべて取得したら、録音オブジェクトの JSON レスポンスをレンダリングする必要があります。この経路は、ページがロードされると、Javascript で呼び出されます。

                                
                                
                                
                                
                                app/controllers/twilio_controller.rb

                                全録音を取得する

                                app/controllers/twilio_controller.rb

                                保存された全録音を取得できますが、ではどうやって新規メッセージを録音するのでしょうか? それについては次で見てみましょう。

                                新規メッセージの録音方法を確認する

                                Record a new Message

                                新規録音の作成が必要になったら、主催者に通話を発信してそれを録音します。 TwilioはRecord動詞でこれを簡単にします。

                                Here we Say something to the caller and then Record her message. There are many more options we can pass to Record, but here we simply tell it to stop recording when * is pressed.

                                      
                                      
                                      
                                      
                                      app/controllers/twilio_controller.rb

                                      新規メッセージを録音する

                                      app/controllers/twilio_controller.rb

                                      全録音済メッセージの一覧方法と、新規に録音を行う方法を見てきました。 最後に残っていることは、発信者にこれらの録音済メッセージのうちのどれかを一斉配信することです。 次はこれについて見ていきましょう。

                                      録音済メッセージの一斉配信方法を確認する

                                      録音されたメッセージを一斉送信する

                                      このコントローラーは、オーガナイザーが提供した電話番号から始め、音声ブロードキャストのウェブフォームを処理します。カンマ区切りのため、Ruby の CSV クラスを使って、解析できます。

                                      次は、Twilio の REST API を使って、各番号に電話をかけてみます。

                                      When Twilio connects this call it will make a request to the Url parameter to get further instructions. We include a recordingUrl parameter in that URL so that our Play action method will know which recording to use.

                                      これにより、Broadcast/Playルートについての作業が簡単になります - 録音を再生(Play)するだけです。

                                            
                                            
                                            
                                            
                                            app/controllers/twilio_controller.rb

                                            Broadcast Controller Code

                                            app/controllers/twilio_controller.rb

                                            一丁上がり! これで高速応答キットの2つの主要機能を実装できました。 将来、他の機能にいくつか取り組んで、完全なキットを構築するかもしれませんね!

                                            関連トピック

                                            関連トピック

                                            Twilio を使う Ruby 開発者であれば、他のチュートリアルもお楽しみください。

                                            自動アンケート

                                            音声通話または SMS テキストメッセージを介して調査を実施し、ユーザーから構造化データを迅速に収集します。Rails で独自の調査を作成する方法を学びます。

                                            IVR電話ツリー

                                            Reese's Pieces が点在した、フル機能の自動電話ツリーを作成します。

                                            これは役に立ちましたか?

                                            このチュートリアルをお読みいただき、ありがとうございます。ご意見やご感想などございましたら、ぜひお聞かせください。 ご意見やご感想などございましたら、ぜひお聞かせください。 @twilioにツイートして、ご意見をお寄せください!

                                            Jarod Reyes Jose Oliveros Agustin Camino Andrew Baker David Prothero Kat King
                                            Rate this page:

                                            ヘルプが必要ですか?

                                            We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.