Memulai Berbagi Paket Data Seluler

Terminologi

  • GTAF: Fungsi Aplikasi Traffic Google. Layanan Google yang menerapkan Data Plan Sharing API dan berinteraksi dengan DPA atas nama aplikasi Google. Aplikasi Google dapat mengkueri GTAF untuk informasi paket data pengguna. Atau, jika aplikasi Google mendaftar ke GTAF, GTAF dapat mengirim info terbaru tentang paket data pengguna.
  • MSISDN: Nomor Direktori Pelanggan Internasional Stasiun Seluler, nomor yang mengidentifikasi langganan secara unik di jaringan seluler. Lebih umum dikenal sebagai nomor telepon.
  • CPID Endpoint: Layanan yang diterapkan oleh operator jaringan seluler yang menghasilkan ID paket operator (CPID) yang dapat digunakan untuk mencari informasi paket data pengguna. CPID memungkinkan aplikasi mengkueri detail paket data pengguna tanpa mengakses MSISDN pengguna. Kami menjelaskan prosedur pembuatan CPID di bawah ini.
  • Kunci Pengguna: Kunci pengguna adalah string yang dapat digunakan untuk mengidentifikasi paket data pengguna. Ini bisa berupa CPID atau MSISDN untuk aplikasi yang memiliki akses ke MSISDN.
  • DPA: Agen Paket Data, layanan yang diterapkan oleh operator jaringan seluler yang membagikan informasi paket data pengguna kepada GTAF. DPA dapat berbagi informasi dengan GTAF menggunakan kombinasi pengiriman data menggunakan Google Mobile Data Plan Sharing API dan menerapkan Data Plan Agent API. DPA juga dapat bertindak sebagai endpoint CPID.
  • UE: Peralatan Pengguna, perangkat yang digunakan oleh pengguna.

Bahasa Persyaratan

Kata kunci "HARUS", &}}

Berbagi Paket Data Seluler

Pada tingkat tinggi, Berbagi Paket Data Seluler terdiri dari tiga bagian:

  1. Mekanisme untuk membuat dan memperbarui ID paket jasa kurir (CPID) yang dapat digunakan sebagai kunci pengguna. Aplikasi yang memiliki akses ke MSISDN, MSISDN dapat menggunakannya sebagai kunci pengguna.
  2. Google Mobile Data Plan Sharing API yang memungkinkan DPA mengirim informasi tentang paket data pengguna ke Google. Misalnya, jika ingin memberi tahu pengguna tentang penawaran, DPA dapat memberi tahu GTAF yang selanjutnya akan memberi tahu pengguna.
  3. Data Plan Agent API yang diterapkan oleh DPA yang memungkinkan GTAF mengajukan kueri ke DPA untuk mendapatkan informasi tentang paket data pengguna. Misalnya, jika ingin menampilkan saldo paket data saat ini kepada pengguna, aplikasi dapat melakukan kueri GTAF yang kemudian mengkueri DPA.

Bagian lainnya dari halaman ini memperkenalkan terminologi paket data dan cara membuat CPID. Berikutnya, Google Mobile Data Plan Sharing API dan Spesifikasi Data Plan Agent API API.

Terminologi Paket Data

Skema planStatus yang ditentukan dalam API HARUS dapat mewakili paket data yang ditawarkan oleh operator kepada pengguna. API mendukung penetapan paket data yang menagih pengguna dengan tarif berbeda untuk semua traffic ke sekumpulan URL tertentu (mis., semua traffic ke *.acmefake.com dikenai biaya dengan tarif yang berbeda). API ini juga mendukung paket data yang menawarkan tarif berbeda untuk jenis tindakan tertentu di aplikasi. Kami menyebut paket data sub-aplikasi ini. Contoh paket data sub-aplikasi adalah menawarkan penjelajahan video tanpa biaya (yaitu, tarif nol), saat menonton video dalam aplikasi akan memotong data dari saldo data pelanggan. Aplikasi video HARUS dapat mempelajari informasi ini saat membuat kueri untuk informasi paket data.

Di sini, kami memperkenalkan beberapa istilah yang terkait dengan paket data. Gambar 1 memberikan contoh paket data yang mewakili konsep yang ingin kami catat.

Paket Data: paket layanan seluler level teratas yang dibeli pelanggan. Hal ini dapat sesederhana "data seluler 10 GB selama 30 hari" atau dapat didefinisikan sebagai kumpulan komponen, juga dikenal sebagai modul. Paket data memiliki:

  • Nama Paket Data, seperti "ACME Red".
  • ID Paket Data, yang digunakan untuk merujuk ke paket, misalnya selama pembelian.
  • Waktu habis masa berlaku, saat paket data berakhir.
  • Kategori Paket, baik paket tersebut adalah paket prabayar maupun paket pascabayar.

Modul Rencana: komponen paket data. Secara khusus, modul rencana memiliki:

  • Nama Modul, seperti "Video Malam Gratis".
  • Kecepatan Maks, bandwidth yang ditawarkan kepada pengguna oleh modul ini.
  • Flex Time Windows, jangka waktu saat diskon dapat ditawarkan kepada pengguna.
  • Plan Module Traffic Category (PMTC), deskripsi traffic data yang diterapkan pada modul. PMTC dapat bersifat umum seperti *semua traffic Internet *atau sama spesifiknya dengan traffic yang dihasilkan/digunakan oleh satu atau beberapa aplikasi, situs, atau bahkan perjalanan pengguna dalam satu aplikasi. Contoh yang kedua adalah "musik tanpa batas", "Paket Data Video 100 MB (VDP)", "data game tak terbatas" dan "penjelajahan video tak terbatas". Untuk memfasilitasi definisi PMTC, kami telah menentukan PMTC berikut: GENERIC, VIDEO, VIDEO_BROWSING, VIDEO_OFFLINE1, MUSIC, GAMING, SOCIAL, MESSAGING dan PMTC_UNSPECIFIED.

  • Volume data atau batas waktu, setelah diaktifkan, modul paket akan berakhir saat volume data atau batas waktu (untuk paket berbasis waktu, misalnya, Akses internet selama 600 menit selama 7 hari ke depan) terlampaui. Pada Gambar 1 di bawah, pelanggan dapat membeli modul paket, sebagai bagian dari "ACME Blue", yang menyediakan 1 GB traffic pengguna umum yang harus digunakan dalam waktu satu minggu setelah aktivasi.

Contoh Paket Data API

Gambar 1. Contoh paket data.

Menetapkan CPID

GTAF menggunakan kunci pengguna untuk mengidentifikasi pelanggan saat berkomunikasi dengan DPA. Aplikasi yang memiliki akses ke MSISDN pengguna dapat menggunakannya sebagai user_key. Di sisi lain, aplikasi yang tidak memiliki akses ke MSISDN harus membuat ID paket operator (CPID) tanpa menemukan MSISDN pengguna. Selanjutnya, kami menjelaskan mekanisme yang membentuk CPID.

Alur Panggilan CPID

Gambar 2: Alur panggilan untuk menetapkan CPID.

  1. Aplikasi Google di UE menggunakan API internal Google untuk mengambil URL endpoint CPID dari GTAF. Operator diidentifikasi menggunakan alamat IP publik klien dan MCC+MNC kartu SIM yang aktif. Untuk MVNO, Google akan menggunakan SPN dan GID1 untuk menentukan MVNO
  2. Klien mengeluarkan permintaan HTTP GET ke endpoint CPID. Operator MUNGKIN mendukung pengiriman permintaan melalui HTTPS.
  3. Operator DAPAT menggunakan fungsi Deep Packet Inspection untuk mengidentifikasi permintaan dan memasukkan nomor telepon pengguna ke permintaan sebagai header HTTP.
  4. Endpoint CPID menerima permintaan, membuat CPID, dan menampilkan CPID ke UE dengan waktu aktif (TTL) yang menunjukkan berapa lama UE dapat menggunakan CPID ini.

Operator DAPAT juga menggunakan alamat IP, bukan nama domain di URL endpoint CPID, jika lebih disukai. Alamat IP MUNGKIN berada di ruang alamat pribadi, tetapi harus dapat dijangkau oleh klien Google di dalam jaringan operator.

Operator SHALL memberikan informasi berikut ke Google sebagai bagian dari proses aktivasi: 1. CPID_URL yang akan dihubungi oleh aplikasi untuk mendapatkan CPID. Satu CPID_URL bersifat wajib, tetapi operator dapat memberikan beberapa URL untuk meningkatkan ketersediaan. 1. Daftar awalan IP yang dimiliki operator dan Kode Negara Seluler (MCC) serta Kode Jaringan Seluler (MNC) yang ingin dipetakan oleh operator ke CPID_URL yang diberikan. Jika operator menggunakan SPN atau GID1 untuk membedakan video MVNO di jaringannya, operator tersebut juga akan memberikan informasi ini. Google akan menggunakan informasi ini untuk mencocokkan klien dengan endpoint CPID yang sesuai, seperti yang ditunjukkan pada Langkah 1 pada Gambar 2.

Format permintaannya adalah: GET CPID_URL Karena alasan lama, endpoint CPID harus dapat mendukung permintaan seperti berikut:

GET CPID_URL?app={app_id}

Endpoint CPID dapat mengabaikan parameter URL {app_id} saat membuat CPID. Namun, fungsi ini HARUS dapat menangani permintaan yang berisi parameter.

Permintaan ke endpoint CPID MUNGKIN menyertakan header Accept-Language. Jika header disertakan, string yang dapat dibaca manusia dalam update yang dikirim DPA menggunakan Mobile Data Plan Sharing API HARUS menggunakan setelan yang disediakan dalam permintaan CPID.

Setiap kali klien mengeluarkan permintaan GET CPID_URL, klien HARUS menerima CPID baru. Jika pembuatan CPID berhasil, endpoint CPID HARUS menampilkan respons 200 Oke. Isi respons HARUS berisi instance CPIDResponse.

{
    "cpid": "<CPID_string>",
    "ttlSeconds": 2592000
}

CPID yang ditampilkan HARUS valid selama ttlSeconds detik. GTAF akan mengenkode CPID per RFC2396 pada panggilan berikutnya ke DPA.

Jika terjadi error, endpoint CPID HARUS menampilkan error HTTP dengan isi respons yang HARUS berisi instance ErrorResponse. Daftar kemungkinan penyebab kode kode HTTP dan error tersedia di sini.

{
    "errorMessage": "<error message>",
    "cause": "INVALID_NUMBER"
}

Khususnya, jika permintaan CPID diterima untuk pengguna yang bukan anggota jaringan operator (misalnya, pengguna yang termasuk dalam operator lain tetapi roaming di jaringan yang disalurkan oleh endpoint CPID ini) atau yang belum memilih untuk berbagi informasi paket data dengan Google, endpoint CPID HARUS menampilkan kode status HTTP 403.

Pembuatan CPID

Cara yang DIREKOMENDASIKAN untuk endpoint CPID guna membuat CPID adalah:

CPID_string = Base64(AES(MSISDN + TimeStamp + language, secret))

Endpoint CPID menggabungkan MSISDN, bahasa yang dikirim oleh klien dalam header Bahasa Terima, dan stempel waktu resolusi tinggi serta mengenkripsinya melalui AES menggunakan kunci secret. Stempel waktu SEHARUSNYA sesuai dengan waktu CPID berakhir. Output yang dienkripsi dienkode dengan Base64. Selain itu, saat digunakan oleh CPID di URL, CPID harus dienkode ke URL untuk menangani karakter khusus (/+=) yang digunakan di Base64. Khususnya saat GTAF memanggil DPA atau saat DPA memanggil API Berbagi Data Seluler, CPID HARUS dienkode ke URL. Keuntungan membuat CPID menggunakan pendekatan ini adalah endpoint DPA dan CPID tidak perlu memiliki database CPID dan MSISDN yang valid.

Bergantung pada situasi operator tertentu, mungkin akan sulit untuk menerapkan endpoint CPID. Tantangan tertentu yang sering dihadapi adalah mendapatkan akses ke MSISDN di endpoint CPID. Dengan senang hati kami berbagi pelajaran dari operator orientasi yang telah dipelajari. Hubungi kami jika Anda menghadapi tantangan.

Persyaratan Keamanan

Operator SHALL akan mengambil semua tindakan pencegahan yang diperlukan untuk melindungi informasi pribadi pelanggan mereka. Khususnya, untuk meminimalkan paparan nomor telepon pelanggan, endpoint CPID SEHARUSNYA berada dalam perimeter keamanan Anda. Selain itu, untuk kasus saat operator menggunakan DPI, operator harus mengenkripsi MSISDN sebelum memasukkannya ke permintaan HTTP. Jika endpoint CPID bukan perimeter keamanan Anda (misalnya, saat endpoint CPID di-deploy di cloud publik), operator TIDAK boleh mengirimkan MSISDN melalui Internet publik secara jelas. Operator dapat membuat VPN antara DPI dan endpoint CPID (lihat Gambar 1) atau mengenkripsi MSISDN sebelum memasukkannya ke dalam header. Pendekatan yang terakhir mengasumsikan bahwa endpoint CPID dapat mendekripsi header yang dimasukkan untuk memulihkan MSISDN sebelum menghasilkan CPID. Selain itu, operator SHALL akan melindungi kunci rahasia yang digunakan untuk membuat CPID dan merotasi kunci ini sesuai dengan kebijakan keamanan operator.

Persyaratan Ketersediaan dan Kapasitas

Jika klien tidak dapat mengambil CPID, mereka tidak dapat mengakses informasi apa pun dari Mobile Data Plan API. Karena alasan ini, operator SHALL akan mengambil tindakan yang diperlukan untuk memastikan ketersediaan endpoint CPID. Langkah-langkah tersebut termasuk memiliki beberapa instance endpoint CPID dan fungsi DPI serta memiliki redundansi fisik, situs, dan jaringan untuk kedua fungsi, serta memastikan bahwa resource dan kapasitas sistem sudah memadai. Selain itu, endpoint CPID serta fungsi DPI yang memasukkan header harus memiliki kapasitas yang cukup untuk menangani pemuatan semua klien Google yang meminta CPID. Endpoint CPID dapat menggunakan nilai yang lebih besar di kolom ttlSeconds untuk mengurangi frekuensi menghasilkan CPID. Google merekomendasikan penggunaan nilai TTL selama 30 hari.

Catatan


  1. PMTC VIDEO_OFFLINE berarti paket ini hanya bagus untuk offline (misalnya, QoE streaming yang benar-benar buruk). Ini tidak bergantung pada jendela FlexTime.