canmove, Confirmed users
382
edits
(Created page with 'Proposal for integrating Live Chat with Kitsune ==Step 1: routing traffic (needs IT approval)== Ajax requests to a backend server is used for all communication to and from Live …') |
|||
| (One intermediate revision by the same user not shown) | |||
| Line 3: | Line 3: | ||
==Step 1: routing traffic (needs IT approval)== | ==Step 1: routing traffic (needs IT approval)== | ||
Ajax requests to a backend server is used for all communication to and from Live Chat. To satisfy the same-origin policy when embedding chat into Kitsune pages, a proxy needs to be set up to route requests to the backend server. | Ajax requests to a backend server is used for all communication to and from Live Chat. To satisfy the same-origin policy when embedding chat into Kitsune pages, a proxy needs to be set up to route requests to the backend server. | ||
===Use Zeus to redirect data (Option 1)=== | |||
Since we have multiple webheads and a single Live Chat server, the simplest network configuration is to use ZXTM to route https://support.mozilla.com/chatapp/ to the Jetty installation at https://chat-support.mozilla.com/chatapp/ . End-to-end encryption is important as passwords are sent over the link. | Since we have multiple webheads and a single Live Chat server, the simplest network configuration is to use ZXTM to route https://support.mozilla.com/chatapp/ to the Jetty installation at https://chat-support.mozilla.com/chatapp/ . End-to-end encryption is important as passwords are sent over the link. | ||
| Line 11: | Line 13: | ||
* https://chat-support.mozilla.com/chatapp/themes/* (Static CSS) | * https://chat-support.mozilla.com/chatapp/themes/* (Static CSS) | ||
* https://chat-support.mozilla.com/chatapp/resource/* (minified resources, not yet implemented) | * https://chat-support.mozilla.com/chatapp/resource/* (minified resources, not yet implemented) | ||
===Use a Python proxy (Option 2)=== | |||
We could avoid additional server configuration by configuring Django's built-in proxy to route the Live Chat requests | |||
* Docs: [http://pypi.python.org/pypi/django-http-proxy/] | |||
==Step 2: authentication (existing system for CSAT)== | ==Step 2: authentication (existing system for CSAT)== | ||
| Line 17: | Line 23: | ||
===Java implementation proposal=== | ===Java implementation proposal=== | ||
Fork app.jsp to create | Fork app.jsp to create '''api.jsp''' which will accept the following JSON-encoded variables from Kitsune | ||
* username: the pre-authenticated UTF8 SUMO username | * username: the pre-authenticated UTF8 SUMO username | ||
* template: always "agent" | * template: always "agent" | ||
| Line 27: | Line 33: | ||
*sessionID: session identifier | *sessionID: session identifier | ||
*key: session key | *key: session key | ||
===Kitsune implementation proposal=== | ===Kitsune implementation proposal=== | ||
* When a user launches live chat, get a sessionID and key using a HTTPS request to chat-support.mozilla.com | * When a user launches live chat, get a sessionID and key using a HTTPS request to chat-support.mozilla.com | ||
* Execute the javascript function: app.init(sessionID, key) | * Execute the javascript function: app.init(sessionID, key) | ||