Intermediate
I recently posted a number of examples (Yahoo! Maps collaboration using Flex and BlazeDS and Collaborative data entry with Flex and BlazeDS) showing how to use the BlazeDS/LiveCycle Data Services Message Service to build collaborative applications. In this example, I'm extending the Collaborative data entry with Flex and BlazeDS application to provide an example of a more complete and real-life "Live Help/Call Center" application.
The use case goes like this: a customer tries to complete a task (in this case: apply for a mortgage) on a website, gets in trouble, and starts a "live help" session with a support representative. Among other things, the support representative can remotely drive the customer's application, enter data collaboratively with the customer, chat with the customer using a text-based and/or a video-chat session, close the support ticket, etc.
To make it easier for you to experience the application, I'm hosting it on my server. You can test it using the instructions below.
Installation instructions
<destination id="ticket-service">
<properties>
<source>flex.samples.livehelp.TicketService</source>
<scope>application</scope>
</properties>
<channels>
<channel ref="my-rtmp"/>
<channel ref="my-amf"/>
</channels>
</destination>
Note: If you are using BlazeDS, remove the line that defines the "my-rtmp" channel.
<destination id="callcenter">
<properties>
<server>
<allow-subtopics>true</allow-subtopics>
<subtopic-separator>.</subtopic-separator>
</server>
</properties>
<channels>
<channel ref="my-rtmp"/>
<channel ref="my-longpolling-amf"/>
</channels>
</destination>
Note: If you are using BlazeDS, remove the line that defines the "my-rtmp" channel in the above destination, and add the following channel definition in WEB-INF/flex/services-config.xml:
<channel-definition id="my-longpolling-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amflongpolling"
class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>3</polling-interval-seconds>
<wait-interval-millis>60000</wait-interval-millis>
<client-wait-interval-millis>1</client-wait-interval-millis>
<max-waiting-poll-requests>200</max-waiting-poll-requests>
</properties>
</channel-definition>
Note: Make sure you use the same e-mail address you used in the customer application.
Note: Live video streaming is powered by Flash Media Server. Since I don't have access to a hosted instance of Flash Media Server, live video streaming is not enabled in this hosted version.