[asterisk-users] Can anyone help with a quick app_record.c module improvement and can explain over-riding modules?

Jonathan H lardconcepts at gmail.com
Sat Jan 20 11:45:49 CST 2018


Oh, what a good idea! That's exactly the kind of lateral thinking I
was hoping someone would come up with.

I thought it was called MixMonitor, and tried to wrap my head around
it but couldn't.

I'll give this a go tomorrow and let you know what I come up with!

Many thanks,

Jonathan

T

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



More information about the asterisk-users mailing list