|
0:00:15
|
So to begin with, let's take a look at Digit Manipulation in IOS.
|
|
0:00:21
|
And I believe we went over this in one of the previous
|
|
0:00:26
|
deep dives, I believe it was most likely either, In fact
|
|
0:00:32
|
I'm pretty sure that it was deep dive module 10,
|
|
0:00:35
|
when we we're talking about globalization and localization
|
|
0:00:38
|
in the big call manager, CUCM.
|
|
0:00:42
|
And we talked about it in regards to IOS gateways.
|
|
0:00:46
|
I don't believe we had an animation slide on it.
|
|
0:00:49
|
Instead I believe we whiteboarded it.
|
|
0:00:52
|
I've since gone ahead and created an animation slide to help you understand,
|
|
0:00:56
|
and have a reference material later to go back and look at this slide
|
|
0:01:02
|
to see the order of operations and how and where
|
|
0:01:07
|
digit manipulation can take place inside of really any IOS router.
|
|
0:01:12
|
And the only reason that we're doing it again is because with
|
|
0:01:15
|
CME we have a couple of special
|
|
0:01:21
|
places that we can do it. It's really, if you watch
|
|
0:01:25
|
the last deep dive module 15 and the basics of
|
|
0:01:29
|
Skinny and Sip phones in CME,
|
|
0:01:34
|
then you know that from the nice animations that we had there, you know that
|
|
0:01:41
|
Skinny phones are really when we create E-phones
|
|
0:01:47
|
and ephone-dns, what we really are creating are POTS dial peers
|
|
0:01:55
|
and if you didn't watch 15, that might be a bit of a shock,
|
|
0:01:58
|
you might say, it's an IP phone mark, it's not a POTS dial peer,
|
|
0:02:02
|
well it actually is, it's a POTS dial peer, it's a FXS
|
|
0:02:07
|
but it's actually an EFXS port an elecrtonic or virtual FXS port.
|
|
0:02:14
|
And ephone-dn creates the actual port.
|
|
0:02:19
|
so the ephone-dn creates a voice port, an EFX voice port
|
|
0:02:24
|
although it's virtual and electronic and doesn't show up in the command line.
|
|
0:02:28
|
And the e-phone itself combined with the e-phone ephone-dn so
|
|
0:02:34
|
since we have applied the button to the e-phone,
|
|
0:02:38
|
then we create the POTS dial peer that points to the previously created
|
|
0:02:44
|
EFXS voice port.
|
|
0:02:48
|
And we also know from SIP phones, so voice register pool,
|
|
0:02:54
|
and voice register DN, the combination of those two so creating
|
|
0:02:58
|
a voice register DN, a SIP DN and then a voice register pool
|
|
0:03:03
|
and applying that voice register DN with a command button,
|
|
0:03:07
|
or number rather, buttons is for e-phones Skinny
|
|
0:03:11
|
but with a command number, with the combination of those two
|
|
0:03:15
|
we create VOIP dial peer. Again, these dial peers and in the case of Skinny,
|
|
0:03:23
|
EFXS voice ports don't show up in normal running config.
|
|
0:03:28
|
If we do a show run, it doesn't show up,
|
|
0:03:30
|
even if we do a show running config all, it doesn't show up.
|
|
0:03:34
|
We can see these dial peers if we do things like
|
|
0:03:38
|
show voice register dial peers or even show voice register pool,
|
|
0:03:46
|
show voice register dial peer will actually show us
|
|
0:03:50
|
and we'll take a look at it again today, just briefly.
|
|
0:03:53
|
Can we cover this in depth in the last module, but just as a
|
|
0:03:55
|
bit of a refresher before we talk about digit manipulation and where it occurs.
|
|
0:04:00
|
The show voice register dial peer will just show us the dial peers
|
|
0:04:03
|
only for our SIP phones and then the show voice register pool,
|
|
0:04:08
|
and then the number of the index will actually show us more information about
|
|
0:04:13
|
each pool and essentially phone, possibly multiple phones,
|
|
0:04:18
|
as we mentioned we're doing SRST and then also the dial peer
|
|
0:04:22
|
or possibly peers that are created from the voice register pool.
|
|
0:04:27
|
Also to see our Skinny dial peers and voice ports,
|
|
0:04:32
|
we can do a show telephone service voice port.
|
|
0:04:38
|
to see the vitual EFX voice ports and we can do a show
|
|
0:04:42
|
telephony service dial peers to see the dial peers that have been created
|
|
0:04:47
|
from the e-phones and ephone-dns, so they do exist
|
|
0:04:52
|
and they are the basis of really not only understanding, but the basis of
|
|
0:04:59
|
the CME operating as a normal IOS gateway
|
|
0:05:05
|
So if you've ever done anything with an IOS gateway, even something
|
|
0:05:09
|
as want to belittle it, something as basic, something as
|
|
0:05:14
|
starting out or rudimentary as just whole bypass with an IOS route
|
|
0:05:18
|
you don't have call manager, the big one, you don't have CME,
|
|
0:05:23
|
or UC500 or anything else, all you have is two IOS
|
|
0:05:29
|
ISR router gateways maybe connected to PBXs doing
|
|
0:05:34
|
voice over IP or even voice over frame or voice over ATF.
|
|
0:05:38
|
It's where a lot of people start, it's where I started back in '98,
|
|
0:05:41
|
just doing the basics, if you understand the dial peers from there,
|
|
0:05:45
|
and you understand something that we've covered in the past,
|
|
0:05:48
|
but we'll definitely mention again, that there are always
|
|
0:05:52
|
always two call legs to every call, to every gateway,
|
|
0:05:58
|
I should not say to every call, but to every IOS gateway.
|
|
0:06:03
|
Then you know that there are always an inbound and always an outbound
|
|
0:06:09
|
dial peers that are chosen. Now many times,
|
|
0:06:15
|
I see people that have exalting or whatever other practices
|
|
0:06:21
|
have failed to create inbound dial peers, maybe they didn't know they existed
|
|
0:06:27
|
or that they were necessary and many times things still work
|
|
0:06:33
|
okay, there are certainly probably new situations that are run into
|
|
0:06:38
|
where things that don't work as perfectly they could or should.
|
|
0:06:42
|
But for the most part, things work somewhat OK.
|
|
0:06:47
|
Maybe some unexpected behavior
|
|
0:06:49
|
and we say we'll if I didn't create an inbound dial peer then
|
|
0:06:53
|
it doesnt exist right? Well if you don't create one, then dial peer 0
|
|
0:06:58
|
is typically chosen. Default supports any codec but we can't force anything.
|
|
0:07:03
|
We can't really negotiate per say, it just kind of let's things happen.
|
|
0:07:08
|
BAT is enabled, we can't do anything with applications
|
|
0:07:13
|
TCL or EXML service application.
|
|
0:07:17
|
Faxing doesn't work, there's a lot of things that really just don't work
|
|
0:07:20
|
well and you should never ever leave an inbound dial peer
|
|
0:07:27
|
left to chance, so not created and just left to
|
|
0:07:32
|
it's own devices, because you will at some point have issues
|
|
0:07:37
|
especially as you get into more complex and advanced configuration.
|
|
0:07:42
|
And of course we have inbound dial peers for POT legs
|
|
0:07:46
|
typically from the PSTN and then also inbound from VOIP.
|
|
0:07:51
|
typically from a trunk or link signaling back to CUCM or what not.
|
|
0:07:58
|
When we get in to CME, we again remember
|
|
0:08:03
|
from last module and just as a refresher that if we're calling
|
|
0:08:08
|
in from a SIP phone, we're coming in bound to the router,
|
|
0:08:12
|
on a VOIP dial peer and if we're calling outbound
|
|
0:08:16
|
to another SIP phone, we're leaving through a VOIP dial peer.
|
|
0:08:20
|
This is what's known as IP to IP to gateway or CUBE.
|
|
0:08:24
|
The Cisco Unified Border Element and we do have to have at minimum,
|
|
0:08:28
|
allow connections SIP to SIP enabled under voice service VOIP.
|
|
0:08:36
|
Also, if we're coming in through SIP and leaving to
|
|
0:08:42
|
a Skinny phone which is what we're about to take a look at
|
|
0:08:45
|
actually this one had, I believe is down from the PSTN,
|
|
0:08:48
|
and we're coming in through VOIP and leaving through a
|
|
0:08:52
|
POTS dial peer and then through a POTS port.
|
|
0:08:55
|
If we're calling from Skinny phone to Skinny phone,
|
|
0:08:58
|
we're coming in through a POTS port, then in through a POTS dial peer,
|
|
0:09:02
|
then out through a POTS dial and out through a POTS port
|
|
0:09:06
|
and again we looked at all of these in the last module,
|
|
0:09:08
|
so if I just went too fast as a bit of a refresher,
|
|
0:09:12
|
at least take a look back at that previous module.
|
|
0:09:16
|
So now we want to look at digit manipulation.
|
|
0:09:19
|
Where can we effect the calling called and even redirect called
|
|
0:09:27
|
or sometimes redirect target of our numbers?
|
|
0:09:32
|
OK? We typically, what we almost always, if not always have a calling
|
|
0:09:38
|
also referred to as A-N-I or ANI,
|
|
0:09:41
|
and we always have a called
|
|
0:09:44
|
or sometimes I'll say call-ed just to enunciate that,
|
|
0:09:49
|
or DNIS or Dialed Number Identification Service.
|
|
0:09:53
|
except that they refer to it as DNIS or called. Sometimes if the call was
|
|
0:09:58
|
redirected or transferred, we may have an RDNIS
|
|
0:10:02
|
or redirected or forwarded number, also known as redirect called
|
|
0:10:09
|
and voice translation rules and then sometimes we have a redirect
|
|
0:10:14
|
target which is as we are redirecting, who are we redirecting to.
|
|
0:10:20
|
When we redirect a number, let's say a call has come to us,
|
|
0:10:25
|
I'm at extension 3001 and I'm redirecting to voicemail,
|
|
0:10:29
|
then I am the redirecting number, 3001 is the redirecting number.
|
|
0:10:34
|
The redirecting target, while it's still at my location,
|
|
0:10:37
|
3001 getting ready to redirect, that would be
|
|
0:10:41
|
voicemail would be the redirect target, I would be the redirect called.
|
|
0:10:47
|
OK?
|
|
0:10:48
|
So these are the four things we can change in, typically we're doing
|
|
0:10:53
|
digit manipulation on the called number but so far as
|
|
0:10:56
|
when we talk about translation rules, the four things we can
|
|
0:10:59
|
manipulate or change are calling, called, redirect call,
|
|
0:11:06
|
and redirect target. OK.
|
|
0:11:10
|
So let's take a look, we've got our CME or IOS gateway router here
|
|
0:11:14
|
and we see a call comes in from the PSTN.
|
|
0:11:18
|
So if it's coming in from the PSTN and let's say we have a PRI,
|
|
0:11:23
|
then the first place it hits and I apologize for the small text here,
|
|
0:11:29
|
we did it to fit everything in. The first place it hits is our physical
|
|
0:11:35
|
voice port, so here we have an E1 voice port
|
|
0:11:39
|
00 so from numbering and everything we talked about the past,
|
|
0:11:43
|
we know this is network module 0, also known as slot or unit 0,
|
|
0:11:49
|
which is also the motherboard of the ISR router.
|
|
0:11:54
|
Then we have /0, so sub unit 0
|
|
0:11:58
|
so this would be the first, canonically speaking the first slot or
|
|
0:12:04
|
VWIC slot in the router and then we have the third /0
|
|
0:12:09
|
which is the actual port, you might have a two port
|
|
0:12:12
|
E1 card, so there might be /0 and /1 canonically
|
|
0:12:17
|
and then :15, our d channel for our E1
|
|
0:12:21
|
and it gives that away. If it was a :23, we'd know it would be a T1.
|
|
0:12:25
|
Here on the voice port, we do have the ability to do
|
|
0:12:29
|
possible manipulation, typically we would use a voice translation rule.
|
|
0:12:35
|
Optionally we could use a translation rule which is a
|
|
0:12:40
|
really wasn't around before voice translation rules,
|
|
0:12:43
|
and as we mentioned, we haven't gotten into them too much in the past
|
|
0:12:47
|
and we won't, because there's really no need to if you
|
|
0:12:51
|
know voice translation rules, you can do everything you need
|
|
0:12:56
|
and translation rules, not the voice translation rules,
|
|
0:13:00
|
but just translation rules are a much more limited subset
|
|
0:13:05
|
of the functionality of voice translation rules,
|
|
0:13:07
|
so the're really no reason to use it, nothing that they can give us
|
|
0:13:11
|
that voice translation rules cannot. There are a lot of things that
|
|
0:13:14
|
voice translation rules can give us which we put in to voice translation
|
|
0:13:19
|
profiles, as we see is calling a translation profile here.
|
|
0:13:23
|
There's a lot of things that voice translation rules can give us
|
|
0:13:26
|
that translate rules cannot. So we put in a voice translation rule,
|
|
0:13:33
|
and we don't see the rule yet, we'll see it in our configuration examples
|
|
0:13:39
|
demos that we're gonna go over today but
|
|
0:13:44
|
sufficer to say this is on the translation profile, it's telling it to translate
|
|
0:13:50
|
called, so DNIS and here we're specifying the direction.
|
|
0:13:55
|
And from the main, we could surmise that we're taking
|
|
0:13:58
|
10 digit in-bound DNIS down to four digit.
|
|
0:14:04
|
OK? So the next place is it hits the inbound POTS dial peer
|
|
0:14:09
|
and notice we don't have a port here, we could have a port
|
|
0:14:14
|
and if we wanted to be more specific about
|
|
0:14:18
|
where it is we want to do translations from or specific about what
|
|
0:14:24
|
it is we want to match, maybe we've got 10 PRIs
|
|
0:14:28
|
and we only want to match calls from cetrain places then we could have
|
|
0:14:31
|
four here, but first we have incoming called number.
|
|
0:14:35
|
Actually let's just take a real brief moment and pause and talk
|
|
0:14:39
|
about dial peers in terms of in-bound matching. There are four criteria
|
|
0:14:45
|
that can be matched in this order for in-bound calls into a router.
|
|
0:14:51
|
This is for in-bound calls where the type of the dial peer is VOIP.
|
|
0:14:57
|
Or where the type of the dial peer is POTS and it's a PRI or BRI.
|
|
0:15:04
|
Something with the D channel, something with layer 3 intelligence,
|
|
0:15:08
|
CAS, FXS, or FXO or again even T1 E1 CAS.
|
|
0:15:14
|
Channel associated signaling like T1 ENM link start or
|
|
0:15:21
|
fas start or E1 R2 or some form of fas like that,
|
|
0:15:26
|
FXO or FXS, we don't have this digit matching in-bound order
|
|
0:15:33
|
it's simply that any of them can match in any order, but if it is
|
|
0:15:37
|
POTS, PRI, or VRI or dial peer of type VOIP,
|
|
0:15:43
|
then for in-bound matching, we first look to see if there is an incoming
|
|
0:15:49
|
called number command on the dial peer, if there is and it matches,
|
|
0:15:54
|
that is what will be chosen period, won't even look
|
|
0:15:57
|
at port if we happen to have port on here.
|
|
0:16:00
|
Secondly, if inbound called number or incoming called number,
|
|
0:16:05
|
is either not present or on all the dial peers it is present doesn't
|
|
0:16:10
|
result in a match, then we look at destination pattern.
|
|
0:16:15
|
Now let me back up and say incoming called number
|
|
0:16:18
|
as the name seems to imply does match DNIS or called number on the inbound.
|
|
0:16:27
|
The second matching, if incoming called number didn't match
|
|
0:16:31
|
detination pattern as I just said and this one is a little bit
|
|
0:16:35
|
tricky because the name sounds like it's called number, like DNIS.
|
|
0:16:39
|
And it does match DNIS or called number on an outbound dial peer
|
|
0:16:43
|
when the router is already selected in in-bound dial peer
|
|
0:16:46
|
when the calls come in and now it's trying to select an outbound dial peer,
|
|
0:16:49
|
it looks at desitination and it matches that against the
|
|
0:16:54
|
DNIS or called number, when it's trying to first
|
|
0:16:59
|
before it can ever match an outbound dial peer,
|
|
0:17:02
|
when the router's trying to match an in-bound dial peer, destination pattern
|
|
0:17:06
|
does not go and try to match DNIS or called instead it matches the opposite
|
|
0:17:12
|
it matches ANI or calling number.
|
|
0:17:15
|
So on an inbound fashion, destination pattern matches ANI or calling number.
|
|
0:17:22
|
Then if destination pattern can't be found as a match,
|
|
0:17:27
|
then we look at answer address, answer address, also matches ANI.
|
|
0:17:35
|
Believe it or not, it sounds like it might be DNIS, the address that's answering.
|
|
0:17:39
|
But it is matching ANI calling and then,
|
|
0:17:43
|
if none of those three can be found or matched,
|
|
0:17:47
|
then as a last resort we match port, port option is
|
|
0:17:51
|
port if it's configured and then the 5th would be basically matched
|
|
0:17:56
|
dial peer 0, match the default dial peer.
|
|
0:17:59
|
OK, so on our in-bound POTS dial peer,
|
|
0:18:04
|
we have the ability if we should so choose to
|
|
0:18:08
|
do a voice translation rule matching, this could be again
|
|
0:18:15
|
doing further translation after translating it on the voice port.
|
|
0:18:19
|
This is typically not the desired behavior but we could do it,
|
|
0:18:23
|
and just to be sure that we understand certainly as a
|
|
0:18:27
|
big difference from when we talk and we're not gonna go over
|
|
0:18:31
|
that as a refresher, but when we talk about CUCM,
|
|
0:18:35
|
and we talked about route pattern, route list, and
|
|
0:18:42
|
route pattern, route list, details and gateway
|
|
0:18:45
|
calling party transformation patterns,
|
|
0:18:48
|
we mentioned that all three of those were taken into account at once and
|
|
0:18:52
|
that the digit manipulation did not happen immediately but it was tentative
|
|
0:18:57
|
and it waited to see if there was something further down the line,
|
|
0:19:00
|
to usurp it or trump it, well with
|
|
0:19:06
|
what we're doing here in IOS, anything that goes
|
|
0:19:11
|
and says do digit manipulation, so for instance
|
|
0:19:14
|
if there was a translation profile incoming applied to the voice port,
|
|
0:19:19
|
that takes place immediately.
|
|
0:19:22
|
And what the inbound dial peer sees is a result
|
|
0:19:26
|
of whatever happened at the inbound voice port, voice translation.
|
|
0:19:34
|
So if we wanted to do further digit manipulation here
|
|
0:19:38
|
it would be, we would have to match a pattern and then translate it
|
|
0:19:44
|
based on whatever was the result of happening at the non voice port.
|
|
0:19:53
|
So after we have the option of doing inbound digit manipulation,
|
|
0:19:57
|
at the inbound dial peer, then we go to something that
|
|
0:20:01
|
a lot of people have had confusion of misunderstanding with
|
|
0:20:05
|
for a long time, which is number expansion.
|
|
0:20:09
|
Number expansion is configured globally, it is not applied
|
|
0:20:15
|
in any particular place other than
|
|
0:20:18
|
you can configure it globally and it's applied globally.
|
|
0:20:20
|
So people say well then it's just kind of etherial, it's kind of
|
|
0:20:24
|
mystical, who knows when it takes effect, it could match anything
|
|
0:20:28
|
and not implemented properly or thoughtfully it can cause problems.
|
|
0:20:35
|
But implemented with care and thought, it can be quite powerful.
|
|
0:20:39
|
We talked about it in module 8 for gatekeepers and here's an example
|
|
0:20:43
|
doesn't really pertain to a call coming in from the PSTN,
|
|
0:20:46
|
but here's an example of where it's great to use which is
|
|
0:20:51
|
for gatekeepers and specifically for stripping.
|
|
0:20:55
|
tech prefixes for inbound calls where the originating
|
|
0:20:59
|
gateway sent a tech prefix or prefix to tech prefix to the DNIS.
|
|
0:21:04
|
Ans we the determinating gateway are terminating the call and are
|
|
0:21:09
|
stripping that tech prefix so we can reach the ultimate destination.
|
|
0:21:13
|
So here we've got an example num-exp 1#* *
|
|
0:21:21
|
so 1# was actually the DNIS tech prefix
|
|
0:21:26
|
* is the wild card that represents any number of variable trailing digits.
|
|
0:21:32
|
And we simply translate that from 1# and any number of digits to
|
|
0:21:38
|
just the same any number of digits, so we strip off the 1# effectively.
|
|
0:21:44
|
And we could add a prefix to the end you know
|
|
0:21:46
|
if we were trying to do international tail and hop-up we could maybe match
|
|
0:21:50
|
1#* and prefix 000 or whatever we needed to match it,
|
|
0:21:56
|
outbound dial peer, but the point is that number expansion happens after
|
|
0:22:02
|
the inbound dial peer regardless whether it's POTS or VOIP
|
|
0:22:07
|
but before the outbound dial peer.
|
|
0:22:10
|
So here we have an outbound dial peer and we can see this is dial peer
|
|
0:22:14
|
20002 destination pattern 3001.
|
|
0:22:19
|
So this is the second ephone-dn essentially to be created or ephone
|
|
0:22:26
|
to be created, an ephone-dn plus number 3001,
|
|
0:22:31
|
doesn't have to match the 20001 to be anywhere of course.
|
|
0:22:36
|
And we could apply a translation profile here but
|
|
0:22:42
|
we would need to keep in mind, so in other words we can apply
|
|
0:22:45
|
a translation profile on an ephone-dn.
|
|
0:22:49
|
And this will in turn place that unto an actual
|
|
0:22:53
|
POTS dial peer. If we place a translation profile on an ephone-dn,
|
|
0:23:00
|
we need to keep in mind which direction we want to place it.
|
|
0:23:06
|
Is it going to be a translation profile for incoming or outgoing?
|
|
0:23:11
|
You might say, wait a minute, an ephone-dn so when is it
|
|
0:23:14
|
incoming and when is it outgoing, the call is always going to the
|
|
0:23:17
|
ephone-dn right? Well if the ephone-dn
|
|
0:23:22
|
number 3001 is the called number or DNIS,
|
|
0:23:26
|
then it is outgoing to that dn, yes.
|
|
0:23:29
|
But if we wanted to let's say translate the calling number,
|
|
0:23:35
|
everytime 3001 picked up a phone and went to call someone else,
|
|
0:23:40
|
3001 is coming in on the inbound dial peer 2002.
|
|
0:23:46
|
And so we would or we could look at it and say our
|
|
0:23:50
|
second ephone-dn applied to whatever ephone.
|
|
0:23:54
|
So we would look at and apply translation profile incoming
|
|
0:24:00
|
and then whatever the name was to ephone-dn 2
|
|
0:24:04
|
and what this would do is, maybe that translation profile
|
|
0:24:08
|
would be translating calling maybe from four digits up to
|
|
0:24:12
|
8 digits or something relevant to whatever application needed to be
|
|
0:24:17
|
and every time that phone picked up a phone to place a call in,
|
|
0:24:22
|
every single call would be translated from calling digits of four up to eight.
|
|
0:24:29
|
Now that might not be the desired effect, it might only be that we wish
|
|
0:24:33
|
to call out to the PSTN and out to certain numbers,
|
|
0:24:37
|
that they're calling number be translated and in fact that's exactly
|
|
0:24:41
|
the application and demonstration that we're gonna look at today.
|
|
0:24:46
|
But I'm just giving you an example of what we could do.
|
|
0:24:50
|
And then finally we've got the actual voice port now
|
|
0:24:54
|
when it comes to an ephone or a Skinny phone,
|
|
0:24:57
|
we really can't apply a outbound translation or inbound
|
|
0:25:03
|
translation to both the dial peer, POTS, and to the voice port.
|
|
0:25:08
|
But again, if this were going out to the PSTN, we certainly could.
|
|
0:25:12
|
We could have one outbound on the dial peer and yet another
|
|
0:25:16
|
outbound on the port.
|
|
0:25:21
|
So these are the places that we can do digit manipulation
|
|
0:25:24
|
also of course on dial peers typically almost
|
|
0:25:29
|
exclusively in an outbound direction and almost exclusively
|
|
0:25:34
|
as a POTS dial peer we can do things such as forward digits
|
|
0:25:41
|
prefix the default to any POTS dial peer or something called
|
|
0:25:46
|
digit strip which automatically strips any digits
|
|
0:25:50
|
that were explicitly matched by the destination pattern so we can
|
|
0:25:57
|
change that default to no digit strip.
|
|
0:26:00
|
So no digit strip or digit strip, prefix a number
|
|
0:26:06
|
forward digits all, forward digits 3, forward digits 12
|
|
0:26:11
|
those are all other forms of outbound
|
|
0:26:16
|
POTS dial peer digit manipulations, another form of outbound
|
|
0:26:22
|
VOIP dial peer manipulation would be as we mentioned, tech prefix.
|
|
0:26:28
|
OK. So there are other different types of
|
|
0:26:31
|
digit manipulation that we can do outside of voice translation rules
|
|
0:26:34
|
and then also outside of number expansion which we said
|
|
0:26:37
|
always occurs after the inbound but before the outbound dial peer.
|
|
0:26:45
|
OK. And then the call alerts at the phone.
|
|
0:26:50
|
So now let's move in to the theory of, and we're just gonna cover
|
|
0:26:55
|
as we do in every deep dive some of the more complex topics
|
|
0:26:59
|
in terms of theory and concept in slide and if people have any questions
|
|
0:27:05
|
beyond the slides possibly or maybe even likely just
|
|
0:27:08
|
depends on the module, how much we have,
|
|
0:27:12
|
we can whiteboard certainly all of these things as well.
|
|
0:27:16
|
We cover these first and then we move in to the actual demonstration
|
|
0:27:20
|
and configuration, debugging, varying the configuration, testing, breaking
|
|
0:27:25
|
all of those aspects. So let's look at class of restriction,
|
|
0:27:31
|
also known as COR in CME and really this is in again
|
|
0:27:36
|
IOS in general. Almost everything that pertains
|
|
0:27:41
|
to CME either Skinny or SIP that is not configured
|
|
0:27:47
|
under telephony service, the main Skinny server,
|
|
0:27:50
|
or under ephone or ephone-dn or under
|
|
0:27:56
|
the voice register global, the main SIP server, or voice register pool
|
|
0:28:00
|
and voice register dn, anything that's not configured under those
|
|
0:28:04
|
main headings and just configured globally obviously, maybe not obviously
|
|
0:28:09
|
but hopefully applies to all of pretty much any IOS router whether it's
|
|
0:28:15
|
router being used for tool bypass or an H323 gateway,
|
|
0:28:21
|
or SIP trunk SIP gateway to CUCM or even CUBE.
|
|
0:28:27
|
OK. But do we have class of restriction in IOS in general,
|
|
0:28:32
|
and the idea or the analogy that we would like to
|
|
0:28:37
|
use for class of restriction is that of key rings
|
|
0:28:43
|
with keys and doors with locks.
|
|
0:28:49
|
OK? So we're gonna have really four entities here.
|
|
0:28:54
|
Key rings and doors are the two over arching ones,
|
|
0:29:00
|
and then on those key rings we have keys typically mutliple keys,
|
|
0:29:05
|
but sometimes only one and on the doors we have locks.
|
|
0:29:11
|
And I'm going to advocate that you only ever put
|
|
0:29:15
|
at least for the most part for your general configuration
|
|
0:29:18
|
certainly for the CCIE lab where you want to keep it as simple as possible.
|
|
0:29:22
|
Don't add any confusion that they don't ask you
|
|
0:29:26
|
of help because they'll add enough. You don't need to help them.
|
|
0:29:30
|
But I'll advocate that you only ever add one lock per door.
|
|
0:29:36
|
OK, this isn't Detroit or you know Compton or some of the
|
|
0:29:42
|
more sketchy parts of the you know cities where we have to have
|
|
0:29:48
|
15 locks on our doors, something like that.
|
|
0:29:52
|
OK? And in fact we're gonna talk about an instance where
|
|
0:29:55
|
maybe we don't even have locks on our doors, maybe we don't even have doors.
|
|
0:29:59
|
just because the neighborhood's so safe and what that means to class of restriction.
|
|
0:30:04
|
But to begin with, you can see here that we've got a dial peer
|
|
0:30:09
|
point her out, a dial peer for voice 2 POTS, the destination pattern
|
|
0:30:16
|
begins with a 0, secondary dial tone typically common in most
|
|
0:30:20
|
of Europe outside of UK and essentially 7 digits, so a local
|
|
0:30:27
|
number in our example here is going to be in the Netherland.
|
|
0:30:31
|
So of course we could probably dial 0 area code as well but
|
|
0:30:38
|
we'll just gonna use it to differentiate from national numbers.
|
|
0:30:42
|
So we've got a local in Amsterdam and Netherlands and
|
|
0:30:49
|
on this POTS dial peer, we've got a door.
|
|
0:30:53
|
We could see it called core list out going because we're going to be
|
|
0:30:56
|
leaving through this door but the door is named local.
|
|
0:31:01
|
So door-local and a member of this door or a lock
|
|
0:31:06
|
on this door is something called lok local.
|
|
0:31:11
|
And LOK stands for Lock or Key.
|
|
0:31:14
|
OK? And we'll always gonna name things lock or key
|
|
0:31:19
|
or you could name them lock key, however you want to call it.
|
|
0:31:22
|
It's intuitive and helps you remember but
|
|
0:31:27
|
the idea is that anytime we go to a locksmith,
|
|
0:31:32
|
and we have a lock built for us, they always give us a corresponding key
|
|
0:31:39
|
or set of keys, so anytime we have a lock built,
|
|
0:31:44
|
we also have a corresponding key and in IOS,
|
|
0:31:48
|
the lock and the key are the same thing. Now the door
|
|
0:31:53
|
and the key ring that we put the lock or key and
|
|
0:31:58
|
key or lock respectively on the door and the key ring are not the same thing.
|
|
0:32:04
|
But the actual lock key or lock or key that is the same thing,
|
|
0:32:09
|
it's a lock when it's on a door and it's a key when it's placed on a key ring.
|
|
0:32:15
|
OK? Hopefully this analogy can keep everything straight.
|
|
0:32:20
|
COR has been a source of confusion for many of my students
|
|
0:32:24
|
for the last five years so try to keep it simple and I can't claim credit
|
|
0:32:28
|
for this analogy, it's one that a Cisco press book had coined quite some time
|
|
0:32:35
|
OK. So here we have the member for the lock of lock or key local
|
|
0:32:44
|
on door local, then we've got a national or long distance dial peer
|
|
0:32:50
|
POTS style peer going out to the PRI, to the PSTN.
|
|
0:32:55
|
And we've got a door named door national and a lock or key named
|
|
0:33:00
|
LOK, lock or key national. OK, so we put national lock on the national door
|
|
0:33:08
|
the local lock on the local door, makes sense. Then we've got a key ring
|
|
0:33:13
|
and the key ring is, we see we're placing it either on our ephone-dn
|
|
0:33:17
|
for Skinny phones or voice register pool for SIP phones.
|
|
0:33:22
|
OK. As we mentioned in the last deep dive, some things in
|
|
0:33:27
|
Skinny and SIP phones are placed in kind of the
|
|
0:33:34
|
opposite or unexpected places for SIP phones, epsecially if you work with
|
|
0:33:38
|
with Skinny phones in the past to any degree, you might be used
|
|
0:33:43
|
to putting things on the dn, so you've got an ephone and an ephone-dn
|
|
0:33:47
|
we place things on a dn like we mentioned description last time,
|
|
0:33:51
|
here we're talking about COR list, but on the actualy SIP phone,
|
|
0:33:56
|
instead of doing it on the voice register dn, we actually do it
|
|
0:34:00
|
on the phone itself on the voice register pool.
|
|
0:34:03
|
You might say, well does that mean that we can't have different
|
|
0:34:07
|
class of restrictions for different dns on SIP phones
|
|
0:34:12
|
and the answer is no, it doesn't, well actually take a look specifically
|
|
0:34:16
|
at thatt in a bit when we get to our demos.
|
|
0:34:19
|
So either on ephone-dn or voice register pool, we place the key ring
|
|
0:34:24
|
and this key ring is called local and we name it appropriately
|
|
0:34:28
|
or intuitively so that it would seem to indicate and in this case it does
|
|
0:34:32
|
that we've got the key of local, the lock or key local,
|
|
0:34:36
|
in this case it's a key.
|
|
0:34:38
|
OK. So a call is placed to 0
|
|
0:34:44
|
7037373, 0 being secondary dial tone or outside trunk seizure.
|
|
0:34:52
|
OK? First and very important that we understand this concept
|
|
0:34:57
|
before class of restriction is ever taken into account ,
|
|
0:35:01
|
just like in the very same way before voice translation rules
|
|
0:35:06
|
or any digit manipulation on an outbound dial peer is
|
|
0:35:09
|
ever taken into account or for that matter anything
|
|
0:35:13
|
on the outbound dial peer is ever taken into account
|
|
0:35:16
|
class of restriction or otherwise the very first thing we do
|
|
0:35:20
|
is we choose an outgoing dial peer based on a matching pattern.
|
|
0:35:25
|
It's for that reason that you might say if I do a debug
|
|
0:35:29
|
VOIP dial peer mark and
|
|
0:35:33
|
by the way that wasn't the command debug VOIP dial peer Mark,
|
|
0:35:35
|
that was you asking me, Mark if I did a debug VOIP dial peer,
|
|
0:35:40
|
and I have a class of restriction that should not allow me to dial
|
|
0:35:44
|
let's say dial peer voice 3, why do I see 3 being matched?
|
|
0:35:50
|
Well it would be matched if the number you dialed,
|
|
0:35:54
|
the called number matched the destination pattern.
|
|
0:35:57
|
And debug VOIP dial peer will not show you anything in relation to
|
|
0:36:02
|
the class of restriction mapping or you know allow or disallow.
|
|
0:36:07
|
So the dial peer, the point is the dial peer is always matched first.
|
|
0:36:10
|
In this we're matching the POTS dial peer because our
|
|
0:36:15
|
second digit is not 0, the POTS dial peer 2.
|
|
0:36:21
|
Then we check all the locks and I do have to say all because we
|
|
0:36:27
|
can have multiple locks on a door, you just have to have
|
|
0:36:32
|
one key for every lock. It's just like coming home to your
|
|
0:36:36
|
flat or apartment and you walk in and if you have three
|
|
0:36:40
|
it may happen to if you've bought and purchased at different times
|
|
0:36:43
|
and so they have different keys, didn't go back to the locksmith
|
|
0:36:47
|
and have theme rekeyed to the same key.
|
|
0:36:49
|
Then you have to have three separate keys for the three separate locks.
|
|
0:36:54
|
OK this is a little bit in the configuration and that's why I
|
|
0:36:59
|
highly encourage you and advocate only putting one lock per door.
|
|
0:37:03
|
But again we checked the locks of the outgoing door
|
|
0:37:08
|
COR list against one or all of the keys of the incoming
|
|
0:37:14
|
key ring COR list and if we have,
|
|
0:37:21
|
if the incoming key ring COR list has the needed key
|
|
0:37:25
|
or all of the needed keys then the call will be completed.
|
|
0:37:29
|
Another way to put this is that the inbound COR list,
|
|
0:37:33
|
has to be a super set O or else equal to
|
|
0:37:40
|
the members of the outgoing COR list. That's the technical way of saying it.
|
|
0:37:45
|
The inbound COR list has to have members that are a superset of
|
|
0:37:51
|
in another words, all of the ones that are on the outbound COR list
|
|
0:37:55
|
and more or equal to, in this case we have equal to, we have one key
|
|
0:38:02
|
and we have one lock, one inbound member and one outbound member
|
|
0:38:05
|
and they are equal to the outbound COR list, then the call will be completed.
|
|
0:38:13
|
OK? Any questions in this one?
|
|
0:38:16
|
Let's take a look another example, here we've got an inbound call
|
|
0:38:20
|
00 10 704 74 44
|
|
0:38:28
|
and so we first again match the dial peer. The dial peer is chosen,
|
|
0:38:34
|
now the COR is checked. We have the key for lock key local
|
|
0:38:42
|
but the door has the lock key national and we don't have anymore keys.
|
|
0:38:46
|
So the incoming key ring does not have the needed key
|
|
0:38:51
|
and so the call will be rejected.
|
|
0:38:55
|
Alright, that seems hopefully fairly simple to add on
|
|
0:38:58
|
to what we just went over.
|
|
0:39:02
|
Now here's the exception, now we've got a call
|
|
0:39:06
|
to 00 10 704 74 44.
|
|
0:39:13
|
And we can see that either our inbound ephone-dn or inbound voice register
|
|
0:39:18
|
tool depending whether we picked up our Skinny or SIP phone respectively
|
|
0:39:23
|
and placed a call in through the CME out to the PSTN
|
|
0:39:28
|
so that national number again first the dial peer is matched
|
|
0:39:34
|
but then we see that we try to check the locks on the outbound door
|
|
0:39:40
|
against the keys on the inbound key ring however
|
|
0:39:44
|
there's no keys, in fact there's no key ring.
|
|
0:39:48
|
Believe it or not, the call will be completed.
|
|
0:39:52
|
So here's the exception to the rule that we just went over.
|
|
0:39:56
|
If there is either one of the two obviously
|
|
0:40:02
|
both of these exceptions are true, then that would just be
|
|
0:40:04
|
no configuration at all so we know that things work with
|
|
0:40:08
|
no COR configuration but if there is either no key ring
|
|
0:40:13
|
on the inbound dial peer and therefore no keys or no door
|
|
0:40:20
|
on the outbound dial peer, whichever one is chosen and therefore no loss,
|
|
0:40:25
|
then the call will be completed. So here's the way to think of it
|
|
0:40:29
|
in the analogy that we went over, here's the way to think of this
|
|
0:40:33
|
or these two exceptions. If I come to an opening,
|
|
0:40:41
|
in a room that you know connects room, I kinda come to a
|
|
0:40:44
|
there's a wall but there's an opening, but there's no door,
|
|
0:40:47
|
it's just an opening, well if there's no door
|
|
0:40:51
|
then there's obviously no lock, so it doesn't matter if I have a key ring
|
|
0:40:55
|
full of keys. I don't need them to unlock some thing that's not there.
|
|
0:40:59
|
There's no lock, there's no door. That makes sense.
|
|
0:41:04
|
One that doesn't necessarily make any sense is, if I don't have my key ring,
|
|
0:41:08
|
let's say I drive into my office or I take the tube whatever
|
|
0:41:14
|
commute into my office, pedal in, run, whatever you want to do,
|
|
0:41:18
|
and you get there and you realize, I left my house without my key ring.
|
|
0:41:24
|
So I don't have any keys because I don't have my key ring on me
|
|
0:41:26
|
and by the way you can't have a key ring with no keys.
|
|
0:41:29
|
In other words, you can't have, technically speaking
|
|
0:41:31
|
a COR list without any members.
|
|
0:41:34
|
So because you can't have a COR list without any members,
|
|
0:41:37
|
you can't apply a COR list that has no members.
|
|
0:41:40
|
So if you have a COR list, you have members. If you have a COR list
|
|
0:41:43
|
you have a key ring, therefore you have keys.
|
|
0:41:46
|
But we're saying we forgot our key ring when you get to your office building.
|
|
0:41:53
|
And I know this is a big no-no especially if you have like the keycard
|
|
0:41:56
|
entry you know. Cisco buildings are never supposed to allow
|
|
0:42:00
|
someone to be badged in behind you and then actually
|
|
0:42:05
|
especially if you're working late, if you don't badge in
|
|
0:42:08
|
and you work past a certain time, it won't let you out of the building
|
|
0:42:11
|
because you have to badge out after a certain time
|
|
0:42:14
|
and if it didn't ever see you come in, how could you be leaving?
|
|
0:42:19
|
The point is that, assuming that we're kind of
|
|
0:42:23
|
violating company policy or building policy or whatever,
|
|
0:42:28
|
if you forgot your key ring, then you become
|
|
0:42:32
|
the world's best social engineering hacker and you can pretty much
|
|
0:42:36
|
convince the cleaning lady or whomever
|
|
0:42:41
|
that you just need access to this one room just real quick.
|
|
0:42:46
|
And the bottom line is if you don't have your key ring you can convince
|
|
0:42:50
|
him or her that you need access to every room.
|
|
0:42:54
|
OK? So if you forgot your key ring, you have unfeathered 100 %
|
|
0:42:59
|
uninhibited access to all outbound dial peers.
|
|
0:43:04
|
OK? So those are the two exceptions.
|
|
0:43:09
|
So useful show commands for today, some that we mentioned in last module
|
|
0:43:14
|
15 such as show call active voice compact,
|
|
0:43:19
|
show call active voice, not compact the pi to include peer,
|
|
0:43:25
|
or even peer ID, but peer will give us everything peer ID will
|
|
0:43:29
|
plus a little bit more.
|
|
0:43:32
|
Debug ccsip messages typically, sometimes we'll debug other things.
|
|
0:43:38
|
Debug voip xcodemsp
|
|
0:43:43
|
So debug transcoders and the media signal processor
|
|
0:43:48
|
useful for debugging transcoding with CUBE which would essentialy
|
|
0:43:55
|
be anytime a SIP phone is placing a call to either another SIP phone or
|
|
0:44:00
|
out to a SIP or H323 trunk back to
|
|
0:44:06
|
another call manager, another call manager express what have you.
|
|
0:44:11
|
We're gonna use this one a little bit today debug voice dspapi
|
|
0:44:16
|
so the digital signal processor api, application programming interface,
|
|
0:44:20
|
for both in and out state. This is useful for seeing everything that happens
|
|
0:44:25
|
with both any hardware DSPs but also any virtual DSPs.
|
|
0:44:30
|
So ephone-dn dsp or an EFXS or Electronic FXS port
|
|
0:44:35
|
also known as the Skinny phones, we've talked about that in module 15
|
|
0:44:39
|
and how they create it. Show dspfarm message statistics, show dspfarm units
|
|
0:44:46
|
and show dspfarm session summary is really useful in seeing an overview
|
|
0:44:50
|
of both the idle and active hardware dsps, not the electronic virtual ones
|
|
0:44:54
|
just the hardware and their current state codec IP address etc.
|