/sample.rtcomm.helpdesk

This is a sample WebRTC helpdesk application that demonstrates how WebSphere can be used to build an application that supports the creation of real-time audio/video/chat sessions between a customer and an agent.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

sample.rtcomm.helpdesk

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.

Building and Running The Sample

There are two options for building and running the sample:

Configuration

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

Application Dependencies

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.

Debugging Application

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');

License

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.

    ```