Work Queue

ChatBot not receiving concurrent audio/video chat

Issue description:

ChatBot not able to receive concurrent chat when VisualIVR is in audio/video mode, Even after having "On Call" state in the valid state list of WorkQueue and TMAC Server configuration.

i.e when the ChatBot is processing one chat, the second chat will be in queue, instead of processing concurrent chat.

Troubleshooting steps:

  • Check if audio/video channel is limited to receive concurrent calls in TMAC configuration.

Solution:

  • Remove the required channel(audio/video) from "GenericRouter_LimitCallChannels".

Channel Limit

Note: If the "On Call" state is not been added in valid state list then refer https://docs.tetherfi.com/faqs/Agent-not-receiving-Concurrent-Calls-(VIVR-Calls)

Agent not receiving Concurrent Calls (VIVR Calls)

Issue description:

Agents are not receiving concurrent calls even when the channel count is set to more than three. i.e when the agent is “on Call” the second call will be in queue, instead of call connecting to agent.

However, as soon as the first call gets disconnected and agent goes back to available state, the second call will be connected to agent.

Troubleshooting steps:

  • Check if state check is enabled/disabled.
  • If State check is enabled then check if the "On Call" state has been added in valid state list of WorkQueue and TMAC Server configuration file.

Solution 1:

  • Disable state check for each channels. Key name is "CheckStateForEachChannelEnabled".

work queue state check

Solution 2:

  • If state check is enabled then based on the chat mode("textchat","audiochat","videochat") add "On Call" state in the valid state list. Key name is "ValidStateListFor_*". where, * means channel name.

work queue valid state

  • Also add "On Call" state in the valid state list of TMAC server configuration, Key name is "WorkQueueRouteAgentStateList".

tmac server valid state

Stuck on call queued in VIVR page

When VIVR is executing the IW flow with help of chatbot, page is on Call queued. The workqueue is trying to assign the flow, however chatbot is not able to execute the flow since its already working on one flow. Here we have add one Aux state to workqueue where it considers to assign the event to chatbot even when it's working on one flow. The workqueue timeout is set in textchat server config, post that vivr is back to captcha page.

In workqueue template.config, we have add the aux state

<add key="ValidStateListFor_textchat" value="Available,On Call"/>

 

 

Also check the Agent state of chatbot if 'ACW for each call ' should not be enabled.

 

'Could Not Load File or Assembly' in Logs

Issue

When the application fails to find and load an assembly (DLL), following exception is thrown:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.

Reasons and Solutions

  1. The assembly itself is not found.In this case, the assembly is not present in your application path. Copy the assembly from release and paste it here and try again.
  2. The specific version of that assembly is not found.Sometimes, the assembly version referred by the application and the present assembly might vary due to incorrect deployment or during release process.
    1. Navigate to the application path.
    2. Open the application config file and template config file.
    3. Head to the "runtime" section under "configuration".
    4. You will find the assembly binding redirects. These are used to redirect references of "oldVersion" to "newVersion".Following is the sample assembly redirect:<runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
      </dependentAssembly>
      </assemblyBinding>
      </runtime>Here, this says, that all references of assemblies from version 0.0.0.0 to 12.0.0.0 (oldVersion) should use 12.0.0.0 (new Version)
    5. So, you should copy the version of Newtonsoft.Json.dll of version 12.0.0.0
    6. So, if you found an error for this DLL, probably you are using different version DLL.

How to find assembly version?

For TMAC Server, version 5.0.6.3001 onwards assembly versions are printed in logs on start up. Until this version, file versions were printed.

Assembly and file versions are different.

To find assembly version, run this command in your powershell window:

([system.reflection.assembly]::loadfile("C:\Tetherfi\TetherfiHome\TMACServer\Newtonsoft.Json.dll")).FullName

Substitute your application path and assembly name here.

Once you find your assembly version, you can verify what version assembly you have and do the needful.

 

Report To

If this issue was due to the incorrect release and not due to wrong deployment process, report this to the developer so that release can be corrected.

For TMAC components, report to tmac@tetherfi.com

For WorkQueue components, report to wq@tetherfi.com

TetherfiWorkAssignmentClient.WorkItemManager - Exception in AddWorkItemWithCustomerIdentifier:System.ServiceModel.EndpointNotFoundException

a) Issue Description

TComm logs show the following error

ERROR TetherfiWorkAssignmentClient.WorkItemManager - Exception in AddWorkItemWithCustomerIdentifier:System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at http://localhost:55006/WorkQueue1/ that could accept the message.

b) Cause

TComm is not able to connect to Workqueue to process a new incoming chat request

c) Troubleshooting

  1. Ensure Work queue service is up and running. If not, start the Work queue service. Once it’s started, open its endpoint in a browser to verify service description comes up.
  2. Ensure Work queue endpoint is correctly mentioned in comm server config as shown in the below screenshot.