Posted in Exchange UM, Lync Server 2013, Skype for Business

Exchange Web Services (EWS)

Exchange Web Services (EWS) is a service used by Lync/SfB to integrate with Exchange. Successful integration obtains:

  • Calendar
  • Free/Busy information
  • Save Conversation History
  • High Resolution Photos
  • Voice Mail Access

Lync/SfB Client process to connect to Exchange Web Services (EWS)

1. Client will attempt to read any existing Autodiscover data with a valid Time-to-Live (TTL), which may have been previously retrieved by Outlook.
2. Client or device will extract the SMTP domain from the user’s presence document.
3. Client or device will then use the user’s SMTP domain to construct DNS queries for the following URLs:
a. https:///autodiscover/autodiscover.xml -if fails, goes to b.
b. https://autodiscover./autodiscover/autodiscover.xml -if fails, goes to c.
c. http://autodiscover./autodiscover/autodiscover.xml -if fails, goes to d.
d. Autodiscover uses DNS SRV lookup for, and then “” is returned.
4. Client asks permission from the user to continue with Autodiscover to post to
5. Autodiscover’s POST request is successfully posted to

Posted in Exchange UM, Lync Server 2013, Skype for Business

Script: Creating Self-signed Exchange UM Certificate

Here’s the thing, I want to post this since I always forgot this syntax every time I’m in the field integrating Lync/SfB and Exchange UM. I tested it over Exchange 2013 UM and setup is on-premise.

New-ExchangeCertificate -FriendlyName ‘LyncUM’ -PrivateKeyExportable $true -KeySize ‘2048’ -SubjectName ‘C=SG, O=LNC,’ -DomainName ‘’ -Services ‘UM,UMCallRouter’ -Server ‘’

Posted in Lync Server 2010, Lync Server 2013, Skype for Business

Outlook Conversation History vs. Lync/SfB IM Archiving

Note: The credit for this explanation does not belongs to me. I got this few years ago and save on my notepad but I forget to give credit to the author. If you read this, please comment.

The conversation history you are seeing in outlook is nothing to do with your archiving. Implementing Lync/SfB along side Exchange is giving you that functionality. This is a users personal conversation history, that they can refer to and manage as they see fit – and yes it contributes to the size of their mailbox but it’s insignificant size.

An archiving server on the other hand, stores IM and conferencing data to SQL. Archiving is normally deployed if a company needs to meet regulatory requirements, or would like to archive IM data for a period of time for their own personal ‘safety net’ reasons. If a user deletes something from their personal conversation history (mailbox) it is not removed from the server side archiving.

Retention policies and configuration is used on the server side archiving to determine how long you would like to keep data in the store, and how often to purge said data etc.

Question: Are we duplicating data?

Answer: Yes, but for two very different reasons.

One is manageable by the end user, and exists for their use, reference and history purposes. The other managed by administrators and used as the ‘go to’ point regarding incidents etc. A user could send an abusive IM then delete it from his own history, the purpose of an archiving server nullifies his attempts at covering things up.

Mailbox impact is trivial regarding conversation history.

Posted in Lync Server 2013, Skype for Business

Script: Creating Lync or SfB Databases with Specific Path

Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn -SqlInstanceName rtc -DatabasePaths “G:\CSDB”

Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn -DatabasePaths “E:\CSLog”,”F:\CSLog”,”G:\CSDB”

Install-CsDatabase -DatabaseType Monitoring -SqlServerFqdn -SqlInstanceName SGLYNCMON -DatabasePaths I:\MonitoringLogs,H:\MonitoringData

Install-CsDatabase -DatabaseType Archiving -SqlServerFqdn -SqlInstanceName SGLYNCARC -DatabasePaths I:\ArchivingLogs,H:\ArchivingData



Uninstall-CsDatabase -DatabaseType Monitoring -SqlServerFqdn -SqlInstanceName SGLYNCMON
Uninstall-CsDatabase -DatabaseType Archiving -SqlServerFqdn -SqlInstanceName SGLYNCARC

Posted in Lync Server 2010, Lync Server 2013, Skype for Business

Quick Guide: Change Location for Lync/SfB File Share

  1. Stop all the services on the Front-End servers, Archiving, Monitoring and SBA.
  2. Create the LyncFileshare folder manually with appropriate rights (read & write)
  3. Create New File Store in the Topology Builder
    1. File Server FQDN:
    2. File Share: LyncFileShare
  4. Publish the topology
  5. Re-point the IIS MeetingFiles to new LyncFileShare
  6. Re-run “Install or Update Lync Server System” from Lync/SfB Front End servers
  7. Copy all the content from older file share to the new file share
Posted in Lync Server 2010, Lync Server 2013, Skype for Business

Quick Guide: To move Central Management Store (CMS) to another Lync or Skype for Business Server

Moving Standard Lync CMS to Enterprise Lync/SfB

  1. Backup the CMS from Standard FE server.
    • Export-CsConfiguration -Filename
    • Export-CsLisConfiguration –Filename
  2. Run as Administrator: Open Lync Management Shell from Enterprise Edition Server and type below.
    • Install-CsDatabase –CentralManagementDatabase UseDefaultSQL Paths -SqlServerFQDN –clean
  3. Run as Administrator: Enable from the Lync topology
    • Enable-CsTopology
  4. Run as Administrator: Move the CMS
    • Move-CsManagementServer
  5. Restart both Master Replica Service and File-Transfer Agent service on Front end Servers
  6. Verify if CMS is installed on the EE pool
    • Get-CsManagementConnection
  7. Verify if replication is UpToDate
    • Get-CsManagementStoreReplicationStatus
  8. Re-run “Install or Update Lync Server System” from Front end Servers

Remove the CM store files after a move

  1. Warning! Do not proceed if Get-CsManagementStoreReplication status isn’t UpToDate yet.
  2. Login to Standard FE server and remove CMS database files
    1. Uninstall-CsDatabase –CentralManagementDatabase –SqlServerfqdn –SqlInstanceName rtc

Looks easy, isn’t it?

Posted in AudioCodes, Lync Server 2013, Skype for Business

AudioCodes AA – ACD call cannot transfer to any internal SfB User




  • AudioCodes Auto-Attendant is installed as virtual machine inside the SBA.
  • SBA is associated to a SfB Enterprise Edition in Central Pool.
  • AudioCodes AA configured with Automatic Call Distribution (ACD) in Call Work Flow
  • When a PSTN caller calls to AA IVR and chose ACD option (e.g. transfer to Receptionist), Receptionist answer the call but when it tries to transfer to any internal SfB user within the branch site, the transfer failed.

Errors on SfB logs captured on SBA

  • The call cannot be transferred
  • SIP/2.0 504 Server time-out
  • ms-diagnostics: 1038;reason=”Failed to connect to a peer server”;ip-address=”″;peer-type=”InternalServer”;winsock-code=”10061″;winsock-info=”The peer actively refused the connection attempt”;source=”SfBPoolinCentralSiteFQDN”
  • SIP/2.0 400 Bad Request



Open TCP port 15001 from SfB servers in Central office to AudioCodes Auto-attendant.

SfB requires that all servers, that receive REFER and start a new call as result of the REFER, have access to the referring server, for authenticating the referred-by header.

In the case above all servers should have access to AudioCodesAA.local:15001


Thanks to AudioCodes R&D, they found the solution!

But this port is not on Firewall requirement on AC document so we have requested it to be added.




Posted in AudioCodes, Lync Server 2013, Skype for Business

My own Skype for Business or Lync 2013 SBA Deployment Checklist

1 Pre-activities
1.1 Create Computer Object for SBA: e.g. companysba1
1.2 Add SBA Computer Object (e.g. companysba1) to RTCUniversalReadOnlyAdmins Security Group
1.3 Configure the SPN(Service Principle Name) for the Computer Object companysba1 in ADSI EDIT
1.4 Add the DNS Record for Gateway: e.g. 10.1.1.x, companygw1.local
1.5 Update the SfB Topology by adding the New SBA and Voice Gateway devices to SfB Topology Configuration
1.5.a Rights required: refer to 2.2
2 Installation and Configuration
2.1 Configure the SBA Appliance by running the Setup Wizard on the GUI
2.2 Required AD account during installation:
2.2.a *** Domain Administrator – when joining SBA to domain
2.2.b *** Local Admin|RTCUniversalServerAdmin|CsAdministrator – used for installing SBA and updating SfB Topology etc.
2.2.c *** Domain CA Administrator – when requesting offline cert for SBA, Dell to create the .req file
2.3 Update the SBA with latest SfB Lync Cummulative Update
2.4 Configure a User Based Dial Plan for the New SBA and associate the necessary normalization rules
2.5 Configure the required Voice Policies and Voice routes as per the requirement
2.6 Configure the AudioCodes Voice Gateway with Manipulations rules and Voice routes
2.7 Perform testing by making some test calls and see whether able to establish calls are not
3 Rollback (If required)
3.1 Not required
4 Post-activities
4.1 SBA Failover Testing
4.2 Fine Tuning
Posted in AudioCodes, Lync Server 2013, Skype for Business

Configuring Inbound Fax to AudioCodes Mediant 1000

This simple guide will just give you the step-by-step procedure to configure a working inbound or incoming fax. The fax port or FXS port is attached to AudioCodes M1K chassis.

Let’s configure FXS Port 1.


Go to Configuration -> VoIP -> GW and IP to IP -> Trunk Group -> Trunk Group

  • Add full E.164 format of the phone number
  • Set Trunk Group ID as 11
  • Set Channels to 1


Go to Configuration -> VoIP -> GW and IP to IP -> Trunk Group -> Trunk Group Settings

  • Set Trunk Group ID to 11
  • Select Channel Select Mode “By Dest Phone Number
  • Registration Mode “Don’t Register


Go to Configuration -> VoIP -> GW and IP to IP -> Routing -> Tel to IP Routing

  • Set Tel to IP Routing Mode to “Route calls before manipulation
  • Destination Phone Prefix to specific digits send by your Telco
  • Dest. IP Address to M1K own IP address


Go to Configuration -> VoIP -> GW and IP to IP -> Manipulations -> Dest Number Tel -> IP

  • Destination Prefix will be the specific digits send by Telco
  • On Add Prefix, format the digits in order to be in E.164 format that matched the Trunk Group’s “Phone Number” on 1st step.


From within gateway, route the calls to Trunk group 11. Go to Configurations -> VoIP -> GW and IP to IP -> Routing -> IP to Trunk Group Routing

  • IP-to-Tel Routing Mode set to “Route calls before manipulations
  • Dest Phone Prefix set to the full E.164 format
  • Trunk Group ID set to 11


It should ring by now when you call it from PSTN!

Other basic settings like Max Digits In Phone Num will not be covered here. You should have set it at earlier stage 🙂

If fax is required to dial out. We can configure it on another set of blog. Let me know if anyone requires it.


Posted in AudioCodes, Lync Server 2013, Skype for Business

Configure Failover Routing with Audiocodes M1000B for Lync or Skype for Business SBA Part 1

This guide is similar as the one published in technet however it is not explain in detailed. Screenshots here are my own. This is my own reference for future use just in case blog technet is down 🙂 . If it helps you, that’s great!

These are divided into 3 Parts

  1. Part 1
  2. Part 2
  3. Part 3

Basic guide for you to configure failover routing with AudioCodes Mediant 1000B for Lync/SfB SBA.


  • M1K Firmware version: 6.80A.258.005
  • Gateway Listening: TCP 5060
  • Lync/SfB Mediation Server Listening: TCP 5068
  • Coders: Mu-law


Configure the Gateway IP Address and DNS settings.


Reset the gateway: Device Actions -> Reset -> Click Reset (Burn to Flash, Yes; Graceful Option, No)


Upgrade the Gateway firmware. (Optional).

Configure NTP settings: Configuration -> System -> Application Settings

Configure SIP General Parameters: Configuration -> Advanced -> SIP Definitions -> General Parameters


Define Coders and Profiles: Configurations -> VoIP -> Coders and Profiles -> Coders


Configure Automatic Gain Control (AGC): Configurations -> Advanced -> VoIP -> Media -> IPMedia Settings


Configure Comfort Noise Negotiation: Configurations -> Advanced -> VoIP -> RTP/RTCP Settings


Enable ENABLEEARLY183 from Gateway Admin Page: Type from browser Http://GW_IPAddress/AdminPage, select ini Parameters


Proceed to Part 2:

Configure Failover Routing with Audiocodes M1000B for Lync or Skype for Business SBA Part 2