Hi guys
Having an issue with my RCS and HTCC.
RCS complains:
2019-06-02T01:35:51.755 Dbg 09900 org.apache.http.headers >> GET /api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28 HTTP/1.1
2019-06-02T01:35:51.755 Dbg 09900 org.apache.http.headers >> Authorization: ******
2019-06-02T01:35:51.755 Dbg 09900 org.apache.http.headers >> Host: 172.17.79.17
2019-06-02T01:35:51.755 Dbg 09900 org.apache.http.headers >> Connection: Keep-Alive
2019-06-02T01:35:51.755 Dbg 09900 org.apache.http.headers >> User-Agent: Apache-HttpClient/4.2 (java 1.5)
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.impl.conn.DefaultClientConnection Receiving response: HTTP/1.1 404 Not Found
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.headers << HTTP/1.1 404 Not Found
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.headers << Date: Sun, 02 Jun 2019 06:35:52 GMT
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.headers << Server: Apache/2.2.15 (Red Hat)
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.headers << Content-Length: 340
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.headers << Connection: close
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.headers << Content-Type: text/html; charset=iso-8859-1
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.impl.conn.PoolingClientConnectionManager Connection [id: 3][route: {}->http://172.17.79.17] can be kept alive for 9223372036854775807 MILLISECONDS
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.impl.conn.DefaultClientConnection Connection 0.0.0.0:53478<->172.17.79.17:80 closed
2019-06-02T01:35:51.759 Dbg 09900 org.apache.http.impl.conn.PoolingClientConnectionManager Connection released: [id: 3][route: {}->http://172.17.79.17][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2019-06-02T01:35:51.759 Int 09900 com.genesyslab.rcs.controller.HomeController Could not get HTCC contact center ID. Will retry later. Exception: HTCC API call returned: 404
At Wireshark I can see:
GET /api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28 HTTP/1.1
Authorization: Basic b3BzOm9wcw==
Host: 172.17.79.17
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2 (java 1.5)
HTTP/1.1 404 Not Found
Date: Sun, 02 Jun 2019 07:07:03 GMT
Server: Apache/2.2.15 (Red Hat)
Content-Length: 340
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28 was not found on this server.</p>
<hr>
<address>Apache/2.2.15 (Red Hat) Server at 172.17.79.17 Port 80</address>
</body></html>
So the CCID is there…no clue why it gives me an 404 error.
HTCC says:
06/02/2019 22:37:45.084 WARN [] [] [] [qtp1063425378-26] c.g.c.w.s.CloudWebBasicAuthenticationFilter Contact center user profile not found for user [ops]
06/02/2019 22:37:45.088 WARN [] [] [] [qtp1063425378-26] c.g.cloud.web.HttpSessionMonitor com.genesyslab.cloud.web.HttpSessionMonitor@c46c513: cannot save session [799vYoaprL/MI8UHvFL2hQ4gg92bmmazsj1fn81ns3zfuq9] - user name or contact center ID is empty
06/02/2019 22:37:45.088 WARN [ops] [799vYoaprL/MI8UHvFL2hQ4gg92bmmazsj1fn81ns3zfuq9] [] [qtp1063425378-26] /api/v2/ops/contact-centers c.g.cloud.web.HttpSessionMonitor com.genesyslab.cloud.web.HttpSessionMonitor@c46c513: cannot save session [799vYoaprL/MI8UHvFL2hQ4gg92bmmazsj1fn81ns3zfuq9] - user name or contact center ID is empty
06/02/2019 22:37:45.745 WARN [] [] [] [qtp1063425378-24] c.g.c.w.s.CloudWebBasicAuthenticationFilter Contact center user profile not found for user [ops]
06/02/2019 22:37:45.746 WARN [] [] [] [qtp1063425378-24] c.g.cloud.web.HttpSessionMonitor com.genesyslab.cloud.web.HttpSessionMonitor@c46c513: cannot save session [799vYoaprL/MI8UHvFL2hQchu7cdlit7j5shfikeb98qh2] - user name or contact center ID is empty
06/02/2019 22:37:45.747 WARN [ops] [799vYoaprL/MI8UHvFL2hQchu7cdlit7j5shfikeb98qh2] [] [qtp1063425378-24] /api/v2/ops/contact-centers c.g.cloud.web.HttpSessionMonitor com.genesyslab.cloud.web.HttpSessionMonitor@c46c513: cannot save session [799vYoaprL/MI8UHvFL2hQchu7cdlit7j5shfikeb98qh2] - user name or contact center ID is empty
06/02/2019 22:37:48.181 DEBUG [] [] [] [pool-9-thread-1] c.g.c.v.a.e.t.TelephonyUserMonitorV2 Looking for user sessions to cleanup...
06/02/2019 22:37:49.594 DEBUG [] [] [] [RTRMonitoringScheduledExecutorService-pool-1-thread-9] c.g.c.v.g.c.VoiceEnvironmentsMonitoringService 46685fb4-013f-48e0-984d-8020d2b04c05 called ensureMonitored
06/02/2019 22:37:49.594 DEBUG [] [] [] [RTRMonitoringScheduledExecutorService-pool-1-thread-9] c.g.c.v.g.c.VoiceEnvironmentsMonitoringService 46685fb4-013f-48e0-984d-8020d2b04c05 service not activated, repair monitoring skipped till activated
RCS isn’t run on Apache and neither is IRWS. If you’re using these two then I would not expect to see Apache in the “Server” header or in the returned 404 error..
I suspect you need to include a port wherever you’ve configured RCS/IRWS because it looks like the requests are going to Apache on the host (port 80) rather than the app which is likely running on a different port?
Run curl against that port - doesn’t appear to return a “Server” header or have any indication of the type of server software being run (i.e. it’s not saying its apache)
[jmurphy@xxxx-xxx-xxx01 ~]$ curl -vv http://10.244.0.17:8080
* About to connect() to 10.244.0.17 port 8080 (#0)
* Trying 10.244.0.17... connected
* Connected to 10.244.0.17 (10.244.0.17) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.244.0.17:8080
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Date: Mon, 03 Jun 2019 05:15:09 GMT
< Content-Type: text/html
< Accept-Ranges: bytes
< Content-Length: 150
<
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Page not found</title>
</head>
<body>
<h1>Page not found</h1>
</body>
</html>
* Connection #0 to host 10.244.0.17 left intact
* Closing connection #0
As is mentioned by “jamesmurphyau”, IRWS is supposed to not running on port 80 nor “under/via” Apache HTTPD. So, it seems you’re using wrong port - check port where IRWS is running and try to get the CC info again. Also, check your IVR profile configuration.
2019-06-03T08:27:27.845 Dbg 09900 org.apache.http.client.protocol.ResponseProcessCookies Cookie accepted: "[version: 0][name: GIRJSESSID][value: 799vYoaprL/MI8UHvFL2hQkqbht3b5wxe61tmr0h0vsqta.799vYoaprL/MI8UHvFL2hQ][domain: 172.17.79.17][path: /][expiry: null]".
2019-06-03T08:27:27.845 Dbg 09900 org.apache.http.impl.client.DefaultHttpClient Connection can be kept alive indefinitely
2019-06-03T08:27:27.845 Dbg 09900 org.apache.http.impl.conn.PoolingClientConnectionManager Connection [id: 2][route: {}->http://172.17.79.17:8080] can be kept alive indefinitely
2019-06-03T08:27:27.845 Dbg 09900 org.apache.http.impl.conn.PoolingClientConnectionManager Connection released: [id: 2][route: {}->http://172.17.79.17:8080][total kept alive: 1; route allocated: 1 of 2; total allocated: 1 of 20]
2019-06-03T08:27:27.845 Dbg 09900 com.genesyslab.rcs.controller.HomeController constructHtccBaseUrl: enumerated contact center URI http://172.17.79.17/api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28
2019-06-03T08:27:27.845 Dbg 09900 com.genesyslab.rcs.controller.HomeController Calling HTCC GET url: http://172.17.79.17/api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28
2019-06-03T08:27:27.849 Dbg 09900 org.eclipse.jetty.webapp.WebAppClassLoader getResource(org/apache/http/client/version.properties)=jar:file:/D:/GCTI/Record%20Crypto%20Server/RCS/webapp/WEB-INF/lib/httpclient-4.2.jar!/org/apache/http/client/version.properties
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.impl.conn.PoolingClientConnectionManager Connection request: [route: {}->http://172.17.79.17][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.impl.conn.PoolingClientConnectionManager Connection leased: [id: 3][route: {}->http://172.17.79.17][total kept alive: 0; route allocated: 1 of 2; total allocated: 1 of 20]
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.impl.conn.DefaultClientConnectionOperator Connecting to 172.17.79.17:80
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.client.protocol.RequestAddCookies CookieSpec selected: best-match
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.client.protocol.RequestAuthCache Auth cache not set in the context
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.client.protocol.RequestProxyAuthentication Proxy auth state: UNCHALLENGED
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.impl.client.DefaultHttpClient Attempt 1 to execute request
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.impl.conn.DefaultClientConnection Sending request: GET /api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28 HTTP/1.1
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.headers >> GET /api/v2/ops/contact-centers/f5b49424-a00d-4020-bb39-28b77752dc28 HTTP/1.1
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.headers >> Authorization: ******
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.headers >> Host: 172.17.79.17
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.headers >> Connection: Keep-Alive
2019-06-03T08:27:27.849 Dbg 09900 org.apache.http.headers >> User-Agent: Apache-HttpClient/4.2 (java 1.5)
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.impl.conn.DefaultClientConnection Receiving response: HTTP/1.1 404 Not Found
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.headers << HTTP/1.1 404 Not Found
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.headers << Date: Mon, 03 Jun 2019 13:27:28 GMT
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.headers << Server: Apache/2.2.15 (Red Hat)
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.headers << Content-Length: 340
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.headers << Connection: close
2019-06-03T08:27:27.853 Dbg 09900 org.apache.http.headers << Content-Type: text/html; charset=iso-8859-1
It can get the CCID correctly, but then switch to the URL without port. From where does it gets this info? Yeah, I might have forgot to add it.
But: IVR Profile, checked; RCS options checked…
Ok it grabbed from HTCC itself, externalApiUrlV2…
Now RCS complains:
2019-06-03T08:48:28.487 Dbg 09900 org.eclipse.jetty.server.handler.AbstractHandler starting org.eclipse.jetty.server.Server@58a5be95
2019-06-03T08:48:28.487 Dbg 09900 org.eclipse.jetty.util.component.AbstractLifeCycle starting qtp683021885{8<=0<=0/254,-1}
2019-06-03T08:48:28.487 Dbg 09900 org.eclipse.jetty.util.component.AbstractLifeCycle STARTED qtp683021885{8<=3<=8/254,0}
2019-06-03T08:48:28.487 Dbg 09900 org.eclipse.jetty.util.component.AbstractLifeCycle starting SslSocketConnector@0.0.0.0:7001
2019-06-03T08:48:28.491 Trc 09900 org.eclipse.jetty.util.component.AbstractLifeCycle FAILED SslSocketConnector@0.0.0.0:7001: java.lang.IllegalStateException: SSL doesn't have a valid keystore java.lang.IllegalStateException: SSL doesn't have a valid keystore
java.lang.IllegalStateException: SSL doesn't have a valid keystore
at org.eclipse.jetty.util.ssl.SslContextFactory.checkKeyStore(SslContextFactory.java:1166)
at org.eclipse.jetty.server.ssl.SslSocketConnector.doStart(SslSocketConnector.java:356)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at org.eclipse.jetty.server.Server.doStart(Server.java:272)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at RcsMain.run(RcsMain.java:73)
at RcsMain.main(RcsMain.java:65)
2019-06-03T08:48:28.491 Trc 09900 org.eclipse.jetty.util.component.AbstractLifeCycle FAILED org.eclipse.jetty.server.Server@58a5be95: java.lang.IllegalStateException: SSL doesn't have a valid keystore java.lang.IllegalStateException: SSL doesn't have a valid keystore
java.lang.IllegalStateException: SSL doesn't have a valid keystore
at org.eclipse.jetty.util.ssl.SslContextFactory.checkKeyStore(SslContextFactory.java:1166)
at org.eclipse.jetty.server.ssl.SslSocketConnector.doStart(SslSocketConnector.java:356)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at org.eclipse.jetty.server.Server.doStart(Server.java:272)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at RcsMain.run(RcsMain.java:73)
at RcsMain.main(RcsMain.java:65)
Deleted files and let RCS create them again (webapp, jsp and keystore.bin)
Same problem with
2019-06-03T08:48:28.491 Trc 09900 org.eclipse.jetty.util.component.AbstractLifeCycle FAILED SslSocketConnector@0.0.0.0:7001: java.lang.IllegalStateException: SSL doesn't have a valid keystore java.lang.IllegalStateException: SSL doesn't have a valid keystore
If I then replace keystore.bin with just an empty file I get:
→ set the keystore password while creating it. The default password configured on RCS is “genesys” (without the quotes);
→ delete the temporary certificate after the keystore is created
Well issue was actually that the communication property at CME > App Object > Server info > Port > default had to be “http”…which for I have search is not documented…
Thanks guys for all the new information I learned
Configuring an Unsecured (HTTP) Port
Enter the value http in the Connection Protocol field.
Enter the value unsecured in the Listening Mode field.
Leave the other fields empty and click Save.