Zum Hauptinhalt springen
connic
Starte kostenlos
Verbindungen

Telnyx Voice

Mit einer bestehenden Telnyx-Rufnummer und einem connic-Voice-Agenten Anrufe annehmen und führen.

Zuletzt aktualisiert
ModiSync (eingehende Anrufe) und Outbound (ausgehende Anrufe)
YAML-Typtelnyx
ZugangsdatenEin Kontozugang (Connection) vom Typ Telnyx
BridgeNicht unterstützt
Custom DomainNicht unterstützt
Verknüpfte AgentenGenau ein Agent, deployt mit voice_config
Während der Pauseconnic nimmt eingehende Anrufe nicht an und leitet sie nicht weiter. Telnyx beendet sie nach 30 Sekunden.

Einrichtung

  1. Ergänze an einem LLM-Agenten voice_config und ein unterstütztes Echtzeitmodell, speichere bei Bedarf die Zugangsdaten des Modellanbieters im Projekt und stelle den Agenten im Environment bereit. Siehe connic Voice.

  2. Wähle in Telnyx eine bestehende aktive Rufnummer und schalte ihre Rufumleitung aus.

  3. Öffne den Agenten. Klicke im Connector Flow auf Add inbound connector, dann auf Create New Connector, und wähle Telnyx Voice. Wähle unter Connection einen Telnyx-Kontozugang oder lege einen mit dem API-Schlüssel und dem öffentlichen Schlüssel des Kontos an.

  4. Wähle die Phone number. Rufnummern, die die Verbindung nicht nutzen kann, etwa eine mit aktiver Rufumleitung oder eine, die schon eine andere connic-Voice-Verbindung belegt, erscheinen deaktiviert in der Liste und nennen den Grund. Ergänze bei Bedarf Transfer numbers und eine Fallback number und klicke auf Create. connic verknüpft den Agenten, legt eine Call-Control-Anwendung an und ordnet ihr die Rufnummer zu; was dabei ersetzt wird, steht unter Einrichtung bei Telnyx.

  5. Rufe die Nummer an und prüfe im Run Transkript, Tool-Aufrufe, Laufzeiten und Fehler.

Im Code

Deklariere die Verbindung in connectors/*.yaml. Das Deployment sucht phone_number unter den aktiven Rufnummern des Kontos, das der Kontozugang verbindet. Bei der Aktivierung wird der Agent verknüpft; er braucht in diesem Deployment voice_config. Setze jede Rufnummer in Anführungszeichen. Ohne sie liest YAML die Nummer als Ganzzahl und das Deployment scheitert.

connectors/support-line.yaml
type: telnyx
connection: support-telnyx
config:
  phone_number: "+4930123456"
  transfer_numbers:
    - "+4930123456789"
  allowed_callers:
    - "+4915112345678"
  fallback_number: "+4930987654321"
  max_wait_seconds: 60
  hold_audio_path: assets/hold.mp3
agents:
  - support-voice

Konfiguration

Die Felder einer Telnyx-Voice-Verbindung, in connectors/*.yaml genauso wie in der REST API und connic MCP. Die Beschreibungen nennen die passende Einstellung im Dashboard. Felder, die alle Verbindungen gemeinsam haben, etwa agents und environments, beschreibt Verbindungen im Code. Eine Telnyx-Voice-Verbindung braucht ihren Voice-Agenten von Anfang an: Das Dashboard verknüpft den Agenten, von dem aus du sie anlegst, oder fragt unter Voice agent nach einem. Über die REST API oder connic MCP nennt die Anfrage in agent_name einen Agenten, der mit voice_config deployt ist.

FeldTypStatusBeschreibung
typestringErforderlichtelnyx.
connectionstringErforderlichName oder ID eines Telnyx-Kontozugangs, der API-Schlüssel und öffentlichen Schlüssel enthält. Dashboard: Connection.
modestringOptionalsync nimmt Anrufe an die Nummer an; outbound ruft an, sobald ein Run des Agenten startet. Lässt sich nach dem Anlegen nicht mehr ändern. Dashboard: Mode.Standard: sync
configobjectErforderlichEinstellungen für Telnyx Voice.
phone_numberstringErforderlichDie Rufnummer, die die Anrufe empfängt oder von der aus angerufen wird, in Anführungszeichen im E.164-Format wie "+4930123456", oder die Telnyx-ID der Nummer. Sie muss eine aktive Nummer des Kontos sein. Dashboard: Phone number.
transfer_numbersstring[]OptionalRufnummern im E.164-Format, an die Tools des Agenten Anrufer mit TransferCall weiterleiten dürfen. Eine Liste oder ein String mit Nummern, getrennt durch Zeilenumbrüche oder Kommas. Höchstens 20; doppelte Nummern fallen weg. Dashboard: Transfer numbers.
allowed_callersstring[]OptionalNur Sync. Nur diese Nummern können den Agenten anrufen, im E.164-Format, als Liste oder als ein String mit Zeilenumbrüchen oder Kommas. Höchstens 100. Anrufe von anderen und unterdrückten Nummern werden abgewiesen, bevor sie angenommen werden; siehe Erlaubte Anrufer. Dashboard: Allowed callers.
outbound_voice_profile_idstringOptionalNur Outbound, dort Pflicht. Die ID des Telnyx-Outbound-Voice-Profils, über das die Anrufe laufen; es legt fest, welche Ziele sie erreichen dürfen. Dashboard: Outbound voice profile.
tostringOptionalNur Outbound. Die anzurufende Nummer im E.164-Format, wenn die Eingabe eines Runs kein to enthält. Dashboard: Default number to call.
ring_secondsintegerOptionalNur Outbound. Wie lange es klingelt, 5 bis 120 Sekunden, bevor der Run fehlschlägt, weil niemand abgenommen hat. Dashboard: Ring time (seconds).Standard: 30
fallback_numberstringOptionalNur Sync. Rufnummer im E.164-Format, die angenommene Anrufe erhält, die der Agent nicht zu Ende führen kann, und Anrufe, die die maximale Wartezeit erreicht haben. Dashboard: Fallback number.
max_wait_secondsintegerOptionalNur Sync. Wie lange Anrufer auf den Agenten warten, wenn er schon so viele Anrufe führt, wie sein Limit für gleichzeitige Runs erlaubt, von 0 bis 900 Sekunden. Bei 0 gehen solche Anrufe sofort an die Ausweichnummer. Dashboard: Maximum wait (seconds).Standard: 30
hold_audio_pathstringOptionalNur Sync. Pfad einer MP3- oder WAV-Datei in deinem Projektordner, etwa assets/hold.mp3, höchstens 10 Minuten lang. Sie wird mit dem Projekt deployt. Wartende Anrufer hören sie in Dauerschleife, ohne sie das Freizeichen. Dashboard: Hold audio.

Kontozugang

Ein Telnyx-Kontozugang enthält die Zugangsdaten des Kontos und kann beliebig viele Verbindungen für Telnyx Voice und Telnyx Messaging bedienen. Mit dem API-Schlüssel prüft connic das Konto, listet Rufnummern auf und richtet die Call-Control-Anwendung ein. Mit dem öffentlichen Schlüssel prüft connic die Signatur jedes Ereignisses von Telnyx. Falls das Sprachmodell eigene Zugangsdaten benötigt, hinterlege die Zugangsdaten separat im Projekt.

EinstellungBeschreibung
API keyEin Telnyx-API-Schlüssel mit Zugriff auf die Rufnummern und Call-Control-Anwendungen des Kontos. Du erstellst ihn im Telnyx Mission Control Portal.
Public keyDer Base64-kodierte öffentliche Ed25519-Schlüssel desselben Kontos aus den API-Keys-Einstellungen im Telnyx Mission Control Portal. Er ist vom API-Schlüssel getrennt. Telnyx bietet keine API, um ihn abzufragen. Beim Speichern des Kontozugangs prüft connic deshalb nur, ob es ein gültiger Schlüssel ist. Ein Schlüssel aus einem anderen Konto fällt erst auf, wenn Anrufe eingehen: connic lehnt deren Ereignisse ab und schreibt den Signaturfehler in die Logs der Verbindung.

Erzeugte Werte

connic erzeugt diese Werte beim Anlegen der Verbindung und behält sie bei Änderungen und Deployments; der Wechsel zu einer anderen Rufnummer legt eine neue Anwendung an. Sie gehören nicht in YAML-Dateien; connic lint lehnt sie ab.

WertModiBeschreibung
Incoming-call webhookSyncDie URL, an die Telnyx Anrufereignisse sendet. connic trägt sie in der Call-Control-Anwendung ein.
application_idSyncDie ID der Call-Control-Anwendung, die connic für die Rufnummer angelegt hat.
application_nameSyncIhr Name: Connic Voice, gefolgt von der ID der Verbindung und der Telnyx-ID der Rufnummer.

Agent-Input

Jeder Anruf startet einen Run mit den Anrufdaten:

input.json
{
  "call_id": "<call-control-id>",
  "from": "+4915112345678",
  "to": "+4930123456",
  "provider": "telnyx",
  "caller_name": "Alex Example",
  "raw": {
    "call_control_id": "<call-control-id>",
    "connection_id": "<application-id>",
    "direction": "incoming",
    "from": "+4915112345678",
    "to": "+4930123456",
    "caller_id_name": "Alex Example"
  }
}
  • call_id ist die Call Control ID von Telnyx.
  • caller_name stammt aus caller_id_name.
  • raw enthält die Nutzdaten des Ereignisses call.initiated, darunter custom_headers und sip_headers.
  • forwarded_from ist nie gesetzt. Telnyx übermittelt Weiterleitungen als Diversion-Eintrag in sip_headers.

Anrufe

Im Sync-Modus nimmt Telnyx Voice Anrufe an die Nummer an. connic nimmt jeden Anruf über Telnyx an und überträgt das Audio zwischen Telnyx und dem Agenten in beide Richtungen. Bis der Agent sprechen kann, hört der Anrufer ein Freizeichen. Endet das Gespräch, legt connic über Telnyx auf. Tastatureingaben, Unterbrechungen und Auflegen richten sich nach den Voice-Einstellungen des Agenten.

Ausgehende Anrufe

Im Outbound-Modus ist jeder Run des verknüpften Agenten ein Anruf. Klicke im Connector Flow des Agenten auf Add outbound connector, wähle Telnyx Voice, als Modus Outgoing calls und das Outbound-Voice-Profil. Die Runs startest du wie jeden anderen, etwa über einen Webhook-Connector oder aus einem anderen Agenten mit trigger_agent.

Sobald ein Run startet, ruft connic von der Nummer der Verbindung aus die Nummer im Feld to der Eingabe an, oder die voreingestellte Nummer der Verbindung, wenn die Eingabe keine enthält. Mit greeting spricht der Agent zuerst, sobald jemand abnimmt; ohne Begrüßung wartet er, bis sein Gegenüber spricht. Über den Anruf weiß er, was in der Eingabe des Runs steht. Durch Telefonmenüs kommt der Agent mit press_keys, und in einer Warteschleife kann er warten, bis sich jemand meldet. Runs über das max_concurrent_runs des Agenten hinaus warten, bevor connic wählt. So muss niemand, der abnimmt, auf den Agenten warten. Der Agent kann den Anruf wie einen eingehenden an eine Weiterleitungsnummer übergeben.

Der Run schlägt fehl, wenn innerhalb der Klingeldauer niemand abnimmt oder der Anruf endet, bevor der Agent dazukommt. Die Fehlermeldung nennt den Grund. Nimmt eine Mailbox ab, hört der Agent ihre Ansage wie die einer Person. Schreib deshalb in den System-Prompt des Agenten, was er dann tun soll, etwa nach dem Signalton eine kurze Nachricht hinterlassen und auflegen.

connectors/reminder-calls.yaml
type: telnyx
mode: outbound
connection: support-telnyx
config:
  phone_number: "+4930123456"
  outbound_voice_profile_id: "1293384261075731499"
  ring_seconds: 40
agents:
  - reminder-calls
input.json
{
  "to": "+4915112345678",
  "customer": "Alex Beispiel",
  "reason": "Termin morgen um 10:00 bestätigen"
}

Erlaubte Anrufer

Mit erlaubten Anrufern weist connic Anrufe von allen anderen und von unterdrückten Nummern ab, bevor sie angenommen werden. Sie starten also keinen Run. Die Logs der Verbindung zeigen jeden abgewiesenen Anruf mit seiner Nummer. Anrufernummern lassen sich fälschen. Verlass dich zum Schutz sensibler Daten deshalb nicht allein auf diese Liste.

Wartende Anrufer

Jeder Anruf ist ein Run. Der Agent führt also so viele Anrufe gleichzeitig, wie max_concurrent_runs erlaubt. Alle weiteren Anrufer warten und kommen in der Reihenfolge an die Reihe, in der sie angerufen haben. Während sie warten, hören sie das Freizeichen oder die Warteschleifenmusik der Verbindung. Wer nach der maximalen Wartezeit noch wartet, landet bei der Ausweichnummer. Gibt es keine, endet der Anruf und sein Run schlägt fehl.

Fehlt die Datei für die Warteschleifenmusik oder lässt sie sich nicht abspielen, hören wartende Anrufer das Freizeichen, und die Logs der Verbindung nennen den Grund. Eine geänderte Datei hören Anrufer nach dem nächsten Deploy.

Weiterleitung und Ausweichnummer

Löst ein Tool des Agenten TransferCall mit einer der Weiterleitungsnummern der Verbindung aus, leitet Telnyx den Anrufer an diese Nummer weiter. Meldet sich dort niemand, endet der Anruf. Die Ausweichnummer gilt nur für eingehende Anrufe im Sync-Modus und nicht für Weiterleitungen. Kann ein angenommener Anruf nicht weiterlaufen, etwa weil der Run fehlschlägt, der Medienstream nicht startet oder der Anrufer die maximale Wartezeit erreicht hat, leitet Telnyx ihn stattdessen an die Ausweichnummer weiter. Ohne Ausweichnummer, oder wenn Telnyx die Weiterleitung ablehnt, wird aufgelegt.

Anrufe, die connic nicht annimmt, etwa solange die Verbindung pausiert ist oder das Environment kein aktives Deployment hat, werden nicht weitergeleitet. Telnyx beendet sie nach 30 Sekunden.

Einrichtung bei Telnyx

Beim Anlegen der Verbindung legt connic für die Rufnummer eine Call-Control-Anwendung mit der Webhook-URL der Verbindung an, entfernt das technische Präfix und die Zielumschreibung der Nummer und ordnet die Nummer der Anwendung zu. Die Messaging-Einstellungen der Nummer bleiben unverändert. connic lehnt Rufnummern mit aktiver Rufumleitung ab, ebenso Nummern, die bereits eine andere connic-Voice-Verbindung belegt.

Im Outbound-Modus legt connic eine eigene Call-Control-Anwendung mit der Webhook-URL der Verbindung und dem gewählten Outbound-Voice-Profil an und ändert nichts an der Nummer. Wird die Verbindung gelöscht, löscht connic auch diese Anwendung.

Telnyx leitet das Audio eines Anrufs über die AnchorSite, die an der Anwendung eingestellt ist. Damit es in Europa bleibt, wähle an der Anwendung der Verbindung im Telnyx-Portal einen europäischen Standort. connic ändert diese Einstellung nicht; eine Anwendung, die connic für eine neue Nummer anlegt, startet mit der Standardeinstellung von Telnyx.

Die Zuordnung ersetzt die bisherige Voice-Verbindung oder Anwendung der Rufnummer. connic schreibt die vorherige Zuordnung sowie das entfernte Präfix und die Zielumschreibung in die Logs der Verbindung und in das Audit Log des Projekts, wo sie auch nach dem Löschen der Verbindung erhalten bleiben. Beim Löschen der Verbindung stellt connic sie nicht wieder her.
  • Zugangsdaten erneuerst du am Kontozugang. Einen anderen Kontozugang oder eine andere Rufnummer wählst du an der Verbindung.
  • Beim Wechsel der Rufnummer legt connic für die neue Nummer eine neue Anwendung an und trennt die bisherige Nummer. Nach dem Speichern löscht connic die alte Anwendung, sofern sie noch zu dieser Verbindung gehört und ihr keine Nummern mehr zugeordnet sind.
  • Beim Löschen der Verbindung trennt connic die Rufnummer nur, wenn sie noch der unveränderten connic-Anwendung zugeordnet ist, und löscht die Anwendung, sobald ihr keine Nummern mehr zugeordnet sind. Änderungen, die du nach der Einrichtung in Telnyx vorgenommen hast, bleiben erhalten.

Limits und Fehler

LimitWert
Verknüpfte AgentenGenau einer, mit voice_config im aktiven Deployment des Environments
Weiterleitungsnummern20 pro Verbindung
Erlaubte Anrufer100 pro Verbindung
Maximale Wartezeit0 bis 900 Sekunden, standardmäßig 30
Klingeldauer5 bis 120 Sekunden, standardmäßig 30
WarteschleifenmusikMP3 oder WAV, bis zu 10 Minuten
Eingehende Anrufe1.000 pro Minute und Verbindung. Darüber erhält Telnyx 429.
Unbeantwortete AnrufeTelnyx beendet einen Anruf, den connic nicht innerhalb von 30 Sekunden annimmt.
Signaturenconnic lehnt Ereignisse ab, deren Zeitstempel mehr als 5 Minuten abweicht.
GesprächsdauerDer Timeout des Agenten, begrenzt durch das Run-Timeout des Plans; bei Pro 60 Minuten
Aktive VerbindungenIst das Limit aktiver Verbindungen des Tarifs erreicht, schlägt das Anlegen mit 403 fehl. connic legt die Verbindung dann nicht pausiert an, weil sie die Rufnummer bei Telnyx ändern würde. Ein Deployment, das sie am Limit anlegen oder zurückholen würde, schlägt fehl.
Fehler oder SymptomLösung
Disable the selected number's call forwarding in Telnyx before connecting itSchalte die Rufumleitung der Nummer in Telnyx aus und lege die Verbindung erneut an.
This number already belongs to a connic voice connectorLösche zuerst die andere Verbindung oder wähle eine andere Rufnummer.
Select an active Telnyx phone numberWähle eine Rufnummer, die in Telnyx den Status aktiv hat.
Enter the Telnyx account's base64-encoded Ed25519 public keyKopiere den öffentlichen Schlüssel aus den API-Keys-Einstellungen desselben Telnyx-Kontos.
Request rejected: invalid Telnyx signatureDieser Eintrag in den Logs der Verbindung bedeutet, dass der öffentliche Schlüssel des Kontozugangs nicht zu dem Konto gehört, das die Ereignisse sendet. Übernimm den öffentlichen Schlüssel desselben Telnyx-Kontos in den Kontozugang.
Telnyx request failedPrüfe, ob der API-Schlüssel auf die Rufnummern und Call-Control-Anwendungen des Kontos zugreifen darf.
Multiple matching connic Call Control applications existEntferne die ungenutzten Duplikate in Telnyx und versuche es erneut.
Could not detach the connic Call Control applicationTrenne die Anwendung in Telnyx von der Rufnummer und lösche die Verbindung erneut.
Deploy this agent with voice_config before linking a voice connectorErgänze voice_config am Agenten und deploye ihn in das Environment der Verbindung.
Anrufe werden nicht angenommenPrüfe, ob die Verbindung aktiv ist und mit genau einem Agenten verknüpft ist, der im aktiven Deployment voice_config hat. Vergleiche den Fehler des Runs mit den Anrufprotokollen in Telnyx; Telnyx beschreibt sein Media-Streaming-Protokoll.