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 toInstale o plugin com a flag VoIP ativada:
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=trueIsso configurará o plugin para suportar a funcionalidade VoIP no iOS.
2. Adicione a dependência CocoaPod PushwooshVoIP
Anchor link toCertifique-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 toAbra seu projeto no Xcode e siga estes passos:
- Vá para Signing & Capabilities.
- Adicione a capacidade Background Modes.
- 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 toSe 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 toNo 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 toChame 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 tosupportsVideo–trueoufalsedependendo se seu aplicativo suporta chamadas de vídeoringtoneSound– nome do arquivo de toque personalizado (ex."incoming.caf"), ou string vazia para o padrãohandleTypes– máscara de bits numérica para tipos de identificador de chamada (1para número de telefone,2para e-mail, etc.)
7. Callbacks e métodos VoIP disponíveis
Anchor link toO plugin Cordova suporta os seguintes métodos e eventos relacionados a VoIP:
answer– chamado quando um usuário atende uma chamada recebidaendCall– chamado quando um usuário encerra a chamada atualhangup– chamado quando uma chamada é desligadareject– chamado quando uma chamada recebida é rejeitadamuted– alterna o status de mudo, apenas para iOSheld– alterna o status de espera, apenas para iOSvoipPushPayload– retorna o payload do push para a chamada VoIP recebidaincomingCallSuccess– chamado quando a UI de chamada do sistema é exibida com sucesso, apenas para iOSincomingCallFailure– chamado quando a UI de chamada do sistema falha ao ser exibida, apenas para iOSspeakerOn– liga o viva-vozspeakerOff– desliga o viva-vozplayDTMF– 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.