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. Tek kayıt, birden fazla IMS kaydının tek bir cihazda yönetildiği ikili kayıt modeline kıyasla operatörün 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. Bu modelde MMTEL, cihazın ImsService tarafından sağlanır ve RCS özellikleri bunun üzerine uygulanır. RCS özellikleri kendi IMS yığınını ve operatörün ağına olan 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 kayıt işlemini destekleyen Android cihazların, aşağıdaki tabloda açıklanan tüm AOSP API'lerini desteklemesi gerekir.
API Yüze Alanı | RCS uygulama 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örler için temel hazırlama işleminde 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, cihazda operatör sertifikası gerektirdikleri için üçüncü taraf uygulamalarının RCS tek kayıt API'lerine erişmesine izin verilmediği anlamına gelir.
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 verilmesi için aşağıdaki koşulları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 çevirici uygulaması: Kullanıcı tarafından ayarlanır.
- Varsayılan kişiler uygulaması: Android 12'de kullanıma sunulan ve OEM'nin cihaz yer paylaşımı değeri
config_systemContacts
aracılığıyla bir paket adı tanımlamasına olanak tanıyan bir roldür. Bu değer, cihazın kişiler uygulamasına karşılık gelmelidir. 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
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 geçtiğinden 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.