Android 12'den itibaren Android, TS.43 Hizmet Kullanım Hakkı Yapılandırması'nı destekler. Bu GSMA spesifikasyonu, kablosuz ağ üzerinden ses (VoWiFi), LTE üzerinden ses (VoLTE), IP üzerinden SMS (SMSoIP), eSIM tamamlayıcı cihazların (istem cihazıyla ilişkili) cihaz üzerinde hizmet etkinleştirmesi (ODSA) ve veri planı bilgilerini içeren hizmetlerin etkinleştirilmesi için uygunluk doğrulama adımını tanımlar.
Android, bu spesifikasyonu desteklemek için servis sağlayıcının mobil cihazları IP Multimedya Alt Sistemi (IMS) ağ hizmetlerinin durumu hakkında bilgilendirmesine olanak tanıyan bir IMS hizmet hakkı özelliği sağlar. Bu yararlanma hakkı özelliği, cihazın EAP-AKA kimlik doğrulamasını kullanarak IMS yararlanma hakkı durumu için GSMA TS.43 spesifikasyonunda tanımlandığı şekilde operatör yetkilendirme sunucusunu sorgulamasına olanak tanır. Kullanıcıların kimlik bilgilerini manuel olarak girmesini gerektirmez.
IMS yararlanma hakkı sunucularına sahip operatörler, hizmet temel hazırlığı için IMS hizmetten yararlanma hakkı özelliğini kullanabilir. Özelliği kullanmak şu avantajları sağlar:
- Bu yararlanma hakkı özelliği birden fazla ürün ve OEM arasında kullanılabildiğinden operatörlerin test ve sertifikasyon maliyetlerini azaltır.
- Standart bir Android uygulaması aracılığıyla cihaz üreticilerinin geliştirme maliyetini azaltır.
- Bu özellik açık kaynak olduğundan cihaz üreticilerinin ve operatörlerin özellik için 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 hizmetine erişim hakkı özelliğinin mimarisi ve davranışı açıklanmaktadır.
Şekil 1. TS.43 hak özelliği mimarisi
Şekil 1'de gösterildiği gibi IMS hizmetten yararlanma hakkı özelliğinin mimarisi aşağıdaki bileşenleri içerir:
service_entitlement
TS.43 Hizmet API'si statik kitaplığı: Bu kitaplık, TS.43 spesifikasyonunu uygular, operatörün uygunluk sunucusuyla etkileşim kurar ve her TS.43 kullanım alanı için uygulamaya yönelik API'ler sunar.ImsServiceEntitlement
istemci uygulaması: Bu uygulama, TS.43 Hizmeti API'sini 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ü öğeleri uygular ve kullanıcı deneyimini uçtan uca yönetmek için diğer Android bileşenleriyle etkileşime girer.Android'i bir operatörün TS.43 tabanlı yararlanma hakkı sunucusuyla çalışacak şekilde yapılandırma hakkında daha fazla bilgi için ImsServiceEntitlement uygulaması bölümüne bakın.
Şekil 1'deki numaralı çizgiler, IMS hizmet uygunluk özelliğinin bileşenlerinin birbirleriyle nasıl iletişim kurduğunu gösterir. Aşağıda, adımların her biri etiketli olarak açıklanmaktadır:
(1) İstemci uygulaması, bir hizmetten yararlanma hakkı isteği başlatmak için TS.43 hizmet API'sini çağırır.
(2) TS.43 hizmet API'si, EAP-AKA sorgulaması başlatmak için operatörün yararlanma hakkı sunucusuna bir HTTP isteği gönderir.
(3) TS.43 hizmet API'si, EAP-AKA meydan okuma yanıtını tamamlamak için telefon API'lerini (örneğin, getIccAuthentication
) çağırır.
(4) TS.43 hizmeti, EAP-AKA yanıtı doğrulandıktan sonra operatörün hak sunucusu tarafından hizmet hakkı veya yapılandırma verileri alır.
(5) TS.43 hizmeti, istemci uygulamasına hizmet hakkı veya yapılandırma verilerini döndürür.
(6) İstemci uygulaması verileri işler ve kullanıcının hizmet etkinleştirme işlemini tamamlaması için isteğe bağlı olarak operatörün hizmet portalını oluşturur.
Entegrasyon
Bu bölümde, service_entitlement
kitaplığı ile ImsServiceEntitlement
uygulamasını entegre etme işlemi açıklanmaktadır.
Android 12 API bağımlılığı olmadığından service_entitlement
kitaplığı ve ImsServiceEntitlement
uygulaması eski Android platformlarına geri bağlanabilir.
service_entitlement kitaplığı
service_entitlement
kitaplığı ImsServiceEntitlement app
'a statik olarak bağlı olduğundan, kitaplığı ImsServiceEntitlement
uygulamasına entegre etmek için ek adımlar gerekmez.
service_entitlement
kitaplığı, veri planı ve ODSA gibi TS.43 kullanım alanları için kendi uygulamalarınızla entegre edilebilir. Kitaplık, EAP-AKA protokolüne dayalı TS.43 olmayan yetkilendirme kullanım alanları için bir uygulamaya da entegre edilebilir.
Aşağıda, bu tür kullanım alanları için kullanılacak API'ler açıklanmaktadır:
- Kitaplıkta uygulanmış 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 olmayan uygulama:
EapAkaHelper
sınıfında sunulan API'leri kullanın
ImsServiceEntitlement uygulaması
Android, varsayılan olarak ImsServiceEntitlement
uygulamasını ürün bölümüne ayrıcalıklı bir uygulama olarak yükler. Uygulamayı yapılandırmak için aşağıdaki CarrierConfig anahtarlarını kullanın:
Anahtar | Değer |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
Operatörün yararlanma hakkı sunucusu URL'si. https:// ön eki eklenmelidir. |
KEY_FCM_SENDER_ID_STRING |
Operatörün FCM gönderen kimliği. Operatör tarafından FCM gerekli değilse bu değeri ayarlamayınız. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Operatör, kullanıcıların VoWiFi hizmetine kaydolması için web portalı kullanıcı arayüzü gerektiriyorsa true olarak ayarlayın. Örneğin, şartlar ve koşulları kabul etmek
veya acil durum adresi girmek.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 |
Operatör, arka planda IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin ağda temel hazırlığı yapılmasını gerektiriyorsa true olarak ayarlayın.Bu, belirli Avrupalı taşıyıcılar tarafından zorunlu tutulmaktadır. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
KEY_IMS_PROVISIONING_BOOL true ise true olarak ayarlayın. |
Bir operatörün hak sunucusu ve web portalına giden HTTP trafiği, varsayılan ağ (ör. varsayılan mobil veri veya kablosuz ağ) üzerinden gider.
GMS iş ortakları: Aşağıdaki operatörler, TS.43 v5.0 spesifikasyonuna uygun olarak Android 12'de TS.43'ten yararlanma hakkı uygulaması tarafından desteklenmektedir:
- ABD: CSpire, US Cellular, Cellcom
- Fransa: Orange
IMS temel hazırlığı için ek sistem kullanıcı arayüzü
Bu bölümde, OEM'lerin IMS hizmet sağlamayla ilgili ek sistem kullanıcı arayüzü öğelerini (ör. VoWiFi için temel hazırlığı yaparken bildirim gösterme) nasıl destekleyebileceği açıklanmaktadır.
ImsServiceEntitlement
uygulaması, ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
system API'sini kullanarak VoWiFi temel hazırlık 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.
Daha sonra sistem kullanıcı arayüzü, temel hazırlık durumu değişikliğini registerProvisioningChangedCallback
üzerinden izlemek için getProvisioningIntValue
kullanarak veya bir geri çağırma kaydederek temel hazırlık durumunu okuyabilir.
Test için yapılandırmaları geçersiz kıl
Test amacıyla ImsServiceEntitlement
uygulama davranışını geçici olarak değiştirmek için aşağıdaki prosedürleri uygulayın. Operatör yapılandırmalarını geçersiz kılmayla ilgili ayrıntılar için Operatör yapılandırmalarını geçersiz kılma bölümüne bakın.
VoWiFi kayıt işlemini atla
VoWiFi kayıt sürecini atlayarak VoWiFi'nin doğrudan etkinleştirilmesine izin vermek için operatör yapılandırmasını KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
geçersiz kılın ve değerini boş dize olarak ayarlayın.
IMS temel hazırlığını atla
IMS temel hazırlığını atlamak, IMS hizmetlerini kullanıma sunmak ve kullanıcıların ağ temel hazırlığı yapmadan bu hizmetleri etkinleştirmesine izin vermek için 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ı KEY_ENTITLEMENT_SERVER_URL_STRING
geçersiz kılın ve değerini beklenen URL dizesi olarak ayarlayın. https://
ön ekini eklemeniz gerekir.
Operatör yapılandırmalarını geçersiz kılma
Android 11'den itibaren operatör yapılandırma geçersiz kılma komutları yerleşik olarak bulunur ve root ayrıcalıklarıyla kullanılabilir.
Aşağıdaki komut, carrier_volte_provisioning_required_bool
operatör yapılandırma anahtarının nasıl geçersiz kılınacağını ve değerinin false
olarak nasıl ayarlanacağını gösteren 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ılma işlemlerini 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