freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 28 мар 2024 18:40

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 30 авг 2012 10:57 
Site Admin

Зарегистрирован: 29 июн 2012 11:19
Сообщения: 224
Хочу поделиться скриптом, который начал делать для оповещения(announcement, prompt) о позиции в очереди для модуля mod_callcenter. Я его доделал, он даже работал, пока я не заметил, что от FreeSWITCH толком не получить информации - о том, чей звонок будет отвечен следующим. Я основывался на выводе команды
Код:
callcenter_config queue list members queue_name

и далее прям поочередно смотрел кто как идет в списке и выводил оповещение, однако при нагрузочном тестировании, когда в секунду в очередь добавляется человек по 10, позиции в списке отличаются от реальной очередности ответов :(
Скрипт выкладываю, вдруг кому-то придет идея как его можно улучшить
Код:
//script by Evgeniy Buchnev from http://freeswitchforum.com, mails to joohny on mail.ru
//mod_callcenter queue position prompting(announcement)
  var queue_position = apiExecute("callcenter_config", "queue list members 3001");
  var tmp_uuid =session.getVariable("uuid");
  var tmp_caller_id_number =session.getVariable("caller_id_number");
  var tmp_arr = queue_position.split("\n")
  tmp_arr.length = tmp_arr.length - 2;

//Deleting abandoned users
  for (var i = 1; i <= tmp_arr.length - 1; i++)
     {
        if ((tmp_arr[i].indexOf("|Abandoned") + 1)) {tmp_arr.splice(i,1)};
     }; 

  for (var i = 1; i <= tmp_arr.length - 1; i++)
     {
        if ((tmp_arr[i].indexOf(tmp_uuid) + 1) )
           {
              session.execute("log","INFO =======Position("+tmp_caller_id_number+"): "+i+" > ");//Queue member position
              session.execute("log","INFO =======All Members("+tmp_caller_id_number+"): "+(tmp_arr.length-1)+" > ");//Queue members count
              session.setVariable("fscc_memb_count",(tmp_arr.length-1));//Queue members count
              session.setVariable("fscc_memb_position",(i));//Queue member position
           }
     };
   exit();

Далее значения переменных fscc_memb_count и fscc_memb_position можно использовать в синтезе фразы для оповещения.

_________________
Если вы нашли решение, опишите его, пожалуйста, на форуме


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB