Quality Management Suite

 

 

Installing & Troubleshooting The Telrexnetservice

 

1. The TelRexNetService

The TelrexNetService monitors the sip traffic for Call Control information.  It then passes that information on to the QMS Call Recording Service over port 8008.  It creates a persistent TCP connection to the named QMS Recording Service.  It needs to be installed on all Front End Servers or Survival Branch Appliances (SBA) involved with phone traffic.

As of Version 5.2, we support multiple SIP domains.

 

2.  Lync Front End Servers and SBA's.

The Front End server is the main Lync server that runs many of the Lync services and is the primary phone call control coordinator in a Lync network.

The SBA is like a Front End server but is installed at remote locations with fewer services.

A server pool, also called a shared pool, is the combined events of Front End servers that together provide all the Call Control.

 

Below is a typical Lync installation with Front End servers, SBA, and server pool.

 


3. Requirements

The TelrexNetService is compatible with OCS, Lync 2010 and Lync 2013

A special user account is needed for the TelRexNetService. This account ‘must’ be a member of the same domain as the Front End server or SBA on which you will be installing the TelRexNetService.  It must also be a part of the following groups:

CSAdministrator  (Active Directory group)
RTCHSUniversalServices  (Active Directory group)
RTCUniversalServerAdmins  (Active Directory group)

This User must also be added to the Local Group
RTC Server Applications  (Local to Front-end Server)

It is VERY important that this user be set up correctly.

To check that the account requirements of section 3 have been met, open a command prompt window and type in “whoami /groups”. You will see a list of groups that the user belongs to. By default it will belong to many groups. Scroll through the list and find the groups listed in section 3.

 

4. Installation

Login to the Front End Server or SBA as the account that you created in section 3.

Copy the TelrexNetService install folder to the Front End server or SBA and unzip it. Go to the install folder.

Double click on the TelrexNetService installer.  Right click and select install.  Accept the license agreement and click next.

The TelrexNetService Setup window opens.

     4.1  Select the correct Lync/OCS version

     4.2  Lync/OCS Front End Pool FQDN -  Enter the Fully Qualified Domain Name (FQDN) of the Front End Pool.  If there is no Front End Pool, meaning you only have one Front End server, then enter the FQDN of the Front End server.

     4.3  HostName:  Enter the machine name (Not FQDN) or IP address of the QMS Call Recording server.  Enter multiple Call Recording servers separated by a space.  The value you enter here is inserted into the config file under the key Service.CallRexrecordingHosts

Make sure that the machine name and IP address that you entered above is ping-able.

     4.4  Lync/OCS server domain: Enter the Lync/OCS server domain  (ex:  if Lync users are addressed as  user@gcs.telrex.com the server domain would be  ocs.telrex.com

     4.5  User Account:  The User account that you created in step 3.  Specify the username only

     4.6  Domain of the user account:  Enter the domain for the user in step 4.5.  Note, if during the windows login, you logged in as Telrex/Username, you would enter ‘Telrex’ not telrex.com

     4.7  Password:  Enter the password for the user in step 4.5

     4.8  Click NEXT.  Click Install and when it is complete, Click finish.

 

5.0  Post Install Configuration

5.1   After installing the TelRexNetService, you need to update the TelRexNetService.exe.config file in the Telrexnetservice folder. In versions before 5.4, this was done manually.  In version 5.4, this process is automated.  What follows is the manual process.  It is good to know.  Following this section is a screen shot of the new utility that makes this process easier.  Use this section to verify your entries if neccessary.

Use a text editor to open the file.  You will need to stop the TelRexNetservice Service in Windows Services before proceeding.

Update the Service.DisallowedIPAddresses setting.  This setting filters out IP addresses from being assigned to a QMS Users IP address.  Include in this setting:

The IPV4 addresses of the QMS Server.

The IP Address of the Lync Front-end servers.  If there is more than one Front End server, then the IP for every Front End server must be in this line.

The IP address of any Edge Servers or Exchange Servers in the Lync deployment.

Add additional IP's if necessary, if they appear in the Users IP address field.  This might include 3rd part queuing hardware devices and maintenance IP's like the 169.#.#.#.

Note that this line already includes 127.0.0.1.  That address needs to remain.  Add additional IP's with a space between each IP address.

When finished, the line will look like this example:   <add key="Service.DisallowedIPAddresses" value="127.0.0.1 192.168.5.2 10.1.1.40"/>  Of course the line will probably be much longer.

5.2   Look for a line similar to this: <add key="Service.LocalDomain" value="ocs.telrex.com"/>

Update the Service.LocalDomain value to reflect the local OCS domain, if it did not get properly set during the install. For example, if OCS users are addressed as user@ocs.telrex.com the Local Domain setting is ocs.telrex.com. 

5.3  Suppressed Codecs need to be removed.  In the beginning of the Service.log, search for the line "Suppressed CODECS". You will see a line like Suppressed CODECS: <g723> <g722_1> <g726>.   The Suppressed CODECS need to be removed.

 To remove them, you need to add lines to the Telrexnetservice config file. Add a line for EACH suppressed Codec. 

Example:  <add key="Service.SupportCODECg722_1" value="true" />

Add a line for each Codec until no more Suppressed Codecs show up in the service log.

 

5.4  For Edge server recording, modify this key    <add key="Service.RouteMediaThruEdge" value="True"/>

You must then identify the Edge Server Public IP's and enter them here:

<add key="Service.EdgePublicIPAddresses" value="10.27.1.178 198.22.2.39 198.22.2.27 10.27.1.172"/>

Note:  All IP's of the edge server should be listed, including the NAT addresses of the Edge.

Make sure that these IP's are pingable  (if that ability has not been turned off by the firewall)

 

5.5   For Edge recording where remote users access via a common gateway and where the user's sip endpoint address is common to all;  you can try adding this key   <add key="Service.EdgeRelayGateways" value="10.27.3.179 "/>

 

5.6  Here is a screen shot of the utility

 

5.7  Here is what the TelrexNetService.exe.config might look like.

<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="Log.FileLogLevel" value="Info"/>
<add key="Log.FileLogQualifiedName" value="service.log"/>
<add key="Log.FileLogType" value="RollingOnPeriod"/>
<add key="Log.FileLogPeriod" value="daily:00:15"/>
<add key="Log.FileLogMaxBackups" value="5"/>
<add key="Log.EventLogLevel" value="None"/>
<add key="Log.TruncateOnOpen" value="True"/>
<add key="Service.CallControlClientAddressFamily" value="InterNetwork"/>
<add key="Service.ApplicationManifest" value="TelrexNetService.am"/>
<add key="Service.SupressEncryption" value="false"/>
<add key="Service.MaxSessionDurationMinutes" value="180"/>
<add key="Service.RecordSIPDialogs" value="true"/>
<add key="Service.LogAllSIPMessaging" value="true"/>
<add key="Service.ComplainOnUnknownSession" value="false"/>
<add key="Service.LocalDomain" value="global.local"/>
<add key="Service.DisallowedIPAddresses" value="127.0.0.1 10.27.1.174 10.27.1.175 10.27.1.157 10.27.1.161 10.27.1.178 10.27.1.172"/>
<add key="Service.CallRecorderPort" value="8008"/>
<add key="Service.CallRecordingHosts" value="usbal1srv161"/>
<add key="Service.PBXType" value="Lync"/>
<add key="Service.DisallowedUserAgents" value=""/>
<add key="Service.RouteMediaThruEdge" value="True"/>
<add key="Service.EdgePublicIPAddresses" value="10.27.6.178 197.22.2.39 197.22.2.27 10.27.6.172"/>
<add key="Service.SilkCodecPayloadTypes" value="103 104"/>
<add key="Service.SuppressCallControlOnBranch" value="true"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/>
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly xmlns="urn:schemas-microsoft-com:asm.v1"><assemblyIdentity xmlns="urn:schemas-microsoft-com:asm.v1" name="ServerAgent" publicKeyToken="31bf3856ad364e35" culture="neutral"/><bindingRedirect xmlns="urn:schemas-microsoft-com:asm.v1" oldVersion="3.5.0.4" newVersion="5.0.0.0"/></dependentAssembly></assemblyBinding>
</runtime>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri=""/>
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400"/>
</providers>
</roleManager>
</system.web>
<startup>

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>

 

6. Verify TelrexNetService Registration

Open the Lync Control Panel. Click on Topology / Server applications. See if Telrexnetservice is listed there.

 

Make sure that the TelrexNetService is registered to the Pool.

 If the telrexnetservice is not there, you may need to manually register the Telrexnetservice.  To manually register the telrexnetservice, open up powershell.

Type in the command:  "Import-Module Lync" - (quotes included) This brings in all the relevant Lync pieces into Power Shell.

To Unregister the TelrexNetService for the Front End Server use the command:

Remove-CSServerApplication -Identity "Service:Registrar:zzz/TelrexNetService"

To register the TelrexNetService with Lync, enter

New-CSServerApplication -Identity "Service:Registrar:zzz/TelrexNetService" -Uri
http://www.telrex.com/LCS/TelrexNetService -Critical $False -Enabled $TRUE

You would run this but replace zzz w/ front end server pool name

Check the Server Applications list again and verify that it was added.

Note:  When there is more than one Front End Server, there might be a Front End Pool (FEP) – Load Balance employed. The FE Pool might be a software piece installed on the DNS Server or it could be a hardware device connected to multiple Front End Servers.  A Front End pool can contain a maximum of ten Front End Servers. Load balancing is recommended for multiple Front End Servers.

When a load balance front end pool is employed, the TelrexNetService must be installed on all Front End Servers that are part of the Front End Pool. After the installation, check to be sure that the TelrexNetService is registered to the Front End Pool.


If any re-registering was necessary, check the TRNS config file and restart the service.


When troubleshooting Call Control issues, keep in mind that the service.log will only show calls handled by the Front-End server that you are looking at.  With Load Balance a call may come through any Front-End Server and you may have to check the service.log on each Front-End server in the Front End Pool.

 

7. Lync Build


To know what specific builds they are running, you can validate by looking in Programs and Features or running this in powershell:

Get-WmiObject –query ‘select * from win32_product’ | where {$_.name –like “Microsoft Lync Server*”} | ft Name, Version –AutoSize

As a result, you will get:

 

8. Error Messages & Troubleshooting

8.1  If the installation fails, verify that the user account is setup correctly as defined in section 3. 

8.2  If the installation fails, you can run the Telrexnetservice.msi using the msiexec.exe.  This will give you a comprehensive install log.  This log contains valuable information that could help you resolve the install problem.  Otherwise, this install file would be necessary to escalate an install problem to development.

Open a Command Prompt window as an administrator.  Go to the folder where the TelrexNetService.msi resides.

Use the following command to run the installation.  msiexec.exe –I TelrexNetService.msi /lv TRNSInstallLog.txt 

The log file will be generated in the folder from which it was run. Use notepad and exam the logs for error messages.

8.3  After a successful installation, check in Windows services and verify that the TelrexNetService is running.

8.4  Check the service.log.  In most cases you will want to look at the top of the service log.  It is a good idea to stop the TelrexNetService, save the old service logs to a zip file, then delete all the service logs and restart the TelrexNetservice.  This will give you a clean log.

8.5   What you want to see in the service log is:   "SIPApplicationDispatchThread.Runnable".  That message should say Connected and not have any exceptions.

8.6  If you see “Cannot resolve hostname” in the service log.  This indicates a problem with the “CallRecordingHosts” value in the Telrexnetservice config file. This is typical when the system is unable to resolve the FQDM. First ensure that it is ping-able. The “internal” domain name, found in the computer properties should be used.

8.7  If there is no Service log in the program folder, then the user account is not setup correctly or has insufficient rights.  Verify Item 3 above.  If it is correct, add Domain Admin rights.  This is a rights issue.  The process does not have the rights to create a new file in the TelrexNetService folder.

8.8   “UnauthorizedException creating ServerAgent” is a common install error.  It indicates that the Telrexnetservice is not being registered with Lync. Carefully review section 2. Requirements.

Then try this as a possible fix.
1. Go to Administrative Tools -> Services
2. Right-click TelrexNetService and click Properties
3. Click Log On tab
4. In the "This account" field, enter in a Domain Admin account name and password
5.. Click OK, then restart TelrexNexService

Once that's done, check the service.log and search for "SIPApplicationDispatchThread.Runnable". That message should say Connected and not have an exception

8.9  Phones Rebooting - If the customer reports that Phone are rebooting, after installing the Telrexnetservice, and it doesnt matter if these phones are being or NOT to be recorded, the problem lies with the Suppressed codecs.

In the beginning of the Service.log, search for the line "Suppressed CODECS". You will see a line like Suppressed CODECS: <g723> <g722_1> <g726>.   The Suppressed CODECS need to be removed.

 To remove them, you need to add lines to the Telrexnetservice config file. Add a line for EACH suppressed Codec. 

Example:  <add key="Service.SupportCODECg722_1" value="true" />

Add a line for each Codec until no more Suppressed Codecs show up in the service log.

8.10  Inbound calls from a Response Group appears as an outbound call in Real Time View and Recording Search.  This happens when the soft phone does not have a Phone URI configured.  Upgrade to build 11108 or greater.

8.11  One side of a phone call is all static.  Try adding this reg key to the config file.  <add key="Service.DisableSSRTPOnReplacesHeader" value="true" />

 

Go to Lync Menu

Go to Home