Sonus Cloud Link Install Wizard Error

Problem: When installing SfB Cloud Connector on Sonus Cloud link Appliance, you may get the following error “Got an exception deploying CCE: Certificate Chain is broken. Root and Intermediate Certificate needs to be imported: A certificate chain could not be built to a trusted root authority“.

cce-error

Solution: RDP to ASM and Install the Root & Chain Certificate on the Hyper-V host machine.

Explanation: When importing SfB Edge Certificate through the CCE deployment Wizard, the install wizard tries to import the cert into ASM module (Hyper-V hosting the 4 x VMs) however if the host machine does not have the Root CA, you might get above error.

Skype for Business SIP Integration with Sonus SBC

The integration notes are based on below voice network architecture and it attempts to detail the configuration requirements on each component involved.
The SFB server is connected to Sonus SBC 2000 using SIP TCP on port 5066, please note that it is also possible to set up a TLS connection if required.
The Sonus SBC 2000 is connected to Avaya CM using E1 Euro ISDN.
The Sonus SBC 2000 acts as a gateway between Avaya (TDM) and Skype for Business (SIP), it also performs the necessary Called Number & Calling Number transformation for the phone users.

SonusIntegration.jpg

sfb-integration-with-sonus-sbc-2000-v1-1

Install SfB Cloud Connector Edition 1.4.1

This guides covers steps involved in downloading and installing Skype for Business Cloud Connector Edition 1.4.1.

Microsoft Technet link https://technet.microsoft.com/en-us/library/mt605228.aspx was used as reference throughout the deployment.

In order to perform a successful deployment, do spend more time on planning and modifying the configuration file “CloudConnector.ini” with accurate values.

The topology assumed here is single instance of Cloud Connector within a single PSTN site.

sfb-cce

step-by-step-configure-skype-for-business-cloud-connector-edition-v1-1

Skype for Business Web App Branding

Skype for Business Web App Branding

Default Web App pageDefautlt

After CustomizationCust

 

  1. Modify Skype Logo

File to be replaced: SkypeLogo.PNG

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Int\Images

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Ext\Images

 

 

  1. Modify Application Name Label “Skype for Business Web App”

File be edited: Lync.Client.MiscClientConsolidated.js

Original Code:

get_applicationTitle: function Lync_Client_Controls_PreAuthArea_PreAuthAreaViewModel$get_applicationTitle() {

return Lync.Client.Controls.Common.ControlResources.get(Lync.Client.Controls.ControlResStringId.applicationTitle);

},

Modified Code:

get_applicationTitle: function Lync_Client_Controls_PreAuthArea_PreAuthAreaViewModel$get_applicationTitle() {

return “Welcome to mylabs WebConf Service” ;

},

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Int\Scripts\UI

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Ext\Scripts\UI

 

 

  1. Modify User Name Label “User name”

File be edited: Lync.Client.MiscClientConsolidated.js

Original Code:

get_userNameLabel: function Lync_Client_Controls_LoginControl_LoginControlViewModel$get_userNameLabel() {

if (this.currentAuthType === 3) {

return Lync.Client.Controls.Common.ControlResources.get(‘GuestTitleText’);

}

return Lync.Client.Controls.Common.ControlResources.get(‘UsernameLabelText’);

},

Modified Code:

get_userNameLabel: function Lync_Client_Controls_LoginControl_LoginControlViewModel$get_userNameLabel() {

if (this.currentAuthType === 3) {

return Lync.Client.Controls.Common.ControlResources.get(‘GuestTitleText’);

}

return “Username(Eg:mylab\\user1):”;

},

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Int\Scripts\UI

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Ext\Scripts\UI

 

 

  1. Modify Password Label “Password”

File be edited: Lync.Client.MiscClientConsolidated.js

 

Original Code:

get_passwordLabel: function Lync_Client_Controls_LoginControl_LoginControlViewModel$get_passwordLabel() {

return Lync.Client.Controls.Common.ControlResources.get(‘PasswordLabelText’);

},

 

Modified Code:

get_passwordLabel: function Lync_Client_Controls_LoginControl_LoginControlViewModel$get_passwordLabel() {

return “Your Windows Password:”;

},

 

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Int\Scripts\UI

C:\Program Files\Skype for Business Server 2015\Web Components\LWA\Ext\Scripts\UI

 

 

Notes:

Spent some time figuring out the files to be replaced and scripts to be edited, thought worth documenting.

Any CU update might overwrite the modified scripts and as a result  you may lose the customization, will need to redo after CU update.

Skype for Business Web Scheduler Branding

Skype for Business Web Scheduler Branding

Default Web Scheduler pageDefautlt

After CustomizationCust

 

  1. Modify Skype Logo

File to be replaced: SkypeLogo.PNG

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Int\Resources

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Ext\Resources

 

  1. Modify Login Form Name “Skype for Business Web Scheduler”

File be edited: W15LoginControl

Original Code:

<h2 class=”LoginFormTitle”>

<%= Resources.SFB_SkypeForBusiness %>&nbsp;<%= Resources.SFB_WebScheduler %>

</h2>

 

Modified Code:

<h2 class=”LoginFormTitle”>

Mylabs Conferencing &nbsp;<%= Resources.SFB_WebScheduler %>

</h2>

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Int\UserControls

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Ext\UserControls

 

 

 

  1. Modify User Name Label “Domain\User name:”

File be edited: W15LoginControl

Original Code:

 

<label class=”label” for=”loginUsername”><%=Resources.LoginUsername %></label>

<input id=”loginUsername” name=”loginUsername” class=”formField” type=”text” maxlength=”256″ />

Modified Code:

 

<label class=”label” for=”loginUsername”>Domain\Username (Eg:mylab\user1):</label>

<input id=”loginUsername” name=”loginUsername” class=”formField” type=”text” maxlength=”256″ />

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Int\UserControls

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Ext\UserControls

 

  1. Modify Password Label “Password:”

File be edited: W15LoginControl

 

Original Code:

<label class=”label” for=”loginPassword”><%=Resources.LoginPassword %></label>

<input type=”password” id=”loginPassword” class=”formField”  onkeypress=”return pageNavigator.SignInOnEnter(this, event);” maxlength=”256″ />

 

Modified Code:

<label class=”label” for=”loginPassword”>Enter Your Windows Password:</label>

<input type=”password” id=”loginPassword” class=”formField”  onkeypress=”return pageNavigator.SignInOnEnter(this, event);” maxlength=”256″ />

 

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Int\UserControls

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Ext\UserControls

 

Modifying Help URL

File be edited: MainWindowControl

 

Original Code:

 

<%=Resources.PrivacyStatement %></a></span>

<span class=”helpText”><a target=”_blank” href=”<%=HelpLink%>”>

<%=Resources.HelpText %></a></span>

 

Modified Code:

<%=Resources.PrivacyStatement %></a></span>

<span class=”helpText”><a target=”_blank” href=”https://google.com”&gt;

<%=Resources.HelpText %></a></span>

 

 

File Locations:

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Int\UserControls

C:\Program Files\Skype for Business Server 2015\Web Components\Web Scheduler\Ext\UserControls

 

 

Notes:

Spent some time figuring out the files to be replaced and scripts to be edited, thought worth documenting.

Any CU update might overwrite the modified scripts and as a result you may lose the customization, will need to redo after CU update.