Pablo is using his Cisco 7961 IP phone. He goes to look at his ‘Missed Calls’ and sees that he missed a call that had come in from a local PSTN number. The number in his missed call looked exactly like this:

He needs the ability to look at this missed call and simply press the ‘Dial’ softkey –and nothing more– to return the call immediately – with no inter-digit timeout, and of course successful call routing back to the PSTN caller.

Pablo has the same CSS on his Line, as he does on his Phone Device – which is:

And the CSS has in it, the Partition of:

There is a Route Pattern that points straight to a gateway, that matches his desired return call:
Pattern: \+!
Partition: PT_CorpHQ-LOCAL
Urgent Priority: YES
Gateway: CorpHQ-MGCP-GW

And the MGCP Gateway has a Called Party Transformation CSS:
Gateway: CorpHQ-MGCP-GW
Outbound Called Party Transformation CSS: CSS_CdPTP-CorpHQ-GW

And the CSS with CSS has the PT:
--> PT_CdPTP-CorpHQ-GW

And the CdPTP to localize the call egress from the MGCP GW to the carrier (the carrier is expecting 10 DNIS digits) is:
Called Party Transformation Pattern: \+1.206!
Partition: PT_CorpHQ-LOCAL
Urgent Priority: YES!
Discard: PreDot

So as you can see, the call should be returned to the PSTN with no issues.

So Pablo looks at that missed call, and goes to press ‘Dial’. No sooner than he has pressed it, his display quickly pulses out the digits ‘+12065015111‘ — then it briefly changes to show only ‘+1‘ — and then the call simply disappears, as the screen returns to a normal, idle state.

He is quite shocked at this, most especially because of the fact that Tom, his cube mate, has the same Cisco 7961 IP phone, with the same dialing permissions (Tom also has the exact same CSS as Pablo, on both his Line and Phone Device), and Tom has absolutely no problem returning this exact same missed call pattern.

There is one small difference between Pablo and Tom’s phones — Tom has a 7961 SCCP phone, while Pablo has a 7961 SIP phone.

BTW, I should probably also note that neither one of them has any trouble placing any sort of normal, local calls when dialing from their keypads.

So, your contest question for the weekend is a three-parter:
  1. Why does Tom’s phone work, but Pablo’s does not, when attempting to return the very same missed call?
  2. What CUCM entity could you add to this equation to make Pablo’s phone work for returning this call (without changing any of the entities or values listed above)?
  3. What would the value be of this newly created entity?
The winner of this contest will have their choice of any one of these items:
  • $100USD Amazon Gift Card
  • $100USD in GradedLabs Tokens (which is just a bit more than 3 Voice rack sessions)
  • $100USD worth of INE.com online store credit
The way we will hold the contest is as follows:
  • You must answer all questions correctly, submitting your answers in the comments section of this post
  • If there are multiple, correct respondents, then we will place all of the correct respondents names into an online randomizer – the modern day ‘hat’, if you will
  • We will not allow any of the response comments to be seen here publicly until Monday morning when we choose the winner, so as not to give an unfair advantage to anyone
  • It might be good if you posted with a registered email account — you know, that way we can notify of your glorious prizes should you win? :-)
I’ll return on Monday to gather up the winners, choose a random name, and post all of the comments with my own replies and comments.

Also, we will be holding these sorts of contests bi-weekly, so check back often to increase your chance of winning!

Good Luck!
Mark Snow

Congratulations to Roger Carpio, the winner of this contest!

As promised below in my comments, here is an updated post with the screenshot for the SIP Dial Rule to both fix this problem, and avoid a 10 second inter-digit timeout for all other normal keypad dialed calls:
Click to see full-sized image

Click to see full-sized image

About Mark Snow, CCIE #14073:

Mark Snow has been actively working with data and traditional telephony as a Network Consulting Engineer since 1995, and has been working with Cisco Call Manager and voice-over technology since 1998. Mark has been actively teaching and developing content for the CCIE Voice track since 2005, and the Security track since 2007. Mark's story with both data and voice technology started out quite young, as he began learning around the age of five from his father who was a patented inventor and a research scientist at AT&T Bell Laboratories. Mark started out on Unix System V and basic analog telephony, and went on from there to large data networking projects with technologies such as Banyan Vines, IPX and of course IP, and large phone systems such as Nortel 61c, Tadiran Coral, Avaya Definity and of course Cisco Unified Communications Manager in both enterprise and 911 PSAP environments across the US and internationally. Mark is also an accomplished pilot and punched his ticket in 2001. When Mark isn't learning, labing, consulting or teaching, he can be found either piloting or possibly jumping out of a perfectly good airplane, hanging off a rock somewhere or else skiing out west. He also might just be enjoying a quiet day at the beach with his wife and two wonderful young kids, Ryleigh and Judah.

Find all posts by Mark Snow, CCIE #14073 | Visit Website

You can leave a response, or trackback from your own site.

14 Responses to “Bi-Weekly CCIE/CCVP Voice Trivia Contest – Returning Missed Calls (Nice Prizes)”

  1. [...] This post was mentioned on Twitter by Internetwork Expert and rodney newsfeeder, Sherwin Beronio. Sherwin Beronio said: Bi-Weekly CCIE/CCVP Voice Trivia Contest – Returning Missed Calls (Nice Prizes) http://goo.gl/fb/RZwce [...]

  2. 1) Why does Tom’s phone work, but Pablo’s does not, when attempting to return the very same missed call?
    - Call doesn’t work because Sip sends digits one by one by default. And the route patteren has the urgent priority set. There for it matches and routes immediatly after +1 is mached. Where as the SCCP sends all digit in on block, and therefor i routed.

    2) What CUCM entity could you add to this equation to make Pablo’s phone work for returning this call (without changing any of the entities or values listed above)?
    I think what you are looking for is called SIP Dialing rules

    3) What would the value be of this newly created entity?
    You need to create a new “7940_7960_OTHER” rule, give it a name and add the following params:
    pattern: \+1………. (You need a description and a value, Value could be more specific if desired)
    Timeout: 0

  3. Roger Carpio says:

    1. Why does Tom’s phone work, but Pablo’s does not, when attempting to return the very same missed call?

    SIP IP phone is not sending the call as “Enbloc” therefore the “Urgent Priority” option in the route pattern is shooting the digits towards the MGCP GW.

    2. What CUCM entity could you add to this equation to make Pablo’s phone work for returning this call (without changing any of the entities or values listed above)?

    SIP dial rule.

    3. What would the value be of this newly created entity?

    I will simply add +1……….

  4. Randall Saborio says:

    The problem is because the SIP Phone will send the digits one by one using KPML. This makes it hit the Route Pattern when hits +1 and CUCM attempts to route it because of the Urgent Priority set.

    The way to resolve it is to create a SIP Dial Rule so the SIP Phone will collect the digits internally until it matches the Dial Rule and then sends the whole number to CUCM.

    For example, a SIP Dial rule with pattern like: +1……….
    Then all the digits will come in a single Invite message to CUCM and will be processed accordingly per the route pattern.

  5. Klaas Boshuisen says:

    The 7961 SIP Phone uses KPML, and sends the digits 1 digit at the time, and since the route pattern has urgent priority enabled, as soon as the + is dailed and one other digit “the 1 in this example” CUCM will try to route this call and fail. The SCCP phone doesn’t have this problem because it will send the whole missed calls phone number at once (enbloc)

    To solve this you will have to create a SIP Dial Rule:

    If only one pattern is allowed I would create a pattern “*” with a timeout of something like 7 seconds.

    But this would introduce delays for internal calls and you would loose secondary dial-tone, (+* creates more delay)

    If more patterns are allowed:

    first pattern: “+*” timeout 7 secs
    second pattern “.” timeout 0 secs

    The first pattern causes missed calls to work
    The second pattern catches everything else. Since callmanager wants more then one digit, the other digits are send using KPML causing for example secondary dialtone and internal calls to work.

    you can also create the full dialplan, using more patterns then no KPML is needed.

  6. Hristos N. Hatzis says:

    Dear Mark,

    I think that the right answers are the following:
    1. Tom’s phone works because it’s an SCCP phone and all dialing plan functionality is contained on the CUCM and not in itself. It does not have it’s own dialing rules on the phone, and CUCM has the Pattern \+! declared and the phone’s CSS has access to this pattern. On the other hand, Pablo’s phone is a Type-B SIP phone with SIP dial rules configured on the phone itself (at least this is what i guess). It’ s probalbly got a rule +1 with timeout of 0.
    2 We need to add a SIP dial rule of type 7940_7960_OTHER
    3. The dial rule should be of the form +1……….


  7. Vytautas Jankevicius says:

    1) Cause of this issue can be explained this way:
    For dialing from Missed/Placed/Received calls lists SCCP phone uses en-bloc method (sends whole number at once), SIP phone uses KPML and sends digit-by-digit. Pattern “\+!” is “Urgent Priority” enabled (after priority pattern is matched – matched digits are sent to configured direction immediately). So when SCCP phone sends number in en-bloc, digit analysis engine of CCM uses and matches all digits against pattern “\+!”. After match it sends all digits to configured gateway. However SIP phone sends number digit-by-digit. After every digit is received, digit analysis engine tries to match it against patterns in partitions of Line/Phone CSSes. Priority pattern “\+!” matches after “+”,”1″ is received (“!” in pattern matches one or more digits in the range of “0″ to “9″). “Urgent priority” in this situation does the bad thing for SIP phone – it sends “+1″ immediately to configured gateway and does not wait/process other digits from phone.

    2) I would add better matching pattern into same partition as pattern “\+!”

    3) Pattern: \+1XXXXXXXXXX
    Partition: PT_CorpHQ-LOCAL
    Gateway: CorpHQ-MGCP-GW

    Explanation: After “+1″ is received from phone “\+1XXXXXXXXX” vs “\+!” is 1 vs 10 matches, so “\+1XXXXXXXXX” will be best match. And it does not matter if “Urgent Priority” is set on this pattern or not, it will wait for the rest digits from phone and will route call after last digit is received.

  8. Paul T says:

    Cisco SCCP phones send numbers dialed from the Missed calls directory ‘enblock’ (all at once as a single signalling message).

    Cisco SIP phones send numbers dialed from the Missed calls directory ‘digit by digit’.

    The Route Pattern \+! has urgent priority checked, so the call will be routed as soon as there is any potential match.

    The SIP phone is sending the digit +, then the digit 1. Before it sends any other digits, it has already matched that Route Pattern and will be sent to the gateway.

  9. John Amusan says:

    1. Tom’s phone worked because +12065015111 was sent en bloc to the call manager from his SCCP phone as opposed to Pablo’s SIP phone that sent the same number digit by digit.

    2. In order to get Pablo’s phone to work we need to use SIP dial rules configuration to configure dial plans for phones that are running SIP and associate them with Pablo’s 7961 SIP phone.

    3. Add a new SIP dial rule and select 7940_7960_OTHER dial pattern.
    Enter a pattern description and click on add pattern.
    The value for the pattern should be \+1……….

    Key Press Markup Language (KPML) allows the digits to be sent to Cisco Unified Communications Manager digit by digit; SIP Dial Rules allow a pattern of digits to be collected locally on the phone prior to sending to Cisco Unified Communications Manager. If SIP dial rules are not configured, KPML gets used.

  10. Thanks to everyone that participated in this, our first of what is to be a regular bi-weekly challenge for fabulous gifts and prizes.

    Everyone did exceptionally well at answering, and I am very, very impressed that 7 out of 8 answers were correct!
    @Paul, you were on the right track and answered Q1 correct – but you didn’t provide answers to Q’s 2 & 3.
    @ Vytautas, while I did specify that you couldn’t modify any of the entities or values above, I didn’t specify that you could not add a TP or RP, so technically you do have a correct answer as well (and were entered into the drawing) – as it would mitigate this Urgent Priority issue. I will be more careful (and limiting) in my next challenge wording! :-)

    One thing I realized that I did not specify (but will next time now that I know what aptitude levels we are dealing with) was asking how to make this return call work without negatively effecting other normal dialing (i.e. avoiding interdigit timeout for other standard dialed calls). Since I did not mention this as criteria, then the 7 answers were all correct.

    So, my official answers are as follows:

    1. Cisco SCCP IP phones –by the nature of the SCCP protocol– in effect use overlap sending of digits for normal keypad dialing. However, when Redial, Abbv Dialing, Speed Dials, Corporate Directory is used, or when Call History calls are returned –basically everything other than keypad dialing– calls are sent to CUCM, via SCCP, using the en-bloc method.
    On the contrary, when Cisco Type-B IP phones with the SIP protocol stack dial any sort of number –be it via the keypad or every other sort of non-keypad method listed above– they use KPML, which according to RFC 4730, “… can request notifications of every key press.”, as the CUCM implementation does.

    2. Spot on. SIP Dial Rules is exactly what we wish to use to overcome this drawback.

    3. While I do admit that I did like @Klaas answer since it took into account providing an additional method whereby other calls were not adversely effected, it was, as I mentioned above, not a requirement of the task wording – so he certainly didn’t get any special treatment (just as in the lab you wouldn’t get any bonus points by providing a better answer than that of which you were asked to provide).
    But what I would have entered would have been similar, and I will post a screenshot of it, above – at the end, in an updated version of the current blog post. And it essentially is as follows:

    Pattern 1
    Pattern: +*
    (technically, no T/O is needed here to make this work properly)

    Pattern 2
    Pattern: *
    Timeout: 0

    By the way, I should also mention that some answered by creating the SIP Dial Rule pattern with a \+*, and some with just a +*. Both are tested and work. The backslash ‘\’ is used in SIP Dial Rules for escaping some patterns, such as \* and \# , to turn them them from would-be operators like ‘match everything’ and ‘inter-digit timeout’, into literal, dial-able keypad DTMF strings. While ‘+’ is not used in SIP Dial Rules as a regular expression, and therefore works as a normal pattern +* , it can still be escaped to work properly as well.

    Also I should mention that it is a bad idea to modify your SIP Dial Rule, and then press ‘Restart’ on that Dial Rule page. It usually sends the phone into an endless restart cycle. Equally as bad is modifying your SIP Dial Rule, then going to the phone device page, and simply pressing restart on the SIP phone. The best method is to modify your SIP Dial Rule and save it, then navigate to the actual SIP phone device, press ‘Save’ for that (or all) SIP phones, then tell it (them) to restart. This is a bug in 7.0.1 – the version in the lab exam – so be prepared for it should you encounter any task that requires the use of these SDR’s.

    Well, using an online randomizer, I entered the names of the 7 correct respondents, and the winner is:

    Roger Carpio

    Congratulations Roger!
    I will unicast you for your choice of prizes.

    Again, stay tuned as we will be doing these every other week. Thanks for everyone’s participation!

  11. Vytautas Jankevicius says:

    Nice one, very tricky (worth to be one of CCIE Voice lab troubleshooting tasks) :)

    Implementing SIP Dial rules in this case could mess up all other dialing for 7961 SIP phone if dialplan is based on patterns and KPML.

    From SRND:
    7961 phone is Type-B phone.
    As soon as SIP dial rules are implemented on Type-B IP phones, KPML-based dialing is disabled. If a user dials a string of digits that do not match a SIP dial rule, none of the individual digit events will be relayed to Unified CM. Instead, the entire dialed string will be sent en-bloc to Unified CM once the dialing is complete (that is, once inter-digit timeout has occurred).

    • @Vytautas,

      Thanks, we try. :-)

      Yes, you are correct that it could, if not done carefully.

      If you will take a look at the updated post – where I posted this screenshot – you will see the addition of a new pattern in the SIP Dial Rule labeled with the description “All other calls”. This additional pattern, ‘*’ with a timeout value of ’0′, takes the first keypad digit dialed, and immediately sends it on to the CUCM server, and since it does not match a Translation or Route Pattern, CUCM basically instructs the phone to then use KPML as it waits for additional digits.

      Try it out for yourself on a rack of equipment and play around with it to see different types of behavior.


  12. Hristos Hatzis says:


    I see that the troubleshooting tasks are mentioned more often lately (in the Deep Dives As well). Did Cisco change anything on the CCIE lab exam by adding separate troubleshooting section in the actual exam or the troubleshooting is included in the ordinary tasks? In this case, what kind of tasks, in the existing Voice Lab workbook VOL II, will guide us through troubleshooting tasks?
    I am a bit concerned about the form (tasks) of the actual CCIE voice lab exam.
    Thanks a lot

  13. @Hristos,

    Yes, Cisco has clearly mentioned in the CCIE Voice v3 Blueprint — in the header name for each section — the fact that troubleshooting is now involved in the lab exam. As to how it is implemented, there are many ways that it can be, and is implemented. You may have a task that deals with troubleshooting alone, and you may have bits of erroneous router commands or CUCM server configurations injected into your candidate rack of equipment before your lab begins (never anything during your exam), as a means of ‘inherent’ troubleshooting. All of it is fair game. What it is not is a completely separate portion of your exam so-to-speak, like the model currently tested by CCIE R&S track – where you have to pass the TS section, and then go on and pass the normal configuration section (with no ability to switch back to TS to correct anything). It is all part of the same 8-hour exam tasks, with the ability to go back and forth and change/correct anything at any time.


    Kind Regards,

    Mark Snow


Leave a Reply


CCIE Bloggers