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

От: alex sss <CGatePro_at_mx_ru>
Дата: Thu 25 Jul 2013 - 06:25:08 MSK

25.07.13, Dmitry Akindinov<CGatePro@mx.ru> написал(а):
> Здравствуйте,
>
> 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;
>
> Это должно выдать строчку в лог при донаборе экстеншена.

Не..дело не в этом Find(toCall,forbidden) нужно записать как Find(forbidden,toCall).
Ибо Find(source,object)

>> Заранее благодарю
>>
>>> 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
>
>
>
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
> <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/
>
>
>
>
Получено Thu Jul 25 02:25:21 2013

Этот архив был сгенерирован hypermail 2.1.8 : Thu 25 Jul 2013 - 08:17:24 MSK