
Hello! I like to create H.323 (primarly) & SIP based video phone application that will run on Linux, Windows & Mac platforms and of course, written in Haskell. (Writing similar application in Haskell is not "reinventing the wheel" :) I did look/try various current H.323/SIP based video phone software that runs on Windows, Mac and Linux such as Ekiga, XMeeting, Linphone, Mirial and some others. Ekiga (despite version 3.x) is unstable, keeps crashing a lot on me. XMeeting (Mac) does not work good (choppy videos, dropped packets et al). So do Linphone. The best of the lot so far is Mirial Softphone, it has nice decent features to begin with, but there are lot more features I want to add. Please let me know if there is good H.323 based videophone software that I might miss (I think I have looked at all of them). Since my video phone application mainly focus more on deaf people thus strong emphasize on video part while all other (if not all) video softphone put stronger emphasize on audio part & traditional phone setup. Also it has to be primarly H.323 because I would say about over 95% or so of all deaf people (with high speed Internet access) use Sorenson VP-200 as their "main" videophone (Sorenson gives away VP-200 video phone device for free to all deaf people in USA in exchange for using Sorenson Video Relay Service which they make profit from). Sorenson VP-200 only supports H.323, H.263 video codec and G.711/G.723.1 audio codec. Being able to work with VP-200 well is this application's first step. Skype, ooVoo, SightSpeed, QuteCom, VZOchat, iChat AV and some others are excellent video phone/chat applications but they are not H.323 complaint so they are "out of question". It would take me a lot of time (more like forever) if I have to write my own H.323 protocol stack along with video/audio codecs as well the GUI in Haskell. So in order to write this application in timely manner (say one year from now or so) I will need external library/functions for H.323/SIP protocol stack, the audio/video codecs and the GUI. I have been contacting serveral companies that offer licensing of their H.323/SIP/codecs SDK/API/Libraries for my program to be able to access to those functions. Naturally all of them ues C/C++. Yes there are some free/open source ones such as h323plus.org, x264, ffmpeg and some others, but still all of them are written in C/C++. I think I am more likely to go for commercial libraries due to stability (least bugs), higher performance, better documentation and whole set of supported features. What do I ask to make sure those libraries/SDK would work well with Haskell? As for GUI, since I would like for this application to run on three popular platforms: Windows, Mac and Linux, so I think I would have to use Gtk+, wxWidgets or Qt which mean I would use Gtk2Hs, wxHaskell or qtHaskell. Even nicer is to use FRP GUI library such as Fruit, Grapefruit, wxFruit, et al. This application would need to support localization i.e. support different languages. What do you suggest for me to use one of middle level GUI library or even the higher level FRP GUI library (with localization support)? Fast and smooth video (i.e. 30 FPS) is the key for this application. As it stands now, looks like I'll write the "main program" entirely in Haskell, then use some kind of bindings to call to those C/C++ libraries for H.323, SIP, codecs, webcam/video camera I/O, video display, GUI et al. Any better ideas for doing this? I know it would be dream come true to see acclerated vector/raster based drawing primitives with FRP GUI on top written entirely in Haskell along with H.323, codecs et al being written in Haskell too (we may have to wait quite while for that), but we live in real world so I will have to learn to deal with what we have now and the workarounds. Thanks in advance! Jamie