<div dir="ltr">Just a quick and dirty thought, try the MONITOR application.<div><br></div><div><br></div><div>Pseudo-code:</div><div><br></div><div>Anchor-point</div><div>PLAYBACK ("press or say")</div><div>MONITOR (use the split audio files mode, not the mixed - this way you can roughly separate which side did the "talking")</div><div>READ (audio file "1 to 5", try to grab one digit)</div><div>STOPMONITOR</div><div>IF (READ variable timed-out, send the incoming half of the monitor file to Google Speech)</div><div>     Playback (some sound effect to indicate "thinking" on the Asterisk side - user feedback is good)<br></div><div>     Check Google Speech result against a white-list</div><div>     IF filtered result was not a valid option</div><div>         PLAYBACK "I didn't understand that"</div><div>         GOTO to Anchor-point</div><div>     ELSE</div><div>         Goto next step using valid decoded speech data</div><div>ELSE<br></div><div>     Check DTMF result against a white-list </div><div><div>     IF filtered DTMFresult was not a valid option</div><div>         PLAYBACK "I didn't understand that"</div><div>         GOTO to Anchor-point</div><div>     ELSE</div><div>         Goto next step using valid decoded DTMF data</div></div><div>Catch-all, should never get here.</div><div><br></div><div>/Pseudo-code</div><div><br></div><div><br></div><div>Don't forget to filter your user sourced data against your white-list, always assume users are hostile, this is part of the total picture of defence-in-depth.</div><div><br></div><div>-Tim</div><div><br></div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 20, 2018 at 12:42 AM, Jonathan H <span dir="ltr"><<a href="mailto:lardconcepts@gmail.com" target="_blank">lardconcepts@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
I want to start recording with a prompt of "press or say 1 to 5". If<br>
no DMTF is pressed, I want to send the recording to Google Speech to<br>
get the number back (got that part working already).<br>
<br>
If any dtmf key is pressed while Application_Record  is running with<br>
option y, then the recording terminates and sends<br>
RECORD_STATUS of "DTMF" (A terminating DTMF was received).<br>
<br>
But I need to know **what** number that DTMF was, and I can't see a<br>
way of grabbing it after the fact.<br>
<br>
I can see in the code where the right variables are..<br>
<br>
<a href="https://github.com/asterisk/asterisk/blob/master/apps/app_record.c#L140" rel="noreferrer" target="_blank">https://github.com/asterisk/<wbr>asterisk/blob/master/apps/app_<wbr>record.c#L140</a><br>
dtmf_response<br>
<br>
<a href="https://github.com/asterisk/asterisk/blob/master/apps/app_record.c#L166" rel="noreferrer" target="_blank">https://github.com/asterisk/<wbr>asterisk/blob/master/apps/app_<wbr>record.c#L166</a><br>
* \param dtmf_integer the integer value of the DTMF key received<br>
<br>
So,3 questions I guess:<br>
<br>
1: Am I going about this the right way? (unimrcp is not an option here)<br>
2: Can someone explain in layman's terms how a simpleton like me could<br>
copy, hack about with and make a new module, like, for example,<br>
app_record_alt.c, that would stick around each time I updated Asterisk<br>
from source?<br>
3: Or, is anyone willing to make the simple code change to the file to<br>
improve it to send back the DTMF to the dialplan? For free to improve<br>
core code? If not, and I posted on the commercial list, how much would<br>
I be looking at to modify about 6 lines of code and return an extra<br>
variable?<br>
<br>
So, ultimately, I'm hoping for something like:<br>
<br>
Currently:<br>
option "y" returns a RECORD_STATUS of "DTMF" if a key was press<br>
<br>
Hopefully:<br>
option "z" returns a RECORD_STATUS of <dtmf-value> showing which key<br>
was pressed.<br>
Or possibly even DTMF_VALUE (if an app can return two variables to the<br>
dialplan?)<br>
<br>
I'm sure this would benefit a lot of people.<br>
<br>
I posted this a few days ago in the forum at<br>
<a href="https://community.asterisk.org/t/can-anyone-help-with-a-quick-app-record-c-module-improvement-and-can-explain-over-riding-modules/73221" rel="noreferrer" target="_blank">https://community.asterisk.<wbr>org/t/can-anyone-help-with-a-<wbr>quick-app-record-c-module-<wbr>improvement-and-can-explain-<wbr>over-riding-modules/73221</a><br>
but no-one bit, so, I'm hoping this list can help.<br>
<br>
Many thanks!<br>
<span class="gmail-HOEnZb"><font color="#888888"><br>
--<br>
______________________________<wbr>______________________________<wbr>_________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" rel="noreferrer" target="_blank">http://www.api-digital.com</a> --<br>
<br>
Check out the new Asterisk community forum at: <a href="https://community.asterisk.org/" rel="noreferrer" target="_blank">https://community.asterisk.<wbr>org/</a><br>
<br>
New to Asterisk? Start here:<br>
      <a href="https://wiki.asterisk.org/wiki/display/AST/Getting+Started" rel="noreferrer" target="_blank">https://wiki.asterisk.org/<wbr>wiki/display/AST/Getting+<wbr>Started</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" rel="noreferrer" target="_blank">http://lists.digium.com/<wbr>mailman/listinfo/asterisk-<wbr>users</a><br>
</font></span></blockquote></div><br></div></div></div>