2017-05-19 3 views
0

Ich baue eine neue Anwendung und eine seiner Funktionen ist die Kommunikation zwischen Verkäufer und Kunde. Aus diesem Grund möchte ich Twilio API verwenden. Also stellen wir uns vor, wir haben zwei Personen: Verkäufer und Kunde, und sie werden kommunizieren. Meine Idee ist, dass diese beiden Personen sich keine echte Telefonnummer nennen sollten, also kaufe ich zwei Telefonnummern von Twilio, eine für Verkäufer und eine für Kunden und verbinde sie mit echten Handys in meiner App. Aus praktischen Gründen habe ich die TwiML-App in der Twilio-Konsole erstellt und REQUEST- und STATUS CALLBACK-URLs für Sprachanrufe festgelegt. Diese URLs werden in meiner App auf Webhook verwiesen. Meine Anwendung basiert auf .Net Core, aber ich benutze immer noch das volle .Net4.6 Framework, da es keine .dlls für .Net Core gibt und Twilio Helfer für C# auch für das komplette .Net Framework gebaut wurden. Jede Art und Weise, meine Webhook Methode wie folgt aussieht:Twilio Sprachaufnahme in ASP.Core

[HttpPost("call")] 
    public IActionResult IncomingCall(VoiceRequest request) { 
     // some logic 
     VoiceResponse response = new VoiceResponse(); 
     response.Dial({real_seller_number}, callerId: {virtual_customer_number}, record: "record-from-ringing-dual"); 

     return Content(response.ToString(), "application/xml"); 
    } 

Hier stellen sie sich vor ich bin Kunden, ich will Verkäufer anrufen, ich nenne seine virtuelle Twilio Nummer, Twilio eine Anforderung an diesen Webhook und es einen Anruf tätigen zur realen Verkäufernummer von der virtuellen Kundennummer. Dies ist in Ordnung und funktioniert wie vorgesehen. Wenn der Anruf beendet ist, macht Twilio eine Anfrage an url STATUS RUECKRUF, und diese methos wie folgt aussieht:

[HttpPost("call/callback")] 
    public IActionResult IncomingCallCallback(StatusCallbackRequest request) { 
     // some logic 
     return Ok("Handled"); 
    } 

In einem ersten Verfahren Sie Ich möchte sehen Gespräch für interne Grund aufzunehmen, und ich erwartete RecordingSid und RecordingUrl in der zweiten Methode, aber ich bekomme sie immer null. Ich kann die Aufnahme in der Twilio-Konsole sehen, kann sie aber nicht über die API abrufen, das ist mein Problem. Ich verbrachte viel Zeit und las viele Dokumente, fand aber keine klare Erklärung, wie man es richtig macht. Kann mir jemand helfen?

Antwort

0

Twilio Entwickler Evangelist hier.

Wenn Sie Anrufe aufzeichnen, ist die Aufnahme möglicherweise nicht bereit, wenn Sie die statusCallback Anfrage erhalten. Stattdessen sollten Sie eine recordingStatusCallback URL einstellen, die aufgerufen wird, wenn die Aufzeichnung abgeschlossen und bereit ist.

[HttpPost("call")] 
public IActionResult IncomingCall(VoiceRequest request) { 
    // some logic 
    VoiceResponse response = new VoiceResponse(); 
    response.Dial({real_seller_number}, 
     callerId: {virtual_customer_number}, 
     record: "record-from-ringing-dual", 
     recordingStatusCallback: {url_in_your_application_that_processes_recordings} 
    ); 

    return Content(response.ToString(), "application/xml"); 
} 
+0

Hallo, danke für Antwort, aber ich sehe nicht, recordingStatusCallback Parameter in Dial-Methode finden Sie https://github.com/twilio/twilio-csharp/blob/master/src/Twilio/TwiML/VoiceResponse .cs – Valentin

+0

Sie haben Recht! Ich habe dies dem API-Team erwähnt und sie suchen nach einer Veröffentlichung, die alle Parameter enthält. – philnash