2017-07-11 1 views
0

通話の終了時に、私は、通話者と管理番号への会話の録音へのリンクを含むSMSを送信します。Twilio:SMSは送信されません

私は2つのTwiMLビンを持っています。最初の人はダイヤルと録音を処理し、次にコールを2番目のビンに送ります。これはうまくいく。ログから

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Sms from="+XXXXXXXXX" to="{{From}}">Here's the recording of your call: {{RecordingUrl}}</Sms> 
    <Sms from="+XXXXXXXXX" to="+YYYYYYYYYY">Call recorded from {{From}} to {{To}}.</Sms> 
</Response> 

、私はTwiMLビンが正常に呼び出された参照してください。

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Dial record="record-from-ringing-dual" timeLimit="600" action="https://handler.twilio.com/twiml/XXXXXXXXXXXXXXX"> 
    <Number>{{Digits}}</Number> 
    </Dial> 
</Response> 

は、ここで第二のビンです。ステータスコードは200です。{{From}}番号が正しく置き換えられました。

ただし、SMSは送信されません。 SMSログにSMSは表示されません。自分で電話をしてもSMSは受信されません。それにもかかわらず、エラーメッセージはコールログまたはデバッガに表示されません。

答えて

1

ここではTwilioの開発者のエバンジェリストです。

他の質問で説明したように、<Sms>は、廃止予定のSMS/Messagesリソースを使用しています。したがって、それは良いロギングを伴っていません。

代わりにMessages resource of the REST API to send messagesを使用することをおすすめします。あなたはTwiML Binでそれをすることはできませんが、Twilio Functionsですることができます。

config section for Functionsには、「ACCOUNT_SIDとAUTH_TOKENを有効にする」チェックボックスが選択されていることを確認してください。 Create a new Function in your Twilio consoleと、次のコードを入力します(実数のプレースホルダを置き換える):

exports.handler = function(context, event, callback) { 
    const client = context.getTwilioClient(); 

    const message1 = client.messages.create({ 
    from: YOUR_TWILIO_NUMBER, 
    to: event.From, 
    body: `Here's the recording of your call: ${event.RecordingUrl}` 
    }); 

    const message2 = client.messages.create({ 
    from: YOUR_TWILIO_NUMBER, 
    to: THAT_OTHER_NUMBER, 
    body: `Call recorded from ${event.From} to ${event.To}.` 
    }) 

    Promise.all([message1, message2]).then(() => { 
    let twiml = new Twilio.twiml.VoiceResponse(); 
    callback(null, twiml); 
    }, err => { 
    callback(err); 
    }) 
}; 

が関数にパスを与え、その後、全体のURLをコピーして、あなたの最初のTwiMLビンに<Dial>にaction属性として使用することができます。

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

+0

もう一度!それがうまくいきました。根底にある問題は、最初の番号に正しいジオパーミッションがないことでした。少なくとももう1つのメッセージは正しく送信されます。ただし、ジオ権限のために1番目のメッセージが失敗したという事実は、デバッガ、通話履歴、またはSMSログには表示されません。ファンクションログにのみ表示されます。ファンクションログは、表示されているページからページを更新するときにフラッシュされます。それは普通ですか? – MasterScrat

+0

さて、関数からのHTTP呼び出しは、自分のサーバーからHTTP呼び出しを行うようなものなので、エラーはデバッガ、コールログ、またはSMSログには表示されません。私は機能ログがレビューのためにどこにでも保存されているかどうかを調べるだけです。 – philnash

+0

関数がパブリックベータ段階を経て進行するにつれて、履歴ログがロードマップにあると聞きました。したがって、これらのログにエラーが表示されるようになります。 – philnash

関連する問題