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 suportar esta especificação, o Android fornece um recurso de autorização de serviço IMS que permite que um provedor de serviços informe 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 da operadora conforme definido pela especificação GSMA TS.43 para o status de autorização do IMS usando a autenticação EAP-AKA sem exigir que os usuários insiram quaisquer credenciais manualmente.
As operadoras com servidores de autorização IMS podem usar o recurso de autorização de serviço IMS para provisionamento de serviços. A adoção do recurso oferece os seguintes benefícios:
- Reduz os custos de testes 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 de dispositivos e operadoras contribuam com código para o recurso, já que o recurso é de código aberto.
- Fornece gerenciamento de endereços de emergência para operadoras norte-americanas.
Parceiros GMS:
Para operadoras que não suportam a especificação TS.43, os parceiros GMS podem usar o aplicativo WFC Activation , que está disponível em dispositivos GMS como um aplicativo desagregado, para provisionar serviços de rede IMS.
Se você tiver solicitações de recursos relacionadas ao recurso de direito 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 autorização de serviço IMS.
Figura 1. Arquitetura de 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
Biblioteca estática da API de serviço TS.43 : esta biblioteca implementa a especificação TS.43, interage com o servidor de direitos de uma operadora e expõe APIs voltadas para o aplicativo para cada caso de uso do TS.43. Aplicativo cliente
ImsServiceEntitlement
: este aplicativo usa a API de serviço TS.43. O aplicativo implementa elementos de UI, incluindo webviews para renderizar o portal de serviços da operadora para que os usuários ativem serviços e interaja 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 um servidor de direitos baseado em TS.43 de uma operadora, consulte 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 descrevemos 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 do serviço TS.43 envia uma solicitação HTTP ao servidor de direitos da operadora para iniciar um desafio EAP-AKA.
(3) A API do serviço TS.43 invoca APIs de telefonia (por exemplo, getIccAuthentication
) para completar o desafio-resposta EAP-AKA.
(4) O serviço TS.43 recebe direitos de serviço ou dados de configuração do servidor de direitos da operadora após a resposta EAP-AKA ser verificada.
(5) O serviço TS.43 retorna o direito de serviço ou os dados de configuração para o aplicativo cliente.
(6) O aplicativo cliente trata os dados e, opcionalmente, renderiza o portal de serviços da operadora para que o usuário finalize a ativação do serviço.
Integração
Esta seção descreve o processo de integração da biblioteca service_entitlement
e do aplicativo ImsServiceEntitlement
.
Como não há dependência da API do Android 12, a biblioteca service_entitlement
e o aplicativo ImsServiceEntitlement
podem ser portados 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 aos seus próprios aplicativos para casos de uso do 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 baseados no protocolo EAP-AKA.
A seguir descrevemos as APIs a serem usadas nesses 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
Parceiros GMS: a seguir estão os fornecedores de servidores de direitos TS.43 com os quais a biblioteca service_entitlement foi testada no Android 12.
- Ericsson
- HPE
- Nokia
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 FCM da operadora. Não defina esse valor se o FCM não for exigido pela operadora. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL | Definido como true se a operadora exigir uma interface de 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 pelas operadoras da América do Norte. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING | Defina como com.android.imsserviceentitlement/.WfcActivationActivity , se KEY_SHOW_VOWIFI_WEBVIEW_BOOL true . |
KEY_IMS_PROVISIONING_BOOL | Definido como true se a operadora exigir o provisionamento de rede de serviços IMS (VoLTE/VoWiFi/SMSoIP) em segundo plano.Isto é exigido por algumas transportadoras 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 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 suportadas pelo aplicativo de autorização TS.43 no Android 12, seguindo a especificação TS.43 v5.0:
- EUA: CSpire, US Cellular, Cellcom
- França: Laranja
UI de sistema adicional para provisionamento de IMS
Esta seção descreve como os OEMs podem oferecer suporte a elementos adicionais da UI do sistema relacionados ao provisionamento de serviços 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)
. Esta API também é usada para VoLTE (com KEY_VOLTE_PROVISIONING_STATUS
) e SMSoIP (com KEY_SMS_OVER_IP_ENABLED
).
A UI do sistema pode então ler o estado de provisionamento usando getProvisioningIntValue
ou registrando um retorno de chamada para monitorar a mudança de estado de provisionamento por meio de 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 configurações de operadora, consulte Substituindo configurações de operadora .
Ignorando o processo de inscrição do 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 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 configure seu valor como false
.
Alterando o URL do servidor de direitos
Para alterar o URL do servidor de autorização, substitua a configuração da operadora KEY_ENTITLEMENT_SERVER_URL_STRING
e defina seu valor para a sequência de URL esperada. Você deve incluir o prefixo https://
.
Substituindo configurações de 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