Direito ao serviço IMS

A partir do Android 12, o Android inclui suporte para a configuração de direito de acesso do TS.43, uma especificação do GSMA que define a etapa de verificação de direito de acesso para a ativação de serviços, incluindo voz sobre Wi-Fi (VoWiFi), voz sobre LTE (VoLTE), SMS sobre IP (SMSoIP), ativação de serviço no dispositivo (ODSA, na sigla em inglês) de dispositivos companion eSIM (associados ao dispositivo solicitante) e informações do plano de dados.

Para oferecer suporte a essa especificação, o Android oferece um recurso de direito de acesso ao serviço IMS que permite que um provedor de serviços informe aos dispositivos móveis o status dos serviços de rede do Subsistema multimídia IP (IMS). Esse recurso de direito de acesso permite que o dispositivo consulte o servidor de direitos de acesso da operadora, conforme definido pela especificação GSMA TS.43, para o status de direito de acesso do IMS usando a autenticação EAP-AKA sem exigir que os usuários insiram credenciais manualmente.

As operadoras com servidores de direitos de acesso ao IMS podem usar o recurso de direito de acesso ao serviço do IMS para provisionamento de serviço. A adoção do recurso oferece os seguintes benefícios:

  • Reduz os custos de teste e certificação para as operadoras, porque esse recurso de direito pode ser usado em vários produtos e OEMs.
  • Reduz a sobrecarga de desenvolvimento para fabricantes de dispositivos usando um app Android padrão.
  • Permite que fabricantes de dispositivos e operadoras contribuam com o código do recurso, já que ele é de código aberto.
  • Oferece gerenciamento de endereços de emergência para operadoras da América do Norte.

Parceiros do GMS:

Para operadoras que não oferecem suporte à especificação TS.43, os parceiros do GMS podem usar o app de ativação do WFC, disponível nos dispositivos do GMS como um app não agrupado, para provisionar serviços de rede IMS.

Se você tiver solicitações de recursos relacionados ao recurso de direito de acesso ao serviço IMS, entre em contato com seu representante do Google ou envie um e-mail para gms-connectivity-apps@google.com.

Arquitetura

A figura a seguir descreve a arquitetura e o comportamento do recurso de direito de acesso ao serviço do IMS.

Recurso de direito TS.43

Figura 1. Arquitetura do recurso de direito TS.43

Conforme mostrado na Figura 1, a arquitetura do recurso de direito de acesso ao serviço IMS inclui os seguintes componentes:

  • service_entitlement Biblioteca estática da API Service TS.43: essa biblioteca implementa a especificação TS.43, interage com o servidor de direitos de uma operadora e expõe APIs voltadas para apps para cada caso de uso do TS.43.
  • ImsServiceEntitlement app cliente: esse app usa a API Service TS.43. O app implementa elementos de interface, incluindo visualizações da Web para renderizar o portal de serviços da operadora para os usuários ativar os serviços e interage com outros componentes do Android para gerenciar a experiência do usuário de ponta a ponta.

    Para mais informações sobre como configurar o Android para funcionar com um servidor de direitos baseado no TS.43 de uma operadora, consulte o app ImsServiceEntitlement.

As linhas numeradas na Figura 1 mostram como os componentes do recurso de direito de acesso ao serviço IMS se comunicam entre si. Confira a seguir uma descrição de cada etapa conforme indicado:

(1) O app cliente invoca a API de serviço TS.43 para iniciar uma solicitação de direito de acesso ao serviço.

(2) A API de serviço TS.43 envia uma solicitação HTTP para o servidor de direitos da operadora para iniciar um desafio EAP-AKA.

(3) A API de serviço TS.43 invoca APIs de telefonia (por exemplo, getIccAuthentication) para concluir a resposta ao desafio EAP-AKA.

(4) O serviço TS.43 recebe dados de direito ou configuração de serviço do servidor de direitos da operadora depois que a resposta EAP-AKA é verificada.

(5) O serviço TS.43 retorna os dados de configuração ou de direito de acesso do serviço ao app cliente.

(6) O app cliente processa os dados e renderiza, opcionalmente, o portal de serviço da operadora para que o usuário conclua a ativação do serviço.

Integração

Esta seção descreve o processo de integração da biblioteca service_entitlement e do app ImsServiceEntitlement.

Como não há dependência da API do Android 12, a biblioteca service_entitlement e o app ImsServiceEntitlement podem ser enviados de volta para plataformas Android mais antigas.

Biblioteca service_entitlement

Como a biblioteca service_entitlement está vinculada estaticamente ao ImsServiceEntitlement app, não são necessárias outras etapas para integrar a biblioteca ao app ImsServiceEntitlement.

A biblioteca service_entitlement pode ser integrada aos seus próprios apps para casos de uso do TS.43, como plano de dados e ODSA. A biblioteca também pode ser integrada a um app para casos de uso de direitos não TS.43 com base no protocolo EAP-AKA.

Confira abaixo as APIs que podem ser usadas para esses casos de uso:

  • App TS.43 usando o protocolo HTTP TS.43 implementado na biblioteca: Use as APIs na classe ServiceEntitlement
  • App não TS.43 que usa o protocolo EAP-AKA implementado na biblioteca: use as APIs expostas na classe EapAkaHelper.

Parceiros do GMS:confira abaixo os fornecedores de servidor de direitos do TS.43 com os quais a biblioteca service_entitlement foi testada no Android 12.

  • Ericsson
  • HPE
  • Nokia

App ImsServiceEntitlement

Por padrão, o Android inclui o app ImsServiceEntitlement instalado na partição do produto como um app privilegiado. Para configurar o app, use as chaves CarrierConfig abaixo:

Chave Valor
KEY_ENTITLEMENT_SERVER_URL_STRING URL do servidor de direitos da operadora. O prefixo https:// precisa ser incluído.
KEY_FCM_SENDER_ID_STRING ID do remetente do FCM da operadora.

Não defina esse valor se o FCM não for exigido pela operadora.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Defina como true se a operadora exigir uma interface do portal da Web para que os usuários se inscrevam no serviço VoWiFi. Por exemplo, consentir com os Termos e Condições ou inserir um endereço de emergência.

Esse recurso geralmente é exigido por operadoras na América do Norte.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Defina como com.android.imsserviceentitlement/.WfcActivationActivity se KEY_SHOW_VOWIFI_WEBVIEW_BOOL for true.
KEY_IMS_PROVISIONING_BOOL Defina como true se a operadora exigir o provisionamento de rede de serviços IMS (VoLTE/VoWiFi/SMSoIP) em segundo plano.

Isso é necessário para algumas operadoras europeias.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Defina como true se KEY_IMS_PROVISIONING_BOOL for true.

O tráfego HTTP para o servidor de direitos e o portal da Web de uma operadora passa pela rede padrão, por exemplo, dados móveis padrão ou Wi-Fi.

Parceiros do GMS:as operadoras a seguir são compatíveis com o app de direito TS.43 no Android 12, seguindo a especificação TS.43 v5.0:

  • EUA: CSpire, US Cellular, Cellcom
  • França: Orange

Interface do sistema adicional para provisionamento de IMS

Esta seção descreve como os OEMs podem oferecer suporte a outros elementos da interface do sistema relacionados ao provisionamento de serviços IMS (por exemplo, ao mostrar uma notificação quando o VoWiFi é provisionado).

O app ImsServiceEntitlement define o estado de provisionamento do VoWiFi na plataforma usando a API do sistema ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value). Essa API também é usada para VoLTE (com KEY_VOLTE_PROVISIONING_STATUS) e SMSoIP (com KEY_SMS_OVER_IP_ENABLED).

A interface do sistema pode ler o estado de provisionamento usando getProvisioningIntValue ou registrando um callback para monitorar a mudança de estado de provisionamento pelo registerProvisioningChangedCallback.

Substituir configurações para testes

Use os procedimentos a seguir para alterar temporariamente o comportamento do app ImsServiceEntitlement para fins de teste. Para saber como substituir as configurações da operadora, consulte Como substituir as configurações da operadora.

Ignorar o processo de inscrição no VoWiFi

Para pular o processo de inscrição do VoWiFi, permitindo que ele seja ativado diretamente, substitua a configuração da operadora KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING e defina o valor como uma string vazia.

Pular o provisionamento do IMS

Para pular o provisionamento do IMS, disponibilizando os serviços do IMS e permitindo que os usuários ativem esses serviços sem o provisionamento de rede, substitua a configuração da operadora KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL e defina o valor como false.

Mudar o URL do servidor de direitos

Para mudar o URL do servidor de direitos, substitua a configuração da operadora KEY_ENTITLEMENT_SERVER_URL_STRING e defina o valor como a string de URL esperada. Inclua o prefixo https://.

Substituir configurações da operadora

No Android 11, os comandos de substituição de configuração da operadora são integrados e estão disponíveis com privilégios raiz.

O comando a seguir é um exemplo de como substituir a chave de configuração da operadora carrier_volte_provisioning_required_bool e definir o valor como false. Você pode executar o comando várias vezes para substituir várias configurações.

adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false

Para limpar todas as substituições, use o seguinte comando:

adb shell cmd phone cc clear-values

Para mais informações, execute o seguinte comando:

adb shell cmd phone cc