Здравствуйте,
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