Здравствуйте.
Помогите решить задачку - сделать IVR меню в YATE. Сделать его с поднятием трубки не вызывает сложностей, а вот на этапе рингинга - затык.
Последний вариант тестового скрипта на JS:
function sendIvr(chan_id, peer_id, ivr_path) {
var m = new Message("chan.masquerade");
m.message = "chan.attach";
m.id = chan_id;
m.targetid = chan_id;
m.source = "wave/play/" + ivr_path;
m.single = true;
m.autorepeat = true;
result = m.dispatch();
m = new Message("call.progress");
m.id = chan_id;
m.targetid = party_id;
m.earlymedia = true;
result = m.dispatch();
return result;
}
function onRoute(msg) {
msg.retValue("dumb/");
return true;
}
function onEvent(msg) {
if (msg.id.startsWith("dumb")) {
Engine.print_r(msg);
sendIvr(msg.id, msg.peerid, "/opt/yate/share/yate/ivr/song.slin");
}
return true;
}
Engine.debugName("IvrMenuOnRbt");
Message.trackName(Engine.debugName());
Message.install(onRoute, "call.route", 2);
Message.install(onEvent, "chan.connected", 120);
Звонок нормально роутится на dumbchan, наступает стадия рингинга, но нету RTP. Лог со сниффером http://pastebin.com/CbMf7yu2