Re: Исключение определенных номеров из донабора

От: alex sss <CGatePro_at_mx_ru>
Дата: Thu 25 Jul 2013 - 00:17:29 MSK

16.07.13, Dmitry Akindinov<CGatePro@mx.ru> написал(а):
> Здравствуйте,
>
> 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;

Попробывал. Не поехало.
Вставил:
procedure doSwitchBoard(targetAccount,prefs) is   customPrompt =
ReadStorageFile(fullName("receptionprompt.wav",targetAccount));   forbidden = TextToObject("(102,103)");   if customPrompt != null then
  ....
и

      if IsString(command) then
        toCall = prefix + command;
	if Find(toCall,forbidden) >= 0 then toCall = "error"; end if;
      elif command == null then      // time-out w/o any digit
        toCall = "error"; command = "";
      end if;

Более, того. В логе я не вижу вызова файлика reception.sppi. Из sppi есть только:
callerleg.sppi(bridgeCaller) started
при входящем звонке.

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

> 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
>
>
>
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
> <CGatePro@mx.ru>.
>
> Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru>
> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru>
> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>
> Для административных запросов адрес <CGatePro-request@mx.ru>
> Архив списка: http://mx.demos.su/lists/cgp-russian/
>
>
>
>
Получено Wed Jul 24 20:17:44 2013

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:17:37 MSK