2016-09-26 9 views
1

インバウンド発信者の40〜50秒の録音を5セット作成しようとしています。インバウンドコールが未確認のハングアップシグナルを送信しています

I持って着信コールに応答して設定され、次のTwiML:$ nがある

<Response> 
    <Say>Recording $n</Say> 
    <Record action="/twilio/answer/$n" finishOnKey="123456789#*" maxLength="50" playBeep="true" timeout="5" trim="trim-silence" /> 
</Response> 

数1 - ポストメッセージが送信されますタイムアウトまたはボタンを押す時に5

フラスコ内の次のビューに移動します。

@app.route('/twilio/answer/<int:question_id>', methods=['POST']) 
def answer(question_id): 
    """Receives the question and ensures it is the correct length.""" 
    length = int(request.values.get("RecordingDuration", 0)) 
    if length >= MIN_LENGTH: 
     url = request.values.get("RecordingUrl", None) 
     save_url(url) 
     response = redirect_to_question(question_id + 1) 
     return str(response) 
    else: 
     # Replay question 
     response = twiml.Response() 
     message = """The recording must be at least %s seconds long.""" % MIN_LENGTH 
     return redirect_to_question(question_id, say=message) 

コールが期待どおりに機能する時間の半分。残りの半分は、発信者が「ハングアップ」を送信するように見えます。

POST/twilio/answer/ 

Request 
URL 
https://example.com/twilio/answer/1 

Parameters 
CALLED +441234567890 
DIGITS hangup 

私は間違いなくハングアップしています。

録音時間が31秒のときにハングアップ信号が常に送信されます。 最初のレコーディング/ビューが成功した場合は、他のすべてのレコーディング/ビューも同様になります。

私は自分の携帯電話(Android)とSkypeでこれを体験しました。私はgunicornで実行中のフラスコを使用しています

gunicorn voice:app -b 127.0.0.1:8000 --timeout 120 --graceful-timeout  120 --workers 3 --worker-class gevent --log-file - --log-level debug 

私はリバースプロキシとしてnginxのを使用しています:

server { 
    listen 80; 
    listen 443 ssl; 
    server_name example.com; 

ssl_certificate somewhere/fullchain.pem; 
ssl_certificate_key somewhere/privkey.pem; 
ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
ssl_ciphers   HIGH:!aNULL:!MD5; 

access_log /var/log/nginx/access.log; 
error_log /var/log/nginx/error.log; 

location/{ 
    proxy_pass   http://127.0.0.1:8000; 
    proxy_redirect  http://127.0.0.1:8000 https://example.com; 

    proxy_set_header Host     $host; 
    proxy_set_header X-Real-IP   $remote_addr; 
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_read_timeout 120s; 
} 
} 

Twilioの終わりに問題があるように私には思えます。

があります:

  1. 任意の方法は、この問題を解決するために?
  2. ハングアップ信号を無視して続行する方法はありますか?
+1

何が起こると思われますか?あなたのTwiMLでは、録音が終了するとコールはとにかく終了します。意図する結果は何ですか? – philnash

+0

上記に追加されました。私は、URLを保存し、次の録音に移動する、または私は質問を再生する。 – Keri

答えて

1

電話番号は、30秒以内に音声がないと電話が切れるキャリアによって提供されることが判明しました。

問題は、別のプロバイダを使用して修正されています。 Twilioのサポートがこの機能を持たない番号の検索方法を教えてくれるのを待っています。

関連する問題