Hello, As I promised some time ago, you will find below a list of all the features that have been discussed in the last months on the list and elsewhere.
This is not a roadmap. It is an extensive list of features that I would like you to review if you can to give me feedback about the level of importance things have for you. I will then try to mix these into progressive roadmaps for the project. Note that the ideas are not prioritized at this stage so you will sometime ask yourself why a 2 month features is mentioned next to a 1 hour feature. Thank you for your time and courage if you go through all these. Your feedback will be appreciated. I tried to format them so that most of you can read them in your preferred email reader. Please, if you want to answer, try to quote only those points on which you wan to react. Otherwise, the emails will be too long. Jerome ------ 1. Community and documentation ## register on koders.com ## adding the WengoPhone on koders.com could improve the visibility of the project ## project metrics ## the idea here is to have a website with interesting metrics regarding the community ## try to give life to our openusability account ## an openusability account was created to foster the usability effort in the WengoPhone ## automatic doxygen generation ## This is necessary in our documentation effort to improve the visibility of the documentation ## trac wiki refactoring ## It is necessary to do a cleanup of the wiki organization to hide the WengoPhone classic a bit more and improve the entry points for newcomers in the project ## automatic drawing of library dependency ## It could be a nice thing to have a regular extract of the build system in the form of a graph of dependency of the libraries ## OpenWengo news ## the idea is to regularly publish an OpenWengo news to keep everyone informed about the news from the community ## improve bug screening / ticket management ## we have had a growth in the number of ticket in the last months, but the tickets do not seem to self-organize. We have to find a way to improve the ticket screening processes ## changelog and commit digests ## the development of a new trac plugin is nearly finished. Look at the "changelog" tab in the Trac toolbar. This should enable us to simplify the extraction of commit digests ## find a way to describe the community ## either via the wiki (but this could be hard to maintain) or via an external community website. Ideas are around team, roles, studies, localisation, pictures ## documentation on how to setup the environment ## the current pages are a little bit outdated. It is necessary to revamp them ## library per library page ## it is necessary to have one page per library on the wiki to explain what it is, what it is used for,... ## code entry points ## add a wiki page listing main code entry points that new developers would want to look at ## code tutorials ## some developers have asked for small tutorials about how to add a menu entry in the WengoPhone for example. This would look like deep entry points. example: learn in 1 hour how to add a menu in the main window ## external reference links ## some developers ask for links to some good tutorials specific to topics like threading, using boost, qt will be of great help ## corner cases of compilation ## add on the wiki a FAQ or a FI (frequent issues) about compilation corner cases. which lists common mistakes, bugs etcclassified by OS/version etc ## wiki page about WengoPhone serialization ## this page would document the things that the WengoPhone does to serialize its state. backup, files, content of the files,.. 2. Build system ## cmake support ## the cmake effort must go on until all platforms are totally supported under cmake ## restructuring the source tree ## the source tree has lived a lot of evolution and need a deep cleaning ## restructure phapi ## phapi should be splitted into its subsystem libraries and be available as an autonomous development package. It should be easy to develop and test on phapi ## create "wengophone developer bundles" or "devpacks" ## these will greatly facilitate the entry of new developers in the community. The devpacks will allow them to download just what they need depending on what they want to work on. These devpacks could integrate precompiled binaries of some libreries ## simplify project compile time configuration ## Generate a config.h file instead of thousand -Ddefines ## monitor cpack evolution and use it ## cpack is a packaging tool that is developed in the cmake galaxy. It is not quite ready for production time but could help a lot ## improve buildbot usage ## we could have a master buildbot allowing all members of the community to share CPU/Compiling time. This could be a way to have downloadable binaries for many targets ## split some subprojects into separate trac instances ## these libraries, such as webcam, could have a separate Trac instance. If well done, this could improve re-use and modularization of the code ## rebranding entry points ## it is necessary to continue adding the good entry points to the build system to help and facilitate rebranding ## packaging ## document and help packagers of the different distributions collaborate on their packaging scripts ## subsystem identification ## it is necessary to identify subsystems, move them, as much as we can, as separate packages and identify maintainers when necessary ## IM network choices at compile time ## it should be possible to compile the WengoPhone with different choices for the default IM networks ## V2 of update system ## it is necessary to improve the versioning system and the auto-update system. + a documentation is necessary 3. Quality assurance ## unit test framework ## choose and document a reference unit test framework (boost, ctest,..) ## constraints on code conventions ## tools that would check automatically that the coding conventions are respected ## ability for the users to score calls ## a web service could be called with a ranking of quality given by the user (a sort of MOS score) ## automate GUI testing ## we have to find a way to automate GUI tests. There must be a way to re-use projects such as DogTail for example ## better logging support ## it is necessary to improve our logging capacity : either via log files, an sqlite database of logs or via a better crash dump analysis engine. The user should be able to participate in a sort of "talkback" initiative. It is also necessary to remove logging in production releases. Translation of logs is not a priority but has been discussed 4. Usability ## intermediary window size for video frame ## in the WengoPhone classic, the usability for video was better. A mid-sized frame for video could be opened with a more optimal size. Currently only full screen or tab-like are available ## mute sound button ## a quick access to the MUTE speakers feature, so that no sound can be heard when pressed ## better error handling and status information ## a better and more uniform usability solution should be found for sso, IM connect, SIP connect, blocked contacts,..The audio status button seem inconsistant with the other status buttons ## contact auto-completion ## a contact auto-completion feature, in link with the contact list, should be implemented in the phone bar ## call tab version 2 ## better integrate DTMF, conference, .. ## direct SMS from the chat window ## this will allow for the possibility to directly send SMS from the chat window ## reduced/quick access mode ## the idea here is to have a reduced WengoPhone that gives access to the main features that the user needs in view ## ability to start/stop/restart the video stream during a call session ## this will give the user more control over the video part of the call ## direct call from the chat window ## the user can start a call directly from the chat window. The avatars are used to show the images of the caller and the callee ## better freedesktop knowledge and support ## try as much as possible to follow freedesktop guidelines and participate in areas where we can provide input and support ## visual clue for blocked contacts ## currently there is no visual clue that a contact is blocked and it is hard to know. See gaim client for an example of how this can be done ## integrate modifications proposed by Tristan ## Tristan has proposed a set of usability modifications on http://dev.openwengo.com/trac/openwengo/trac.cgi/wiki/WengoPhoneNgUsability ## default avatar in contact list ## it is necessary to propose a default avatar when adding a user on the contact list ## improve video toggling ## currently a webcam icon is used to toggle on/off the authorization to use the webcam during a call. It does not seem to be clear enough ## remove video flip option on screen ## the "video flip" option is maybe not necessary on the image. It could be put in the configuration panel ## visual clue for profil bar unfolding ## users seem to have a hard time understanding that they can unfold the profil bar by clicking on it. A visual clue could help make this feature used ## hold/resume actions more visible ## currently; hold/resume is only available through a right click on a call tab. It is necessary to give more chances to the users to know these features ## sfp and multifiles ## it currently possible to send several files at the same time through a drag&drop in the chat editor. It is necessary to make this more clear and to allow the selection of multiple files in the file editor 5. Media quality ## optimize video rendering backends ## we already have code for directshow and opengl. It could be used selectively on the different platforms to optimize the rendering ## video codec plugin system in phapi, and new plugins ## theora is a must, h264 could be very interesting too. Code is already well advanced thanks to a patch from Mathias Schneider ## ability to modify codec list ## in the configuration panel, the user should be able to configure the choice of codecs ## optimize theory of signal graph (AEC, VAD/CNG,..) ## there are already echo cancellation and vad/cng bricks in the graph, but they should be tested and optimized ## automatic gain control for audio ## audio volume level (MIC and SPK) should auto-adjust to maximize/optimize the audio experience of the user ## RTCP, available bandwidth and codec adaptation ## codec negociation could be adapted to the current available bandwidth. Codec parameters and RTP stack could also adapt to RTCP exchanged values ## spatialization of the sound ## new audio techniques can make it possible to spatialize the sound and have the impression that someone is situated somewhere in the room. This can enhance the conference mode ## adaptative video framerate ## the idea is to make the video framerate adaptative according to the different parameters of the call (frame size, full screen or not,.. ## automated or semi-automated audio tests ## it should be possible to automate some tests related to audio quality ## assymetric video size negociation ## it should be possible for one end to decide to send lower or bigger image size. Currently it is hardcoded to 176x144 6. Interoperability ## QQ Instant Messaging interop ## QQ is the most used IM network in China. ## SIP platform reference ## try to develop a set of reference accounts on different SIP platforms that will be used for interoperability tests ## single IM network conference ## add the conference chat feature for the cases when all participants belong to the same network ## file transfers through MSN, ICQ, Yahoo ## currently file transfer is only done over SIP for Wengo SIP accounts. The idea is to be able to do file transfers through other networks ## wplug Skype interop ## audio calls, video calls, IM and contact management through the Skype API (or not through the Skype API, depending on the status of this subject around the world) ## wplug IAX ## audio and video calls through the Inter-Asterisk-Exchange protocol. This is already well advanced thanks to the work of Yann Biancheri during the OpenWengo Code Camp ## ability to have several phone lines belonging to different networks ## this will be a way connect different phone lines and place calls through SIP, IAX, Skype and receive calls at the same time ## audio and video interop with MSN ## This will enable users to place direct calls to their MSN buddies with audio and video ## multi IM network conference ## users will be able to bridge chat conference across different IM networks (SIP, Jabber, MSN, ICQ) ## audio and video interop with Google Talk ## This will enable users to place direct calls to their Google Talk buddies with audio and video ## muti network audio conference ## WengoPhone could be used as a multi-network (SIP, MSN, GoogleTalk,..) conference bridge for conference with a small number of participants ## SIP UA interop matrix ## try to make WengoPhone interoperate with as many other SIP UAs as possible (the SIP UA matrix). This could be done through the wengo SIP gateway or in a direct fashion. This is necessary for audio and video calls at least ## Gadu Gadu Instant Messaging interop ## Gadu Gadu is an IM netwok ## refactor and improve inter IM network smiley and markup conversions ## each IM network has its own rules for smileys and markup (bold, color,..). It is necessary to have a conversion matrix and unit tests for these conversions if we want to reach a very good quality ## Asterisk interop package for audio and video ## the idea is to check that asterisk and WengoPhone can work together without any problem (there have been problems in the past). Writing a tutorial on this might help ## make direct SIP calls work ## call made to a SIP IP address should work when the outbound proxy is disabled ## ability to define a SIP account in the WengoPhone ## this should make it more easy for WengoPhone users to use a SIP account on a SIP network other than Wengo. The login/password page should give the possibility to enter a direct sip account ## adaptative ptime ## currently the packetisation time of the WengoPhone is limited to 20ms. It is necessary to at least accept 30ms to allow for more interoperability ## handle MWI messages ## "Message Waiting Indicator" is a way, through SIP NOTIFY, to inform a SIP client of an event ## TURN / ICE feature ## implement an ICE stack inside phapi to help discover some NAT/Firewall configurations 7. i18n ## launchpad usage ## launchpad is a web community tool used for translations of many open source projects. It has pros and cons and WengoPhone was integrated in it at the time of the 2.0 release. More work on that is needed to find the best solution ## LOCALEs handling ## it is necessary to check and document what the WengoPhone does with LOCALEs ## utf-8 and iconv ## it is necessary to have a cross-platform enconding conversion library in the WengoPhone to better handle cross-platform filesystem handling and web services ## add a launchpad shortcut ## we could add a launchpad shortcut on the language configuration panel to help people know that they can translate the software in their own language 8. Features ## media security - SRTP ## SRTP has already been integrated in the phapi code. It needs a graphical frontend to activate it ## IM chat history log ## the ability to log in html files the log of IM conversations ## cross-platform web browser widget ## this will give a cross platform way to integrate web pages into the software. Currently only the windows version has these features through the activeX IE component ## image browser (for example for the avatar choices) ## an image browsing library is necessary in order to improve the usability of the software when the user has to choose images among a library of images. Think of something like a simplified Nautilus browser. ## ability to take a pictures ## this feature would allow to take snapshots of the webcam or snapshots of the remote end during a video conversation in order to save these images on the harddrive or to use these images as avatars ## centralized online phonebook/buddylist ## this centralized phonebook is fetched from and edited on a central server. No development around synchronization and offline usage is necessary at this stage. This is the way the MSN buddy list works. ## call recorder ## this gives the ability to the user to record his audio and video calls ## better usability for international calls dialing (flags) ## we could use little flags for country aliases and dialing shortcut to help people understand which country they are trying to reach ## user defined ressource/device type ## the user should be able to define a ressource/a device type that can be used in the SIP messages to declare where the user is and what his context his (at home, at work,..). This is very similar to the concept of ressource in the Jabber world ## availability management ## availability is a key marketing concept in the communication over IP world. What type of communication media am I available for ? with whom ? at what time ? This involves rules for calls, rules for IM specifying automatic reactions that we want the software to have ## contact sharing / sending ## ability to share a contact with a friend or to send a contact to a friend ## near-end call/sms transfer option dedicated to mobility ## a checkbox labeled "I am available on my mobile phone only" is used by the softphone to make near-end transfers of calls and chats ## N-way conference calling, with N>3 ## implement a conference mode with more than 3 participants ## near-end call transfer ## this feature allows a user to program a call transfer on its end. If the call is not picked up then the WengoPhone may transfer it to another number ## Support for Location and Emergency Call Routing ## this is one of the ways to implement emergency call services ## massive audio and video conferencing ## this feature could allow big amounts of user to join a conference room and start communicating. Usability solutions need to be found to make this experience fun ## dynamic IM smileys ## IM smileys could be more funny. SVG is an option. a mini-plugin API is another option ## video smileys ## video smileys are a way to enhance video communications with funny filters. The main thing to find is a smart way to make it very usable ## bandwidth checker ## this feature would allow the WengoPhone to measure its available bandwidth. This could be use to optimize codec choices for example ## IM chat history search box ## ability to search inside the chat history 9. Plugins / scripting ## wplug VNC ## ability to do a VNC session with a contact. Some work already exists on that thanks to jbossart ## plugin: chess game ## this plugin allows 2 users to play a game of chess ## plugin: white board ## this plugin allows 2 users to share a white-board ## plugin: partition editor ## this plugin allows 2 user to co-edit a music partition (cf gscore) ## plugin: presence helper ## publish a lib that other applications could use to show the status of a contact ## plugin system in phapi ## this plugin system opens the door to SIP plugins with different SDPs ## scripting support ## finish, test and document the javascript scripting support that was added by Ovidiu Ciule during the OpenWengo Code Camp ## scripting support V2 ## this will give the ability to code little scripts in javascript to create new features for the WengoPhone. A proof of concept has already been done and is working (cf corresponding project of the OpenWengo code camp). Currently Ecmascript is supported, but other scripting languages could be added as well ## refactor existing features as plugin (SMS, call, chat,..) ## this could lead to a better model for plugins if we could consider that all the current features are plugins ## plugin architecture ## a plugin architecture would lead to a better software architecture and also new ways for contributors to enter into the project ## file sharing ## users should be able to browser a remote repository to pick up files ## plugin: cobrowsing ## this plugin gives the ability to do co-browsing, or distant browsing. For instance, the caller navigates through the web, or through a document, and the other end of the call sees this browsing. A virtual mouse can move over the window to show some things on the screen ## plugin: smart layer ## both participants of a call see a common image or document, and they can annotate it in an overlay 10. Ancillary applications & tools ## audio/video configuration wizard ## it should give an easy way for users to check their audio and video settings in the WengoPhone. It could certainly be developed as an external application ## outlook contact list import / export ## it is a way to import and export contact from outlook into the WengoPhone. It could be developed as an external application converting datas to and from the 2 database formats ## outlook plugin - shortcut to place calls ## this outlook plugin can be installed in outlook to add a "place call" feature upon a right click on a number ## thunderbird plugin - shortcut to place calls ## this thunderbird plugin can be installed in outlook to add a "place call" feature upon a right click on a number ## autonomous net discovery application ## an application based on the same objects as the WengoPhone that could help tracking down what choices are made by the network discovery classes ## audio audit tool under Linux ## the idea is to write a re-usable script that members of the community could use to share their Linux audio configuration in order to understand why sound does not work on some configuration. At a later stage, this script could be used to auto-discover the best strategy for sound support on a given machine ## diagnose network environment ## this tool could help get a better view of a given network environment and understand why a given feature does not work on a given machine ## OS Widgets and Toys ## see how WengoPhone could integrate as a widget in the different existing frameworks for this (MacOS X, Yahoo, Google,..) ## openoffice plugin - shortcut to place calls ## this openoffice plugin can be installed in openoffice to add a "place call" feature upon a right click on a number 11. Skinning / branding ## audio smileys ## new SVG renderer that will enable users to develop new funny audio smiley sets ## skins & templates ## using new features of QT 4.2 it is possible to have CSS like skins developed for the WengoPhone 12. Web features ## tool to manage audio sets ## this will give a way to a user to choose easily over the web among prepared audio sets for their wengophone (ringing tones, IM notifications,..) ## voicemail management ## this feature will help users to manage their voicemail assistant (delete messages, listen to messages,..) 13. Architecture ## phapi refactoring ## this refactoring is necessary to clean and simplify the external API of phapi ## virtual winsock refactoring ## this refactoring will lead to a better model for NAT/Firewall traversal through tunneling techniques ## audio backend rendering refactoring. libsound refactoring ## there currently are some problems in WengoPhone/phapi because they each manage their own audio backends. Its is necessary to extract these issues in an external lib that could be shared by both projects ## DBUS API ## this will enable the services of the WengoPhone to be available over the DBUS API ## coip manager ## this is the main architectural refactoring that will lead to a better abstraction over the different types of session that users can enter into ## library for video rendering ## we need a way to optimize/integrate scaling and blitting techniques that exist on the different execution platforms (DirectX under Windows, XVideo under GNU/Linux, CodeVideo or CoreImage under MacOS X). Use OpenGL for specialFX. It is necessary to evaluate existing external libraries on this matter and decide what to do next ## use OS services when available to store login/password ## there is such a service called KeyChain under MacOS X. Most applications use this service to manage login/passwords ## SIP and P2P ## try to see how recent developments about SIP and P2P could be integrated into the WengoPhone model ## better notification backend ## Notifications should be more integrated with the different OS. On MacOS X, services such as Growl should be used. A similar notification system should be made to ease integration ## xpi, xulrunner and firefox ## it is interesting and necessary to continue the effort regarding the XUL galaxy regarding an alternative presentation ## phapi python binding ## the current phapi python binding is working correctly. It is necessary to make a cross-platform example of this way of using phapi ## develop an autonomous Image class ## it seems interesting to develop an Image class that would be independent of QT. it could be useful for the DesktopService class ## check QT 4.2 and gaim co-existence ## in QT 4.2, a new event model uses glib when possible. This apparently clashes with the way gaim uses the glib event loop ## sqlite backend wrapper ## it would be interesting to find a helper library to wrap sqlite in a thread safe way, and use sqlite as a generic backend storage. Mozilla has done this in firefox 2.0 with success 14. Portability ## Linux effort ## this effort will try to eradicate the last long standing issues that exist under linux ## Linux: make it ring ## under linux, the WengoPhone is not ringing when receiving an entering call ## MacOS X effort ## this effort will try to eradicate the last long standing issues that exist under MacOS X ## MacOS X: universal binary ## many Mac users do not know which Mac architecture they have. WengoPhone as a universal binary could greatly enhance installation experience ## x86_64 port ## make the WengoPhone work under the x86_64 architecture ## libraries and embedded constraints ## see how the whole WengoPhone could be launched and started on embedded targets such as Windows Mobile Edition ## port glib to a WindowsCE target ## glib is known to have problems to be ported to WindowsCe targets. We need to know more on that and try to do it since glib is a good C library that it could be nice to choose for our cross platform C developments 15. Bugs/Enhancements ## Netlib / Network discovery optimization ## The idea here is to clarify the NAT/Firewall traversal techniques for all the different types of sessions ## improve the profile management ## the profile management that is currently possible inside wengophone could be improved ## V3 of configuration auto-discovery ## better cache algorithm, manage IM accounts through the web,.. ## MacOS X: DMTF sound is crap ## apparently there is a problem under MacOS X with DTMF sounds. This needs to be checked ## contact list flickering ## the contact list is flickering as soon as too many contacts are in the contact list ## Linux: improve audio settings selection ## there seem to be many problems in the audio settings configuration panel under Linux. It is necessary to debug them ## hold/resume on calls ## there seem to be some problems around hold/resume in the WengoPhone. It is necessary to do test sessions to clarify and evaluate this bug ## sfp and directories ## it should be impossible to send a directory on the gui. Currently nothing happens when "sending" a directory ## Linux: improve resampling ## with some audio cards under linux, resampling gets crazy and the sound is crappy. It is necessary to debug this ## MacOS X: evaluate and improve overal impression ## some users seem to still have problems with mac versions. It is necessary to try and fix these problems 16. Third-party ## re-evaluate http://datafloater.de/unicap/ ## this webcam capture library under linux has several interesting features that could make it a good candidate as one of the webcam backends ## compile without ffmpeg ## it is necessary to have a target that allows to compile without ffmpeg ## get rid of openssl ## the idea here would be to switch to another SSL library because it seems that lighter libraries exist with a direct GPL licence ## ortp upgrade ## ortp has been forked a long time ago and it could be interesting to try and wrap the current ortp and try to have patches accepted upstream ## 3rd party maintainers ## it is necessary to identify for each 3rd party library who is the WengoPhone maintainer (checking for new revisions, checking for avaliable versions on mainstream linux distributions,..) ## 3rd party discovery script under linux ## we need to have a script that introspects a given linux box to write in a file what are the versions of the 3rd party libraries that WengoPhone uses that are installed on the system. This can certainly be shared with the FindXXXX cmake scripts _______________________________________________ Wengophone-devel mailing list Wengophone-devel@lists.openwengo.com http://dev.openwengo.com/mailman/listinfo/wengophone-devel