Note: Lync requires responses to the SIP OPTIONS packets in order to declare a gateway alive. snom ONE 4.5.0.1090 Epsilon Geminids (not sure exact version that this tip is needed) doesn´t answer unsolicited OPTIONS packets for security reasons in version unless you set ”out_of_dialog_options” in the pbx.xml.
I hear repeated requests for “the lowest cost gateway” to test Microsoft Lync Server. I think the lowest cost SIP Trunk gateway for Microsoft Lync is the free, Windows based snom ONE IP PBX. Not only is it free, but it is simple and Windows based so it fits into the Lync scheme very nicely. (also as a bonus compared to Asterisk gateway: no command line install or configuration files to mess with! Go Windows!)
Before we get started I’ll outline the basic steps we’ll take to accomplish this:
- Install snom ONE PBX on its own Windows OS
- Configure a snom ONE PBX trunk to connect snomONE and Lync
- Setup our new gateway in the Lync Topology Builder and publish it
- Setup Voice Routing in Lync Control Panel
- Test and celebrate!
I – Install snom ONE
This is not an in-depth “How to install snom ONE IP PBX” but some quick presumptions, prerequisites and suggestions will make this go so slick you’ll be surprised.
- Presumption: install on Windows Server or Windows 7 to keep things simple. (once you’re a guru—Yes, you can run it on Linux too)
- Install snom ONE on its own OS. Once again just to keep things simple and so they work THE FIRST TIME FOR YOU.
- Make sure nothing is running on port 80 or 443 before snom ONE is installed. (why would anything be running on those ports if this is a fresh os install with nothing else on it? ;-)
- Turn OFF the software firewall on the server running snom ONE PBX. (once again, humor me. If you are a guru turn it on when your all done and the integration is tested and working fine)
Okay, now go to http://www.snom.com/en/products/ip-pbx/snom-one-free/ and get your copy of snom ONE free. Its just a <20MB download so it will take just a minute. Extract the zip file and run the Setup.exe. You should be able click Next the whole way through the install until it is done.
snom ONE IP PBX should now be installed. To test we'll log into the administration web console. On this server open a browser and go to http://localhost/ and if you see the login screen the install was successful.
The Account username is “admin” as shown and the default password is <blank> as shown and click Login. After logging in you will see the screen below. Cool! The last thing we need to do is activate the free license on this install of snomONE Free. This is just a few clicks and no phones can register to snomONE free without it. The big exclamation mark is letting you know you need to register so click on “here”
Check “Use the evaluation copy…” and click save. [Note: this is NOT a time limited eval as this suggests. This is a full blown pbx. The only limitation is 10 extensions.]
snom ONE IP PBX is installed and ready to config! That was easy!
II - Configure a trunk to Connect snomONE and Lync
Now we are going to add a trunk to point at our Lync Server. Click on Domains | Select the “localhost” domain by clicking “pbx.company.com” url beside “localhost” | Click on Trunks. Create a new trunk by filling in the info under “New Trunk”
- Name = LyncGateway (not super important, just some name)
- Type = SIP Gateway (important)
Now click “Create”.
Now we get to configure this Trunk. The important fields are highlighted.
- Type = SIP Gateway
- Trunk Destination = Microsoft OCS
- State = Enabled
- Domain = Lync Mediation Server FQDN
- Username = Anonymous
- Password = <blank>
- Proxy Address = sip:FQDN;5060; transport=tcp
- Send Call to extension = make it the snomONE AutoAttendent Extension
- Assume call comes from user = an unused snomONE Extension
Click “Save” and…we’re done in snom ONE!
III – Setup our new gateway in the Lync Topology Builder
To add a new gateway to our Lync we will open the Lync Topology Builder. Go to PSTN Gateway | New IP/PSTN Gateway.
- Gateway FQDN or IP Address = our snom ONE IP address
- Listen Port = 5060
- Transport Protocol = TCP
Next we need to associate this new gateway with a Mediation server. Click on Mediation Pools and then our Mediation Server (2008-LYNC-FE.xyz.com). Now click on Edit Properties.
Now we will assign our new gateway to this Mediation server. Just 2 settings.
- Enable TCP port = Yes/Checked
- Listening ports = TLS = not important; TCP = 5060 to match snom ONE
Now select our new gateway and Click Add. Now Ok to close this screen.
Now you should be ready to Publish your topology. Click Publish Topology. (Note: if there are any problems with the topology there will be an indication beside “Lync Server 2010” in upper left. Scroll down on this screen to see what you need to fix.)
If everything went as planned, your done with this section.
IV - Setup Voice Routing in Lync Control Panel
Now we will move to our Lync Server and open the Lync Control Panel. We will make a new Normalization Rule under “Dial Plan”. To do this Click “Voice Routing” | “Dial Plan” | select the “Global” dial plan | “Edit” | “Show Details” as shown below.
Now under “Associate Normalization Rules” click “New”.
- Name = snomONE
- Starting Digits = 4
- Length = Exactly 2
- Digits to add = {remove the + so there is nothing in this field}
To save this “Normalization Rule” click “OK” | “Commit” | “Commit All”.
Click Voice Policy open “Global” and under “Associated PSTN Usages” click “New”.
- Associated PSTN Usage
- Name = snomone-pstn-usage
- Associated Route
- Name = snomone-route
- Starting Digits… = 4 {then click Add}
- Associated gateways = {your snomone gateway}
Now click “Okay” | “Okay” | “Okay” | “Commit” | “Commit All”.
V – Testing / Uncompleted Part
- If you register a SIP softphone to snom ONE you should now be able to call Lync and vice versa
- Is snom ONE working correctly?
- call Lync AutoAttendendant
- Can we call Lync from snom ONE?
Acknowledgements: Borrowed ideas from
Jan Boguslawksi’s pbxnsip to OCS article,
imaucblog's Lync to Asterisk article, and I’m sure somewhere else.
If you have any improvements, clarifications, corrections, please comment!