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.

Antes de começar, integre o plugin com o seu Application Code do Pushwoosh, conforme descrito no guia de integração básica.

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. Verifique a dependência PushwooshVoIP

Anchor link to

O plugin vincula o módulo PushwooshVoIP automaticamente. No cordova-ios 8, ele adiciona o pacote Swift PushwooshVoIP e não altera o Podfile. Em versões anteriores do cordova-ios, ele adiciona esta linha ao seu Podfile:

pod 'PushwooshXCFramework/PushwooshVoIP'

Este módulo é necessário para suportar notificações VoIP baseadas em PushKit e o tratamento de chamadas em 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. Solicite permissão de chamada no Android

Anchor link to

No Android, o aplicativo precisa da permissão do usuário para receber chamadas. Solicite-a com requestCallPermission(). Se o usuário negar, o aplicativo ignora as chamadas VoIP recebidas.

pushwoosh.requestCallPermission();

5. Defina um toque personalizado (opcional)

Anchor link to

O plugin inicializa o VoIP automaticamente. Para tocar um toque personalizado nas chamadas recebidas, passe o nome de um arquivo de som do bundle do aplicativo:

pushwoosh.setRingtone("incoming.caf");

6. Callbacks e métodos VoIP disponíveis

Anchor link to

O suporte a vídeo e o formato do identificador de chamada são definidos por chamada no payload do push VoIP: video e, no iOS, handleType (1 para genérico, 2 para número de telefone, 3 para e-mail).

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
  • voipDidRegisterTokenSuccessfully – chamado quando o token VoIP é registrado no Pushwoosh, apenas para iOS
  • voipDidFailToRegisterTokenWithError – chamado quando o registro do token VoIP falha, apenas para iOS
  • voipDidCancelCall – chamado quando uma chamada é cancelada remotamente por meio de um push VoIP
  • voipDidFailToCancelCall – chamado quando uma tentativa de cancelar uma chamada falha

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

No Android, você também pode tratar esses eventos em sua própria classe Java nativa, por exemplo, para abrir sua própria tela de chamada quando o usuário atender. Consulte Manipulador personalizado de eventos de chamada no Android.

Anchor link to