[PYTHON] Verständnis aus dem Mechanismus Twilio # 1 - Einführung

Einführung

Twilio wird an verschiedenen Orten als einfacher und universeller Telefoniedienst verwendet, und ich denke, dass Brüder und Schwestern es auch in verschiedenen Projekten verwenden.

Die offizielle Dokumentation enthält reichlich Beispielcode für jede Sprache, aber bis ich es satt hatte, lag der Schwerpunkt darauf, wie man aus jeder Sprache anruft, und es gab keine Informationen zu Kommunikationsprotokollen und Datenstrukturen.

Insbesondere konnte ich keine detaillierten Informationen darüber finden, wie ein Twilio-Client von einem externen Telefon aus angerufen oder ein Server implementiert werden kann, der TwiML zurückgibt. \ # Es gab fragmentarische Informationen, aber es fiel mir schwer, sie auf ein praktisches Niveau zu bringen ...

Daher möchte ich die erforderlichen Informationen zusammenfassen und gleichzeitig den Standpunkt der Funktionsweise von Twilio kennen und die Ergebnisse der tatsächlichen Überprüfung und die Ergebnisse der Paketerfassung vergleichen.

Bitte beachten Sie, dass Informationen, die nicht in der offiziellen Dokumentation enthalten sind, zu diesem Zeitpunkt überprüft wurden, bis wir es satt haben und sich in Zukunft ändern können.

Zusammensetzung dieses Themas

Aufgrund des großen Volumens dieses Themas werden wir es in die folgenden vier Abschnitte unterteilen. Dieser Artikel entspricht "1. Einführung".

―― 1. ** Einführung ← Jetzt hier ** ―― 1. ** Grundstruktur und Definition von Begriffen bei Verwendung von Twilio ** ―― 2. ** Umgebung diesmal überprüft ** ―― 2. Kommunikationsflussdatenstruktur ―― 1. Authentifizierung / Capability Token-Übertragung ―― 2. Anruf (eingehender Anruf) von einem externen Telefon zu einem Twilio-Client ―― 3. Anruf vom Twilio-Client zum externen Telefon (OutgoingCall) --3-1. Walkthrough zur Implementierung von AWS API Gateway + Lambda (Teil 1) ―― 1. Implementierung der API Server-Verarbeitung (Python unter AWS Lambda) --2 API-Gateway-Einstellungen --3-2. Walkthrough zur Implementierung von AWS API Gateway + Lambda (Teil 2) ―― 3. Implementierung und Bereitstellung von Twilio Client ―― 4. Funktionsprüfung!

Angenommener Leser

Dieser Artikel und verwandte Artikel richten sich an folgende Leser:

Definition der Grundstruktur und der Begriffe bei Verwendung von Twilio

Dies ist das Hauptthema. Überprüfen Sie zunächst die grundlegende Konfiguration und den Kommunikationsfluss, die Twilio vorsieht.

Die folgende Abbildung stammt aus der offiziellen Dokumentation, die Abbildung in "Architektur" ist jedoch sehr wichtig und sollte beachtet werden. Dies ist eine Konfiguration zum Tätigen / Empfangen von Anrufen von einem Android-Gerät mit Twilio, dies ist jedoch normalerweise die Konfiguration.

twilio-android-diagram.original.png Twilio Client Android SDK - Architecture https://www.twilio.com/docs/api/client/android

Die Hauptfiguren sind die folgenden drei. Es scheint, dass es keinen offiziellen Namen für jeden gibt, aber in diesem Artikel werden wir sie mit den folgenden drei Namen vereinheitlichen.

Konzentrieren Sie sich bei der Erläuterung der Anrufrichtung so weit wie möglich auf den Twilio-Client. Mit anderen Worten, es wird ausgedrückt als Tätigen eines Anrufs vom Twilio Client / Empfangen eines Anrufs vom Twilio Client. \ # Übrigens werden einige der Funktionen, die mit Twilios SDK und API verwendet werden können, eingehend und ausgehend usw. zugewiesen, aber alle diese Funktionen konzentrieren sich auch auf den Twilio-Client.

Andere in diesem Artikel und einer Reihe verwandter Artikel verwendete Begriffe sind wie folgt definiert.

No der Begriff Inhalt
1 Twilio Telefonnummer Rufen Sie die Telefonnummer an, die Sie bei Twilio gekauft und dem Twilio-Client zugeordnet haben. Immer E..Es wird im 164-Format ausgedrückt.
2 E.164 Format 「+Das Format beginnt mit ", gefolgt von der Landesvorwahl und der Telefonnummer. Sie können Bindestriche und Leerzeichen in die Mitte einfügen. e.g. +81-3-1234-5678
3 TwiML * Bitte beachten Sie das offizielle Dokument(https://www.twilio.com/docs/api/twiml)
4 Client Name Eindeutiger Name für den Twilio-Client. Erforderlich, um Anrufe mit Twilio Client zu empfangen.
5 Incoming Call Einen Anruf beim Twilio Client von einem externen Telefon aus tätigen. Manchmal als eingehender Anruf geschrieben.
6 Outgoing Call Einen externen Anruf vom Twilio Client aus tätigen. Manchmal als ausgehender Anruf geschrieben.

Die Umgebung wurde diesmal überprüft

Der Twilio-Client, der dieses Mal realisiert wird, möchte das Gleiche wie ein normales Telefon tun können. Die spezifischen Spezifikationen sind wie folgt.

--Was du tun kannst

Die Architektur hat die folgende Konfiguration.

TwilioDiagrams_Fig1-1.png

Der API-Server, den wir selbst vorbereiten, verwendet AWS. Ich habe es in Python mit API Gateway und Lambda implementiert. Die Region ist Tokio (ap-Nordosten-1). Der Twilio-Client wurde basierend auf dem JavaScript-Tutorial von Twilio geändert. Platzieren Sie es auf S3 und greifen Sie über einen Webbrowser darauf zu.

Twilio Client Javascript Quickstart https://www.twilio.com/docs/quickstart/client/javascript

\ # Die Basis ist jedoch um August 2015. \ # Bis zum 12. Oktober 2016 konnte ich das Tutorial, auf das ich mich damals bezog, nicht im offiziellen Dokument finden ...

Die von API Server bereitgestellte API ist wie folgt definiert.

Endpoint Erläuterung Namen in einer Reihe von Artikeln
/twilio/retrieve_capability_token Senden Sie das Capability Token an den Twilio Client zurück. Capability Token-Erfassungs-API
/twilio/retrieve_twiml/call_incoming Gibt das TwiML zurück, mit dem der Twilio-Client aufgerufen wurde. TwiML-Rückgabe-API für eingehende Anrufe
/twilio/retrieve_twiml/call_outgoing Wir geben das TwiML zurück, das beim Tätigen eines Anrufs vom Twilio-Client verwendet wird. TwiML-Rückgabe-API für ausgehende Anrufe

Bereitstellung auf der Produktstufe von API Gateway. Die vollständige URL sieht also folgendermaßen aus: Die URL-Konfiguration wird bei der Implementierung in API Gateway erläutert, daher wird sie hier weggelassen.

https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/twilio/retrieve_capability_token https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/twilio/retrieve_twiml/call_incoming https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/twilio/retrieve_twiml/call_outgoing

Eröffnung und Vorbereitung eines Twilio-Kontos

Registrieren Sie Ihr Konto auf der Twilio-Website in Japan. Bitte achten Sie darauf, sich nicht von der US-Website zu registrieren. http://twilio.kddi-web.com/

Twilio-Telefonnummer abrufen / einstellen

Holen Sie sich die Telefonnummer und nehmen Sie die erforderlichen Einstellungen vor. Nachdem Sie sich bei der Twilio Console angemeldet haben, erhalten Sie eine neue Nummer von "Telefonnummer" im Menü auf der linken Seite. Sie können auch eine mit Ihrem Testkonto erhalten. Es ist jedoch eine "Überprüfung" erforderlich, um das eigentliche Telefon anzurufen. Registrieren Sie die Telefonnummer, um den Anruf unter "Telefonnummer" -> "Verifizierte Telefonnummer" zu testen.

Nachdem Sie die Telefonnummer erhalten haben, stellen Sie die URL von "A CALL COMES IN" ein. Legen Sie hier die URL der TwiML-Rückgabe-API für eingehende Anrufe fest. (Die tatsächliche URL wird mit 3. Walkthrough zur Implementierung von AWS API Gateway + Lambda erstellt.) Bitte beachten Sie die Abbildung unten. Dies wird verwendet, wenn Sie diese Twilio-Telefonnummer von einem echten Telefon aus anrufen. 2016-10-16_03h52_20.png

Erstellen und konfigurieren Sie die TwiML-App

Erstellen Sie eine TwiML-App und konfigurieren Sie die erforderlichen Einstellungen. Nachdem Sie sich bei der Twilio Console angemeldet haben, gehen Sie im Menü links zu "Programmable Voice" -> "Tools" -> "TwiML Apps". Von hier aus können Sie eine neue TwiML-App erstellen.

Stellen Sie die "REQUEST URL" von "Voice Call" ein. Legen Sie hier die URL der TwiML-Rückgabe-API für ausgehende Anrufe fest. (Die tatsächliche URL wird mit 3. Walkthrough zur Implementierung von AWS API Gateway + Lambda erstellt.) Bitte beachten Sie die Abbildung unten. 2016-10-16_05h14_56.png

Eröffnung und Implementierung eines AWS-Kontos

Eröffnen Sie ein AWS-Konto. Die spezifische Implementierung wird in 3. Walkthrough zur Implementierung von AWS API Gateway + Lambda erläutert, daher werde ich sie hier weglassen.

Zusammenfassung

Bisher haben wir den Umriss dieses Themas und die vorbereitenden Punkte erläutert. Die Fortsetzung wird der folgende Artikel sein.

Twilio # 2 - Den Mechanismus verstehen

Recommended Posts

Verständnis aus dem Mechanismus Twilio # 1 - Einführung
Verständnis aus dem Mechanismus Twilio # 2-Kommunikationsflussdatenstruktur
So funktioniert der Import von Python-Modulen
[Pfeffer] Wie benutzt man es?
Verstehen Sie, wie die Zabbix-API funktioniert
[Einführung] Verwendung von open3d
Verstehe, wie Go's Defer funktioniert