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

От: Dmitry Akindinov <CGatePro_at_mx_ru>
Дата: Thu 25 Jul 2013 - 01:17:30 MSK

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

On 2013-07-25 00:17, alex sss wrote:

> 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
> при входящем звонке.

reception.sppi - часть pbx.sppr, котороая, собственно, проигрываеит меню и предлагает ввести экстеншен. Ну вставьте ещё

syslog("About to call " + String(toCall) + ", looking for it in " + ObjectToString(forbidden));
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
>>
>>
>>
>> ##################################################################
>> Вы получили это сообщение потому, что подписаны на список рассылки
>> <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/
>>
>>
>>
>>
> 	
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
>    <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/
>
>
>

-- 
Best regards,
Dmitry Akindinov
Получено Wed Jul 24 21:17:49 2013

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