Multilanguage Auto Attendant with MS Exchange 2010 UM and Lync

One of the most cool feature of  Exchange 2010 UM is the Auto Attendant application, that let us to find and reach anyone inside our company through a simple phone call to a single number configured directly in Exchange UM role , below you can find a screenshot of a simple Auto Attendant configuration. AA_first

Here you can see that the language can be only one for each Auto Attendant, in this case English.

AA_second

So when you call Auto Attendant (from inside, or from PSTN) you hear only one language prompt that says :  “Welcome to the Exchange auto attendant” , “To reach a specific person, just tell me the name” etc…

QUESTION :

How can I create a Multi Language Auto Attendant ?

ANSWER :

if we have Exchange 2010 UM and Lync 20XX integration we can use Lync Response Group , but  Response Group (IVR) is not born to add, inside  Agent Group, applications like  Auto Attendant, so we can use a workaround.

1° , Configure one Auto Attendant for each Language (MAX 4 lang), no need to configure also a phone number associated to it, the important is to change language for each Auto attendant, English_AA –> set English in Features–>Language tab , Italian_AA –> set Italian in Features–>Language tab, etc…

Another important pre-requisite is to import all Language, for Speech Recognition and Text to Speech, that we want to use in Exchange UM 2010 SP2,  you can download here : http://www.microsoft.com/en-us/download/details.aspx?id=28191

AA_third

 ,  Launch OCSMutil.exe from lync front end to create all auto attendant object for each Language :AA_fourth

In phone number field you can enter whatever you want because we reach the auto attendant application only with his sip name from lync.AA_fifth

 3°, Copy each Auto Attendant sip user in notepad to use later in Lync Response Group , for example :

  • sip:English_AA@domain.com
  • sip:Italian_AA@domain.com
  • sip:French_AA@domain.com
  • sip:Spanish_AA@domain.com

4° , Now we are ready to configure  Response Group in Lync side : AA_sixthCreate one Agent Group for each language , don’t put any user inside and let default configuration.

AA_sevenCreate one Queue for each Language with following configuration, this queue let us to create the queue overflow to Auto attendant because if there ‘s no agent in the Group, all inbound call will be redirect to overflow queue and in this case we have our specific Auto Attendant for each language:

AA_eight35°, Now we are ready to create Response Group workflow :

Choose a Interactive workflow and configure like this, for fields not filled or not showed here you can leave default values :

AA_nine7

In this workflow you can see that there is the main Question about which language do you choose and than you’ll be forwarded to a specific queue based on language that we configure before in Lync Response Group queue configuration.

Advertisements

NEW: Call Via Phone application freeware for Lync 2013 and Lync 2010

Hi all,  after a couple of months I’m happy to inform that I implement a new version of  Call Via Phone app for SNOM device. This version work also for Lync 2013 and obviously Lync 2010.

Step to install this new version :

  • Uninstall any old version of callviaphone   before install this one.
  • Install the latest KB for lync 2013 kb2760512, otherwise it don’t work on lync 2013 and work only on Lync 2010. 

Following all Windows version tested :

  • Windows 7 32/64 bit
  • Windows 8 64 bit

Following is a brief guide:

Unique Installation for 32 and 64 bit :

Download link :  Call Via Phone app

Once installed go ahead with the setup.

Configuration

  • Start Lync 2013/2010 Client and go to Tools –> Configure Call Via Phone App
  • After that a Message Box appear , and after you fill the field with phone IP address  , Extension or Username and PIN or Password,  click to save.
  •  After that, you are now ready to use the call via phone app.

Usage

On your buddy list , right click to a contact and click “Call Via phone” , at this point your SNOM phone must start to call the contact selected from Lync.

Please give feedback and do not hesitate to contact me for any kind of information or problem.

if you want to donate to help and encourage the development you can follow this link :

 

NEWS *  :  You can find also Call Via Phone Advanced version here :

Link to Call Via Phone Advanced for Lync 2010/2013

Feature added on CVP Advanced :

  • When you click on a contact you can choose which number to call using the phone (Lync , Mobile, Work, Voice mail)
  • After a call has started you can control  (Close, Hold, Add call, Transfer, Conference)

PBX replacement with MS Lync (with Dual Forking) Part 2

As i mention in my last post (part 1) we can choose to use the Voice gateway in pass-through as shown here :

PBXReplacementPart2_Example_base scenario

but to do this , we have to consider various steps before moving the IP-PBX in production  and insert voice gateway between PSTN and the enviroment, so let start from the beginning,  these are necessary steps :

1.  Voice gateway configuration for PSTN trunk (only configuration not yet connected), in the other side (to lync and to PBX) configuration of SIP trunk to Lync and SIP trunk to IP-PBX (IMPORTANT : to obtain a dual forking of calls in this scenario we must use only sip trunk to and from  PBX , so we must have an IP-PBX with sip trunk enabled ).

At this step we don’t have any disservice on IP-PBX production environment but we are ready to switch PSTN from IP-PBX to Voice gateway .PBXReplacement_part2_Example_step1

2.  We can schedule session tests to verify that all configuration made before work    fine (for example during time range in which we couldn’t have any outages to users, for example during the night?), in this way if not all scheduled tests list will be fine , we can rollback easily and move PSTN trunk to IP-PBX again.

To achieve this we must locate the Voice gateway properly sized, to mantain compliance on  requirement in terms of business continuity, for example redundant power supply , right number of SIP channels to/from lync, and to/from IP-PBX.

In this way we can also test a SIP trunking from a provider instead of PSTN (or buy another PSTN trunk to do a test pilot for Lync voice for example) , because until we switch the PSTN from IP-PBX to Voice Gateway, we can work easily in Voice Gateways side without give any problem in IP-PBX side.

About call flow management and dual forking we have the same behavior as i wrote in my previous post (part 1) , unique difference is that all configuration for dual forking is made in Voice gateways side , and in PBX side we have only to switch all inbound and outbound call to the new SIP trunk instead of PSTN trunk already switched off.

At this point we can assert that we have a lot of way to do a soft migration or simply to use the existence telephony infrastructure for Lync and generally Microsoft UC. We know that Microsoft Lync just for presence/audio/video/conference is really wasted and with a good approach and a small effort we can implement an excellent Lync Voice project for a really Unified Communications experience.

PBX replacement with MS Lync (with Dual Forking) Part 1

Talking about PBX replacement with MS Lync can be a difficult argument when proposed to customers. But as the nature of MS Lync we have a lot of ways to do it. Usually we can meet two different type of customers, one can think that his employees must change how they work day by day, and for this reasons we can explore solution with direct switch to new technology providing a direct cut-off ; the other one,  not so confident,  prefer a soft migration and possibly a true coexistence between old and new phone system, the last one obviosly is more complicated,  but surely the most funny for us:-), i want to explain  you how we can do a soft migration also with a good coexistence, for now i can mention 2 type of IP-PBX or TDM-PBX: ALCATEL OXE and Cisco CCM.

The first important thing is that all of this project must provide a Voice Media Gateway to ensure that all translation and, eventually transcoding,  from one system to Lync and viceversa don’t drive us crazy…:-)

Actual Infrastructure Enviroment without integration

PBXReplacementExample_base scenario

Based infrastructure consider that we have a fully up and running Lync enviroment and a consolidate Phone infrastracture .

Scenario  (Coexistence with Dual Forking)

If we have a ALCATEL OXE (with remote extension license), CISCO CCM (sip forking with extension mobility license) or a TDM/IP-PBX that support forking to another number not included in its dial-plan (for example to a sip trunk or TDM trunk connected) we can consider this scenario :

PBXReplacementExample_scenario1

Using  Voice Gateway between Lync and Phone infrastructure give us a lot of configuration that otherwise we could not easily do without provide a big effort from the Phone system team .

In this scenario we can consider this events :

Inbound call from PSTN : When we receive a call from PSTN to +3906….4444 , call arrive to PBX , PBX at this stage send the call to the extension in its dialplan and see that there’s also another number associated (for example 9994444) and , in parallel , fork this call to that number with 999 (a prefix trunk associated to the Voice gateway).

When the call arrive to Voice Gateway with destination number 9994444 , it translate called number in +3906….4444 and send to lync .

Result  :  Lync client (or lync phone) and PBX phone ring at the same time, and when one of this two pick up the call ,the other one stop ringing .

Inbound call from another PBX phone : When we receive a call from another PBX phone  to 4444 , call arrive to PBX , PBX at this stage send the call to the extension 4444 and see that there’s also another number associated (for example 9994444) and , in parallel , fork this call to that number with 999 (a prefix trunk associated to the Voice gateway).

When the call arrive to Voice Gateway with destination number 9994444 , it translate called number in +3906….4444 and send to lync .

Result  :  Lync client (or lync phone) and PBX phone ring at the same time, and when one of this two pick up the call ,the other one stop ringing .

Outbound call from Lync to other PBX phone : In lync we have two way to make a call to a contact, if we make a classic Lync call , this call remain inside Lync enviroment but if we make a work phone the call is translated for example in extension format :

– Digited : +3906……4444 , normalized in 4444  so the call are sent outside Lync through the Voice Gateway  and arrive to the extension 4444 , as i mention before in pbx enviroment 4444 have another extension configured (9994444) that corrisponds to the Voice gateway trunk and the same call was also diverted to Lync client .

Result  :  Lync client (or lync phone) and PBX phone ring at the same time, and when one of this two pick up the call ,the other one stop ringing .

Yes i know , a little cumbersome but it’s work fine .

Inbound call from lync to PBX and dual forked to lync

Outbound call from Lync to other PSTN: All external calls made from Lync follow the classic flow to PSTN (Voice Gateway –> PBX –> PSTN) , it’s important to know that all calls made by Lync can have the same Calling number as the associated extension in PBX dial plan :

– for example if i make a call from PBX phone my external DID is : +3906……4444, but PBX add instead of me the +3906….. (* maybe that +39 is not considered in a national call) .

When i make a call from lync if i want that it must be the same calling number as the PBX phone ,  i have to configure on Voice Gateway a good format for PBX to accept DID so for example in ALCATEL enviroment i must pass to it the call in this format :

calling number (Lync side) +3906…..4444  — >  Translated by VG in  : 06…..4444 , in this way ALCATEL recognize the call as one from its dial-plan, otherwise can appean that my calling number is only +3906……. without the extension.

Result : the call appear to PSTN exactly from one number shared by Lync and PBX and we can realize a true Single Number Reach

Requirement for this scenario

We have to consider that if we make a QSIG trunk between PBX and Voice Gateway my advice is to use a QSIG-GF (Generic Function) not basic because there are a lot of service such as call diversion, line identification, etc.. that is not implemented on QSIG-BC (Basic Call).

If we choose a SIP trunk between PBX and Voice Gateway we have to consider in Voice Gateway side licenses for IPtoIP and eventually transcoding with DSP onboard because if we configure trunk from/to PBX in a RTP codec different from G711, for example G729 , all calls are trascoded (Lync Mediation server work only in G711).

I hope that this post can be useful for you , and please don’t hesitate to comment 🙂

In part 2 we’ll consider a scenario in which I’ll describe the positioning of Voice Gateway in passthrough between PSTN and PBX to prepare a clean migration phase.

UPDATE 1.1.5: Call Via Phone application for Lync 2010

Hi all, I developed an application  to grow the capabilities of the call via telephone in an environment that includes Lync and SNOM as ip-phone with the firmware Apollo or oldest. At this time only Lync IP-PHONE version with a “USB “Better Together” can make call via Lync 2010 Client. So with this application you can able to do also with all the SNOM UC Apollo firmware and also with the oldest SNOM OCS firmware. As most of you know the new Apollo firmware allows authentication by inserting Extension and PIN, or as an alternative, but more cumbersome, the use of username and password.

At this time it work only in Lync 2010 client , the extension of Lync 2013  is still in development.

Following all Windows version tested :

  • Windows 7 32/64 bit
  • Windows 8 64 bit
  • Windows Server 2008 R2 64 bit

Following is a brief guide:

Installation

Updated 32 bit version 1.1.5 download:  Call Via Phone app 32

Updated 64 bit version 1.1.5 download:  Call Via Phone app 64

Before install it , unistall the old version from Control Panel. This new version  solve an issue regarding “phone-context” string manged by the SNOM phone , thanks to Olivier Kiel for feedback about it.

Once installed go ahead with the setup.

Configuration

Start Lync 2010 Client and go to Tools –> Configure Call Via Phone App

After that a Message Box appear , and after fill the field (information below is not real, provide you own configuration) click to save.

 After that, you are now ready to use the call via phone app.

Using

On your buddy list , right click to a contact and click “Call Via phone”

Please give feedback and do not hesitate to contact me for any kind of information or problem.

if you want to donate to help and encourage the development you can follow this link :

Download Link :

Updated 32 bit version 1.1.5 download :  Call Via Phone app 32

Updated 64 bit version 1.1.5 download:  Call Via Phone app 64

NEWS *  : New Call Via Phone Advanced version  coming soon with this feature :

  • When you click on a contact you can choose which number call using the phone(Lync , Mobile, Work, Voice mail)

SNOM UC apollo 8.8.1.13 released

This new firmware solve all problem that i mentioned in my last post with firmware 8.8.1.11 :

  • There’s no need to have  an edge server in Lync infrastructure for Ringback issue
  • “Not registered” message on snom phone during the day.
  • Problem when you add a snom phone from a Lync based conference

For other information and to download last firmware please visit http://www.snom.com/

Lync Online and MSOSIA (Microsoft online Sign-in Assistant) issues

One of the big challenge to deploy a Office 365 enviroment in a big company is doubtless the security…obviously  from corp net to the office 365 cloud and viceversa, but main problems are certainly on Lync online due to the type of authentication with MSOSIA (Microsoft Online Sign In assistant).

Typically in a Lync on premise all of the authentication and communications protocol is managed by Lync servers and there’s not need to use MSOSIA to login, but with Lync Online  all of communications (except the authentication to the ADFS that is internally located ) pass through a web proxy (in each company we have a proxy…) and we are  not sure that this web proxy is a ISA server or TMG server . Here you can find a good KB that describe exactly how to configure an ISA or TMG to exclude the MSOSIA service for each user’s client  :

http://office.microsoft.com/en-au/communicator-help/troubleshooting-lync-sign-in-errors-administrators-HA102759022.aspx

but , as i write before we have to consider that with a SQUID proxy  or other type not well know , not MS,  we have to bypass the proxy and permit Lync to pass directly on Internet . Ok….done.. but typically we have also a firewall between  that work only with ip address (network level) and not name or service (application level) , so we have to exclude  this list provided by MS :

http://onlinehelp.microsoft.com/Office365-enterprises/hh373144.aspx

good to use but in this condition we have to configure firewall with static route, and if subnet change we have to change accordingly on it, but for now is the only way, for this enviroment.

After all you think that now it’s all ok , lync connected fine etc…not completly… because there are another important things to manage on MSOSIA .

MSOSIA is needed to connect to office365 cloud , with it we can obtain the personal certificate that lync use to connect to Lync online cloud ,  and when you install it the first time on a client , after you close the installation windows that seems that all working fine , services MSOIDSVC.EXE try to connect to internet to download  Certification authority CRL to confirm the origin of various root certificate installed on the client, infocert, verisign and so on. But if the client is a Windows 7 and it’s not connected on internet or it have  a web proxy configured that ask authentication to browse to those CA CRL site, at the time of Lync login , we have always this :

At the moment we are investigating how to solve the problem , and at this time the only way to make it work is to disabled authentication in web proxy side for this site :

  • –              *.verisign.net
  • –              *.verisign.com
  • –              *.inforcert.it

An update from MS :

To avoid this on your proxy web authentication you can add and filter to exclude *.crl. 

This is because Authenticode is trying to ensure that the certs that signed the files in use are valid. It does that by checking that the serial numbers are not in the CRL files that the issuing CA produces.

If it can’t get a CRL it assumes the certs are invalid

Also the CRL files have to be cryptographically signed by the same cert as signed the cert in question

If anyone have ideas or comments , please contribute 🙂