Интересует работа связки: Oktell – коннектор – Creatio.
Прошу поделиться информацией о том, как взаимодействует коннектор с Creatio при звонках. Какие данные из Oktell проходят через коннектор, а какие берутся напрямую?
Информация необходима в ознакомительных целях, для избежания спорных ситуация в работе Creatio – Oktell.
В сети нашёл очень много разрозненной информации по этой теме, но какой-то общей документации найти не смог. На сайте Террасофта есть немного информации по этой теме здесь, но этого недостаточно.
Ранее в сообществе был похожий вопрос здесь, но ссылки в ответе уже неактуальны.
Виктор, актуальная ссылка на инструкцию тут, хотя особых отличий от приведенной Вами не вижу.
Для Oktell «коннектор» — не отдельная сущность, а просто лицензия на использование соответствующей функциональности в системе. Это для ряда других телефоний ставится отдельный сервер TMS, через который идёт взаимодействие с сервером телефонии, а именно в этой интеграции такого нет, работает сразу напрямую.
Посмотреть, как идёт обмен данными браузера с сервером приложения и сервером телефонии можно в «инструментах разработчика» на вкладке «Сеть».
Есть вопросы при подключении bpm к oktell с помощью штатного коннектора:
1) Требуются ли стационарные телефоны или можно ограничиться гарнитурой usb? В документации на академии описано, что можно пользоваться как софтфоном, так и стац. телефоном, а на другой странице в сравнительной характеристика написано, что стац. телефон обязателен:
Не вижу в указанных статьях, где там об обязательности стационарного.
Судя по схеме из статьи, интеграция идёт на уровне браузера с сервером Oktell, а не напрямую с телефонами. То есть важно, чтобы аппаратный или программный телефон был совместим с сервером телефонии.
Если интеграция настроена, то в системе будут фиксироваться входящие и исходящие звонки, производимые через телефонный аппарат (или программу для звонков). А если совершить исходящий звонок средствами 7.Х (например, из детали средств связи или правой панели), то сервер позвонит на Ваш телефон, а когда поднимете трубку, соединит с тем, куда звоните.
При звонке из задачи нажимаю ПОЗВОНИТЬ. Звоню, звонок сохраняется, но к задаче не привязывается (не появляется на вкладке Звонки и SQL запросом видно, что ActivityId = NULL).
При этом на сервере разработки ОК, на проде - не работает привязка.
Добрый день. Может кто-нибудь подсказать как настроить интеграцию BPMonline SD 5.4.1.879 c Oktell? Желательно пошаговое руководство, с описанием действий со справочниками, системными настройками и т.д.
Заранее спасибо.
День добрый.
Для интеграции со стороны bpm'online необходимо:
1) Указать значение системной настройки "Библиотека обмена сообщениями по умолчанию" = "Библиотека интеграции с телефонией по протоколу Oktell"
2) Убедиться, что у пользователя есть лицензия на продукт "BPMonline Oktell Call Centre"
3) В настройках (кнопка шестеренки) выбрать пункт меню "Настройка параметров Call-Centre" и внести параметры подключения к Oktell
В этом случае нужно разбирать вопрос в частном порядке - Создавать обращение в техническую поддержку и разбираться почему такой настройки нет - Возможно у Вас нет лицензий на телефонию в bpm'online.
А параметры подключения - это адрес сервера Oktell, логин и пароль пользователя.
Здравствуйте, используем Terrrasoft CRM 3.3.2.. в связке с Oktell. У ряда пользователей есть права на лицензии Terrasoft Oktell Call Centre Operator 3.X. И при входе таких пользователей в систему появляется сообщение:
"Ошибка открытия конфигурации. Лицензия модуля 'call' не найдена". Запустить систему не получается.
Перезаказ лицензий не помогает. Контакты и Контрагенты пользователей не изменялись.
Если одному из этих пользователей в разделе администрирование дать права Администратора (повесить соответствующую галочку), то сообщение об ошибке уходит и удается войти в систему. Т.е. лицензии работают только для администраторов.
Причина данной ошибки только одна - права доступа. Дело в том, что пользователи с правами администратора читают данные на прямую из таблиц базы данных и не имеет значения какие запреты Вы им поставите в системе. А если пользователь не имеет прав администратора, то он будет проверятся системой на наличие необходимых прав. Собственно, из-за этого Вы и наблюдаете такую ситуацию у себя сейчас. В данном случае Вам необходимо проверить, чтоб каждый пользователь, который участвует в лицензировании имел права доступа на чтение всех контактов, привязанных к этим пользователям. Также каждый пользователь должен иметь права доступа на чтение всех контрагентов, которые привязаны к контактам, так как не все пользователи могу быть привязаны к одному и тому же контрагенту. Обращаю внимание на тот факт, что права должны иметь именно все пользователи, а не только тот, который привязан к контакту/контрагенту, упомянутому выше.
1. Что касается прав.
- У группы "Все пользователи" есть права на чтение таблиц tbl_Contact и tbl_Account
- У группы "Все пользователи" есть права на чтение абсолютно всех контактов системе, в том числе и контактов пользователей. В подтверждение следующий запрос возвращает 0 строк.
select * from tbl_Contact c
where not exists (select cr.ID from tbl_ContactRight cr
join tbl_AdminUnit au on au.ID=cr.AdminUnitID
where c.ID=cr.RecordIDand au.Name='Все пользователи'and cr.CanRead=1)
- У группы "Все пользователи" есть права на чтение абсолютно всех контрагентов системы, в том числе и контрагентов, привязанным к контактам пользователей. В подтверждение следующий запрос возвращает 0 строк.
select * from tbl_Account a
where not exists (select ar.ID from tbl_AccountRight ar
join tbl_AdminUnit au on au.ID=ar.AdminUnitID
where a.ID=ar.RecordIDand au.Name='Все пользователи'and ar.CanRead=1)
- Кроме того все пользователи системы включены в группу "Все пользователи"
Может быть я что то еще упустила при проверке прав?
2. Дело в том, что поломка лицензий произошла после обновления таблицы tbl_Contact. Было добавлено новое поле. При этом сначала конкурентные лицензии перестали работать у пользователей С правами администратора. Затем после перезапроса лицензий получилась противоположная ситуация, и лицензии перестали работать у пользователей БЕЗ прав администратора.
Попробовала:
- Откатить сервис tbl_Contact на версию до изменений - не помогло
- Восстановила базу для теста из старого бэкапа, сделанного до внесения изменений в таблицу и снова пересохранила таблицу . Т.е. попробовала сделать другие изменения в таблице, а не добавление конкретного поля. Лицензии также перестали работать.
Каким образом обновление таблицы могло повлиять на лицензии ? Отмечу, что ранее таблица tbl_Contact уже изменялась и таких проблем не наблюдалось.
Здравствуйте, Анна.
Ситуация требует более тщательного анализа, чем обсуждение на Community. Благодарим за предоставленную базу. Вопросом занимается мой Коллега. По результату сразу сообщим.
COM-объект, посмотрите список функций COM-объекта Oktell - там нет ничего похожего, т.е. со стороннего приложения через интеграцию по COM объекту, запустить функцию просмотра экрана пользователя не выйдет.
} //------------ Отправка факсового сообщения ----------------- function OktellFaxStartTransmit(){ var FileName = System.CreateObject('TSObjectLibrary.Value'); var DialogCaption ="Выбор файла FAX"; // Фильтр по расширению прикрепляемых файлов var DefaultExt ='*.jpg'; var IMGFilter ="Файл изображения"+' (*.jpg)|*.jpg|(*.tif)|*.tif|(*.bmp)|*.bmp'; if(!(System.OpenDialog(FileName, IMGFilter , DefaultExt, DialogCaption, EmptyStr))){ return; } // Получаем полный путь к файлу с раширением var FullName = FileName.Value;
4. Для того, чтобы увидеть ход процесса и получать информацию о возможных ошибках отправки и получения факсовых сообщений в функцию OnOktellCommunicate() скрипта scr_OktellUtils добавим:
case ocmFaxStopped://----- Событие АТС о завершении факс-сеанса
OktellFaxStopped(RootNode); break; case ocmFaxFilesReceived://----- Событие АТС о завершении файла по факс-сеансу
OktellFaxFilesReceived(RootNode);// -- Содержит признак успешности приема и ... break; case ocmFaxStarted://----- Событие АТС о начале факс-сеанса
OktellFaxStarted(RootNode); break;
5. В scr_OktellUtils добавим:
function OktellFaxStarted(){//----- Событие АТС о начале факс-сеанса var wnd_Information = Services.GetSingleItemByUSI('wnd_FaxStartProgress');
wnd_Information.Prepare();
wnd_Information.Show(); }
function OktellFaxStopped(){//----- Событие АТС о завершении факс-сеанса var wnd_Information = Services.GetSingleItemByUSI('wnd_FaxStartProgress');
wnd_Information.Close(); }
function OktellFaxFilesReceived(RootNode){//----- Событие АТС о завершении приема файла по факс-сеансу var wnd_Information = Services.GetSingleItemByUSI('wnd_FaxStartProgress');
wnd_Information.Close();
// --- Успешно принято ? ---// var SuccessXML = MsxmlGetChildXmlNodeByAttributeValue(RootNode,'key','success'); var SuccessFax = MsxmlGetXmlAttributeValueByName(SuccessXML,'value');
// --- Текст ошибки ---// var ErrorXML = MsxmlGetChildXmlNodeByAttributeValue(RootNode,'key','errortext'); var ErrorFax = MsxmlGetXmlAttributeValueByName(ErrorXML,'value');
if(SuccessFax ==1){ var Message ="Операция приема/отправки факсового сообщения успешно завершена."
ShowInformationDialog(Message); } elseif(SuccessFax ==0){ var Message = FormatStr("Ошибка получения факса: '%1'", ErrorFax);
ShowConfirmationDialog(Message); }
7. Ну и сами картинки в карточку звонка il_call.7z
Принятые факсы сохраняются на рабочем столе пользователя в папке Принятые_факсы (папка создается автоматически) с расширением *.tiff. Для отправки подходят файлы изображений *.jpeg, *.bmp, *.tiff. Во время отправки и получения факса, пользователь Terrasoft слышит в трубке музыку из сценария Oktell (вместо служебных сигналов факса). Отправка других форматов файлов находится в стадии разработки
Добрый день, Алексей! Возможно эта ошибка возникает из-за отсутствия в wnd_CallEditScript прикрепленного скрипта scr_FileUtils. Для общей картины вот мои скрипты .
Скрипт прикрепил
Теперь в момент выбора файла для отправки вылетает сообщение (во вложении). При этом сервер Октелла факс не отправляет (т.е. скорее всего факс-сеанс не начинается)
Оно же вылетает и при приеме факса, (при старте приема и при окончании), но тем не менее факс приходит успешно и сохраняется на рабочем столе.
Скажите, удалось ли добавить отправку факсом doc и xls файлов?
Напрямую не удалось реализовать такую функцию, пришлось воспользоваться сторонней коммерческой разработкой Total Doc Converter, который в фоновом режиме конвертирует doc в jpeg. Очень полезная особенность Total Doc Converter - возможность "склеивать" несколько страниц doc в один "рулон" jpeg. С pdf файлами все намного сложнее из-за функции сжатия. При их конвертации иногда случаются проблемы с отображением символов.
Добрый день, Константин.
Пожалуйста, проверьте предварительно версии Oktell на клиентской и северной частях.
По логам в каталогах Starter определите какая версия FrameWork используется приложениями.
Версии бинарных файлов приложения и FrameWork должны быть идентичными.
Как оказалось, в ходе удаленного подключения, ошибки конфигурации были причиной проблем. Например на событие объекта Oktell 'ocmLineStateChange' внутри функции OktellProcessLineStateChanged(RootNode) вызывалась функция UpdateCaption(LineStateID), где LineStateID - объект, сожержащий в себе два свойство: LineStateID и OpponentNumber. Но принимаемым параметром функции UpdateCaption должна была быть строка, а именно свойство LineStateID объекта LineStateID.
Переназначение вызова в UpdateCaption(LineStateID.LineStateID) здесь помогло.
Простой способ звонить из карточки Контрагента и Контакта. Используется десктопная версия Terrasoft (можно для BPM сделать подобным образом) и ip-АТС Oktell.
На поле значения средства связи ставится обработчик двойного нажатия (клика):
if ((edtCommunication1Type.DataField.DisplayValue=='Телефон') || (edtCommunication1Type.DataField.DisplayValue=='Мобильный')) {
var webAddress = "http://localhost:4059/callto?number="+edtCommunication1.Value;
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.6.0");
xmlHttpReq.open("GET", webAddress, false);
xmlHttpReq.send();
}