As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Agora você pode enviar e receber um User-To-User cabeçalho, um cabeçalho de desvio e cabeçalhos SIP personalizados em suas AWS Lambda funções quando quiser trocar informações de contexto de chamada com sua infraestrutura SIP.
-
O cabeçalho User-to-User (UUI) pode ser usado para enviar dados de controle de chamadas. Esses dados são inseridos pelo aplicativo que inicia uma sessão e usados pelo aplicativo que aceita a sessão. Ele não é usado para nenhuma funcionalidade básica do SIP. Por exemplo, você pode usar o cabeçalho UUI em uma central de chamadas para transmitir informações entre atendentes sobre uma chamada.
-
O cabeçalho de desvio é usado para mostrar de onde a chamada foi desviada e por quê. Você pode usar esse cabeçalho para ver as informações de desvio de outros atendentes SIP ou repassá-las.
-
Os cabeçalhos SIP personalizados permitem que você transmita qualquer outra informação que desejar. Por exemplo, se quiser transmitir um id de conta, você pode criar um cabeçalho X chamado “X-Account-Id” e adicionar essas informações.
Você deve prefixar seus cabeçalhos SIP personalizados com x-
. Os cabeçalhos são expostos na AWS Lambda função e recebidos como parte de um NEW_INBOUND_CALL
evento durante uma chamada de entrada. Você também pode incluir esses cabeçalhos nos segmentos de chamada de saída ao acionar uma ação ou o CallAndBridge CreateSipMediaApplicationCallAPI.
A seção Participants
de uma função do Lambda contém o campo SipHeaders
. Esse campo está disponível quando você recebe um cabeçalho personalizado ou quando você preenche o cabeçalho User-to-User
ou Diversion
.
Este exemplo mostra uma resposta esperada quando uma invocação do AWS Lambda contém cabeçalhos 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"
}
]
}
}
O exemplo a seguir mostra uma ação CallAndBridge bem-sucedida devido a uma entrada inválida para o parâmetro 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"
}
}
}
]
}
O exemplo a seguir mostra uma ação CallAndBridge com falha causada por um parâmetro inválido SipHeaders
.
{
"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"
}
]
}
}
Usar o SipHeaders Campo
Quando você aciona o CreateSipMediaApplicationCallAPI, o SipHeaders
campo opcional, permite que você passe cabeçalhos SIP personalizados para um trecho de chamada de saída. As chaves válidas de cabeçalho devem incluir um dos seguintes:
-
O prefixo
x-
-
O cabeçalho
User-to-User
-
O cabeçalho
Diversion
O X-AMZN
é um cabeçalho reservado. Se você usar esse cabeçalho em uma chamada de API, ele falhará. Os cabeçalhos podem ter um tamanho máximo de 2048 caracteres.
O exemplo a seguir mostra uma típica CreateSipMediaApplicationCallAPI na interface de linha de comando com o parâmetro opcionalSipHeaders
.
create-sip-media-application-call
--from-phone-number value // (string)
--to-phone-number value // (string)
--sip-media-application-id value // (string)
--sip-headers // (map)
Para obter mais informações, consulte Um mecanismo para transportar informações de controle de User-to-User chamadas no SIP