Skip to main content

Creating Your First Call Policy

This guide walks you through creating a Call Policy from scratch. You'll learn how policies, rules, and triggers work together to control call routing on Cisco Callmanager.

Prerequisites​

Before you start:

  • Call Telemetry installed and connected to Cisco CUCM
  • CURRI configured with an External Call Control Profile
  • Admin access to Call Telemetry

What is a Call Policy?​

A Call Policy is a collection of rules applied to calls. In Cisco terms, it maps to an External Call Control Profile. When a call matches a pattern attached to this profile, Call Telemetry evaluates your rules and returns an action.

Screenshot of a Call Policy Example

Policies can:

  • Permit or Block calls based on caller/destination
  • Modify Caller ID name or number in real-time
  • Trigger Alerts to SMS, Email, or Teams
  • Query APIs for CRM lookups, location data, reputation scores
  • Play Greetings before connecting calls

Understanding the Call Flow​

Here's what happens when a call hits Call Telemetry:

  1. CUCM sends call data to Call Telemetry via CURRI
  2. Call Telemetry checks the Global Block List
  3. Rules are evaluated - most specific match wins
  4. Action is returned (permit, block, modify)
  5. Alerts and Apps execute asynchronously

Cisco Callmanager call treatment on failures

tip

CURRI fails "open" - if Call Telemetry is unavailable, calls route normally. There's no single point of failure.

Step 1 - Create a New Policy​

Navigate to Policies and click Add.

Screenshot of adding a new policy

Configure:

  • Name: Give it a descriptive name (e.g., "Inbound PSTN", "Sales DID")
  • Default Action: What happens if no rules match (Permit or Block)
  • Global Block List: Toggle on to enforce your global block list

Click Save.

Step 2 - Add Your First Rule​

Click Add Rule on your policy.

Rule Example

Configure the Rule Trigger​

Rules match based on calling and called number patterns using regex:

PatternMatches
.*Everything
1234Exact number 1234
512.*Numbers starting with 512
.*5551234Numbers ending with 5551234

Configure:

  • Name: Descriptive name (e.g., "Block Known Scammer")
  • Called Number: Pattern for destination (or .* for any)
  • Calling Number: Pattern for caller (e.g., 5551234567)
  • Action: Permit or Block

Step 3 - Add Call Modifiers (Optional)​

Modifiers change the call before it connects. Similar to Callmanager Translation Rules.

Rule Modifier Example

Common uses:

  • Rename Caller ID to show CRM contact name
  • Prepend "SPAM:" to suspicious callers
  • Redirect calls to a different destination

Step 4 - Add Alerts (Optional)​

Get notified when rules match. Click the Alerts tab.

Rule Alert Example

Available channels:

  • SMS - Text to a phone number
  • Email - Send to any address
  • Webex Teams - Post to a Teams space

Build your template using variables like:

  • {{event.calling_number}} - Caller's number
  • {{event.called_number}} - Destination number
  • {{phone.description}} - Phone description from CUCM

Step 5 - Add Apps (Optional)​

Apps integrate with external systems during call processing.

Screenshot of App Catalog

Popular Apps:

Apps can also modify the call based on API responses - like setting Caller ID from a CRM lookup.

After saving, copy the policy link to configure in CUCM.

Copy policy link

Step 7 - Attach to CUCM Route Pattern​

In Cisco Callmanager:

  1. Navigate to Device > External Call Control Profile
  2. Create or edit a profile pointing to your Call Telemetry server
  3. Navigate to Call Routing > Route Pattern (or Translation Pattern)
  4. Assign your External Call Control Profile to the pattern

ECC on Translation Pattern

Step 8 - Test Your Policy​

Make a test call that matches your pattern. Then verify:

  1. Call Logs - Check that Call Telemetry received the call
  2. Rule Match - Verify the correct rule was applied
  3. Alerts - Confirm notifications fired (if configured)

Check policy health to verify CURRI connectivity:

Policy Health

Rule Processing Order​

Rules are processed in this order:

  1. Global Block List - Checked first if enabled on the policy
  2. Block Rules - Evaluated before permit rules
  3. Permit Rules - Most specific match wins

The most specific pattern match is applied. 5551234567 beats 555.* beats .*.

Example: Block a Specific Caller​

Scenario: Block calls from 555-123-4567 to your main line.

  1. Create rule named "Block Scammer"
  2. Called Number: .* (or your main line pattern)
  3. Calling Number: 5551234567
  4. Action: Block

Example: Alert on VIP Caller​

Scenario: Notify reception when the CEO calls.

  1. Create rule named "VIP - CEO"
  2. Calling Number: 5559876543 (CEO's number)
  3. Action: Permit
  4. Add Email alert: "VIP Call: CEO calling {{event.called_number}}"

Example: CRM Caller ID Lookup​

Scenario: Show CRM contact name on Cisco phone display.

  1. Create rule with Calling Number: .*
  2. Add Webhook App pointing to your CRM API
  3. Configure modifier to set Calling Name from API response
  4. Calls now show "John Smith - Acme Corp" instead of just the number

Next Steps​

Now that you've created your first policy, explore advanced features:

FeatureWhat it does
Rule TriggersAdvanced pattern matching
Call ModifiersRename, redirect, transform
Call AlertsBuild rich notification templates
Call AppsIntegrate with external APIs
GreetingsPlay announcements before connecting

Troubleshooting​

Policy not receiving calls?

  • Verify External Call Control Profile is assigned to your pattern
  • Check policy health shows "Connected"
  • Confirm CURRI URL is correct in CUCM

Rules not matching?

  • Check regex patterns - .* matches everything
  • Remember: most specific rule wins
  • Review call logs to see what pattern was received

Need help? Contact Call Telemetry Support.