Utilizzo delle intestazioni SIP - Amazon Chime SDK

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo delle intestazioni SIP

Ora puoi inviare e ricevere un'intestazione User-To-User, un'intestazione Diversion e intestazioni SIP personalizzate nelle tue AWS Lambda funzioni quando desideri scambiare informazioni sul contesto delle chiamate con la tua infrastruttura SIP.

  • L'intestazione User-to-User (UUI) può essere utilizzata per inviare dati di controllo delle chiamate. Questi dati vengono inseriti dall'applicazione che avvia una sessione e utilizzati dall'applicazione che accetta la sessione. Non vengono utilizzati per alcuna funzionalità SIP di base. Ad esempio, è possibile utilizzare l'intestazione UUI in un call center per trasmettere informazioni su una chiamata tra agenti.

  • L'intestazione Diversion viene utilizzata per mostrare da dove è stata deviata la chiamata e perché. È possibile utilizzare questa intestazione per visualizzare le informazioni sulla deviazione provenienti da altri agenti SIP o per trasmetterle.

  • Le intestazioni SIP personalizzate ti consentono di trasmettere tutte le altre informazioni che desideri. Ad esempio, se desideri trasmettere un ID account, puoi creare un'intestazione X chiamata «X-Account-Id» e aggiungere queste informazioni.

È necessario prefissare come prefisso le intestazioni SIP personalizzate con. x- Le intestazioni sono esposte nella AWS Lambda funzione e ricevute come parte di un NEW_INBOUND_CALL evento durante una chiamata in entrata. È inoltre possibile includere queste intestazioni nei log di chiamata in uscita quando si attiva un'CallAndBridgeazione o l'API. CreateSipMediaApplicationCall

La Participants sezione di una funzione Lambda contiene il SipHeaders campo. Questo campo è disponibile quando si riceve un'intestazione personalizzata o quando si compila l'User-to-Userintestazione o. Diversion

Questo esempio mostra una risposta prevista quando una chiamata AWS Lambda contiene intestazioni SIP.

{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type":"actionType", "Parameters":{ // Parameters vary by actionType } }, "CallDetails":{ ..... ..... "Participants":[ { "CallId": "call-id-1", "ParticipantTag": "LEG-A", ..... "Status": "Connected" "SipHeaders": { "X-Test-Value": "String", "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex", "Diversion": "sip:+11234567891@public.test.com;reason=unconditional" } }, { "CallId": "call-id-2", "ParticipantTag": "LEG-B", ..... "Status": "Connected" } ] } }

L'esempio seguente mostra un'CallAndBridgeazione riuscita, dovuta a una voce non valida per il parametro. SipHeaders

{ "SchemaVersion": "1.0", "Actions":[ { "Type": "CallAndBridge", "Parameters":{ "CallTimeoutSeconds": 30, "CallerIdNumber": "e164PhoneNumber", // required "RingbackTone": { // optional "Type": "S3", "BucketName": "s3_bucket_name", "Key": "audio_file_name" }, "Endpoints":[ { "Uri":"e164PhoneNumber", // required "BridgeEndpointType":"PSTN" // required } ], "SipHeaders": { "X-Test-Value": "String", "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex", "Diversion": "sip:+11234567891@public.test.com;reason=unconditional" } } } ] }

L'esempio seguente mostra un'CallAndBridgeazione non riuscita causata da un parametro non validoSipHeaders.

{ "SchemaVersion":"1.0", "Sequence":3, "InvocationEventType":"ACTION_FAILED", "ActionData":{ "Type":"actionType", "Parameters":{ // Parameters vary by Action Type "SipHeaders": { "X-AMZN": "String", "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex", "Diversion": "sip:+11234567891@public.test.com;reason=unconditional" }, }, "ErrorType": "InvalidActionParameter", "ErrorMessage": "Invalid SIP header(s) provided: X-AMZN" }, "CallDetails":{ ..... "Participants":[ { "CallId":"call-id-1", "ParticipantTag":"LEG-A", ..... "Status":"Connected" }, { "CallId":"call-id-2", "ParticipantTag":"LEG-B", ..... "Status":"Connected" } ] } }

Utilizzo del campo SipHeaders

Quando si attiva l'CreateSipMediaApplicationCallAPI, il SipHeaders campo opzionale consente di passare intestazioni SIP personalizzate a un gruppo di chiamate in uscita. Le chiavi di intestazione valide devono includere una delle seguenti:

  • Il x- prefisso

  • L'intestazione User-to-User

  • L'intestazione Diversion

X-AMZNè un'intestazione riservata. Se utilizzi questa intestazione in una chiamata API, avrà esito negativo. Le intestazioni possono avere una lunghezza massima di 2048 caratteri.

L'esempio seguente mostra un'CreateSipMediaApplicationCallAPI tipica nell'interfaccia della riga di comando con il parametro opzionale. SipHeaders

create-sip-media-application-call --from-phone-number value // (string) --to-phone-number value // (string) --sip-media-application-id value // (string) --sip-headers // (map)

Per ulteriori informazioni, vedete Un meccanismo per il trasporto delle informazioni sul controllo delle chiamate da utente a utente in SIP e Indicazione di deviazione in SIP.