|
|
|
@ -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
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|