Письмо #19853 Списка Рассылки CGatePro@list.communigate.ru
От Кого: alex sss <CGatePro@mx.ru>
Кому: CommuniGate Pro Russian Discussions <CGatePro@mx.ru>
Тема: Re: [CGP] Исключение определенных номеров из донабора
Дата: Thu, 25 Jul 2013 06:25:08 +0400
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/
>
>
>
>
Подписаться (Прямо) Подписаться (Дайджест) Подписаться (Оглавление) Отписаться Написать Listmaster-у