Anrufe mit Python und Twilio Programmable Voice

June 12, 2023
Autor:in:

Hallo und danke fürs Lesen! Dieser Blogpost ist eine Übersetzung von Make a Phone Call Using Python and Twilio Programmable Voice.

Mit Twilio Programmable Voice können Sie Telefonanrufe direkt in Ihrer Anwendung tätigen und empfangen. In diesem Tutorial erfahren Sie, wie Sie mithilfe von Programmable Voice einen Telefonanruf in Python tätigen.

Voraussetzungen

Umgebung einrichten

In diesem Abschnitt richten Sie ein brandneues Python-Projekt ein. Um den Überblick nicht zu verlieren, öffnen Sie ein Terminalfenster oder eine Eingabeaufforderung und erstellen Sie ein neues Verzeichnis an einem Ort, an dem Sie Ihr Projekt zum Leben erwecken können.

mkdir phone-call
cd phone-call

Virtuelle Python-Umgebung erstellen

Wir befolgen zunächst eine Best Practice von Python: Erstellen Sie eine virtuelle Umgebung, in der Sie die Python-Abhängigkeiten installieren, die Sie für dieses Projekt benötigen.

Öffnen Sie unter Unix oder Mac ein Terminalfenster und geben Sie folgende Befehle ein, um die oben beschriebenen Aufgaben auszuführen:

python3 -m venv venv
source venv/bin/activate
pip3 install twilio

Wenn Sie diesem Tutorial unter Windows folgen, geben Sie die folgenden Befehle in eine Eingabeaufforderung ein:

python -m venv venv
venv\Scripts\activate
pip3 install twilio

In diesem Projekt wird nur das Python-Paket Twilio-Python-Hilfebibliothek genutzt, das auf Telefonanrufe ausgelegt ist.

Twilio-Anmeldeinformationen festlegen

Zum Anmelden und Authentifizieren benötigt die Pythonanwendung die Anmeldeinformationen für Ihr Twilio-Konto. Nur so kann sie auf den Twilio-Dienst zugreifen. Diese Anmeldeinformationen sind am besten geschützt, wenn Sie sie als Umgebungsvariablen hinzufügen.

Dafür benötigen Sie die Konto-SID und den Authentifizierungstoken. Beides finden Sie im Dashboard der Twilio-Konsole:

Finde Account Zugangsdaten

 

Definieren Sie in Ihrem Terminalfenster zwei Umgebungsvariablen namens TWILIO_ACCOUNT_SID und TWILIO_AUTH_TOKEN und legen Sie sie auf Ihre Kontoanmeldeinformationen fest:

export TWILIO_ACCOUNT_SID=xxxxxxxxx
export TWILIO_AUTH_TOKEN=xxxxxxxxx

Wenn Sie dieses Tutorial auf einem Windows-PC durchführen, verwenden Sie set anstelle von export, um Ihre Umgebungsvariablen in der Eingabeaufforderung festzulegen. Wenn Sie mehr über Umgebungsvariablen erfahren möchten, sehen Sie sich das Tutorial Setzen von Umgebungsvariablen an.

Twilio-Telefonnummer kaufen

Sie können nur dann einen Telefonanruf tätigen, wenn Sie eine Telefonnummer haben, die mit Ihrem Twilio-Konto verknüpft ist. Melden Sie sich bei der Twilio-Konsole an, wählen Sie Phone Numbers (Telefonnummern) aus, wählen Sie im Bildschirm Buy a Number (Nummer kaufen) Ihr Land aus und aktivieren Sie unterhalb von „Capabilities“ (Funktionen) das Kontrollkästchen Voice (Sprache). Wenn Sie eine Nummer für Ihre Region anfordern möchten, geben Sie die entsprechende Vorwahl in das Feld Number (Nummer) ein.

Wenn wir ein kostenloses Konto nutzen, verwenden wir für diesen Kauf unser Testguthaben.

Kaufe geeignete Nummer

 

Klicken Sie auf die Schaltfläche Search (Suchen), um die verfügbaren Nummern anzuzeigen. Klicken Sie dann in den Ergebnissen neben der Nummer, die Ihnen gefällt, auf Buy (Kaufen). Nachdem Sie den Kauf bestätigt haben, klicken Sie auf „Close“ (Schließen).

Bitte beachten Sie, dass in Deutschland und vielen anderen Ländern ein Regulatory Bundle benötigt wird, um eine Telefonnummer zu erwerben. Lesen Sie diesen Artikel um mehr darüber zu erfahren: Wie kaufe ich eine Twilio-Rufnummer mit Regulatory Bundles.

TwiML-Bin erstellen

TwiML ist die Markup-Sprache von Twilio, eine Erweiterung von XML. Über diese Sprache erhält Twilio Anweisungen dazu, wie bestimmte Ereignisse behandelt werden müssen. Wenn Sie mit der zuvor erworbenen Twilio-Telefonnummer einen Anruf tätigen, sucht Twilio nach der zu Ihrer Nummer gehörenden URL und sendet eine Anfrage an diese URL. Wenn Ihre URL mit TwiML antwortet, befolgt Twilio beim Beantworten des Telefonanrufs diese Anweisungen.

Sie können TwiML direkt über Twilio in einem TwiML-Bin hosten. Navigieren Sie zum TwiML-Bins Abschnitt der Konsole.

Klicken Sie auf den blauen Plus-Button, um ein neues TwiML-Bin zu erstellen. Sie werden auf eine neue Seite weitergeleitet, auf der Sie Ihr Bin konfigurieren können.

Geben Sie Ihrem Bin einen leicht verständlichen Namen, zum Beispiel Python-Anruf. Kopieren Sie dann das folgende TwiML in das Feld TwiML und ersetzen Sie dabei alle bereits vorhandenen Inhalte:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say language="de-DE">Hallo, von Python!</Say>
</Response>

Scrollen Sie nach unten und klicken Sie auf die Schaltfläche Create (Erstellen). Die Seite wird aktualisiert. Anschließend sehen Sie oben auf der neuen Seite die „SID“- und „URL“-Werte, die Ihrem neuen TwiML-Bin zugeordnet sind. Kopieren Sie die URL in die Zwischenablage.

Kopiere TwiML URL

 

Telefonanruf in Python tätigen

Öffnen Sie Ihren Texteditor oder Ihre IDE und erstellen Sie eine neue Python-Datei anruf.py im Verzeichnis phone-call, das Sie zu Beginn des Tutorials erstellt haben.

Fügen Sie dieser Datei folgenden Code hinzu:

from twilio.rest import Client

client = Client()
call = client.calls.create(
    from_='<your-twilio-phone-number>',
    to='<your-phone-number>',
    url='<your-twiml-bin-url>'
)

Aktualisieren Sie die folgenden Teile des obigen Codeausschnitts:

  • Ersetzen Sie den Wert des Arguments from_ durch Ihre Twilio-Telefonnummer.
  • Ersetzen Sie den Wert des to Arguments durch Ihre private Telefonnummer.
  • Ersetzen Sie den Wert des url Arguments durch die URL, die Sie gerade aus Ihrem TwiML-Bin kopiert haben.

Achten Sie darauf, die Telefonnummern im E.164-Format einzugeben.

Öffnen Sie Ihr Terminalfenster und überprüfen Sie, ob Sie die Umgebungsvariablen auf Ihre Twilio-Anmeldeinformationen festgelegt haben (siehe oben). Führen Sie anschließend das Skript aus:

python anruf.py

Nach wenigen Augenblicken klingelt Ihr privates Telefon. Wenn Sie den Anruf entgegennehmen, hören Sie „Hallo von Python“.

Sie können in Ihrer Konsole nochmal das TwiML-Bin aufrufen und die Nachricht bearbeiten, die Ihr:e Gesprächspartner:in hören soll.

Fazit

In diesem Tutorial haben Sie erfahren, wie Sie über eine Python-Anwendung einen Telefonanruf tätigen. Doch das war nur der Anfang. Werfen Sie einen Blick in die TwiML-Referenz und sehen Sie sich an, was Sie noch so alles mit Telefonanrufen machen können!