Verizon Connect provides multiple fleet management solutions for tracking and managing your fleet of vehicles. This guide will focus specifically on Verizon Connect Reveal’s GPS Push Service and how you can connect to the data feed and perform real-time ingestion and analysis with ArcGIS GeoEvent Server. This approach requires a HTTPS endpoint to be set up in such a way that a Verizon Connect can connect and send the data to it. The HTTPS endpoint needs to be protected using basic authentication and be accessible outside of your organization’s network firewall. This guide uses Windows IIS and the following steps highlight enabling basic authentication and routing from an IIS endpoint to an ArcGIS GeoEvent Server connector endpoint. An organization firewall or a load balancer can be used in place of IIS.
This guide will demonstrate the following:
This guide contains a downloadable GeoEvent configuration file which contains GeoEvent Definitions (schemas) that are needed to process data from Verizon Connect Reveal.
The download is at the bottom of the blog page in a .zip file. Download the .zip file, extract the VerizonConnectReveal_Config.xml file, and import it to GeoEvent Server using the following steps.
Note: For this guide, we will be using this name. However, you are free to use any name of your choosing.
Note: This date format is mandatory. Data will not be processed unless this date format is configured with the input connector.
To receive data from Verizon Connect Reveal, the HTTPS endpoint you just created needs to have basic authentication. GeoEvent does not support basic authentication out of the box, so we will need to use an application such as IIS to route traffic from this HTTPS endpoint to a HTTPS endpoint enabled with basic authentication.
Note: IIS does not have to be on the same machine as your GeoEvent Server. However, the web server must be able to communicate with GeoEvent Server.
Next, you will create a local account on the machine that will provide the HTTPS endpoint for the Verizon Connect Reveal server to authenticate, connect to, and send data to.
Next, we will create a virtual directory in IIS that will serve as our HTTPS endpoint.
<!DOCTYPE html>
<html>
<body>
Hello Verizon
</body>
</html>
Next, it is necessary that basic authentication be enabled for the virtual directory in IIS Manager.
If authentication is successful, the webpage will display Hello Verizon, indicating basic authentication is working properly.
The URL Rewrite and Application Request Routing are IIS modules that are needed to redirect HTTP traffic. The URL Rewrite module should be installed first, followed by the Application Request Routing module.
Note: The Rewrite URL you enter should be the same URL as the GeoEvent Server input connector you created in the Configure a GeoEvent Server connector endpoint to receive data from Verizon Connect Reveal section above.
For this example, the Rewrite URL is
https://<your_server>:6143/geoevent/rest/receiver/VerizonConnectReveal-rest-json-in
Your URL should now be accessible via https://<webserverhostname>/verizonreveal
This is the URL that will be used to provide to Verizon Connect in future steps.
It is recommended you encrypt the traffic using an HTTPS URL to avoid exposing the basic authentication information in the HTTP header. Since the HTTP traffic is being sent over a public network, it is also recommended you obtain a CA-signed certificate for your server from a trusted certificate provider (e.g., Verisign, DigiCert, etc.) and apply it to your server.
Verizon Connect requires users to confirm the subscription to the GPS Push Service with a subscription confirmation URL. The initial message from the GPS Push Service contains the SubscribeURL parameter. We will need to use the input connector to receive this message and send it to an output.
In the Configure a GeoEvent Server connector endpoint to receive data from Verizon Connect Reveal section, we already configured the input connector to receive the subscription confirmation message.
GeoEvent Server needs to be able to send the subscription confirmation message to an output using an output connector, such as Send an Email or Write to a JSON File. In this guide, we will be using Write to a JSON File.
Now we must create a GeoEvent Service to connect the input and output connectors that we just created.
Now that the input and output connectors have been configured, we are ready to receive the subscription confirmation message from the GPS Push Service. Ensure that the GeoEvent service and both input and output connectors are turned on and have been configured correctly.
You will now need to submit the following to Verizon Connect:
For more information, go to the following link or contact Verizon Connect Customer Support.
Once HTTPS endpoint and credentials are provided to Verizon Connect, the first message from the GPS Push Service will be the subscription confirmation message.
Note: You will have three days to confirm the submission request. If the subscription has not been confirmed by then, you will need to resubmit the endpoints to Verizon Connect.
If the message was output to a JSON file, it should appear like this:
"Type" : "SubscriptionConfirmation",
"MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b",
"Token" : "2336412f37...",
"TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Message" : "You have chosen to subscribe to the topic arn:aws:sns:us-west-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.",
"SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:12345......",
"Timestamp" : "2012-04-26T20:45:04.751Z",
"SignatureVersion" : "1",
"Signature" : "EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q=",
"SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
Copy and paste the SubscribeURL value (without quotes) into a browser. For example:
This should confirm your subscription to the GPS Push Service.
Once subscribed, we need to reconfigure the input connector to be able to receive data.
The input connector is now ready to receive data from the Verizon Connect Reveal GPS Push Service.
The Verizon Connect Reveal GPS Push Service data contains sub-hierarchies in its data structure. This data is not easily translated to a feature schema that can be used in ArcGIS applications. So, in this case, the GPS Push Service data needs to be mapped to a flattened schema first.
The GeoEvent configuration file included in this guide which includes two GeoEvent Definitions (schemas):
When creating your GeoEvent Service, please ensure you use a Field Mapper processor to map event records to the flattened schema.
Note: Ensure that you configure the request as a POST with the Authentication set to Basic Authentication. Set the content-type to application/json.
{
"data": {
"SequenceId": 162517,
"UpdateUTC": 1614364635000,
"DeviceTimeZoneOffset": -5,
"DeviceTimeZoneUseDST": false,
"DisplayState": "Moving",
"IsPrivate": false,
"SpeedKmph": 30,
"DirectionDegrees": 340,
"Heading": "North",
"DeltaDistanceKm": 0.54,
"OdometerKm": 64853.82300541169,
"TotalEngineMinutes": 179742,
"IdleTimeMinutes": 0,
"Latitude": 35.78075055555556,
"Longitude": -77.90424,
"DeltaTimeInSec": 89,
"SensorBits": 0,
"geometry": {
"x": -77.90424,
"y": 35.78075055555556,
"spatialReference": {
"wkid": 4326
}
},
"f": null,
"token": null,
"SensorValues": null,
"Vehicle": {
"Number": "1234",
"Name": "Truck1234",
"VIN": "1ABCDEF567890",
"ESN": 13000000
},
"Address": {
"AddressLine1": "4020 State Rd 1327, Elm City, NC 27822, USA",
"AddressLine2": "4020 State Rd 1327",
"Locality": "Elm City",
"PostalCode": "27822",
"AdministrativeArea": "NC",
"Country": "USA"
},
"Driver": {
"DriverKeyFobId": 0,
"DriverLastName": "Bond",
"DriverFirstName": "Jason",
"DriverNumber": null
}
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.