Skip to content

Meraki Lookup App - Network Device Discovery

Overview

The Meraki Lookup app integrates with Cisco Meraki Dashboard to discover detailed network information about calling devices. When a call triggers this app, it searches your Meraki infrastructure to find the switch, port, VLAN, and physical location of the calling phone. Perfect for E911 location discovery and network troubleshooting.

TIP

The Meraki Lookup app is still in beta. Please provide feedback to help improve it.

Why Use the Meraki Lookup App

  • E911 Location Discovery: Find physical switch locations with street addresses
  • Network Troubleshooting: Identify switch ports and VLANs for calling devices
  • Asset Tracking: Match phones to specific switches and locations
  • Automated Documentation: Pull device notes and tags from Meraki
  • Multi-Network Support: Search across campus networks automatically

Key Features

  • Device Discovery: Find phones by IP across all Meraki networks
  • Location Data: Extract physical addresses from switch configurations
  • Port Identification: Determine exact switchport and VLAN
  • Client Details: Get MAC address, manufacturer, and usage stats
  • Rate Limiting: Built-in protection against API limits
  • Flexible Search: Search all networks or specific ones

Prerequisites

Before configuring the Meraki Lookup app:

  • Call Telemetry Appliance: Version 0.8.5 or later
  • Call Telemetry Premium License
  • Cisco CallManager: Configured with CURRI API Integration
  • Meraki Dashboard: Access with API enabled
  • API Key: Generated from Meraki Dashboard
  • Network Access: Call Telemetry server must reach api.meraki.com

Configuration Steps

Step 1: Generate Meraki API Key

  1. Log into Meraki Dashboard
  2. Navigate to Organization → Settings
  3. Scroll to Dashboard API Access
  4. Enable API access if not already enabled
  5. Click Generate new API key
  6. Copy and save the API key securely

WARNING

API keys have full access to your Meraki organization. Store them securely and rotate regularly.

Step 2: Find Your Organization ID

While in Meraki Dashboard:

  1. Go to Organization → Settings
  2. Note the Organization ID at the top of the page
  3. It's typically a 6-digit number like "123456"

Step 3: Identify Networks to Search (Optional)

For specific network searching:

  1. Go to Network-wide → General
  2. Note the Network ID in the URL or page
  3. Network IDs start with "N_" or "L_" followed by numbers

Step 4: Create the Meraki Lookup App

Navigate to PoliciesAppsPost Call AppsMeraki Lookup

Click Create App

Step 5: Configure Basic Settings

Fill in the app details:

  • App Name - "Meraki Phone Discovery" or "E911 Switch Lookup"
  • Description - Brief description of the lookup purpose
  • App Order - Execution order (20-30 recommended after Phone Discovery)

Step 6: Configure Meraki Integration

  • API Key - Your Meraki Dashboard API key
  • Organization ID - Your 6-digit org ID (e.g., "123456")
  • Search All Networks - Toggle ON to search entire organization
    • OR -
  • Search Networks - Specify individual networks if not searching all:
    Network ID: L_639511147086610612, Name: Main Campus
    Network ID: N_987654321, Name: Branch Office

How It Works

  1. IP Extraction: Gets device IP from call data or Phone Discovery app
  2. Network Search: Queries configured Meraki networks
  3. Device Check: Looks for switches/APs with matching IP
  4. Client Search: If not a device, searches client lists
  5. Location Parse: Extracts address from device configuration
  6. Data Return: Provides comprehensive network information including:
    • Address field: Parsed into street, city, state, ZIP for E911 dispatch
    • Notes field: Returned as-is for additional location context/metadata

Understanding the Response Data

When Device is a Switch/AP

json
{
  "searched_ip": "192.168.1.100",
  "network": {
    "id": "N_111111",
    "name": "Main Campus",
    "organization_id": "123456",
    "time_zone": "US/Eastern",
    "tags": ["production", "voip"]
  },
  "device": {
    "name": "Building A - IDF 2",
    "model": "MS225-48LP",
    "serial": "Q2XX-YYYY-ZZZZ",
    "mac": "00:11:22:33:44:55",
    "lan_ip": "192.168.1.100",
    "firmware": "switch-15-21",
    "notes": "2nd floor IDF serving offices 201-220",
    "tags": ["voip", "critical"]
  },
  "location": {
    "address": "123 Main St\nBoston, MA 02101",
    "lat": 42.3601,
    "lng": -71.0589,
    "street": "123 Main St",
    "city": "Boston",
    "state": "MA",
    "zip": "02101"
  }
}

When Device is a Client (Phone)

json
{
  "searched_ip": "192.168.1.150",
  "network": {
    "id": "N_111111",
    "name": "Main Campus",
    "organization_id": "123456",
    "time_zone": "US/Eastern",
    "tags": []
  },
  "device": {
    "name": "IDF Switch",
    "model": "MS120-8LP",
    "serial": "Q2XX-AAAA-BBBB",
    "mac": "00:11:22:aa:bb:cc",
    "lan_ip": "192.168.1.10",
    "firmware": "switch-15-21",
    "notes": null,
    "tags": []
  },
  "clients": [{
    "description": "SEP001122334455",
    "ip": "192.168.1.150",
    "mac": "00:11:22:33:44:66",
    "vlan": 100,
    "switchport": "24",
    "manufacturer": "Cisco",
    "recent_device_name": "Building A - IDF 2",
    "recent_device_serial": "Q2XX-YYYY-ZZZZ",
    "recent_device_mac": "00:11:22:33:44:55",
    "status": "Online",
    "first_seen": "2024-01-15T10:30:00Z",
    "last_seen": "2024-01-20T14:22:15Z",
    "usage": {
      "sent": 12345678,
      "recv": 98765432
    }
  }]
}

Available Template Variables

After Meraki Lookup runs, this data is available to subsequent apps:

Network Information

  • {{ app_data.meraki-lookup.data.network.name }} - Network name
  • {{ app_data.meraki-lookup.data.network.time_zone }} - Time zone

Device Information

  • {{ app_data.meraki-lookup.data.device.name }} - Switch/AP name
  • {{ app_data.meraki-lookup.data.device.model }} - Device model
  • {{ app_data.meraki-lookup.data.device.notes }} - Device notes (useful for location metadata like "2nd floor IDF" or "Building A Room 201")

Client Information

  • {{ app_data.meraki-lookup.data.clients[0].switchport }} - Port number
  • {{ app_data.meraki-lookup.data.clients[0].vlan }} - VLAN ID
  • {{ app_data.meraki-lookup.data.clients[0].recent_device_name }} - Connected switch

Location Information

  • {{ app_data.meraki-lookup.data.location.address }} - Full address
  • {{ app_data.meraki-lookup.data.location.street }} - Street address
  • {{ app_data.meraki-lookup.data.location.city }} - City
  • {{ app_data.meraki-lookup.data.location.state }} - State
  • {{ app_data.meraki-lookup.data.location.zip }} - ZIP code

Common Use Cases

E911 Location Discovery

Combine with other apps for comprehensive location data:

  1. Phone Discovery App finds basic network info
  2. Meraki Lookup finds switch and physical address
  3. Alert apps notify with complete location details

Example emergency alert using both address and notes:

🚨 EMERGENCY CALL DETECTED
Location: {{ app_data.meraki-lookup.data.location.address }}
Switch Info: {{ app_data.meraki-lookup.data.device.notes }}
Port: {{ app_data.meraki-lookup.data.clients[0].switchport }}

Would produce:

🚨 EMERGENCY CALL DETECTED
Location: 123 Main St, Boston, MA 02101
Switch Info: 2nd floor IDF serving offices 201-220
Port: 24

Network Troubleshooting

When users report phone issues:

  1. Meraki Lookup identifies exact switch and port
  2. Shows VLAN assignment and connection status
  3. Network team can quickly isolate problems

Asset Management

Track phone deployments:

  1. Match phone MAC addresses to switch ports
  2. Verify phones are in correct VLANs
  3. Document moves and changes automatically

Best Practices

For E911 Deployments

  1. Maintain Switch Addresses: Keep Meraki device addresses current
  2. Use Device Notes: Add location metadata to switch notes
    • Examples: "2nd floor IDF serving offices 201-220", "Building A - East Wing", "Emergency phones coverage"
    • This text is available in {{ app_data.meraki-lookup.data.device.notes }} for alerts
  3. Tag Critical Switches: Tag switches serving emergency areas
  4. Test Regularly: Verify location data accuracy
  5. Document Coverage: Note which areas each switch serves in the notes field

For General Use

  1. Organize Networks: Use descriptive network names
  2. Limit Search Scope: Search specific networks when possible
  3. Monitor API Usage: Stay within Meraki rate limits
  4. Cache Results: Avoid repeated lookups for same devices
  5. Handle Failures: Plan for API timeouts or errors

Performance Considerations

API Rate Limits

Meraki enforces strict limits:

  • 10 requests/second per organization
  • 5 requests/second recommended for stability
  • Daily limits vary by license tier

The app includes automatic rate limiting to prevent exceeding these limits.

Search Optimization

  • Specific Networks: Faster than searching all networks
  • Phone Discovery First: Provides IP for targeted search
  • Caching: Recent lookups are cached automatically

Troubleshooting

"Device/client not found"

  • Verify the phone IP is correct
  • Check if device is online in Meraki Dashboard
  • Ensure phone is in searched networks
  • Confirm API key has read access

"Rate limit exceeded"

  • Too many requests in short time
  • Wait a few seconds and retry
  • Consider searching fewer networks

"Invalid API key"

  • Regenerate API key in Meraki Dashboard
  • Ensure no extra spaces in configuration
  • Verify organization ID matches API key

Missing Location Data

  • Add address to switch in Meraki Dashboard:
    • Go to Switches → [Switch Name] → Settings
    • Enter complete address in Street Address field (for E911 dispatch)
    • Add location context in Notes field (e.g., "Building A - 2nd floor IDF")

Multi-App Workflows

The Meraki Lookup app enhances other apps with rich network data:

Complete E911 Workflow

  1. Phone Discovery App (Order: 10) - Get phone IP
  2. Meraki Lookup App (Order: 20) - Find switch and address
  3. E911 Subnet CSV (Order: 30) - Add building/floor details
  4. Webex Teams App (Order: 85) - Alert with full location
  5. Twilio SMS App (Order: 90) - Text security team

Network Incident Response

  1. Phone Discovery App (Order: 10) - Identify device
  2. Meraki Lookup App (Order: 20) - Find network details
  3. Webhook App (Order: 50) - Create ServiceNow ticket
  4. Email App (Order: 90) - Notify network team

Supported Devices

The app recognizes all Meraki-managed devices including:

Meraki Native

  • MS Series Switches (MS120, MS225, MS250, etc.)
  • MR Series Access Points
  • MX Series Security Appliances

Catalyst Switches in Meraki Mode

  • Catalyst 9300 Series
  • Catalyst 9200 Series
  • Catalyst 9500 Series
  • Catalyst 3850 Series (legacy)

Security Considerations

  • API Key Storage: Encrypted in Call Telemetry database
  • Read-Only Access: App only reads, never modifies
  • Network Isolation: Limit API access by IP if possible
  • Regular Rotation: Change API keys periodically
  • Audit Logs: Meraki logs all API access

See Also