Bagikan melalui


Detail teknis peristiwa pemberitahuan operator seluler

Topik ini menjelaskan detail teknis peristiwa pemberitahuan operator seluler.

Payload peristiwa

Payload peristiwa MobileOperatorNotification mencakup bidang berikut:

Bidang Deskripsi
MessageType Enumerasi pesan yang memicu peristiwa.
Antarmuka GUID yang sesuai dengan antarmuka fisik yang terkait dengan peristiwa.
EncodingType Metode pengodean untuk pesan, jika MessageType adalah SMS/USSD.
MessageDataSize Ukuran pesan, dalam byte, jika MessageType adalah SMS/USSD.
Pesan Pesan mentah yang diterima, jika MessageType adalah SMS/USSD.

Peristiwa MobileOperatorNotification memungkinkan setiap skenario yang dijelaskan dalam skenario pemberitahuan operator Seluler dengan membedakannya dengan menggunakan bidang MessageType dalam payload peristiwa. MessageTypedijumlahkan sebagai berikut:

Enumeration Jenis
0 GSM SMS
1 CDMA SMS
2 USSD
3 DataPlanThresholdReached
4 DataPlanReset
5 DataPlanDeleted
6 ProfileConnected
7 ProfileDisconnected
8 RegisteredRoaming
9 RegisteredHome
10 TetheringEntitlementCheck

Item kerja yang terkait dengan peristiwa MobileOperatorNotification harus dimulai dengan logika yang secara efektif membedakan MessageType, dan menjalankan kode yang sesuai untuk setiap skenario.

GSM/CDMA SMS dan USSD

Pesan operator masuk, termasuk SMS dan USSD, memicu peristiwa MobileOperatorNotification bersama dengan MessageTypeyang sesuai. Unik untuk jenis ini adalah EncodingType, MessageDataSize, dan Message.

DataPlanThresholdReached

Secara default, jenis pesan ini dinonaktifkan. Anda dapat mengaktifkannya dengan menggunakan metadata provisi untuk menentukan bidang DataUsageInMobileOperatorNotificationEnabled , seperti yang ditunjukkan di sini.

<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
  <Global>
    <CarrierId>{2c85b76b-f859-47c4-8122-721fe8b6c25f}</CarrierId>
    <SubscriberId>012345678901234</SubscriberId>
  </Global>
  <MBNProfiles>
    <DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
      <Name>Contoso</Name>
      <AssociatedPlan>SamplePlan</AssociatedPlan>
      <Context>
        <AccessString>Contoso.com</AccessString>
        <UserLogonCred>
          <UserName>User</UserName>
          <Password>[PLACEHOLDER]</Password>
        </UserLogonCred>
      </Context>
    </DefaultProfile>
  </MBNProfiles>
  <Plans>
    <Plan xmlns="http://www.microsoft.com/networking/CarrierControl/Plans/v1" Name="SamplePlan">
      <Description PlanType="Fixed">
        <DataLimitInMegabytes>500</DataLimitInMegabytes>
        <DataUsageInMobileOperatorNotificationEnabled>true</DataUsageInMobileOperatorNotificationEnabled>
      </Description>
    </Plan>
  </Plans>
</CarrierProvisioning>

Untuk informasi selengkapnya tentang metadata provisi akun, lihat Provisi akun.

Peristiwa ini dihasilkan dengan MessageType ini ketika penghitung data lokal memperkirakan bahwa penggunaan (byte yang dikirim dan diterima) pada antarmuka broadband seluler telah berubah sebesar 5% sejak kejadian terakhir, kecuali dalam kasus berikut:

  1. Saat tersambung ke jaringan rumah (non-roaming), jika batas paket data belum ditentukan, peristiwa ini dipicu pada setiap 100 MB penggunaan data lokal.

  2. Saat tersambung ke jaringan roaming, batas paket data tidak berlaku dan peristiwa ini dipicu pada setiap 5 MB penggunaan data lokal.

Penghitung data lokal di Windows 8 diperbarui setiap satu menit; paling banyak, peristiwa ini dihasilkan satu kali per menit dalam semua skenario yang dijelaskan. Dalam Windows 8.1 acara dikirimkan secara real time ketika ambang batas 5% telah tercapai.

Catatan

Meskipun informasi ini adalah panduan urutan pertama yang baik, Windows tidak dapat memperkirakan lalu lintas yang tidak ditagih atau untuk penggunaan di perangkat lain yang memiliki batas data yang sama (seperti paket keluarga atau pertukaran SIM). Aplikasi operator seluler harus menggunakan penghitung data lokal hanya untuk memperhitungkan penggunaan sejak sinkronisasi terakhir dengan sistem penagihan operator sendiri. Untuk penggunaan data yang telah diproses, sistem penagihan harus dianggap otoritatif.

DataPlanReset

Pada tanggal reset paket, Data Usage and Subscription Manager (DUSM) mengatur ulang penggunaan data lokal pengguna saat ini menjadi nol.

DataPlanDeleted

Untuk paket data prabayar yang memiliki tanggal kedaluwarsa tetap, DUSM menghapus profil koneksi yang terkait dengan akun pada tanggal kedaluwarsa dan peristiwa MobileOperatorNotification dipicu dengan menggunakan MessageType ini. Ketika profil koneksi dihapus, Windows Pengelola Sambungan tidak lagi mencoba menyambungkan secara otomatis ke jaringan yang dijelaskan oleh profil koneksi.

ProfileConnected dan ProfileDisconnected

Peristiwa MobileOperatorNotification dihasilkan dengan MessageTypeini ketika Windows Pengelola Sambungan terhubung ke profil jaringan yang disediakan oleh metadata pengalaman operator. Kejadian ini dipicu pada setiap koneksi dan pemutusan sambungan, termasuk koneksi awal yang mengikuti tidur/lanjutkan. Ini juga dipicu jika perangkat sudah terhubung ketika metadata aplikasi dan layanan diunduh dan diinstal.

ProfileConnected MessageType dipicu pada konektivitas L2 untuk antarmuka broadband seluler.

Catatan

Pemicu ini terjadi sebelum identifikasi jaringan selesai. Peristiwa NetworkStatusChanged (bagian dari NETWORKInformation API) dihasilkan ketika identifikasi jaringan menentukan tingkat konektivitas jaringan. Untuk informasi selengkapnya tentang identifikasi jaringan, lihat Mulai Cepat: Mengambil informasi koneksi jaringan dan kelas NetworkInformation .

RegisteredRoaming dan RegisteredHome

Peristiwa MobileOperatorNotification dihasilkan dengan MessageTypeini ketika Windows Pengelola Sambungan mendaftar ke jaringan roaming. Kejadian ini dipicu pada setiap pendaftaran, termasuk pendaftaran awal setelah tidur/lanjutkan. Ini juga dipicu jika perangkat sudah terdaftar ke jaringan ketika metadata aplikasi dan layanan diunduh dan diinstal.

Aplikasi ini hanya boleh memberi tahu pengguna satu kali ketika mereka mendaftar di jaringan roaming dan satu kali ketika mereka kembali ke jaringan rumah mereka. Karena peristiwa ini dipicu pada setiap pendaftaran, aplikasi bertanggung jawab untuk melacak status terdaftar sebelumnya dalam data sesi aplikasi.

TetheringEntitlementCheck

Peristiwa MobileOperatorNotification dihasilkan dengan MessageTypeini ketika pengguna mengaktifkan Berbagi Internet. Peristiwa ini dipicu setiap kali pengguna mencoba menggunakan Berbagi Internet selama operator seluler telah mengatur elemen AllowTethering dalam skema metadata layanan ke EntitlementCheckRequired. Untuk informasi selengkapnya tentang skema metadata layanan, lihat Referensi skema paket metadata layanan.

Aplikasi harus menjalankan mekanisme pemeriksaan pemberian hak yang sesuai yang didukung oleh jaringan operator seluler dan mengirim hasilnya ke sistem dengan menggunakan metode AuthorizeTethering dari kelas NetworkOperatorNotificationEventDetails di namespace Layanan Windows.Networking.NetworkOperators . Jika aplikasi tidak memiliki kemampuan untuk menjalankan pemeriksaan pemberian hak, operator seluler harus mengubah elemen Metadata Layanan AllowTethering menjadi Always atau Never, sehingga peristiwa tidak pernah dihasilkan.

Daftar untuk peristiwa MobileOperatorNotification dengan menggunakan metadata

Secara umum, aplikasi harus dijalankan oleh pengguna setidaknya satu kali sebelum dapat mendaftarkan item kerja dengan broker Peristiwa Sistem. Namun, karena peristiwa MobileOperatorNotification diperlukan untuk menyelesaikan skenario broadband seluler utama, peristiwa ini dikaitkan dengan aplikasi broadband seluler dengan menggunakan metadata layanan. Dalam metadata layanan, konfigurasikan elemen DeviceCompanionApplications .

<DeviceCompanionApplications>
  <Package>
    <Identity Name="MyOperatorNotification" Publisher="MyCorporation " />
    <Applications>
      <Application Id="MyOperatorNotification" />
        <DeviceNotificationHandlers>
          <DeviceNotificationHandler EventID="MobileOperatorNotificationHandler" EventAsset="backgroundtask.js" />
      </DeviceNotificationHandlers>
    </Applications>
  </Package>
</DeviceCompanionApplications>

Atribut EventID memberi tahu sistem peristiwa seperti apa yang diharapkan dari perangkat. Nilai atribut EventAsset harus menunjuk ke titik masuk yang mengimplementasikan tugas latar belakang. Ini akan memberi tahu sistem tugas mana yang akan dijalankan ketika peristiwa tertentu telah terjadi.

Dengan menggunakan contoh ini, sistem membuat dan mendaftarkan peristiwa yang khusus untuk perangkat tersebut. Ini juga mendaftarkan aplikasi broadband seluler untuk peristiwa ini. Aplikasi harus memiliki file JavaScript yang disebut backgroundtask.js yang dijalankan oleh sistem setiap kali menerima pemberitahuan operator.

Jika aplikasi broadband seluler ditulis dalam C#, aset peristiwa harus menunjuk ke kelas runtime yang mengimplementasikan antarmuka backgroundtask.

<DeviceNotificationHandlers>
  <DeviceNotificationHandler EventID="MobileOperatorNotificationHandler" EventAsset="MNOMessageBackground.OperatorNotification" />

Saat metadata layanan dan aplikasi diunduh, Device Setup Manager mendaftarkan item kerja yang sesuai dengan System Event Broker sebelum aplikasi dijalankan. Segera setelah item kerja terdaftar, jika perangkat broadband seluler terdaftar atau terhubung ke jaringan, peristiwa MobileOperatorNotification dipicu bersama dengan MessageType yang sesuai.

Mengubah pendaftaran tugas latar belakang dalam metadata

Jika titik entri tugas latar belakang diubah dalam versi aplikasi broadband seluler yang diperbarui, elemen DeviceNotificationHandler dalam metadata layanan juga harus diubah.

Metadata layanan diperbarui secara otomatis pada komputer yang menjalankan Windows 8, Windows 8.1, dan Windows 10. Aplikasi broadband seluler diperbarui di Microsoft Store. Anda harus menghindari perubahan pendaftaran tugas latar belakang DeviceNotificationHandler dalam metadata layanan. Jika perubahan diperlukan, metadata layanan harus berisi referensi ke semua titik entri tugas latar belakang yang berbeda yang digunakan di semua versi aplikasi broadband seluler yang didukung untuk mempertahankan fungsionalitas bagi pengguna yang belum memperbarui aplikasi broadband seluler.

Menentukan aturan pemfilteran dalam provisi XML

Windows menerima file provisi berbasis XML dari Anda. Versi sampel XML provisi diperlihatkan di sini:

<?xml version="1.0" encoding="utf-8"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
    <Global>
        <!-- Adjust the Carrier ID to fit match the Service Number in service metadata. Refer to the documentation about CarrierId. -->
        <CarrierId>{11111111-1111-1111-1111-111111111111}</CarrierId>
        <!-- Adjust the Subscriber ID. Refer to the documentation about Subscriber ID's. -->
        <SubscriberId>1234567890</SubscriberId>
    </Global>
    <MBNProfiles>
        <DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
            <!-- Adjust the profile name -->
            <Name>Contoso</Name>
          <AssociatedPlan>Limited</AssociatedPlan>
            <!-- Adjust the home provider name for the given SIM/Device -->
            <HomeProviderName>Contoso</HomeProviderName>
            <Context>
                <!-- Adjust the access string to your APN. -->
                <AccessString>Contoso.Contoso</AccessString>
                <!-- Adjust the UserLogonCred to fit your UserLogonCred. Refer to the documentation about UserLogonCred's. -->
                <UserLogonCred>
                    <UserName>user</UserName>
                    <Password>[PLACEHOLDER]</Password>
                </UserLogonCred>
            </Context>
        </DefaultProfile>
      <Messages xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
        <Message RuleId="Sample1" Silent="true">
          <SMSBearer ClassZeroOnly="false" Sender="18005551212"/>
          <!-- [^]* matches all messages from this sender, regardless of content -->
          <Pattern>[^]*</Pattern>
          <!-- Because no Fields are specified, this message will be passed to the operator app without parsing. -->
        </Message>
        <Message RuleId="Sample2" Silent="false">
          <!-- Parsing a simple usage message. -->
          <USSDBearer/>
          <Pattern>(\d+\.\d+)(\w+) of (\d+)(\w+) used as of (\S+)</Pattern>
          <!-- Using these field definitions, Windows will automatically update usage data before passing the message
               to the operator app. -->
          <Units G="GB" M="MB"/>
          <Fields>
            <!-- These fields are currently unordered, but an order will be required in RC. -->
            <Usage Group="1" UnitGroup="2"/>
            <UsageTimestamp Group="5" Format="%I:%M%p on %d %b"/>
            <DataLimit Group="3" UnitGroup="4"/>
          </Fields>
        </Message>
      </Messages>
  </MBNProfiles>
  <Provisioning />
</CarrierProvisioning>

Untuk informasi selengkapnya tentang metadata provisi akun, lihat Provisi akun.

Aturan untuk mengidentifikasi pesan teks sebagai pesan operator dapat ditentukan dalam XML ini.

  • Pengirim yang diizinkan Atribut Pengirim menentukan alamat pengirim yang dipesan dari mana pemberitahuan diizinkan untuk tiba. (Nomor ini harus sama persis dengan nomor pengirim yang diterima dalam pesan SMS, termasuk format internasional).

  • Pola Ekspresi reguler untuk mengidentifikasi dan secara opsional mengekstrak bidang data dari pesan teks. Untuk mencocokkan semua pesan dari pengirim, gunakan pola [^]*.

Mengaktifkan pemberitahuan operator seluler dan peristiwa sistem

Membuat dan mengonfigurasi pengalaman Berbagi Internet