Checking roaming status
The Device Status SDK allows checking the device roaming status and subscribing to its related events. A device can be in national (different networks in the same country) or international roaming (different networks in another country). Knowing whether device is connected to a network other than its home one is important for regulatory, security and content delivery reasons.
For example, in some cases for certain transactions to take place, a device needs to be within an area where it is legally allowed to operate or make transactions. Another case would be to ensure a customer's device is exactly where it claims to be to avoid fraud. Other important examples include content or service delivery to avoid extra costs or unexpected roaming charges for accessing them.
Getting device roaming status
The SDK below allows you to subscribe client devices to Device Status roaming events.
from fastapi import FastAPI
from pydantic import BaseModel
import network_as_code as nac
from network_as_code.models.device import Device, DeviceIpv4Addr
client = nac.NetworkAsCodeClient(
token="<your-application-key-here>"
)
device = client.devices.get("device@bestcsp.net",
ipv4_address = DeviceIpv4Addr(public_address="192.0.2.3",
private_address="192.0.2.204",
public_port=80))
# Simply change the event_type to "ROAMING" or "Connectivity" status whenever needed.
subscription = client.connectivity.subscribe(
event_type="ROAMING_STATUS",
device=device,
max_num_of_reports=5,
notification_url="https://example.com/notifications",
notification_auth_token="my_token"
)
# Use this to show the roaming subscription status
print(subscription)
Device object parameters
The snippet above identified a mobile network device in multiple ways (IP addresses, port, etc). Learn how to create a device object and understand how the DeviceIPv4Addr
model works using NAT technology.
Roaming subscription parameters
Above, we created a subscription
object for roaming status
and supplied the necessary parameters to the
client.connectivity.subscribe()
method. The parameters table below
describes which data each parameter expects to receive.
Parameters | Description |
---|---|
event_type | The status type you want to check, which is "ROAMING_STATUS" in this case |
device | Device ID callback parameter. |
max_num_of_reports | How many reports will be sent to you. |
notification_url | Here you can inform a webhook endpoint to receive Device Status notifications. |
notification_auth_token | A password used to identify the sender of the notification. |