Die Integration von Zadarma und Twilio ermöglicht es, eingehende Anrufe von virtuellen Zadarma-Nummern an Ihr Twilio weiterzuleiten und sie gemäß Ihren aktuellen Twilio-Einstellungen zu verarbeiten. Sie können auch ausgehende Anrufe von Twilio über Ihr Zadarma-Konto zu den günstigen Zadarma-Tarifen tätigen.
1. Einstellung eingehender Anrufe
Hinzufügen einer SIP-Domain in Twilio.
Öffnen Sie in Ihrem Twilio-Konto den Bereich Twilio Console → Voice → SIP Domains und klicken Sie auf die + Schaltfläche, um eine neue Domain hinzuzufügen.
Beispiel für die SIP-Domain-Einstellungen:
- FRIENDLY NAME - der Name der Domain, z. B.zadarma;
- SIP URI - die Domain, ein beliebiger Name; zur besseren Übersicht kann eine virtuelle Nummer verwendet werden.
Fügen Sie im Abschnitt Voice Authentication acheinander drei IP ACCESS CONTROL LISTS hinzu, die die vertrauenswürdigen IP-Adressen von Zadarma enthalten, von denen Twilio eingehende Anrufe akzeptieren wird. Die IP-Adressen finden Sie im Bereich Einstellungen → Virtuelle Rufnummern oder können sie einfach aus dieser Anleitung kopieren.
- FRIENDLY NAME - sipurifr.zadarma.com
- CIDR NETWORK ADDRESS - 185.45.152.216 /32
- FRIENDLY NAME - sipuriny.zadarma.com
- CIDR NETWORK ADDRESS - 185.45.155.33 /32
- FRIENDLY NAME - sipde.zadarma.com
- CIDR NETWORK ADDRESS - 185.45.152.174 /32
Stellen Sie sicher, dass alle drei hinzugefügten IP ACCESS CONTROL LISTS in den Einstellungen der SIP-Domain ausgewählt sind.
Gehen Sie im Abschnitt Call Control Configuration zum Parameter A CALL COMES IN und wählen Sie aus, was die eingehenden Anrufe steuern soll. Wenn die eingehende Anrufweiterleitung bereits in Twilio konfiguriert ist, wählen Sie Ihre Option, z. B. Studio und Ihren Flow (Szenario) für eingehende Anrufe. Klicken Sie auf Save, um die Einstellungen Ihrer SIP-Domain zu speichern.
Beispiel für einen Flow (Szenario) für eingehende Anrufe ▾
Wenn Sie Ihre Option in A CALL COMES IN bereits ausgewählt haben, können Sie diesen Punkt überspringen. Hier wird ein Beispiel für die Erstellung eines einfachen Flows für eingehende Anrufe im visuellen Editor von Twilio Studio gezeigt.
1. Gehen Sie zu Twilio Console → Studio und klicken Sie auf die Schaltfläche Create new Flow. Geben Sie einen FLOW NAME ein, zum Beispiel Incoming calls.
2. Wählen Sie den Template Start from scratch klicken Sie auf Next.
3. Ziehen Sie den Block Gather Input on Call (für das IVR-Menü) nd verbinden Sie ihn mit dem Trigger (Incoming Call).
4. Geben Sie die Begrüßungsnachricht ein (Text to Speech oder Audio URL).
5. Richten Sie die Auswahlverarbeitung ein (1 – für den Sales, 2 – für den Support usw.).
Als Nächstes müssen zwei Set Variables erstellt werden, um die Telefonnummer des Anrufers aus dem From-Header zu modifizieren.
Erstellen Sie die erste Set Variables mit Variable Name: step1_caller_id und Value:
{{contact.channel.address | replace: "sip:", "" }}
Erstellen Sie die zweite Set Variable (nach der ersten) Variable Name: clean_caller_id und Value:
{{flow.variables.step1_caller_id | replace: "@sip.zadarma.com", "" }}
Fügen Sie die Weiterleitung des eingehenden Anrufs an die Extension mit Connect Call To hinzu.
CONNECT CALL TO – Wählen Sie den SIP Endpoint.
Im SIP ENDPOINT geben Sie dessen URL ein, zum Beispiel sip:11111@15551111111.sip.twilio.com
Im CALLER ID
{{flow.variables.clean_caller_id}}
Speichern Sie die Einstellungen der Widgets und veröffentlichen Sie den Flow, indem Sie auf Publish klicken.
Weiterhin müssen Sie in den Einstellungen der SIP Domain im Abschnitt SIP Registration die Möglichkeit zur Registrierung aktivieren, indem Sie den Schalter auf Enabledumschalten.
Darunter müssen Sie in CREDENTIAL LISTS den bestehenden SIP Endpoint auswählen, der eingehende Anrufe über den Softphone empfangen wird. Wenn Sie noch keinen SIP Endpoint - haben, erstellen Sie ihn, indem Sie auf die Schaltfläche "+" klicken.
Hinzufügen eines Endpoints▾
Wenn Sie bereits einen SIP Endpoint haben, können Sie diesen Schritt überspringen.
- FRIENDLY NAME - my twilio extension.
- USERNAME - Ein beliebiger Login, zum Beispiel 11111.
- PASSWORD - Ein Passwort für die Authentifizierung, erstellen Sie ein komplexes Passwort mit mindestens 12 Zeichen.
Der Softphone wird sich mit Ihrer Domain verbinden, zum Beispiel 15551111111.sip.twilio.com und den USERNAME und PASSWORD zur Authentifizierung verwenden.
Die Konfiguration des SIP-Domains ist abgeschlossen, klicken Sie auf die Schaltfläche Save.
2. Die Weiterleitung von Anrufen in Twilio
Im vorherigen Punkt haben wir einen SIP-Domain in Twilio hinzugefügt, der den benötigten SIP URI für die Anrufweiterleitung enthält:
- Öffnen Sie in Zadarma den Bereich Einstellungen→ Virtuelle Rufnummern.
- Klicken Sie neben Ihrer Nummer auf das Symbol ⚙ (Zahnrad).
- Öffnen Sie den Tab "Externer Server".
- Aktivieren Sie die Option "Externer Server (SIP URI)".
Geben Sie im erscheinenden Feld den SIP URI ein: sip:15551111111@15551111111.sip.twilio.com
wobei 15551111111.sip.twilio.com – aus den Einstellungen des SIP-Domains in Twilio ist.
- Klicken Sie auf "Speichern".
Die Konfiguration der eingehenden Anrufe ist abgeschlossen.
2. Die Konfiguration der ausgehenden Anrufe aus Twilio
Ausgehende Anrufe können auf verschiedene Weise über Twilio getätigt werden. Lassen Sie uns ein Beispiel für die Initiierung eines Anrufs über die Twilio REST API (Calls API) betrachten.
Im nächsten Beispiel wird die Erstellung einer Konferenz zwischen einem SIP Endpoint, auf dem ein Softphone konfiguriert ist, und einer externen Nummer (Anruf über Zadarma) gezeigt.
Im Beispiel wird ein Python-Skript verwendet. Bevor Sie beginnen, stellen Sie sicher, dass Python auf Ihrem System installiert ist und die Twilio-Bibliothek (www.twilio.com/docs/libraries/reference/twilio-python) ebenfalls installiert ist..
Für die Authentifizierung der Anfrage müssen Account SID und Auth Token verwendet werden. Sie können diese in Ihrem Twilio Account Dashboard im oberen linken Bereich der Seite finden.
Für die Autorisierung des ausgehenden Anrufs werden der SIP-Login und das Passwort aus dem Zadarma Konto verwendet.
Erstellen Sie das Skript call.py mit folgendem Inhalt:
from twilio.rest import Client
# Twilio Anmeldedaten
ACCOUNT_SID = "Account_SID_value"
AUTH_TOKEN = "Auth_Token_value"
TWILIO_NUMBER = "+15559999999" # bestätigte Telefonnummer in Twilio als Caller ID
CONFERENCE_NAME = "MyConferenceRoom"
# Zadarma SIP Anmeldedaten
ZADARMA_SIP_URI = "sip:+525500000777@sip.zadarma.com" # Wohin wir über Zadarma anrufen
ZADARMA_SIP_USER = "12345" # Ersetzen Sie 12345 mit Ihrem SIP-Login von Zadarma
ZADARMA_SIP_PASSWORD = "my_sip_password" # Passwort für den SIP-Login von Zadarma
# SIP Endpoint (lokal)
SIP_ENDPOINT = "sip:11111@15551111111.sip.twilio.com" # Ihr SIP Endpoint auf dem das Softphone für den Empfang von Anrufen konfiguriert ist
# Initialisierung des Twilio Clients
client = Client(ACCOUNT_SID, AUTH_TOKEN)
#die Funktion zum Hinzufügen eines Teilnehmers zu einer Konferenz
def add_to_conference(to_number, from_number=None, sip_auth_user=None, sip_auth_password=None):
call_params = {
"to": to_number,
"from_": from_number if from_number else TWILIO_NUMBER,
"twiml": f"""<Response>
<Dial>
<Conference>{CONFERENCE_NAME}</Conference>
</Dial>
</Response>"""
}
# Hinzufügen der Authentifizierung
if sip_auth_user and sip_auth_password:
call_params["sip_auth_username"] = sip_auth_user
call_params["sip_auth_password"] = sip_auth_password
call = client.calls.create(**call_params)
print(f"Anruf bei {to_number} gestartet, SID: {call.sid}")
# Anruf starten
add_to_conference(ZADARMA_SIP_URI, from_number=TWILIO_NUMBER, sip_auth_user=ZADARMA_SIP_USER, sip_auth_password=ZADARMA_SIP_PASSWORD) # nruf zu einer externen Nummer über Zadarma
add_to_conference(SIP_ENDPOINT) # Verbinden mit dem SIP Endpoint
print(f"Konferenz '{CONFERENCE_NAME}' wurde erstellt!")
Speichern Sie das Skript call.py und führen Sie es aus. Wenn alles richtig konfiguriert ist, werden Anrufe sowohl auf das Softphone als auch auf die externe Nummer von Ihrem SIP-Login bei Zadarma weitergeleitet.