2016-10-03 20 views
0

私は、電話ベースのテストを行うクライアントのためにPOCをまとめています。 POCでは、ユーザーがWebページに電話番号を入力できるようにするだけです。次に、質問を表示してその番号に電話をかけます。私たちは質問への回答を記録し、それを彼らに返します。電話をかけて録音して録音を再生する

私はコールを開始できますが、私がコールしたいことを示す方法を理解することはできません。理想的には、私は何か言いたいことがあり、ビープ音の後にレコーディングを開始します。

私はTwilioで3時間の経験がありますので、私の無知を許してください。ここ

import logging 

# [START imports] 
from flask import Flask, render_template, request 
import twilio.twiml 
from twilio.rest import TwilioRestClient 
# [END imports] 

app = Flask(__name__) 


# [START form] 
@app.route('/form') 
def form(): 
    return render_template('form.html') 
# [END form] 


# [START submitted] 
@app.route('/submitted', methods=['POST']) 
def submitted_form(): 
    phone = request.form['phone'] 

    account_sid = "AC60***********************" 
    auth_token = "27ea************************" 
    client = TwilioRestClient(account_sid, auth_token) 
    call = client.calls.create(to=phone, # Any phone number 
     from_="+160#######", # Must be a valid Twilio number 
     url="https://my-host/static/prompt.xml") 

    call.record(maxLength="30", action="/handle-recording") 

    return render_template(
     'submitted_form.html', 
     phone=phone) 
    # [END render_template] 

@app.route("/handle-recording", methods=['GET', 'POST']) 
def handle_recording(): 
    """Play back the caller's recording.""" 

    recording_url = request.values.get("RecordingUrl", None) 

    resp = twilio.twiml.Response() 
    resp.say("Thanks for your response... take a listen to what you responded.") 
    resp.play(recording_url) 
    resp.say("Goodbye.") 
    return str(resp) 

@app.errorhandler(500) 
def server_error(e): 
    # Log the error and stacktrace. 
    logging.exception('An error occurred during a request.') 
    return 'An internal error occurred.', 500 
# [END app] 

答えて

1

Twilioの開発者エバンジェリスト:

はここで、これまでに私のコードです。

通話を作成するときに、通話にURLを渡します。そのURLは、ユーザーが電話に出たときに呼び出されるURLになります。そのリクエストに対する応答は、Twilioにsay the messagerecordの応答を指示するためのTwiMLである必要があります。これと同じように:

@app.route("/handle-call", methods=['GET', 'POST']) 
def handle_call(): 
    resp = twilio.twiml.Response() 
    resp.say("Please leave your message after the beep") 
    resp.record(action="/handle-recording", method="POST") 
    return str(resp) 

次に、あなたはそれはあなたがすでにやりたいだろうかのように

call = client.calls.create(to=phone, # Any phone number 
     from_="+160#######", # Must be a valid Twilio number 
     url="https://my-host/handle-call") 

あなた/handle-recordingパスが見えるそのURLを指すようにあなたのコールの作成を更新する必要があります。

Twilioを初めて使ったときのように、webhooksを使用して開発するときには、ngrokを使用して開発マシンにトンネルし、アプリケーションをTwilioに公開することをおすすめします。私はblog post about how to use ngrokと私が好きな機能のいくつかを書いた。

これがまったく役に立ったら教えてください。

関連する問題