Direito ao serviço IMS

A partir do Android 12, o Android inclui suporte para TS.43 Service Entitlement Configuration , uma especificação GSMA que define a etapa de verificação de direitos para a ativação de serviços, incluindo Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE) , SMS sobre IP (SMSoIP), ativação de serviço no dispositivo (ODSA) de dispositivos complementares eSIM (associados ao dispositivo solicitante) e informações do plano de dados.

Para dar suporte a essa especificação, o Android fornece um recurso de autorização de serviço IMS que permite que um provedor de serviços informe os dispositivos móveis sobre o status dos serviços de rede do IP Multimedia Subsystem (IMS). Esse recurso de autorização permite que o dispositivo consulte o servidor de autorização de operadora conforme definido pela especificação GSMA TS.43 para o status de autorização de IMS usando autenticação EAP-AKA sem exigir que os usuários insiram quaisquer credenciais manualmente.

As operadoras com servidores de autorização de IMS podem usar o recurso de autorização de serviço IMS para provisionamento de serviço. Adotar o recurso oferece os seguintes benefícios:

  • Reduz os custos de teste e certificação para operadoras porque esse recurso de direito pode ser usado em vários produtos e OEMs.
  • Reduz a sobrecarga de desenvolvimento para fabricantes de dispositivos por meio de um aplicativo Android padrão.
  • Permite que fabricantes e operadoras de dispositivos contribuam com código para o recurso, pois o recurso é de código aberto.
  • Fornece gerenciamento de endereços de emergência para operadoras norte-americanas.

Arquitetura

A figura a seguir descreve a arquitetura e o comportamento do recurso de autorização de serviço IMS.

Recurso de direito TS.43

Figura 1. Arquitetura do recurso de autorização TS.43

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

  • service_entitlement TS.43 Service API static library : Esta biblioteca implementa a especificação TS.43, interage com o servidor de autorização de uma operadora e expõe APIs voltadas para aplicativos para cada caso de uso TS.43.
  • Aplicativo cliente ImsServiceEntitlement : este aplicativo usa a API de serviço TS.43. O aplicativo implementa elementos de interface do usuário, incluindo visualizações da web para renderizar o portal de serviços da operadora para que os usuários ativem serviços e interage com outros componentes do Android para gerenciar a experiência do usuário de ponta a ponta.

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

As linhas numeradas na Figura 1 mostram como os componentes do recurso de autorização de serviço IMS se comunicam entre si. A seguir, descreve cada uma das etapas conforme rotuladas:

(1) O aplicativo cliente invoca a API de serviço TS.43 para iniciar uma solicitação de autorização de serviço.

(2) A API de serviço TS.43 envia uma solicitação HTTP ao servidor de autorização 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 de desafio EAP-AKA.

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

(5) O serviço TS.43 retorna a autorização do serviço ou os dados de configuração para o aplicativo cliente.

(6) O aplicativo cliente trata os dados e, opcionalmente, disponibiliza o portal de atendimento da operadora para que o usuário finalize a ativação do serviço.

Integração

Esta seção descreve o processo para integrar a biblioteca service_entitlement e o aplicativo ImsServiceEntitlement .

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

biblioteca service_entitlement

Como a biblioteca service_entitlement está vinculada estaticamente ao ImsServiceEntitlement app , nenhuma etapa adicional é necessária para integrar a biblioteca ao aplicativo ImsServiceEntitlement .

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

Veja a seguir as APIs a serem usadas para esses casos de uso:

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

Aplicativo ImsServiceEntitlement

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

Chave Valor
KEY_ENTITLEMENT_SERVER_URL_STRING URL do servidor de direitos da operadora. O prefixo https:// deve 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 usuário 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.

Isso normalmente é 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 é exigido por 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 GMS: as seguintes operadoras são compatíveis com o aplicativo de direitos TS.43 no Android 12, de acordo com a especificação TS.43 v5.0:

  • EUA: CSspire, US Cellular, Cellcom
  • França: laranja

IU de sistema adicional para provisionamento de IMS

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

O aplicativo ImsServiceEntitlement define o estado de provisionamento 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 usuário do sistema pode ler o estado de provisionamento usando getProvisioningIntValue ou registrando um retorno de chamada para monitorar a alteração do estado de provisionamento por meio registerProvisioningChangedCallback .

Substituindo configurações para teste

Use os procedimentos a seguir para alterar temporariamente o comportamento do aplicativo ImsServiceEntitlement para fins de teste. Para obter detalhes sobre como substituir as configurações da operadora, consulte Substituindo as configurações da operadora .

Ignorando o processo de inscrição VoWiFi

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

Ignorando o provisionamento do IMS

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

Alterando o URL do servidor de direitos

Para alterar o URL do servidor de direitos, substitua a configuração da operadora KEY_ENTITLEMENT_SERVER_URL_STRING e defina seu valor para a string de URL esperada. Você deve incluir o prefixo https:// .

Substituindo as configurações da operadora

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

O comando a seguir é um exemplo de como substituir a chave de configuração da operadora carrier_volte_provisioning_required_bool e definir seu 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 obter mais informações, execute o seguinte comando:

adb shell cmd phone cc