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.

Parceiros GMS:

Para operadoras que não oferecem suporte à especificação TS.43, os parceiros GMS podem usar o aplicativo de ativação do WFC , 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.

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

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 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