Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to configure Exchange 2007 UM and Asterisk

Server roles

How to configure Exchange 2007 UM and Asterisk

by  Alginald  Posted    (Edited  )
Please note that the instructions do not cover the installation of the sipx and asterisk servers, only the configuration of them. I originally used the VMWare community images of trixbox (asterisk with loads of add-ons) and SIPX. Since then, I have installed a stand alone trixbox (iso image from www.trixbox.org). I'm still having problems with CAPI (Fritz! PCI installed in my Asterisk server (cos it was cheap - Ç30 for two lines is a nice price for testing) so I'll probably end up installing it again using SUSE 9.3 (cos there's a better CAPI driver for SUSE from avm). However, this does not affect how it works. I can dial in via a normal telephone, or I can use a SIP phone connected to either the Asterisk or the SIPX machine and access Exchange UM.

If anybody would like even more detailed instructions (i.e. screenshots, config files, etc.) please let me know. Either add a comment here, or write to me at alginald at gmx dot de. No spam please, I'm vegetarian.

What this document covers:-
1) When somebody connected to the asterisk dials 666666, the call should be forwarded to the Exchange 2007 Auto attendant, whereby the caller can choose to contact somebody directly, or leave a message for them (voice mail)
2) When somebody connected to the asterisk dials 55, the call should be forwarded to the Exchange 2007 Subscription number, whereby the caller can enter their mailbox number, and their pin number for access to their mailbox via Outlook Voice Access

What is not working:-

1) The caller ID is currently not passed correctly from sipx to Exchange, so all Voice messages originate from "anonymous" at the moment

2) Dialling from Exchange 2007 out. This is quite easy to configure, and I have had it working, I have even included some of the instructions, but have not fully tested it

Initial installation
Install Exchange 2007 with the Unified Messaging role
Install Asterisk (I installed , from www.trixbox.org and the trixbox VMWare image, both worked fine)
Install SIPX. (I used the VMWare image from the VMWare community download pages)
The rest of this document assumes that you have downloaded and are using the VMWare images of trixbox and sipx.
The following computers are used...
asterisk1.local. (TRIXBOX)
IP address 192.168.254.127/24
DNS 192.168.254.152
testorg.int (SIPX)
IP address 192.168.254.10
DNS 192.168.254.152
e2k7srv2.testorg.int (Exchange / AD / DNS)
IP address 192.168.254.152
DNS 192.168.254.152
(I know that the sipx box has got the same name as my domain, that was not done on purpose, a different name can be used if you want)

********************************* START OF EXCHANGE 2007 CONFIGURATION ******************************
What to configure on the Exchange 2007 server
1) Create a new UM Dial Plan....
new-UMDialPlan -Name:'DialPlan6' -NumberOfDigitsInExtension:'6'
2) Add the subscription number 5 to the UM Dial Plan
In the Exchange Management Console,click on Organization Configuration / Unified Messaging / DialPlan6
On the second tab, Subscription Access, add the subscription number "5"
3) Create a new UM IP Gateway...
new-UMIPGateway -Name:'SIPX' -Address:'192.168.254.5' -UMDialPlan:'DialPlan6'
(If you do not want to dial out using Exchange, open the properties page for the IP gateway, and deselect the "Allow outgoing calls".)
4) Create two new hunt groups for the UM IP Gateway.....
new-UMHuntGroup -Name:'Hunt5' -IPGateway:SIPX -UMDialPlan:'DialPlan6' -PilotIdentifier:'5'
new-UMHuntGroup -Name:'Hunt6' -IPGateway:SIPX -UMDialPlan:'DialPlan6' -PilotIdentifier:'6'
5) Create a new Auto Attendant.....
new-UMAutoAttendant -Name:'AA6' -UMDialPlan:'DialPlan6 -PilotIdentifierList:'666666' -Status:'Enabled' -SpeechEnabled:$true
6) Once the Auto Attendant has been created, edit the properties, and on the features tab, select
Allow caller to transfer to users
Allow callers to send voice mail
Callers can contact anybody in the Global Address List
Allow transfer to operator during business hours
Allow transfer to operator after business hours
(You don't have to configure all of these if you don't want to, but you should have at least the "allow callers to send voice mail and the "anybody in the GAL" set.)
7) Add the Dial Plan (DialPlan6) to the Exchange server
In the Exchange Management Console navigate to Server Configuration / Unified Messaging. Click on the e2k7srv2 server in the main pane with the right mouse button and click on properties. On the UM Settings page, add the dial plan to the list.
(There's probably a management shell command for this, but I used the GOOEY ;-))
8) Create a new UM Mailbox Policy...
new-UMMailboxPolicy -Name:'UMMailPolicy6' -UMDialPlan:'DialPlan6'
9) Enable Unified messaging for one or more test users. I gave Mickey Mouse the extension 777777 and Donald Duck the extension 777778.
********************************* END OF EXCHANGE 2007 CONFIGURATION ******************************
************************************ START OF ASTERISK CONFIGURATION ********************************
Now to configure the asterisk....
There are two ways of configuring the asterisk, you can edit the files via putty or the local console, or you can use the trixbox interface.
************************ start of asterisk configuration using trixbox ************
If you want to configure Asterisk using the Web Interface from trixbox, do the following
1) Connect to the server with a web browser (in my case http://192.168.254.127)
2) Click on System Administration and logon with user maint and password password (or whatever)
3) Click on FreePBX (you could also go directly to the page http://192.168.254.127/admin instead)
4) In the new browser window (FreePBX), click on setup
5) Click on TRUNKS
6) Click on Add Sip Trunk
7) Set the following
name:SIPX
Outbound Caller ID:6
Dial Rules:6666+6XXXXXXX
Outbound Dial Prefix:66
Peer
Details:
host=192.168.254.5
secret=voipjot
type=peer
username=66666666

8) Thats the first trunk. Now do the same again for the second one...
name:SIPX2
Outbound Caller ID:5
Dial Rules:5555+5XXXXXXX
Outbound Dial Prefix:55
Peer Details:
host=192.168.254.5
secret=voipjot
type=peer
username=5555

9) Click on outbound routes
10) Click on Add Route
11) Create a route with the following settings
name:1 6_SipX
Dialpatterns:6.
Trunk Sequence:SIP/SIPX

12) Create a second route with the following settings
name:5_SipX
Dialpatterns:5.
Trunk Sequence:SIP/SIPX2

13) If you want to add a softphone extension for testing do the following
14) Click on extensions
15) Click on SIP and set the following
Display Name:Yourname
Extension Number:200
Direct DID:200
secret:12345678

************ End of Asterisk configuration using trixbox ******************

If you don't want to use the trixbox front end, just edit the files in the /etc/asterisk directory, do the following...
What we need to configure is two Dial Plans and two trunks.
Here is my /etc/asterisk/extensions_additional.conf, which is used for the dial plans
;********************** Start of extensions_additional.conf ***************************
DIRECTORY_OPTS =
OUTCID_1 = 6
OUTMAXCHANS_1 = 100
VM_PREFIX = *
TONEZONE = de
ALLOW_SIP_ANON = yes
FAX_RX_FROM = freepbx@gmail.com
VM_DDTYPE =
VM_GAIN =
DIALOUTIDS = 1/2/3/
OUTCID_2 =
OUTMAXCHANS_2 =
OUTPREFIX_2 =
OUT_2 = AMP:CAPI/ISDN1/$OUTNUM$
OUTPREFIX_1 = 66
OUT_1 = SIP/SIPX
OUTCID_3 = 5
OUTMAXCHANS_3 = 1
OUTPREFIX_3 = 55
OUT_3 = SIP/SIPX2

;end of [globals]
[app-cf-busy-off]
include => app-cf-busy-off-custom

[ext-did-direct]
include => ext-did-direct-custom
exten => 200,1,Set(FROM_DID=200)
exten => 200,n,Goto(from-did-direct,200,1)
; end of [ext-did-direct]

[ext-local]
include => ext-local-custom
exten => 200,1,Macro(exten-vm,novm,200)
exten => 200,hint,SIP/200
; end of [ext-local]

[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-001-1 6_SipX
include => outrt-002-5_SipX2
exten => foo,1,Noop(bar)
; end of [outbound-allroutes]

[outrt-001-1 6_SipX]
include => outrt-001-1 6_SipX-custom
exten => _6.,1,Macro(dialout-trunk,1,${EXTEN},,)
exten => _6.,n,Macro(outisbusy,)
; end of [outrt-001-1 6_SipX]

[outrt-002-5_SipX2]
include => outrt-002-5_SipX2-custom
exten => _5.,1,Macro(dialout-trunk,3,${EXTEN},,)
exten => _5.,n,Macro(outisbusy,)
; end of [outrt-002-5_SipX2]

[from-internal-additional]
include => from-internal-additional-custom
include => app-cf-busy-off
include => app-cf-busy-off-any
include => app-cf-busy-on
include => app-cf-off
include => app-cf-off-any
include => app-cf-on
include => app-cf-unavailable-off
include => app-cf-unavailable-on
include => app-userlogonoff
include => app-zapbarge
include => ext-test
include => ext-local
include => outbound-allroutes
exten => h,1,Hangup
; end of [from-internal-additional]

;********************** end of extensions_additional.conf ***************************
(p.s. make sure there is an entry in the extensions.conf called #include extensions_addtional.conf)
I have left some of this file out, so you may want to edit the existing one, and just add the bits above. (You can connect to the asterisk box with SSH to edit files, or log on locally)
Also note that trunk 2 in the above configuration is my capi in card. you might want to remove this from here if you don't want to capi it.

Here is my /etc/asterisk/sip_additional.conf
;********************** start of sip_additional.conf ***************************
[200]
username=200
type=friend
secret=12345678
record_out=Always
record_in=Always
qualify=no
port=5060
nat=never
mailbox=200@device
host=dynamic
dtmfmode=rfc2833
context=from-internal
canreinvite=no
callerid=Alan <200>
allow=0

[SIPX]
username=66666666
type=friend
secret=voipjot
host=192.168.254.5

[SIPX2]
username=5555
type=friend
secret=voipjot
host=192.168.254.5
;********************** end of sip_additional.conf ***************************
(p.s. make sure there is an entry in the sip.conf called #include sip_additional.conf)



Please note that the first entry, [200] is a test phone that I configured, for the user Alan
The [SIPX] and [SIPX2] are the two connections to the SIPX server. the secret is the password for root on the SIPX machine, although AFAIK, you don't need it

Here is the file /etc/asterisk/localprefixes.conf
;********************** start of localprefixes.conf ***************************
[trunk-2]
rule1=0.

[trunk-1]
rule1=6666+6XXXXXXX

[trunk-3]
rule1=5555+5XXXXXXX
;********************** end of localprefixes.conf ***************************

************************************** END OF ASTERISK CONFIGURATION ********************************
I recommend using the trixbox/freepbx web interface unless you're a dab hand with vi.

**************************************** START OF SIPX CONFIGURATION ***********************************
Finally, we need the SIPX configuration
As you probably read at the beginning, I used the VMWare image. If you use the same onem I recommend changing the ip address, server name and dns server manually.
Once you have the necessary information, connect to the sipx server's web server via web browser (in my case http://192.168.254.5)
Click on configuration, accept the goofy SSL, and enter the username and password (in the VMWare image case, superadmin, no password)
Click on gateways, and then Add Gateway. Give a name for the gateway (i.e. ToMXS) and enter the IP address and the MAC address from the Exchange Server, and select unmanaged gateway
Now we need the two dial plans
First, for Voice Mail...
Click on Dial Plans
Click on Add Dial Rule
Click on Enabled
Give it a name
In Dialed Numbers, add 6 with "any number of digits"
In Resulting call, enter 666666 with nodigits
Add the gateway defined above for the route
Second, for Outlook Voice Access
Click on Dial Plans
Click on Add Dial Rule
Clickon Enabled
Give it a name
In Dialed Numbers add 5 with "any number of digits"
In Resulting Call, enter 5 with nodigits
Add the gateway defined above for the route
Move these dial plans to the top of the list (Select the dial plan and click slowly but surely on Move UP)
Make sure they are enabled, and then click on Dial Plan Activation, "Activate"
That's all there is.
**************************************** END OF SIPX CONFIGURATION ***********************************

If you want to dial back to the Asterisk, add an additional Gateway and a Dial Plan on the SIPX box to point to the Asterisk Box, and just configure the Exchange box to use the correct prefix.
What to do if it doesn't work?
USE A NETWORK SCANNER!!!!
Log into the asterisk server and use the command "asterisk -r -dddddddddd -vvvvvvvvvv"
Check the asterisk logs in the /var/log/asterisk directory
Set the Exchange UM logging to 7 via the registry
Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)

Part and Inventory Search

Back
Top