คำศัพท์
- GTAF: ฟังก์ชันการใช้งานการเข้าชมของ Google บริการของ Google ที่ ใช้ Data Plan Sharing API และโต้ตอบกับ DPA ในนามของ แอปพลิเคชันของ Google แอปพลิเคชันของ Google สามารถค้นหาข้อมูลแพ็กเกจอินเทอร์เน็ตของผู้ใช้ใน GTAF ได้ หรือหากแอปพลิเคชันของ Google ลงทะเบียนกับ GTAF แล้ว GTAF จะส่งข้อมูลอัปเดตเกี่ยวกับแพ็กเกจอินเทอร์เน็ตของผู้ใช้ได้
- MSISDN: หมายเลขไดเรกทอรีสมาชิกสากลของสถานีเคลื่อนที่ ซึ่งเป็นหมายเลขที่ระบุการสมัครใช้บริการในเครือข่ายมือถือที่ไม่ซ้ำกัน หรือที่เรียกกันโดยทั่วไปว่าหมายเลขโทรศัพท์
- ปลายทาง CPID: บริการที่ผู้ให้บริการเครือข่ายมือถือใช้เพื่อสร้างตัวระบุแพ็กเกจของผู้ให้บริการ (CPID) ซึ่งใช้เพื่อค้นหาข้อมูลแพ็กเกจอินเทอร์เน็ตของผู้ใช้ได้ CPID ช่วยให้แอปพลิเคชันค้นหา รายละเอียดของแพ็กเกจอินเทอร์เน็ตของผู้ใช้ได้โดยไม่ต้องเข้าถึง MSISDN ของผู้ใช้ เรา อธิบายขั้นตอนการสร้าง CPID ไว้ด้านล่าง
- คีย์ผู้ใช้: คีย์ผู้ใช้คือสตริงที่ใช้ระบุแพ็กเกจอินเทอร์เน็ตของผู้ใช้ได้ ซึ่งอาจเป็น CPID หรือ MSISDN สำหรับแอปพลิเคชันที่มีสิทธิ์เข้าถึง MSISDN
- DPA: Data Plan Agent ซึ่งเป็นบริการที่ผู้ให้บริการเครือข่ายมือถือ ใช้เพื่อแชร์ข้อมูลแพ็กเกจอินเทอร์เน็ตมือถือของผู้ใช้กับ GTAF DPA สามารถแชร์ข้อมูลกับ GTAF ได้โดยใช้การส่งข้อมูลร่วมกันโดยใช้ Google Mobile Data Plan Sharing API และการติดตั้งใช้งาน Data Plan Agent API DPA สามารถทำหน้าที่เป็นปลายทาง CPID ได้ด้วย (ไม่บังคับ)
- UE: อุปกรณ์ของผู้ใช้ ซึ่งเป็นอุปกรณ์ที่ผู้ใช้ใช้
ภาษาของข้อกำหนด
คีย์เวิร์ด "ต้อง" "ห้าม" "จำเป็น" "จะ" "จะไม่" "ควร" "ไม่ควร" "แนะนำ" "อาจ" และ "ไม่บังคับ" ในคำแนะนำเหล่านี้ ตีความได้ตามที่อธิบายไว้ใน RFC 2119
การแชร์แพ็กเกจอินเทอร์เน็ตมือถือ
การแชร์แพ็กเกจอินเทอร์เน็ตมือถือในระดับสูงประกอบด้วย 3 ส่วน ดังนี้
- กลไกในการสร้างและอัปเดตตัวระบุแพ็กเกจของผู้ให้บริการ (CPID) ซึ่งใช้เป็นคีย์ผู้ใช้ได้ แอปพลิเคชันที่มีสิทธิ์เข้าถึง MSISDN สามารถใช้ MSISDN เป็นคีย์ผู้ใช้ได้
- Google Mobile Data Plan Sharing API ซึ่งช่วยให้ DPA ส่งข้อมูลเกี่ยวกับแพ็กเกจอินเทอร์เน็ตของผู้ใช้ไปยัง Google ได้ เช่น หาก DPA ต้องการแจ้งให้ผู้ใช้ทราบเกี่ยวกับข้อเสนอ ก็สามารถแจ้ง GTAF ซึ่งจะแจ้งให้ผู้ใช้ทราบอีกต่อหนึ่ง
- API ตัวแทนแพ็กเกจอินเทอร์เน็ตที่ DPA ใช้ ซึ่งอนุญาตให้ GTAF ค้นหาข้อมูลแพ็กเกจอินเทอร์เน็ตของผู้ใช้จาก DPA เช่น หาก แอปพลิเคชันต้องการแสดงยอดคงเหลือของแพ็กเกจอินเทอร์เน็ตปัจจุบันต่อผู้ใช้ ก็สามารถ ค้นหา GTAF ซึ่งจะค้นหา DPA ต่อไป
ส่วนที่เหลือของหน้านี้จะแนะนำคำศัพท์เกี่ยวกับแพ็กเกจอินเทอร์เน็ตและอธิบายรายละเอียดวิธีสร้าง CPID ข้อกำหนดของ Google Mobile Data Plan Sharing API และ Data Plan Agent API จะอยู่ถัดไป
คำศัพท์เกี่ยวกับแพ็กเกจอินเทอร์เน็ต
สคีมาของ planStatus ที่กำหนดไว้ใน API ต้องแสดงแผนข้อมูลที่ผู้ให้บริการเสนอให้แก่ผู้ใช้ได้ API รองรับการกำหนดแผนข้อมูล ซึ่งจะเรียกเก็บเงินจากผู้ใช้ในอัตราที่แตกต่างกันสำหรับปริมาณการเข้าชมทั้งหมดไปยังชุด URL ที่เฉพาะเจาะจง (เช่น ระบบจะเรียกเก็บเงินจากปริมาณการเข้าชมทั้งหมดไปยัง *.acmefake.com ในอัตราที่แตกต่างกัน) นอกจากนี้ API ยังรองรับแพ็กเกจอินเทอร์เน็ตซึ่งมีอัตราค่าบริการที่แตกต่างกันสำหรับ การกระทำบางประเภทในแอป เราเรียกแพ็กเกจอินเทอร์เน็ตเหล่านี้ว่าแพ็กเกจอินเทอร์เน็ตแอปย่อย ตัวอย่างแพ็กเกจอินเทอร์เน็ตแอปย่อยคือการเสนอการเรียกดูวิดีโอฟรี (เช่น อัตราค่าบริการเป็น 0) ในขณะที่การดูวิดีโอภายในแอปพลิเคชันจะหักอินเทอร์เน็ตจากยอดคงเหลือ อินเทอร์เน็ตของผู้ติดตาม จากนั้นแอปวิดีโอต้องสามารถเรียนรู้ข้อมูลนี้เมื่อ ค้นหาข้อมูลแพ็กเกจอินเทอร์เน็ต
ในส่วนนี้ เราจะแนะนำคำศัพท์บางคำที่เกี่ยวข้องกับแพ็กเกจอินเทอร์เน็ต รูปที่ 1 แสดงตัวอย่าง แพ็กเกจอินเทอร์เน็ตที่แสดงถึงแนวคิดที่เราต้องการบันทึก
แพ็กเกจอินเทอร์เน็ต: แพ็กเกจบริการมือถือระดับบนสุดที่สมาชิก ซื้อ โดยอาจเป็นข้อความง่ายๆ เช่น "อินเทอร์เน็ตมือถือ 10 GB เป็นเวลา 30 วัน" หรืออาจ กำหนดเป็นชุดคอมโพเนนต์ที่เรียกว่าโมดูลก็ได้ แพ็กเกจอินเทอร์เน็ต มีลักษณะดังนี้
- ชื่อแพ็กเกจอินเทอร์เน็ต เช่น "ACME Red"
- ตัวระบุแพ็กเกจอินเทอร์เน็ต ใช้เพื่ออ้างอิงถึงแพ็กเกจ เช่น ระหว่างการซื้อ
- เวลาหมดอายุเมื่อแพ็กเกจอินเทอร์เน็ตหมดอายุ
- หมวดหมู่แพ็กเกจ ไม่ว่าจะเป็นแพ็กเกจแบบชำระเงินล่วงหน้าหรือแพ็กเกจแบบชำระเงินภายหลัง
โมดูลแพ็กเกจ: องค์ประกอบของแพ็กเกจอินเทอร์เน็ต โดยเฉพาะอย่างยิ่ง โมดูลแผนจะมีข้อมูลต่อไปนี้
- ชื่อโมดูล เช่น "ดูวิดีโอฟรีในตอนกลางคืน"
- อัตราสูงสุด แบนด์วิดท์ที่โมดูลนี้เสนอให้ผู้ใช้
- ช่วงเวลาที่ยืดหยุ่น ช่วงเวลาที่อาจมีการเสนอส่วนลดให้แก่ผู้ใช้
หมวดหมู่การเข้าชมของโมดูลแผน (PMTC) ซึ่งเป็นคำอธิบายของการเข้าชมข้อมูล ที่โมดูลใช้ PMTC อาจเป็นข้อมูลทั่วไป เช่น *การเข้าชมอินเทอร์เน็ตทั้งหมด *หรือเป็นข้อมูลเฉพาะ เช่น การเข้าชมที่สร้าง/ใช้โดยแอปพลิเคชัน เว็บไซต์ หรือแม้แต่เส้นทางของผู้ใช้ภายในแอปพลิเคชันเดียวอย่างน้อย 1 รายการ ตัวอย่างของประเภทหลัง ได้แก่ "เพลงไม่จำกัด" "แพ็กเกจอินเทอร์เน็ตวิดีโอ 100 MB (VDP)" "อินเทอร์เน็ตเกมไม่จำกัด" และ "การท่องเว็บวิดีโอไม่จำกัด" เพื่อ อำนวยความสะดวกในการกำหนด PMTC เราได้กำหนด PMTC ต่อไปนี้
GENERIC, VIDEO, VIDEO_BROWSING, VIDEO_OFFLINE
1, MUSIC, GAMING, SOCIAL, MESSAGING
และPMTC_UNSPECIFIED.
ปริมาณข้อมูลหรือขีดจํากัดเวลา เมื่อเปิดใช้งานแล้ว โมดูลแพ็กเกจจะหมดอายุ เมื่อปริมาณข้อมูลหรือขีดจํากัดเวลาถึงเกณฑ์ (ในกรณีของแพ็กเกจตามเวลา เช่น 600 นาทีในช่วง 7 วันข้างหน้า) เกิน ในรูปที่ 1 ด้านล่างนี้ ผู้ติดตามสามารถซื้อโมดูลแพ็กเกจซึ่งเป็นส่วนหนึ่งของ "ACME Blue" ที่ให้การเข้าชมของผู้ใช้ทั่วไป 1 GB ซึ่งต้องใช้ภายใน 1 สัปดาห์หลังจากเปิดใช้งานก่อนที่แพ็กเกจจะหมดอายุ
รูปที่ 1 แพ็กเกจอินเทอร์เน็ตตัวอย่าง
การสร้าง CPID
GTAF ใช้คีย์ผู้ใช้เพื่อระบุตัวตนของสมาชิกเมื่อสื่อสารกับ DPA แอปพลิเคชันที่มีสิทธิ์เข้าถึง MSISDN ของผู้ใช้จะใช้ MSISDN เป็น user_key ได้ ในทางกลับกัน แอปพลิเคชันที่ไม่มีสิทธิ์เข้าถึง MSISDN ต้องสร้างตัวระบุแพ็กเกจของผู้ให้บริการเครือข่าย (CPID) โดยไม่ต้องค้นหา MSISDN ของผู้ใช้ ในส่วนต่อไปนี้ เราจะอธิบายกลไกที่สร้าง CPID
โฟลว์การโทร CPID
รูปที่ 2: ขั้นตอนการโทรเพื่อสร้าง CPID
- แอปพลิเคชันของ Google ใน UE ใช้ API ภายในของ Google เพื่อดึงข้อมูล URL ของปลายทาง CPID จาก GTAF ระบบจะระบุผู้ให้บริการโดยใช้ ที่อยู่ IP สาธารณะของไคลเอ็นต์และ MCC+MNC ของซิมการ์ดที่ใช้งานอยู่ ในกรณีของ MVNO Google จะใช้ SPN และ GID1 เพื่อระบุ MVNO
- ไคลเอ็นต์ส่งคำขอ HTTP GET ไปยังปลายทาง CPID ผู้ให้บริการอาจ รองรับการส่งคำขอผ่าน HTTPS
- ผู้ให้บริการอาจใช้ฟังก์ชันการตรวจสอบแพ็กเก็ตแบบละเอียดเพื่อระบุคำขอและแทรกหมายเลขโทรศัพท์ของผู้ใช้ลงในคำขอเป็นส่วนหัว HTTP
- ปลายทาง CPID จะรับคำขอ สร้าง CPID และส่ง CPID กลับไปยัง UE พร้อมค่า Time to Live (TTL) ที่ระบุระยะเวลาที่ UE ใช้ CPID นี้ได้
ผู้ให้บริการอาจใช้ที่อยู่ IP แทนชื่อโดเมนใน URL ของปลายทาง CPID ด้วยหากต้องการ ที่อยู่ IP อาจอยู่ในพื้นที่ที่อยู่ส่วนตัว แต่ต้องเข้าถึงได้โดยไคลเอ็นต์ของ Google ภายในเครือข่ายของผู้ให้บริการ
ผู้ให้บริการต้องให้ข้อมูลต่อไปนี้แก่ Google ซึ่งเป็นส่วนหนึ่งของ กระบวนการเริ่มต้นใช้งาน 1. CPID_URL ที่แอปพลิเคชันจะใช้ติดต่อเพื่อรับ CPID ต้องระบุ CPID_URL อย่างน้อย 1 รายการ แต่ผู้ให้บริการระบุ URL หลายรายการได้เพื่อเพิ่ม ความพร้อมใช้งาน 1. รายการคำนำหน้า IP ที่ผู้ให้บริการเป็นเจ้าของ รวมถึงรหัสประเทศของอุปกรณ์เคลื่อนที่ (MCC) และรหัสเครือข่ายของอุปกรณ์เคลื่อนที่ (MNC) ที่ผู้ให้บริการต้องการแมป กับ CPID_URL ที่ระบุ หากผู้ให้บริการใช้ SPN หรือ GID1 เพื่อแยกความแตกต่างของ MVNO ในเครือข่าย ผู้ให้บริการจะต้องให้ข้อมูลนี้ด้วย Google จะใช้ข้อมูลนี้เพื่อจับคู่ไคลเอ็นต์กับปลายทาง CPID ที่เกี่ยวข้อง ตามที่แสดงในขั้นตอนที่ 1 ของรูปที่ 2
รูปแบบของคำขอคือ
GET CPID_URL
เนื่องจากเหตุผลเดิม ปลายทาง CPID ควรจะรองรับคำขอเช่นคำขอต่อไปนี้ได้
GET CPID_URL?app={app_id}
ปลายทาง CPID สามารถละเว้นพารามิเตอร์ {app_id}
URL เมื่อสร้าง
CPID แต่ต้องสามารถจัดการคำขอที่มีพารามิเตอร์ได้
คำขอไปยังปลายทาง CPID อาจมีส่วนหัว Accept-Language
หากมี
ส่วนหัว สตริงที่มนุษย์อ่านได้ในการอัปเดตที่ DPA ส่ง
โดยใช้ Mobile Data Plan Sharing API จะต้องใช้การตั้งค่าที่ระบุไว้ใน
คำขอ CPID
ทุกครั้งที่ไคลเอ็นต์ส่งคำขอ GET CPID_URL ไคลเอ็นต์จะต้องได้รับ CPID ใหม่ หากสร้าง CPID สำเร็จ ปลายทาง CPID จะต้องแสดงการตอบกลับ 200 OK เนื้อหาการตอบกลับต้องมีอินสแตนซ์ของ CPIDResponse
{
"cpid": "<CPID_string>",
"ttlSeconds": 2592000
}
CPID ที่ส่งคืนต้องใช้ได้เป็นเวลา ttlSeconds วินาที GTAF จะเข้ารหัส CPID ตาม RFC2396 ในการเรียกใช้ครั้งต่อๆ ไปกับ DPA
หากเกิดข้อผิดพลาด ปลายทาง CPID จะต้องแสดงข้อผิดพลาด HTTP พร้อมเนื้อหาการตอบกลับ ซึ่งต้องมีอินสแตนซ์ของ ErrorResponse ดูรายการค่าสาเหตุ ที่เป็นไปได้และรหัสข้อผิดพลาด HTTP ได้ที่นี่
{
"errorMessage": "<error message>",
"cause": "INVALID_NUMBER"
}
โดยเฉพาะอย่างยิ่ง หากได้รับคำขอ CPID สำหรับผู้ใช้ที่ไม่ได้อยู่ในเครือข่ายของผู้ให้บริการ (เช่น ผู้ใช้ที่เป็นของผู้ให้บริการรายอื่นแต่โรมมิ่งในเครือข่ายที่ให้บริการโดยปลายทาง CPID นี้) หรือผู้ใช้ที่ไม่ได้เลือกแชร์ข้อมูลแพ็กเกจอินเทอร์เน็ตกับ Google ปลายทาง CPID จะต้องแสดงรหัสสถานะ HTTP 403
การสร้าง CPID
วิธีที่แนะนำสำหรับปลายทาง CPID ในการสร้าง CPID คือ
CPID_string = Base64(AES(MSISDN + TimeStamp + language, secret))
ปลายทาง CPID จะต่อ MSISDN, ภาษาที่ไคลเอ็นต์ส่งในส่วนหัว Accept-Language และการประทับเวลาความละเอียดสูง แล้วเข้ารหัสผ่าน AES โดยใช้secret
คีย์ การประทับเวลาควรสอดคล้องกับเวลาที่ CPID
หมดอายุ เอาต์พุตที่เข้ารหัสจะเข้ารหัสแบบ Base64 นอกจากนี้ เมื่อใช้ CPID ใน URL จะต้องเข้ารหัส URL เพื่อจัดการอักขระพิเศษ (/+=) ที่ใช้ใน Base64 โดยเฉพาะอย่างยิ่งเมื่อ GTAF เรียกใช้ DPA หรือเมื่อ DPA เรียกใช้ Mobile Data
Plan Sharing API จะต้องเข้ารหัส URL ของ CPID ข้อดีของการสร้าง CPID
โดยใช้วิธีนี้คือ DPA และปลายทาง CPID ไม่จำเป็นต้องมี
ฐานข้อมูลของ CPID และ MSISDN ที่ถูกต้อง
การติดตั้งใช้งานปลายทาง CPID อาจเป็นเรื่องยาก ทั้งนี้ขึ้นอยู่กับสถานการณ์ของผู้ให้บริการแต่ละราย ความท้าทายอย่างหนึ่งที่พบอยู่บ่อยๆ คือการขอรับสิทธิ์เข้าถึง MSISDN ที่ปลายทาง CPID เรายินดีที่จะ แชร์บทเรียนที่ได้จากการเริ่มต้นใช้งานผู้ให้บริการ โปรดติดต่อเราหากคุณ พบปัญหา
ข้อกำหนดด้านความปลอดภัย
ผู้ประกอบการต้องใช้มาตรการป้องกันที่จำเป็นทั้งหมดเพื่อปกป้องข้อมูลส่วนตัว ของผู้ติดตาม กล่าวโดยละเอียดคือ เพื่อลดการเปิดเผยหมายเลขโทรศัพท์ของผู้ติดตาม ปลายทาง CPID ควรอยู่ภายในขอบเขตความปลอดภัยของคุณ นอกจากนี้ ในกรณีที่ผู้ให้บริการใช้ DPI ผู้ให้บริการ ควรเข้ารหัส MSISDN ก่อนแทรกลงในคำขอ HTTP หากปลายทาง CPID ไม่ใช่ขอบเขตด้านความปลอดภัยของคุณ (เช่น เมื่อมีการติดตั้งใช้งานปลายทาง CPID ในระบบคลาวด์สาธารณะ) ผู้ให้บริการไม่ควรส่ง MSISDN ผ่านอินเทอร์เน็ตสาธารณะในรูปแบบข้อความธรรมดา ผู้ให้บริการสามารถสร้าง VPN ระหว่าง DPI กับปลายทาง CPID (ดูรูปที่ 1) หรือเข้ารหัส MSISDN ก่อนที่จะแทรกลงในส่วนหัว แนวทางหลังนี้ถือว่าปลายทาง CPID สามารถถอดรหัสส่วนหัวที่แทรกเพื่อกู้คืน MSISDN ก่อนที่จะสร้าง CPID นอกจากนี้ ผู้ให้บริการต้องปกป้องคีย์ลับที่ใช้สร้าง CPID และหมุนเวียนคีย์นี้ตามนโยบายความปลอดภัยของผู้ให้บริการ
ความพร้อมใช้งานและข้อกำหนดด้านความจุ
หากไคลเอ็นต์เรียก CPID ไม่ได้ ก็จะเข้าถึงข้อมูลจาก Mobile Data Plan API ไม่ได้ ด้วยเหตุนี้ ผู้ประกอบการต้องใช้มาตรการที่จำเป็น เพื่อให้มั่นใจว่าปลายทาง CPID พร้อมใช้งาน มาตรการดังกล่าวรวมถึง การมีอินสแตนซ์หลายรายการของปลายทาง CPID และฟังก์ชัน DPI และการมี ความซ้ำซ้อนทางกายภาพ ที่ตั้ง และเครือข่ายสำหรับทั้ง 2 ฟังก์ชัน และตรวจสอบว่า ทรัพยากรและความจุของระบบเพียงพอ นอกจากนี้ ปลายทาง CPID และฟังก์ชัน DPI ที่แทรกส่วนหัวต้องมีความจุเพียงพอที่จะรองรับภาระงานของไคลเอ็นต์ Google ทั้งหมดที่ขอ CPID ปลายทาง CPID สามารถใช้ค่าที่ใหญ่ขึ้นในช่อง ttlSeconds เพื่อลดความถี่ที่ สร้าง CPID Google ขอแนะนำให้ใช้ค่า TTL เป็น 30 วัน
หมายเหตุ
-
PMTC ของ VIDEO_OFFLINE หมายความว่าแพ็กเกจนี้ใช้ได้แบบออฟไลน์เท่านั้น (เช่น QoE ของการสตรีมแย่มาก) โดยจะแยกจากหน้าต่าง FlexTime ↩