add more project ideas
authorRussell Bryant <russell@russellbryant.com>
Tue, 10 Mar 2009 19:23:41 +0000 (19:23 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 10 Mar 2009 19:23:41 +0000 (19:23 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@180859 65c4cc65-6c06-0410-ace0-fbb531ad65f3

doc/google-soc2009-ideas.txt

index 80bed5f..43bee26 100644 (file)
@@ -42,7 +42,6 @@ significant experience with the Asterisk code base.
     - http://lists.digium.com/pipermail/asterisk-dev/2008-October/034700.html
 
    Specific project ideas in this area are listed here:
-   
 
    a) Create a generic "data get" layer for Asterisk components to be able to
       expose data that they maintain.  Currently, modules implement specific
@@ -56,7 +55,7 @@ significant experience with the Asterisk code base.
       with the "data put" interface in part b.
 
       Difficulty - 2
-      Mentor     - TBD
+      Language   - C
 
    b) Create a generic "data put" layer for Asterisk components to allow
       external interfaces to update configuration items, as opposed to having
@@ -67,7 +66,7 @@ significant experience with the Asterisk code base.
       "data get" interface in part a.
 
       Difficulty - 2
-      Mentor     - TBD
+      Language   - C
 
    c) Improve the performance of cache handling in the event core.  The event
       API in Asterisk provides a generic interface for subscribing to and
@@ -81,7 +80,7 @@ significant experience with the Asterisk code base.
       new storage mechanism that is more efficient.
 
       Difficulty - 3
-      Mentor     - TBD
+      Language   - C
 
    d) Develop a method for federating Asterisk servers using distributed events
       with a transport suitable for communication beyond a LAN.  The current
@@ -92,7 +91,7 @@ significant experience with the Asterisk code base.
       protocol such as XMPP, or something else if deemed appropriate.
 
       Difficulty - 2
-      Mentor     - TBD
+      Language   - C
 
    e) Implement a method that makes it very easy to add synchronous hooks 
       throughout the code base.  Hooks are arbitrary callbacks within the 
@@ -100,14 +99,103 @@ significant experience with the Asterisk code base.
       behavior.  While the dialplan allows applications to control much of the 
       asterisk behavior, hooks allow for business logic to be applied to 
       situations that are not associated with a call (eg: a sip registration 
-      hook could allow time-goverened registration period), or for situations 
-      that occur during the execution of a diaplan application (eg: codec 
+      hook could allow time-governed registration period), or for situations 
+      that occur during the execution of a dialplan application (eg: codec 
       negotiation hook to apply business logic to codecs proposed in the middle 
       of a Dial command, or a transfer hook to execute business logic when a 
       SIP REINVITE is received).
 
       Difficulty - 3
-      Mentor - TBD
+      Language   - C
+
+2) This section contains projects related to Voicemail support in Asterisk.
+
+   a) Extract the support for storage backends into an API to reduce code
+      complexity and its ability to be reused.  The current Asterisk voicemail
+      application supports storing voicemail on the filesystem, in a database
+      via ODBC, and on an IMAP server.  All of the storage code should be pulled
+      out into a form such that it makes the current app_voicemail easier to
+      maintain, but also allows the backend storage code to be used in a next
+      generation voicemail implementation, or potentially other things in
+      Asterisk that would like to use these interfaces.
+
+      Difficulty - 3
+      Language   - C
+
+   b) One feature that has been widely desired for Asterisk voicemail is the
+      ability to customize menu layout.  This project would be to improve
+      existing code, or develop a new voicemail application that supports
+      customizable menu layout.  The app_minivm module currently in Asterisk
+      is one way of approaching this project, which is to break up current
+      Voicemail functionality into smaller applications to make it easier to
+      build a custom voicemail system in the dialplan.  Luigi Rizzo had a
+      student work on a project to create a new voicemail system that included
+      these features that has some work left to be completed.
+
+      Difficulty - 4
+      Language   - C
+
+3) This section includes projects related to improving the Asterisk console and
+   logging interfaces.
+
+   a) Improve the way "verbose logging" works in Asterisk.  Currently, the
+      Asterisk console and logging system only supports a single verbose level.
+      However, it would be extremely useful to allow a verbose setting per
+      console, and per log file that verbose output is being sent to.
+
+      Difficulty - 1
+      Language   - C
+
+   b) Improve Asterisk logging such that advanced filtering is available at the
+      console so that output related to a single call is available without
+      having to see the output for other calls.  Lack of support for debugging
+      individual calls has been a long standing difficulty for Asterisk
+      administrators on busy systems.
+
+      Difficulty - 1
+      Language   - C
+   
+   c) In addition to being used as an administrative interface, the Asterisk
+      console can also be used for making calls using the system audio and
+      video interfaces.  In this sense, Asterisk can be used as a highly
+      configurable console based soft phone.  Luigi Rizzo and some of his
+      students have put a lot of work into adding video support to the Asterisk
+      console when being used as a softphone.  This project would be to work
+      with Luigi to continue this effort to improve the GUI that opens up for
+      handling calls.  This would involve adding some buttons to handle calls
+      and contact lists, controlling the active audio source for a call, and
+      adding standard telephone buttons.
+
+      Difficulty - 3
+      Language   - C
+
+4) This section includes projects related to internationalization.
+
+   a) One of the projects that Luigi Rizzo previously worked on was replacing
+      the "say.c" code that implemented language support for saying dates and
+      times in C code, with an implementation that allows additional languages
+      to be added via a configuration file with special syntax.  This project
+      would be to work with Luigi to enhance this code to better handle
+      languages where words change in multiple ways depending on gender and
+      number, and also adding more languages to the sample configuration file
+      that is distributed with Asterisk.
+
+      Difficulty - 3
+      Language   - C
+
+5) This section includes projects related to portability to other operating
+   systems.
+
+   a) Asterisk has been ported to cygwin a couple of times over the years, but
+      tends to bitrot due to lack of continued support by developers.  This
+      project would be to revisit the current state of cygwin support and get
+      it working well in Asterisk 1.6.  It should already compile, or be very
+      close to it.  However, there is some testing to be done to ensure that
+      things work properly.  Also, it would be most excellent to get a console
+      channel driver functioning in cygwin (chan_oss, chan_console, etc.).
+
+      Difficulty - 3
+      Language   - C
 
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------