การแบ่งส่วนเครือข่าย 5G

สำหรับอุปกรณ์ที่ใช้ Android 12 ขึ้นไป Android รองรับการแบ่งส่วนเครือข่าย 5G ซึ่งเป็นการใช้การจำลองเสมือนของเครือข่ายเพื่อ แบ่งการเชื่อมต่อเครือข่ายเดียวออกเป็นการเชื่อมต่อเสมือนที่แตกต่างกันหลายรายการ ซึ่งจัดสรรทรัพยากรในปริมาณที่แตกต่างกันให้กับประเภทการรับส่งข้อมูลต่างๆ การแบ่งส่วนเครือข่าย 5G ช่วยให้ผู้ให้บริการเครือข่ายสามารถจัดสรรส่วนหนึ่งของเครือข่ายเพื่อ ให้บริการฟีเจอร์ที่เฉพาะเจาะจงสำหรับกลุ่มลูกค้าที่เฉพาะเจาะจง Android 12 ขอแนะนำความสามารถในการแบ่งส่วนเครือข่าย 5G สำหรับองค์กรต่อไปนี้ ซึ่งผู้ให้บริการเครือข่าย สามารถมอบให้แก่ลูกค้าองค์กรได้

การแบ่งส่วนอุปกรณ์ขององค์กรสำหรับอุปกรณ์ที่มีการจัดการครบวงจร

สำหรับองค์กรที่มอบอุปกรณ์ของบริษัทที่มีการจัดการเต็มรูปแบบให้แก่พนักงาน ผู้ให้บริการเครือข่ายสามารถมอบ Network Slice ขององค์กรที่ใช้งานอยู่ 1 รายการขึ้นไปให้แก่พนักงาน ซึ่งจะมีการกำหนดเส้นทาง การรับส่งข้อมูลในอุปกรณ์ของบริษัทไปยัง Network Slice เหล่านั้น ตั้งแต่ Android 12 เป็นต้นไป Android อนุญาตให้ผู้ให้บริการ ระบุการแบ่งส่วนเครือข่ายสำหรับองค์กรผ่านกฎ URSP แทนการตั้งค่าการแบ่งส่วนเครือข่าย ผ่าน APN

การแบ่งแอปธุรกิจระดับองค์กรสำหรับอุปกรณ์ที่มีโปรไฟล์งาน

สำหรับองค์กรที่ใช้โซลูชันโปรไฟล์งาน Android 12 จะอนุญาตให้อุปกรณ์กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยัง Network Slice ขององค์กร องค์กรสามารถเปิดใช้ความสามารถนี้ผ่านเครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC)

โซลูชันโปรไฟล์งานมีการตรวจสอบสิทธิ์และการควบคุมการเข้าถึงโดยอัตโนมัติในระดับที่องค์กรต้องการเพื่อให้มั่นใจว่าระบบจะกำหนดเส้นทางเฉพาะการรับส่งข้อมูลจากแอปขององค์กรในโปรไฟล์งานไปยัง Network Slice ขององค์กร ไม่จำเป็นต้องแก้ไขแอปในโปรไฟล์งานเพื่อขอ Network Slice ขององค์กรอย่างชัดแจ้ง

การแบ่งส่วนเครือข่าย 5G ใน AOSP ทำงานอย่างไร

Android 12 รองรับการแบ่งเครือข่าย 5G โดยการเพิ่มโค้ดเบสของโทรศัพท์ใน AOSP และโมดูลการแชร์อินเทอร์เน็ต เพื่อรวม API การเชื่อมต่อที่มีอยู่ซึ่งจำเป็นสำหรับการแบ่งเครือข่าย

แพลตฟอร์มโทรศัพท์ Android มี HAL และ Telephony API เพื่อรองรับ การแบ่งส่วนตามคำขอเครือข่ายที่ยื่นโดยโค้ดเครือข่ายหลักและความสามารถในการแบ่งส่วน 5G ในโมเด็ม รูปที่ 1 อธิบายส่วนประกอบของฟีเจอร์ Network Slicing 5G

คอมโพเนนต์การแบ่งส่วนเครือข่าย 5G

รูปที่ 1 สถาปัตยกรรมการแบ่งส่วนเครือข่าย 5G ใน AOSP

แพลตฟอร์มโทรศัพท์และการเชื่อมต่อรองรับสิ่งต่อไปนี้

  • แปลงคำขอเครือข่ายสำหรับหมวดหมู่สไลซ์เป็นตัวอธิบายการเข้าชม ซึ่งจะส่งไปยังโมเด็มเพื่อการจับคู่การเข้าชม URSP และการเลือกเส้นทาง
  • เปลี่ยนกลับไปใช้เครือข่ายเริ่มต้นหาก Network Slice ขององค์กรไม่พร้อมใช้งาน
  • กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยัง การเชื่อมต่อที่เกี่ยวข้อง
  • การรองรับการแบ่งส่วนเครือข่ายสำหรับองค์กร

    • การตรวจหาการมีอยู่ของโปรไฟล์งานในอุปกรณ์
    • ตรวจสอบสิทธิ์หรือเส้นทางการกำหนดเส้นทางที่ได้รับจาก DPC ที่ผู้ดูแลระบบไอทีขององค์กรใช้

บริการเครือข่ายหลักมีการเปลี่ยนแปลงต่อไปนี้ในโมดูลการแชร์อินเทอร์เน็ต ใน Android 12

  • เพิ่มคลาส API สาธารณะหรือระบบส่วนใหญ่ของ android.net.* ลงในโมดูล Tethering
  • ขยายขอบเขตของโมดูลการแชร์อินเทอร์เน็ตให้รวมถึงรายการต่อไปนี้

    • f/b/core/java/android/net/…
    • f/b/services/net/…
    • f/b/services/core/java/com/android/server/connectivity/…
    • f/b/services/core/java/com/android/server/ConnectivityService.java
    • f/b/services/core/java/com/android/server/TestNetworkService.java
  • ย้ายโค้ด VPN ออกจากโมดูลการแชร์อินเทอร์เน็ต

Android 12 ย้ายโค้ดที่มีความสามารถต่อไปนี้ ไปยังโมดูลการแชร์อินเทอร์เน็ต

  • การรับคำขอจากแอปสำหรับการเชื่อมต่อเครือข่าย
  • รับคำขอจากระบบ (เช่น "วางแอปเหล่านี้ใน ส่วนขององค์กร" ซึ่งเปิดตัวใน Android 12)
  • การส่งคำขอจากระบบไปยังโค้ดโทรศัพท์ซึ่งพยายาม ตั้งค่าเครือข่ายหรือสไลซ์โดยผ่าน HAL API และโมเด็ม
  • การแจ้ง netd เกี่ยวกับวิธีกำหนดเส้นทางการรับส่งข้อมูลต่อแอป (เปิดตัวใน Android 12)
  • แจ้งให้แอปทราบว่าเกิดอะไรขึ้นกับการรับส่งข้อมูลเครือข่ายผ่าน ConnectivityManager API เช่น NetworkCallback, getActiveNetwork, getNetworkCapabilities

การใช้งาน

หากต้องการรองรับการแบ่งส่วน 5G ในอุปกรณ์ อุปกรณ์ต้องมีโมเด็มที่รองรับ IRadio 1.6 HAL ซึ่งมี setupDataCall_1_6 API API นี้จะตั้งค่าการเชื่อมต่อข้อมูลและมีพารามิเตอร์ต่อไปนี้ เพื่อรองรับการแบ่งส่วน 5G

  • trafficDescriptor: ระบุตัวอธิบายการเข้าชมที่ส่งไปยังโมเด็ม
  • sliceInfo: ระบุข้อมูลสำหรับ Network Slice ที่จะใช้ในกรณีที่มีการส่งต่อจาก EPDG ไปยัง 5G
  • matchAllRuleAllowed: ระบุว่าอนุญาตให้ใช้กฎ URSP เริ่มต้นที่ตรงกันทั้งหมดหรือไม่ Telephony จะตั้งค่านี้เป็น "จริง" สำหรับเครือข่ายเริ่มต้น แต่ไม่ใช่สำหรับ Slice กฎการจับคู่ทั้งหมดจะใช้กับเครือข่ายเริ่มต้น เมื่อแอปขอ Slice ที่เฉพาะเจาะจงซึ่งไม่พร้อมใช้งาน ระบบจะรายงานว่า Slice นั้นไม่พร้อมใช้งาน สำหรับ แอปขององค์กร เฟรมเวิร์ก Telephony จะกลับไปใช้ เครือข่ายเริ่มต้นได้หากเครือข่ายขององค์กรไม่พร้อมใช้งาน

นอกจากนี้ โมเด็มยังต้องใช้ API ของ getSlicingConfig ด้วย เว้นแต่จะมีการรายงานว่า API ของ getHalDeviceCapabilities ไม่รองรับ

ข้อกำหนดขององค์กร

ต่อไปนี้คือข้อกำหนดสำหรับองค์กรในการใช้การแบ่งเครือข่าย 5G ในอุปกรณ์ในการติดตั้งใช้งาน Android Enterprise

  • ตรวจสอบว่าอุปกรณ์ที่มีการจัดการครบวงจรหรืออุปกรณ์ของพนักงานที่ตั้งค่าด้วยโปรไฟล์งาน รองรับ 5G SA พร้อมโมเด็มที่รองรับ setupDataCall_1_6 API
  • ทำงานร่วมกับพาร์ทเนอร์ผู้ให้บริการขนส่งในการตั้งค่าและประสิทธิภาพของสไลซ์ หรือลักษณะ SLA

เปิดใช้การแบ่งส่วน 5G ในอุปกรณ์ที่ตั้งค่าด้วยโปรไฟล์งาน

สำหรับอุปกรณ์ที่ตั้งค่าด้วยโปรไฟล์งาน การแบ่งเครือข่าย 5G จะปิดอยู่โดยค่าเริ่มต้นใน AOSP หากต้องการเปิดใช้การแบ่งส่วนเครือข่าย ผู้ดูแลระบบไอทีขององค์กรสามารถเปิดหรือปิดการกำหนดเส้นทางการรับส่งข้อมูลของแอปในโปรไฟล์งานไปยังการแบ่งส่วนเครือข่ายขององค์กรได้โดยอิงตามพนักงานแต่ละรายผ่าน DPC ของ EMM ซึ่งใช้เมธอด setPreferentialNetworkServiceEnabled ใน DevicePolicyManager (DPM) API (เปิดตัวใน Android 12)

ผู้ให้บริการ EMM ที่มี DPC ที่กำหนดเองต้องผสานรวม DevicePolicyManager API เพื่อ รองรับลูกค้าองค์กร

กฎ URSP

ส่วนนี้มีข้อมูลสำหรับผู้ให้บริการเกี่ยวกับการกำหนดค่ากฎ URSP สำหรับ หมวดหมู่สไลซ์ต่างๆ รวมถึงการรับส่งข้อมูลขององค์กร CBS เวลาในการตอบสนองต่ำ และการรับส่งข้อมูลที่มีแบนด์วิดท์สูง เมื่อกำหนดค่ากฎ URSP สำหรับ หมวดหมู่สไลซ์ต่างๆ ผู้ให้บริการต้องใช้ค่าเฉพาะของ Android ต่อไปนี้

รหัส ค่านิยม คำอธิบาย
OSId 97a498e3-fc92-5c94-8986-0333d06e4e47 OSId สำหรับ Android คือ UUID เวอร์ชัน 5 ที่สร้างขึ้นด้วยเนมสเปซ ISO OID และชื่อ "Android"

ผู้ให้บริการต้องกำหนดค่ากฎ URSP สำหรับการรับส่งข้อมูลแต่ละสไลซ์โดยมีคอมโพเนนต์ตัวอธิบายการรับส่งข้อมูลเป็น "ประเภทรหัสระบบปฏิบัติการ + รหัสแอปของระบบปฏิบัติการ" เช่น สไลซ์ "ENTERPRISE" ต้องมีค่าเป็น 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 ค่านี้คือการต่อกันของ OSId, ความยาวของ OSAppId (0x0A) และ OSAppId ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทคอมโพเนนต์ของตัวอธิบายการเข้าชมได้ที่ 3GPP TS 24.526 ตาราง 5.2.1

ตารางต่อไปนี้อธิบายค่า OSAppId สำหรับหมวดหมู่ Slice ต่างๆ

หมวดหมู่ Slice OSAppId คำอธิบาย
ENTERPRISE 0x454E5445525052495345 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE"
ENTERPRISE2 0x454E544552505249534532 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE2"
ENTERPRISE3 0x454E544552505249534533 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE3"
ENTERPRISE4 0x454E544552505249534534 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE4"
ENTERPRISE5 0x454E544552505249534535 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE5"
CBS 0x434253 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "CBS"
PRIORITIZE_LATENCY 0x5052494f524954495a455f4c4154454e4359 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "PRIORITIZE_LATENCY"
จัดลำดับความสำคัญของแบนด์วิดท์ 0x5052494f524954495a455f42414e445749445448 OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "PRIORITIZE_BANDWIDTH"

ตัวอย่างกฎ URSP

ตารางต่อไปนี้แสดงตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูลขององค์กร CBS, เวลาในการตอบสนองต่ำ, แบนด์วิดท์สูง และการรับส่งข้อมูลเริ่มต้น

Enterprise 1

การรองรับ Enterprise 1 พร้อมใช้งานใน Android 12 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE1 มีดังนี้

กฎ URSP #1 (enterprise1)
ลำดับความสำคัญ 1 (0x01)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN องค์กร
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN องค์กร

Enterprise 2

การรองรับ Enterprise 2 พร้อมใช้งานใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE2 มีดังนี้

กฎ URSP #2 (enterprise2)
ลำดับความสำคัญ 2 (0x02)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN enterprise2
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN enterprise2

Enterprise 3

การรองรับ Enterprise 3 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE3 มีดังนี้

กฎ URSP #3 (enterprise3)
ลำดับความสำคัญ 3 (0x03)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN enterprise3
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN enterprise3

Enterprise 4

การรองรับ Enterprise 4 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE4 มีดังนี้

กฎ URSP #4 (enterprise4)
ลำดับความสำคัญ 4 (0x04)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN enterprise4
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN enterprise4

Enterprise 5

การรองรับ Enterprise 5 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE5 มีดังนี้

กฎ URSP #5 (enterprise5)
ลำดับความสำคัญ 5 (0x05)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN enterprise5
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN enterprise5

CBS

การรองรับ CBS พร้อมใช้งานใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล CBS มีดังนี้

กฎ URSP #6 (CBS)
ลำดับความสำคัญ 6 (0x06)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E4703434253
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN cbs
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN cbs

เวลาในการตอบสนองต่ำ

การรองรับเวลาในการตอบสนองต่ำพร้อมใช้งานใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล LOW_LATENCY มีดังนี้

กฎ URSP #7 (เวลาในการตอบสนองต่ำ)
ลำดับความสำคัญ 7 (0x07)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN เวลาในการตอบสนอง
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN เวลาในการตอบสนอง

แบนด์วิดท์สูง

การรองรับแบนด์วิดท์สูงพร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล HIGH_BANDWIDTH มีดังนี้

กฎ URSP #8 (แบนด์วิดท์สูง)
ลำดับความสำคัญ 8 (0x08)
ตัวอธิบายการเข้าชม #1
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY
คอมโพเนนต์ #2: DNN แบนด์วิดท์
ตัวอธิบายการเลือกเส้นทาง #2
ลำดับความสำคัญ 2 (0x02)
คอมโพเนนต์ #1: DNN แบนด์วิดท์

ค่าเริ่มต้น

กฎ URSP #9 (ค่าเริ่มต้น)
ลำดับความสำคัญ 9 (0x09)
ตัวอธิบายการเข้าชม #1
match-all ไม่มี
ตัวอธิบายการเลือกเส้นทาง #1
ลำดับความสำคัญ 1 (0x01)
คอมโพเนนต์ #1: S-NSSAI SST:XX SD:YYYYYY

การทดสอบ

หากต้องการทดสอบการแบ่งเครือข่าย 5G ให้ใช้การทดสอบด้วยตนเองต่อไปนี้

หากต้องการตั้งค่าอุปกรณ์สำหรับการทดสอบ ให้ทำดังนี้

  1. ตรวจสอบว่าได้กำหนดค่านโยบาย URSP ด้วยกฎที่ไม่ใช่ค่าเริ่มต้นซึ่ง ตรงกับหมวดหมู่องค์กร และตัวอธิบายการเลือกเส้นทางที่เกี่ยวข้อง จะแมปหมวดหมู่องค์กรกับสไลซ์องค์กร และกฎเริ่มต้น ที่นำการรับส่งข้อมูลไปยังสไลซ์อินเทอร์เน็ตเริ่มต้น

  2. ตรวจสอบว่าได้กำหนดค่าโปรไฟล์งานในอุปกรณ์แล้ว

  3. เลือกใช้การแบ่งเครือข่ายผ่าน DPC

หากต้องการทดสอบลักษณะการทำงานของการแบ่งเครือข่าย 5G ให้ทำดังนี้

  1. ตรวจสอบว่ามีการสร้างเซสชัน PDU ด้วยสไลซ์ขององค์กร (เช่น โดยใช้ที่อยู่ IP ที่เฉพาะเจาะจง) และแอปในโปรไฟล์งานใช้เซสชัน PDU นั้น
  2. ยืนยันว่ามีการสร้างเซสชัน PDU แยกต่างหากด้วยสไลซ์อินเทอร์เน็ตเริ่มต้น และแอปในโปรไฟล์ส่วนตัวใช้เซสชัน PDU

การอัปเซลล์การแบ่งส่วนเครือข่าย 5G

ฟีเจอร์การขายอัปเซลล์การแบ่งส่วน 5G ซึ่งพร้อมใช้งานตั้งแต่ Android 14-QPR1 ช่วยให้ผู้ให้บริการสามารถนำเสนอความสามารถของเครือข่ายที่ได้รับการปรับปรุง (เวลาในการตอบสนองและแบนด์วิดท์) แก่ผู้ใช้ผ่านการแบ่งส่วนเครือข่าย 5G

ฟีเจอร์การอัปเซลล์การแบ่งส่วน 5G ใช้การตอบกลับ TS.43 จากเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ เพื่อกระตุ้นขั้นตอนการซื้อ ผู้ให้บริการสามารถใช้การตอบกลับเพื่อ ระบุ URL สำหรับ WebView การซื้อของผู้ให้บริการ ส่งข้อมูลเพิ่มเติมไปยัง WebView และระบุว่ามีการจัดสรรและพร้อมใช้งานใน เครือข่ายของผู้ให้บริการหรือไม่

ผู้ให้บริการสามารถปรับแต่งลักษณะการทำงานของฟีเจอร์การขายอัปเซลล์การแบ่งส่วน 5G ได้โดยใช้ การกำหนดค่าของผู้ให้บริการ ซึ่งจะควบคุมว่าสามารถส่งคำขอซื้อได้หรือไม่ เมื่อแอปได้รับอนุญาตให้ขอความสามารถระดับพรีเมียม และระยะเวลาที่ เฟรมเวิร์กโทรศัพท์รอการตอบกลับจากผู้ใช้หรือเครือข่าย

ฟีเจอร์การขายอัปเซลล์การแบ่งส่วน 5G มีอินเทอร์เฟซที่เรียกว่า DataBoostWebServiceFlow เพื่อให้ Android สื่อสารกับ WebView ของผู้ให้บริการได้

รูปที่ 2 แสดงขั้นตอนการซื้อการอัปเซลล์การแบ่งส่วนเครือข่าย 5G

ขั้นตอนการซื้อการขายอัปเซลการแบ่งส่วนเครือข่าย 5G

รูปที่ 2 ขั้นตอนการซื้อการอัปเซลล์การแบ่งส่วนเครือข่าย 5G

กระบวนการให้สิทธิ์ TS.43

เมื่อผู้ใช้ส่งคำขอความสามารถของเครือข่ายที่ได้รับการปรับปรุง เฟรมเวิร์ก Telephony จะขอการกำหนดค่าสิทธิ์ของบริการสำหรับความสามารถระดับพรีเมียมที่ขอ หากการตอบกลับ TS.43 ใช้ได้ เฟรมเวิร์ก Telephony จะใช้ ฟิลด์จากการตอบกลับ HTTP เพื่อขับเคลื่อนคำขอซื้อ

ฟิลด์การซื้อแบบแบ่งชำระ

การกำหนดค่าการให้สิทธิ์ TS.43 มีฟิลด์การซื้อสไลซ์ต่อไปนี้

สถานะการให้สิทธิ์

แป้น: EntitlementStatus

ประเภท: int

ค่าที่รองรับ: 0 (ปิดใช้), 1 (เปิดใช้), 2 (ใช้ร่วมกันไม่ได้), 3 (การจัดสรร), 4 (รวม)

สถานะการจัดสรร

แป้น: ProvStatus

ประเภท: int

ค่าที่รองรับ: 0 (ไม่ได้จัดสรร), 1 (จัดสรรแล้ว), 2 (ไม่พร้อมใช้งาน), 3 (กำลังดำเนินการ)

เฟรมเวิร์ก Telephony ใช้สถานะการให้สิทธิ์และสถานะการจัดสรรร่วมกันเพื่อกำหนดสถานะการซื้อ Slice ปัจจุบัน ผลลัพธ์ อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้

หากสถานะการให้สิทธิ์เป็น 1 (เปิดใช้) และสถานะการจัดสรรเป็น 0 (ไม่ได้จัดสรร) เฟรมเวิร์กโทรศัพท์จะแสดงการแจ้งเตือนการขายอัปเซล ให้ผู้ใช้ซื้อการเพิ่มผ่าน WebView ของผู้ให้บริการ ตารางต่อไปนี้ อธิบายลักษณะการทำงานของเฟรมเวิร์ก Telephony สำหรับค่าสถานะการจัดสรรและการให้สิทธิ์ ชุดค่าผสมต่างๆ

สถานะการจัดสรร
ไม่ได้จัดสรร (0) จัดสรรแล้ว (1) ไม่พร้อมใช้งาน (2) กำลังดำเนินการ (3)
สถานะการให้สิทธิ์ ปิดใช้ (0) ไม่สำเร็จ ไม่สำเร็จ ไม่สำเร็จ ไม่สำเร็จ
เปิดใช้ (1) แสดง WebView ซื้อแล้ว ซื้อแล้ว กำลังดำเนินการ
ไม่รองรับ (2) ไม่สำเร็จ ไม่สำเร็จ ไม่สำเร็จ ไม่สำเร็จ
การจัดสรร (3) ข้อผิดพลาดของผู้ให้บริการ ข้อผิดพลาดของผู้ให้บริการ กำลังดำเนินการ กำลังดำเนินการ
รวม (4) ข้อผิดพลาดของผู้ให้บริการ ซื้อแล้ว ซื้อแล้ว ข้อผิดพลาดของผู้ให้บริการ

ฟิลด์โฟลว์บริการ

การตอบกลับ TS.43 จะระบุ URL, ข้อมูลผู้ใช้ และประเภทเนื้อหาเพื่อปรับแต่ง ลักษณะการทำงานของ WebView การซื้อของผู้ให้บริการ หากไม่ได้ระบุประเภทเนื้อหา ระบบจะโหลด URL เป็นคำขอ GET หากมีข้อมูลผู้ใช้ ระบบจะต่อท้ายข้อมูลดังกล่าวใน URL เป็นพารามิเตอร์การค้นหา (เช่น https://www.android.com?encodedValue=Base64EncodedUserData) และหากไม่มี ข้อมูล ระบบจะใช้ URL ตามเดิม (เช่น https://www.android.com)
หากระบุประเภทเนื้อหาในรูปแบบ JSON หรือ XML ระบบจะโหลด URL เป็นคำขอ POST และส่งข้อมูลผู้ใช้ (ถอดรหัสหากมีการเข้ารหัสใน Base 64) เป็น ข้อมูลสำหรับคำขอ POST

URL

แป้น: ServiceFlow_URL

ประเภท: String

ตัวอย่าง: "https://www.android.com"

ข้อมูลผู้ใช้

แป้น: ServiceFlow_UserData

ประเภท: String

ตัวอย่าง: "encodedValue=Base64EncodedUserData"

ประเภทเนื้อหา

แป้น: ServiceFlow_ContentsType

ประเภท: String

ค่าที่รองรับ: 0 (ไม่ได้ระบุ), 1 (JSON), 2 (XML)

การกำหนดค่าผู้ให้บริการ

การกำหนดค่าของผู้ให้บริการต่อไปนี้พร้อมให้ปรับแต่ง ลักษณะการทำงานของฟีเจอร์การขายเพิ่มสำหรับ Network Slicing 5G

KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY

รายการความสามารถระดับพรีเมียมที่รองรับ นี่คืออาร์เรย์ int ของ TelephonyManager.PremiumCapability ความสามารถระดับพรีเมียมเหล่านี้มีมูลค่าเท่ากับคลาส NetworkCapabilities.NetCapability ที่เกี่ยวข้อง หากมีการขอความสามารถระดับพรีเมียมและไม่ได้รวมไว้ในการกำหนดค่านี้ คำขอซื้อจะล้มเหลวพร้อมผลลัพธ์ CARRIER_DISABLED

ใน Android 14 รองรับเฉพาะ PREMIUM_CAPABILITY_PRIORITIZE_LATENCY

KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT

จำนวนครั้งสูงสุดต่อวันที่ระบบแสดงการแจ้งเตือนการขายอัปเซลล์การซื้อต่อผู้ใช้ หากถึงขีดจำกัดสูงสุดรายวันแล้ว ระบบจะไม่แสดงการแจ้งเตือนให้อัปเซล และจะจำกัดอัตราคำขอซื้อ (รวมถึงคำขอเซิร์ฟเวอร์การให้สิทธิ์) จนถึง เที่ยงคืนของวันถัดไป คำขอซื้อที่ส่งหลังจากถึงขีดจำกัดสูงสุดต่อวันจะล้มเหลวและแสดงผลเป็น PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED

KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT

จำนวนครั้งสูงสุดต่อเดือนที่การแจ้งเตือนให้อัปเซลล์การซื้อจะแสดงต่อผู้ใช้ หากถึงขีดจำกัดรายเดือนแล้ว ระบบจะไม่แสดงการแจ้งเตือนให้อัปเซล และจะจำกัดคำขอซื้อ (รวมถึงคำขอเซิร์ฟเวอร์การให้สิทธิ์) จนถึงวันที่ 1 ของเดือนถัดไป คำขอซื้อที่ส่งหลังจากถึง ขีดจำกัดรายเดือนจะล้มเหลวพร้อมผลลัพธ์ PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED

KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING

URL การซื้อของผู้ให้บริการสำรองที่จะแสดงต่อผู้ใช้เมื่อคลิก การแจ้งเตือนการขายอัปเซล หากไม่พบ URL การซื้อในการตอบกลับ TS.43 จากเซิร์ฟเวอร์การให้สิทธิ์ ระบบจะใช้ค่านี้แทน หากทั้ง URL จากการตอบกลับ TS.43 และการกำหนดค่าของผู้ให้บริการไม่ถูกต้อง คำขอซื้อจะล้มเหลวพร้อมผลลัพธ์ PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED

KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL

ว่าจะอนุญาตให้ซื้อความสามารถระดับพรีเมียมเมื่ออุปกรณ์ เชื่อมต่อกับ Long-Term Evolution (LTE) หรือไม่ หาก true คุณจะส่งคำขอซื้อได้ทั้งใน LTE และ New Radio (NR) หาก false คำขอซื้อจะทำได้เฉพาะใน NR และคำขอที่ทำใน LTE จะล้มเหลว โดยมีผลลัพธ์เป็น PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE

KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG

ระยะเวลาที่จะแสดงการแจ้งเตือนการอัปเซลล์การซื้อต่อผู้ใช้ก่อนที่ระบบจะยกเลิกโดยอัตโนมัติ เมื่อยกเลิกการแจ้งเตือน ระบบจะจำกัดอัตราคำขอที่ตามมาและคำขอจะล้มเหลวพร้อมผลลัพธ์ PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED

KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

ระยะเวลาที่ควรจำกัดอัตราคำขอซื้อครั้งต่อๆ ไปหลังจาก เกิดข้อผิดพลาดเนื่องจากหมดเวลาหรือผู้ใช้ยกเลิก หากผู้ใช้ไม่คลิก การแจ้งเตือนการอัปเซลล์การซื้อภายในระยะหมดเวลาที่ระบุโดย KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG หรือหากผู้ใช้ยกเลิกหรือปิดการแจ้งเตือน ตัวจับเวลาการหยุดชั่วคราวนี้จะเริ่มทำงาน ขณะที่ตัวจับเวลานี้ทำงานอยู่ คำขอซื้อจะล้มเหลวและแสดงผลเป็น PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED

KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

ระยะเวลาที่ควรจำกัดคำขอซื้อครั้งต่อๆ ไปหลังจาก การดำเนินการไม่สำเร็จเนื่องจากผู้ให้บริการหรือเครือข่าย หากการตรวจสอบการให้สิทธิ์ไม่สำเร็จ URL ไม่พร้อมใช้งาน หรือ URL การซื้อของผู้ให้บริการระบุว่าไม่สำเร็จ ตัวจับเวลา การหยุดชั่วคราวนี้จะเริ่มทำงาน ขณะที่ตัวจับเวลานี้ทำงาน คำขออนุมัติการซื้อจะล้มเหลวพร้อมผลลัพธ์ PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED

KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG

ระยะเวลาที่เครือข่ายต้องกำหนดค่าการแบ่งส่วน สำหรับความสามารถในการซื้อแบบพรีเมียม ในช่วงนี้ ระบบจะบล็อกคำขอซื้อครั้งต่อๆ ไปและแสดงผลลัพธ์ PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP หากเครือข่ายตั้งค่าการกำหนดค่าการแบ่งส่วนไม่ทันเวลา แอปจะ ขอซื้อความสามารถระดับพรีเมียมอีกครั้งได้ ระบบโทรศัพท์จะถือว่าการซื้อเสร็จสมบูรณ์เมื่อมีการส่งการกำหนดค่าการแบ่งส่วนที่เกี่ยวข้องแล้ว ไม่ว่าผู้ใช้จะชำระเงินให้ผู้ให้บริการหรือไม่ก็ตาม

อินเทอร์เฟซ JavaScript

เมื่อผู้ใช้คลิกการแจ้งเตือนการเพิ่มเครือข่าย ระบบจะแสดงออบเจ็กต์ WebView ที่มี URL การซื้อของผู้ให้บริการแก่ผู้ใช้ ผู้ให้บริการสามารถใช้ API ที่ระบุไว้ใน DataBoostWebServiceFlow อินเทอร์เฟซ JavaScript ในเว็บไซต์การซื้อเพื่อสื่อสารกับแอปการซื้อ Slice

เว็บไซต์ของผู้ให้บริการสามารถรับความสามารถระดับพรีเมียมที่ขอได้ผ่านเมธอด getRequestedCapability()

หากซื้อสำเร็จ เว็บไซต์ของผู้ให้บริการต้องแจ้งให้แอปซื้อสไลซ์ทราบผ่าน notifyPurchaseSuccessful() หรือ notifyPurchaseSuccessful(duration) โดย duration เป็นพารามิเตอร์ที่ไม่บังคับซึ่งระบุระยะเวลาที่ต้องการของสไลซ์

หากการซื้อไม่สำเร็จ เว็บไซต์ของผู้ให้บริการขนส่งต้องแจ้งให้แอปซื้อสไลซ์ ทราบผ่านเมธอด notifyPurchaseFailed(code, reason) โดยที่ code คือรหัสความล้มเหลวที่ระบุสาเหตุของความล้มเหลว และ reason คือ สาเหตุของความล้มเหลวที่มนุษย์อ่านได้หากไม่ทราบรหัสความล้มเหลว

หากไม่ได้เรียกใช้เมธอดการตอบกลับเหล่านี้ ระบบจะไม่ถือว่าการซื้อเสร็จสมบูรณ์และคำขอซื้อจะหมดเวลาในที่สุด

รหัสความล้มเหลวที่ถูกต้องซึ่งเว็บไซต์ของผู้ให้บริการขนส่งสามารถแสดง เมื่อการซื้อล้มเหลวมีดังนี้

เมื่อการซื้อเสร็จสมบูรณ์ ผู้ให้บริการต้องอัปเดตกฎ URSP ด้วยสไลซ์ PRIORITIZE_LATENCY ไปยังอุปกรณ์ของผู้ใช้