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

Reply via email to