I really want to post it as contribution but I don't know how the process works. So, in the meantine, it is already published on github git://github.com/ppanhoto/Freeswitch-mod_mp4.git Regards, Paulo. On 22/10/10 18:38, Anthony Minessale wrote:
maybe if you post the module for contribution we can add it to FS and figure it out by looking in the code to make it do what you want.
2010/10/22 Paulo Rogério Panhoto <paulo@voicetechnology.com.br>:
Hi,
I'm writing a module that allows playback of MP4 video files (with libmp4v2). The playback itself is made by two functions ready to run on separate threads (though, audio runs on current thread and video runs on a separate one). At this point, I'm trying to implement dtmf cut-through.
After some research (I checked out mod_dptools.c and switch_ivr_play_say.c) and this code was my best guess -- it runs on the audio stream:
if(switch_channel_test_flag(pt->channel, CF_BREAK)) { switch_channel_clear_flag(pt->channel, CF_BREAK); break; }
switch_ivr_parse_all_events(pt->session);
if(switch_channel_has_dtmf(pt->channel)) { switch_channel_dequeue_dtmf(pt->channel, &dtmf); const char * terminators = switch_channel_get_variable(pt->channel, SWITCH_PLAYBACK_TERMINATORS_VARIABLE); if(terminators && !strcasecmp(terminators, "none")) terminators = NULL; switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(pt->session), SWITCH_LOG_DEBUG, "Digit %c\n", dtmf.digit); if(terminators && strchr(terminators, dtmf.digit)) { std::string digit(&dtmf.digit, 0, 1); switch_channel_set_variable(pt->channel, SWITCH_PLAYBACK_TERMINATOR_USED, digit.c_str()); break; } }
Which didn't work. I'm asking if anyone has any idea.
Any help is appreciated
Regards,
Paulo R. Panhoto
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org