Sunday, July 18, 2010

ISDN PRI back-to-back

To emulate a PSTN router, we need a back to back E1 connection and the obviously the first step would be the cable connecting both routers. Here, the idea is to connect HQ Router with PSTN router and therefore the crossover cable needs to be made.

Following should be the PIN Configuration; RJ-48 Connector to RJ-48 Connector (Crossover) Pinout:


1 RX Ring - -> 4 TX Ring -
2 RX Tip + -> 5 TX Tip +
4 TX Ring - -> 1 RX Ring -
5 TX Tip + -> 2 RX Tip +


When connected, both 1MFT-E1 cards have immediatly turned on the "CD" Carrier Detect light,

The basic configuration to emulate a PSTN Pri will be:

PSTN_RTR#

network-clock-participate wic 0

controller E1 0/0/0
clock source internal ---- the "pstn network" side must provide clock
pri-group timeslots 1-31

interface Serial0/0/0:15

no ip address

encapsulation hdlc

isdn switch-type primary-net5

isdn protocol-emulate network ---- this is the PSTN-emulated side ‘Service Provider’

isdn incoming-voice voice

no cdp enable


HQ_RTR#

network-clock-participate wic 0


controller E1 1/0/0
pri-group timeslots 1-31


interface Serial1/0/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
no cdp enable
!


Reference:
http://www.juniper.net/techpubs/hardware/m40/m40-hwguide/html/pinout4.html

http://www.techexams.net/forums/ccvp/31284-back-back-pri-am-i-missing-something.html

http://ccvp.org/modules/newbb/viewtopic.php?topic_id=63&forum=19

http://rizzitech.blogspot.com/2009/02/wvic-1mft-e1-back-to-back-connection.html

https://supportforums.cisco.com/message/3135483

Default DHCP lease and CUCM 7.0 DHCP rebinding


Default DHCP Lease
Configuring the Address Lease Time
By default, each IP address assigned by a DHCP server comes with a one-day lease, which is the amount of time that the address is valid. To change the lease value for an IP address, use the following command in DHCP pool configuration mode:
Command
Purpose
Router(config-dhcp)# lease {days [hours][minutes] | infinite}
Specifies the duration of the lease. The default is a a one-day lease.
http://cisco.biz/en/US/docs/ios/12_0t/12_0t1/feature/guide/Easyip2.html#wp22915

CUCM 7.0 DHCP rebinding
Rebinding Timer (T2) Expires

If the client receives no reply from the server, it will remain in the RENEWING state, and will regularly retransmit the unicast DHCPREQUEST to the server. During this period of time, the client is still operating normally, from the perspective of its user. If no response from the server is received, eventually the rebinding timer (T2) expires. This will cause the client to transition to the REBINDING state, the T2 timer is set to 87.5% (7/8ths) (as per cisco’s recommendation it should be 75% of the lease time) of the length of the lease.
Client Sends DHCPREQUEST Rebinding Message

Having received no response from the server that initially granted the lease, the client “gives up” on that server and tries to contact any server that may be able to extend its existing lease. It creates a DHCPREQUEST message and puts its IP address in the CIAddr field, indicating clearly that it presently owns that address. It then broadcasts the request on the local network.

http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/admin/7_1_2/ccmcfg/b02dhsrv.html



Friday, May 28, 2010

Writing a network report

Excellent Reource on the subject,

Top Down Network Design by Priscilla Oppenheimer
http://www.topdownbook.com/


John Lockie
Here9s my advice
1. Monitor: use SNMP to gather A) interface bandwidth, B) CPU, and C)
interface errors. Check the manufacturer for MIB9s to do this. If setting
up SNMP is intimidating to you, contact Logic Monitor
http://www.logicmonitor.com who I happen to know, but I am sure there are
others that do this. Use 14 day trial if you don9t have funds or authority
to authorize.
2. Document: document your findings...how hard is this? When you see an
interface is at 90% utilization state it plainly, and then provide a
solution such as LACP. Include a task cost dollar value (and include buffer
room on the cost, don9t forget to consider labor, cabling, equipment,
warranty, SmartNET, etc.). It may be that management is not even asking you
for costs, in which case your job is 10x easier.
3. Summarize: reports that will go in front of executive eyeballs needs to
have 3executive summary2 (hence the term). Their time is valuable, so cut
to the chase on page 1 and leave the rest of the reading for the nerdy or
even 3doubting2 executives :)

That9s all you probably need to include. If you want to go crazy (like if
your switch network is going to cost you a million to upgrade) then it might
be wise to really dive in to vendor technologies, the differences between HP
and Cisco at L2 level, etc. Go nuts if you decide to do this, the more the
better - just don9t forget your executive summary, because some guys could
care less.

Some other advice I can give you, as a manager who reports to executives....
1. Keep yourself out of the equation, think for the business. By thinking
for the business interest you are in the long run thinking for your own.
2. Ask management the same question you asked us. 3What do you expect to
see included in this report2. You may be surprised. Every time I am given
a directive from executives I ask them, 3what you do expect to see2. There
is no shame in asking, and it9s actually dangerous not to ask. Sometimes
they want only a price, and other times they want the entire enchilada. My
points above assumed somewhere between those two....

One other thing....since you said 4500 series. Why not stackable 3700
series? :). Be careful here....while you are comparing old to new, you need
to know why you would do 1 new over another new. For example, it might be
obvious you need to upgrade switched network. But is it obvious why you
pick Catalyst over Procurve? A discriminating executive who knows even a
little (or lives next door to a VP for Procurve division!) could really
challenge you on this one. Here is a tip, simply look closely at things
like ISL over 802.1Q, and you may find that arguing for Cisco protocols is a
little more justified.

Good luck,
John

Thursday, May 27, 2010

COR List and Translation rules

In this lab we tried to use two functions translation rules and COR list
translations being used to transform the number from PSTN to local extention and COR was used to restrict the caller whom they can call or whom they cannot.

First of all we planned our dial plan, as you know we have been using two routers one is CME which have one sip and sccp phone and other router name CME-SIP that does have two SIP phones

Here, we just used one SIP Phone 4001 @ CME router and one SIP Phone 6001 @ CME-SIP router, like that;

4001--------------CME----------------CME-SIP----------------6001


below is the COR config that we used in this scenario

The below configuration for COR has been done on the CME side as needed

1) Defining cor list members
dial-peer cor custom
name local_KAR
name LD_LHR
name LongDist
name international


2) -------- Outgoing Corlists
dial-peer cor list KAR
member local_KAR

dial-peer cor list LHR
member LD_LHR

dial-peer cor list LD
member LongDist

dial-peer cor list INT
member international

3)----- incoming corlists

dial-peer cor list LongD
member local_KAR
member LD_LHR

dial-peer cor list Local
member local_KAR


4) applying outgoing corlist to dial peers


dial-peer voice 9042 voip
corlist outgoing LHR
destination-pattern 9042[39].......
session protocol sipv2
session target ipv4:172.16.1.2
dtmf-relay rtp-nte
codec g711ulaw

5) applying incoming corlist to ip phones


voice register pool 1
corlist incoming LongD

we also tried with
voice register pool 1
corlist incoming Local


When a caller dials 9042........ number it gets transformed to 042........ number basically eliminates the '9' digit so here we were emulating a PSTN call using the below translation rule and profile @ CME router

voice translation-rule 30
rule 1 /^9\(042[39].......\)/ /\1/
rule 2 /^9\([39].......\)/ /\1/

voice translation-profile lhr
translate called 30 ---- here translating a called number i.e DNIS

applying translation profile to dial-peer

dial-peer voice 9042 voip
translation-profile outgoing lhr
destination-pattern 9042[39].......
session protocol sipv2
session target ipv4:172.16.1.2
dtmf-relay rtp-nte
codec g711ulaw
corlist outgoing LHR


Now when digit passes to CME-SIP router provided the SIP Phone 4001 has the authorized cor list to continue. So when it recieves number starting from 042 it basically matches the following dial-peer;

dial-peer voice 42 voip
translation-profile incoming local_Profile
session protocol sipv2
incoming called-number 042........
dtmf-relay rtp-nte
codec g711ulaw

here u noticed we have used the translation profile so that once it matches the incoming called number it basically transforms its number to local number i.e 6001. Lets see how

voice translation-rule 500
rule 1 /^[39]......./ /5001/
rule 2 /^042[39]......./ /6001/

voice translation-profile local_Profile
translate called 500

So following the rule it matches rule 2 and rings the 6001 phone. Simple isn't it ;)

@ Cme side we tested with two incoming cor list to 4001 to test the function first we apply
voice register pool 1
corlist incoming LongD -- that basically through the call

we also tried with;

voice register pool 1
corlist incoming Local -- that basically blocked the call



HTH

Regards

Sunday, May 2, 2010

Configuring SIP Gw and H.323 Gw

That was bit tough to actually make it happen.. Well i will just elaborate first what here we exactly wanted to test.

The task was to call from SIP to SCCP Phone and vice versa

Well actually i was testing a scenario in my lab, where i was using two cme routers. One configured as SIP gateway and other as an H323 gateway.

On the H323 router i only have configured SCCP phones but on other one just the SIP phone using 3cx. exten of SIP phone was 5001 and for SCCP it was 3001

I initially could calls from SIP phone to SCCP but cant make from SCCP to SIP.

Even though respected voip dial-peers were created and voip service voip command configured with sip to h323 and vice versa but that didn't give me a joy....


Lets look what actually i did

--On h323 gateway;

voice service voip
allow-connections h323 to sip
allow-connections sip to h323

!
ephone-dn 3
number 3001
label first_3001

!

ephone 3
device-security-mode none
mac-address 0200.4C4F.4F52
type CIPC
button 1:3

!
dial-peer voice 50 voip
destination-pattern 5...
session target ipv4:172.16.1.2
dtmf-relay rtp-nte

----On SIP gateway;

voice service voip
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
sip
registrar server
!

!
voice register dn 1
number 5001
allow watch
name 3cx
!
voice register pool 1
id mac 0200.4C4F.4F54
number 1 dn 1
username test password test
codec g711ulaw

!

dial-peer voice 30 voip
destination-pattern 3...
session target ipv4:172.16.1.1


After spending alot of time digging into incoming and outgoing dial-peers..how they actually works ...I finally got it all working...yeaaah.

I actually was missing the right codecs Now the below configs works just perfect . Now i do have calls from both ends.

SIP

dial-peer voice 30 voip ----- thats an outgoing dial peer
destination-pattern 3...
session target ipv4:172.16.1.1
codec g711ulaw

SIP# sh voice register pool 1 --- output

dial-peer voice 40001 voip --- the implicit dial-peer created for incoming calls
destination-pattern 5001
session target ipv4:192.168.2.10:58855
session protocol sipv2
codec g711ulaw bytes 160

H323

dial-peer voice 50 voip ----- thats an outgoing dial peer
destination-pattern 5...
session protocol sipv2
session target ipv4:172.16.1.2
dtmf-relay rtp-nte
codec g711ulaw








Also there is the output of the 'debug voice dialpeer all' that helped me alot


---------------AT SIP GW---------


Mar 1 00:31:05.599: //-1/xxxxxxxxxxxx/DPM/dpMatchPeersCore:
Calling Number=, Called Number=5001, Peer Info Type=DIALPEER_INFO_SPEECH
*Mar 1 00:31:05.599: //-1/xxxxxxxxxxxx/DPM/dpMatchPeersCore:
Match Rule=DP_MATCH_DEST; Called Number=5001
*Mar 1 00:31:05.603: //-1/xxxxxxxxxxxx/DPM/dpMatchCore:
Dial String=5001, Expanded String=5001, Calling Number=
Timeout=TRUE, Is Incoming=FALSE, Peer Info Type=DIALPEER_INFO_SPEECH
*Mar 1 00:31:05.611: //-1/xxxxxxxxxxxx/DPM/MatchNextPeer:
Result=Success(0); Outgoing Dial-peer=40001 Is Matched
*Mar 1 00:31:05.619: //-1/xxxxxxxxxxxx/DPM/dpMatchPeersCore:
Result=Success(0) after DP_MATCH_DEST
*Mar 1 00:31:05.619: //-1/xxxxxxxxxxxx/DPM/dpMatchPeers:
Result=SUCCESS(0)
List of Matched Outgoing Dial-peer(s):
1: Dial-peer Tag=40001
















---------------AT H323 GW---------


Dial String=5001, Expanded String=5001, Calling Number=
Timeout=TRUE, Is Incoming=FALSE, Peer Info Type=DIALPEER_INFO_SPEECH
*Mar 1 00:31:09.251: //-1/xxxxxxxxxxxx/DPM/MatchNextPeer:
Result=Success(0); Outgoing Dial-peer=50 Is Matched
*Mar 1 00:31:09.255: //-1/xxxxxxxxxxxx/DPM/dpMatchPeersCore:
Result=Success(0) after DP_MATCH_DEST
*Mar 1 00:31:09.259: //-1/xxxxxxxxxxxx/DPM/dpMatchPeers:
Result=SUCCESS(0)
List of Matched Outgoing Dial-peer(s):
1: Dial-peer Tag=50
*Mar 1 00:31:09.263: //13/6C99EB548014/CCAPI/ccCallFeature:
Feature Type=25, Call Id=13










Reference

https://www.myciscocommunity.com/servlet/JiveServlet/previewBody/1765-102-2-2583/UC500-CCA-First-Look-v1.3-Lab8B.pdf

http://www.ciscopress.com/articles/article.asp?p=664148&seqNum=6

http://www.cisco.com/en/US/tech/tk652/tk90/technologies_tech_note09186a008010fed1.shtml

https://supportforums.cisco.com/thread/136551


HTH

Monday, April 19, 2010

Configuring B-ACD services

Configuring B-ACD services was one of the task that we wanted to look deep into it and for that we read the following comprehensive guide which was a key to got it configured successfully.

Reference:
http://cisco.biz/en/US/docs/voice_ip_comm/cucme/bacd/configuration/guide/40bacd.html
http://cciev.wordpress.com/2006/05/29/cme-b-acd/
http://www.voiceie.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=8;t=000692

Here are the steps which were followed;

-- Creating ephone-hunt groups --

ephone-hunt 15 longest-idle
pilot 2000
list 2001, 2002
timeout 10, 10
!
!
!
!
ephone-hunt 16 sequential
pilot 3000
list 3001
timeout 20


-- Configuring AA scripts --
I had to download the whole b-acd-2.1.2.2.tar file to my flash first which consist of the following two tcl scipts
app-b-acd-2.1.2.2.tcl
app-b-acd-aa-2.1.2.2.tcl

through config terminal some mandatory parameters being defined as follows

application
service queue flash:app-b-acd-2.1.2.2.tcl --- named the service name as queue
param number-of-hunt-grps 2 --- we are using 2 hunt groups as earlier defined
param aa-hunt1 2000
param aa-hunt2 3000
param queue-len 15
param queue-manager-debugs 1 --- used with debug command to trace the script

service aa flash:app-b-acd-aa-2.1.2.2.tcl --- named the service name as aa
paramspace english index 1
paramspace english language en
paramspace english location flash:
param service-name queue --- refrencing the service name queue defined earlier
param handoff-string aa
param aa-pilot 1000 --- using pilot number 1000 for which we will define
the dial-peer accordingly
param welcome-prompt _bacd_welcome.au
param number-of-hunt-grps 2
param dial-by-extension-option 3 --- defining the dial by extention option as 3 explicitly

param max-extension-length 4
param second-greeting-time 30
param call-retry-timer 15
param max-time-call-retry 100
param max-time-vm-retry 2
param voice-mail 1002

-- Creating a VOIP dial-peer --

When someone dials the number 1000 it would initiate this dial-peer and the aa service will get activated. the 20.0.0.1 is the loopback address defined for CME

dial-peer voice 1000 voip
service aa
destination-pattern 1000
session target ipv4:20.0.0.1
incoming called-number 1000
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad

-- Now Some diagnostic commands --

CME#call application voice load aa --- loading aa service ( you will need to load this service if you have changed the pre=defined parameters or have added other parameters)

CME#
*Mar 1 00:25:08.519: //-1//HIFS:/hifs_ifs_cb: hifs ifs file read succeeded. size=35485, url=flash:app-b-acd-aa-2.1.2.2.tcl
*Mar 1 00:25:08.539: //-1//HIFS:/hifs_free_idata: hifs_free_idata: 0x67DAA108
*Mar 1 00:25:08.539: //-1//HIFS:/hifs_hold_idata: hifs_hold_idata: 0x67DAA108
*Mar 1 00:25:08.739: //-1//TCL :EE66B155AC000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter second-greeting-time = 30 --
*Mar 1 00:25:08.787: //-1//TCL :EE66B155AC000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter call-retry-timer = 15 --
*Mar 1 00:25:08.855: //-1//TCL :EE66B155AC000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter max-time-call-retry = 100 --
*Mar 1 00:25:08.895: //-1//TCL :EE66B155AC000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter max-time-vm-retry = 2 --
*Mar 1 00:25:08.951: //-1//TCL :EE66B155AC000:/tcl_PutsObjCmd: TCL AA: -- Valid Mandatory parameter number-of-hunt-grps = 2 --

CME#call application voice load queue --- loading queue service

CME#
*Mar 1 00:25:43.759: //-1//HIFS:/hifs_ifs_cb: hifs ifs file read succeeded. size=24985, url=flash:app-b-acd-2.1.2.2.tcl
*Mar 1 00:25:43.767: //-1//HIFS:/hifs_free_idata: hifs_free_idata: 0x67DAA198
*Mar 1 00:25:43.771: //-1//HIFS:/hifs_hold_idata: hifs_hold_idata: 0x67DAA198
*Mar 1 00:25:44.031: //-1//TCL :EE66B15694000:/tcl_PutsObjCmd: TCL B-ACD: -- Valid optional parameter queue-manager-debugs = 1 --
*Mar 1 00:25:44.071: //-1//TCL :EE66B15694000:/tcl_PutsObjCmd: TCL B-ACD: -- Valid Mandatory parameter queue-len = 15 --
*Mar 1 00:25:44.147: //-1//TCL :EE66B15694000:/tcl_PutsObjCmd: TCL B-ACD: -- Valid Mandatory parameter number-of-hunt-grps = 2 --

CME#sh call application sessions -- nothing showed up as we havn't initiated any call to pilot number yet

CME#debug voice application script -- you can see if you getting hits on the application

CME#csim start 1000 --- testing pilot number of aa 1000

csim: called number = 1000, loop count = 1 ping count = 0

*Mar 1 00:26:21.647: //-1//TCL :EE66B1577C000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter second-greeting-time = 30 --
*Mar 1 00:26:21.711: //-1//TCL :EE66B1577C000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter call-retry-timer = 15 --
*Mar 1 00:26:21.747: //-1//TCL :EE66B1577C000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter max-time-call-retry = 100 --
*Mar 1 00:26:21.795: //-1//TCL :EE66B1577C000:/tcl_PutsObjCmd: TCL AA: -- Valid mandatory parameter max-time-vm-retry = 2 --
*Mar 1 00:26:21.835: //-1//TCL :EE66B1577C000:/tcl_PutsObjCmd: TCL AA: -- Valid Mandatory parameter number-of-hunt-grps = 2 --
*Mar 1 00:26:21.983: //6//TCL :/tcl_PutsObjCmd:
proc init_perCallvars
*Mar 1 00:26:21.987:
*Mar 1 00:26:22.055: //6//TCL :/tcl_PutsObjCmd: TCL AA: +++ B-ACD-SERVICE not registered, Starting B-ACD-SERVICE +++
*Mar 1 00:26:22.519: //-1//TCL :EE66B15864000:/tcl_PutsObjCmd: TCL B-ACD: -- Valid optional parameter queue-manager-debugs = 1 --
*Mar 1 00:26:22.551: //-1//TCL :EE66B15864000:/tcl_PutsObjCmd: TCL B-ACD: -- Valid Mandatory parameter queue-len = 15 --
*Mar 1 00:26:22.591: //-1//TCL :EE66B15864000:/tcl_PutsObjCmd: TCL B-ACD: -- Valid Mandatory parameter number-of-hunt-grps = 2 --
*Mar 1 00:26:22.863: %IVR-6-APP_INFO: TCL B-ACD: >>> B-ACD Service Started <<< *Mar 1 00:26:22.871: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: >>> B-ACD Service Started <<< *Mar 1 00:26:22.907: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: >>> Handoff String = aa <<< *Mar 1 00:26:22.975: //6//TCL :/tcl_PutsObjCmd: proc init_perCallvars *Mar 1 00:26:22.979: *Mar 1 00:26:23.175: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: >>> Stat collection disabled for queue 2000 <<< *Mar 1 00:26:23.227: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: ++ Message received from IOS ++ *Mar 1 00:26:23.255: //6//TCL :/tcl_PutsObjCmd: TCL AA: ++ Playing Welcome Prompt and options menu ++ *Mar 1 00:26:26.363: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: ++ Message received from IOS ++ *Mar 1 00:26:26.435: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: >>> Stat collection disabled for queue 3000 <<<
*Mar 1 00:26:26.443: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: ++ Message received from IOS ++
*Mar 1 00:26:26.495: //6//TCL :/tcl_PutsObjCmd: TCL B-ACD: ++ Message received from IOS ++
*Mar 1 00:26:45.843: //6//TCL :/tcl_PutsObjCmd: TCL AA: +++ No option selected +++.
csim: loop = 1, failed = 0
csim: call attempted = 1, setup failed = 0, tone failed = 1


---After we placed a call from softphone to pilot 1000 and during the call we ran the following command with output as follows--

CME#sh call application sessions
Session ID 4

App: queue
Type: Service
Url: flash:app-b-acd-2.1.2.2.tcl

Session ID 8

App: aa
Type: Service
Url: flash:app-b-acd-aa-2.1.2.2.tcl



________________________________________________________

Thursday, April 15, 2010

Righsizing CME/SRST

Below is the max ephone numbers per platform as the results of this commit

1. 2811 : CME 42 / SRST 42
2. 2821 : CME 58 / SRST 58
3. 2851 : CME 110 / SRST 110
4. 2801 : CME 30 / SRST 30
5. 3825 : CME 185 / SRST 340
6. 3845 : CME 262 / SRST 720