Android 12, MMTEL ve RCS özelliklerini sağlamak için tek bir kayıt modeli desteğini kullanıma sunar. Bu model, cihazların tüm IMS özelliklerinin cihazın ImsService'i tarafından sağlanan tek bir IMS kaydı aracılığıyla yönetilmesine ve bazı telekom operatörleri tarafından sunulan şartlara uymasına olanak tanır. Birden fazla IMS kaydının tek bir cihazda yönetildiği çift kayıt modeliyle karşılaştırıldığında, tek kayıt operatörün ağındaki trafiği azaltır ve güvenilirliği artırır.
Android 12, bu tek kayıt modelini destekler. Bu modelde, AOSP telefon yığınına ImsService
tarafından sağlanan MMTEL özelliklerini ve kullanıcı tarafından seçilen RCS mesajlaşma uygulaması tarafından sağlanan RCS özelliklerini yönetmesine olanak tanıyan bir dizi API'nin bulunduğu bir mimari kullanılır. IMS tek kaydını desteklemek için cihaz üreticileri ve SoC satıcıları, kullanıcı tarafından seçilen RCS mesajlaşma uygulamasında RCS özelliklerini etkinleştirmek üzere bu API'leri uygulamalıdır.
Şekil 1, IMS tek kaydı modeli kullanılırken cihazın IMS yığınını göstermektedir. Tüm IMS uygulamaları, tek bir IMS kaydı üzerinden MMTEL ve RCS özellikleri için cihazın varsayılan ImsService'ini kullanır. Bu işlemler arasında hazırlama, SIP mesajı yönlendirme ve RCS kullanıcı özelliği değişimi yer alır.
1. şekil. Tek kayıt modeli mimarisi
Android 11 ve önceki sürümlerde MMTEL ve RCS özelliklerini sağlamak için yalnızca çift kayıt modeli desteklenir. Bu modelde MMTEL, cihazın ImsService'i tarafından sağlanır ve RCS özellikleri, üst katmanda uygulanır. Ayrıca kendi IMS yığınını ve operatörün ağına bağlantısını bağımsız olarak yönetir.
Şekil 2'de, çift kayıt modelinin mimarisi gösterilmektedir. Bu modelde her uygulama, operatörün ağına bağlanmaktan ve MMTEL ile RCS özellikleri için bir IMS kaydı oluşturmaktan sorumludur. Cihazın ImsService'i MMTEL'i uygular, operatör ağına bağlanmak için cihazın IMS veri bağlantısını kullanır ve diğer RCS uygulamalarından bağımsız olarak çalışır.
Şekil 2. Çift kayıt modeli mimarisi
IMS tek kayıt API'leri
IMS tek kaydı gerektiren operatörlerde kullanılan cihazlar, IMS tek kayıt API'lerini desteklemeli ve Android özelliğini PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION
olarak tanımlamalıdır.
Şekil 3'te IMS'nin tek kaydını destekleyen API'ler gösterilmektedir.
3.Şekil IMS tek kaydını destekleyen üst düzey API yüzeyleri
AOSP telefon yığını kapsamında IMS tek kaydını destekleyen Android cihazların, aşağıdaki tabloda açıklanan tüm AOSP API'lerini desteklemesi gerekir.
API Yüzey Alanı (API Surface Area) | RCS uygulaması API'leri | Tedarikçi IMS API'leri | Açıklama |
---|---|---|---|
RCS temel hazırlığı | ProvisioningManager | ImsConfigImplBase | Bir operatörün tescilli bir operatör yetkilendirme mekanizması kullanması durumunda, bir OEM'nin veya operatörün RCS hazırlama durumunu güncellemek için bir uygulama sağlamasına olanak tanır. ImsService, tescilli bir mekanizma kullanmayan operatörler için sağlama amacıyla standart AutoConfigurationServer'ı (ACS) da desteklemelidir. |
SIP mesajı yönlendirme | SipDelegateManager | SipTransportImplBase | Bir RCS uygulamasının önce belirli RCS özelliği etiketlerini cihazla ImsService ilişkilendirmesine, ardından bu RCS özelliği etiketleriyle ilişkili SIP mesajlarını ve IMS kaydı güncellemelerini göndermesine ve almasına olanak tanır. |
Ayrılmış taşıyıcı bildirimleri | ConnectivityManager | DataCallResponse | Uygulamaların, belirli bir yerel bağlantı noktasıyla ilişkili bir soketteki QoS bildirimlerini dinlemesine olanak tanır. |
GBA kimlik doğrulaması | bootstrapAuthenticationRequest | GbaService | Bir RCS uygulamasının ağda kimliğini doğrulamasını ve dosya aktarımı gibi RCS özelliklerinde kullanılan anahtarlara erişmesini sağlar. |
RCS kullanıcı özelliği değişimi | ImsRcsManager | RcsCapabilityExchangeImplBase | AOSP'ye, MMTEL ve RCS özelliklerini satıcı ImsService'e gönderme olanağı tanır. Böylece bu özellikler, RCS kullanıcı özelliği değişimi için ağda tek bir tüzel kişi altında yayınlanabilir. Ayrıca, bir veya daha fazla kişinin RCS özellikleriyle ilgilenen diğer uygulamaların, kişilerin RCS özellikleriyle ilgili olarak ağa sorgu göndermesine de olanak tanır. |
Güvenlik ve izinler
Android 12, operatörün ağına ve kullanıcının verilerine güvenli erişimi sağlamak için aşağıdaki izinleri sunar:
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
izni, RCS özelliklerini içeren mesajlaşma uygulaması tarafından tanımlanmalıdır. Bu iznin verilebilmesi için aşağıdakilerin doğru olması gerekir:
- Uygulama, ayrıcalıklı uygulama olarak yüklenmelidir. Yani cihaza önceden yüklenmiş olmalı ve ayrıcalıklı izinlere erişmesine izin verilmelidir.
- Uygulama,
RoleManager
kullanılarak kullanıcının varsayılan SMS rolü olarak ayarlanmalıdır.
Bu koşulların ikisi de karşılanmazsa uygulamanın android.permission.PERFORM_IMS_SINGLE_REGISTRATION
iznine erişimi reddedilir. Bu, üçüncü taraf uygulamaların cihazda operatör sertifikası gerektiğinden RCS tek kaydı API'lerine erişmesine izin verilmediği anlamına gelir.
READ_CONTACTS iznine de sahip olan bir uygulamaya verildiğinde android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
izni, uygulamanın RcsUceAdapter
kullanarak telefon numaralarının RCS özelliklerini istemesine olanak tanır.
Bu iznin verilebilmesi için aşağıdakilerin doğru olması gerekir:
- Uygulama, ayrıcalıklı uygulama olarak yüklenmelidir. Yani cihaza önceden yüklenmiş olmalı ve ayrıcalıklı izinlere erişmesine izin verilmelidir.
Uygulama aşağıdaki rollerden biri olarak tanımlanmalıdır:
RoleManager
roller:- Varsayılan mesajlaşma uygulaması: Kullanıcı tarafından ayarlanır.
- Varsayılan çevirici uygulaması: Kullanıcı tarafından ayarlanır.
- Varsayılan kişiler uygulaması: Android 12'de kullanıma sunulan bir roldür. Bu rol, OEM'lerin
config_systemContacts
cihaz yerleşimi değeri aracılığıyla bir paket adı tanımlamasına olanak tanır. Bu paket adı, cihazın kişiler uygulamasıyla eşleşmelidir. Ardından, bu uygulamaya kişiler rolü verilir.
Veri trafiğini ayarlamak ve yönetmek için ConnectivityManager
kullanarak IMS APN'ye erişmek isteyen uygulamaların android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
iznini de istemesi gerekir.
Örnekler ve kaynak
Android, test ve geliştirme amacıyla temel RCS mesajlaşma desteği sunan bir test mesajlaşma uygulaması içeren bir uygulamayı AOSP'de sağlar. Uygulamayı testapps/TestRcsApp
adresinde bulabilirsiniz.
Uygulama bir cihaza yüklendiğinde kullanıcının varsayılan mesajlaşma uygulaması olarak ayarlanabilir ve IMS tek kaydı API'lerine erişmek için gereken izinlere sahip olur.
Android, RCS için ImsService'in örnek bir uygulamasını da sağlar. Kaynak kodu /testapps/ImsTestService
adresinde bulunuyor.
Uygulama
Uygulama hakkında daha fazla bilgi için IMS Single Registration in Android (Android'de IMS Tek Kaydı) başlıklı dokümanı indirin.
Doğrulama
IMS tek kaydını uygulamanızı doğrulamak için aşağıdakileri yapın:
- CtsTelephonyTestCases CTS test paketinin başarılı olduğundan emin olun.
- Entegrasyon sırasında temel tek kayıtlı test senaryolarını çalıştırmak için TestRcsApp'i yükleyip çalıştırın.
- IMS tek kayıt test senaryoları için operatör sertifikasını geçin.