Письмо #19832 Списка Рассылки CGatePro@list.communigate.ru
От Кого: Dmitry Akindinov <CGatePro@mx.ru>
Кому: CommuniGate Pro Russian Discussions <CGatePro@mx.ru>
Тема: Re: [CGP] Исключение определенных номеров из донабора
Дата: Tue, 16 Jul 2013 22:04:18 +0400
Здравствуйте,

On 2013-07-16 21:26, alex sss wrote:
Доброго времени суток!

Есть инстанция коммунигейта 6.0.5. Входящий звонок обрабатывается
аккаунтом pbx. В процессе обработки входящего звонка есть возможность
донабрать внутренний номер.
Возникла необходимость исключить часть внутренних номеров из донабора.
Как это сделать?

1. Решение "в лоб": подправить reception.sppi, определив массивчик запрещённых "экстеншенов" в начале скрипта (в начале функции doSwitchBoard)

forbidden = TextToObject("(222,252,267)");

и потом в строках 119-120

      if IsString(command) then
        toCall = prefix + command;

добавить
        if Find(toCall,forbidden) >= 0 then toCall = "error"; end if;

2. Чуть красивее: определить группу forbidden, запретить почту и звонки в неё, добавить в неё аккаунты, на которые нельзя звонить через автосекретаря. В reception.sppi поправить функцию

function connectTo(toWhom) is

добавив в её начало код:

forbidden = ReadGroupMembers("forbidden@" + MyDomain());
if isArray(forbidden) then
  index = Length(forbidden);
  toWhomRoute = RouteAddress(toWhom,"signal");
  while index > 0 loop
    index -= 1;
    if RouteAddress(forbidden[index],"signal") == toWhomRoute then
      return false;
    end if;
  end loop;
end if;

Заранее благодарю.

Не проверял, но должно сработать.

--
Best regards,
Dmitry Akindinov


Подписаться (Прямо) Подписаться (Дайджест) Подписаться (Оглавление) Отписаться Написать Listmaster-у