Brief project description:
Build an embedded webpage widget and configure widget server to add voice and text chat to website. Our users will talk to each other by speaking or typing. The solution needs to record the voice and text to the server, and also interact with our existing logic backend. See details below and let us know any questions you have. Info about previous work you did like this helps. Thanks.
create an embedded webpage widget that lets users talk and type to each other.
voice and text chats will be logged and recorded to a back end server for widget (call it: widget-server)
widget-server communicates with an existing backend through an API (call it: logic-server-API) for who/when to connect/disconnect (we will provide the API).
this project needs to be completed and ready for us to test 2 weeks after we choose the winner. There will 1 week to test it after that.
Must Have Requirements
user interactions include:
voice connections by computer microphone and speakers
text chat interactions by typing
users will not have voice or text interactions until initiated by the widget-server (which in turns, gets its instructions from the logic-server-API)
enable voice and text chats to be recorded to the widget-server.
Some more details and thoughts as you come up with your response.
For the webpage widget
- Communicates with widget-server (for example, Red5, Asterisk, etc - please recommend)
- Does Not communicate directly with logic-server-API.
- Communication the widget-server:
- receives: request for status of user's connection
- receives: signal to initiate a set of user interactions from widget-server (either Red5 or Asterisk)
- user would not have voice and text interaction until initiated by the widget-server
- user interactions include: voice conversation connections, text chat interactions, information to display to the user on widget
- sends: data about the page user is looking at (Http session info)
- sends: status of user (user_id / connected / disconnected)
- after widget-server initiates connections
- (send / receive from widget-server) voice data from user’s computer microphone
- (send / receive from widget-server) text chats typed into widget interface
For the widget-sever
- Recommend possible type of implementations (you do not have to build the back end from scratch, but rather an implementation with a current open source server would be preferred)
- could be a Flash based solution (Flash webpage widget with Red5 widget-server?).
- could be an Asterisk solution (Flash/Java/Html/ webpage widget with xmpp/jabber+sip/iax back? suggestions?)
- communication to the logic-server-API:
- receive: instructions on which users to connect / conference
- receive: what system messages to send which user
- sends: status of connection
- communications to the website widget:
- sending: connect instructions to widget; voice stream from other connected users (only those that are in the same connected group); text from other connected users (only those that are in the same connected group); disconnect instructions to widget
- receiving: voice (and has to be able to record the voice to our server); text chat data (logged to server as conversation group). (and has to be able to record the text to our server); status of connection; ID of widget (some identifier that's related to the user that's logged on to page)
- activities are logged into db (MySQL)