先訂閱一支門號的漫遊狀態。門號開始漫遊、換了國家,或結束漫遊時,電信主動通知服務方。
A抵達日本
電信通知開始漫遊
手機在日本連上當地電信,電信推送「開始漫遊」事件。
B從日本到韓國
電信通知換國家・韓國
漫遊中換了國家,事件附上新的國家。
C回到台灣
電信通知結束漫遊
手機回到台灣的網路,電信推送「結束漫遊」事件。
一個訂閱一種事件開始漫遊、換國家、結束漫遊,各自建立訂閱。
漫遊狀態事件也可以訂閱「漫遊狀態」:開始或結束漫遊都通知,並可提供國家資訊。
裝置漫遊狀態訂閱:運作原理
- 建立訂閱服務方送出接收通知的網址與一種事件類型;裝置由授權權杖識別,或在請求中指定。可設定到期時間與通知次數上限。
- 等待事件訂閱生效後,電信持續留意這支門號的漫遊狀態。
- 推送通知事件發生時,電信把通知送到指定的網址;訂閱結束時也會通知。
裝置漫遊狀態訂閱:API 規格
規格名稱
Device Roaming Status Subscriptions(CAMARA 開源規格)
呼叫方式
POST /subscriptions 建立;GET /subscriptions 列出;GET/DELETE /subscriptions/{subscriptionId} 查詢或刪除輸入
protocol(HTTP)、sink 接收網址、types(一種事件類型)、config.subscriptionDetail.device 裝置(使用三方授權權杖時由權杖識別,不另外帶)事件
roaming-status、roaming-on、roaming-off、roaming-change-country;另有 subscription-started、subscription-updated、subscription-ended
訂閱設定
config.subscriptionExpireTime 到期時間、config.subscriptionMaxEvents 通知次數上限;config.initialEvent 設為 true 時,建立時若已符合條件先通知一次;換國家事件不適用(這次通知也計入次數上限)典型用途
即時掌握裝置開始、結束漫遊與漫遊國家的變化
| 事件內容 | 意思 | 範例 |
|---|---|---|
| roaming-on/roaming-off | 開始或結束漫遊 | …v0.roaming-on |
| roaming-change-country | 漫遊中換了國家,附上 countryCode 與 countryName | 450、["KR"] |
| roaming-status | 漫遊狀態改變,附上 roaming,並可提供國家 | true |
| data.terminationReason | 訂閱結束的原因:MAX_EVENTS_REACHED、NETWORK_TERMINATED、SUBSCRIPTION_EXPIRED、ACCESS_TOKEN_EXPIRED、SUBSCRIPTION_DELETED | SUBSCRIPTION_EXPIRED |
三個情境的回覆內容(節錄)
A抵達日本
type
org.camaraproject.device-roaming-status-subscriptions.v0.roaming-on開始漫遊data.subscriptionId
550e8400-e29b-41d4對應的訂閱編號B從日本到韓國
type
org.camaraproject.device-roaming-status-subscriptions.v0.roaming-change-country漫遊中換了國家data.countryCode
450韓國的行動國碼(MCC)data.countryName
["KR"]國家代碼:韓國C回到台灣
type
org.camaraproject.device-roaming-status-subscriptions.v0.roaming-off結束漫遊規格來源:CAMARA DeviceRoamingStatus r1.2(Device Roaming Status Subscriptions v0.8.0)