cancel
Showing results for 
Search instead for 
Did you mean: 
cancel

VMSE: Meraki and CMX

1113
Views
9
Helpful
1
Comments
Beginner

Several indoor location enabled applications have been built on top of Cisco CMX using Mobility Services Engine (MSE) APIs on traditional Cisco APs. Re-coding these for their deployment on different Cisco platforms is probably not the best way to do it and thus drives the developers away. One such very popular platform is Cisco Meraki, which also has CMX capabilities very different from CMX MSE APIs. Therefore, projects like Glance, that use MSE APIs for using cisco CMX can not be deployed by customers who use Meraki hardware.

The hack introduced here tries to solve this problem by an API translator service that would listen to Meraki Cloud for its CMX data. We call this Virtual Mobility Services Engine (VMSE), a server which has the same functionality as traditional Cisco MSE. Meraki cloud posts the location data, of all clients in the netowrk, to VMSE every few seconds. The data is then parsed and passed to the API translator service, which creates APIs for both Notification and Location service similar to that in MSE.

Anshul-blog3.jpg

Unlike Cisco CMX, Meraki does not have the concept of Zones. We introduced a virtual zone service to define zones in VMSE over Meraki network in the form of a rectangle. The user just needs to enter the co-ordinates of one of its diagonals. The receivers can subscribe for movement, containment, association notification for specific or all clients. VMSE, by default, tries to notify its receivers 4 times every second which can also be changed using the configuration APIs. Once set, VMSE will behave similar to a MSE server.

Below are some of the APIs introduced in VMSE


         Method

API URI

Description

GET

/meraki/api/v[1|2]/location/clients


*optional parameters : macAddress,

IpAddress


Get client locations by mac, ip or all

/meraki/api/v[1|2]/location/clients/count

Count of clients in network

/meraki/api/v1/zone/list

List of zones in network

POST

/meraki/api/v1/zone/set

Set zone by diagonal coordinates

PUT

/meraki/api/v[1|2]/notification

Subscribe to notification

DELETE

/meraki/api/v[1|2]/notification/:name

Delete notification by name





To deploy your application on Meraki hardware, you just need to point your application to the VMSE server instead of previous MSE server. Till now, we have VMSE compatible for CMX versions up to 10.2.

Case Study:

We used this hack in the innovation project called Glance. Glance is a cloud application to help people track devices, assets, experts etc. based on their location leveraging CMX technology. We successfully deployed Glance on Meraki hardware by just pointing it to the VMSE hosted on a public server instead of an MSE and replacing the API call URLs with the new once.


Follow me at anshulagrawal.net to share thoughts on everything tech.

1 Comment
Cisco Employee

Nice work on the VMSE. Glance is a great way to show off what location tracking can do. It is amazing what can be done with even a single Cisco Meraki MR access point.

Update: Zoning is supported in the Meraki CMX API version 2. To add zoning info to your API, select an AP and assign a Tag. AP Tags allow you to define regions or zones within your network at the AP level or grouping several APs together. While a different approach than geo-fencing with coordinates, tags can be used as categories as well. This concept of tagging zones and grouping APs enables analytics like comparing two stores on the same floor, or the first floor versus the second floor, or all stores in Texas vs. all stores in California.

Content for Community-Ad

This widget could not be displayed.