Summary:ASTERISK-16948: [patch] MeetMe feature for caching name recordings
Reporter:Andrew Parisio (parisioa)Labels:
Date Opened:2010-11-12 03:08:57.000-0600Date Closed:2010-11-24 17:46:16.000-0600
Versions:Frequency of
Environment:Attachments:( 0) app_meetme_patch.txt
( 1) meetme_final_patch_v.diff
( 2) meetme_final_patch.diff
Description:I was looking for a feature to cache the recording of your name for when you use options I or i in meetme that announces a users name on entering and exiting a conference, this way users wouldn’t have to do this every time.  My goal with this is to auto-join members to a conference without them having to enter a pin or say their name, yet still have their name announced to the conference.

Having never created a patch for asterisk I probably didn’t do this correctly, but in my 1.8 dev server it works great.  I built this against trunk.

Some of the things I’m not sure about:
1) I used the voicemail greet file that is saved in spool/voicemail/default/user/greet
a. Should it cache a new file and create it in the meetme/ folder instead of going to the voicemails mailbox to get the greet?
b. The assumption that the voicemail context is default is probably incorrect, but I’m not sure how to handle that
c. If the file doesn’t exist, it will record it and save it in that location for future use, in sln which doesn’t follow the voicemail.conf setting for codec types.
2) I created the option flag h, just because it was available.  What is the normal scheme for flag creation?
3) I added a new field to a struct to keep track of whether or not the recording was supposed to be saved or not to prevent it from being deleted, and I’m not sure what the norm is for this either.  I added vmrec to announce_listitem

Am I wayyyy far off the ball or is this something that can be worked on and useful enough for others to be committed at some point?  I know I plan to use it going forward.
Comments:By: Leif Madsen (lmadsen) 2010-11-23 13:38:52.000-0600

I'm going to confirm this. Thanks for the patch!

It looks like there may be some work required here. For example, you can't assume the greeting is stored  on the server itself. There are both IMAP and ODBC storage methods.

Plus I'm not sure using the voicemail greeting is necessarily the best idea. If you do, you should make sure there is a greeting there and if not prompt for them to enter one. Or perhaps you should always prompt and then cache that as a separate file.

Flag creation is typically on a first come, first serve basis. I'm not sure I like using 'h' though as I don't see how that could relate to caching or whatnot.

I'd suggest posting to the asterisk-dev mailing list asking for a review, and possibly posting to reviewboard for further review. I think at this point though a discussion on the mailing list would be sufficient.

Additionally, new features will need to be created against trunk, and not the 1.8 or earlier branches.

By: Leif Madsen (lmadsen) 2010-11-23 13:39:54.000-0600

Additionally, if this is a flag for MeetMe(), you may be required to add the same functionality to ConfBridge() as the goal is eventually to make ConfBridge() as feature complete as MeetMe().

By: Andrew Parisio (parisioa) 2010-11-24 13:28:34.000-0600

Sorry i should have come back here and updated this.  Russell had me post it on review board, (1009), and we've been working on it there.  We fixed the storage issue and decided that we would only use the voicemail if it existed, if not we would defer to the i/I options if they were set.

Having not been published what flag gets used hasn't been set in stone.  I'm going to run the patch through a final round of testing today so if you can think of a good flag option to use i'm all for it.

By: Andrew Parisio (parisioa) 2010-11-24 13:31:29.000-0600

Oh, and I have replicated this feature in ConfBridge, as well as i and I.  Once i finish the MeetMe feature I will go through and finish the patch for confbridge, it's still rough / doesn't include a lot of Russell's comments from the MeetMe patch (which is very similar).

By: Andrew Parisio (parisioa) 2010-11-24 15:04:36.000-0600

I posted the diff for app_meetme, this is built against trunk.  Russell said ship it on reviewboard pending testing, i've run it through 10 different use cases and all seems to be good.

By: Andrew Parisio (parisioa) 2010-11-24 15:57:50.000-0600

the last code submission changes it from option h to option v for voicemail.

By: Digium Subversion (svnbot) 2010-11-24 17:46:15.000-0600

Repository: asterisk
Revision: 296249

U   trunk/CHANGES
U   trunk/apps/app_meetme.c

r296249 | citywok | 2010-11-24 17:46:15 -0600 (Wed, 24 Nov 2010) | 11 lines

Meetme use voicemail greet for join/leave announce

Added option v(mailbox@[context]) which tells MeetMe where to look for a users greet file.  If one does not exist it clears the v option and defers to the functionality of i/I as/if set by the MeetMe() command.

Review: https://reviewboard.asterisk.org/r/1009/
(closes issue ASTERISK-16948)
Reported by: parisioa
meetme_final_patch_v.diff uploaded by parisioa (license 1153)