Integrating #Lync Server and #snom ONE IP PBX Step by Step: Free SIP/PSTN Gateway?

lync plus snom

Note: Lync requires responses to the SIP OPTIONS packets in order to declare a gateway alive. snom ONE 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:

  1. Install snom ONE PBX on its own Windows OS
  2. Configure a snom ONE PBX trunk to connect snomONE and Lync
  3. Setup our new gateway in the Lync  Topology Builder and publish it
  4. Setup Voice Routing in Lync Control Panel
  5. 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 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 install next next next 

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.

log into snom ONE first time

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”

notice you need to register snomONE

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.]

license snomONE

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 “” 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”.

snomONE create a new trunk 

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!
snomone lynctrunk 1

snomone lynctrunk 2

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

add gateway

Next we need to associate this new gateway with a Mediation server. Click on Mediation Pools and then our Mediation Server ( Now click on Edit Properties.

associate gateway to mediation server

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.

mediation gateway properties

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.)

publish topology

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.

setup dial plan

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}

dial plan normalization rule

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!


  1. Is it possible, Lync Users call to PSTN?

    1. yes, lync can call pstn right now using a Lync certified sip trunk (which requires no gateway)

  2. yes, if i would finish the article... ;-)

    1. Waiting for you to finish this....

    2. ;-) many many projects. I wouldn't hold your breath...

  3. Matt, we tried to use SnomOne as a proxy between Lync and Avaya with SIP to resolve the hold and transfer issues on avaya.. however we found the calls would connect but 60% of the time there would be no audio on either end. Have you found that to be the case.

    We ended up going with an AsteriskNow install to proxy the SIP and all is well now.
    I am currently exploring the AsteriskNow being a PRI gateway for the Lync Deployment. Have you tried that with snomone?
    Here is how we setup Asterisk as a proxy:

  4. @JasonLee: no, haven't tested enough likely to see it. ;-)

  5. hi matt,
    Can you tell the steps to register sip softphone to the snomone pbx. Are there any test phones(soft) available? Sorry, have little experience in Lync PBX integration :) and your article is amazing.

  6. snom has their snom m9 sofphone. (very basic, but it works)

    be aware this softphone can connect to plain SIP PBX and lync (very unusual).

    Its a testing phone though, not likely to be used in production.

  7. Is there any requirement before I can configure the above steps? such as configure the external access first

  8. Is it possible to connect Lync SnomOne to Microsoft customer Care Accelerator.? How to do it in the best possible way.

  9. Hello Matt...great article. I am a half newbie and am wondering about "registering the softphone". I have a lab built and think I am most of the way there as two softphones work using a 403-921-5000 and 5001 to call each other. I have two internal Lync users with enterprise voice of 3055552002 and 2001 both able to call each other, yet am unable to generate the softphone to Lync users. Do I need to register the softphones of 5000 extensions to my internal Lync users? Any help would be greatly appreciated, thanks.

    1. R, No you do not need to register the 5000 and 5001 extension as Lync users. Just think of them as calls from outside Lync calling Lync via PSTN (for example). Everything applies the same.

      (btw--one always remains half a newbie)

  10. Hello Matt,

    have you experienced an issue with calling to Lync after adding other several trunks to SnomOne PBX ? I'm stuck after I added several ones the calls to Lync are always redirected to Snomone Voicemail instead.

    according to one of the support team in Snomone forum site, I had to bind an extension with Lync user's DID/TEL URI in order for calls to work from SnomOne to Lync. it worked at the beginning but now its not at all.

    The weird thing is I can't see any traffic to Lync from Snom except the sip option 200OK packet.

    any advise ?

  11. Could you some please share the steps to integrate Trixbox with lync. I am new to both.

    1. AsteriskNow <-> Lync Integration:

  12. Anyone please help with the Trixbox integration with lync

  13. This comment has been removed by the author.

  14. Very well explained Article .Thanks a lot .My lab setup has been completed Successfully .

  15. Hi Matt,

    I was trying to download this software from the given link ( ), but it seems it has been moved somewhere else or deleted.

    Any idea where to download it from?
    Thanks, Mohammad

  16. Hi Matt,

    I also have same issues that of Rahman, Can you please help me in downloading the same.


Note: Only a member of this blog may post a comment.