LINUX.ORG.RU

IVR on earlymedia в YATE

 , , ,


0

1

Здравствуйте.

Помогите решить задачку - сделать 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

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.