VOS3000 Dial Plan Wildcards: Complete Asterisk Question Mark Pattern Guide
📞 Every VOS3000 deployment relies on dial plans to transform phone numbers as calls flow through the softswitch. Whether you need to add area codes, strip prefixes, or rewrite entire number sequences, VOS3000 dial plan wildcards give you the pattern-matching power to do it precisely and efficiently. The two wildcard characters — asterisk (*) and question mark (?) — are the foundation of flexible number transformation in VOS3000, and understanding how they work is essential for any VoIP engineer configuring routing rules. 🔧
⚙️ The asterisk wildcard matches any number of digits (including zero), making it ideal for catch-all rules that apply regardless of the dialed number length. The question mark wildcard matches exactly one digit, giving you fine-grained control when you need to match specific number patterns with positional precision. Together, these VOS3000 dial plan wildcards enable sophisticated number transformation rules that handle national dialing conventions, international prefix manipulation, and gateway-specific number formatting requirements. 📊
🎯 This guide covers every aspect of VOS3000 dial plan wildcards: how the asterisk and question mark characters match digits in original prefix patterns, how they interact with target prefix replacement rules, how VOS3000 resolves conflicts between overlapping dial plans using longest-match priority, and practical configuration examples for common VoIP routing scenarios. Need expert help? WhatsApp us at +8801911119966 for professional VOS3000 configuration support. 📞
Table of Contents
🔐 What Are VOS3000 Dial Plan Wildcards?
⏱️ VOS3000 dial plan wildcards are special characters used in the Original Prefix field of dial plan rules to match variable digit patterns in dialed numbers. The VOS3000 softswitch evaluates incoming call numbers against dial plan rules, and when a match is found, it applies the corresponding Target Prefix transformation. The wildcard characters extend this matching capability beyond exact digit-to-digit comparison, enabling a single dial plan rule to cover an entire range of number patterns. 📞
💡 Why wildcards matter: Without wildcard matching, you would need to create a separate dial plan rule for every possible number prefix — an impractical approach when dealing with thousands of area codes, mobile prefixes, or international dialing patterns. Wildcards let you express complex matching logic in a single rule, reducing configuration complexity and making your dial plan table manageable and maintainable.
📍 Location in VOS3000 Client: Operation management → Gateway operation → Routing gateway → Dial plan (also available in Mapping gateway and Phone dial plans)
📋 The Two VOS3000 Dial Plan Wildcards Characters
🌐 VOS3000 supports exactly two wildcard characters for pattern matching in dial plans, each with distinct matching behavior:
| Wildcard | Name | Matching Behavior | Use Case |
|---|---|---|---|
| * | Asterisk (star) | Matches any number of digits, including zero digits | Catch-all rules, add/remove/replace entire prefixes |
| ? | Question mark | Matches exactly one digit (0-9) | Positional matching where a specific digit position is variable |
🔑 Key distinction: The asterisk (*) is greedy — it consumes as many digits as possible in the match. The question mark (?) is precise — it matches exactly one digit and no more. You can use multiple question marks in a row (e.g., ???) to match exactly three digits, but you cannot control the specific digit value — each ? matches any single digit from 0 to 9.
⚙️ Asterisk Wildcard (*) — Match Any Number of Digits
🔧 The asterisk wildcard is the most powerful and most frequently used of the VOS3000 dial plan wildcards. In the Original Prefix field, the asterisk matches any sequence of digits — including an empty sequence. This means a dial plan with Original Prefix “*” will match every possible dialed number, making it the ultimate catch-all rule.
According to the official VOS3000 2.1.9.07 manual §4.3.1, the following examples demonstrate asterisk wildcard behavior in dial plans:
| Original Prefix | Target Prefix | Input Number | Result | Explanation |
|---|---|---|---|---|
| * | 025* | 117 | 025117 | Add prefix 025 before any number |
| * | (empty) | 02584316146 | (empty) | Delete entire number |
| * | 12345678 | 02584316146 | 12345678 | Replace entire number with fixed value |
| 025* | 010 | 02584316146 | 010 | Replace 025-prefixed number with 010 |
| 025* | 010* | 02584316146 | 01002584316146 | Add prefix 010 while keeping 025 prefix |
💡 How the asterisk preserves digits: When you use the asterisk in both the Original Prefix and Target Prefix, the digits matched by the asterisk in the original number carry through to the target. For example, Original Prefix “025*” matches “02584316146” where the asterisk matches “84316146”. In Target Prefix “010*”, the “010” is the new prefix and the “*” carries forward the matched digits “84316146”, producing “01084316146”. This is documented in the VOS3000 manual §4.3.1. For SIP protocol standards, refer to RFC 3261.
📋 Asterisk Wildcard Priority Rules
⚠️ The VOS3000 dial plan wildcards follow strict priority rules when multiple dial plan rules could match the same number. Understanding these rules is critical to avoid unexpected number transformations:
| Rule | Description | Example |
|---|---|---|
| Longest match wins | When multiple dial plans match, the one with the longest original prefix is selected | “010” wins over “0” for number 01012345678 |
| * has lowest priority | The asterisk wildcard pattern is only matched when no other specific pattern matches | “025*” matches only if no more specific “0258” rule exists |
| Exact match is highest | An exact prefix without wildcards always takes precedence over wildcard patterns of the same length | “025” exact beats “02?” wildcard |
🔑 Practical implication: You can safely create a catch-all “*” rule as a default transformation while adding more specific rules for particular prefixes. VOS3000 will always prefer the more specific rule. This layered approach is the recommended way to structure your dial plan configuration — a broad default with narrow exceptions.
❓ Question Mark Wildcard (?) — Match Exactly One Digit
🎯 The question mark wildcard in VOS3000 dial plan wildcards matches exactly one digit at a specific position. This gives you positional control that the asterisk cannot provide. While the asterisk is broad and greedy, the question mark is narrow and precise — it matches any single digit from 0 to 9, but only one digit in that exact position.
According to the VOS3000 manual §4.3.1, the question mark can appear multiple times in a single pattern, and each occurrence matches an independent digit. The following example from the manual illustrates this behavior:
| Original Prefix | Target Prefix | Input Number | Result | Explanation |
|---|---|---|---|---|
| 0??8431 | 8431 | 02584316146 | 84316146 | Two ? wildcards match any two digits between 0 and 8431 |
| * | 12345?78 | 02584316146 | 12345178 (or similar) | ? in target prefix becomes a random digit |
💡 Question mark in target prefix: When the question mark appears in the Target Prefix field, it generates a random digit (0-9) at that position. This is different from the Original Prefix usage where it matches an existing digit. This distinction is crucial — in the original prefix, ? matches any digit; in the target prefix, ? produces a random digit. This feature is documented in §4.3.1 of the VOS3000 manual.
📋 Common Question Mark Pattern Examples
| Pattern | Matches | Does NOT Match | Scenario |
|---|---|---|---|
| 0??8431 | 0258431…, 0138431…, 0998431… | 08431… (only one digit after 0) | Area codes with two-digit variable middle |
| 00? | 001, 002, 003… 009 | 00, 0012 (too many/few digits) | International prefix with single country digit |
| 13??????? | 1301234567, 1398765432 | 13, 13012 (too short) | Mobile number pattern with fixed prefix |
🖥️ Combined Wildcard Patterns with Semicolons and Ranges
🔄 The VOS3000 dial plan wildcards become even more powerful when combined with semicolon-separated targets and numeric ranges. The VOS3000 manual §4.3.1 documents that multiple substitution targets can be specified using the semicolon (;) separator, and ranges can be expressed using a dash (-) between numbers.
| Original Prefix | Target Prefix | Input Number | Possible Results | Explanation |
|---|---|---|---|---|
| 025* | 8008100-8008121 | 02584316146 | 8008100 to 8008121 (randomly selected) | Range generates numbers from 8008100 to 8008121 |
| * | 12345678;8008100-8008121;12345?78 | 02584316146 | 12345678 or 8008100-8008121 or 12345?78 | Randomly chooses one of the three rules, then applies |
💡 Semicolon behavior: When the target prefix contains semicolons, VOS3000 randomly selects one of the semicolon-separated rules at call time. This enables load-balanced number distribution across multiple target numbers — a technique frequently used for distributing inbound calls across multiple service numbers or hunt groups. Combined with VOS3000 dial plan wildcards, this creates powerful routing patterns.
📋 Step-by-Step VOS3000 Dial Plan Wildcards Configuration
🖥️ Follow these steps to configure dial plan wildcard rules on a routing gateway, based on the VOS3000 2.1.9.07 manual §4.3.1:
Step 1: Access the Dial Plan Configuration 🌐
- 🔐 Log in to VOS3000 Client
- 📌 Navigate: Operation management → Gateway operation → Routing gateway
- 🔍 Select the target routing gateway
- 📋 Go to the Dial plan tab in the gateway’s configuration
Step 2: Create Asterisk Wildcard Rules ⏰
- ➕ Click Add to create a new dial plan row
- 📝 In the Original Prefix field, enter the wildcard pattern (e.g., “025*” for all numbers starting with 025)
- 📝 In the Target Prefix field, enter the replacement pattern (e.g., “010*” to prepend 010 while preserving the rest)
- 💾 Save the dial plan configuration
Step 3: Create Question Mark Wildcard Rules 🎯
- ➕ Click Add to create a new dial plan row
- 📝 In the Original Prefix field, enter the positional wildcard pattern (e.g., “0??8431” to match any two digits between 0 and 8431)
- 📝 In the Target Prefix field, enter the replacement (e.g., “8431” to strip the leading 0 and two variable digits)
- 💾 Save the configuration
Step 4: Verify Dial Plan Matching Order 🔍
- 📊 Review all dial plan rules to ensure more specific rules appear before generic ones
- 🔧 Remember: VOS3000 uses longest-match priority — the rule with the longest matching original prefix wins
- 📞 Test with sample numbers to verify the correct transformation is applied
- 📈 Use the dial plan configuration guide for detailed walkthrough
🛡️ Common VOS3000 Dial Plan Wildcards Problems and Solutions
⚠️ Misconfigured dial plan wildcard rules cause incorrect number transformations and failed call routing. Here are the most common problems and their solutions:
❌ Problem 1: Wrong Dial Plan Matched — Generic Rule Overriding Specific Rule
🔍 Symptom: A number starting with “025” is being transformed by the “*” catch-all rule instead of the “025*” rule.
💡 Cause: VOS3000 always selects the dial plan with the longest matching original prefix. If your specific rule has a shorter effective match than another rule, the longer match wins.
✅ Solutions:
- 🔧 Make your specific rule’s original prefix longer — e.g., use “0258” instead of “025*” if you only need to match 0258-prefixed numbers
- 📊 Verify the longest-match priority by testing with the exact number
- 📞 Review the call routing configuration to understand how dial plans interact with routing
❌ Problem 2: Question Mark in Target Prefix Produces Unexpected Random Digits
🔍 Symptom: The transformed number contains random digits that were not in the original number.
💡 Cause: The question mark (?) in the Target Prefix field generates a random digit, which is different from matching an existing digit in the Original Prefix.
✅ Solutions:
- 🔧 If you want to preserve digits from the original number, use the asterisk (*) in both original and target prefix fields
- 📊 Use the dollar sign ($) position keeper to preserve specific digit positions — see our number transform guide
- 📞 Only use ? in target prefix when you intentionally want random digit generation
❌ Problem 3: Asterisk Catch-All Rule Deleting All Numbers
🔍 Symptom: All dialed numbers are being deleted or replaced with empty strings.
💡 Cause: A dial plan with Original Prefix “*” and an empty Target Prefix removes all digits from the number. While this is valid per the VOS3000 manual §4.3.1, it may not be your intent.
✅ Solutions:
- 🔧 If you want to keep the number but add a prefix, use Target Prefix “newprefix*” (e.g., “025*”)
- 📊 If you want to keep the number unchanged, set Original Prefix “0” and Target Prefix “0”
- 📞 Remove the catch-all rule entirely if no default transformation is needed
💡 VOS3000 Dial Plan Wildcards Best Practices
🎯 Follow these best practices to optimize your VOS3000 dial plan wildcards configuration for reliable number transformation:
| Best Practice | Recommendation | Reason |
|---|---|---|
| 📊 Order by specificity | Create specific rules before generic * rules | ✅ Longest-match priority ensures correct rule applies |
| 🔧 Use ? for positional matching | Use ? when you know the digit position is variable | 🎯 More precise than * for known-length patterns |
| 🔄 Test with real numbers | Verify every wildcard rule with test calls | 🛡️ Prevents misrouted calls in production |
| 📋 Document wildcard rules | Add memo comments explaining each wildcard pattern | 📞 Easier troubleshooting and team collaboration |
| ⚠️ Avoid * with empty target | Never use Original “*” with empty Target unless intentional | 🛡️ Prevents accidental number deletion |
| 📈 Combine with escape characters | Use L/E/G/F escape characters for length-based matching | 🔧 Adds number-length constraints to wildcard rules |
💡 Pro tip: VOS3000 dial plan wildcards work together with prefix settings and the callee rewrite rule to create a complete number transformation pipeline. Use dial plans for routing-level transformations and callee rewrite rules for account-level adjustments. For complex configurations, reach us at +8801911119966 for expert guidance. 🔧
📊 Complete VOS3000 Dial Plan Wildcard Reference
📋 Here is the complete reference table for all wildcard behaviors, sourced from the official VOS3000 2.1.9.07 manual §4.3.1:
| Character | Usage Location | Behavior | Priority |
|---|---|---|---|
| * in Original Prefix | Pattern matching | Matches any number of digits (including zero) | Lowest — only matched when no other rule matches |
| * in Target Prefix | Replacement | Inserts the digits matched by the corresponding * in Original Prefix | N/A — substitution only |
| ? in Original Prefix | Pattern matching | Matches exactly one digit at that position | Same as exact match length |
| ? in Target Prefix | Replacement | Generates a random digit (0-9) at that position | N/A — substitution only |
❓ Frequently Asked Questions
❓ What are VOS3000 dial plan wildcards?
⏱️ VOS3000 dial plan wildcards are special characters used in the Original Prefix and Target Prefix fields of dial plan rules to match and transform variable digit patterns. The two wildcard characters are the asterisk (*), which matches any number of digits including zero, and the question mark (?), which matches exactly one digit. These wildcards enable you to create flexible number transformation rules that handle a wide range of dialed number patterns without needing a separate rule for each possible number. They are documented in the VOS3000 2.1.9.07 manual §4.3.1.
❓ How does the asterisk wildcard work in VOS3000 dial plans?
🔧 The asterisk (*) in the Original Prefix matches any sequence of digits — from zero digits to an unlimited number. When used in the Target Prefix, it inserts the digits that were matched by the corresponding asterisk in the Original Prefix. For example, Original Prefix “025*” with Target Prefix “010*” transforms “02584316146” into “01084316146” — the asterisk in the original prefix matches “84316146” and the asterisk in the target prefix carries those digits forward after the new “010” prefix. This carry-forward behavior is the key to prefix manipulation in VOS3000 dial plans.
❓ How does the question mark wildcard work in VOS3000 dial plans?
🎯 The question mark (?) serves two different purposes depending on where it appears. In the Original Prefix, it matches exactly one digit (0-9) at that position. For example, “0??8431” matches any number starting with 0, followed by any two digits, followed by 8431. In the Target Prefix, the question mark generates a random digit (0-9) at that position. This dual behavior is important to understand — matching in the original prefix versus generating in the target prefix — as documented in the VOS3000 manual §4.3.1.
❓ What is the priority of VOS3000 dial plan wildcards?
📋 VOS3000 uses longest-match priority for dial plan selection. When multiple dial plan rules could match a given number, the rule with the longest original prefix is selected. The asterisk (*) wildcard has the lowest priority and will only be matched when no other more specific pattern matches. This means you can safely create a catch-all “*” rule as a default while adding more specific rules like “025*” or “010” for particular prefixes — VOS3000 will always prefer the more specific match.
❓ Can I combine * and ? wildcards in the same dial plan rule?
🔄 Yes, you can combine asterisk and question mark wildcards in the same dial plan rule’s Original Prefix. For example, “0??*” would match numbers starting with 0, followed by any two digits, followed by any number of additional digits. However, combining wildcards in the Target Prefix requires careful attention — the asterisk carries matched digits forward while the question mark generates random digits. Understanding the interaction between these two behaviors is essential for correct number transformation.
❓ How do VOS3000 dial plan wildcards interact with semicolons and ranges?
📊 The VOS3000 dial plan wildcards work together with semicolons and ranges in the Target Prefix field. Semicolons (;) separate multiple substitution targets — VOS3000 randomly selects one target at call time. Ranges (e.g., 8008100-8008121) define a span of numbers from which one is randomly selected. You can combine these with wildcards: for example, Target Prefix “12345678;8008100-8008121;12345?78” would randomly choose between three different transformation patterns for each call. This is documented in §4.3.1 of the VOS3000 manual.
📞 Still have questions? WhatsApp us at +8801911119966 for quick answers. 📞
📞 Need Expert Help with VOS3000 Dial Plan Wildcards?
🔧 Proper VOS3000 dial plan wildcards configuration is essential for accurate number transformation, correct call routing, and efficient prefix management across your VoIP network. Misconfigured wildcard rules lead to misrouted calls, incorrect billing prefixes, and failed call completion. Whether you need help designing wildcard patterns, configuring prefix transformation rules, or troubleshooting dial plan issues, our team is ready to assist. Reach us on WhatsApp at +8801911119966 for professional VOS3000 support and configuration services. 📞
📞 Need Professional VOS3000 Setup Support?
For professional VOS3000 installations and deployment, VOS3000 Server Rental Solution:
📱 WhatsApp: +8801911119966
🌐 Website: www.vos3000.com
🌐 Blog: multahost.com/blog
📥 Downloads: VOS3000 Downloads
![]() | ![]() | ![]() |

