Novo Comportamento do Endpoint callHistory

Criada por Caroline Wollmann, Modificado em Qui, 27 Mar na (o) 4:13 PM por Jun Nehls Saito

No campo de áudio atualmente, ao consumir o endpoint callHistory, o campo retorna diretamente o link da gravação da chamada. 


O que muda com a atualização?
O campo áudio passará a conter um novo endpoint que deve ser consumido para obter o link da gravação da chamada.


Motivo da mudança

  • Segurança: Em ambientes onde o bucket é privado, o acesso à gravação será protegido, e o link retornado será temporário.

  • Controle de acesso: Essa abordagem garante que os links sejam gerados sob demanda, reduzindo o risco de acessos indevidos.


Como adaptar o consumo da API

  1. Requisição ao callHistory: Continue consumindo o endpoint normalmente.

  2. Novo endpoint para obter o link do áudio: O campo audio agora retorna um endpoint que deve ser chamado para obter o link real da gravação.

  3. Gerenciamento de links temporários:

    • Se o bucket for privado, o link obtido terá validade limitada.

    • Caso o link expire, a requisição retornará um erro de acesso negado.

  4. Obrigatoriedade do novo fluxo: Mesmo que o bucket não esteja privado, o novo endpoint deve ser consumido para acessar o áudio.


Exemplo de resposta do endpoint callHistory (novo formato):

{

    "@odata.context": "https://api.exactspotter.com/v3/$metadata#CallsHistory",

    "value": [

        {

            "leadId": 5062381,

            "leadName": "TESTE",

            "stage": "Entrada",

            "caller": null,

            "called": "4830257750",

            "startDate": "2022-03-10T13:27:35.849827Z",

            "endDate": "2022-03-10T13:27:28Z",

            "price": 0.000000,

            "talkingDurationSeconds": 0,

            "result": null,

            "description": null,

            "manualSet": false,

            "callAnswered": false,

            "audio": "https://api.exactspotter.com/v3/CallRecording?ligacaoId=128579",

            "userId": 179313,

            "userEmail": "gerente@exactsales.com.br",

            "userName": "Gerente",

            "userLastName": "Teste",

            "funnelId": 3119,

            "id": 271479

        }

]



Exemplo de requisição para obter o link da gravação:

GET https://api.exactspotter.com/v3/CallRecording?ligacaoId=128579


Exemplo de resposta do novo endpoint:

{

    "@odata.context": "https://api.exactspotter.com/v3/$metadata#CallRecording",

    "value": [

        {

            "id": 27147,

            "value": "https://calls-totalvoice.s3.amazonaws.com/2022/03/10/12046/956489171ea8esfewf3e3c0cf58531d13e68b836e18695.wav?X-Amz-Expires=43200&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY3LBG3DSETWHP7YY%2F20250324%2Fffsqus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250324T181738Z&X-fffAmz-SignedHeaders=host&X-Amz-Signature=fe751642b6112864623b68afc248cadc7d742171d00425416347a1dcd233e28a"

        }

    ],

    "@odata.nextLink": "https://api.exactspotter.com/v3/CallRecording?ligacaoid=27147&$skip=500"

}


Ações necessárias:

  • Atualizar o fluxo de consumo do áudio para realizar uma segunda requisição ao novo endpoint antes de acessar a gravação.

  • Considerar que, em buckets privados, os links serão temporários e precisarão ser renovados periodicamente.

  • Incluir o header token_exact na requisição ao novo endpoint para obter o link do áudio.

  • Tratar erros de acesso negado caso o link tenha expirado, garantindo que um novo link seja gerado quando necessário.

  • Adaptar o consumo da API para utilizar o novo endpoint, independentemente do status do bucket.


Caso tenha alguma dúvida, entre em contato com a gente pelo suporte@exactsales.com.br.

Até a próxima!


Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo