Gir Troubleshooting Guide
Gir Troubleshooting Guide
Table of Contents
GIR Recording Call flow...........................................................................................................................2
GIA Call flow ...........................................................................................................................................3
SIP Call Flow between different components .......................................................................................4
Troubleshooting Flow-chart...................................................................................................................5
GIR Health Checks ..................................................................................................................................6
1. Check RWS Status ………………......................................................................................................6
2. Check Cassandra Status..............................................................................................................6
3. Check ES Status ..........................................................................................................................8
4. Check RCS Status ........................................................................................................................9
5. Check RPS Status .......................................................................................................................10
6. Check Webdav Status ...............................................................................................................10
7. Check Interactionreceiver Status ............................................................................................ 11
8. Validate certificate matching ...................................................................................................11
9. Check Loadbalancing Status .....................................................................................................12
GIR Common Issues and its Required logs: .........................................................................................12
1. SM/GIR GUI showing up “Loading Error” while playing back Recording files ........................12
2. SM/GIR GUI not showing up new inbound calls .....................................................................13
3. Screen Recording not working..................................................................................................13
4. Agent endpoint not recording calls .........................................................................................14
5. MCP failing to post recordings to IR ........................................................................................15
6. MCP failing to post metadata to Recording Processor ...........................................................15
7. Recording Processor not receiving metadata from ICON .......................................................16
8. Recording Processor failing to submit recordings to RWS .....................................................16
9. RP failing to submit recordings to SpeechMiner IR.................................................................16
Other Failure Scenarios........................................................................................................................17
1. MCP failing Scenarios................................................................................................................17
2. RPS failing Scenarios ................................................................................................................18
Typical GIR Log Snippets ......................................................................................................................21
1. MCP log snippets showing PUT/POST .....................................................................................18
2. RPS log snippets showing the record processing and POSTs to RWS & SM............................22
3. RCS log snippet showing the request/playback.......................................................................23
4. RWS log snippet showing processing of POST ........................................................................24
5. RWS log snippet showing Playback .........................................................................................25
6. Successful log snippet for Screen Recording ...........................................................................25
7. Tracing Playback Issue .............................................................................................................26
GIR Monitoring ....................................................................................................................................23
Comprehensive list of all GIR Alarms ..................................................................................................23
Stopping and Starting Recording Components ...................................................................................24
1. When a call enters the contact center, SIP Server sends the call to MCP (via RM) to process the
recording.
6. Recording Web Services(RWS/GWS) stores the recording information to the Cassandra database.
7. Recording Web Services(RWS/GWS) tells the RPS that the recording information
is stored.
8. The RPS sends the recording file to the SpeechMiner.
1. Fetcher: Takes unprocessed interaction data and metadata from the input folder (where the
Interaction Receiver / UConnector placed it after retrieving it from the recording system),
inserts it into the GIA database, prepares the data files for processing by GIA, and places it in the
store folder to await processing.
2. Call Recognizer: Processes call audio according to the requirements of the Program to which
the call belongs, by transcribing the text and identifying Topics and other events in it.
3. Indexer: Maintains an index of calls, metadata, and events, so it can be searched quickly.
4. Report caching: Runs reports that are included in active users' Views pages overnight so that
they can be displayed quickly in their widgets when the users open their Views pages; the
amount of time to store cached results is configured in the Reports.
5. Exploration: Performs the data analysis required for the Exploration feature of the web-
based interface.
6. Recategorizer: Assigns Categories to the processed interactions in accordance with the
Category definitions defined in the system.
7. Text Recognizer: Processes written interaction input data and identifies Topics and other
events in it.
8. Web server: Runs the GIA web-based interface.
After Party A and Party B are connected and a recording request is made to the SIP Server, two sessions
are initiated; one session for each party to MCP. SIP Server first INVITEs with the Session Description
Protocol (SDP) offer from the connected parties to MCP, and a second reINVITE to MCP to get an SDP
offer from MCP. The offer from SIP Server is sent to the connected parties to proxy the media through
Media Control Platform. Once the media is established, Media Control Platform bridges the media
between the parties and writes the recording to a file on the disk. The Recording Server fetches and
indexes the recording after the call completes.
The following diagram describes the call flow (Media Server refers to Media Control Platform):
Troubleshooting Flow-chart
Verify version from command line or from a browser. Add -v for verbose.
curl -v http://<rws host>:<rws port>/api/v2/diagnostics/version
curl -v http://<LB host>/api/v2/diagnostics/version
No returned version means RWS is not started. Verify logs for errors, check that Cassandra and ES nodes were
running.
On each of the Cassandra nodes, navigate to its install bin directory and execute below to see if nodes are Up
and running.
Datacenter: DC1
==========
Address Rack Status State Load Owns Token
3074457345618258602
xx.xx.xx.x4 RAC1 Up Normal 2.53 MB 100.00% -9223372036854775808
xx.xx.xx.x3 RAC1 Up Normal 2.06 MB 100.00% -3074457345618258603
xx.xx.xx.x2 RAC1 Down Normal 2.65 MB 100.00% 3074457345618258602
[root@HOSTD bin]#
[root@HOSTD bin]#
Above output result with below configuration. RWS is still running even if one node is down.
Cluster size = 3
Replication factor = 3
write_consistency_level = CL_QUORUM
read_consistency_level = CL_QUORUM
Cassandra DEBUG logging can be set inside the file /<Cassandra_install_directory/conf/logback.xml. Modify as
needed.
If cluster status is yellow, verify if indices used by GIR is affected. So long as (resourcesv2-<contact-center id>,
call-recordingv2-<region>-<contact-center id>, screen-recordingv2-<region>-<contact-center id>) are green in
status means GIR ES is not affected.
If response to version is quite long, append date to curl query to capture how long RCS responds to version
query. Call rcs version from LB and RCS, then check further where the delay is coming from.
If it’s not running, you can use below commands to start/stop the service
“service httpd start”
“service httpd stop”
To validate public and private key match, issue below: Both results should yield the same value:
openssl x509 -noout -modulus -in <public key> | openssl md5
openssl rsa -noout -modulus -in <private key> | openssl md5
Since public key is validated on first openssl command, private key is valid to CA as well after having the same
MD5 output from second validation.
Additional Traces in case of connection issues between RWS, RCS and LB hosts are as below:
Additional Traces in case of connection issues between RWS, RCS and LB hosts are as below:
j. Fiddler traces on RWS/RPS/InteractionReceiver/Load Balancer hosts
Logs Required:
b. Files building up in these locations indicate that the MCP is either unable to post audio files to the
SpeechMinerIR, or metadata files to the Recording Processor.
c. There are two types of files in this location – audio files (.wav) and metadata files (.json) for each
recording.
d. If these post operations are via the Load Balancer VIP address, the first check would be
whether the Load Balancer VIP is responding.
f. If the Load Balancer is available but recordings are still failing to Post from MCP, then check MCP logs
to see whether the failure is IR or Recording Processor.
g. You can also verify that audio files are appearing in the IR input folder or WebDav location by direct
observation:
• If MCP is failing to post audio files to the IR location/webdav location, and the Load Balancer is
unavailable – then it could indicate that the Load Balancer is failing to post the recordings to
IR – for example a communication or firewall problem between Load Balancer and IR
hosts.
Logs Required:
• MCP logs, IR logs (both preferably in DEBUG level)
• Call UUID/Timestamp of call to trace the call in the above logs.
• IVR profile export and screenshot of SMConfig->Recording Tab.
• Load Balancer logs (access_log/error_log)
• SM Web logs and EventViewer export (Windows event viewer, under Applications and
Services.
Logs Required:
• Sip Server/RM/MCP Logs (Preferred in DEBUG level)
• CallIDs (of the problematic call)/Timestamp of call/DN’s involved in call
• Export of Recording IVR Profile config
• Export of MCP config
• Export of SIP Server config object
• RPS Logs and rpconfig.cfg
• RWS logs (cloud.log)
• ICON DB Server logs
• Load Balancer logs (access_log/error_log)
c. Interaction Receiver runs as an IIS website – so you should also check if IIS webserver and “IR”
application pool is running on IR host.
d. SpeechMiner logs can be viewed in Event Viewer - > Applications and Services Logs -
SpeechMiner
e. They can also be accessed from launching the ULogger utility on those servers.
f. Access IR on web host as http://localhost/interactionreceiver to rule out connectivity issue.
Logs required:
• RPS Debug logs
• IR Debug logs
• Load Balancer logs if any (access_log/error_log)
MCP will first attempt to PUT to WebDAV. After a successful attempt to WebDAV, MCP will send the metadata to
RPS. Until both WebDAV and RPS are successfully completed, the metadata json and recording file stay in the
cache directory. MCP keeps track of retry attempts and when all the attempts have exhausted MCP moves the
file to the failed directory.
mcp.minimumRecordingAge=1
This property is the minimum age, in hours, of a recording that will be processed. Any recordings newer than this
time will not be processed.
The default value is 24
The audio file name can have extensions of .mp3 or .mp3.bin. (.bin when recordings are encrypted)
b. LVR will attempt to recover and upload to recording storage, to RPS and will then delete records on MCP
cache failed directory.
Sample:
2018-03-06 17:33:04 INFO - Processing metadata file C:\Program
Files\GCTI\MCP_2\cache\record\failed\4O2J4BKS2L29HAATFT19NRQ20K00005S_2018-03-07_00-24-36-008B01A9-
10005CA9-00000001.mp3.bin-RWSmetadata.json
2018-03-06 17:33:04 INFO - Processing metadata file: C:\Program
Files\GCTI\MCP_2\cache\record\failed\4O2J4BKS2L29HAATFT19NRQ20K00005S_2018-03-07_00-24-36-008B01A9-
10005CA9-00000001.mp3.bin-RWSmetadata.json
2018-03-06 17:33:04 INFO - C:\Program
Files\GCTI\MCP_2\cache\record\failed\4O2J4BKS2L29HAATFT19NRQ20K00005S_2018-03-07_00-24-36-008B01A9-
10005CA9-00000001.mp3.bin is encrypted
2018-03-06 17:33:04 INFO - Updated metadata: {"mediaFiles":[{"certAlia……
……….
-36","ani":"733686868","callUuid":"4O2J4BKS2L29HAATFT19NRQ20K00005S"},"tenant":"Environment"}]}
2018-03-06 17:33:04 INFO - Updating metadata with webDAV path
https://HOSTD/recordings/4O2J4BKS2L29HAATFT19NRQ20K00005S_2018-03-07_00-24-36-008B01A9-10005CA9-
00000001.mp3.bin
2018-03-06 17:33:04 INFO - Updated mediaDescriptor:
{"path":"https://HOSTD/recordings/4O2J4BKS2L29HAATFT19NRQ20K00005S_2018-03-07_00-24-36-008B01A9-10005CA9-
00000001.mp3.bin","storage":"webDAV"}
a. What would be the recover procedure for those scenarios where RPS failed to retrieve metadata
from ICON and the icon_retries limit has been reached? Is there a way to reset the
icon_retries counter and force RPS to try to retrieve metadata from ICON again?
In this case RP considers this call with no metadata and will simply process the recording as is
and POST to RWS and SM. This covers the case for trunk-to-trunk calls where there is no ICON
data.
b. What would be the recover procedure for those scenarios where RPS was able to POST metadata
to RWS, but failed to post metadata to SM and the "post_retries" limit has been reached?
There will be an error level log in rp log file. The json information should be there as info log. Run
RPS LVR Recovery Script to automatically POSTs failed .json to interactionreceiver.
c. What would be the recovery procedure for those scenarios where RPS failed to POST metadata to
RWS, but was able to post metadata to SM and the "post_retries" limit has been reached?
RP won’t post to SM until metadata is sent to RWS.
d. What Happens if Recording Processor fails to send recordings to SpeechMiner or Web Services?
If Recording Processor fails to send recordings to SpeechMiner or Web Services for any reason,
Recording Processor will continue trying to send these recordings until it exhausts the number
of retries configured. When the number of retries have been exhausted, Recording Processor
logs an INFO message to the log file with the corresponding JSON content that is not submitted
to SpeechMiner or Web Services. The following steps show how to search for the specific
messages in the log file to recover the post failure to SpeechMiner and Web Services.
Prerequisites:
Make sure that the Recording Processor logging is set to the INFO level.
Important: Metadata for the same call could be sent multiple times to Web Services or
SpeechMiner if the call is transferred. Therefore, even if a given metadata record is not sent
upstream, the call may still exist inthe Web Services or SpeechMiner database.
Sample Snippet:
RPS Failed to RWS
2018-03-07 22:04:31,094 RWS_client DEBUG Failed to GET record for CSRF token
https://HOSTD:8443/api/v2/diagnostics/version [Errno 111] Connection refused
2018-03-07 22:04:31,094 process_metadata INFO Response: 0. Could not POST metadata to RWS:
4O2J4BKS2L29HAATFT19NRQ20K000068
2018-03-07 22:04:31,325 metadata_client DEBUG Failed to GET record from https://HOSTD:8443/api/v2/ops/contact-
centers/%s/recordings [Errno 111] Connection refused
2018-03-07 22:04:31,325 process_metadata INFO POST to SM skipped because of incomplete GWS information. Will retry
POST again later: 4O2J4BKS2L29HAATFT19NRQ20K000068
Check RPS LVR logs should running the script failed to recover the metadata. Verify configuration
made on RPS_premise.properties.
MCP PUT to IR
2018-03-07 19:29:32.181 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000
FMThreadQueue.cxx:1273 Processing PUT request, URL:
https://HOSTB/interactionreceiver/4O2J4BKS2L29HAATFT19NRQ20K000069_2018-03-08_03-30-21-008B01AA-10005CDD-
00000002.wav
…..
2018-03-07 19:29:32.208 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000 FMUserRequest.cxx:684
PUT /interactionreceiver/4O2J4BKS2L29HAATFT19NRQ20K000069_2018-03-08_03-30-21-008B01AA-10005CDD-00000002.wav
HTTP/1.1
2018-03-07 19:29:32.208 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000 FMUserRequest.cxx:579
Host: HOSTB
2018-03-07 19:29:32.208 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000 FMUserRequest.cxx:579
Accept: */*
2018-03-07 19:29:32.208 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000 FMUserRequest.cxx:579
Content-Length: 548284
2018-03-07 19:29:32.208 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000 FMUserRequest.cxx:579
Date: Thu, 08 Mar 2018 03:29:32 +0000
2018-03-07 19:29:32.208 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000 FMUserRequest.cxx:579
Authorization: Basic QWRtaW5pc3RyYXRvcjpBYmJhMTIxOTg3
…
2018-03-07 19:29:32.788 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000
FMThreadQueue.cxx:727 Request successful:
uri=https://HOSTB/interactionreceiver/4O2J4BKS2L29HAATFT19NRQ20K000069_2018-03-08_03-30-21-008B01AA-10005CDD-
00000002.wav
2018-03-07 19:29:32.788 DBUG 008B01AA-10005CDD-0000006F-008B01AA-10005CDD 1632 01F00000
FMThreadQueue.cxx:891 HTTP request completed
2018-03-07 19:29:32.788 DBUG 00000000-00000000 1632 01F00000 FMResponseData.cxx:433 Received fetch
completed, response code=200
2. RPS log snippets showing the record processing and POSTs to RWS & SM
RPS time between “Received metadata” and “Processing record” should not be greater than 1 min as this is
considered too long. Verify what/ where is causing delay in processing.
• Check IRWS Cluster configuration should agent is not authenticated upon login.
On RWS cloud.log
Upon Agent Login
03/08/2018 05:48:40.552 DEBUG [] [] [] [qtp663457961-26] c.g.c.w.s.CloudWebBasicAuthenticationFilter Authentication
success: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@4abfef2b: Principal:
CloudWebUserDetails(super=com.genesyslab.cloud.web.security.CloudWebUserDetails@f5d71a22: Username: Agent1;
Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true;
Granted Authorities: UserRole(name=ROLE_AGENT), contactCenterId=e9d59b88-xxxx-xxxx-8f80-a374fda96a12,
genesysEnvironmentId=ON_PREMISE_ENVIRONMENT, userId=9c817aa3e97341a89be86b357a09d3bc, samlUser=false,
serviceUser=false); Credentials: [PROTECTED]; Authenticated: true; Details:
org.springframework.security.web.authentication.WebAuthenticationDetails@ffffc434: RemoteIpAddress: 192.168.102.1;
SessionId: null; Granted Authorities: UserRole(name=ROLE_AGENT)
On Recorder_Agent.log
INFO : 2018/03/08 05:48:41Z.457 : Agent1.Comet: Subscribe to channel /internal-api/me/screen-recording
INFO : 2018/03/08 06:00:54Z.262 : Agent1.Connection: Start recording
INFO : 2018/03/08 06:01:09Z.132 : Agent1.Connecti
Output is continuous random keys which means file is being played. To stop display/ playing, press [Ctrl key] + c
[root@hostd ~]# curl -u user:password https://hostd/recordings/4O2J4BKS2L29HAATFT19NRQ20K00006A_2018-03-08_05-
02-08-008B01AA-10005CE1-00000001.mp3
,@0e>
ch@>FacX@r(
g6b#_H}lFg
o"9Vdw\TR2L6eo1US5c>aFKP7$hj:Iz4nOt $$1@9CC'Z:n5o3AUH_Ru\ ,!Z>ar}a>ZHj
i&hr`+K2EyB
mFZ#&HJ):ugP}:_t~3E7F$TO,4l+.7N(m<Q>wTRki`p!d&Aqc
f%ao3)\?
3.cXrr +C`'[email protected]|C};$vB%i=odXA44 !Pgt-Te',de
If recordings cannot play from any of the above (browser or curl), then issue is with the actual recording. Worth to
check file size.
sNNifp
Y.$Jf.%%pqGvUPE./Qb4qbpm'TyK
8+"}T:Am"{woU3hjw>R1QRFYE*
f$bvG9<|{&\;X-zw:=p)e{7z`m,óCSxR>Q5ըUC?T]] "ae2vF(<6i3SBUEt
VAZN` 39(GS~lu]"Sm^u 6l)YsqX0/l3Po.r]|&HtG9)n@|zjBfJALz|s1xycU3a#]MVV
Should RWS cannot play it, check cloud.log for warning and errors. Append -v to curl command to get other details
for failure.
(GET /rcs/recordings/4O2J4BKS2L29HAATFT19NRQ20K00006A/play/4O2J4BKS2L29HAATFT19NRQ20K00006A_2018-03-
08_05-02-08-008B01AA-10005CE1-00000001.mp3.bin)@1115682139 org.eclipse.jetty.server.Request@427ff55b
servletPath:/recordings/4O2J4BKS2L29HAATFT19NRQ20K00006A/play/4O2J4BKS2L29HAATFT19NRQ20K00006A_2018-03-
08_05-02-08-008B01AA-10005CE1-00000001.mp3.bin
If recording is failing on RCS, check RCS logs for errors and warnings. Append -v to curl command to get other
details for failure.
GIR Monitoring
The following table outlines the various ways in which the components in the recording solution can be
monitored:
https://<SM IP>/interactionreceiver
Is Interaction Receiver available?
http://<SM IP>/interactionreceiver
To Start:
/GCTI/apache-cassandra-1.2.19/bin/cassandra
To Start:
Service gir start