Appearance
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
- Log into Meraki Dashboard
- Navigate to Organization → Settings
- Scroll to Dashboard API Access
- Enable API access if not already enabled
- Click Generate new API key
- 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:
- Go to Organization → Settings
- Note the Organization ID at the top of the page
- It's typically a 6-digit number like "123456"
Step 3: Identify Networks to Search (Optional)
For specific network searching:
- Go to Network-wide → General
- Note the Network ID in the URL or page
- Network IDs start with "N_" or "L_" followed by numbers
Step 4: Create the Meraki Lookup App
Navigate to Policies → Apps → Post Call Apps → Meraki 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
- IP Extraction: Gets device IP from call data or Phone Discovery app
- Network Search: Queries configured Meraki networks
- Device Check: Looks for switches/APs with matching IP
- Client Search: If not a device, searches client lists
- Location Parse: Extracts address from device configuration
- 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:
- Phone Discovery App finds basic network info
- Meraki Lookup finds switch and physical address
- 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:
- Meraki Lookup identifies exact switch and port
- Shows VLAN assignment and connection status
- Network team can quickly isolate problems
Asset Management
Track phone deployments:
- Match phone MAC addresses to switch ports
- Verify phones are in correct VLANs
- Document moves and changes automatically
Best Practices
For E911 Deployments
- Maintain Switch Addresses: Keep Meraki device addresses current
- 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
- Tag Critical Switches: Tag switches serving emergency areas
- Test Regularly: Verify location data accuracy
- Document Coverage: Note which areas each switch serves in the notes field
For General Use
- Organize Networks: Use descriptive network names
- Limit Search Scope: Search specific networks when possible
- Monitor API Usage: Stay within Meraki rate limits
- Cache Results: Avoid repeated lookups for same devices
- 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
- Phone Discovery App (Order: 10) - Get phone IP
- Meraki Lookup App (Order: 20) - Find switch and address
- E911 Subnet CSV (Order: 30) - Add building/floor details
- Webex Teams App (Order: 85) - Alert with full location
- Twilio SMS App (Order: 90) - Text security team
Network Incident Response
- Phone Discovery App (Order: 10) - Identify device
- Meraki Lookup App (Order: 20) - Find network details
- Webhook App (Order: 50) - Create ServiceNow ticket
- 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
- E911 Phone Discovery - Gather initial phone data
- E911 Subnet CSV - Add building/floor mapping
- SOAP Query App - Alternative CMDB lookup
- Understanding Call Apps - Complete guide to Call Apps