This is a sample helpdesk web application built on WebRTC and WebSphere Liberty and the Rtcomm feature. It demonstrates how the lib.rtcomm.clientjs JavaScript library can be used to build an application that supports the creation of real-time audio/video/chat sessions between a customer and an agent. It includes support for call queuing allowing multiple agents to listen on one or more queues for inbound calls from customers of a web site.
There are two options for building and running the sample:
- Using Eclipse with WDT (Websphere Developer Tools)
- Command Line
Go to pom.xml
found in the root directory of the project (sample.rtcomm.helpdesk/pom.xml)
Edit the property values accordingly, you may leave the server hostname or change it as you wish. But if you leave the mqttServerHostname
property value as messagesight.ibm.demos.com
,change the rtcommTopicPath
value!
<properties>
...
<!-- Change to your prefered broker address -->
<mqttServerHostname>messagesight.demos.ibm.com</mqttServerHostname>
<!-- Change for fixed topic path -->
<rtcommTopicPath>helpdesk-demo</rtcommTopicPath>
<!-- Change the TCP Port to which your Liberty instance will connect -->
<mqttServerPort>1883</mqttServerPort>
<!-- Websocket port the browser client should connect to -->
<webSocketPort>1883</webSocketPort>
...
</properties>
These properties can also be changed when building through the command line or using Maven commands:
$ mvn install -DrtcommTopicPath=<TOPICPATH> \
-DmqttServerHostname=<HOSTNAME> \
-DmqttServerPort=<TCP_PORT_NUMBER> \
-DwebSocketPort=<PORT_NUMBER>
As an example:
$ mvn install -DrtcommTopicPath=helpdesk \
-DmqttServerHostname=localhost \
-DmqttServerPort=1883 \
-DwebSocketPort=8083
The web application was built using the angular-rtcomm framework, which uses AngularJS and Bootstrap.
The backend (where the hosted is server) and how the call queue is managed is with Websphere Liberty using the rtcomm-1.0 feature.
Karma and Protractor where used for unit and integration testing respectively.
Maven is the build tool for the application along with the ci.maven to manage Liberty profile servers.
To enable debug tracing in the rtcomm angular module open the rtcomm-services.js file and change:
$logProvider.debugEnabled(false) to $logProvider.debugEnabled(true)
To enable debug tracing in the core rtcomm clientjs library, open the rtcomm-services.js file and uncomment one of these lines:
myEndpointProvider.setLogLevel('DEBUG');
myEndpointProvider.setLogLevel('MESSAGE');
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```