IMS hizmetinden yararlanma

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.

TS.43 hak talebi özelliği

Ş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 ImsServiceEntitlementuygulama 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