Could not POST metadata to HTCC

You have to import the objects related to the SM into Genesys configuration (like access groups,role,etc) and atd the specified user as a member. All is described in available documentation

Hi juagarod,

How to fix issue “Could not POST metadata to HTCC”? Do you change gir.jar?
Changed: default-mapping.json
“CR.userName”:{
“type”:“string”,
“index”:“analyzed”,
“analyzer”:“whitespace_lowercase”
to
“CR.userName”:{
“type”:“string”,
“index”:“analyzed”,
“analyzer”:“whitespace”
And how do you config to metadata sent to Interaction Receiver?
Please share me procedure to install SpeechMiner and configuration on Recording Processor? Thank you very much!

About login SM, you can try with default user/pass : administrator/ Enterprise.

Regard, Nhan

Never change the gir.jar file as it is not supported at all!!

According to last reaction I suspect he changed the ES client configuration within application.yaml on IRWS level.

Entire procedure how to install GIR/SM is described on https://docs.genesys.com in deep detail - so, just follow the documentation.

Hi Juan,
Can you share some change that you see is importain and impact to sending metadata to SM and HTCC?
Thank you very much!
Br, Nhan.

What is your ES deployment (standalone, embedded)? What is the ES configuration? What is IRWS configuration? Try to be more specific in your problem description. Nobody will share entire configuration as it is not logic as each solution/platform is little bit different and use different architecture, model, etc. You are mixing up things together, try to analyse it step-by-step - so, start on IVR profile, ICON, MCP, WebDAV, RPS, IRWS, IR, SpeechMiner UI.,

Hi nhant / Kubig,

First of all, I installed the last version of RWS with Cassandra 2.2, and also my Elastic Search is 1.7.6 standalone (installed with .rpm).

And yes, Kubig is right about the change I did. I don’t have the .json that you have (don’t know why) so I didn’t change it, but I configured correctly the Elastic Search part of the application.yaml. Taking special considerations in this parameters:

  • crClusterName

Default Value: None
Valid Values: A valid cluster name
Mandatory: Yes
Specifies the name of the cluster to enable search functionality in Elasticsearch. The value must be the same for all Interaction Recording Web Services nodes in the cluster and must match the cluster.name parameter configured in elasticsearch.yml for each Elasticsearch node. For example, if there are five nodes in the Interaction Recording Web Services cluster, all five nodes must have the same crClusterName value.

  • useTransportClient
    Mandatory: No
    Default Value: true
    Specifies whether Interaction Recording Web Services should use a transport client for Elasticsearch.

  • transportClient
    Mandatory: Yes, if useTransportClient is true.
    Values specified in TransportClientSettings
    Specifies the configuration Interaction Recording Web Services should use for the transport client. For details see TransportClientSettings in the next table.

  • nodes
    Mandatory: Yes, if useTransportClient is true.
    Default: null
    Specifies the list of Elasticsearch nodes the transport client should connect to.

Since I used a standalone ES deploy I used “transportclient” true. Pay special attention in the nodes parameter since the yaml is really picky with whitespace. Use the example in the genesys doc so the RWS starts without issue.

Tell us how it goes,

Best regards,

Juan

Hi Juan,

Now, i’m facing with issue above. I tried change license as link:
True
https://genesyspartner.force.com/customercare/pkb_Home?id=kA4U00000008si6KAA&l=en_US&fs=Search&pn=1

Error “ProgramId does not exist” have been fixed. But we are facing with different issue:

2017-07-08 18:00:52,365 process_metadata DEBUG Wait for call to end: 4
2017-07-08 18:00:56,381 process_metadata DEBUG processing record: H7RIE87ME140R1MTUF2DC2P5U800000T
2017-07-08 18:00:56,381 metadatarecord DEBUG Found matched username for recordDN: nhannt
2017-07-08 18:00:56,397 metadatarecord DEBUG Could not find rp.speechminer_uri in record.
2017-07-08 18:00:56,397 metadatarecord DEBUG Could not find rp.speechminer_auth in record.
2017-07-08 18:00:56,397 process_metadata WARNING Could not find SM server info. Using default SM. H7RIE87ME140R1MTUF2DC2P5U800000T
2017-07-08 18:00:56,397 process_metadata DEBUG Sending to SM: H7RIE87ME140R1MTUF2DC2P5U800000T
2017-07-08 18:00:56,397 http_client DEBUG Failure: POST RECORD: http://172.16.1.20/interactionreceiver
2017-07-08 18:00:56,397 http_client DEBUG Headers: {'status': '403', 'content-length': '1233', 'x-aspnet-version': '4.0.30319', 'x-powered-by': 'ASP.NET', 'server': 'Microsoft-IIS/8.0', 'cache-control': 'private', 'date': 'Sat, 08 Jul 2017 18:00:57 GMT', 'content-type': 'text/html'}
2017-07-08 18:00:56,397 http_client WARNING Content: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

<title>403 - Forbidden: Access is denied.</title>

<style type="text/css">

<!--

body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}

fieldset{padding:0 15px 10px 15px;} 

h1{font-size:2.4em;margin:0;color:#FFF;}

h2{font-size:1.7em;margin:0;color:#CC0000;} 

h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 

#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;

background-color:#555555;}

#content{margin:0 0 0 2%;position:relative;}

.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}

-->

</style>

</head>

<body>

<div id="header"><h1>Server Error</h1></div>

<div id="content">

 <div class="content-container"><fieldset>

  <h2>403 - Forbidden: Access is denied.</h2>

  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>

 </fieldset></div>

</div>

</body>

</html>


2017-07-08 18:00:56,397 process_metadata INFO Response: 403. Could not POST metadata to SpeechMiner: H7RIE87ME140R1MTUF2DC2P5U800000T
2017-07-08 18:00:56,397 process_metadata INFO Back up metadata record into [D:\gcti\Recording Processor Script\failed\9f48899a-adf8-471b-aeee-e136fd3f39e7\H7RIE87ME140R1MTUF2DC2P5U800000T_20170708-180056.json] was successful.
2017-07-08 18:00:56,397 process_metadata INFO 0 messages have been sent to SpeechMiner.
2017-07-08 18:00:56,397 root ERROR error in processing thread
Traceback (most recent call last):
  File "D:\gcti\Recording Processor Script\rp\process_metadata_thread.py", line 202, in run
    wait_timeout = self.process(htcc_client, sm_client)
  File "D:\gcti\Recording Processor Script\rp\process_metadata_thread.py", line 657, in process
    + dbrecord.get_metadata_str_mask_credentials())
TypeError: cannot concatenate 'str' and 'NoneType' objects

Can you help to solve this issue? Thanks, Nhan.

You couldn’t change the license file manually, the file became invalid by this step - be aware of. Your problem is still that the interaction’s metadata does not contain valid parameters for connection to the SM (URI and credentials). As I have mentioned before, check the entire interaction flow on GIR level to find out the root-cause.

Hi juagarod,

After change URI interactionreceiver, i got new error. Do you have any idea to fix this issue?

2017-07-12 18:43:59,875 http_client DEBUG Failure: POST RECORD: http://172.16.1.20/interactionreceiver/webservices/Calls.asmx
2017-07-12 18:43:59,875 http_client DEBUG Headers: {‘status’: ‘500’, ‘content-length’: ‘509’, ‘x-aspnet-version’: ‘4.0.30319’, ‘x-powered-by’: ‘ASP.NET’, ‘server’: ‘Microsoft-IIS/8.0’, ‘cache-control’: ‘private’, ‘date’: ‘Wed, 12 Jul 2017 18:43:59 GMT’, ‘content-type’: ‘application/soap+xml; charset=utf-8’}
2017-07-12 18:43:59,875 http_client WARNING Content: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>soap:Bodysoap:Faultsoap:Codesoap:Valuesoap:Receiver</soap:Value></soap:Code>soap:Reason<soap:Text xml:lang=“en”>Server was unable to process request. —> Data at the root level is invalid. Line 1, position 1.</soap:Text></soap:Reason><soap:Detail /></soap:Fault></soap:Body></soap:Envelope>
2017-07-12 18:43:59,875 process_metadata INFO Response: 500. Could not POST metadata to SpeechMiner: SF6IM29E252A51U8P2U9T2SGT4000027
2017-07-12 18:43:59,877 process_metadata INFO Back up metadata record into [D:\gcti\Recording Processor Script\failed\9f48899a-adf8-471b-aeee-e136fd3f39e7\SF6IM29E252A51U8P2U9T2SGT4000027_20170712-184359.json] was successful.
2017-07-12 18:43:59,877 process_metadata INFO 0 messages have been sent to SpeechMiner.
2017-07-12 18:43:59,877 process_metadata INFO 0 messages have been sent to HTCC.
2017-07-12 18:43:59,878 root ERROR error in processing thread
Traceback (most recent call last):
File “D:\gcti\Recording Processor Script\rp\process_metadata_thread.py”, line 202, in run
wait_timeout = self.process(htcc_client, sm_client)
File “D:\gcti\Recording Processor Script\rp\process_metadata_thread.py”, line 657, in process
+ dbrecord.get_metadata_str_mask_credentials())
TypeError: cannot concatenate ‘str’ and ‘NoneType’ objects

Thanks in advance for your help,

Br, Nhan

This cannot work, the URL to the IR is wrong. Please, check all parts step-by-step as have been suggested and mentioned many times before change anything and post new topic.

what exactly did you fixed or modified?? I am stuck at same issue and have no clue on what I am missing…

This is my file

index.analysis.analyzer.whitespace_lowercase.tokenizer: whitespace index.analysis.analyzer.whitespace_lowercase.filter: lowercase

index.analysis.analyzer.mediaPartitionAnalyzer.tokenizer: path_hierarchy

threadpool.index.queue_size: -1
threadpool.bulk.queue_size: -1

path.conf: /etc/elasticsearch
path.data: /usr/share/elasticsearch/data

node.name: GGG
cluster.name: GGG_GIR

transport.tcp.port: 9300
http.port: 9200

discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: 172.117.179.171
discovery.zen.minimum_master_nodes: 1

gateway.recover_after_nodes: 1
gateway.recover_after_time: 1m
gateway.expected_nodes: 1

Fixed, my issue was that in HTCC ElasticSearch Settings was using http port 9200 when should have been 9300