メニュー

Expand
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?

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

このPHP - Laravel サンプルアプリケーションは、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 PHP 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/Http/Controllers/ConferenceController.php

        電話会議通話のコントローラー

        app/Http/Controllers/ConferenceController.php

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

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

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

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

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

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

              
              
              
              
              app/Http/Controllers/ConferenceController.php

              取りうる役割を返す

              app/Http/Controllers/ConferenceController.php

              そうすることで発信者に選択可能な役割がいくつか読み上げられ、彼らがそれを選択します。 そのためには、発信者が指定した役割を判断できるよう、電話で押されたボタンの内容を収集(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/Http/Controllers/ConferenceController.php

                    役割と接続を収集する

                    app/Http/Controllers/ConferenceController.php

                    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.

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

                    音声ブロードキャスト

                    In addition to hosting conference calls, an organizer can use our application to broadcast a voice message to a list of phone numbers. She can do this by choosing a recording from a dropdown, entering a list of phone numbers and clicking Submit.

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

                          
                          
                          
                          
                          app/Http/Controllers/RecordingController.php

                          Conference Recordings Controller

                          app/Http/Controllers/RecordingController.php

                          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 クライアントを作成する必要があります。これは、クレデンシャルを受け渡せば簡単です。

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

                                
                                
                                
                                
                                app/Http/Controllers/RecordingController.php

                                全録音を取得する

                                app/Http/Controllers/RecordingController.php

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

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

                                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 and to redirect to recording/hangup, so the call drops when the recording is finished.

                                      
                                      
                                      
                                      
                                      app/Http/Controllers/RecordingController.php

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

                                      app/Http/Controllers/RecordingController.php

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

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

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

                                      このコントローラーは、オーガナイザーが提供した電話番号から始め、音声ブロードキャストのウェブフォームを処理します。カンマ区切りであるため、 ヘルパーメソッド VolunteersNumbers を記述します。

                                      次は、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/Http/Controllers/BroadcastController.php

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

                                            app/Http/Controllers/BroadcastController.php

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

                                            関連トピック

                                            関連トピック

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

                                            Click-To-Call

                                            ウェブページのボタンを押して、電話を介して訪問者をライブサポートまたはセールス担当者に接続します。

                                            自動アンケート

                                            音声通話または SMS テキストメッセージを介して調査を実施し、ユーザーから構造化データを迅速に収集します。

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

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

                                            Mario Celi Agustin Camino Andrew Baker David Prothero Kat King
                                            Rate this page:

                                            ヘルプが必要ですか?

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