Registro Único IMS

O Android 12 introduz suporte para um modelo de registro único para fornecer recursos MMTEL e RCS. Este modelo permite que os dispositivos tenham todos os recursos do IMS gerenciados por meio de um único registro IMS fornecido pelo ImsService do dispositivo e cumpram os requisitos introduzidos por algumas operadoras de telecomunicações. Comparado com um modelo de registro duplo, onde vários registros IMS são gerenciados em um dispositivo, o registro único reduz o tráfego na rede da operadora e aumenta a confiabilidade.

O Android 12 oferece suporte a esse modelo de registro único por meio de uma arquitetura com um conjunto de APIs que permite que a pilha de telefonia AOSP gerencie os recursos MMTEL fornecidos pelo ImsService e os recursos RCS fornecidos pelo aplicativo de mensagens RCS selecionado pelo usuário. Para oferecer suporte ao registro único do IMS, os fabricantes de dispositivos e fornecedores de SoC devem implementar essas APIs para habilitar recursos RCS no aplicativo de mensagens RCS selecionado pelo usuário.

A Figura 1 ilustra a pilha IMS do dispositivo ao usar o modelo de registro único IMS. Todos os aplicativos IMS usam o ImsService padrão do dispositivo para recursos MMTEL e RCS em um único registro IMS. Isso inclui provisionamento, encaminhamento de mensagens SIP e troca de capacidade de usuário RCS.

Arquitetura de modo de registro único

Figura 1. Arquitetura do modelo de registro único

Android 11 e inferior suporta apenas um modelo de registro duplo para fornecer recursos MMTEL e RCS, onde MMTEL é fornecido pelo ImsService do dispositivo e os recursos RCS são implementados por cima e gerenciam sua própria pilha IMS e conexão com a rede da operadora de forma independente.

A Figura 2 ilustra a arquitetura do modelo de registro duplo. Nesse modelo, cada app é responsável por se conectar à rede da operadora e estabelecer um cadastro IMS para funcionalidades MMTEL e RCS. O ImsService do dispositivo implementa MMTEL, usa a conexão de dados IMS do dispositivo com a rede da operadora e opera independentemente de outros aplicativos RCS.

arquitetura de modo de registro duplo

Figura 2. Arquitetura do modelo de registro duplo

APIs de registro único IMS

Os dispositivos pertencentes a operadoras que exigem registro único IMS devem oferecer suporte às APIs de registro único IMS e definir o recurso Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . A Figura 3 mostra as APIs que suportam o registro único do IMS.

Superfícies de API que suportam registro único IMS

Figura 3. Superfícies de API de alto nível que suportam registro único IMS

Os dispositivos Android que suportam registro único IMS como parte da pilha de telefonia AOSP são necessários para suportar todas as APIs AOSP descritas na tabela a seguir.

Área de superfície da API APIs de aplicativos RCS APIs IMS do fornecedor Descrição
Provisionamento RCS Gerente de Provisionamento ImsConfigImplBase Permite que um OEM ou uma operadora forneça um aplicativo para atualizar o status de provisionamento do RCS se a operadora usar um mecanismo proprietário de direitos de operadora. O ImsService também deve suportar o AutoConfigurationServer (ACS) padrão para provisionamento para operadoras que não usam um mecanismo proprietário.
Encaminhamento de mensagens SIP SipDelegateManager SipTransportImplBase Permite que um aplicativo RCS associe primeiro tags de recursos RCS específicos ao dispositivo ImsService e, em seguida, envie e receba mensagens SIP e atualizações de registro IMS associadas a essas tags de recursos RCS.
Notificações ao portador dedicadas Gerenciador de conectividade Resposta de chamada de dados Permite que um aplicativo ouça notificações de QoS em um soquete associado a uma porta local específica.
Autenticação GBA bootstrapAuthenticationRequest GbaServiço Permite que um aplicativo RCS se autentique com a rede e as chaves de acesso usadas para recursos RCS, como transferência de arquivos.
Troca de capacidade do usuário RCS ImsRcsManager RcsCapabilityExchangeImplBase Fornece ao AOSP a capacidade de enviar seus recursos MMTEL e RCS ao fornecedor ImsService para que possam ser publicados sob uma entidade na rede para troca de recursos do usuário RCS. Também permite que outros aplicativos interessados ​​nos recursos RCS de um ou mais contatos consultem a rede em busca dos recursos RCS dos contatos.

Segurança e permissões

O Android 12 introduz as seguintes permissões para garantir acesso seguro à rede da operadora e aos dados do usuário:

A permissão android.permission.PERFORM_IMS_SINGLE_REGISTRATION deve ser definida pelo aplicativo de mensagens com os recursos RCS. Para que esta permissão seja concedida, o seguinte deve ser verdadeiro:

  • O aplicativo deve ser instalado como um aplicativo privilegiado, o que significa que está pré-instalado no dispositivo e tem permissão para acessar permissões privilegiadas
  • O aplicativo deve ser definido como a função SMS padrão do usuário usando RoleManager

Se ambas as condições não forem atendidas, o aplicativo terá acesso negado à permissão android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Isso significa que aplicativos de terceiros não têm permissão para acessar APIs de registro único RCS, pois exigem certificação da operadora no dispositivo.

A permissão android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE quando concedida a um aplicativo que também tem a permissão READ_CONTACTS permite que o aplicativo solicite os recursos RCS de números de telefone usando RcsUceAdapter . Para que esta permissão seja concedida, o seguinte deve ser verdadeiro:

  • O aplicativo deve ser instalado como um aplicativo privilegiado, o que significa que está pré-instalado no dispositivo e tem permissão para acessar permissões privilegiadas.
  • O aplicativo deve ser definido como uma das seguintes funções RoleManager :

    • Aplicativo de mensagens padrão: definido pelo usuário.
    • Aplicativo discador padrão: definido pelo usuário.
    • Aplicativo de contatos padrão: uma função introduzida no Android 12 que permite ao OEM definir um nome de pacote por meio do valor de sobreposição do dispositivo config_systemContacts , que deve corresponder ao aplicativo de contatos do dispositivo. Esse aplicativo recebe então a função de contatos.

Para acessar o IMS APN usando ConnectivityManager para configurar e gerenciar o tráfego de dados, os aplicativos também devem solicitar a permissão android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Exemplos e fonte

O Android fornece um aplicativo no AOSP que implementa um aplicativo de mensagens de teste com suporte básico de mensagens RCS para fins de teste e desenvolvimento. Você pode encontrar o aplicativo em testapps/TestRcsApp . Quando o aplicativo é instalado em um dispositivo, ele pode ser definido como o aplicativo de mensagens padrão do usuário e terá as permissões necessárias para acessar as APIs de registro único do IMS.

O Android também fornece um exemplo de implementação do ImsService para RCS. O código-fonte está em /testapps/ImsTestService .

Implementação

Para obter mais detalhes de implementação, baixe o Registro Único IMS no Android .

Validação

Para validar sua implementação do registro único IMS, faça o seguinte:

  • Certifique-se de que o conjunto de testes CtsTelephonyTestCases CTS seja aprovado.
  • Instale e execute o TestRcsApp para executar casos de teste básicos de registro único durante a integração.
  • Passar na certificação de operadora para casos de teste de registro único IMS.