Софтфон: Получить информацию по всем звонкам АТС на клиенте

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Софтфон: Получить информацию по всем звонкам АТС на клиенте
 
Приветствую!
Приобрели Софтфон, встроили в используемую конфигурацию. С АТС Panasonic TDA100 всё работает, всё здорово!
Но вот возник один момент. Возможно ли получать на клиенте информацию такую же, как и показывает сервер Софтфона в закладке "Монитор"?
Суть в том, что хотелось бы снимать полную статистистику звонков, поступающих на АТС. У нас настроены голосовые каналы DISAxxxx, различные группы пользователей и очереди ожидания GRPxxxx.
И получается так, что не всегда входящий звонок поступает к оператору, а может, например, провисеть в очереди, и не обработаться.
А хотелось бы получать подобную статистику на клиенте и писать в регистр для дальнейшей отработки и анализа. Подскажите, можно такое сделать?
Меня хватило лишь на обработку изменения состояния линий, но вот как получить номер вызываемого абонента и вызываемый номер в момент изменения состояния линии..
Изменено: Роман Жавнер - 29.02.2012 11:00:19
 
День добрый.
Нет, сейчас как на закладке "Монитор" посмотреть нельзя.
Если вы ходите получать номера, то возьмите для примера процедуру ИзменениеСостоянияЗвонка как из данных полученных с АТС получить нужные вам данные.
 
Цитата
Сергей Масленников пишет:
День добрый.

Нет, сейчас как на закладке "Монитор" посмотреть нельзя.

Если вы ходите получать номера, то возьмите для примера процедуру ИзменениеСостоянияЗвонка как из данных полученных с АТС получить нужные вам данные.

Да, но я так понимаю, что в этой процедуре обрабатывается информация по звонкам, поступившей по одной линии, выбранной в настройках. А как получить по остальным линиям?
 
во внешнее событие приходят изменения по всем линиям, потом просто отсекаются ненужные
 
согласен с Вами, события приходят по всем линиям.

вот, например, как отслеживаю в обработчике внешнего сыбытия:
Код
Процедура ВнешнееСобытие(Источник, Событие, Данные)
   
   Если Источник = "RTUP" Тогда
      ИнформацияДляВывода = Событие + ":" + Данные + " ";
      Если Событие = "LineLock" Тогда
         Линия = Линии.Найти(Число(Данные), "ИдентификаторЛинии");
         Если Линия <> Неопределено Тогда
            ПараметрыЛинии = РарусСофтФонКомпонента.GetLineInfo(Линия.ИмяЛинии);
            Если ПараметрыЛинии <> Неопределено Тогда
               ИнформацияДляВывода = ИнформацияДляВывода + " (";
               Для Каждого Элемент Из ПараметрыЛинии Цикл
                  ИнформацияДляВывода = ИнформацияДляВывода + Элемент.Ключ + ":" + Элемент.Значение + "|";
               КонецЦикла;
               ИнформацияДляВывода = ИнформацияДляВывода + ")";
            КонецЕсли;
            ИнформацияДляВывода = ИнформацияДляВывода + " == " + Линия.ИмяЛинии;
         КонецЕсли;
      КонецЕсли;   
      Если Событие = "LineUnLock" Тогда
         Линия = Линии.Найти(Число(Данные), "ИдентификаторЛинии");
         Если Линия <> Неопределено Тогда
            ПараметрыЛинии = РарусСофтФонКомпонента.GetLineInfo(Линия.ИмяЛинии);
            Если ПараметрыЛинии <> Неопределено Тогда
               ИнформацияДляВывода = ИнформацияДляВывода + " (";
               Для Каждого Элемент Из ПараметрыЛинии Цикл
                  ИнформацияДляВывода = ИнформацияДляВывода + Элемент.Ключ + ":" + Элемент.Значение + "|";
               КонецЦикла;
               ИнформацияДляВывода = ИнформацияДляВывода + ")";
            КонецЕсли;
            ИнформацияДляВывода = ИнформацияДляВывода + "== " + Линия.ИмяЛинии;
         КонецЕсли;
      КонецЕсли;   
      Если Событие = "Change" Тогда
         Звонок = РарусСофтФонКомпонента.GetCallInfo(Число(Данные));
         Если Звонок <> Неопределено Тогда
            ИнформацияДляВывода = ИнформацияДляВывода + " (";
            Для Каждого Элемент Из Звонок Цикл
               ИнформацияДляВывода = ИнформацияДляВывода + Элемент.Ключ + ":" + Элемент.Значение + ";";
            КонецЦикла;
            ИнформацияДляВывода = ИнформацияДляВывода + ")";
         КонецЕсли;
      КонецЕсли;
      Сообщить(ИнформацияДляВывода);      
   КонецЕсли;


получаю следующий вывод:

Цитата
(1) LineLock:66269  (LineExist:1|LineId:0|hLine:66269|LineName:CO0009|LineCaption:|LineDialableAddr:9|Provider:2|VirtualLineName:CO0009|VirtualLineCaption:|VirtualDialableAddr:9|) == CO0009
(2) LineLock:65553  (LineExist:1|LineId:0|hLine:65553|LineName:DISA0001|LineCaption:|LineDialableAddr:|Provider:2|VirtualLineName:DISA0001|VirtualLineCaption:|VirtualDialableAddr:|) == DISA0001
(3) LineUnLock:65553  (LineExist:1|LineId:0|hLine:65553|LineName:DISA0001|LineCaption:|LineDialableAddr:|Provider:2|VirtualLineName:DISA0001|VirtualLineCaption:|VirtualDialableAddr:|)== DISA0001
(4) LineUnLock:66269  (LineExist:1|LineId:0|hLine:66269|LineName:CO0009|LineCaption:|LineDialableAddr:9|Provider:2|VirtualLineName:CO0009|VirtualLineCaption:|VirtualDialableAddr:9|)== CO0009

то есть получаю параметры линии при событиях Lock и Unlock. В данном примере, звонок поступил на внешнюю линию CO0009, потом для этого же звонка открыли линию информатора DISA0001, и после закрыли обе, после того как звонящий положил трубку.
А вот самый-то главный вопрос, как получить номер звонящего?
Если бы я мог подключиться сразу ко всем линиям, интересующим меня, тогда я мог бы вызывать GetCallInfo. Но при подключениях к дополнительным линиям, кроме указанной в настройке, приводит софтфон в нерабочее сотояние. А GetLineInfo номер телефон звонящего не отдает. :(
 
Попробуйте установить для данного пользователя все линии для перехвата.
 
Цитата
Сергей Масленников пишет:
Да, включил контроль линий следующим образом:
[QUOTE]РарусСофтФонКомпонента.ВключитьКонтрольЛинии("DISA0001");

Информацию по звонкам получаю.
Скажите, может ли подобное включения контроля большого количества линий отразиться на качестве работы Софтфона у других операторов?
 
Я имел ввиду не контроль линии, а СписокЛинийПерехвата... посмотрите в процедуре ЗаполнитьСписокЛинийПерехвата(). Контролировать вы можете только одну линию, а когда заполняется список для перехвата, то вам будут приходить все события по данной линии.

Думаю, что на качестве работы это сильно не отразится
 
Цитата
Сергей Масленников пишет:
Я имел ввиду не контроль линии, а СписокЛинийПерехвата... посмотрите в процедуре ЗаполнитьСписокЛинийПерехвата(). Контролировать вы можете только одну линию, а когда заполняется список для перехвата, то вам будут приходить все события по данной линии.



Думаю, что на качестве работы это сильно не отразится

ЗаполнитьСписокЛинийПерехвата - не совсем то, что нужно, там внутренние номера сотрудников. А у линий групп, сообщений DISA как таковых номеров нет.
Попробую. Но тот результат, что я уже получил, радует. Спасибо!
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С