ThunderPhone 2.0 on nüüd saadaval.Iseteenindusena alates 2 senti/min.Loe uudist

Contact centers

Ühenda Amazon Connectist

Suuna Amazon Connecti kõned SIP-i kaudu kontaktitunnuse ja UUI-ga ThunderPhone

Sinu Amazon Connecti voog saadab helistaja agendile koos kontakti ID ja määratud UUI-ga. Kui agent on lõpetanud, katkestab ta kõne, sinu voog jätkub ning Lambda hangib üleandmise kontakti ID alusel.

Enne alustamist

  • ThunderPhone'i agent ja organisatsiooni API-võti.
  • Amazon Connecti välise hääleedastuse konnektor. Taotle esmalt kvoodi „Välise hääleedastuse konnektorid konto kohta” suurendamist: menüü jääb peidetuks, kuni AWS selle heaks kiidab. AWS esitab iga konnektori eest päevatasu ($100 päevas alates 21. juulist 2025) ning lisaks minutipõhise kasutustasu.

1. Loo SIP-lõpp-punkt

Konnektor ei dokumenteeri SIP-digesti autentimist, seega loo lõpp-punkt, mis võtab kõnesid vastu lähteaadressi alusel:

curl -X POST https://api.thunderphone.com/v1/sip-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 12,
    "name": "Amazon Connect",
    "auth": "ip_allowlist",
    "allowed_source_cidrs": ["CONNECT_SIGNALLING_RANGE_1", "CONNECT_SIGNALLING_RANGE_2"]
  }'

Hangi AWS-ilt oma piirkonna konnektori SIP-signalisatsiooni vahemikud. Igaüks neist peab olema avalik IPv4-vahemik /16 või kitsam (IPv6 /48 või kitsam). Vaata platvorme, mis autendivad lähte-IP alusel, et näha reegleid ja riski, mis kaasneb aadressiga, mida jagavad kõik platvormi kliendid. Säilita vastuse sip_uri, näiteks sip:agent-12-jhxmginwjx@sip.thunderphone.com.

2. Saada kõned koos kontekstiga

  1. Ava Amazon Connecti konsoolis Välised häälesüsteemid → Hääleedastuse integratsioonid ja vali Loo.
  2. Vali sihtkoha tüüp (SBC) ning lisa väljaminev marsruut hostiga sip.thunderphone.com, pordiga 5061 ja protokolliga TLS. Lõpp-punkt vajab TLS-i või TCP-d (port 5060) ega aktsepteeri UDP-d. AWS ei dokumenteeri, milliseid protokolle konnektor pakub, seega kinnita AWS-iga, et see saab kasutada üht neist.
  3. Lisa oma voogu plokk Edasta telefoninumbrile, kus Edasta asukohta on seatud väärtusele Väline häälesüsteem, ning määra:
    • Sihtkoha ARN: konnektor.
    • Kasutajale: lõpp-punkti sip_uri kasutajaosa, näiteks agent-12-jhxmginwjx.
    • UUI (valikuline): agendi kontekst. Connect saadab selle kuueteistkümnendkoodis.
    • Jätka voogu pärast katkestamist: Jah, et voog jätkuks, kui agent kõne katkestab.

Connect saadab kontakti ID päises X-Amzn-ConnectContactId. ThunderPhone salvestab selle kõne external_call_id-na, mille abil sinu voog kõne hiljem leiab. UUI jõuab juhiseni kujul {{sip_uui}}. Kolmanda osapoole integratsioonid dokumenteerivad kontakti ID päise; AWS-i enda dokumentatsioon seda ei tee, seega kontrolli seda oma esimesel testkõnel.

3. Too kõne tagasi

AWS ei dokumenteeri viisi, kuidas Connect saaks lugeda päiseid BYE-lt või vastu võtta agendilt REFER-i. Seega tagastab agent kõne: ütleb hüvasti ja lõpetab kõne ning sinu voog jätkub pärast edastamise plokki. Lisa see edastusnumber (vt Edastusnumbri lisamine):

{"name": "Amazon Connect", "action": "return"}

Seejärel hangi üleandmise andmed edastamise järel oleva plokiga Käivita AWS Lambda funktsioon. Lambda otsib kõne kontakt-ID järgi:

import json
import os
import urllib.error
import urllib.parse
import urllib.request
 
 
def lambda_handler(event, context):
    contact_id = event["Details"]["ContactData"]["ContactId"]
    url = "https://api.thunderphone.com/v1/calls/handoff?" + urllib.parse.urlencode(
        {"external_call_id": contact_id}
    )
    request = urllib.request.Request(
        url, headers={"Authorization": "Bearer " + os.environ["THUNDERPHONE_API_KEY"]}
    )
    try:
        with urllib.request.urlopen(request, timeout=5) as response:
            call = json.load(response)
    except (urllib.error.URLError, TimeoutError):
        return {"found": "false"}
    handoff = call.get("handoff") or {}
    return {
        "found": "true",
        "intent": handoff.get("intent") or "",
        "summary": handoff.get("summary") or "",
    }

Plokk tagastab tasapinnalise kaardi, seega saab voog hargneda väärtuse intent järgi või määrata väärtuse summary kõne üle võtvate inimeste kontaktatribuudiks. Käivita plokk sünkroonselt (kuni 8 sekundit) ja salvesta API-võti krüptitult, näiteks AWS Secrets Manageris. Vastuse väljad on kirjeldatud jaotises Üle antud kõne otsimine.

Testi seda

Helista oma Connecti eksemplari numbrile, mis jõuab edastamise plokini, palu agendilt inimest ja kontrolli, et voog jätkub. Seejärel ava kõne käsuga GET /v1/calls/{call_id}: sip_headers peaks sisaldama väärtust x-amzn-connectcontactid ning external_call_id peaks võrduma ContactId-ga, mille sinu Lambda saab. Kui edastamine nurjub SIP 404-ga, ei leidnud ThunderPhone lõpp-punkti kasutajaosa: see peab olema nii päringu URI-s kui ka päises To.

Piirangud

  • AWS ei dokumenteeri viisi päiste lugemiseks BYE-lt, sealhulgas X-TP-Handoff-Id, seega on kontakt-ID ainus seos kõnega.
  • AWS ei dokumenteeri konnektori maksimaalset UUI pikkust.
  • Sünkroonne Lambda plokk aegub 8 sekundi järel.