2016-03-23 9 views
0

Situation Folgende:Twilio: in einer bestehenden Konferenz einen Anruf Hangup, ERROR 20404

  1. Jemand meine Twilio Zahl genannt
  2. Twilio meine URL angefordert
  3. Anrufer in einer Konferenz wird (nicht beginnt, bis eine zweite Person beitreten)
  4. TwiML macht Anruf zu einem Mobil
  5. die Moblie den Anruf
nehmen nicht

=> keine zweite Person betritt die Konferenz, so dass sie nicht stoppt und der Anrufer dort feststeckt.

Meine Lösung ist, den gesamten Anruf zu beenden, wenn dies passiert, ich weiß bereits, wo die EndCall-Funktion zu platzieren, so ist dies nicht mein Problem. Die Funktion sieht wie folgt aus (Sie werden es in der Twilio API finden auch):

client.calls(accountSid).update({ 
    status: "completed" 
}, function(err, call) { 
    if(err){ 
     console.log(err); 
    } 
}); 

Mein Programm-Logik ist in Ordnung, ich sehe, dass diese Funktion an der richtigen Stelle genannt wird, aber ich erhalte diesen Fehler:

{ status: 404, 
    message: 'The requested resource /2010-04-01/Accounts/AC/Calls/AC.json was not found', 
    code: 20404, 
    moreInfo: 'https://www.twilio.com/docs/errors/20404' } 

Ich bereits rot, was an der moreInfo URL, aber ich disqualifizieren die Lösungen dort. Vielleicht hast du eine Idee, was das Problem ist.

Antwort

1

Twilio Entwickler Evangelist hier.

Sie sind fast den ganzen Weg dorthin. Ihr Problem ist, dass Sie Ihre accountSid verwenden, wenn Sie versuchen, den Status des Anrufs zu aktualisieren.

Sie müssen die callSid des ursprünglichen Anrufs erhalten. Sie finden die callSid in den Parametern, die Sie im eingehenden Webhook erhalten, wenn die Person Ihre Twilio-Nummer anruft.

app.post('/calls', function(req, res, next) { 
    var callSid = req.body.CallSid; 
    // store callSid somewhere for use later 

    // return TwiML to set up conference and dial your mobile number 
}); 

Sie müssen, dass callSid speichern und es dann an dieser Stelle später verwenden, wenn Sie den Anruf auflegen möchten.

client.calls(callSid).update({ 
    status: "completed" 
}, function(err, call) { 
    if(err){ 
     console.log(err); 
    } 
}); 

Lassen Sie mich wissen, ob dies überhaupt hilft.

Verwandte Themen