/helpdesk-bot

Symphony HelpDesk BOT

Primary LanguageJavaApache License 2.0Apache-2.0

Symphony Helpdesk Bot

Dependencies Build Status Validation Status

Help Desk BOT(s) are Java based applications that implement a call routing workflow based framework leveraging the Symphony API. To implement a common design pattern which supports a call routing workflow from a named end-point (network user) to an application (BOT) end-point named alias (operator/call router), which routes to a rota of other named user end-points who service the call.

##General Concepts

  • All communications from initiating user end-points to application end-point are private.
  • All communications from the application end-point to the rota of servicing user end-points are shared. Rules can be applied to prevent communications between servicing users.
  • The application end-point will maintain session state with all end-points.
  • The application end-point will have additional programmatic workflow hooks to support other implementations. These include event listeners and interfaces through the life-cycle of call handling. e.g. Connect, Validation, Session, SymMessage, Rules, Context, Commands, Termination

##Change log and notes

V1.0.0 (SNAPSHOT)

  • Upgrade to Symphony-Java-Client 1.0.0
  • General features described below.

##Help Desk BOT Types

###Proxy Desk See video DEMO

All communications flows through (ingress/egress) the BOT application, which handles all call routing. Command line interface is provided to members to manage all calls.

U(SymUser) < - - > O(Operator)< - - > R(Rota of Users/members)
(~~~~~~~~~~~~~~~~~~~~)< - - >Ru(Rota SymUser callback, proxy through O)

###Room Desk See video DEMO

All inbound user communications flows through the BOT into a chat room of members. Command line interface is provided to all members, but calls are established through an external multi-party conversation outside the chat room.

U(SymUser) < - - > O(Operator)< - > R(Rota of Users/members)
(~~~~~) <- - - - - - - - - - - - - - - -Ru(Rota SymUser callback, direct)

###Web Desk See video DEMO

All inbound users leverage an external web client, which communicates with a backend BOT service that implements the Room Desk construct.

  U(SymUser) < - -> Web Module < - - > O (Operator) <- > R(Rota of users/members)
  (~~~~~) <-------------------------------------------Ru(Rota SymUser callback)

##Requirements

###Certificates: Please contact your Symphony local administrator to obtain the necessary certificates for the user/service account being used to access the POD.

    Server Truststore = Contains server certs
    SymUser Keystore = Symphony user client certificate

###Required System Properties:

    -Dkeystore.password=(Pass)
    -Dtruststore.password=(Pass)
    -Dsessionauth.url=https://(pod-host).symphony.com:8444/sessionauth
    //Note: you may have local HSM vs pod
    -Dkeyauth.url=https://(pod-host).symphony.com:8444/keyauth
    -Dsymphony.agent.pod.url=https://(symagent-host):8446/pod
    -Dsymphony.agent.agent.url=https://(symagent-host):8446/agent
    -Dcerts.dir=/dev/certs/
    -Dtruststore.file=/dev/certs/server.truststore
    -Dbot.user=(user name)
    -Dbot.domain=(domain of user)
    -Djson.files=/dev/json

Contribute

This project was initiated at IHS Markit and has been developed as open-source from the very beginning.

Contributions are accepted via GitHub pull requests. All contributors must be covered by contributor license agreements to comply with the Code Contribution Process.