Integration mit Twilio

Einstellanleitungen / Twilio

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.

SIP Domain URL

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

IP ACCESS CONTROL LISTS

  • FRIENDLY NAME - sipuriny.zadarma.com
  • CIDR NETWORK ADDRESS - 185.45.155.33 /32

IP ACCESS CONTROL LISTS

  • FRIENDLY NAME - sipde.zadarma.com
  • CIDR NETWORK ADDRESS - 185.45.152.174 /32

IP ACCESS CONTROL LISTS

Stellen Sie sicher, dass alle drei hinzugefügten IP ACCESS CONTROL LISTS in den Einstellungen der SIP-Domain ausgewählt sind.

Voice Authentication

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.

Call Control Configuration

Beispiel für einen Flow (Szenario) für eingehende Anrufe


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.

SIP Registration

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


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:

  1. Öffnen Sie in Zadarma den Bereich Einstellungen→ Virtuelle Rufnummern.
  2. Klicken Sie neben Ihrer Nummer auf das Symbol ⚙ (Zahnrad).
  3. Öffnen Sie den Tab "Externer Server".
  4. Aktivieren Sie die Option "Externer Server (SIP URI)".
  5. 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.

  6. 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.