Android 12'den itibaren Android, Wi-Fi Üzerinden Ses (VoWiFi), LTE Üzerinden Ses (VoLTE) gibi hizmetlerin etkinleştirilmesi için yetki doğrulama adımını tanımlayan bir GSMA spesifikasyonu olan TS.43 Hizmet Yetkilendirme Yapılandırması desteğini içerir. , IP üzerinden SMS (SMSoIP), eSIM yardımcı cihazlarının Cihaz Üzerinde Hizmet Aktivasyonu (ODSA) (talep eden cihazla ilişkili) ve veri planı bilgileri.
Bu spesifikasyonu desteklemek için Android, bir servis sağlayıcının mobil cihazlara IP Multimedya Alt Sistemi (IMS) ağ hizmetlerinin durumu hakkında bilgi vermesine olanak tanıyan bir IMS hizmet yetkilendirme özelliği sağlar. Bu yetkilendirme özelliği, cihazın, kullanıcıların herhangi bir kimlik bilgisini 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ığı şekilde operatör yetkilendirme sunucusunu sorgulamasına olanak tanır.
IMS yetkilendirme sunucularına sahip operatörler, hizmet sağlamak için IMS hizmet yetkilendirme özelliğini kullanabilir. Özelliğin benimsenmesi aşağıdaki faydaları sağlar:
- Bu yetkilendirme özelliği birden fazla ürün ve OEM'de kullanılabildiği için taşıyıcıların test ve sertifikasyon maliyetlerini azaltır.
- Standart bir Android uygulaması aracılığıyla cihaz üreticilerinin geliştirme yükünü azaltır.
- Özellik açık kaynak olduğundan cihaz üreticilerinin ve operatörlerin özellik için kodla katkıda bulunmalarına olanak tanır.
- Kuzey Amerika'daki taşıyıcılar 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.
Şekil 1. 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 Hizmet API'si statik kitaplığı : Bu kitaplık, TS.43 spesifikasyonunu uygular, operatörü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 de dahil olmak üzere kullanıcı arayüzü öğ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 numaralandırılmış satırlar, IMS hizmeti yetkilendirme özelliğinin bileşenlerinin birbirleriyle nasıl iletişim kurduğunu göstermektedir. Aşağıda etiketlenen adımların her biri açıklanmaktadır:
(1) İstemci uygulaması, bir hizmet yetkilendirme talebi başlatmak için TS.43 hizmet API'sini çağırır.
(2) TS.43 hizmet API'si, bir EAP-AKA sorgulaması başlatmak için operatörü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 operatörün yetkilendirme sunucusundan hizmet yetkilendirmesi veya yapılandırma verilerini alır.
(5) TS.43 hizmeti, hizmet yetkilendirmesini veya yapılandırma verilerini istemci uygulamasına döndürür.
(6) İstemci uygulaması verileri işler ve kullanıcının hizmet aktivasyonunu 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 süreci açıklanmaktadır.
Android 12 API bağımlılığı olmadığından service_entitlement
kitaplığı ve ImsServiceEntitlement
uygulaması eski Android platformlarına desteklenebilir.
service_entitlement kütüphanesi
service_entitlement
kitaplığı ImsServiceEntitlement app
statik olarak bağlı olduğundan, kitaplığı ImsServiceEntitlement
uygulamasına entegre etmek için herhangi bir ek adım gerekmez.
service_entitlement
kitaplığı, veri planı ve ODSA gibi TS.43 kullanım durumları için kendi uygulamalarınızla entegre edilebilir. Kitaplık ayrıca EAP-AKA protokolünü temel alan TS.43 dışı yetkilendirme 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 olmayan uygulama:
EapAkaHelper
sınıfında kullanıma sunulan API'leri kullanın
ImsServiceEntitlement uygulaması
Varsayılan olarak Android, ayrıcalıklı bir uygulama olarak ürün bölümünde yüklü olan ImsServiceEntitlement
uygulamasını 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 dahil edilmelidir. |
KEY_FCM_SENDER_ID_STRING | Taşıyıcının FCM gönderen kimliği. Taşıyıcı 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, şartlar ve koşulları kabul etmek veya acil durum adresini girmek.Bu genellikle Kuzey Amerika'daki operatörler tarafından istenir. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING | KEY_SHOW_VOWIFI_WEBVIEW_BOOL true com.android.imsserviceentitlement/.WfcActivationActivity olarak ayarlayın. |
KEY_IMS_PROVISIONING_BOOL | Operatör arka planda IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin ağ provizyonuna ihtiyaç duyuyorsa true olarak ayarlayın.Bu, bazı Avrupalı taşıyıcılar tarafından istenmektedir. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL | KEY_IMS_PROVISIONING_BOOL true ise true olarak ayarlayın. |
Operatörün yetkilendirme sunucusuna ve web portalına giden HTTP trafiği, varsayılan ağ (örneğin, varsayılan mobil veriler veya Wi-Fi) üzerinden gider.
GMS iş ortakları: Aşağıdaki operatörler, TS.43 v5.0 spesifikasyonuna uygun olarak Android 12'deki TS.43 yetkilendirme uygulaması tarafından desteklenir:
- ABD: CSpire, ABD Hücresel, Cellcom
- Fransa: Turuncu
IMS provizyonu için ek sistem kullanıcı arayüzü
Bu bölümde, OEM'lerin IMS hizmeti sağlamayla ilgili ek sistem kullanıcı arayüzü öğelerini nasıl destekleyebileceği açıklanmaktadır (örneğin, VoWiFi sağlandığında bir bildirim gösterilirken).
ImsServiceEntitlement
uygulaması, ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)
sistem API'sini kullanarak VoWiFi sağlama durumunu platforma ayarlar. Bu API aynı zamanda 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 sağlama durumu değişikliğini registerProvisioningChangedCallback
aracılığıyla izlemek için bir geri çağırma kaydederek sağlama durumunu okuyabilir.
Test için yapılandırmaları geçersiz kılma
Test amacıyla ImsServiceEntitlement
uygulamasının davranışını geçici olarak değiştirmek için aşağıdaki prosedürleri kullanın. Taşıyıcı yapılandırmalarının nasıl geçersiz kılınacağıyla ilgili ayrıntılar için bkz. Taşıyıcı yapılandırmalarını geçersiz kılma .
VoWiFi kayıt işlemini atlamak
VoWiFi kayıt işlemini atlayıp VoWiFi'nin doğrudan açılmasına izin vermek için, KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
operatör yapılandırmasını geçersiz kılın ve değerini boş bir dizeye ayarlayın.
IMS sağlamayı atlama
IMS provizyonunu atlamak, IMS hizmetlerini kullanılabilir hale getirmek ve kullanıcıların bu tür hizmetleri ağ provizyonu olmadan 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 taşıyıcı yapılandırması KEY_ENTITLEMENT_SERVER_URL_STRING
geçersiz kılın ve değerini beklenen URL dizesine ayarlayın. https://
önekini eklemelisiniz.
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şiktir ve kök ayrıcalıklarıyla kullanılabilir.
Aşağıdaki komut, taşıyıcı yapılandırma anahtarı carrier_volte_provisioning_required_bool
nasıl geçersiz kılınacağına ve değerinin false
olarak nasıl ayarlanacağı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