5. Ouvindo eventos e mensagens.
Após a inclusão do iframe no documento, o próximo passo é adicionar um Event Listener no objeto window. Isso permitirá que sua aplicação comece a escutar as mensagens enviadas pelo iframe do SoftphoneWeb, possibilitando o controle de eventos importantes relacionados à conexão do softphone.
O listener deve ser configurado para capturar três tipos de mensagens:
- disconnect – Disparado quando a sessão é terminada normalmente. Isso pode acontecer quando: Uma das partes desliga a chamada, A sessão é encerrada de forma controlada.
- connect – Disparado quando a sessão é estabelecida com sucesso. Isso significa que: A negociação SIP foi completada, Ambas as partes podem se comunicar.
- getUserMediaFail – Sinaliza que houve uma falha ao tentar obter acesso ao microfone, normalmente por bloqueio do navegador ou ausência de permissão concedida pelo usuário.
As mensagens chegam sempre no seguinte formato: "softPhoneResponse|tipo_da_mensagem"
Exemplo:
- softPhoneResponse|disconnect
- softPhoneResponse|connect
- softPhoneResponse|getUserMediaFail
Abaixo, um exemplo de como adicionar e tratar esse listener em JavaScript
window.addEventListener("message", function (event) {
if (typeof event.data === "string" && event.data.includes("softPhoneResponse|")) {
const [, messageType] = event.data.split("|");
switch (messageType) {
case "disconnect":
console.warn("Session disconnected.");
break;
case "connect":
console.log("Session connected.");
break;
case "getUserMediaFail":
console.error("Falha ao acessar o microfone.");
break;
}
}
});