Sunday, August 09, 2009

CUCM + Trixbox + Linksys SPA3102 (Part 1)

This is a basic guide how to create a small VOIP network at home. I am using Cisco Unified Communication Manager, Trixbox and Linksys SPA3102 as the main infrastructure. Furthermore, Cisco IP Phone 7941G-GE, Cisco IP Phone CIPC and X-Lite are the IP Phones installed.

The configuration is basically having CUCM to handle 1XXX extensions and Trixbox to handle 2XXX extensions. Tribox is central IP PBX to handler outgoing and incoming calls.

The main goals for this Part#1 are:

  • To be able to make a phone call between IP Phones by dialling their extension numbers (e.g. 1000 -> 1001, 1000 -> 2001, 1000 -> 2000, 2000 -> 1001, etc)
  • Dial 9, followed by the numbers, to dial outside world via VOIP
  • Dial 0, followed by the numbers, to dial outside world via PSTN
  • To be able to receive incoming call from either PSTN or VOIP DID number and rings my IP Phone(s)
Trixbox is configured to have 2 NICs - one in located in front of firewall and the other one is located behind the firewall. The reason is because my firewall is not SIP friendly!!

Here is the data/voice layout:

voip

The version being used is:
CUCM: 6.0.1.2000-4
Trixbox: 2.8.0.1
SPA3102 Firmware: 5.1.10(GW)

DHCP Setting
Add the following DHCP options point to the CUCM IP address
Options 66
Options 150

Cisco Unified CM Configuration

Enable Services
Go to Cisco Unified Serviceability -> Tools -> Service Activation, enable the following services:
Cisco CallManager
Cisco Tftp
Cisco IP Voice Media Streaming App

Start Services
Go to Cisco Unified Serviceability -> Control Center -> Feature Services, start the following services:
Cisco CallManager
Cisco Tftp
Cisco IP Voice Media Streaming App

Auto Registration
Go to Cisco Unified CM Administration -> System -> Cisco Unified CM
Starting Directory Number*: 1000 (for example)
Ending Directory Number*: 1500 (for example)
Un-tick "Auto-Registration Disabled on this Cisco Unified Communication Manager" checkbox

Cisco Unified CM Group Configuration
Go to Cisco Unified CM Administration -> System -> Cisco Unified CM Group
Create a new Group
Give a name
Tick "Auto-registration Cisco Unified Communications Manager Group" checkbox
Add the CUCM Server to the group member

Phone NTP Reference
Go to Cisco Unified CM Administration -> System -> Phone NTP Reference
Add a new Reference
Assign an IP Address
Mode* = default

Date/Time Group
Go to Cisco Unified CM Administration -> System -> Date/Time Group
Create a new Group
Give a name
Select time Zone, separator, date format and time format
Select NTP References from the configuration above

Device Pool
Go to Cisco Unified CM Administration -> System -> Device Pool
Create a new Device Pool
Give a name
Cisco Unified Communications Manager Group* = #select from the one created above
Region* = default
SRST Reference* = Use Default Gateway

SIP Trunk Security Profile
Go to Cisco Unified CM Administration -> System -> Security Profile -> SIP Trunk Security Profile
Create a new Profile
Give a name
Incoming Transport Type*= TCP_OR_UDP
Outgoing Transport Type*= USER_DATAGRAM_PROTOCOL
Incoming Port*= 5060

Create SIP Trunk
Go to Cisco Unified CM Administration -> Device -> Trunk
Add a new SIP Trunk
Give a name
Device Pool* = #select from the one created above

Route Group
Go to Cisco Unified CM Administration -> Call Routing -> Route/Hunt -> Route Group
Add a new one
Give a name
Add the SIP Trunk created above to the member of the Route Group

Route List
Go to Cisco Unified CM Administration -> Call Routing -> Route/Hunt -> Route List
Add a new one
Give a name
Cisco Unified Communications Manager Group* = #select from the one created above
Route Option = Route this pattern
Tick "Provide Outside Dial Tone" checkbox

Add a new oneRoute Pattern* = 0.!
Gateway/Route List* = #select from the one created above
Route Option = Route this pattern


Trixbox Configuration

Create SIP Trunk to CUCM
Go to PBX -> PBX Settings -> Trunks
Add SIP Trunk
Trunk Name = CUCM

Peer Details:
disallow=all
type=friend
host= #cucm-address
allow=ulaw&alaw
nat=no
canreinvite=yes
qualify=yes


User Context: CUCM-IN
User Settings:
context=from-internal
host=#cucm-address
type=friend

Create SIP Trunk to VOIP Provider
Go to PBX -> PBX Settings -> Trunks
Add SIP Trunk
Outbound Caller ID: "Name"

Dial Rules:
612+NXXXXXXX
04.
0011.
61+13XXXX
61+1800XXXXXX


#Note: Dial rules are created because my VOIP Provider requires the number format to be International format

Trunk Name = voip

Peer Details:
allow=alaw&ulaw&gsm
canredirect=no
canreinvite=no
disallow=all
host=
#voip-address
insecure=very
secret=
#password
type=peer
username=
#username

User Context: User

User Details:
canreinvite=no
context=fromtrunk
fromuser= #username
qualify=no
secret=
#password
type=user
username=
#username

Registration String:
#username:#password@#void-address/#username

Create SIP Trunk to PSTN
Go to PBX -> PBX Settings -> Trunks
Add SIP Trunk
Outbound Caller ID: "DID"
Maximum Channels: 1
Trunk Name: pstn

Peer Details:
disallow=all
allow=ulaw
canreinvite=no
context=fromtrunk
dtmfmode=rfc2833
host= #spa3102-address
incominglimit=1
nat=never
port=5061
qualify=yes
secret= #password
type=friend
username=pstn


Create Outbound Routes
#There will be 3 route patterns:
Dial 9, to go to VOIP
Dial 0, to go to PSTN
Dial 1XXX to go to SIP Phones registered with CUCM

Go to PBX -> PBX Settings -> Outbound Routes
Add Route
Name: VOIP
Dial Patterns: 9.
Trunk Sequence: SIP/Pennytel

Add Route
Name: PSTN
Dial Patterns: 0.
Trunk Sequence: SIP/pstn

Add Route
Name: CUCM
Dial Patterns: 1XXX
Trunk Sequence: SIP/CUCM

Allowing Incoming SIP Calls
Go to PBX -> PBX Settings -> General Settings
Allow Anonymous Inbound SIP Calls: Yes

Create Ring Groups
# This will allow incoming call to ring both my Cisco IP Phone (ext 1000) and my analog phone which connected to my SPA3102 (ext 2000)

Go to PBX -> PBX Settings -> Ring Groups
Give description
Ring strategy: ringall
Extension List:
2000
1000#


Create Inbound Routes
Go to PBX -> PBX Settings -> Inbound Routes
#Make sure to leave the DID and Caller ID number blank - this will accept all incoming routes

Set Destination:
Ring Group: #select the one created above

1 comment:

PAN said...

It's great. what time can I see part 2?