Pular para o conteúdo principal

Visão geral

O OneSignal suporta envio de notificações VoIP nas plataformas Android e iOS. No entanto, o SDK OneSignal não suporta atualmente registro de token VoIP. Este guia explica como configurar notificações VoIP manualmente usando a API do OneSignal e configuração de plataforma.

Configuração VoIP para Android

Ao contrário do iOS, o Android não usa um tipo dedicado “VoIP push”. Você pode obter comportamento semelhante ao VoIP usando notificações push de apenas dados para iniciar uma Activity ou apresentar UI personalizada. Se você deseja lançar uma UI nativa (ex: tela de chamada recebida), use o NotificationExtenderService do Android para sobrescrever o comportamento da notificação. Para orientação adicional:

Configuração VoIP para iOS

1

Adicione PushKit ao seu app

Use a API PushKit da Apple para registrar e receber um token VoIP. Consulte as Melhores Práticas VoIP da Apple para dicas de implementação.
2

Crie um novo app OneSignal para usuários VoIP

Você deve manter dois apps OneSignal separados:
  • App Push Principal: Para notificações push padrão
  • App VoIP: Para notificações específicas de VoIP
Certifique-se de fazer upload de um Certificado VoIP Services (.p12) para o app VoIP, usando o mesmo bundle ID do seu app principal.

p12 no Keychain Access

Screenshot do certificado VoIP

3

Registre dispositivo com token VoIP

Use a API Create User para registrar o token VoIP com seu app OneSignal dedicado ao VoIP.Nota: Se você está registrando um dispositivo em um ambiente de desenvolvimento/sandbox, inclua a propriedade "test_type": 1. Omitir isso pode causar erros de "Mismatched Subscription Environment" ou falhas de notificação.
curl --request POST \
     --url https://api.onesignal.com/apps/YOUR_VOIP_APP_ID/users \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "subscriptions": [
    {
      "type": "iOSPush",
      "token": "your-voip-token",
      "test_type": 1 // omit in production
    }
  ]
}
'
Para atualizar o token posteriormente, use a API Update Subscription.
4

Envie notificações VoIP

Use a API Create Notification e inclua os seguintes parâmetros:
  • "apns_push_type_override": "voip"
  • O app_id do seu app VoIP
curl --include \
     --request POST \
     --header "Content-Type: application/json; charset=utf-8" \
     --header "Authorization: key YOUR_REST_API_KEY" \
     --data-binary '{
  "app_id": "YOUR_VOIP_APP_ID",
  "contents": {"en": "English Message"},
  "apns_push_type_override": "voip",
  "include_subscription_ids": ["YOUR_VOIP_SUBSCRIPTION_ID"]
}' \
https://api.onesignal.com/notifications

FAQ

Não, Confirmed Deliveries não são rastreadas para pushes VoIP. Elas dependem do Notification Service Extension, que não é acionado para notificações VoIP.Em vez disso, rastreie recebimento via evento nativo do iOS PushKit:
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)
Este evento faz parte do target do seu app principal e não requer uma extension separada. Saiba mais na documentação VoIP da Apple.