Android 12'den itibaren Android, TS.43 Service Entitlement Configuration'ı destekler. Bu, GSMA spesifikasyonudur ve hizmetlerin etkinleştirilmesi için hak doğrulama adımını tanımlar. Bu hizmetler arasında Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), eSIM eşlik eden cihazların (istekte bulunan cihazla ilişkili) cihaz üzerinde hizmet etkinleştirme (ODSA) ve veri planı bilgileri yer alır.
Android, bu spesifikasyonu desteklemek için bir IMS hizmeti yetkilendirme özelliği sunar. Bu özellik, bir servis sağlayıcının IP Multimedia Subsystem (IMS) ağ hizmetlerinin durumu hakkında mobil cihazları bilgilendirmesine olanak tanır. Bu hak özelliği, kullanıcılardan herhangi bir kimlik bilgisi girmelerini istemeden EAP-AKA kimlik doğrulaması kullanarak cihazın IMS hak durumu için GSMA TS.43 spesifikasyonunda tanımlandığı şekilde operatör hak sunucusunu sorgulamasına olanak tanır.
IMS yetkilendirme sunucularına sahip operatörler, hizmet sağlama için IMS hizmeti yetkilendirme özelliğini kullanabilir. Bu özelliği kullanmanın avantajları şunlardır:
- Bu hak özelliği birden fazla ürün ve OEM'de kullanılabildiğinden operatörlerin test ve sertifika maliyetlerini azaltır.
- Standart bir Android uygulaması aracılığıyla cihaz üreticilerinin geliştirme maliyetini azaltır.
- Özellik açık kaynaklı olduğundan cihaz üreticilerinin ve operatörlerin bu özelliğe kod katkısında bulunmasına olanak tanır.
- Kuzey Amerika'daki operatörler için acil durum adresi yönetimi sağlar.
Mimari
Aşağıdaki şekilde, IMS hizmeti yetkilendirme özelliğinin mimarisi ve davranışı açıklanmaktadır.
1. şekil. TS.43 yetkilendirme özelliği mimarisi
Şekil 1'de gösterildiği gibi, IMS hizmeti yetkilendirme özelliğinin mimarisi aşağıdaki bileşenleri içerir:
service_entitlement
TS.43 Service API static library: Bu kitaplık, TS.43 spesifikasyonunu uygular, bir operatörün yetkilendirme sunucusuyla etkileşime girer ve her TS.43 kullanım alanı için uygulamaya yönelik API'ler sunar.ImsServiceEntitlement
istemci uygulaması: Bu uygulama, TS.43 Service API'yi kullanır. Uygulama, kullanıcıların hizmetleri etkinleştirmesi için operatörün hizmet portalını oluşturmaya yönelik web görünümleri de dahil olmak üzere kullanıcı arayüzü öğelerini uygular ve kullanıcı deneyimini baştan sona yönetmek için diğer Android bileşenleriyle etkileşimde bulunur.Android'i bir operatörün TS.43 tabanlı yetkilendirme sunucusuyla çalışacak şekilde yapılandırma hakkında daha fazla bilgi için ImsServiceEntitlement uygulaması başlıklı makaleyi inceleyin.
Şekil 1'deki numaralı satırlar, IMS hizmeti yetkilendirme özelliğinin bileşenlerinin birbiriyle nasıl iletişim kurduğunu gösterir. Aşağıda, adımların her biri etiketlenmiş şekilde açıklanmaktadır:
(1) İstemci uygulaması, bir hizmet yetkilendirme isteği başlatmak için TS.43 hizmet API'sini çağırır.
(2) TS.43 hizmet API'si, EAP-AKA sorgusu başlatmak için operatörün yetkilendirme sunucusuna bir HTTP isteği gönderir.
(3) TS.43 hizmet API'si, EAP-AKA sorgu-yanıtını tamamlamak için telefoni API'lerini (ör. getIccAuthentication
) çağırır.
(4) TS.43 hizmeti, EAP-AKA yanıtı doğrulandıktan sonra operatörün hak sunucusundan hizmet hakkı veya yapılandırma verileri alır.
(5) TS.43 hizmeti, hizmet yetkisini veya yapılandırma verilerini istemci uygulamasına döndürür.
(6) İstemci uygulaması verileri işler ve isteğe bağlı olarak kullanıcının hizmet etkinleştirme işlemini tamamlaması için operatörün hizmet portalını oluşturur.
Entegrasyon
Bu bölümde, service_entitlement
kitaplığının ve ImsServiceEntitlement
uygulamasının entegrasyon süreci açıklanmaktadır.
Android 12 API bağımlılığı olmadığından service_entitlement
kitaplığı ve ImsServiceEntitlement
uygulaması, eski Android platformlarına geri taşınabilir.
service_entitlement kitaplığı
service_entitlement
kitaplığı ImsServiceEntitlement app
'ye statik olarak bağlandığından, kitaplığın ImsServiceEntitlement
uygulamasına entegre edilmesi için ek bir adım gerekmez.
service_entitlement
kitaplığı, veri planı ve ODSA gibi TS.43 kullanım alanları için kendi uygulamalarınıza entegre edilebilir. Kitaplık, EAP-AKA protokolüne dayalı TS.43 dışı yetkilendirme kullanım alanları için bir uygulamaya da entegre edilebilir.
Bu tür kullanım alanları için kullanılacak API'ler aşağıda açıklanmıştır:
- Kitaplıkta uygulanan TS.43 HTTP protokolünü kullanan TS.43 uygulaması:
ServiceEntitlement
sınıfındaki API'leri kullanın. - Kitaplıkta uygulanan EAP-AKA protokolünü kullanan TS.43 dışı uygulama:
EapAkaHelper
sınıfında kullanıma sunulan API'leri kullanın.
ImsServiceEntitlement uygulaması
Android, varsayılan olarak ürün bölümüne yüklenen ImsServiceEntitlement
uygulamasını ayrıcalıklı uygulama olarak içerir. Uygulamayı yapılandırmak için aşağıdaki CarrierConfig anahtarlarını kullanın:
Anahtar | Değer |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
Mobil operatörün yararlanma hakkı sunucusu URL'si. https:// öneki eklenmelidir. |
KEY_FCM_SENDER_ID_STRING |
Operatörün FCM gönderen kimliği. Kargo şirketi FCM'yi zorunlu kılmıyorsa bu değeri ayarlamayın. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Operatör, kullanıcıların VoWiFi hizmetine kaydolması için bir web portalı kullanıcı arayüzü gerektiriyorsa true olarak ayarlayın. Örneğin, hüküm ve koşulları kabul etme veya acil durum adresi girme.Bu genellikle Kuzey Amerika'daki operatörler tarafından zorunlu tutulur. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL , true ise com.android.imsserviceentitlement/.WfcActivationActivity olarak ayarlayın. |
KEY_IMS_PROVISIONING_BOOL |
Kargo şirketi, IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin arka planda ağda sağlanmasını gerektiriyorsa true olarak ayarlayın.Bu, belirli Avrupalı operatörler tarafından zorunlu tutulur. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
KEY_IMS_PROVISIONING_BOOL değeri true ise true olarak ayarlayın. |
Bir operatörün hak sunucusuna ve web portalına yönelik HTTP trafiği, varsayılan ağ (ör. varsayılan mobil veri veya kablosuz ağ) üzerinden gerçekleşir.
GMS iş ortakları: Android 12'deki TS.43 yetkilendirme uygulaması, TS.43 v5.0 spesifikasyonuna uygun olarak aşağıdaki operatörleri destekler:
- ABD: CSpire, US Cellular, Cellcom
- Fransa: Orange
IMS sağlama için ek sistem kullanıcı arayüzü
Bu bölümde, OEM'lerin IMS hizmeti sağlama ile ilgili ek sistem kullanıcı arayüzü öğelerini (ör. VoWiFi sağlandığında bildirim gösterme) nasıl destekleyebileceği açıklanmaktadır.
ImsServiceEntitlement
uygulaması, ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
sistem API'sini kullanarak VoWiFi sağlama durumunu platforma ayarlar. Bu API, VoLTE (KEY_VOLTE_PROVISIONING_STATUS
ile) ve SMSoIP (KEY_SMS_OVER_IP_ENABLED
ile) için de kullanılır.
Sistem kullanıcı arayüzü daha sonra getProvisioningIntValue
kullanarak veya registerProvisioningChangedCallback
aracılığıyla sağlama durumu değişikliğini izlemek için geri çağırma kaydettirerek sağlama durumunu okuyabilir.
Test için yapılandırmaları geçersiz kılma
Test amacıyla ImsServiceEntitlement
uygulama davranışını geçici olarak değiştirmek için aşağıdaki prosedürleri kullanın. Operatör yapılandırmalarını geçersiz kılma hakkında ayrıntılı bilgi için Operatör yapılandırmalarını geçersiz kılma başlıklı makaleyi inceleyin.
VoWiFi kayıt işlemini atlama
VoWiFi kayıt sürecini atlamak ve VoWiFi'nin doğrudan açılmasına izin vermek için operatör yapılandırmasını geçersiz kılın
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
ve değerini boş dize olarak ayarlayın.
IMS temel hazırlığını atlama
IMS hizmetlerinin kullanılabilir hale getirilmesi ve kullanıcıların bu hizmetleri ağ hazırlığı olmadan etkinleştirmesine izin verilmesi için IMS hazırlığını atlamak üzere operatör yapılandırmasını KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
geçersiz kılın ve değerini false
olarak ayarlayın.
Yararlanma hakkı sunucusu URL'sini değiştirme
Hak sunucusu URL'sini değiştirmek için operatör yapılandırmasını geçersiz kılın
KEY_ENTITLEMENT_SERVER_URL_STRING
ve değerini beklenen URL dizesi olarak ayarlayın. https://
önekini eklemeniz gerekir.
Operatör yapılandırmalarını geçersiz kılma
Android 11'den itibaren operatör yapılandırmasını geçersiz kılma komutları yerleşik olarak bulunur ve kök ayrıcalıklarıyla kullanılabilir.
Aşağıdaki komut, operatör yapılandırma anahtarını
carrier_volte_provisioning_required_bool
nasıl geçersiz kılacağınız ve değerini false
olarak nasıl ayarlayacağınızla ilgili bir örnektir. Birden fazla yapılandırmayı geçersiz kılmak için komutu birden çok kez çalıştırabilirsiniz.
adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
Tüm geçersiz kılmaları temizlemek için aşağıdaki komutu kullanın:
adb shell cmd phone cc clear-values
Daha fazla bilgi edinmek için aşağıdaki komutu çalıştırın:
adb shell cmd phone cc