---
title: "Ühenda Amazon Connectist"
description: "Suuna Amazon Connecti kõned SIP-i kaudu kontaktitunnuse ja UUI-ga ThunderPhone'i häälagendile ning jätka oma voogu agendi üleandmisega."
---

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](/et/guides/api-keys).
- 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](https://aws.amazon.com/about-aws/whats-new/2025/07/amazon-connect-announces-per-day/))
  ning lisaks minutipõhise kasutustasu.

<Warning>
  AWS-i praeguses haldusjuhendis ei ole enam välise hääleedastuse lehti.
  Enne selle kasutamist kinnita AWS-iga, et konnektor on sinu eksemplari ja piirkonna jaoks saadaval.
</Warning>

## 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:

```bash
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/guides/sip-addresses),
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](/et/guides/contact-centers/overview)):

```json
{"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:

```python
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](/api-reference/calls#look-up-a-handed-off-call).

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