Android 12'den itibaren Android, Wi-Fi Üzerinden Ses (VoWiFi), LTE Üzerinden Ses (VoLTE) dahil olmak üzere hizmetlerin etkinleştirilmesi için yetki doğrulama adımını tanımlayan bir GSMA özelliği olan TS.43 Hizmet Yetkilendirme Yapılandırması desteği içerir. , IP üzerinden SMS (SMSoIP), eSIM yardımcı cihazlarının (istekte bulunan cihazla ilişkili) Cihazda Servis Aktivasyonu (ODSA) ve veri planı bilgileri.
Bu belirtimi desteklemek için Android, bir hizmet sağlayıcının mobil cihazları IP Multimedya Alt Sistemi (IMS) ağ hizmetlerinin durumu hakkında bilgilendirmesine olanak tanıyan bir IMS hizmeti yetkilendirme özelliği sağlar. Bu yetkilendirme özelliği, cihazın, kullanıcıların herhangi bir kimlik bilgilerini manuel olarak girmesine gerek kalmadan EAP-AKA kimlik doğrulamasını kullanarak IMS yetkilendirme durumu için GSMA TS.43 spesifikasyonu tarafından tanımlandığı gibi taşıyıcı yetkilendirme sunucusunu sorgulamasına olanak tanır.
IMS yetkilendirme sunucularına sahip taşıyıcılar, hizmet sağlama için IMS hizmet yetkilendirme özelliğini kullanabilir. Özelliğin benimsenmesi aşağıdaki avantajları sağlar:
- Bu yetkilendirme özelliği birden fazla ürün ve OEM'de kullanılabildiğinden, taşıyıcılar için test ve sertifika maliyetlerini azaltır.
- Standart bir Android uygulaması aracılığıyla cihaz üreticileri için geliştirme yükünü azaltır.
- Özellik açık kaynak olduğu için cihaz üreticilerinin ve operatörlerin özellik için kod katkısına izin verir.
- Kuzey Amerika taşıyıcıları için acil adres yönetimi sağlar.
Mimari
Aşağıdaki şekil, IMS hizmeti yetkilendirme özelliğinin mimarisini ve davranışını açıklar.
Şekil 1. TS.43 yetkilendirme özelliği mimarisi
Şekil 1'de gösterildiği gibi, IMS hizmet yetkilendirme özelliğinin mimarisi aşağıdaki bileşenleri içerir:
-
service_entitlement
TS.43 Service API statik kitaplığı : Bu kitaplık, TS.43 belirtimini uygular, bir taşıyıcının yetkilendirme sunucusuyla etkileşime girer ve her TS.43 kullanım durumu için uygulamaya yönelik API'leri kullanıma sunar. ImsServiceEntitlement
istemci uygulaması: Bu uygulama, TS.43 Hizmet API'sini kullanır. Uygulama, kullanıcıların hizmetleri etkinleştirmesi için operatörün hizmet portalını oluşturmak için web görünümleri dahil olmak üzere UI öğelerini uygular ve kullanıcı deneyimini uçtan uca yönetmek için diğer Android bileşenleriyle etkileşime girer.Android'in bir operatörün TS.43 tabanlı yetkilendirme sunucusuyla çalışacak şekilde nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. ImsServiceEntitlement uygulaması .
Şekil 1'deki numaralı satırlar, IMS hizmet yetkilendirme özelliğinin bileşenlerinin birbirleriyle nasıl iletişim kurduğunu gösterir. Aşağıda, adımlardan her biri etiketlendiği ş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, bir EAP-AKA sorgulamasını başlatmak için taşıyıcının yetkilendirme sunucusuna bir HTTP isteği gönderir.
(3) TS.43 hizmet API'si, EAP-AKA sorgulama-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 taşıyıcının yetkilendirme sunucusundan hizmet yetkisi veya yapılandırma verilerini 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ştirmesini tamamlaması için taşıyıcının hizmet portalını işler.
Entegrasyon
Bu bölüm, service_entitlement
kitaplığını ve ImsServiceEntitlement
uygulamasını tümleştirme sürecini açıklar.
Android 12 API bağımlılığı olmadığından service_entitlement
kitaplığı ve ImsServiceEntitlement
uygulaması daha eski Android platformlarına geri aktarılabilir.
service_yetkilendirme kitaplığı
service_entitlement
kitaplığı ImsServiceEntitlement uygulamasına statik olarak bağlı olduğundan, kitaplığı ImsServiceEntitlement app
tümleştirmek için ek adımlar ImsServiceEntitlement
.
service_entitlement
kitaplığı, veri planı ve ODSA gibi TS.43 kullanım durumları için kendi uygulamalarınızla entegre edilebilir. Kitaplık, EAP-AKA protokolüne dayalı olarak TS.43 dışı yetki kullanım durumları için bir uygulamaya da entegre edilebilir.
Aşağıda, bu tür kullanım durumları için kullanılacak API'ler açıklanmaktadı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 sunulan API'leri kullanın
ImsServiceYetki uygulaması
Varsayılan olarak Android, ürün bölümünde yüklü olan ImsServiceEntitlement
uygulamasını ayrıcalıklı bir 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 | Taşıyıcının yetkilendirme sunucusu URL'si. https:// öneki eklenmelidir. |
KEY_FCM_SENDER_ID_STRING | Taşıyıcının FCM gönderen kimliği. Taşıyıcı tarafından FCM istenmiyorsa 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ı arabirimi gerektiriyorsa true olarak ayarlayın. Örneğin, şartlar ve koşulları kabul etmek veya bir acil durum adresi girmek.Bu genellikle Kuzey Amerika'daki taşıyıcılar için gereklidir. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING | KEY_SHOW_VOWIFI_WEBVIEW_BOOL true com.android.imsserviceentitlement/.WfcActivationActivity olarak ayarlayın. |
KEY_IMS_PROVISIONING_BOOL | Taşıyıcı, arka planda IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin ağ provizyonunu gerektiriyorsa true olarak ayarlayın.Bu, bazı Avrupa taşıyıcıları tarafından istenmektedir. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL | KEY_IMS_PROVISIONING_BOOL true ise true olarak ayarlayın. |
Bir operatörün yetkilendirme sunucusuna ve web portalına giden HTTP trafiği, örneğin varsayılan mobil veri veya Wi-Fi gibi varsayılan ağ üzerinden gider.
GMS iş ortakları: Aşağıdaki operatörler, TS.43 v5.0 belirtimine göre Android 12'de TS.43 yetkilendirme uygulaması tarafından desteklenir:
- ABD: CSpire, US Cellular, Cellcom
- Fransa: Turuncu
IMS sağlama için ek sistem kullanıcı arabirimi
Bu bölüm, OEM'lerin IMS hizmet provizyonu ile ilgili ek sistem UI öğelerini nasıl destekleyebileceğini açıklar (örneğin, VoWiFi sağlandığında bir bildirim gösterirken).
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ı arabirimi daha sonra getProvisioningIntValue
kullanarak veya sağlama durumu değişikliğini registerProvisioningChangedCallback
aracılığıyla izlemek için bir geri arama kaydederek sağlama durumunu okuyabilir.
Test için geçersiz kılma yapılandırmaları
Test amacıyla ImsServiceEntitlement
uygulamasının davranışını geçici olarak değiştirmek için aşağıdaki yordamları kullanın. Taşıyıcı yapılandırmalarının nasıl geçersiz kılınacağına ilişkin ayrıntılar için bkz. Taşıyıcı yapılandırmalarını geçersiz kılma .
VoWiFi kayıt işlemini atlama
VoWiFi kayıt işlemini atlamak ve VoWiFi'nin doğrudan açılmasına izin vermek için, KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
taşıyıcı yapılandırmasını geçersiz kılın ve değerini boş bir dizeye ayarlar.
IMS sağlamayı atlama
IMS yetkilendirmesini atlamak, IMS hizmetlerini kullanılabilir kılmak ve kullanıcıların ağ yetkilendirmesi olmadan bu hizmetleri açmasına 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.
Yetkilendirme sunucusu URL'sini değiştirme
Yetkilendirme sunucusu URL'sini değiştirmek için KEY_ENTITLEMENT_SERVER_URL_STRING
taşıyıcı yapılandırmasını geçersiz kılın ve değerini beklenen URL dizesine ayarlayın. https://
önekini eklemelisiniz.
Taşıyıcı yapılandırmalarını geçersiz kılma
Android 11'den itibaren, taşıyıcı yapılandırma geçersiz kılma komutları yerleşiktir ve kök ayrıcalıklarıyla kullanılabilir.
Aşağıdaki komut, taşıyıcı yapılandırma anahtarının transporter_volte_provisioning_required_bool'un nasıl geçersiz carrier_volte_provisioning_required_bool
ve değerinin false
olarak ayarlanmasına ilişkin bir örnektir. Birden çok 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 almak için aşağıdaki komutu çalıştırın:
adb shell cmd phone cc