<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/1327/">https://reviewboard.asterisk.org/r/1327/</a>
</td>
</tr>
</table>
<br />
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers, David Vossel and mjordan.</div>
<div>By jrose.</div>
<p style="color: grey;"><i>Updated July 21, 2011, 3:02 p.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Attempts to better document the behavior and return values of __play_and_record and its wrappers.
Makes other changes suggested by reviewing party.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">When recording a prepend message for voicemail, I think the following is the intended behavior:
1. User starts prepend recording
2. User concludes prepend recording with a button in order to finish the recording. Confirm success if the user stops the recording manually.
3. If the user times out instead, confirm a failure and go back to the menu with no changes.
What was happening instead was...
The first time through, things were mostly as above, except if the user timed out, Allison would use the same message as if the call went through.
The recording would not be made in this instance.
However, the second time and above through, a flag saying the call had already been recorded would be raised and this would trigger some file copying events on files that shouldn't have been being copied. If the call timed out again, the prepend message would write over the inbox message and the whole message would be forwarded to the recipient.
This patch changes Allison's prompt for timing out while in voicemail mode when not entering the finished recording mode to say "Sorry, Please Try again" followed by "Press the pound key when finished" (I might be paraphrasing slightly). Technically any DTMF works, but I haven't seen any prompt for that yet and I haven't settled on this as a permanent solution. After this point, when the menu comes back around, we lower the flag for the recording having been made essentially reverting back to the original state of the menu.
If this seems appropriate but less than ideal, I am ready at to begin adding a post-prepend-recording menu that will allow the user to review the complete message as well as accept, re-record it, append it, cancel it, etc. before sending it on. Naturally if something like this were in place, there wouldn't be any need to just outright discard prepend recordings after a time-out. Depending on how many of those options we want to include, that could be some extra voice work, so we might consider holding off on that for now and just going with the patch as is, since this works and it informs the user of what is happening much more clearly than the current means does.
This is actually the second revision of the patch and moves the speech into app_voicemail's forwarding menu code and prepares it for customization. Speech file customization isn't tested yet, but looks right.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Tested prepend with timeout and prepend with confirmation, as well as multiple timeouts and multiple timeouts followed by recording with confirmation. In each case there is no residual backup message, and the call is processed as expected. Also, the prepend message no longer gets tacked onto the original message.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>/branches/1.8/apps/app_voicemail.c <span style="color: grey">(329012)</span></li>
<li>/branches/1.8/configs/voicemail.conf.sample <span style="color: grey">(329012)</span></li>
<li>/branches/1.8/include/asterisk/app.h <span style="color: grey">(329012)</span></li>
<li>/branches/1.8/main/app.c <span style="color: grey">(329012)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/1327/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>