<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Jive SBS Syndication Feed</title>
    <link>http://www.igniterealtime.org/community/blogs</link>
    <description>A syndication feed of all the blogs on this system</description>
    <pubDate>Thu, 22 Jan 2009 20:43:16 GMT</pubDate>
    <generator>Jive SBS 3.0.2 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2009-01-22T20:43:16Z</dc:date>
    <item>
      <title>Adobe to Open Flash Platform Messaging Protocol</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2009/01/22/adobe-to-open-flash-platform-messaging-protocol</link>
      <description>&lt;!-- [DocumentBodyStart:a93944a2-dd00-445a-9790-f2b5cde6c58c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: 'Arial','sans-serif';"&gt;&lt;strong&gt;SAN JOSE, Calif. &amp;mdash; Jan. 20, 2009 &amp;mdash;&lt;/strong&gt; Adobe Systems Incorporated (Nasdaq:ADBE) today announced plans to publish the Real-Time Messaging Protocol (RTMP) specification, &lt;a class="jive-link-external-small" href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html"&gt;more&lt;/a&gt;..&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: 'Arial','sans-serif';"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: 'Arial','sans-serif';"&gt;This is good news for the &lt;a class="jive-link-external-small" href="http://www.osflash.org/red5"&gt;Red5 project&lt;/a&gt; and the Red5 plugin for Openfire with the &lt;a class="jive-link-external-small" href="http://code.google.com/p/red5phone/"&gt;Red5phone Flash phone&lt;/a&gt;.&lt;/span&gt; &lt;span style="font-size: 10pt; color: #000000; font-family: 'Arial','sans-serif';"&gt;It will be interesting to see if the XMPP Standards council will give the &lt;a class="jive-link-external-small" href="http://xmpp.org/extensions/inbox/jingle-rtmp.html"&gt;Jingle RTMP Transport&lt;/a&gt; proposal another consideration.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a93944a2-dd00-445a-9790-f2b5cde6c58c] --&gt;</description>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">xmpp</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">flash</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">red5</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">jingle</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">red5phone</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">rmtp</category>
      <pubDate>Thu, 22 Jan 2009 20:43:16 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2009/01/22/adobe-to-open-flash-platform-messaging-protocol</guid>
      <dc:date>2009-01-22T20:43:16Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/adobe-to-open-flash-platform-messaging-protocol</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1582</wfw:commentRss>
    </item>
    <item>
      <title>Develop your own Plugins for Red5 SparkWeb</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2008/12/08/develop-your-own-plugins-for-red5-sparkweb</link>
      <description>&lt;!-- [DocumentBodyStart:e6385cfa-b11d-4418-b05d-67e644ec479b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;After Gato made this suggestion in my &lt;a class="" href="http://www.igniterealtime.org/community/blogs/fastpath-added-to-sparkweb-with-red5-video-and-desktop-sharing"&gt;last blog&lt;/a&gt;, I decided to move this request to the top of my to-do list as I also need it for another project I am currently working on.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://red5.4ng.net/gtms/user_tune.jpg"&gt;&lt;img alt="http://red5.4ng.net/gtms/user_tune.jpg" class="jive-image" src="http://red5.4ng.net/gtms/user_tune.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;em&gt;How does it work?&lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I am using the &lt;a class="jive-link-external-small" href="http://www.adobe.com/devnet/flex/samples/dashboard/dashboard.html"&gt;Flex Dashboard&lt;/a&gt; developed by &lt;a class="jive-link-external-small" href="http://www.esria.com"&gt;ESRIA&lt;/a&gt; which was donated to the Adobe Developer Connection. Plugins are presented in a pod layout called a View. Each View occupies a Tab in the SparkWeb ChatWindow. You can modify Views by dragging and dropping pods to a different location and minimizing, maximizing, and restoring pod windows. View changes are saved using a LocalSharedObject. View configuration data is loaded from sparkweb/plugins/plugins.xml with values in plugins.xml indicating which swf file to load for a particular pod within each View.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Courier New;"&gt;&lt;a href="http://red5.4ng.net/gtms/plugins.jpg"&gt;&lt;img alt="http://red5.4ng.net/gtms/plugins.jpg" class="jive-image" src="http://red5.4ng.net/gtms/plugins.jpg"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 8pt; font-family: courier new,courier;"&gt;&amp;lt;views&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 8pt; font-family: courier new,courier;"&gt;&amp;lt;view id="view0" label="Plugin Demo"&amp;gt;&lt;br/&gt;&amp;#160; &amp;lt;pod id="app01" title="User Moods" dataSource="plugins/moods.swf" /&amp;gt;&lt;br/&gt;&amp;#160; &amp;lt;pod id="app02" title="User Tunes" dataSource="plugins/usertunes.swf" /&amp;gt;&lt;br/&gt;&amp;#160; &amp;lt;pod id="app03" title="Demo" dataSource="plugins/demo.swf" /&amp;gt;&lt;br/&gt;&amp;lt;/view&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 8pt; font-family: courier new,courier;"&gt;&amp;lt;/views&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;SparkWeb will load each pod SWF file and call the method setParentApplication passing it the SparkWeb root Application object. From this object, you can navigate your way to access all other SparkWeb public objects and even add eventhandlers on events like NewMessage for example.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To get a feel of what can be done, I decided to implement the User Tunes and Moods PEP (personal eventing protocol) applications. See &lt;a class="jive-link-external-small" href="http://caustiq.esoteriq.org/nb/archives/2007/08/#e2007-08-19T21_56_08.txt"&gt;Armando Jagucki's blog&lt;/a&gt; for more details about PEP in Openfire. The source code to the demo plugins is in the src/plugins folder.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;For those interested, the latest version of Red5 Plugin for Openfire can be found at _&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://red5.4ng.net/red5-0.1.06.zip" target="_blank"&gt;http://red5.4ng.net/red5-0.1.06.zip&lt;/a&gt;&lt;span&gt;. Remove comments in plugins.xml to activate the demo.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e6385cfa-b11d-4418-b05d-67e644ec479b] --&gt;</description>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">flex</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">plugin</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">sparkweb</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">red5</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">pep</category>
      <pubDate>Mon, 08 Dec 2008 20:56:28 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2008/12/08/develop-your-own-plugins-for-red5-sparkweb</guid>
      <dc:date>2008-12-08T20:56:28Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/develop-your-own-plugins-for-red5-sparkweb</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1576</wfw:commentRss>
    </item>
    <item>
      <title>Fastpath added to SparkWeb with Red5 video and desktop sharing</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2008/11/24/fastpath-added-to-sparkweb-with-red5-video-and-desktop-sharing</link>
      <description>&lt;!-- [DocumentBodyStart:b7e6f96e-3632-4e92-b248-3ebc97cddcd6] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;The latest version of the Openfire Red5 plugin supports Openfire Fastpath and Webchat plugins from SparkWeb.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://red5.4ng.net/red5-0.1.04.zip"&gt;http://red5.4ng.net/red5-0.1.04.zip&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can now use SparkWeb as a support agent to a workgroup queue and engage in a live support chat with a remote Webchat user on a website. It is fully compatible with Spark, but does not have all the Fastpath features of Spark yet.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://red5.4ng.net/gtms/Image13.jpg"&gt;&lt;img alt="http://red5.4ng.net/gtms/Image13.jpg" class="jive-image" src="http://red5.4ng.net/gtms/Image13.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;It will also let a support agent start a Red5 audio/video conference or desktop share session with the remote user.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://red5.4ng.net/gtms/Image4a.jpg"&gt;&lt;img alt="http://red5.4ng.net/gtms/Image4a.jpg" class="jive-image" src="http://red5.4ng.net/gtms/Image4a.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The requests will appear as Webchat co-browsing requests. The user clicks on the link to start the video conference in a web browser window.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b7e6f96e-3632-4e92-b248-3ebc97cddcd6] --&gt;</description>
      <pubDate>Mon, 24 Nov 2008 00:40:58 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2008/11/24/fastpath-added-to-sparkweb-with-red5-video-and-desktop-sharing</guid>
      <dc:date>2008-11-24T00:40:58Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/fastpath-added-to-sparkweb-with-red5-video-and-desktop-sharing</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1573</wfw:commentRss>
    </item>
    <item>
      <title>Clearspace and Openfire with SparkWeb</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2008/10/12/clearspace-and-openfire-with-sparkweb</link>
      <description>&lt;!-- [DocumentBodyStart:985126a8-a0b1-4806-8d67-4025c34c212a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;I use Openfire and SparkWeb everyday and recently starting evaluating Clearspace to power the community I am building for my wife's education consultancy (&lt;a class="jive-link-external-small" href="http://www.inspiredfutures.co.uk"&gt;www.inspiredfutures.co.uk&lt;/a&gt;). As I had limited computing power and memory to work with on my hosted server, it became expedient that I needed to integrate all three products under the same web server and Java JVM.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;The first thing I did was to make an openfire plugin out of Clearspace&lt;/em&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;The next thing I did was to enable SparkWeb display an HTML page from its chat container&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://red5.4ng.net/gtms/Image14.jpg"&gt;&lt;img alt="http://red5.4ng.net/gtms/Image14.jpg" class="jive-image" height="293" src="http://red5.4ng.net/gtms/Image14.jpg" width="454"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The result is what you see above and I am very pleased with it (chuffed as we say in the UK). The benefits of integrating Openfire and Clearspace has already been mentioned &lt;a class="" href="http://www.igniterealtime.org/community/blogs/openfire-360-has-been-released"&gt;here &lt;/a&gt;. Adding SparkWeb to that combination in order to have realtime messaging, desktop sharing, Red5 audio/video calling and a SIP phone makes a compelling case for me to use Clearspace &lt;img height="16px" src="http://www.igniterealtime.org/community/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have reservations about real-time integration with web applications that use the MVC model based on Stuts like Clearspace or even PHP applications like SugarCRM. Even Salesforce.com also falls into the same group because they all build their UI on the server and everytime the user does anything that requires a server fetch, the screen goes all blank while you wait for the whole page to be rebuilt from server-side Java code.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Putting a softphone or an IM client as a widget in these applications requires constant connect/disconnect cycles as the user moves from page to page. It reminds me of my attempt to build a real-time application on an Apple iPhone and a softphone in Salesforce.com. What we need is to be able to keep our widgets UI resident on the client as well as the user session in the plugin on the server. I am curious to see how Jive Software implements the realtime widgets in Clearspace.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the meantime, I am happy to make SparkWeb my container for real-time web applications as I am getting biased towards Adobe's open-source Flex as my de-facto web client application development platform. I learnt a lot from studying the SparkWeb code &lt;img height="16px" src="http://www.igniterealtime.org/community/images/emoticons/wink.gif" width="16px"/&gt; and I am planing on developing some Clearspace widgets that use SparkWeb's features through the Javascript External Interface to make the integration complete.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you want to use SparkWeb as a container for your web applications as I have done, pick up the latest version of the Red5 plugin from &lt;a class="" href="http://www.igniterealtime.org/community/blogs/openfire-360-has-been-released"&gt;here.&lt;/a&gt; Copy and edit index.html. Change the &lt;strong&gt;httpLabel&lt;/strong&gt; and &lt;strong&gt;httpURL&lt;/strong&gt; parameters to your preference.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:985126a8-a0b1-4806-8d67-4025c34c212a] --&gt;</description>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">openfire</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">sparkweb</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">red5</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">webapps</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">open-source</category>
      <pubDate>Sat, 11 Oct 2008 22:29:09 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2008/10/12/clearspace-and-openfire-with-sparkweb</guid>
      <dc:date>2008-10-11T22:29:09Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/clearspace-and-openfire-with-sparkweb</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1568</wfw:commentRss>
    </item>
    <item>
      <title>Flash-based Audio and Video in Spark, SparkWeb and Openfire</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2008/07/26/flash-based-audio-and-video-in-spark-sparkweb-and-openfire</link>
      <description>&lt;!-- [DocumentBodyStart:5cf40187-b2ce-4f4c-a9e8-8ada79f2d63a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;When SparkWeb became open-source, I took a look at the source code and found it had more features than the Flex-based XMPP client I was co-developing for the &lt;a class="jive-link-anchor-small"&gt;Red5 Plugin&lt;/a&gt;. It therefore made sense to migrate the Flash audio and video features we had developed for our client to SparkWeb and make it compatible with the Spark and Openfire Red5 Plugins and package it as part of the Red5 plugin. The downside to this that the modifications to the Red5 version of SparkWeb makes it out of sync with the official SVN and it could possibly become a fork requiring a name change later on.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;em&gt;So what does the Red5 SparkWeb offer?&lt;br/&gt;&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://red5.4ng.net/gtms/sparkweb5.png"&gt;&lt;img src="http://red5.4ng.net/gtms/sparkweb5.png"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;A plugin container for SparkWeb. I noticed&amp;nbsp; that quite a number of users are asking for a plugin to deploy SparkWeb. My advice would be to try the Red5 Plugin. &lt;br/&gt;&lt;br/&gt;Configure&amp;nbsp; Index.html and point your users at &lt;br/&gt;&lt;br/&gt;&lt;a class="jive-link-external-small" href="http://your_server:nnnn/red5_webapp_name/sparkweb" target="_blank"&gt;http://your_server:nnnn/red5_webapp_name/sparkweb&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Where nnnn is your HTTP-BIND port number (default 7070) and red5_webapp_name is your default red5 web application name (default red5)&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Enables use of the Red5 plugin audio and video features with both Spark and SparkWeb. You can't do video messaging and the video roster is replaced with visual presence (see below). You can make audio/video calls and share your desktop with your contacts. Each call record is logged in openfire and can be queried by the administrator with the Openfire SIP plugin.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Makes SIP phone calls between Spark and SparkWeb users. All SparkWeb SIP calls are logged with the Openfire SIP plugin as well.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Provides webcam support. If you have a webcam installed on your PC, it will be automatically detected and will be used instead of your vcard photo. You can disable this in index.html. You can add or replace your vcard photo with a snapshot of your webcam when you edit your profile. You can also publish snapshots from your webcam as &lt;strong&gt;visual presence &lt;/strong&gt;to all your contacts&lt;strong&gt;.&lt;/strong&gt; What this means is that all your contacts will have&amp;nbsp; a snapshot of your webcam in their rosters. The interval between snapshots is 60 secs by default and can be modified in index.html. See a draft copy of my &lt;a class="jive-link-wiki-small" href="http://www.igniterealtime.org/community/docs/DOC-1573"&gt;proposal&lt;/a&gt; to extend XMPP with visual presence. Please feel free to post comments at the bottom of the document.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I also made a few cosmetic changes to my taste and added sound effects for incoming calls and instant messaging. I added some code to improve the loss of focus detection by tracking Flash application activation/deactivation messages and mouse movement. If you use Internet explorer and enable pop-ups, you will get a pop-up in the bottom right corner of the screen with a photo, name and first line of the incoming messaging if you are outside of SparkWeb when a new message arrives.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I am hoping to add fastpath support and a calendar to SparkWeb next. &lt;img height="16px" src="http://www.igniterealtime.org/community/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5cf40187-b2ce-4f4c-a9e8-8ada79f2d63a] --&gt;</description>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">spark</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">video</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">flex</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">openfire</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">plugin</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">presence</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">flash</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">sparkweb</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">red5</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">webcam</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">sip</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">audio</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">visual</category>
      <pubDate>Sat, 26 Jul 2008 04:02:42 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2008/07/26/flash-based-audio-and-video-in-spark-sparkweb-and-openfire</guid>
      <dc:date>2008-07-26T04:02:42Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/flash-based-audio-and-video-in-spark-sparkweb-and-openfire</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1551</wfw:commentRss>
    </item>
    <item>
      <title>Flash-based Audio in Openfire part II</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2008/05/05/flashbased-audio-in-openfire-part-ii</link>
      <description>&lt;!-- [DocumentBodyStart:832a6afa-f561-4326-b0f1-505a2cacff9b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Just over a year ago, I &lt;a class="jive-link-blog-small" href="http://www.igniterealtime.org/community/blogs/ignite/2007/04/17/flashbased-audio-and-video-in-openfire"&gt;blogged&lt;/a&gt; about using audio and video with openfire. At that time, I implemented a SIP based softphone in Adobe Flash using &lt;a class="jive-link-external-small" href="http://www.asteriskwin32.com"&gt;AsteriskWin32&lt;/a&gt; and &lt;a class="jive-link-external-small" href="http://www.ntonyx.com/vac.htm"&gt;VAC4&lt;/a&gt;. My argument for an open-source, standards based, no-install web-based softphone as a requirement for Web 2.0 voice applications is still valid today and the emergence of &lt;a class="jive-link-external-small" href="http://www.ribbit.com/"&gt;Ribbit&lt;/a&gt;, &lt;a class="jive-link-external-small" href="http://tringme.com/"&gt;TringMe&lt;/a&gt;, &lt;a class="jive-link-external-small" href="http://www.zingaya.jp/"&gt;Zingaya&lt;/a&gt; (&lt;a class="jive-link-external-small" href="http://www.flashphone.ru"&gt;Flashphone&lt;/a&gt;) and others confirmed my thinking was not isolated. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;em&gt;It has however been a disappointment that all implementations I have encountered to-date have been closed, proprietary and inaccessible for integration (both client and server).&lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The latest release of the Red5 Plugin for Openfire features a completely open-source implementation of a web-based SIP softphone written in Flex3 and should work on both Windows and Linux. It uses &lt;a class="jive-link-external-small" href="http://www.mjsip.org/"&gt;MjSIP&lt;/a&gt; as the SIP user agent in the plugin and should work with most SIP proxies, but I have only tested with Asterisk. I have also only tested 2 simultaneous users, but there is no limit and will depend on how many users and media streams Red5 can cope with before it dies. Each telephone conversation consumes 2 user RTMP connections and 4 audio streams on Red5. All source code is provided and you are free to use it in your Openfire Red5 Plugin applications. Just confirm that the open-source licenses of MjSIP and Nelly2PCM are to your liking.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://red5.4ng.net/gtms/flashphone3.jpg"&gt;&lt;img src="http://red5.4ng.net/gtms/flashphone3.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have also integrated the softphone into SparkWeb and the Openfire SIP plugin. This will enable a user to make SIP calls from Spark and SparkWeb with the same user profile. The old Red5gateway will be depreciated and in a later release for window users, I will be adding AsteriskWin32 to the plugin and provide a complete SIP solution for Openfire.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As usual, any feedback will be appreciated.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt; &amp;nbsp;&lt;/p&gt;&lt;p&gt;For details of how this works read on.....&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://red5.4ng.net/gtms/flashphone2.jpg"&gt;&lt;img src="http://red5.4ng.net/gtms/flashphone2.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The red5Phone Flex3 client makes a NetConnection with the Red5 SIP application. When it recieves a success response, it makes a remote "open" method call in the Red5 SIP application which creates a pair of SIPUser and RTMPUser objects for that user and instructs SIPUser to register the user with the specified SIP proxy. When the NetConnection is closed by the Flex3 client, the pair of objects are destroyed and the user is unregistered from the SIP proxy.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When the Flex3 client invokes "call" remotely, SIPUser starts a SIP outgoing call with the SIP proxy and exchanges RTP audio streams. It invokes "connected" on the Flex3 client and informs it of what stream names Flex3 client should use to publish from the PC microphone and play to the PC speaker. It then resamples the incoming audio RTP packets from 8KHZ to 11KHZ, converts from ulaw to ADPCM and calls a method in the RTMPUser object to publish the audio to Red5 using the same name it gave to the Flex3 client to play.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The RTMPUser objects also plays the stream being published by the Flex3 client which is in the Nellymoser ASAO codec. It calls asao2ulaw (my modified version of the open source nelly2pcm) to convert the packets to ulaw and pass to SIPUser through a PipedOutputStream.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;An incoming call follows the same pattern, the incoming SIP signal appears as a remote "incoming" call on the flex3 client. The user can then pickup the call and the Red5phone Flex3 client remotely calls "accept" in SIPUser to accept the call. The audio is setup the same way as an outgoing call.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:832a6afa-f561-4326-b0f1-505a2cacff9b] --&gt;</description>
      <pubDate>Fri, 02 May 2008 12:59:46 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2008/05/05/flashbased-audio-in-openfire-part-ii</guid>
      <dc:date>2008-05-02T12:59:46Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/flashbased-audio-in-openfire-part-ii</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1536</wfw:commentRss>
    </item>
    <item>
      <title>Desktop screen sharing with Openfire</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2007/08/30/desktop-screen-sharing-with-openfire</link>
      <description>&lt;!-- [DocumentBodyStart:7caa31ea-5782-45cf-9821-54b5d8bd0cf4] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;A few moons ago, there was a &lt;a class="jive-link-message-small" href="http://www.igniterealtime.org/community/message/147627#147627"&gt;request&lt;/a&gt; from some Spark users in igniterealtime for a desktop screen sharing plugin. I did mention at that point that I had done something in the past using Red5 and a screen-capture webcam called &lt;a class="jive-link-external-small" href="http://www.hmelyoff.com/index.php?section=9"&gt;VH Screen Capture Driver&lt;/a&gt; and that I would dig it out of my archives and put it into a future release of the Red5 plugin. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have since discovered that this approach has a few drawbacks. It is not bandwidth efficient, will only work on Windows and although the video driver is free, it is not open source. What we needed was for Flash on the desktop to capture the screen as images, send them to a server and re-assemble them back into a video feed which is then published by Red5. Despite my best efforts, I have since not been able to work out how to do this and if &lt;em&gt;anyone has any tips and clues, please tell me&lt;/em&gt;. It will be appreciated. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the meantime I stumbled on &lt;a class="jive-link-external-small" href="http://code.google.com/p/openmeetings/"&gt;Openmeetings&lt;/a&gt; in the Openlaszlo community. It is an online meeting collaboration tool developed by Sebastian Wagner with a number of usefull tools like video, white-board and of course screen-sharing. The video sharing is java-based and does not require any software install other than (the java runtime environment) JRE 1.4+. It uses the same java technique (java.awt.Robot class) as Spark to take a screenshot. It goes one step further by pushing the captured screen shots at a regular interval to a web server using the http upload feature. In the spirit of Open Source and re-useability, I have now decided to use Sebatian's approach and keep the images on the web server and allow multiple clients to view with an auto-refreshing webpage instead of my original intention to convert into a video feed for Red5. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have added this feature to the latest version (0.0.10) of the Red5 plugin. It includes the server-side image upload support, the viewer webpage and the Openmeeting screen publisher application as a java webstart application. Both publisher and viewer can be accessed from the Spark red5 plugin and JWChat. You select the publisher from the menu to publish your desktop screen and you right click the roster context menu to view the desktop screens of your contacts. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As usual, all feedback is welcome.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:7caa31ea-5782-45cf-9821-54b5d8bd0cf4] --&gt;</description>
      <pubDate>Tue, 28 Aug 2007 09:30:37 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2007/08/30/desktop-screen-sharing-with-openfire</guid>
      <dc:date>2007-08-28T09:30:37Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/desktop-screen-sharing-with-openfire</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1502</wfw:commentRss>
    </item>
    <item>
      <title>Flash-based Audio and Video in Openfire</title>
      <link>http://www.igniterealtime.org/community/blogs/ignite/2007/04/17/flashbased-audio-and-video-in-openfire</link>
      <description>&lt;!-- [DocumentBodyStart:a46cb716-2ae1-456e-be4f-b58447a763b1] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;As the lead developer of the web-based version of a voice trading system used world-wide by some of the largest financial organizations, I have learned one or two things about web-based VoIP applications. When we designed our trading application, web-based VoIP was not ready for the 99% reliability and quality demanded for financial transactions. We therefore decided to keep the voice on a regular telephone (POTS) and used the web browser to handle the real-time signaling and associated data using a push method called &lt;a class="jive-link-external-small" href="http://www.pushlets.com/"&gt;pushlet&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My work on the Red5 plugin for Openfire is a personal attempt to investigate alternative communication technologies and get involved in the open source community. I could not have picked a better place than the Igniterealtime community. It will be interesting to see what happens when Adobe release their own VoIP enabled Flash client, but until then Flash and Red5 in my opinion is still the best way to do web-based VoIP applications.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The telephone landscape is changing. It's less about exclusive voice communication and more about real-time collaboration where voice is just one of the many communication channels used to do effective collaboration. I believe presence is a very important ingredient that brings intelligence to finding the right channel to communicate with one or many contacts in real time. This is a vision that I share with Jive Software and that why I endorse and work with Openfire on a personal basis. The plugin approach on both server and client is a very smart idea and has enabled me to integrate Flash and Red5 with Spark and Openfire with little or no effort. Implementing HTTP-binding in Openfire was icing on the cake and enabled me to add audio and video to a web-based client like JWChat with relative ease.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;em&gt;This brings me to the purpose of this blog.&lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;At the moment, Spark users get a choice of SIP, Jingle and Red5 for voice. These features enable Spark to make calls to SIP phones, XMPP users and web-based XMPP users. SparkWeb does not do VOIP yet, but that will change when Jingle supports a web-compatible transport.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Web-based XMPP users could not call SIP phones until now.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have designed a gateway (audio bridge) which converts red5 calls to and from SIP. I have now implemented a version for Windows XP/2k3 using &lt;a class="jive-link-external-small" href="http://www.asteriskwin32.com/"&gt;Asteriskwin32&lt;/a&gt;. The basic engine is an ActiveX component written in Visual Basic and the source code is open. To solve the problem of transcoding the proprietary Nellymoser codec to SIP, I have used 8 pairs of virtual soundcards provided by a commercial product called &lt;a class="jive-link-external-small" href="http://www.ntonyx.com/vac.htm"&gt;VAC (Virtual Audio cable).&lt;/a&gt; It is very popular and has been used on other projects to bridge Skype for example.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I now have tight integration between Openfire, Red5 and Asterisk and this has lead to a new version of the Red5 plugin which can control the red5Gateway and implement some interesting ideas. For example, the gateway makes it possible to make every user and group JID become a public SIP address. The gateway will route and convert all SIP calls for &lt;a class="jive-link-email-small" href="mailto:user@domain.com"&gt;user@domain.com&lt;/a&gt; to a red5 call. In reverse, if you make a Red5 call to an extension nnnnnn, the gateway will convert it to SIP and pass it on to your configured SIP service provider to route. In the case of group@example, Asterisk is used to hold the caller in a queue while every group member is called until someone answers.&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;a href="http://www.deleolajide.plus.com/red5.jpg"&gt;&lt;img src="http://www.deleolajide.plus.com/red5.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Red5 gateway support is disabled by default on the Red5 plugin, as it is an optional component and is not part of the red5.war file. I am in the process of creating a hosted server to demo it over the next few weeks. If your Openfire runs on Windows and you are interested in trying it before then, send me an email and I will send you the link and documentation as soon as I finish writing it.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the meantime, enjoy the latest version of the red5 plugin 0.0.7 which is now compatible with Openfire 3.3.0 and Spark 2.5.1. It has the latest Red5 server code: 0.6RC3. I tried to downgrade it to java5, but it was incompatible with Openfire, so I gave up trying :(. I have added support for viewing vcard avatars. I will add the ability to upload images in the next release so you will need Spark to upload the photographs/images for now. As I use jwchat5 myself, I have made the chat UI much like Pandion style, which I like. I only got one bug report from the previous release and have fixed it.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A big thanks to everyone at Igniterealtime, especially the folks at Jive who have added Red5 support duties to their already busy day jobs.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As always, all feedback positive or negative helps to motivate &lt;img height="16px" src="http://www.igniterealtime.org/community/images/emoticons/happy.gif" width="16px"/&gt; an open-source development and influence product design. The current version 0.0.7 is still far from 1.0.0, so please keep the comments coming.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-dele&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a46cb716-2ae1-456e-be4f-b58447a763b1] --&gt;</description>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">planetjabber</category>
      <category domain="http://www.igniterealtime.org/community/blogs/tags">openfire-server</category>
      <pubDate>Tue, 17 Apr 2007 11:59:06 GMT</pubDate>
      <author>dele</author>
      <guid>http://www.igniterealtime.org/community/blogs/ignite/2007/04/17/flashbased-audio-and-video-in-openfire</guid>
      <dc:date>2007-04-17T11:59:06Z</dc:date>
      <wfw:comment>http://www.igniterealtime.org/community/blogs/ignite/comment/flashbased-audio-and-video-in-openfire</wfw:comment>
      <wfw:commentRss>http://www.igniterealtime.org/community/blogs/ignite/feeds/comments?blogPost=1464</wfw:commentRss>
    </item>
  </channel>
</rss>

