23 March 2015

Event Monitoring Quick Start Guide or How to get from zero to dashboard in 10 minutes or less


So you are trying Event Monitoring out or perhaps you've purchased the add-on. Now what?

That was exactly what happened the other day when a customer asked me where the check box in setup was to get started with Event Monitoring.

Unfortunately, he stumbled upon two critical points when getting started with Event Monitoring:
  1. It's an API only feature. There is no check box in setup.
  2. It's just log data. What you do with that data is up to you whether you store it for a long time or you analyze it with a dashboard.
But it dawned on me that what the customer really needed was a quick start guide - from zero to dashboard in ten minutes or less.

Below is a set of steps to help get started quickly regardless of whether you are trying it out or you are ready to implement.

Steps to getting started


1. What should you expect to get for your edition?

  • Enterprise, Unlimited, Performance Edition: Login/Logout log lines for free with 1 day data retention
  • Enterprise, Unlimited, Performance Edition: full 28 log lines for add-on price with 30 day data retention
  • Developer Edition: full 28 log lines for free with 1 day data retention
That means that pretty much any organization that has access to our API has some form of Event Log Files already provisioned, even if it's only the Login and Logout log file types. Knowing what edition you have is important because it's what determines what you can access using the API. However, if you don't have a production organization and still want to try it out, sign up for Developer Edition which is free.

Troubleshooting tip: You won't see any Event Log File records for the first 24 hours from when it is provisioned. So if you don't see any records at first, try again tomorrow.

2.  What permissions do you need to access Event Log Files?

You need at least the following permissions:
  • API Enabled
  • View Event Log Files (However, any user with View All Data automatically gets access as well)
To add them, go to Setup > Administer > Manage Users > Permission Sets to create a new permission set with these two permissions.

To assign them to your user,  click on the Manage Assignments button in the permission set you just created and click Add Assignments to find your user and assign them to the permission set you just created. 

Troubleshooting tip: if you don't have the ability to create, edit, and assign a permission set, talk with a system administrator who does. 

3. Now you have access, but how do you actually access Event Log Files?

Remember, there is no check box in setup. You have to use the API.

I typically try new things out in the API using the workbench which works on any platform and provides access to a Swiss Army knife of great API features.


Once you login to workbench, the first thing to verify is that you have EventLogFile data. Go to queries > SOQL Query and from the object drop down, select EventLogFile.

To verify that you have some data, run the following query:

SELECT count() FROM EventLogFile

Troubleshooting tips:
  • if you can't login, you don't have API access and need to go back to step 2.
  • if you don't see EventLogFile from the object drop down, you don't have access and need to go back to step 2.
  • if you get 0 records returned from the query, you don't have any data yet and you should plan on trying again tomorrow.

4. Now that you have data, how do you view it?

While in workbench, go to utilities > REST Explorer and enter the following query into the text box:

/services/data/v33.0/query?q=SELECT+Id+,+EventType+,+LogDate+,+LogFileLength+,+LogFile+FROM+EventLogFile+ORDER+BY+CreatedDate+DESC+Nulls+Last


You should get some records back. Expand one of the records and click on the LogFile link attribute.


Copy everything in double quotes and pasted into a text editor like Notepad or Sublime. If you save that content with a '.csv' file extension, you now have a CSV file with your log data.

Troubleshooting tips:
  • if workbench times out, try a smaller file. Login as and Report Export tends to render in workbench. URI, Visualforce, Apex, and API tend to be too large.

5. Now you've seen the data, how do you download it when there's a lot of it?

That's where an automation script works great. I've written several blog posts to get started with writing an automation script:


You can also use a middleware provider like Cast Iron or Informatica. Just make sure they can deserialize base64 (Blob) content and/or handle CSV data.

Troubleshooting tips:
  • if you only have a Windows machine, I recommend using the python script since the other scripts are optimized for Linux and Mac operating systems.
  • if you run into some problems, comment on this blog post and I'll try to help out.

6. Now you have the data locally, but how do you make it look good?

To make it look good, you need a visualization layer. Event Monitoring doesn't come with one by default; however, there are a number of add-on tools that you can use. Below are some great ISVs (independent software vendors) who already build on top of Event Monitoring:
  • Salesforce Analytics Cloud and the Wave Platform
  • Splunk
  • New Relic
  • Fairwarning
  • ezCloudAudit
  • SkyHigh Networks
  • Cloudlock
That doesn't mean you can't use other tools like Tableau or Qlik.  As long as they can handle CSV data, they can visualize Event Monitoring data.

In case you don't have access to any of these, I recommend a free service like Plot.ly or Raw Designs.

In the Visualizing Identity Fraud Using Login History blog post, I discussed the Raw app from Density Designs.

To use Raw, just paste the CSV data you downloaded in step 4 and pick from one of their great visualizations like a Circular Dendrogram.


When you map your dimensions, pick USER_ID and URI to get a sense of who is download what reports.


And finally visualize your data.


Event Monitoring enables organizations to have self-service access to the app logs for a variety of use cases. What are you going to do with the data once you have it?

10 March 2015

ElfPy - a Tasty Little Script for Downloading Event Log Files on Multiple Platforms



We launched Event Monitoring with Event Log Files last November. Since then, we've had a lot of customers sign up to download their log files.

But recently, one of those customers reached out with a problem. He was a Salesforce administrator on a Windows machine. That meant he had to write code or use one of my stock Bash shell scripts. Most administrators aren't used to writing code and Windows as a platform doesn't support Bash shell scripts without a lot of elbow grease, duct tape, and spit.

To fix this, I created a Python script that runs on multiple platforms including Windows, Linux, and Mac OSX. You can download the script from my Github repo.  You will need to install Python version 2.7.9 on your machine first; however, that's far easier than trying to get a Bash shell script working with Cygwin.

Why python? Because it's easy to learn, it's easy to read, it has incredible library support, and most importantly, it supports multiple platforms including some I haven't even heard of!

To run the script, open a terminal (or cmd on Windows) and type:

python elf.py

or if you have multiple versions of Python, including 2.7.9, installed already:

python2.7 elf.py

The script is very simple and takes four prompts:
  1. Username
  2. Password (hidden)
  3. Date range
  4. Download directory
Beyond that, it's as easy as running the script from a terminal or command prompt and you're ready to start downloading Event Log Files on Mac, Linux, or Windows.

18 February 2015

Browser and User Agent Values

user agent is a software agent that acts on behalf of a user. Typically, in our world of web apps, this is a browser. When you know a user's user agent, you know how they accessed your application which is a critical tool when determining a user's identity.

For instance, a user who used Chrome version 37 might have a user agent string of "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36".

While this is an incredible amount of identifying information, it's also an expensive way to store the user agent information.

When a user accesses a Visualforce page in Salesforce, we store the user agent information as a numeric code. This makes is much easier to store and roll-up results in an analytics platform. However, it doesn't make it very human readable.


However, there is a method to the madness. User agent versions are calculated dynamically.

The first two digits are reserved for browser family/name.

The next three digits are for major version numbers, such as "008" for version 8.

The last three digits are flags for describing browser variants. The first two digits can be used as desired internally and may differ from browser to browser. Commonly these would be used for minor versions or for things like compatibility view mode flags.

The last digit indicates device type.
0 = desktop/laptop
1-9 = mobile of some sort

1 = mobile (generic/any/unknown)
2 = phone
3 = tablet
4 = media player
5 = reserved
6-9 = vary by UserAgent

Examples:
    Value - Label output
    10007000 - IE 7
    10008000 - IE 8
    11015000 - FF 15
    12024000 - Chrome 24
    12024001 - Mobile Chrome 24

Below is a table with the common user agent codes for the Visualforce Request log line and their respective browsers, versions, and device types.


User Agent Code
Browser
Version
Device Type
10000000 Internet Explorer
10000001 Internet Explorer Mobile
10003000 Internet Explorer 3
10003001 Internet Explorer 3 Mobile
10004000 Internet Explorer 4
10004001 Internet Explorer 4 Mobile
10005000 Internet Explorer 5
10005001 Internet Explorer 5 Mobile
10006000 Internet Explorer 6
10006001 Internet Explorer 6 Mobile
10007000 Internet Explorer 7
10007001 Internet Explorer 7 Mobile
10008000 Internet Explorer 8
10008001 Internet Explorer 8 Mobile
10008010 Internet Explorer 8 Compatibility Internet Explorer
10009000 Internet Explorer 9
10009001 Internet Explorer 9 Mobile
10009010 Internet Explorer 9 Compatibility Internet Explorer
10010000 Internet Explorer 10
10010001 Internet Explorer 10 Mobile
10010003 Internet Explorer 10 Tablet
10010010 Internet Explorer 10 Compatibility Internet Explorer
10010100 Internet Explorer 10 Touch Enabled
10010101 Internet Explorer 10 Mobile and Touch Enabled
10010103 Internet Explorer 10 Tablet and Touch Enabled
10010110 Internet Explorer 10 Touch Enabled and Compatibility Internet Explorer
10010011 Internet Explorer 10 Mobile and Compatibility Internet Explorer
10010111 Internet Explorer 10 Mobile and Touch Enabled and Compatibility Internet Explorer
10010113 Internet Explorer 10 Tablet and Touch Enabled and Compatibility Internet Explorer
10011000 Internet Explorer 11
10011001 Internet Explorer 11 Mobile
10011003 Internet Explorer 11 Tablet
10011010 Internet Explorer 11 Compatibility Internet Explorer
10011100 Internet Explorer 11 Touch Enabled
10011101 Internet Explorer 11 Mobile and Touch Enabled
10011103 Internet Explorer 11 Tablet and Touch Enabled
10011110 Internet Explorer 11 Touch Enabled and Compatibility Internet Explorer
10011011 Internet Explorer 11 Mobile and Compatibility Internet Explorer
10011111 Internet Explorer 11 Mobile and Touch Enabled and Compatibility Internet Explorer
10011113 Internet Explorer 11 Tablet and Touch Enabled and Compatibility Internet Explorer
10012000 Internet Explorer 12
10012001 Internet Explorer 12 Mobile
10012003 Internet Explorer 12 Tablet
10012010 Internet Explorer 12 Compatibility Internet Explorer
10012100 Internet Explorer 12 Touch Enabled
10012101 Internet Explorer 12 Mobile and Touch Enabled
10012103 Internet Explorer 12 Tablet and Touch Enabled
10012110 Internet Explorer 12 Touch Enabled and Compatibility Internet Explorer
10012011 Internet Explorer 12 Mobile and Compatibility Internet Explorer
10012111 Internet Explorer 12 Mobile and Touch Enabled and Compatibility Internet Explorer
10012113 Internet Explorer 12 Tablet and Touch Enabled and Compatibility Internet Explorer
10013000 Internet Explorer 13
10013001 Internet Explorer 13 Mobile
10013003 Internet Explorer 13 Tablet
10013010 Internet Explorer 13 Compatibility Internet Explorer
10013100 Internet Explorer 13 Touch Enabled
10013101 Internet Explorer 13 Mobile and Touch Enabled
10013103 Internet Explorer 13 Tablet and Touch Enabled
10013110 Internet Explorer 13 Touch Enabled and Compatibility Internet Explorer
10013011 Internet Explorer 13 Mobile and Compatibility Internet Explorer
10013111 Internet Explorer 13 Mobile and Touch Enabled and Compatibility Internet Explorer
10013113 Internet Explorer 13 Tablet and Touch Enabled and Compatibility Internet Explorer
11000000 Firefox
11000001 Firefox Mobile
11000002 Firefox Phone
11000003 Firefox Tablet
11001000 Firefox 1
11002000 Firefox 2
11003000 Firefox 3
11004000 Firefox 4
11005000 Firefox 5
11006000 Firefox 6
11007000 Firefox 7
11008000 Firefox 8
11008001 Firefox 8 Mobile
11008002 Firefox 8 Phone
11008003 Firefox 8 Tablet
11009000 Firefox 9
11009001 Firefox 9 Mobile
11009002 Firefox 9 Phone
11009003 Firefox 9 Tablet
11010000 Firefox 10
11010001 Firefox 10 Mobile
11010002 Firefox 10 Phone
11010003 Firefox 10 Tablet
11011000 Firefox 11
11011001 Firefox 11 Mobile
11011002 Firefox 11 Phone
11011003 Firefox 11 Tablet
11012000 Firefox 12
11012001 Firefox 12 Mobile
11012002 Firefox 12 Phone
11012003 Firefox 12 Tablet
11013000 Firefox 13
11013001 Firefox 13 Mobile
11013002 Firefox 13 Phone
11013003 Firefox 13 Tablet
11014000 Firefox 14
11014001 Firefox 14 Mobile
11014002 Firefox 14 Phone
11014003 Firefox 14 Tablet
11015000 Firefox 15
11015001 Firefox 15 Mobile
11015002 Firefox 15 Phone
11015003 Firefox 15 Tablet
11016000 Firefox 16
11016001 Firefox 16 Mobile
11016002 Firefox 16 Phone
11016003 Firefox 16 Tablet
11017000 Firefox 17
11017001 Firefox 17 Mobile
11017002 Firefox 17 Phone
11017003 Firefox 17 Tablet
11018000 Firefox 18
11018001 Firefox 18 Mobile
11018002 Firefox 18 Phone
11018003 Firefox 18 Tablet
11019000 Firefox 19
11019001 Firefox 19 Mobile
11019002 Firefox 19 Phone
11019003 Firefox 19 Tablet
11020000 Firefox 20
11020001 Firefox 20 Mobile
11020002 Firefox 20 Phone
11020003 Firefox 20 Tablet
11021000 Firefox 21
11021001 Firefox 21 Mobile
11021002 Firefox 21 Phone
11021003 Firefox 21 Tablet
11022000 Firefox 22
11022001 Firefox 22 Mobile
11022002 Firefox 22 Phone
11022003 Firefox 22 Tablet
11023000 Firefox 23
11023001 Firefox 23 Mobile
11023002 Firefox 23 Phone
11023003 Firefox 23 Tablet
11024000 Firefox 24
11024001 Firefox 24 Mobile
11024002 Firefox 24 Phone
11024003 Firefox 24 Tablet
11025000 Firefox 25
11025001 Firefox 25 Mobile
11025002 Firefox 25 Phone
11025003 Firefox 25 Tablet
11026000 Firefox 26
11026001 Firefox 26 Mobile
11026002 Firefox 26 Phone
11026003 Firefox 26 Tablet
11027000 Firefox 27
11027001 Firefox 27 Mobile
11027002 Firefox 27 Phone
11027003 Firefox 27 Tablet
11028000 Firefox 28
11028001 Firefox 28 Mobile
11028002 Firefox 28 Phone
11028003 Firefox 28 Tablet
11029000 Firefox 29
11029001 Firefox 29 Mobile
11029002 Firefox 29 Phone
11029003 Firefox 29 Tablet
11030000 Firefox 30
11030001 Firefox 30 Mobile
11030002 Firefox 30 Phone
11030003 Firefox 30 Tablet
11031000 Firefox 31
11031001 Firefox 31 Mobile
11031002 Firefox 31 Phone
11031003 Firefox 31 Tablet
11032000 Firefox 32
11032001 Firefox 32 Mobile
11032002 Firefox 32 Phone
11032003 Firefox 32 Tablet
11033000 Firefox 33
11033001 Firefox 33 Mobile
11033002 Firefox 33 Phone
11033003 Firefox 33 Tablet
11034000 Firefox 34
11034001 Firefox 34 Mobile
11034002 Firefox 34 Phone
11034003 Firefox 34 Tablet
11035000 Firefox 35
11035001 Firefox 35 Mobile
11035002 Firefox 35 Phone
11035003 Firefox 35 Tablet
13000000 Chrome
13000001 Chrome Mobile
13010000 Chrome 10
13010001 Chrome 10 Mobile
13011000 Chrome 11
13011001 Chrome 11 Mobile
13012000 Chrome 12
13012001 Chrome 12 Mobile
13013000 Chrome 13
13013001 Chrome 13 Mobile
13014000 Chrome 14
13014001 Chrome 14 Mobile
13015000 Chrome 15
13015001 Chrome 15 Mobile
13016000 Chrome 16
13016001 Chrome 16 Mobile
13017000 Chrome 17
13017001 Chrome 17 Mobile
13018000 Chrome 18
13018001 Chrome 18 Mobile
13019000 Chrome 19
13019001 Chrome 19 Mobile
13020000 Chrome 20
13020001 Chrome 20 Mobile
13021000 Chrome 21
13021001 Chrome 21 Mobile
13022000 Chrome 22
13022001 Chrome 22 Mobile
13023000 Chrome 23
13023001 Chrome 23 Mobile
13024000 Chrome 24
13024001 Chrome 24 Mobile
13025000 Chrome 25
13025001 Chrome 25 Mobile
13026000 Chrome 26
13026001 Chrome 26 Mobile
13027000 Chrome 27
13027001 Chrome 27 Mobile
13028000 Chrome 28
13028001 Chrome 28 Mobile
13029000 Chrome 29
13029001 Chrome 29 Mobile
13030000 Chrome 30
13030001 Chrome 30 Mobile
13030003 Chrome 30 Tablet
13031000 Chrome 31
13031001 Chrome 31 Mobile
13031003 Chrome 31 Tablet
13032000 Chrome 32
13032001 Chrome 32 Mobile
13032003 Chrome 32 Tablet
13033000 Chrome 33
13033001 Chrome 33 Mobile
13033003 Chrome 33 Tablet
13034000 Chrome 34
13034001 Chrome 34 Mobile
13034003 Chrome 34 Tablet
13035000 Chrome 35
13035001 Chrome 35 Mobile
13035003 Chrome 35 Tablet
13036000 Chrome 36
13036001 Chrome 36 Mobile
13036003 Chrome 36 Tablet
13037000 Chrome 37
13037001 Chrome 37 Mobile
13037003 Chrome 37 Tablet
13038000 Chrome 38
13038001 Chrome 38 Mobile
13038003 Chrome 38 Tablet
13039000 Chrome 39
13039001 Chrome 39 Mobile
13039003 Chrome 39 Tablet
13040000 Chrome 40
13040001 Chrome 40 Mobile
13040003 Chrome 40 Tablet
13041000 Chrome 41
13041001 Chrome 41 Mobile
13041003 Chrome 41 Tablet
13042000 Chrome 42
13042001 Chrome 42 Mobile
13042003 Chrome 42 Tablet
13043000 Chrome 43
13043001 Chrome 43 Mobile
13043003 Chrome 43 Tablet
13044000 Chrome 44
13044001 Chrome 44 Mobile
13044003 Chrome 44 Tablet
13045000 Chrome 45
13045001 Chrome 45 Mobile
13045003 Chrome 45 Tablet
13046000 Chrome 46
13046001 Chrome 46 Mobile
13046003 Chrome 46 Tablet
13047000 Chrome 47
13047001 Chrome 47 Mobile
13047003 Chrome 47 Tablet
13048000 Chrome 48
13048001 Chrome 48 Mobile
13048003 Chrome 48 Tablet
13049000 Chrome 49
13049001 Chrome 49 Mobile
13049003 Chrome 49 Tablet
13050000 Chrome 50
13050001 Chrome 50 Mobile
13050003 Chrome 50 Tablet
14000000 Safari
14000001 Safari Mobile
14000002 Safari Phone
14000003 Safari iPad
14000004 Safari iPod
14002000 Safari 2
14002001 Safari 2 Mobile
14002002 Safari 2 Phone
14002003 Safari 2 iPad
14002004 Safari 2 iPod
14003000 Safari 3
14003001 Safari 3 Mobile
14003002 Safari 3 Phone
14003003 Safari 3 iPad
14003004 Safari 3 iPod
14004000 Safari 4
14004001 Safari 4 Mobile
14004002 Safari 4 Phone
14004003 Safari 4 iPad
14004004 Safari 4 iPod
14005000 Safari 5
14005001 Safari 5 Mobile
14005002 Safari 5 Phone
14005003 Safari 5 iPad
14005004 Safari 5 iPod
14006000 Safari 6
14006001 Safari 6 Mobile
14006002 Safari 6 Phone
14006003 Safari 6 iPad
14006004 Safari 6 iPod
14007000 Safari 7
14007001 Safari 7 Mobile
14007002 Safari 7 Phone
14007003 Safari 7 iPad
14007004 Safari 7 iPod
14008000 Safari 8
14008001 Safari 8 Mobile
14008002 Safari 8 Phone
14008003 Safari 8 iPad
14008004 Safari 8 iPod
14009000 Safari 9
14009001 Safari 9 Mobile
14009002 Safari 9 Phone
14009003 Safari 9 iPad
14009004 Safari 9 iPod
14010000 Safari 10
14010001 Safari 10 Mobile
14010002 Safari 10 Phone
14010003 Safari 10 iPad
14010004 Safari 10 iPod
14011000 Safari 11
14011001 Safari 11 Mobile
14011002 Safari 11 Phone
14011003 Safari 11 iPad
14011004 Safari 11 iPod
14012000 Safari 12
14012001 Safari 12 Mobile
14012002 Safari 12 Phone
14012003 Safari 12 iPad
14012004 Safari 12 iPod
15000000 Opera
15000001 Opera Mobile
15000006 Opera Mini
15005000 Opera 5
15005001 Opera 5 Mobile
15005006 Opera 5 Mini
15006000 Opera 6
15006001 Opera 6 Mobile
15006006 Opera 6 Mini
15007000 Opera 7
15007001 Opera 7 Mobile
15007006 Opera 7 Mini
15008000 Opera 8
15008001 Opera 8 Mobile
15008006 Opera 8 Mini
15009000 Opera 9
15009001 Opera 9 Mobile
15009006 Opera 9 Mini
15010000 Opera 10
15010001 Opera 10 Mobile
15010006 Opera 10 Mini
15011000 Opera 11
15011001 Opera 11 Mobile
15011006 Opera 11 Mini
15012000 Opera 12
15012001 Opera 12 Mobile
15012006 Opera 12 Mini
15013000 Opera 13
15013001 Opera 13 Mobile
15013006 Opera 13 Mini
15014000 Opera 14
15014001 Opera 14 Mobile
15014006 Opera 14 Mini
15015000 Opera 15
15015001 Opera 15 Mobile
15015006 Opera 15 Mini
15016000 Opera 16
15016001 Opera 16 Mobile
15016006 Opera 16 Mini
15017000 Opera 17
15017001 Opera 17 Mobile
15017006 Opera 17 Mini
15018000 Opera 18
15018001 Opera 18 Mobile
15018006 Opera 18 Mini
15019000 Opera 19
15019001 Opera 19 Mobile
15019006 Opera 19 Mini
15020000 Opera 20
15020001 Opera 20 Mobile
15020006 Opera 20 Mini
16000000 Android
16000001 Android Mobile
16000003 Android Tablet
16001000 Android 1
16001001 Android 1 Mobile
16001003 Android 1 Tablet
16002000 Android 2
16002001 Android 2 Mobile
16002003 Android 2 Tablet
16003000 Android 3
16003001 Android 3 Mobile
16003003 Android 3 Tablet
16004000 Android 4
16004001 Android 4 Mobile
16004003 Android 4 Tablet
16005000 Android 5
16005001 Android 5 Mobile
16005003 Android 5 Tablet
16006000 Android 6
16006001 Android 6 Mobile
16006003 Android 6 Tablet
17000000 Netscape
17001000 Netscape 1
17002000 Netscape 2
17003000 Netscape 3
17004000 Netscape 4
17005000 Netscape 5
17006000 Netscape 6
17007000 Netscape 7
17008000 Netscape 8
17009000 Netscape 9
18000000 Webkit
18000001 Webkit Mobile
18000003 Webkit Tablet
19000000 Gecko
19000001 Gecko Mobile
23010000 Blackberry 10
23010001 Blackberry 10 Mobile
23010003 Blackberry 10 Tablet
23011000 Blackberry 11
23011001 Blackberry 11 Mobile
23011003 Blackberry 11 Tablet
23012000 Blackberry 12
23012001 Blackberry 12 Mobile
23012003 Blackberry 12 Tablet
23013000 Blackberry 13
23013001 Blackberry 13 Mobile
23013003 Blackberry 13 Tablet
23014000 Blackberry 14
23014001 Blackberry 14 Mobile
23014003 Blackberry 14 Tablet
23015000 Blackberry 15
23015001 Blackberry 15 Mobile
23015003 Blackberry 15 Tablet
23016000 Blackberry 16
23016001 Blackberry 16 Mobile
23016003 Blackberry 16 Tablet
23017000 Blackberry 17
23017001 Blackberry 17 Mobile
23017003 Blackberry 17 Tablet
23018000 Blackberry 18
23018001 Blackberry 18 Mobile
23018003 Blackberry 18 Tablet
23019000 Blackberry 19
23019001 Blackberry 19 Mobile
23019003 Blackberry 19 Tablet
23020000 Blackberry 20
23020001 Blackberry 20 Mobile
23020003 Blackberry 20 Tablet
24001000 Good Access 1
24001001 Good Access 1 Mobile
24002000 Good Access 2
24002001 Good Access 2 Mobile
24003000 Good Access 3
24003001 Good Access 3 Mobile