Support/Live Chat/Web Client/Kitsune integration: Difference between revisions

(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 __api.jsp__ which will accept the following JSON-encoded variables from Kitsune
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)
canmove, Confirmed users
382

edits