Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vous pouvez désormais envoyer et recevoir un User-To-User en-tête, un en-tête Diversion et des en-têtes SIP personnalisés dans vos AWS Lambda fonctions lorsque vous souhaitez échanger des informations sur le contexte des appels avec votre infrastructure SIP.
-
L'en-tête User-to-User (UUI) peut être utilisé pour envoyer des données de contrôle des appels. Ces données sont insérées par l'application qui lance une session et utilisées par l'application qui accepte la session. Il n'est utilisé pour aucune fonctionnalité SIP de base. Par exemple, vous pouvez utiliser l'en-tête UUI d'un centre d'appels pour transmettre des informations entre les agents concernant un appel.
-
L'en-tête Diversion est utilisé pour indiquer d'où l'appel a été redirigé et pourquoi. Vous pouvez utiliser cet en-tête pour voir les informations de détournement provenant d'autres agents SIP ou pour les transmettre.
-
Les en-têtes SIP personnalisés vous permettent de transmettre toute autre information que vous souhaitez. Par exemple, si vous souhaitez transmettre un identifiant de compte, vous pouvez créer un en-tête X appelé « X-Account-Id » et ajouter ces informations.
Vous devez préfixer vos en-têtes SIP personnalisés avec. x-
Les en-têtes sont exposés dans la AWS Lambda fonction et reçus dans le cadre d'un NEW_INBOUND_CALL
événement lors d'un appel entrant. Vous pouvez également inclure ces en-têtes dans les segments d'appel sortants lorsque vous déclenchez une CallAndBridge action ou CreateSipMediaApplicationCallAPI.
La Participants
section d'une fonction Lambda contient le SipHeaders
champ. Ce champ est disponible lorsque vous recevez un en-tête personnalisé ou lorsque vous renseignez l'Diversion
en-tête User-to-User
ou.
Cet exemple montre une réponse attendue lorsqu'un appel AWS Lambda contient des en-têtes 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'exemple suivant montre une CallAndBridge action réussie en raison d'une entrée non valide pour le SipHeaders
paramètre.
{
"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'exemple suivant montre une CallAndBridge action qui a échoué en raison d'un SipHeaders
paramètre non valide.
{
"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"
}
]
}
}
Utilisation de SipHeaders field
Lorsque vous déclenchez le CreateSipMediaApplicationCallAPI, le SipHeaders
champ facultatif vous permet de transmettre des en-têtes SIP personnalisés à un segment d'appel sortant. Les clés d'en-tête valides doivent inclure l'un des éléments suivants :
-
Le
x-
préfixe -
L'
User-to-User
en-tête -
L'
Diversion
en-tête
X-AMZN
est un en-tête réservé. Si vous utilisez cet en-tête dans un appel d'API, il échouera. Les en-têtes peuvent comporter au maximum 2 048 caractères.
L'exemple suivant montre un CreateSipMediaApplicationCallAPI dans l'interface de ligne de commande avec le paramètre optionnelSipHeaders
.
create-sip-media-application-call
--from-phone-number value // (string)
--to-phone-number value // (string)
--sip-media-application-id value // (string)
--sip-headers // (map)
Pour plus d'informations, voir Un mécanisme de transport des informations de contrôle des User-to-User appels dans le SIP