2

ユーザーが電話を切ったとき、または終了したときに、twilioから通知を受け取ろうとしています。ユーザーに電話をかけるためのコードをすでに取得していますが、電話が完了したときに通知を受け取ることができません。

from twilio.rest import TwilioRestClient

def call():
    account_sid = '************************'
    auth_token = '***********************'

    client = TwilioRestClient(account_sid, auth_token)

    call = client.calls.create(to='+254723453841',
                       from_='+1 214-390-9422',
                       url='https://dl.dropbox.com/u/*******/acceptanceOfTerms.xml',
                       if_machine='Hangup', timeout=20,  status_callback='https://dl.dropbox.com/u/*******/response.xml' )


     print call.sid

     print 'The Sid is '+ call.sid+' and the call status is '+call.status

twilioのドキュメントを確認してくださいhttp://www.twilio.com/docs/quickstart/python/rest/call-request通知用のURLを含める必要があります。私の質問は、URL内のこのファイルの内容と、通話が完了または拒否されたというステータスの返品を受け取る方法などです。

4

3 に答える 3

3

そこで答えを見つけました:http ://www.twilio.com/docs/api/twiml/twilio_request

呼び出しを受信し、アプリからTwiMLを要求し、処理し、最後に呼び出しを終了した後、Twilioは、呼び出されたTwilio番号(存在する場合)に対して構成されたStatusCallbackURLに対して非同期HTTP要求を行います。Twilio番号のStatusCallbackURLを提供し、このリクエストをキャプチャすることで、通話がいつ終了するかを判断し、通話に関する情報を受け取ることができます。

リクエストパラメータ

TwilioがStatusCallbackURLへの非同期リクエストでアプリケーションに渡すパラメーターには、同期TwiMLリクエストで渡されるすべてのパラメーターが含まれます。

リンクをたどるhttp://www.twilio.com/docs/api/twiml/twilio_request#synchronous

Twilioは、Twilio番号の1つに対する呼び出しを受信すると、その番号用に構成された音声URLに対して同期HTTP要求を行い、それに応じてTwiMLを受信することを期待します。Twilioは、構成したHTTPメソッドに応じて、POSTパラメーターまたはURLクエリパラメーターとしてリクエストとともに次のパラメーターを送信します。

于 2012-08-30T08:11:58.143 に答える
1
status_callback (string) – A URL that Twilio will request when the call ends to notify your app.

彼らはそれがそれを「要求する」以外のURLで何を送るかを言わないので、あなたはそれを見つけるために試行錯誤しなければならないでしょう。 呼び出しを開くために送信したのと同じパラメーターが返されます。

コールバックURL(管理下のサーバーにヒットするURL)を指定して、何が起こるかを確認します。うまくいけば、どの呼び出しが終了したかを識別するいくつかのパラメーターを(GETまたはPOSTを介して)渡します。また、リモートIPアドレスが適切な人からのものであることを確認するために、リモートIPアドレスをスニッフィングする必要がある場合もあります。

status_method (string) – The HTTP method Twilio should use when requesting the above URL.

これにより、おそらく「取得」するか「投稿」するかを判断できます。

于 2012-08-30T08:11:19.233 に答える
0
import configobj
from twilio.rest import TwilioRestClient
import time

 def call_to(url, to):

    cfg = configobj.ConfigObj("config.ini")
    sid = cfg["twilio"]["sid"]
    auth_token = cfg["twilio"]["auth_token"]
    twilio_number = cfg["twilio"]["twilio_number"]

    client = TwilioRestClient(sid, auth_token)

    call = client.calls.create(
        to=to,
        from_=twilio_number,
        url=url
    )

    for i in range(0,10):
        print i
        time.sleep(5)
        sid=call.sid
        callinfo = client.calls.get(sid)
        print callinfo.status

ここに画像の説明を入力してください

于 2017-09-05T13:42:53.687 に答える