| 1 | Support chat |
| 2 | ============ |
| 3 | |
| 4 | Requirements |
| 5 | ------------ |
| 6 | |
| 7 | Server: |
| 8 | - An XMPP server with support for: |
| 9 | - Multi-User Conferences (may be an external service, e.g. mu-conference, Palaver) |
| 10 | - BOSH (may be an external service, e.g. Punjab) |
| 11 | - SASL ANONYMOUS |
| 12 | |
| 13 | - A web server: |
| 14 | - To serve the scripts, stylesheets and images |
| 15 | - To redirect requests for a selected URL to the BOSH server |
| 16 | |
| 17 | Users: |
| 18 | - A Javascript-enabled web browser |
| 19 | |
| 20 | Installation |
| 21 | ------------ |
| 22 | |
| 23 | Upload the 'support-chat' directory to your site. In the page(s) in |
| 24 | which you intend to enable the support box to be launched, add the |
| 25 | following snippet of HTML to the <head> section of the page: |
| 26 | |
| 27 | <script type="text/javascript" src="support-chat/js/jquery-1.4.2.min.js"></script> |
| 28 | <script type="text/javascript" src="support-chat/js/strophe.js"></script> |
| 29 | <script type="text/javascript" src="support-chat/js/xmpp_muc.js"></script> |
| 30 | <script type="text/javascript" src="support-chat/js/supportchat.js"></script> |
| 31 | <script type="text/javascript" src="support-chat/js/jquery-ui-1.8rc3.custom.min.js"></script> |
| 32 | <link rel="stylesheet" href="support-chat/ui/supportchat.css" /> |
| 33 | <link rel="stylesheet" href="support-chat/ui/start/jquery-ui-1.8rc3.custom.css" /> |
| 34 | |
| 35 | (amending the paths as necessary to point to the correct files). |
| 36 | |
| 37 | Configuration |
| 38 | ------------- |
| 39 | |
| 40 | On your XMPP server you need to create a new host for users to connect to. This host |
| 41 | should be configured to allow SASL ANONYMOUS logins. You also need to create a host |
| 42 | to hold the user-created support rooms using MUC. This will either be provided by |
| 43 | your server, or by configuring an external component. |
| 44 | |
| 45 | On your web server the only tricky part is setting up a proxy for the scripts on the |
| 46 | site to access the BOSH server. Apache, lighttpd, nginx and other servers support this. |
| 47 | There are many ways to achieve this, but one method in Apache2 would be to use its |
| 48 | mod_rewrite and a configuration line similar to: |
| 49 | |
| 50 | RewriteRule /bosh http://localhost:5280/http-bind/ [P] |
| 51 | |
| 52 | This assumes your BOSH server is on the same machine as the web server, and is serving |
| 53 | BOSH at /http-bind (the default path in most servers). You should in the end be able |
| 54 | to visit http://yourdomain/bosh and see the BOSH page of your server. |
| 55 | |
| 56 | Finally you need to configure and customise support-chat itself. Open up |
| 57 | support-chat/supportchat.js in an editor, and review and modify the configuration |
| 58 | options at the start of the file. Each one is described below: |
| 59 | |
| 60 | login_domain: This should be the XMPP hostname that is configured to allow anonymous |
| 61 | logins. |
| 62 | |
| 63 | bosh_url: This should be /bosh, or the path you proxied from your web server to |
| 64 | the BOSH server. |
| 65 | |
| 66 | muc_server: The XMPP hostname of the Multi-User Conference server where users shall |
| 67 | create their temporary rooms. |
| 68 | |
| 69 | team_rooms: A list of pairs of assistant team names and team MUC addresses. The |
| 70 | example should give you enough guidance on how to structure the list. |
| 71 | You can define as many or as few teams as you want. |
| 72 | |
| 73 | send_invites: May be true or false. If false, online assistants will receive messages |
| 74 | alerting them to new queries. If true, they will receive a MUC invitation |
| 75 | to the query's room (may not work in all XMPP clients). |
| 76 | |
| 77 | offline_support: An XMPP address to which queries should be sent when no assistants on |
| 78 | the selected team are available. Should have offline message storage |
| 79 | in order to be sure never to lose a query. |
| 80 | |
| 81 | alternative_url: If the support application encounters an issue connecting to the XMPP |
| 82 | server (whether it be down, or the user's network policy or browser |
| 83 | prevents such) the user will be directed to the given URL to obtain |
| 84 | support. |
| 85 | |
| 86 | Usage |
| 87 | ----- |
| 88 | Anywhere you want to provide a link to open the support interface, direct the link to |
| 89 | #support-chat, for example: |
| 90 | |
| 91 | <a href="#support-chat">Live Support</a> |
| 92 | |
| 93 | On clicking this link the user would be presented with a form to enter their query. |
| 94 | |
| 95 | Assistants |
| 96 | ---------- |
| 97 | |
| 98 | To become available to answer user queries, assistants should join the relevant team |
| 99 | MUC room(s). When a user submits a query they will receive a message with the query |
| 100 | and the address of a room to join if they wish to assist the user. |
| 101 | |
| 102 | The first assistant to join the room is automatically marked as the user's primary |
| 103 | assistant, and the user will be notified of their presence. They can simply converse |
| 104 | with the user as normal at this point. |
| 105 | |
| 106 | While in the query room with the user present, 2 commands are available. Anyone may |
| 107 | type the message "!assist" to notify the user that they will be the new primary |
| 108 | assistant. If the assistant wishes to notify the user that they are no longer have an |
| 109 | assistant they may type the message "!stop", or simply leave the room. |
| 110 | |
| 111 | License |
| 112 | ------- |
| 113 | support-chat is licensed under the University of Illinois/NCSA Open Source License, |
| 114 | see the LICENSE file that accompanies this project for more information. |