Pular para o conteúdo

Chamadas VoIP com Cordova

O Pushwoosh suporta notificações de chamada no estilo VoIP para iOS e Android usando o pushwoosh-cordova-plugin. Isso ativa a funcionalidade nativa de chamadas VoIP, incluindo a UI de chamada recebida e eventos de controle de chamada.

1. Adicione o plugin Pushwoosh para Cordova com VoIP ativado

Anchor link to

Instale o plugin com a flag VoIP ativada:

Terminal window
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=true

Isso configurará o plugin para suportar a funcionalidade VoIP no iOS.

2. Adicione a dependência CocoaPod PushwooshVoIP

Anchor link to

Certifique-se de que o pod PushwooshVoIP seja incluído automaticamente através do plugin. Se necessário, verifique manualmente no seu Podfile:

pod 'PushwooshVoIP'

Este pod é necessário para suportar notificações VoIP baseadas em PushKit e o tratamento de chamadas a nível de sistema.

3. Ative o modo de segundo plano VoIP no Xcode

Anchor link to

Abra seu projeto no Xcode e siga estes passos:

  1. Vá para Signing & Capabilities.
  2. Adicione a capacidade Background Modes.
  3. Marque a opção Voice over IP.

Isso permite que seu aplicativo receba pushes VoIP recebidos enquanto estiver em segundo plano.

4. Configure o código do aplicativo VoIP (se estiver usando pushes VoIP e regulares)

Anchor link to

Se o seu aplicativo usa tanto pushes padrão quanto VoIP, você deve definir explicitamente o código do aplicativo VoIP antes da inicialização do VoIP:

pushwoosh.setVoipAppCode("XXXXX-XXXXX");

Substitua "XXXXX-XXXXX" pelo Código de Aplicativo Pushwoosh atribuído à sua aplicação habilitada para VoIP no Painel de Controle Pushwoosh.

5. Solicite permissão de chamada no Android

Anchor link to

No Android, você precisa solicitar a um usuário a permissão para receber chamadas. Para fazer isso, chame o método requestCallPermission(). Isso deve ser feito antes de registrar um dispositivo.

pushwoosh.requestCallPermission();

6. Inicialize os parâmetros VoIP

Anchor link to

Chame o seguinte método para inicializar a funcionalidade VoIP:

PushNotification.prototype.initializeVoIPParameters = function(supportsVideo, ringtoneSound, handleTypes, success, error) {
if (typeof handleTypes === "function") {
error = ringtoneSound;
success = supportsVideo;
handleTypes = undefined;
ringtoneSound = undefined;
supportsVideo = undefined;
}
exec(success, error, "PushNotification", "initializeVoIPParameters", [
!!supportsVideo,
ringtoneSound || "",
handleTypes != null ? Number(handleTypes) : 1
]);
};

Parâmetros

Anchor link to
  • supportsVideotrue ou false dependendo se seu aplicativo suporta chamadas de vídeo
  • ringtoneSound – nome do arquivo de toque personalizado (ex. "incoming.caf"), ou string vazia para o padrão
  • handleTypes – máscara de bits numérica para tipos de identificador de chamada (1 para número de telefone, 2 para e-mail, etc.)

7. Callbacks e métodos VoIP disponíveis

Anchor link to

O plugin Cordova suporta os seguintes métodos e eventos relacionados a VoIP:

  • answer – chamado quando um usuário atende uma chamada recebida
  • endCall – chamado quando um usuário encerra a chamada atual
  • hangup – chamado quando uma chamada é desligada
  • reject – chamado quando uma chamada recebida é rejeitada
  • muted – alterna o status de mudo, apenas para iOS
  • held – alterna o status de espera, apenas para iOS
  • voipPushPayload – retorna o payload do push para a chamada VoIP recebida
  • incomingCallSuccess – chamado quando a UI de chamada do sistema é exibida com sucesso, apenas para iOS
  • incomingCallFailure – chamado quando a UI de chamada do sistema falha ao ser exibida, apenas para iOS
  • speakerOn – liga o viva-voz
  • speakerOff – desliga o viva-voz
  • playDTMF – toca o tom DTMF durante uma chamada, apenas para iOS

Estes podem ser conectados usando o objeto PushNotification do Cordova, permitindo que você controle e responda às mudanças de estado da chamada VoIP.

Anchor link to