Red5 Plugin 0.0.15 with SIP Flashphone

I have just released the next beta version of the Red5 Plugin with an interesting feature. It is a SIP softphone implemented in Flex and Red5. It is completely open source and should work on both Windows and Linux. I however done all my development and testing on Windows. The voice quality needs more work, but is usable. Codecs are Nellymoser Asao from Flash to SIP and ADPCM from SIP to Flash. It should work with mot 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.

My next task will be to integrate into Sparkweb and make it work with the SIP plugin and enable SIP calls between Spark and Sparkweb users using the same user profile. For window users, I will also add AsteriskWin32 to the plugin and provide a complete SIP solution for Openfire.

You can download the Red5 Plugin version 0.0.15 from here



Just unloaded version 0.0.16 with SparkWeb modified for Red5Phone. See my blog for more details.

-dele

Hi, Dele

Great Job!

I just played with it. It works well.

But the voice quality is not good. Any solution to improve it?

The SIP phone speaker side should be ok, because that is the nellymoser codec which is good, but the PC speaker is not so good because it is ADPCM.

The problem is that flash only accepts 3 codecs. Nellymoser, ADPCM or uncompressed. We can’t do Nellymoser because there is no open source Nellymoser encoder. Uncompressed will be better than ADCPM, but will consume 128Kbps bandwith compared to 32kbps ADPCM.

In the next release, I will make ADPCM an option which can be turned off. What we really need is for someone to release an open source nellymoser encoder.

-dele

Sean,

I have uploaded version 0.0.17 with raw PCM instead of ADPCM. It can be changed from the admin console. It sounds much better. The bandwith is not as bad as I thought because of Nellymoser in the opposite direction. Total bandwidth (in theory) = 128K (download) + 16K (upload). A normal ulaw SIP call is 64K + 64K.

Please give it a test and let me know.

-dele-

I just played 0.0.17. The voice quality is much much better. It is realy great.

Thanks a lot!

Hi, Dele

I just find a commercial NellyMoser encoder/decoder. They have a trial version. Would you like to try it and see how the voice quality is?

http://www.ichi-ban.ru/

Thanks for the reference, but I don’t think the nellymoser encoder will improve the voice quality any better than raw PCM. it will certainly reduce the bandwidth which is good. I am however not so sure it is worth $2000.

I hope you can help other people on installing red5 to openfire server

please do post some tutorials or guidelines

thanks dele!

I have created a document from the the readme file. I have given everyone edit permissions, so please help me keep it up to date and complete.

-dele

Thanks… i just solve it now…

its only the bindport… the default is 7070 so i change to 8080 where the openfire red5 plugin is 8080

Hi, dele

I see. I agree with you.

I want to contribute something. Can I implement Red5 standalone with your SIP Flahsphone? Is it a contribution or only re-complile your project?

Hi,

thanks for the grat plugin, but i am havin some trouble.

Http_bind port is set to 8080. OF is runing v. 3.5.1, java sdk 1.6, ubuntu 6.06 and red5 plugin v.0.0.17 and i am still getting an http error 404 (NOT_FOUND RequestURI=/red5/viewer).

I don`t know why? Can anyone figure it out?

I want to contribute something.

That’s music to my ears. Someone is already porting red5phone to run with the standalone Red5 server (See my blog). If you have Flex or HTML skills, please feel free to create a better looking softphone with more features.

-dele-

404 (NOT_FOUND RequestURI=/red5/viewer)

Can you provide more detail on what feature you were using when this error occured. Was it the screen share??

Sure!

It occures at all Red5 features. Open Audio/Video Roster, View Audio/Video Roster, Publish/View Desktop Screen and Phone component. It appears nothing specific within the log-files.

Additionally some more info from the spark client log:

09.05.2008 11:06:30 org.jivesoftware.spark.util.log.Log error

SCHWERWIEGEND: Red5-Error: Properties-file does not exist= C:\Dokumente und Einstellungen\admin\Spark\red5.properties

After replacing the red5.properties into the spark system folder i get this:

09.05.2008 11:39:01 org.jivesoftware.spark.util.log.Log error

SCHWERWIEGEND:

No response from the server.:

  • at org.jivesoftware.smackx.PrivateDataManager.getPrivateData(PrivateDataManager.ja va:209)+

  • at org.jivesoftware.smackx.bookmark.BookmarkManager.retrieveBookmarks(BookmarkMana ger.java:219)+

  • at org.jivesoftware.smackx.bookmark.BookmarkManager.getBookmarkedConferences(Bookm arkManager.java:91)+

  • at org.jivesoftware.spark.ui.conferences.ConferenceServices$4.construct(Conference Services.java:217)+

  • at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:129)+

  • at java.lang.Thread.run(Unknown Source)+

09.05.2008 11:39:07 org.jivesoftware.spark.util.log.Log error

SCHWERWIEGEND:

java.lang.NullPointerException

  • at org.jivesoftware.spark.Workspace$1.shutdown(Workspace.java:137)+

  • at org.jivesoftware.MainWindow.fireWindowShutdown(MainWindow.java:234)+

  • at org.jivesoftware.MainWindow.shutdown(MainWindow.java:263)+

  • at org.jivesoftware.MainWindow$7.actionPerformed(MainWindow.java:458)+

  • at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)+

  • at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)+

  • at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)+

  • at javax.swing.DefaultButtonModel.setPressed(Unknown Source)+

  • at javax.swing.AbstractButton.doClick(Unknown Source)+

  • at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)+

  • at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)+

  • at java.awt.Component.processMouseEvent(Unknown Source)+

  • at javax.swing.JComponent.processMouseEvent(Unknown Source)+

  • at java.awt.Component.processEvent(Unknown Source)+

  • at java.awt.Container.processEvent(Unknown Source)+

  • at java.awt.Component.dispatchEventImpl(Unknown Source)+

  • at java.awt.Container.dispatchEventImpl(Unknown Source)+

  • at java.awt.Component.dispatchEvent(Unknown Source)+

  • at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)+

  • at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)+

  • at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)+

  • at java.awt.Container.dispatchEventImpl(Unknown Source)+

  • at java.awt.Window.dispatchEventImpl(Unknown Source)+

  • at java.awt.Component.dispatchEvent(Unknown Source)+

  • at java.awt.EventQueue.dispatchEvent(Unknown Source)+

  • at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)+

  • at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)+

  • at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)+

  • at java.awt.EventDispatchThread.pumpEvents(Unknown Source)+

  • at java.awt.EventDispatchThread.pumpEvents(Unknown Source)+

  • at java.awt.EventDispatchThread.run(Unknown Source)+

Also i am not sure about the content of red5.properties - cause it is:

#Red5 Settings

server=10.0.0.23

port=8080

The server ip isn`t mine. But if i change it, it returns ?

Hello,

I’m getting this error message when trying to use FLashPhone on the Red5 Test Page:

Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetConnection was unable to invoke callback onBWDone. error=ReferenceError: Error #1069: Property onBWDone not found on red5phone and there is no default value.

at red5phone/::init()

at red5phone/___red5phone_Application1_creationComplete()

at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFuncti on()

at flash.events::EventDispatcher/dispatchEvent()

at mx.core::UIComponent/dispatchEvent()

at mx.core::UIComponent/set initialized()

at mx.managers::LayoutManager/::doPhasedInstantiation()

at Function/http://adobe.com/AS3/2006/builtin::apply()

at mx.core::UIComponent/::callLaterDispatcher2()

at mx.core::UIComponent/::callLaterDispatcher()

RtpStreamSender: RtpStreamSender: Error reading from InputStream

i’ve got this error, both caller and receiver got no sound…

If you are running on Linux, please follow notes at

http://www.igniterealtime.org/community/docs/DOC-1520

Otherwise, mail me your red5.log, red5error, stdout.log and stderrorlog files.

-dele