我正试图摆脱在Freeswitch中通过session.streamFile((播放音频的控制。为此,我尝试了该文档的第三个示例。
这里几乎所有的东西都在工作,但DTMF 1(搜索:-500(不进行搜索。它总是从头开始(如seek:0(。这可能是什么原因?我用的正是这个例子。
代码:
var exit = false;
function onInput( session, type, data, arg ) {
if ( type == "dtmf" ) {
console_log( "info", "Got digit " + data.digit + "n" );
if ( data.digit == "*" ) {
exit = true;
return( false );
}
else if ( data.digit == "0" ) {
return( "seek:0" );
}
else if ( data.digit == "1" ) {
return( "seek:-500" );
}
else if ( data.digit == "2" ) {
return( "pause" );
}
else if ( data.digit == "3" ) {
return( "seek:+500" );
}
return( true );
}
}
if ( session.ready( ) ) {
session.answer( );
while ( session.ready( ) && ! exit ) {
session.streamFile( "<path to WAV>", onInput );
}
if ( session.ready( ) ) {
session.hangup( );
}
}
同时我找到了原因。它属于采样率。Freeswitch更喜欢采样率为16000的wav。其他人也在工作,但在寻找等方面遇到了麻烦。