Posted: Sat May 30, 2009 2:31 am Post subject: [asterisk-dev] Customizable Voicemail Menu
Giuseppe Sucameli wrote:
Quote:
Hi,
I'm Giuseppe Sucameli and I'm taking part to GSoC 2009 for the Asterisk
Project.
Hi Giuseppe!
Quote:
The alternative application minivm adds some degree of configurability,
but this has to go in the dialplan configuration file, which may not be
available to unprivileged users. In any case, mixing the voicemail and
dialplan
configuration is undesirable in terms of managing configuration files.
I'm not really sure why you would necessarily want the voicemail menu
configuration to be available to non-privileged users. Also, I don't
see why "mixing the voicemail and dialplan configuration" is any more
complex from a management standpoint than throwing:
#include "voicemail-menus.conf"
at the bottom of my extensions.conf.
Quote:
We can keep the voicemail configuration separate from the dialplan,
so the dialplan writer will only have to dispatch the call, and the
voicemail
config will do the rest.
Then one can import/write/modify the voicemail config without having to
bother (or needing to have permission) to touch the dialplan itself.
So the idea is that users (of the voicemail system) can modify the menu
layouts for themselves? Or just that a non-privileged user on the
server could be made able to change voicemail menu layout?
Quote:
> voicemail_menu.conf.txt
is an example of config file to customize the voicemail menu
One of my main concerns with this sample configuration is that we are
talking about adding another domain specific language to asterisk
(extensions.conf and AEL2 being the two biggies that spring to mind). I
am sure that when this project is all said and done, the
voicemail.conf.sample file will have a functionally equivalent menu
layout to what the VoicemailMain() application provides today, but in
order to get in and modify it you are going to need to know another
specialized set of statements, commands, and conventions. This also
means that we are going to need year another DSL parser in the codebase.
I really am curious to know how much of the current VoiceMailMain
application could be duplicated in dialplan with MiniVM rather than with
a new DSL and overhaul of app_voicemail.so (although it is in dire need
of that... but for different reasons :)). I have a feeling it could be
done with fairly little effort, even if a few new MiniVM applications or
functions needed to be cooked up. I clearly am not someone you need to
convince, but I'm just not really seeing how this is that big of a win
over what we have today.
Quote:
Thanks for your attention.
I hope you don't take my comments too negatively. It's great to have
you aboard! :-)
Posted: Sat May 30, 2009 4:14 am Post subject: [asterisk-dev] Customizable Voicemail Menu
On Fri, May 29, 2009 at 6:23 PM, Giuseppe Sucameli <brush.tyler@gmail.com (brush.tyler@gmail.com)> wrote:
Quote:
Hi,
I'm Giuseppe Sucameli and I'm taking part to GSoC 2009 for the Asterisk
Project.
Welcome aboard!
Quote:
My proposal is adding fully configurable menus to the Asterisk voicemail
application.
In the current app_voicemail the menu is built into the C code and difficult
to modify.
The alternative application minivm adds some degree of configurability,
but this has to go in the dialplan configuration file, which may not be
available to unprivileged users. In any case, mixing the voicemail and dialplan
configuration is undesirable in terms of managing configuration files.
I agree with Sean Bright and not sure why unprivileged users would be modifying anything on the server. Could you elaborate on what your goal is on this?
Quote:
We can keep the voicemail configuration separate from the dialplan,
so the dialplan writer will only have to dispatch the call, and the voicemail
config will do the rest.
Then one can import/write/modify the voicemail config without having to
bother (or needing to have permission) to touch the dialplan itself.
Two file are attached (only text/plain files):
Quote:
brief.txt
explain the voicemail_menu.conf file structure and its the most
important functionality
Quote:
voicemail_menu.conf.txt
is an example of config file to customize the voicemail menu
There are some inconsistencies with your example which makes it a little hard to follow. You have the start = ast_vm but no ast_vm section defined, did you mean vm_menu? Also a reference to vm_setup_options when I think you meant vm_opt.
Quote:
I hope the explanation is average, maybe I have write too much or few :)
I wait for your questions and proposals.
The detail was great, thanks!
Quote:
Thanks for your attention.
I am really looking forward to customization of voicemail. It will make migrating customers much easier. However, I think this is a bit in depth. So here is an idea. For basic users: Make it so that you can change the digits dialed for the current menu items, and have the prompts say the right thing. For advanced users: export the menu items as dialplan functions (maybe have a global variable in voicemail.conf to turn this on/off?) so that users can create a more dynamic voicemail application if they so choose. It would also be nice to add some more (admin controlled) abilities for the users to change more options (like turning on/off attachments for your mailbox)
Whatever happens, I am glad to see this project moving forward! I would be happy to help test.
Posted: Sat May 30, 2009 8:45 am Post subject: [asterisk-dev] Customizable Voicemail Menu
On Fri, May 29, 2009 at 10:00:26PM -0700, Jonathan Thurman wrote:
Quote:
On Fri, May 29, 2009 at 6:23 PM, Giuseppe Sucameli <brush.tyler@gmail.com>wrote:
> Hi,
> I'm Giuseppe Sucameli and I'm taking part to GSoC 2009 for the Asterisk
> Project.
>
Welcome aboard!
>
> My proposal is adding fully configurable menus to the Asterisk voicemail
> application.
>
> In the current app_voicemail the menu is built into the C code and
> difficult
> to modify.
> The alternative application minivm adds some degree of configurability,
> but this has to go in the dialplan configuration file, which may not be
> available to unprivileged users. In any case, mixing the voicemail and
> dialplan
> configuration is undesirable in terms of managing configuration files.
>
I agree with Sean Bright and not sure why unprivileged users would be
modifying anything on the server. Could you elaborate on what your goal is
on this?
The dialplan also provides ways of letting outside output control the
dialplan, if this is what the local administrator's intention. There are
pitfalls in doing that and it would be a shame if they would have to
re-invent the wheel here.
Quote:
>
> We can keep the voicemail configuration separate from the dialplan,
> so the dialplan writer will only have to dispatch the call, and the
> voicemail config will do the rest.
> Then one can import/write/modify the voicemail config without having to
> bother (or needing to have permission) to touch the dialplan itself.
A single, central configuration is not something you'd want the users to
touch.
The dialplan has currently two ways of saving "configuration":
1. the astdb . This is generally a hirarchial storage. Initializing it
is tricky. But it is useful for saving users preferences.
2. Global variables. The problem with them is that you have one
namespace for everything. But they're easy to use.
Quote:
I am really looking forward to customization of voicemail. It will make
migrating customers much easier. However, I think this is a bit in depth.
So here is an idea. For basic users: Make it so that you can change the
digits dialed for the current menu items, and have the prompts say the right
thing. For advanced users: export the menu items as dialplan functions
(maybe have a global variable in voicemail.conf to turn this on/off?) so
that users can create a more dynamic voicemail application if they so
choose. It would also be nice to add some more (admin controlled) abilities
for the users to change more options (like turning on/off attachments for
your mailbox)
MiniVM?
What is MiniVM missing?
1. app_voicemail Just Works by calling a single app, whereas minivm
requires a complex dialplan.
2. MiniVM does not support voicemail through ODBC or IMAP
3. I18N: The code of app_voicemain has quite a few language-specific
cases.
(1) is by design. I believe that there are good enough samples. Was this
ever a problem to anybody recently?
(2) indeed requires major work. Any hope of reusing some of
app_voicemail's code there?
Posted: Sat May 30, 2009 9:19 am Post subject: [asterisk-dev] Customizable Voicemail Menu
Quote:
>
MiniVM?
What is MiniVM missing?
1. app_voicemail Just Works by calling a single app, whereas minivm
requires a complex dialplan.
2. MiniVM does not support voicemail through ODBC or IMAP
3. I18N: The code of app_voicemain has quite a few language-specific
cases.
Quote:
(1) is by design. I believe that there are good enough samples. Was
this
ever a problem to anybody recently?
The idea behind minivm was just to build building blocks to enable
an extremely high degree of customization in the dialplan, which is
where we configure this kind of functions. Inventing yet another new
language is not the right way forward.
Quote:
(2) indeed requires major work. Any hope of reusing some of
app_voicemail's code there?
Yes, of course. With the addition of using channel datastores
that would be really easy. At the time I wrote Minivm there was a lot
of discussion about a common storage model, so I did not explore
the odbc/imap path much, waiting for that API.
Quote:
(3) is an interesting issue of its own.
I don't really agree, minivm is much better in supporting language
codes and date syntaxes. You can have multiple mail templates
in different languages, and set a locale code for correct date formats
in the e-mail.
The current set of minivm apps was built primarily for voicemail
over e-mail and thus did not have the prompt problems.
Adding the prompt logic would be a piece of cake.
I would really love someone
- Adding channel datastores to minivm to carry account info between apps
- Adding missing building blocks so that you can build a full
voicemail app
- Adding different storage methods for voicemail
/O
_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.com--
Posted: Sat May 30, 2009 2:23 pm Post subject: [asterisk-dev] Customizable Voicemail Menu
2009/5/30 Sean Bright <sean.bright@gmail.com>:
Quote:
I'm not really sure why you would necessarily want the voicemail menu
configuration to be available to non-privileged users. Also, I don't
see why "mixing the voicemail and dialplan configuration" is any more
complex from a management standpoint than throwing:
#include "voicemail-menus.conf"
at the bottom of my extensions.conf.
So the idea is that users (of the voicemail system) can modify the menu
layouts for themselves? Or just that a non-privileged user on the
server could be made able to change voicemail menu layout?
2009/5/30 Giuseppe Sucameli <brush.tyler@gmail.com>:
Quote:
> We can keep the voicemail configuration separate from the
> dialplan, so the dialplan writer will only have to dispatch the call,
> and the voicemail config will do the rest. Then one can
> import/write/modify the voicemail config without having to bother
> (or needing to have permission) to touch the dialplan itself.
For unprivileged users I intend users with server access but which have a
restricted scope. The dialplan is the main configuration file of asterisk,
instead admin can demand the manage of voicemail to another user.
The inclusion in the dialplan by #include directive is dangerous in this
sense.
2009/5/30 Sean Bright <sean.bright@gmail.com>:
Quote:
One of my main concerns with this sample configuration is that we are
talking about adding another domain specific language to asterisk
(extensions.conf and AEL2 being the two biggies that spring to mind).
This is the dev mailing list aim: discussing for new code development.
This proposal is as an extension of actual app_voicemail, not a replacement
by a new voicemail.
About the language, I have proposed a possible solution. We can discuss
which is best way to create a config file for voicemail menu using existing
config languages, and when we'll find a solution using it.
2009/5/30 Jonathan Thurman <jthurman42@gmail.com>:
Quote:
> Two file are attached (only text/plain files):
> > brief.txt
> explain the voicemail_menu.conf file structure and its the
> most
> important functionality
>
> > voicemail_menu.conf.txt
> is an example of config file to customize the voicemail
> menu
There are some inconsistencies with your example which makes it a little
hard to follow. You have the start = ast_vm but no ast_vm section defined,
did you mean vm_menu? Also a reference to vm_setup_options when I think you
meant vm_opt.
Oops, your right... start = vm_menu and vm_setup_options is vm_opt.
I've send the message at 3.23 AM :)
2009/5/30 Jonathan Thurman <jthurman42@gmail.com>:
Quote:
I am really looking forward to customization of voicemail. It will make
migrating customers much easier. However, I think this is a bit in depth.
So here is an idea. For basic users: Make it so that you can change the
digits dialed for the current menu items, and have the prompts say the right
thing. For advanced users: export the menu items as dialplan functions
(maybe have a global variable in voicemail.conf to turn this on/off?) so
that users can create a more dynamic voicemail application if they so
choose. It would also be nice to add some more (admin controlled) abilities
for the users to change more options (like turning on/off attachments for
your mailbox)
It's hard, but is a nice idea. However in this moment is a lot in depth.
(2) indeed requires major work. Any hope of reusing some of
app_voicemail's code there?
Yes, is as an extension of app_voicemail functionality.
2009/5/30 Olle E. Johansson <oej@edvina.net>:
Quote:
> (1) is by design. I believe that there are good enough samples. Was
> this
> ever a problem to anybody recently?
The idea behind minivm was just to build building blocks to enable
an extremely high degree of customization in the dialplan, which is
where we configure this kind of functions. Inventing yet another new
language is not the right way forward.
Ok, I agree.
Quote:
> (3) is an interesting issue of its own.
I don't really agree, minivm is much better in supporting language
codes and date syntaxes. You can have multiple mail templates
in different languages, and set a locale code for correct date formats
in the e-mail.
I would really love someone
- Adding channel datastores to minivm to carry account info between apps
- Adding missing building blocks so that you can build a full
voicemail app
- Adding different storage methods for voicemail
In the next GSoC maybe. The next year I'll remember your proposal of love :)
Seriously, I'll wait for your ideas.
--
Giuseppe Sucameli
_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.com--
Posted: Sat May 30, 2009 4:36 pm Post subject: [asterisk-dev] Customizable Voicemail Menu
On Sat, May 30, 2009 at 8:05 AM, Giuseppe Sucameli <brush.tyler@gmail.com (brush.tyler@gmail.com)> wrote:
Quote:
2009/5/30 Sean Bright <sean.bright@gmail.com (sean.bright@gmail.com)>:
> I'm not really sure why you would necessarily want the voicemail menu
> configuration to be available to non-privileged users. Also, I don't
> see why "mixing the voicemail and dialplan configuration" is any more
> complex from a management standpoint than throwing:
>
> #include "voicemail-menus.conf"
>
> at the bottom of my extensions.conf.
>
Quote:
So the idea is that users (of the voicemail system) can modify the menu
> layouts for themselves? Or just that a non-privileged user on the
> server could be made able to change voicemail menu layout?
>
2009/5/30 Giuseppe Sucameli <brush.tyler@gmail.com (brush.tyler@gmail.com)>:
>> We can keep the voicemail configuration separate from the
>> dialplan, so the dialplan writer will only have to dispatch the call,
>> and the voicemail config will do the rest. Then one can
>> import/write/modify the voicemail config without having to bother
>> (or needing to have permission) to touch the dialplan itself.
For unprivileged users I intend users with server access but which have a
restricted scope. The dialplan is the main configuration file of asterisk,
instead admin can demand the manage of voicemail to another user.
The inclusion in the dialplan by #include directive is dangerous in this
sense.
2009/5/30 Sean Bright <sean.bright@gmail.com (sean.bright@gmail.com)>:
> One of my main concerns with this sample configuration is that we are
> talking about adding another domain specific language to asterisk
> (extensions.conf and AEL2 being the two biggies that spring to mind).
This is the dev mailing list aim: discussing for new code development.
This proposal is as an extension of actual app_voicemail, not a replacement
by a new voicemail.
About the language, I have proposed a possible solution. We can discuss
which is best way to create a config file for voicemail menu using existing
config languages, and when we'll find a solution using it.
2009/5/30 Jonathan Thurman <jthurman42@gmail.com (jthurman42@gmail.com)>:
>> Two file are attached (only text/plain files):
>> > brief.txt
>> explain the voicemail_menu.conf file structure and its the
>> most
>> important functionality
>>
>> > voicemail_menu.conf.txt
>> is an example of config file to customize the voicemail
>> menu
>
> There are some inconsistencies with your example which makes it a little
> hard to follow. You have the start = ast_vm but no ast_vm section defined,
> did you mean vm_menu? Also a reference to vm_setup_options when I think you
> meant vm_opt.
Oops, your right... start = vm_menu and vm_setup_options is vm_opt.
I've send the message at 3.23 AM :)
Been there...
Quote:
2009/5/30 Jonathan Thurman <jthurman42@gmail.com (jthurman42@gmail.com)>:
> I am really looking forward to customization of voicemail. It will make
> migrating customers much easier. However, I think this is a bit in depth.
> So here is an idea. For basic users: Make it so that you can change the
> digits dialed for the current menu items, and have the prompts say the right
> thing. For advanced users: export the menu items as dialplan functions
> (maybe have a global variable in voicemail.conf to turn this on/off?) so
> that users can create a more dynamic voicemail application if they so
> choose. It would also be nice to add some more (admin controlled) abilities
> for the users to change more options (like turning on/off attachments for
> your mailbox)
It's hard, but is a nice idea. However in this moment is a lot in depth.
Quote:
>> (3) is an interesting issue of its own.
> I don't really agree, minivm is much better in supporting language
> codes and date syntaxes. You can have multiple mail templates
> in different languages, and set a locale code for correct date formats
> in the e-mail.
>
Quote:
I would really love someone
> - Adding channel datastores to minivm to carry account info between apps
> - Adding missing building blocks so that you can build a full
> voicemail app
> - Adding different storage methods for voicemail
These are crucial in my opinion. While for some users would be very upset if they could not get voicemail as email, others don't have regular access to a computer...
Quote:
Seriously, I'll wait for your ideas.
I was trying to get out two main ideas:
1. At a minimum, allow administrators to change what digits do what per menu as they exist on the current VoiceMailMain (Not to difficult)
2. Use app_minivm as the groundwork to rewrite app_voicemail as building blocks. Export those to the dialplan and use them internally by VoiceMain / VoiceMailMain to keep it simple. Depricate MiniVM, or make it a wrapper for the new app_voicemail. (MiniVM is on the right track, but as a final solution in a merger I think app_voicemail is a better name) Then we have all the functionallity without having to maintain multiple code bases.
If you want feature requests on top of all that work, let me know. =)
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum