Android 12, MMTEL ve RCS özelliklerini sağlamak için tek bir kayıt modeli desteği sunar. Bu model, cihazların tüm IMS özelliklerinin cihazın ImsService 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 modeline kıyasla, tek kayıt, operatör ağındaki trafiği azaltır ve güvenilirliği artırır.
Android 12, AOSP telefon yığını tarafından hem ImsService
tarafından sağlanan MMTEL özelliklerini hem de kullanıcı tarafından seçilen RCS mesajlaşma uygulaması tarafından sağlanan RCS özelliklerini yönetmesine olanak tanıyan bir API grubu içeren bir mimari aracılığıyla bu tek kayıt modelini destekler. IMS tek kaydını desteklemek için cihaz üreticileri ve SoC tedarikçileri, kullanıcı tarafından seçilen RCS mesajlaşma uygulamasında RCS özelliklerini etkinleştirmek için bu API'leri uygulamalıdır.
Şekil 1'de, IMS tek kayıt modeli kullanılırken cihazın IMS yığını gösterilmektedir. Tüm IMS uygulamaları, tek bir IMS kaydı üzerinden MMTEL ve RCS özellikleri için cihazın varsayılan ImsService'ini kullanır. Bu hizmetler arasında temel hazırlama, SIP mesajı yönlendirme ve RCS kullanıcı özelliği değişimi yer alır.
Şekil 1. Tek kayıt modeli mimarisi
Android 11 ve önceki sürümler, MMTEL ve RCS özelliklerini sağlamak için yalnızca çift kayıt modelini destekler. MMTEL, cihazın ImsService ve RCS özellikleri tarafından sağlanır ve operatörün IMS yığını ile bağlantısını bağımsız olarak yönetir.
Şekil 2'de ikili kayıt modelinin mimarisi gösterilmektedir. Bu modelde her uygulama, operatörün ağına bağlanmaktan ve MMTEL ile RCS özellikleri için IMS kaydı oluşturmaktan sorumludur. Cihazın ImsService, MMTEL'yi uygular, cihazın operatör ağına 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örlerin kapsamına giren cihazlar, IMS tek kayıt API'lerini desteklemeli ve Android özelliğini PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION
tanımlamalıdır.
Şekil 3'te, IMS tek kayıt işlemini destekleyen API'ler gösterilmektedir.
Şekil 3. IMS tek kaydını destekleyen üst düzey API yüzeyleri
AOSP telefon yığınının bir parçası olarak IMS tek kaydını destekleyen Android cihazların, aşağıdaki tabloda açıklanan tüm AOSP API'lerini desteklemesi gerekir.
API Yüze Alanı | RCS uygulaması API'leri | Tedarikçi firma IMS API'leri | Açıklama |
---|---|---|---|
RCS temel hazırlığı | ProvisioningManager | ImsConfigImplBase | OEM veya operatör, özel bir operatör uygunluk mekanizması kullanıyorsa RCS temel hazırlığı durumunu güncellemek için bir uygulama sağlayabilir. ImsService, özel bir mekanizma kullanmayan operatörlerin temel hazırlığı için standart AutoConfigurationServer'ı (ACS) da desteklemelidir. |
SIP mesaj yönlendirme | SipDelegateManager | SipTransportImplBase | Bir RCS uygulamasının önce belirli RCS özellik etiketlerini ImsService cihazıyla ilişkilendirmesine, ardından bu RCS özellik etiketleriyle ilişkili SIP mesajları ve IMS kayıt güncellemeleri gönderip almasına olanak tanır. |
Özel taşıyıcı bildirimleri | ConnectivityManager | DataCallResponse | Uygulamaların, belirli bir yerel bağlantı noktasıyla ilişkili bir sokette QoS bildirimlerini dinlemesine olanak tanır. |
GBA kimlik doğrulaması | bootstrapAuthenticationRequest | GbaService | RCS uygulamasının ağ ile kimlik doğrulaması yapmasına ve dosya aktarımı gibi RCS özellikleri için kullanılan anahtarlara erişmesine olanak tanır. |
RCS kullanıcı özelliği değişimi | ImsRcsManager | RcsCapabilityExchangeImplBase | AOSP'ye, MMTEL ve RCS özelliklerini tedarikçi ImsService'e gönderme olanağı sağlar. Böylece, RCS kullanıcı özelliği değişimi için ağda tek bir varlık altında yayınlanabilirler. Ayrıca, bir veya daha fazla kişinin RCS özelliklerine ilgi duyan diğer uygulamaların, kişilerin RCS özellikleri için ağı sorgulamasına da olanak tanır. |
Güvenlik ve izinler
Android 12, operatörün ağına ve kullanıcı verilerine güvenli erişim sağlamak için aşağıdaki izinleri kullanıma sunar:
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
izni, RCS özelliklerine sahip mesajlaşma uygulaması tarafından tanımlanmalıdır. Bu iznin verilmesi için aşağıdakiler geçerli olmalıdır:
- Uygulama, ayrıcalıklı bir uygulama olarak yüklenmiş olmalıdır. Yani uygulama, cihaza önceden yüklenmiş olmalı ve ayrıcalıklı izinlere erişmesine izin verilmiş olmalıdır.
- Uygulama,
RoleManager
kullanılarak kullanıcının varsayılan SMS rolü olarak ayarlanmalıdır.
Bu koşulların ikisi de karşılanmıyorsa uygulamanın android.permission.PERFORM_IMS_SINGLE_REGISTRATION
iznine erişimi reddedilir. Bu durumda, cihazda operatör sertifikası zorunlu olduğundan üçüncü taraf uygulamalarının RCS tek kayıt API'lerine erişmesine izin verilmez.
READ_CONTACTS iznine de sahip bir uygulamaya verilen 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ğıdaki şartların karşılanması gerekir:
- Uygulama, ayrıcalıklı bir uygulama olarak yüklenmiş olmalıdır. Yani uygulama, cihaza önceden yüklenmiş olmalı ve ayrıcalıklı izinlere erişmesine izin verilmiş olmalıdır.
Uygulama aşağıdaki
RoleManager
rollerinden biri olarak tanımlanmalıdır:- Varsayılan mesajlaşma uygulaması: Kullanıcı tarafından ayarlanır.
- Varsayılan numara çevirici uygulaması: Kullanıcı tarafından ayarlanır.
- Varsayılan kişiler uygulaması: Android 12'de kullanıma sunulan ve OEM'in
cihaz yer paylaşımı değeri
config_systemContacts
aracılığıyla bir paket adı tanımlamasına olanak tanıyan bir rol. Bu rol, cihazın kişiler uygulamasına karşılık gelmelidir. Daha sonra 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
iznine de ihtiyacı vardır.
Örnekler ve kaynak
Android, test ve geliştirme amacıyla temel RCS mesajlaşma desteğine sahip bir test mesajlaşma uygulaması uygulayan AOSP'de bir uygulama 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 kayıt API'lerine erişmek için gereken izinlere sahip olur.
Android, RCS için ImsService'in örnek bir uygulamasını da sağlar. Kaynak kod /testapps/ImsTestService
adresindedir.
Uygulama
Uygulamayla ilgili daha fazla bilgi için Android'de IMS Tek Kayıt başlıklı makaleyi indirin.
Doğrulama
IMS tek kayıt 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ıt test senaryolarını çalıştırmak için TestRcsApp'i yükleyip çalıştırın.
- IMS tek kayıt test durumları için operatör sertifikasyonunu geçme.