Описание интеграционного протокола Oktell web-soсket protocol — различия между версиями
Peter (обсуждение | вклад) |
Peter (обсуждение | вклад) |
||
Строка 55: | Строка 55: | ||
<div id="Arch1"></div> | <div id="Arch1"></div> | ||
− | ===Схема интеграции 1=== | + | ===Схема интеграции 1 (WebSock сервер в CRM)=== |
− | [[Файл: | + | [[Файл:Arch1.jpg]] |
Строка 86: | Строка 86: | ||
<div id="Arch2"></div> | <div id="Arch2"></div> | ||
− | ===Схема интеграции 2=== | + | ===Схема интеграции 2 (WebSock сервер только в Oktell)=== |
− | [[Файл: | + | [[Файл:Arch2.jpg]] |
Строка 133: | Строка 133: | ||
''Для этого в карте сети Oktell в свойствах телефона требуется указание пользователя WebCRM'' | ''Для этого в карте сети Oktell в свойствах телефона требуется указание пользователя WebCRM'' | ||
− | Плюсы: При взаимодействии Oktell и WebCRM используются одни и те же идентификаторы (например логины пользователей), соответственно отсутствует проблема привязки как таковая. | + | ''Плюсы'': При взаимодействии Oktell и WebCRM используются одни и те же идентификаторы (например логины пользователей), соответственно отсутствует проблема привязки как таковая. |
− | Минусы: Пользователь вынужден перемещаться с одного компьютера на другой вместе со своим телефоном, или переназначая учетную запись в телефонном аппарате. | + | ''Минусы'': Пользователь вынужден перемещаться с одного компьютера на другой вместе со своим телефоном, или переназначая учетную запись в телефонном аппарате. |
'''2. Телефон привязывается к компьютеру, а в момент логина пользователя сопоставление производится через этот компьютер.''' | '''2. Телефон привязывается к компьютеру, а в момент логина пользователя сопоставление производится через этот компьютер.''' | ||
− | Плюсы: Кто бы ни залогинился с этого компьютера, приобретает управление телефоном, все звонки пользователю попадают на этот телефон. | + | ''Плюсы'': Кто бы ни залогинился с этого компьютера, приобретает управление телефоном, все звонки пользователю попадают на этот телефон. |
− | Минусы: Требует указания одного из постоянных идентификаторов компьютера в Oktell, а также передачи его из WebCRM в момент логина для привязки. Это может быть айпи адрес, хостнейм или любой другой постоянный идентификатор, задаваемый в конфигурации. | + | ''Минусы'': Требует указания одного из постоянных идентификаторов компьютера в Oktell, а также передачи его из WebCRM в момент логина для привязки. Это может быть айпи адрес, хостнейм или любой другой постоянный идентификатор, задаваемый в конфигурации. |
Строка 201: | Строка 201: | ||
<div id="Dynamic"></div> | <div id="Dynamic"></div> | ||
− | + | ===Динамическое взаимодействие=== | |
Строка 259: | Строка 259: | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | + | <span style="color:green">>>> '''getactiveusers'''</span> | |
+ | |||
Запрос из Oktell в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения. | Запрос из Oktell в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 271: | Строка 273: | ||
− | + | <span style="color:green"><<< '''activeusers'''</span> | |
+ | |||
Ответное сообщение из CRM в Oktell со списком активных авторизованных пользователей CRM. | Ответное сообщение из CRM в Oktell со списком активных авторизованных пользователей CRM. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 288: | Строка 292: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | < | + | <span style="color:green"><<< '''login'''</span> |
+ | |||
Сообщение из CRM в Oktell об авторизации пользователя. Запрос кросс-авторизации в Oktell. | Сообщение из CRM в Oktell об авторизации пользователя. Запрос кросс-авторизации в Oktell. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"login", | "login", | ||
Строка 303: | Строка 309: | ||
− | + | <span style="color:green">>>> '''loginresult'''</span> | |
+ | |||
Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Oktell, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers. | Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Oktell, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 320: | Строка 328: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | < | + | <span style="color:green"><<< '''logout'''</span> |
+ | |||
Сообщение из CRM в Oktell о выходе (логауте) пользователя. Команда на кросс-логаут в Oktell. | Сообщение из CRM в Oktell о выходе (логауте) пользователя. Команда на кросс-логаут в Oktell. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 335: | Строка 345: | ||
− | + | <span style="color:green">>>> '''logoutresult'''</span> | |
+ | |||
Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Oktell, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано). | Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Oktell, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано). | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 350: | Строка 362: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''pbxnumberstatechanged'''</span> | |
+ | |||
Сообщение из Oktell о смене состояния внутреннего номера (или группы внутренних номеров) | Сообщение из Oktell о смене состояния внутреннего номера (или группы внутренних номеров) | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 372: | Строка 386: | ||
====Обмен состояниями пользователей==== | ====Обмен состояниями пользователей==== | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''userstatechanged'''</span> | |
+ | |||
Сообщение из Oktell в CRM о смене состояния пользователя в Oktell. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо. | Сообщение из Oktell в CRM о смене состояния пользователя в Oktell. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 391: | Строка 407: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | < | + | <span style="color:green"><<< '''setuserstate'''</span> |
+ | |||
Запрос из CRM к Oktell на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged. | Запрос из CRM к Oktell на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"setuserstate", | "setuserstate", | ||
Строка 409: | Строка 427: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
− | //* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел. | + | //* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. |
+ | id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел. | ||
</pre> | </pre> | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''entercallcenter'''</span> |
+ | |||
Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged. | Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 428: | Строка 449: | ||
− | < | + | <span style="color:green"><<< '''exitcallcenter'''</span> |
+ | |||
Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged. | Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 445: | Строка 468: | ||
====Текстовый чат==== | ====Текстовый чат==== | ||
− | + | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | + | <span style="color:green">>>> '''usertextmessagereceived'''</span> | |
+ | |||
Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата. | Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 467: | Строка 492: | ||
− | + | <span style="color:green">>>> '''usertextmessageviewed'''</span> | |
+ | |||
Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения. | Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 486: | Строка 513: | ||
− | < | + | <span style="color:green"><<< '''sendusertextmessage'''</span> |
+ | |||
Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю. | Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 504: | Строка 533: | ||
− | < | + | <span style="color:green"><<< '''setusermessageviewed'''</span> |
+ | |||
Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid. | Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 528: | Строка 559: | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | + | <span style="color:green">>>> '''voicemailreceived'''</span> | |
+ | |||
Сообщение из Oktell в CRM о факте поступления голосовой почты на ящик пользователя. | Сообщение из Oktell в CRM о факте поступления голосовой почты на ящик пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 547: | Строка 580: | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | + | <span style="color:green">>>> '''shownotifymessage'''</span> | |
+ | |||
Сообщение(запрос) из Oktell об уведомлении пользователя по аналогии с всплывающими Oktellовскими уведомлениями | Сообщение(запрос) из Oktell об уведомлении пользователя по аналогии с всплывающими Oktellовскими уведомлениями | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 566: | Строка 601: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
− | //* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это) | + | //* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только |
+ | одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это) | ||
//* backcolor - hex AARRGGBB | //* backcolor - hex AARRGGBB | ||
//* type - тип сообщения из флагового списка кратных двойке кодов | //* type - тип сообщения из флагового списка кратных двойке кодов | ||
Строка 576: | Строка 612: | ||
====Сообщения от АТС==== | ====Сообщения от АТС==== | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_ringstarted'''</span> | |
+ | |||
Сообщение из Oktell в CRM о входящем звонке. Не имеет отношения к постановке звонка в очередь. Фактически когда телефон пользователя начал звенеть. | Сообщение из Oktell в CRM о входящем звонке. Не имеет отношения к постановке звонка в очередь. Фактически когда телефон пользователя начал звенеть. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 621: | Строка 659: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_ringstopped'''</span> | |
+ | |||
Сообщение из Oktell в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился. | Сообщение из Oktell в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 637: | Строка 677: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_commstarted'''</span> | |
+ | |||
Сообщение из Oktell в CRM о коммутации | Сообщение из Oktell в CRM о коммутации | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 684: | Строка 726: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_commstopped'''</span> | |
+ | |||
Сообщение из Oktell в CRM о завершении коммутации. Не путать со звонком. Коммутаций в рамках обработки звонка может быть много. | Сообщение из Oktell в CRM о завершении коммутации. Не путать со звонком. Коммутаций в рамках обработки звонка может быть много. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 701: | Строка 745: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_ivrstarted'''</span> | |
+ | |||
Сообщение из Oktell в CRM о соединении с IVR-сценарием. | Сообщение из Oktell в CRM о соединении с IVR-сценарием. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 720: | Строка 766: | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | + | <span style="color:green">>>> '''phoneevent_ivrstopped'''</span> | |
+ | |||
Сообщение из Oktell в CRM о завершении соединения с IVR сценарием. | Сообщение из Oktell в CRM о завершении соединения с IVR сценарием. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"phoneevent_ivrstopped", | "phoneevent_ivrstopped", | ||
Строка 734: | Строка 782: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_acmcallstarted'''</span> | |
+ | |||
Сообщение из Oktell в CRM о запуске автодозвона. | Сообщение из Oktell в CRM о запуске автодозвона. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 753: | Строка 803: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_acmcallstopped'''</span> | |
+ | |||
Сообщение из Oktell в CRM об остановке автодозвона. | Сообщение из Oktell в CRM об остановке автодозвона. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 769: | Строка 821: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_faxstarted'''</span> | |
+ | |||
Сообщение из Oktell о начале факс-сеанса на оппозитном канале. | Сообщение из Oktell о начале факс-сеанса на оппозитном канале. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 788: | Строка 842: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_faxstopped'''</span> | |
+ | |||
Сообщение из Oktell о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там). | Сообщение из Oktell о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там). | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 807: | Строка 863: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''phoneevent_faxreceived'''</span> | |
+ | |||
Cообщение из Oktell о завершении приема факса со ссылками на файлы. | Cообщение из Oktell о завершении приема факса со ссылками на файлы. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 841: | Строка 899: | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''pbxautocallstart'''</span> |
+ | |||
Запрос из CRM к Oktell на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя. | Запрос из CRM к Oktell на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 862: | Строка 922: | ||
− | + | <span style="color:green">>>> '''pbxautocallstartresult'''</span> | |
+ | |||
Ответ из Oktell в CRM на запрос звонка. | Ответ из Oktell в CRM на запрос звонка. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 882: | Строка 944: | ||
<pre> | <pre> | ||
//* error, errormsg: EACMAnswer: | //* error, errormsg: EACMAnswer: | ||
− | //* cntStartedSuccessfully = 0 | + | //* cntStartedSuccessfully = 0 //Звонок успешно взят в реализацию |
− | //* cntUserNotReady = 1 | + | //* cntUserNotReady = 1 //У осуществляющего вызов пользователя не найдены линии, готовые линии, или состояние кривое |
− | //* cntBusy = 2 | + | //* cntBusy = 2 //При звонке на внутренний номер - признак занятости. В очереди и сам повисеть может |
− | //* cntExtLineNotFound = 3, //Не найдены готовые внешние линии | + | //* cntExtLineNotFound = 3, //Не найдены готовые внешние линии |
//* cntError = 4, //Прочие ошибки, исключения. | //* cntError = 4, //Прочие ошибки, исключения. | ||
//* cntControlNotReady = 5, //Режим не доделан. | //* cntControlNotReady = 5, //Режим не доделан. | ||
− | //* cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если | + | //* cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если сервер сам будет определять |
+ | направление звонка, это вообще не будет задействовано) | ||
</pre> | </pre> | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''pbxautocallabort'''</span> |
+ | |||
Запрос из CRM к Oktell на прекращение автодозвона | Запрос из CRM к Oktell на прекращение автодозвона | ||
<pre> | <pre> | ||
Строка 908: | Строка 972: | ||
------------------------------------------------- | ------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''pbxtransfercall'''</span> |
+ | |||
Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер. | Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 925: | Строка 991: | ||
− | + | <span style="color:green">>>> '''pbxtransfercallresult'''</span> | |
+ | |||
И аналогичный ответ из Oktell в CRM. | И аналогичный ответ из Oktell в CRM. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"pbxtransfercallresult", | "pbxtransfercallresult", | ||
Строка 945: | Строка 1013: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | + | <span style="color:green">>>> '''pbxdeclinecall'''</span> | |
+ | |||
Запрос из CRM к Oktell на отклонение звонка. | Запрос из CRM к Oktell на отклонение звонка. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"pbxdeclinecall", | "pbxdeclinecall", | ||
Строка 960: | Строка 1030: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | < | + | <span style="color:green"><<< '''pbxabortcall'''</span> |
+ | |||
Запрос из CRM к Oktell на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен. | Запрос из CRM к Oktell на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 975: | Строка 1047: | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | < | + | <span style="color:green"><<< '''pbxmakeflash'''</span> |
+ | |||
Запрос из CRM в Oktell на программную эмуляцию флэш. | Запрос из CRM в Oktell на программную эмуляцию флэш. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 994: | Строка 1068: | ||
====Запуск служебного сценария==== | ====Запуск служебного сценария==== | ||
− | ------------------------------------------------- | + | ------------------------------------------------- |
− | < | + | <span style="color:green"><<< '''startsvcscript'''</span> |
+ | |||
Запрос из CRM в Oktell на запуск служебного сценария. | Запрос из CRM в Oktell на запуск служебного сценария. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1017: | Строка 1093: | ||
− | + | <span style="color:green">>>> '''startsvcscriptresult'''</span> | |
+ | |||
Ответ Oktell на запрос запуска служебного сценария. | Ответ Oktell на запрос запуска служебного сценария. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1036: | Строка 1114: | ||
//* error: 10 - файл не найден, 11 - исключение, 12 - таймаут | //* error: 10 - файл не найден, 11 - исключение, 12 - таймаут | ||
</pre> | </pre> | ||
+ | |||
Строка 1047: | Строка 1126: | ||
---------------------------------------------- | ---------------------------------------------- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | # | + | Методы: |
− | # < | + | # <span style="color:green">>>> getavailablemethods<br> |
− | # | + | # <span style="color:green"><<< availablemethods<br> |
− | # | + | # <span style="color:green">>>> executemethod<br> |
− | # < | + | # <span style="color:green">>>> cancelmethod<br> |
+ | # <span style="color:green"><<< methodresult<br> | ||
+ | |||
+ | Формы: | ||
+ | # <span style="color:green">>>> getavailableforms<br> | ||
+ | # <span style="color:green"><<< availableforms<br> | ||
+ | # <span style="color:green">>>> showform<br> | ||
+ | # <span style="color:green">>>> closeform<br> | ||
+ | # <span style="color:green"><<< formresult<br> | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
− | + | <span style="color:green">>>> '''getavailablemethods'''</span> | |
+ | |||
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных динамических методов CRM. | Отправляет из Oktell в CRM сообщение-запрос на возврат доступных динамических методов CRM. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1074: | Строка 1157: | ||
− | < | + | <span style="color:green"><<< '''availablemethods'''</span> |
+ | |||
Сообщение-ответ из CRM в Oktell со списком доступных динамических методов CRM. | Сообщение-ответ из CRM в Oktell со списком доступных динамических методов CRM. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"availablemethods", | "availablemethods", | ||
Строка 1185: | Строка 1270: | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
− | + | <span style="color:green">>>> '''executemethod'''</span> | |
+ | |||
Сообщение-команда из Oktell в CRM на выполнение динамического метода (возможно у конкретного пользователя). | Сообщение-команда из Oktell в CRM на выполнение динамического метода (возможно у конкретного пользователя). | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"executemethod", | "executemethod", | ||
Строка 1204: | Строка 1291: | ||
− | < | + | <span style="color:green"><<< '''methodresult'''</span> |
+ | |||
Сообщение-результат выполнения динамического метода из CRM в Oktell с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod. | Сообщение-результат выполнения динамического метода из CRM в Oktell с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"methodresult", | "methodresult", | ||
Строка 1222: | Строка 1311: | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
− | + | <span style="color:green">>>> '''cancelmethod'''</span> | |
+ | |||
Сообщение-команда из Oktell на прекращение выполнения ранее запущенного динамического метода. | Сообщение-команда из Oktell на прекращение выполнения ранее запущенного динамического метода. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1240: | Строка 1331: | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
− | + | <span style="color:green">>>> '''getavailableforms'''</span> | |
+ | |||
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных карточек CRM. | Отправляет из Oktell в CRM сообщение-запрос на возврат доступных карточек CRM. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1252: | Строка 1345: | ||
− | < | + | <span style="color:green"><<< '''availableforms'''</span> |
+ | |||
Cообщение-ответ из CRM в Oktell со списком доступных карточек CRM. | Cообщение-ответ из CRM в Oktell со списком доступных карточек CRM. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1303: | Строка 1398: | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
− | + | <span style="color:green">>>> '''showform'''</span> | |
+ | |||
Сообщение-команда из Oktell в CRM на открытие карточки у конкретного пользователя. | Сообщение-команда из Oktell в CRM на открытие карточки у конкретного пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1323: | Строка 1420: | ||
− | < | + | <span style="color:green"><<< '''formresult'''</span> |
+ | |||
Сообщение-результат из CRM в Oktell при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой CloseForm | Сообщение-результат из CRM в Oktell при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой CloseForm | ||
<pre> | <pre> | ||
Строка 1343: | Строка 1441: | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
− | + | <span style="color:green">>>> '''closeform'''</span> | |
+ | |||
Сообщение-команда из Oktell на закрытие карточки у конкретного пользователя. | Сообщение-команда из Oktell на закрытие карточки у конкретного пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1367: | Строка 1467: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''confhandleevent'''</span> |
+ | |||
Подписка/отписка на указанную категорию событий сервера конференций. | Подписка/отписка на указанную категорию событий сервера конференций. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1393: | Строка 1495: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''checkcanconnecttogathertoconference'''</span> |
+ | |||
Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь. | Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1407: | Строка 1511: | ||
− | + | <span style="color:green">>>> '''confcheckcanconnecttogatherresult'''</span> | |
+ | |||
Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию. | Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1424: | Строка 1530: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''connecttogathertoconference'''</span> |
+ | |||
Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию. | Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1439: | Строка 1547: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''buildconferencefromcommutation'''</span> |
+ | |||
Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками. | Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1454: | Строка 1564: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''attachasghost'''</span> |
+ | |||
Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь. | Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1470: | Строка 1582: | ||
− | + | <span style="color:green">>>> '''attachasghostresult'''</span> | |
+ | |||
Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку. | Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1491: | Строка 1605: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getconferences'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат текущих активных конференц-сессий. | Запрос из CRM в Oktell на возврат текущих активных конференц-сессий. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1505: | Строка 1621: | ||
− | + | <span style="color:green">>>> '''getconferencesresult'''</span> | |
+ | |||
Ответ из Oktell в CRM со списком текущих активных конференц-сессий. | Ответ из Oktell в CRM со списком текущих активных конференц-сессий. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1548: | Строка 1666: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getconferencecompetitors'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат текущих участников указанной конференции. | Запрос из CRM в Oktell на возврат текущих участников указанной конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1563: | Строка 1683: | ||
− | + | <span style="color:green">>>> '''getconferencecompetitorsresult'''</span> | |
+ | |||
Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции. | Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getconferencecompetitorsresult", | "getconferencecompetitorsresult", | ||
Строка 1604: | Строка 1726: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getusersforconferenceinvitelist'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях). | Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях). | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1618: | Строка 1742: | ||
− | + | <span style="color:green">>>> '''getusersforconferenceinvitelistresult'''</span> | |
+ | |||
Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях. | Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1653: | Строка 1779: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''createnewconference'''</span> |
+ | |||
Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте. | Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"createnewconference", | "createnewconference", | ||
Строка 1699: | Строка 1827: | ||
− | + | <span style="color:green">>>> '''createnewconferenceresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом исполнения команды на создание конференции. | Ответ из Oktell в CRM с результатом исполнения команды на создание конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1723: | Строка 1853: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''setupexistingconference'''</span> |
+ | |||
Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции. | Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1757: | Строка 1889: | ||
− | + | <span style="color:green">>>> '''setupexistingconferenceresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции. | Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"setupexistingconferenceresult", | "setupexistingconferenceresult", | ||
Строка 1781: | Строка 1915: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getconferenceinfo'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат текущих параметров указанной конференции. | Запрос из CRM в Oktell на возврат текущих параметров указанной конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1796: | Строка 1932: | ||
− | + | <span style="color:green">>>> '''getconferenceinforesult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния. | Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1856: | Строка 1994: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''stopconference'''</span> |
+ | |||
Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции. | Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1871: | Строка 2011: | ||
− | + | <span style="color:green">>>> '''stopconferenceresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции. | Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1890: | Строка 2032: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''confsetvoiceparams'''</span> |
+ | |||
Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции. | Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1914: | Строка 2058: | ||
− | + | <span style="color:green">>>> '''confsetvoiceparamsresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала. | Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"confsetvoiceparamsresult", | "confsetvoiceparamsresult", | ||
Строка 1939: | Строка 2085: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''confsetwanttalk'''</span> |
+ | |||
Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего). | Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего). | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1955: | Строка 2103: | ||
− | + | <span style="color:green">>>> '''confsetwanttalkresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса. | Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1972: | Строка 2122: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''confsetghostmode'''</span> |
+ | |||
Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи. | Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1988: | Строка 2140: | ||
− | + | <span style="color:green">>>> '''confsetghostmoderesult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи. | Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2005: | Строка 2159: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''exitconference'''</span> |
+ | |||
Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне. | Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2020: | Строка 2176: | ||
− | + | <span style="color:green">>>> '''exitconferenceresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции. | Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2037: | Строка 2195: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''confdisconnectcompetitor'''</span> |
+ | |||
Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника. | Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"confdisconnectcompetitor", | "confdisconnectcompetitor", | ||
Строка 2058: | Строка 2218: | ||
− | + | <span style="color:green">>>> '''confdisconnectcompetitorresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника. | Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"confdisconnectcompetitorresult", | "confdisconnectcompetitorresult", | ||
Строка 2075: | Строка 2237: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''enterconference'''</span> |
+ | |||
Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference | Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference | ||
− | <pre> | + | <pre> |
[ | [ | ||
"enterconference", | "enterconference", | ||
Строка 2090: | Строка 2253: | ||
− | + | <span style="color:green">>>> '''enterconferenceresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию. | Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"enterconferenceresult", | "enterconferenceresult", | ||
Строка 2107: | Строка 2272: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''confdisconnectcompetitor'''</span> |
+ | |||
Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа. | Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"confpermitdenyentrance", | "confpermitdenyentrance", | ||
Строка 2129: | Строка 2296: | ||
− | + | <span style="color:green">>>> '''confpermitdenyentranceresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику. | Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"confpermitdenyentranceresult", | "confpermitdenyentranceresult", | ||
Строка 2146: | Строка 2315: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''invitetoconference'''</span> |
+ | |||
Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру). | Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру). | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2173: | Строка 2344: | ||
− | + | <span style="color:green">>>> '''invitetoconference'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции. | Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"invitetoconference", | "invitetoconference", | ||
Строка 2197: | Строка 2370: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | + | <span style="color:green">>>> '''conflistchanged'''</span> | |
+ | |||
Событие из Oktell в CRM об изменении списка текущих активных конференций. | Событие из Oktell в CRM об изменении списка текущих активных конференций. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2238: | Строка 2413: | ||
--------------------------------------------- | --------------------------------------------- | ||
− | + | <span style="color:green">>>> '''"conf***"'''</span> | |
+ | |||
Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже. | Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"conf***", | "conf***", | ||
Строка 2270: | Строка 2447: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getuserstate'''</span> |
+ | |||
Запрос из CRM в Oktell состояния указанного пользователя системы. | Запрос из CRM в Oktell состояния указанного пользователя системы. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getuserstate", | "getuserstate", | ||
Строка 2284: | Строка 2463: | ||
− | + | <span style="color:green">>>> '''getuserstateresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы. | Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы. | ||
<pre> | <pre> | ||
Строка 2305: | Строка 2485: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''checkuserintask'''</span> |
+ | |||
Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра. | Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"checkuserintask", | "checkuserintask", | ||
Строка 2319: | Строка 2501: | ||
− | + | <span style="color:green">>>> '''checkuserintaskresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа. | Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"checkuserintaskresult", | "checkuserintaskresult", | ||
Строка 2344: | Строка 2528: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getcurrentlinestate'''</span> |
+ | |||
Запрос из CRM в Oktell состояния телефонной линии указанного пользователя. | Запрос из CRM в Oktell состояния телефонной линии указанного пользователя. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getcurrentlinestate", | "getcurrentlinestate", | ||
Строка 2358: | Строка 2544: | ||
− | + | <span style="color:green">>>> '''getcurrentlinestateresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы. | Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы. | ||
<pre> | <pre> | ||
Строка 2380: | Строка 2567: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getcurrentlinestate'''</span> |
+ | |||
Запрос из CRM в Oktell состояния очереди указанного пользователя. | Запрос из CRM в Oktell состояния очереди указанного пользователя. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getcurrentqueue", | "getcurrentqueue", | ||
Строка 2394: | Строка 2583: | ||
− | + | <span style="color:green">>>> '''getcurrentlinestateresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы. | Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы. | ||
<pre> | <pre> | ||
Строка 2449: | Строка 2639: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getcallingoutabonentinfo'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат информации об абоненте, которому осуществляется исходящий вызов от имени указанного пользователя. | Запрос из CRM в Oktell на возврат информации об абоненте, которому осуществляется исходящий вызов от имени указанного пользователя. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getcallingoutabonentinfo", | "getcallingoutabonentinfo", | ||
Строка 2463: | Строка 2655: | ||
− | + | <span style="color:green">>>> '''getcallingoutabonentinforesult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя. | Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2487: | Строка 2681: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getchaincontent'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат контента текущей сессии, в которой участвует линия указанного пользователя. Кто инициировал звонок, когда, с кем коммутировался, кто переключал, куда, на кого, когда, были ли комментарии какие-то установлены в контент... | Запрос из CRM в Oktell на возврат контента текущей сессии, в которой участвует линия указанного пользователя. Кто инициировал звонок, когда, с кем коммутировался, кто переключал, куда, на кого, когда, были ли комментарии какие-то установлены в контент... | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getchaincontent", | "getchaincontent", | ||
Строка 2501: | Строка 2697: | ||
− | + | <span style="color:green">>>> '''getchaincontentresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя. | Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя. | ||
− | <pre> | + | <pre> |
[ | [ | ||
"getchaincontentresult", | "getchaincontentresult", | ||
Строка 2591: | Строка 2788: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''setchaincontentcustomfield'''</span> |
+ | |||
Запрос из CRM в Oktell на установку комментария в контент текущей сессии, в которой участвует канал указанного пользователя. | Запрос из CRM в Oktell на установку комментария в контент текущей сессии, в которой участвует канал указанного пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2606: | Строка 2805: | ||
− | + | <span style="color:green">>>> '''setchaincontentcustomfieldresult'''</span> | |
+ | |||
Ответ из Oktell в CRM с результатом установки комментария в контент текущей сессии, в которой участвует канал указанного в запросе пользователя. | Ответ из Oktell в CRM с результатом установки комментария в контент текущей сессии, в которой участвует канал указанного в запросе пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2623: | Строка 2824: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''setchaincontentcustomfield'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат комментария из контента текущей сессии, в которой участвует канал указанного пользователя. | Запрос из CRM в Oktell на возврат комментария из контента текущей сессии, в которой участвует канал указанного пользователя. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getchaincontentcustomfield", | "getchaincontentcustomfield", | ||
Строка 2637: | Строка 2840: | ||
− | + | <span style="color:green">>>> '''getchaincontentcustomfieldresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает комментарий из контента текущей сессии, в которой участвует канал указанного в запросе пользователя. | Ответ из Oktell в CRM. Возвращает комментарий из контента текущей сессии, в которой участвует канал указанного в запросе пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2659: | Строка 2864: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getusersbynumbers'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя. | Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getusersbynumbers", | "getusersbynumbers", | ||
Строка 2679: | Строка 2886: | ||
− | + | <span style="color:green">>>> '''getusersbynumbersresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров. | Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getusersbynumbersresult", | "getusersbynumbersresult", | ||
Строка 2707: | Строка 2916: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getitemsbynumbers'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя. | Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2727: | Строка 2938: | ||
− | + | <span style="color:green">>>> '''getitemsbynumbersresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров. | Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getitemsbynumbersresult", | "getitemsbynumbersresult", | ||
Строка 2762: | Строка 2975: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getsystemnumberbyuser'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя. | Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2780: | Строка 2995: | ||
− | + | <span style="color:green">>>> '''getsystemnumberbyuserresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя. | Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2798: | Строка 3015: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getpbxnumbersforitem'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя. | Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2815: | Строка 3034: | ||
− | + | <span style="color:green">>>> '''getpbxnumbersforitemresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса. | Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2839: | Строка 3060: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getmainpbxnumberforitem'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре. | Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getmainpbxnumberforitem", | "getmainpbxnumberforitem", | ||
Строка 2856: | Строка 3079: | ||
− | + | <span style="color:green">>>> '''getmainpbxnumberforitemresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса. | Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getmainpbxnumberforitemresult", | "getmainpbxnumberforitemresult", | ||
Строка 2880: | Строка 3105: | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
− | < | + | <span style="color:green"><<< '''getpbxnumbers'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде. | Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2893: | Строка 3120: | ||
− | < | + | <span style="color:green"><<< '''getpbxnumbers'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде. | Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getpbxnumbers", | "getpbxnumbers", | ||
Строка 2908: | Строка 3137: | ||
− | + | <span style="color:green">>>> '''getpbxnumbersresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде. | Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2933: | Строка 3164: | ||
− | < | + | <span style="color:green"><<< '''getpbxnumbers'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде. | Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде. | ||
− | <pre> | + | |
+ | <pre> | ||
[ | [ | ||
"getpbxnumbers", | "getpbxnumbers", | ||
Строка 2946: | Строка 3179: | ||
− | < | + | <span style="color:green"><<< '''getpbxnumbers'''</span> |
+ | |||
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде. | Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде. | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 2961: | Строка 3196: | ||
− | + | <span style="color:green">>>> '''getpbxnumbersresult'''</span> | |
+ | |||
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями. | Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями. | ||
+ | |||
<pre> | <pre> | ||
[ | [ |
Версия 11:11, 17 сентября 2012
В рамках настоящей статьи рассматриваются вопросы интеграции web-системы и коммуникационной системы (в дальнейшем WebCRM и Oktell). WebCRM на рабочем месте сотрудника используется через браузер. Телефон, находящийся на рабочем месте сотрудника подключен к серверу (узлу коммутаций) Oktell. Решается задача функционального объединения двух системы с предоставлением возможности приема и совершения звонков и управления телефоном из интерфейсов WebCRM.
Содержание
- 1 Краткое описание возможностей телефонии Oktell
- 2 Схема интеграции 1 (WebSock сервер в CRM)
- 3 Схема интеграции 2 (WebSock сервер только в Oktell)
- 4 Привязка пользователя к телефону
- 5 Взаимодействие по каналу связи
- 6 Динамическое взаимодействие
- 7 Список методов интерфейса
- 7.1 Обмен данными об активных пользователях
- 7.2 Обмен состояниями пользователей
- 7.3 Текстовый чат
- 7.4 Голосовая почта
- 7.5 Всплывающие уведомления
- 7.6 Сообщения от АТС
- 7.7 Команды к АТС
- 7.8 Запуск служебного сценария
- 7.9 Методы динамического взаимодействия
- 7.10 Конференц-связь
- 7.11 События из Oktell, касающиеся конференций
- 7.12 Состояния пользователей и линий
- 7.13 Контент звонка
- 7.14 Номерной план
Краткое описание возможностей телефонии Oktell
Стандартный функционал Oktell предоставляет пользователям:
- доступ к управлению телефонами (позвонить, переключить, отклонить звонок, организовать конференцию, пригласить других участников в конференцию, подключиться к разговору в режиме прослушивания, помощи и т.д.).
- доступ к управлению состояниями пользователей (перерыв - чтобы поток входящих звонков не поступал, занят - чтобы отметить факт обработки звонка, переадресация - чтобы все звонки на пользователя перенаправлялись в соответствии с настроенными правилами, готов - чтобы вернуться к обычному режиму).
- информацию о текущем состоянии телефонов, внутренних номеров, пользователей с т.з. занятости в операциях телефонии.
- информацию о поступающем звонке, абоненте
- доступ к статистике разговоров (по правам).
- доступ к записям разговоров (по правам).
- доступ к информации об ожидающей очереди абонентов в реальном времени.
- доступ к контентам сессий и линий.
- доступ к управлению режимом переадресации.
- возможность запуска служебных сценариев.
и т.д.
В рамках настройки сценариев Oktell, имеется возможность отправлять синхронные и асинхронные запросы в WebCRM (фактически исполнять методы по событиям в Oktell)и получать ответы и применять их в рамках проведения маршрутизации или любых других действий, реализуемых в сценариях. Например:
- Выяснить, какому клиенту/контакту принадлежит определившийся номер телефона или введенный им вручную с помощью DTMF-набора номер договора, отфильтровать по черному списку, переключить вызов на ответственного за работу с этим контактом пользователя, если пользователя нет в системе - переключить на секретаря, а если контакт новый - соединить с отделом продаж. Если ответственный пользователь занят, предложить оставить голосовое сообщение для VIP клиентов.
- В момент поступления звонка открыть карточку у пользователя, которому направляется звонок. Закрыть ее автоматически, если пользователь так и не снял трубку (а снял кто-то другой, или звонок потерялся).
- Выполнить какое-то важное с т.з. WebCRM действие в случае, например, если пользователь оставил заказ на встречный звонок, занести его в список задач.
Именно сценарии придают жизнь Oktell и его сервисам.
Среди событий Oktell, отрабатываемых в сценариях:
- поступление внешнего звонка.
- завершение звонка.
- переключение абонента на пользователя, группу пользователей, задачу коллцентра.
- любое из интересующих явлений в ходе обработки звонка (от преобразования номера абонента в нужный формат и сверки времени поступления звонка до обработки контента звонка после завершения и выявления там факта состоявшейся конференции).
- наступление определенного времени.
- периодический запуск по таймеру.
- поступление/отправка e-mail.
- поступление/отправка sms/icq/jabber.
- контрольные события call-центра (оператор первым положил трубку, оператор слишком долго находится в перерыве или поствызывной обработке, число операторов в задаче меньше минимально допустимого, число абонентов в очереди задачи больше допустимого и т.д.)
- ручной запуск сценария по инициативе пользователя или WebCRM.
- исходящий звонок от пользователя
- поступление голосовой почты
- появление где-то в базе данных интересующего события (например появление новой записи в таблице абонентов)
- появление где-то на веб-ресурсе интересующего события (например температура на улице опустилась ниже нуля)
и т.д.
Схема интеграции 1 (WebSock сервер в CRM)
Сервер Oktell взаимодействует с телефонами и с веб-сервером WebCRM.
Веб-сервер WebCRM взаимодействует ответно с сервером Oktell и с браузерами.
Между сервером Oktell и веб-сервером WebCRM существует только один канал для двустороннего обмена сообщениями.
Установка соединения может производиться как сервером Oktell, так и веб-сервером WebCRM. В случае разрыва соединения сторона-инициатор вновь организует подключение.
- При выборе соединения со стороны сервера WebCRM в настройках Web-Socket Oktell должен быть выбран один из режимов «CRM к Oktell» с указанием требуемого способа авторизации.
- При выборе соединения со стороны сервера Oktell должен быть выбран один из режимов «Oktell к CRM» с указанием версии протокола Web-Socket.
После установки соединения системы обмениваются данными друг о друге, об авторизованных пользователях, о динамических методах. Все авторизованные в WebCRM пользователи автоматически становятся авторизованными в Oktell. В дальнейшем авторизация подключающихся пользователей и вывод отключившихся осуществляется с помощью сообщений login и logoff. Считается, что авторизацию пользователь проходит на веб-сервере WebCRM, и повторной проверки пароля в Oktell не требуется. Поэтому при организации сообщений login поле password не требует указания.
Любой запрос от клиента к Oktell отправляется на сервер WebCRM, где формируется интеграционное сообщение и перенаправляется на сервер Oktell. Персональные сообщения/команды от Oktell клиенту также направляются на WebCRM, где они должны быть перенаправлены клиенту. Общие сообщения/команды от Oktell направляются к серверу, где проводится их обработка.
Часть общих событий, например изменение состояния абонента в номерном плане, отправляется в WebCRM однократно и без привязки к конкретному пользователю, подразумевая тем самым, что веб-сервер WebCRM самостоятельно размножит сообщение и отправит всем заинтересованным клиентам.
В рамках такой интеграции WebCRM может предоставлять в Oktell некоторые общие сервисы, которые доступны администратору при настройке сценариев Oktell. Например, доступ к БД WebCRM на поиск маршрута для обработки звонка конкретного клиента. Подробнее в разделе Динамическое взаимодействие.
Схема интеграции 2 (WebSock сервер только в Oktell)
Сервер Oktell взаимодействует с телефонами и с конечными клиентами (браузерами).
Веб-сервер CRM взаимодействует только с клиентами и БД.
Между Oktell и каждым клиентом существует один или несколько каналов для двустороннего обмена сообщениями (поддерживается работа в нескольких вкладках браузера).
В данном случае клиенты (браузеры) производят коннект к серверу Oktell, и в его настройках Web-Socket должен быть выбран способ соединения «Браузеры к Oktell», а в сообщениях login должен быть указан пароль (MD5).
При таком способе интеграции у WebCRM не требуется наличие собственного Web-Socket сервера. Каждый клиент (браузер) подключается по Web-Socket протоколу непосредственно к серверу Oktell. Веб-сервер занимается формированием страниц и предоставлением данных из БД WebCRM. Непосредственная взаимосвязь между серверами WebCRM и Oktell отсутствует, доступ не требуется, клиенты самостоятельно обрабатывают и объединяют данные двух систем. По такому принципу реализованы Web-клиент Oktell и плагин Oktell.js.
Поскольку клиентов может быть много, при рассылке событий возможна оптимизация за счет исключения тех клиентов, где конкретное событие не является необходимым. Достигается это путем подписки/отписки клиентов на определенные типы сообщений.
В отличие от схемы интеграции 1, где Oktell запрашивает у сервера WebCRM список динамических методов и форм, здесь роль хранилища этих списков выполняет конфигурационный файл websock.config в рабочем каталоге сервера Oktell.
Применительно к этому способу интеграции существует ряд дополнительных методов интерфейса. Большинство таких методов доступно и при схеме интеграции 1, но не являются там необходимыми, так как часть данных и работ проводится на веб-сервере WebCRM. Исключение составляет метод обращения к БД Oktell на исполнение хранимой процедуры и возврат результатов (execpredefineddbstoredproc). Он существует только для этого способа интеграции, при этом разрешенные для исполнения хранимые процедуры содержатся там же в конфигурационном файле websock.config.
Привязка пользователя к телефону
Решению подлежит задача сопоставления конкретных пользователей CRM с конкретными телефонными устройствами. Поскольку элементы управления устройством находятся в браузере, а влияют они на поведение конкретного телефона. Например, так выглядит простейшая задача перевода звонка из браузера на врача Михайлова: звонок должен поступить на телефон, находящийся в кабинете 103, за компьютером в котором сейчас сидит Михайлов (в браузере открыта WebCRM и авторизован Михайлов). Настройка этого происходит в Oktell.
Пользователи могут работать:
- стационарно каждый за своим компьютером.
- перемещаться с одного рабочего место за другое.
- работать посменно за одним рабочим местом.
(Рабочее место = компьютер + телефон)
Необходимо в каждый момент времени знать, около какого телефона какой пользователь сидит.
Существуют два подхода к решению, также возможны их комбинации в рамках одного сервера.
1. Жесткая привязка пользователя к телефонной учетной записи.
Для этого в карте сети Oktell в свойствах телефона требуется указание пользователя WebCRM
Плюсы: При взаимодействии Oktell и WebCRM используются одни и те же идентификаторы (например логины пользователей), соответственно отсутствует проблема привязки как таковая.
Минусы: Пользователь вынужден перемещаться с одного компьютера на другой вместе со своим телефоном, или переназначая учетную запись в телефонном аппарате.
2. Телефон привязывается к компьютеру, а в момент логина пользователя сопоставление производится через этот компьютер.
Плюсы: Кто бы ни залогинился с этого компьютера, приобретает управление телефоном, все звонки пользователю попадают на этот телефон.
Минусы: Требует указания одного из постоянных идентификаторов компьютера в Oktell, а также передачи его из WebCRM в момент логина для привязки. Это может быть айпи адрес, хостнейм или любой другой постоянный идентификатор, задаваемый в конфигурации.
Синхронизация учетных записей Oktell и WebCRM может производиться по логинам (по умолчанию) или по GUID-идентификаторам. Соответственно в персональных запросах должны указываться userlogin и/или userid.
Логин в Oktell нужен для приведения состояния пользователя в готовность. Без этого звонки на пользователя не поступают, а обрабатываются как и в случае, когда он недоступен. Логофф - обратная операция. В ходе взаимодействия пользователю доступны команды управления своим состоянием. Он может отлучиться, выставить перерыв, переадресацию, занятость и т.д. Все это нужно для того, чтобы изменить направление маршрутизации звонков и режим работы коллцентра. А в случае Схемы интеграции 2 также для авторизации.
ВНИМАНИЕ! Ограничение: Oktell не позволяет пользователям логиниться с разных рабочих мест одновременно. Делается это для того, чтобы каждому пользователю соответствовало не более одного телефона.
Взаимодействие по каналу связи
Все взаимодействие между Oktell и WebCRM (а также между Oktell и браузером) идет по общему каналу путем двустороннего обмена сообщениями между сторонами.
Взаимодействие на транспортном уровне происходит по Web-Socket протоколу. Поддерживаются версии
В зависимости от выбранной схемы интеграции и выбранного в настройках направления и способа подключения одна из сторон производит подключение (Oktell к серверу WebCRM, сервер WebCRM к Oktell, клиенты WebCRM к Oktell). Рукопожатие (handshake) на установление Web-Socket соединения предлагается также стороной-инициатором. Подробнее. Рукопожатие является HTTP запросом и при необходимости поддерживает прохождение Basic или Digest-авторизации. В качестве логина и пароля выступают указанные в настройках Web-Socket значения. Описание процедуры рукопожатия описывается в документации к каждой версии протокола Web-Socket.
Все сообщения имеют идентификаторы для организации серий типа «запрос-ответ» (поле qid). Сообщения могут адресоваться конкретному пользователю или относиться к общим. В первом случае в сообщении должен присутствовать идентификатор, позволяющий различать одинаковые, но направляемые от разных пользователей команды из WebCRM в Oktell и наоборот соответственно.
Возможные направления и типы сообщений:
- Oktell генерирует события.
- Oktell производит запросы к веб-системе. WebCRM отправляет ответы на получаемые запросы.
- WebCRM производит запросы к Oktell. В том числе и команды. Oktell отправляет ответы на запросы.
Каждое сообщение представляет из себя строку JSON или XML в кодировке UTF-8. Сообщения в общем потоке данных в канале отделяются друг от друга в соотвествии с версией используемого протокола Web-Socket:
- Версии rfc6455 v13, v8, v7 подразумевают использование фреймов, в заголовках которых определяется тип и размер.
- Версии 76 и 75 подразумевают отделение сообщений байтами 0 и 255. 0 - в начале сообщения, 255 - в конце. Форматы XML и JSON представления данных в текстовом виде гарантируют отсутствие байтов 0 и 255 в теле сообщений.
Формат самих сообщений определяется непосредственно протоколом интеграции Oktell-WebCRM. Например вот так выглядит сообщение из Oktell в WebCRM о факте входящего вызова в формате json:
Сообщения длиной более 64 КБ упаковываются в Base64 и разбиваются на несколько сообщений длиной до 64К. Для этого используется формат multipart-сообщения в протоколе Oktell-WebCRM. Если версия протокола Web-Socket для передачи сообщений использует фреймы (rfc6455 v13, v8, v7), то способ отправки длинных сообщений в нескольких фреймах определен в самом протоколе. Однако это имеет ограничение: при передаче одного длинного сообщения в нескольких фреймах, оно не может быть прервано передачей других сообщений.
Структура каждого сообщения - это список из двух объектов, первый из которых - тип сообщения, второй - словарь параметров. В словаре обязательно присутствует идентификатор запроса (поле qid с любым текстовым уникальным значением). В случае, когда сообщение производится от имени пользователя, присутствуют его идентификаторы (userid, userlogin).
Среди параметров находятся и индивидуальные параметры сообщения. Поддерживается произвольная вложенность объектов: строк, чисел, дат, словарей, списков.
Динамическое взаимодействие
В момент создания сценариев в Oktell администратор имеет возможность настроить индивидуальное взаимодействие с WebCRM. Взаимодействие представляет собой вызов определенного метода WebCRM с передачей в него входных параметров, и возможно ожидание его исполнения с возвратом (нескольких) выходных значений.
Сразу после организации подключения к серверу WebCRM Oktell производит запрос доступных в WebCRM динамических методов (как было сказано выше, в рамках схемы интеграции 2 вместо запроса к WebCRM осуществляется загрузка сведений из файла websock.config). В ответ WebCRM перечисляет список действий, инициативу исполнения которых она готова отдать наружу в Oktell. При описании метода упоминаются:
- человеческое название,
- краткий код метода,
- описание для администратора, настраивающего Oktell,
- список входных параметров с упоминанием типов (и возможных значений для перечислений),
- список выходных параметров, если метод возвращает данные и призван влиять на алгоритм сценария в Oktell,
- признак того, нужно ли исполнять метод с привязкой к конкретному пользователю, или это обращение к серверу вообще,
- разрешено ли отменять исполнение (например для метода «открыть карточку такую-то» возможна отмена, означающая «закрыть карточку такую-то»),
- куда Oktell направлять запрос - через Web-Socket (стандартный для взаимодействия канал) или по HTTP на альтернативный URL веб-сервера.
По каждому методу дополнительно описывается перечень входных и выходных параметров, их типы, способ исполнения метода (по организованному каналу или отдельным http-подключением), возможность его отмены (для длительных асинхронных операций, например метод Открыть диалоговую форму может быть отменен обратным методом Закрыть диалоговую форму, а может быть прерван с тем же результатом).
В интеграционном интерфейсе Oktell-WebCRM отсутствует таким образом необходимость конкретизировать методы WebCRM. В момент настройки сценария Oktell администратор уже имеет о них информацию и настраивает конкретный сценарий под место.
Администратором определяется одно или несколько из доступных действий, определяется момент исполнения, определяются входные параметры или способ их вычисления, а также режим ожидания, таймаута или асинхронного выполнения. В момент работы Oktell отправляет команду на исполнение в соответствии с определенными администратором настройками. Если метод призван исполняться синхронно и возвращать некие значения, то сценарий приостанавливается, а после получения ответа сохраняет результаты в переменных сценария и продолжает выполнение. Работа с динамическими методами и формами производится в сценариях Oktell компонентом Действие в WebCRM.
Для примера: в момент поступления вызова Oktell определил номер абонента. Производит синхронное исполнение динамического метода WebCRM Вернуть ид компании по номеру телефона, дожидается ответа и принимает в сценарий значение. Далее исполняет динамический метод Ответственный сотрудник по компании, дожидается ответа и принимает в сценарий значение. Все это время абоненту проигрывается голосовое или музыкальное приветствие. Когда воспроизведение завершается, Oktell производит маршрутизацию в соответствии с вернувшимися значениями, а также в момент поступления звонка сотруднику исполняет динамический метод Открыть карточку компании с передачей в качестве параметра идентификатора, вернувшегося на первом шаге. В случае, если сотрудник не снимает трубку, Oktell отменяет исполнение метода, тем самым отдавая команду на закрытие карточки компании.
Ни об одном из перечисленных в примере методов WebCRM сервер Oktell не знает, зато знает администратор, настраивающий систему на работу совместно с WebCRM.
Подробно список и интерфейс методов динамического взаимодействия приведен в разделе Методы динамического взаимодействия.
Список методов интерфейса
Взаимодействие происходит путем обмена сообщениями по установившемуся транспортному каналу. Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение представляет собой байтовое представление текста с escape-последовательностями, описывающего объект в виде структуры JSON (возможен вариант XML), преобразованного через кодировку UTF8.
На первом уровне объекта - массив из двух значений: строковый кодовый идентификатор сообщения, именованный список параметров:
[ "messagecode", {"var1":"value1", "var2":"value2", ...} ]
В общем случае среди параметров могут присутствовать сложные объекты (массивы и словари):
"var1":["a", "b", "c"] или "var2":{"a":1, "b":2, "c":3}
В каждом сообщении присутствует параметр qid, содержащий уникальный строковый идентификатор сообщения, обеспечивающий возможность построения из сообщений серий вида «запрос-ответ». В случае, когда сообщение относится к конкретному пользователю (отправляется от его имени), в нем присутствуют параметры userlogin и userid. По умолчанию синхронизация учетных записей пользователей происходит по их уникальным логинам.
Обмен данными об активных пользователях
>>> getactiveusers
Запрос из Oktell в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения.
[ "getactiveusers", { "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7" } ]
<<< activeusers
Ответное сообщение из CRM в Oktell со списком активных авторизованных пользователей CRM.
[ "activeusers", { "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7", "users": [ {"userlogin": "ivanov", "userid": "20394857203948752345"}, {"userlogin": "petrov", "userid": "kasjdfhlaksjdfhlaks"}, {"userlogin": "sidorov", "userid": "987495873948573945"} ] } ]
<<< login
Сообщение из CRM в Oktell об авторизации пользователя. Запрос кросс-авторизации в Oktell.
[ "login", { "qid": "9D484E0E-BE08-47B5-ABBD-490936881056", "userlogin": "ivanov", "userid": "29834234234" } ]
>>> loginresult
Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Oktell, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers.
[ "loginresult", { "qid": "939AA33E-011F-4FEC-B60A-8BC1B4888B5A", "userlogin": "ivanov", "userid": "29834234234", "result": 0, "error": 50093, "errormsg": "Пользователь уже зарегистрирован" } ]
<<< logout
Сообщение из CRM в Oktell о выходе (логауте) пользователя. Команда на кросс-логаут в Oktell.
[ "logout", { "qid": "9D484E0E-BE08-47B5-ABBD-490936881056", "userlogin": "ivanov", "userid": "29834234234" } ]
>>> logoutresult
Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Oktell, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано).
[ "logoutresult", { "qid": "4B25E210-2D67-4675-A5AE-46DC9CBC32F9", "userlogin": "ivanov", "userid": "29834234234", "result": 1 } ]
>>> pbxnumberstatechanged
Сообщение из Oktell о смене состояния внутреннего номера (или группы внутренних номеров)
[ "pbxnumberstatechanged", { "qid": "5B9508DF-565B-44E1-A122-6FEB70ADA0B9", "numbers": [ {"num": "425", "numstateid": 3}, {"num": "427", "numstateid": 2}, {"num": "#82", "numstateid": 3} ] } ]
Обмен состояниями пользователей
>>> userstatechanged
Сообщение из Oktell в CRM о смене состояния пользователя в Oktell. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо.
[ "userstatechanged", { "qid": "66F8D479-0234-47DF-B043-3A065FF464A7", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "userstateid": 2, "onredirect": true, "onlunch": false, "oncallcenter": false } ]
<<< setuserstate
Запрос из CRM к Oktell на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged.
[ "setuserstate", { "qid": "2A45010A-8EEA-4876-90CB-F062459D4BE2", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "userstateid": 2, "onredirect": false, "lunchreasonid": 120, "lunchreasonmsg": "" } ]
//* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел.
<<< entercallcenter
Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
[ "entercallcenter", { "qid": "7DD2ED7A-B6BF-4988-A780-99719C65CA5D", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
<<< exitcallcenter
Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
[ "exitcallcenter", { "qid": "6E899456-C373-48EB-949E-E2C0D79D45EA", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
Текстовый чат
>>> usertextmessagereceived
Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата.
[ "usertextmessagereceived", { "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "messageid": "0263C7BF-DEB3-406F-9CF9-6F56D828C755", "snduserlogin": "Петров", "snduserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "sndusername": "Петров Антон Григорьевич", "messagetext": "раз два три четыре пять вышел зайчик погулять", "messagedate": "2011-03-27 14:12:28", } ]
>>> usertextmessageviewed
Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения.
[ "usertextmessageviewed", { "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "vieweduserid": "66D12297-E400-4862-BD24-F6DACCFDF9DA", "messageids": [ "0263C7BF-DEB3-406F-9CF9-6F56D828C755", "4B5110FD-899B-4429-A659-2B9695B4D89E" ] } ]
<<< sendusertextmessage
Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю.
[ "sendusertextmessage", { "qid": "F14F31B7-F203-4462-975F-3A37DD16240B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "messageid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240", "recvuserlogin": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240", "recvuserid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240", "messagetext": "раз два три четыре пять вышел зайчик погулять", } ]
<<< setusermessageviewed
Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid.
[ "setusermessageviewed", { "qid": "AA29AE60-50C3-48EE-A32E-3D98265D7412", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "senderuserid": "689BD58D-2288-4E93-8647-58FB0756F3CA", "messageids": [ "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240", "4748964E-9ADC-4999-9ACB-12B8B46660CF" ] } ]
Голосовая почта
>>> voicemailreceived
Сообщение из Oktell в CRM о факте поступления голосовой почты на ящик пользователя.
[ "voicemailreceived", { "qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
Всплывающие уведомления
>>> shownotifymessage
Сообщение(запрос) из Oktell об уведомлении пользователя по аналогии с всплывающими Oktellовскими уведомлениями
[ "shownotifymessage", { "qid": "99CC8C57-1793-486A-AFB1-6E5CA3E6855E", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "sender": "0263C7BF-DEB3-406F-9CF9-6F56D828C755", "text": "Петров", "autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "type": 262144, "backcolor": "00FF0000", "uniquekey": "E7899B61-55C3-4007-91EE-DDB348913AA8", } ]
//* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это) //* backcolor - hex AARRGGBB //* type - тип сообщения из флагового списка кратных двойке кодов
Сообщения от АТС
>>> phoneevent_ringstarted
Сообщение из Oktell в CRM о входящем звонке. Не имеет отношения к постановке звонка в очередь. Фактически когда телефон пользователя начал звенеть.
[ "phoneevent_ringstarted", { "qid": "00488421-97E4-443B-81B7-D645E403AEBB", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673", "callerlinenum": "13027", "callerdirection": "oktell_pbx", "callerid": "73439170203", "callername": "ОАО Металлург", "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов", "callerinfo": "Абонент: 315, Задача 'Входящие в коллцентр'", "callercomment": "Еще что-то об абоненте", "calleruserlogin": "", "calleruserid": "00000000-0000-0000-0000-000000000000", "isextline": true, "canfax": true, "canvideo": false, "isconference": false, "confid": "00000000-0000-0000-0000-000000000000", "confname": "", "confroom": 0, "confinviternumber": "", "confinviteruserid": "00000000-0000-0000-0000-000000000000", "confinviteruserlogin": "", "istask": true, "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD", "taskname": "Входящие в коллцентр" } ]
//* Частично могут отсутстовать параметры, описывающие абонента. // Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec // Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid // Если isconference=false, то отсутствует confid, confname, confroom
>>> phoneevent_ringstopped
Сообщение из Oktell в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился.
[ "phoneevent_ringstopped", { "qid": "BEB91146-BA27-4236-9CAC-EF562719E7E5", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718" } ]
>>> phoneevent_commstarted
Сообщение из Oktell в CRM о коммутации
[ "phoneevent_commstarted", { "qid": "B7ACFEC1-65BB-4773-A425-DC39F5D1A48C", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53" "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673", "callerlinenum": "13027", "callerid": "73439170203", "callername": "ОАО Металлург", "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов", "callerinfosimple": "Абонент: 315, Задача 'Входящие в коллцентр'", "callercomment": "Еще что-то об абоненте", "calleruserlogin": "", "calleruserid": "00000000-0000-0000-0000-000000000000", "isextline": true, "canfax": true, "canvideo": false, "cansendfiles": true, "canbuildconf": true, "isivrscript": false, "isconference": false, "confid": "00000000-0000-0000-0000-000000000000", "confname": "", "confroom": 0, "istask": true, "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD", "taskname": "Входящие в коллцентр", "tasktalklimitsec": 180, "taskfromhandlesec": 24 } ]
//* Частично могут отсутстовать параметры, описывающие абонента. // Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec // Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid // Если isconference=false, то отсутствует confid, confname, confroom
>>> phoneevent_commstopped
Сообщение из Oktell в CRM о завершении коммутации. Не путать со звонком. Коммутаций в рамках обработки звонка может быть много.
[ "phoneevent_commstopped", { "qid": "D514511C-BD4F-406B-B9C7-695CDC6C40E7", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53" } ]
>>> phoneevent_ivrstarted
Сообщение из Oktell в CRM о соединении с IVR-сценарием.
[ "phoneevent_ivrstarted", { "qid": "46E07742-0B24-4DD6-B4C6-12CDC1F7B938", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "scriptname": "(Служебный) Вход в АТС", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53" } ]
>>> phoneevent_ivrstopped
Сообщение из Oktell в CRM о завершении соединения с IVR сценарием.
[ "phoneevent_ivrstopped", { "qid": "FC9DD78C-1A5F-4E06-9AB5-A9CEDE025F6A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
>>> phoneevent_acmcallstarted
Сообщение из Oktell в CRM о запуске автодозвона.
[ "phoneevent_acmcallstarted", { "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "callnumber": "471", "isextline": false, "callername": "Сигизмунд Львович Кац", } ]
>>> phoneevent_acmcallstopped
Сообщение из Oktell в CRM об остановке автодозвона.
[ "phoneevent_acmcallstopped", { "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", } ]
>>> phoneevent_faxstarted
Сообщение из Oktell о начале факс-сеанса на оппозитном канале.
[ "phoneevent_faxstarted", { "qid": "28979AE8-8E06-4EED-9114-98CB126CA8F4", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "opponentlineid": "BC1FD50B-651F-459D-B659-28230E919673", "faxdirection": "send", "description": "" } ]
>>> phoneevent_faxstopped
Сообщение из Oktell о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там).
[ "phoneevent_faxstopped", { "qid": "324CD087-BC2D-4FF3-A9BD-86A7276A4DED", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", "result": 0, "error": 65289, "errormsg": "NoFaxPages" } ]
>>> phoneevent_faxreceived
Cообщение из Oktell о завершении приема факса со ссылками на файлы.
[ "phoneevent_faxreceived", { "qid": "C20E48DF-628D-4954-ADDE-D2C3B31C6700", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 1, "files": [ { "filename": "", "filesize": 172934, "filelink": "\/temp\/receivedfax\/a802d3ea\/img01.tiff", "availabletill": "2011-03-27 23:39:18", }, {...}, {...} ] } ]
//* Даже если result=0, могут быть частично полученные файлы.
Команды к АТС
<<< pbxautocallstart
Запрос из CRM к Oktell на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя.
[ "pbxautocallstart", { "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "number": "425", "direction": "int", "sequence": "abonent" } ]
//* direction: int, ext, undefined, - //* sequence: abonent, user, -
>>> pbxautocallstartresult
Ответ из Oktell в CRM на запрос звонка.
[ "pbxautocallstartresult", { "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "number": "425", "direction": "int", "sequence": "abonent", "result": 0, "error": 5, "errormsg": "cntNumberNotFound" } ]
//* error, errormsg: EACMAnswer: //* cntStartedSuccessfully = 0 //Звонок успешно взят в реализацию //* cntUserNotReady = 1 //У осуществляющего вызов пользователя не найдены линии, готовые линии, или состояние кривое //* cntBusy = 2 //При звонке на внутренний номер - признак занятости. В очереди и сам повисеть может //* cntExtLineNotFound = 3, //Не найдены готовые внешние линии //* cntError = 4, //Прочие ошибки, исключения. //* cntControlNotReady = 5, //Режим не доделан. //* cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если сервер сам будет определять направление звонка, это вообще не будет задействовано)
<<< pbxautocallabort
Запрос из CRM к Oktell на прекращение автодозвона
[ "pbxautocallabort", { "qid": "28BF3E8F-1F97-47AB-BD42-92D174D4A705", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
<<< pbxtransfercall
Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер.
[ "pbxtransfercall", { "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "number": "425", "direction": "int", "sequence": "abonent" } ]
>>> pbxtransfercallresult
И аналогичный ответ из Oktell в CRM.
[ "pbxtransfercallresult", { "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "number": "425", "direction": "int", "sequence": "abonent", "result": 0, "error": 5, "errormsg": "cntNumberNotFound" } ]
>>> pbxdeclinecall
Запрос из CRM к Oktell на отклонение звонка.
[ "pbxdeclinecall", { "qid": "0AFB2B0C-A68F-448B-9B4B-AB42096D4E95", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
<<< pbxabortcall
Запрос из CRM к Oktell на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен.
[ "pbxabortcall", { "qid": "53F2EE86-46AF-4A37-8C60-2F27EADD10DE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
<<< pbxmakeflash
Запрос из CRM в Oktell на программную эмуляцию флэш.
[ "pbxmakeflash", { "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
Запуск служебного сценария
<<< startsvcscript
Запрос из CRM в Oktell на запуск служебного сценария.
[ "startsvcscript", { "qid": "244E3867-470E-4A56-904D-D435D57CFBFE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "scriptname": "Служебный сценарий получения почты", "startparam1": "значение параметра 1", "startparam2": "значение параметра 2", "startparam3": "значение параметра 3", "startparam4": "значение параметра 4", "startparam5": "значение параметра 5", "waitresponse": true, "waittimeoutsec": 10 } ]
>>> startsvcscriptresult
Ответ Oktell на запрос запуска служебного сценария.
[ "startsvcscriptresult", { "qid": "244E3867-470E-4A56-904D-D435D57CFBFE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "scriptname": "Служебный сценарий получения почты", "result": 0, "returnvalue": "присвоенный в сценарии результат", "error": 10 } ]
//* error: 10 - файл не найден, 11 - исключение, 12 - таймаут
Методы динамического взаимодействия
Информация от CRM о поддерживаемых методах, доступных Oktell для инициации исполнения.
Серия методов forms - частный случай методов, позволяющий выделить в отдельную категорию работу с карточками. Смысл и способ работы тот же самый. Тем не менее карточки могут быть представлены как методы.
Методы:
- >>> getavailablemethods
- <<< availablemethods
- >>> executemethod
- >>> cancelmethod
- <<< methodresult
Формы:
- >>> getavailableforms
- <<< availableforms
- >>> showform
- >>> closeform
- <<< formresult
>>> getavailablemethods
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных динамических методов CRM.
[ "getavailablemethods", { "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170" } ]
<<< availablemethods
Сообщение-ответ из CRM в Oktell со списком доступных динамических методов CRM.
[ "availablemethods", { "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170", "methods": [ { "key": "16893E86-4D73-4F4C-8629-6E484B2CB5B0", "name": "Вернуть данные о компании", "description": "Возвращает информацию о компании по одному из выбранных идентификаторов, чтобы в дальнейшем использовать при открытии карточки данных о компании", "connectiontype": "http", "defineuser": false, "allowcancel": false, "inputparams": [ { "key": "type", "name": "Тип поиска", "description": "", "type": "list", "items": [ { id: "byphone", name: "По номеру телефона" }, { id: "byaccount", name: "По номеру договора" } ] }, { "key": "data", "name": "Значение идентификатора", "description": "Номер телефона или номер договора (в соответствии с выбранным типом)", "type": "string" }, {...}, {...} ] "outputparams": [ { "key": "accountid", "name": "Идентификатор клиента", "description": "Для дальнейшей передачи на отображение карточки", "type": "string" }, {...}, {...} ] }, { "key": "createrecord", "name": "Создать новое дело", "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке", "connectiontype": "websock", "defineuser": true, "allowcancel": false, "inputparams": [ { "key": "sessionid", "name": "Идентификатор сессии звонка", "description": "Для связи с номером дела", "type": "string" } ], "outputparams": [ { "key": "recordid", "name": "Идентификатор созданного дела", "description": "Для дальнейшей передачи на отображение карточки", "type": "string" } {...}, {...} ] }, { "key": "card_records", "name": "Показать карточку «ДЕЛА»", "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке", "connectiontype": "websock", "defineuser": true, "allowcancel": true, "inputparams": [ { "key": "recordid", "name": "Номер дела", "description": "Номер дела, который ранее был создан при вызове метода «Создать запись дела»", "type": "string" }, { "key": "accountid", "name": "Идентификатор клиента", "description": "Идентификатор клиента в базе данных CRM", "type": "string" }, {...}, {...} ] }, {...}, {...} ] } ]
>>> executemethod
Сообщение-команда из Oktell в CRM на выполнение динамического метода (возможно у конкретного пользователя).
[ "executemethod", { "qid": "4A8E20A1-57F9-4CA6-B4EE-221E2EB00364", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "methodkey": "createrecord", "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86", "inputparameters": { "sessionid": "2A2C48FE-D8B6-4B51-951A-09D31543D000" } } ]
<<< methodresult
Сообщение-результат выполнения динамического метода из CRM в Oktell с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod.
[ "methodresult", { "qid": "A238110C-6B74-4980-AA23-41402B1E9B0E", "methodkey": "createrecord", "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86", "outputparameters": { "recordid": "ADCB1376-BA66-496C-A56E-AB7A7D5A9193" } } ]
>>> cancelmethod
Сообщение-команда из Oktell на прекращение выполнения ранее запущенного динамического метода.
[ "cancelmethod", { "qid": "6ADC3F1E-B1DD-4768-BAF8-3EEB477B2F17", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "methodkey": "card_records", "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86", "forcecancel": 0 } ]
>>> getavailableforms
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных карточек CRM.
[ "getavailableforms", { "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E" } ]
<<< availableforms
Cообщение-ответ из CRM в Oktell со списком доступных карточек CRM.
[ "availableforms", { "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E", "forms": [ { "key": "B840825C-95BB-49B8-9B30-74D3225701BF", "name": "Данные о компании", "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке", "inputparams": [ { "key": "accountid", "name": "Код компании", "description": "Код компании, который CRM возвращает в поле [accountid] в ответ на запрос данных о компании по номеру телефона", "type": "string" }, { "key": "page", "name": "Активная страница", "description": "Открываемая страница формы по умолчанию при открытии карточки", "type": "list", "items": [ { id: "page1", name: "Контактные данные" }, { id: "page2", name: "История взаимодействия" }, { id: "page3", name: "Комментарии" } ] {...}, {...} ] }, {...}, {...} ] } ]
>>> showform
Сообщение-команда из Oktell в CRM на открытие карточки у конкретного пользователя.
[ "showform", { "qid": "5CF770AE-E308-41DA-B89E-7BBCE75BE36F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF", "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40", "inputparameters": { "accountid": "05379F49-AB22-4872-B2C2-0D4BA019EA0B", "page": "page2" } } ]
<<< formresult
Сообщение-результат из CRM в Oktell при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой CloseForm
[ "formresult", { "qid": "EC9E1619-AC1B-4071-98B9-30808B9ED0EC", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "formkey": "EC9E1619-AC1B-4071-98B9-30808B9ED0EC", "windowid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86", "outputparameters": { "comment": "блаблабла" } } ]
>>> closeform
Сообщение-команда из Oktell на закрытие карточки у конкретного пользователя.
[ "closeform", { "qid": "FAA1A503-FEC6-4D23-ADA9-2E4FD63F2C96", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF", "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40", "forceclose": 0 } ]
Конференц-связь
Запросы из CRM, ответы от Oktell, события из Oktell
<<< confhandleevent
Подписка/отписка на указанную категорию событий сервера конференций.
[ "confhandleevent", { "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "eventtype": "competitors", "handle": true } ]
//* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates // предполагается, что в общем случае инфа идет только о списке конференций (conferences) // когда юзер находится в конференции - дополнительно о внутреннем состоянии конференции (competitors) // когда юзер настраивает конференцию и выбирает из списка участников для автоматического приглашения - о состояниях всех пользователей (userstates) // Подписками управляет сам внешний модуль. Когда потребность уходит - необходимо отписываться, чтобы не заваливать канал порожняком. //* handle - true|false - подписаться/отписаться
<<< checkcanconnecttogathertoconference
Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь.
[ "checkcanconnecttogathertoconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
>>> confcheckcanconnecttogatherresult
Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию.
[ "confcheckcanconnecttogatherresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "canconnecttogather": true, "inconference": false, } ]
<<< connecttogathertoconference
Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию.
[ "connecttogathertoconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
<<< buildconferencefromcommutation
Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками.
[ "buildconferencefromcommutation", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
<<< attachasghost
Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь.
[ "attachasghost", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "ghostedid": "FE9D6B52-C267-4D39-AC9F-81A0F44713FF", "ghostedlogin": "Петров" } ]
>>> attachasghostresult
Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку.
[ "attachasghostresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 0, "error": 52703 } ]
//* ghostedid - ид пользователя или линии, к которому подцепляться для прослушки //* ghostedlogin - логин пользователя, к которому подцепляться для прослушки
<<< getconferences
Запрос из CRM в Oktell на возврат текущих активных конференц-сессий.
[ "getconferences", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
>>> getconferencesresult
Ответ из Oktell в CRM со списком текущих активных конференц-сессий.
[ "getconferencesresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferencelist": [ { "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "room": 884, "name": "Планерка", "description": "", "accessmode": 11, "accessmodestr": "Free", "isselector": true, "record": true, "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "creatorlogin": "Иванов", "creatorname": "Иван Иванович Иванов", "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "directorlogin": "Петров", "directorname": "Петр Петрович Петров", "timestart": "2011-04-03 17:58:22", "canvieweachother": true, "everyonecaninvite": true, "recordrights": 2, "recordrightsstr": "Competitors", "isghost": false, "ghostmode": 11, "ghostmodestr": "Monitor" }, {...}, {...} ] } ]
<<< getconferencecompetitors
Запрос из CRM в Oktell на возврат текущих участников указанной конференции.
[ "getconferencecompetitors", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22" } ]
>>> getconferencecompetitorsresult
Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции.
[ "getconferencecompetitorsresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22", "competitorlist": [ { "competitorid": "65AC0E98-64DE-41CF-B609-D00A4C8B07FD", "chainid": "91687102-E19F-466C-A0BE-B6C3EEF83EE7", "sessionid": "91687102-E19F-466C-A0BE-B6C3EEF83EE7", "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "username": "Петр Петрович Петров", "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "linenumber": "17004", "number": "472", "intnumber": "472", "extnumber": "", "confstate": 11, "confstatestr": "OnlineTalking", "wanttalk": false, "isdirector": true, "iscreator": false, "isghost": false, "isghostmajor": false, "islifebuoy": false }, {...}, {...} ] } ]
<<< getusersforconferenceinvitelist
Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях).
[ "getusersforconferenceinvitelist", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
>>> getusersforconferenceinvitelistresult
Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях.
[ "getusersforconferenceinvitelistresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "possiblecompetitorlist": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "username": "Петр Петрович Петров", "groupid": "F72C315A-F9EA-471E-A679-D4BA4797DB51", "groupname": "Руководство" "userstate": 5, "userstatestr": "usFullbusy", "isredirect": false, "islunch": false, "inconference": true, "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22", "confstate": 11, "confstatestr": "OnlineTalking" }, {...}, {...} ], "result": 1 } ]
<<< createnewconference
Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте.
[ "createnewconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conference": { "id": "17A3F9D2-040C-471B-A4F5-6A13BEB27667", "room": 578 "name": "Совещание с заказчиком", "description": "", "accessmode": "free", "isselector": true, "record": true, "recordrights": "selected", "everyonecaninvite": true, "canvieweachother": true }, "competitors": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "intnumber": "472", "extnumber": "89047289889", "cantalk": true }, {...}, {...} ], "recordusers": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", }, {...}, {...} ] } ]
>>> createnewconferenceresult
Ответ из Oktell в CRM с результатом исполнения команды на создание конференции.
[ "createnewconferenceresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 0, "error": 1, "errormsg": "alreadyexists", } ]
//* conference:accessmode - free|shared|closed //* conference:recordrights - director|competitors|selected //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber} //* список recordusers имеет смысл только когда conference:recordrights=selected.
<<< setupexistingconference
Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции.
[ "setupexistingconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conference": { "id": "17A3F9D2-040C-471B-A4F5-6A13BEB27667", "room": 578 "name": "Совещание с заказчиком", "description": "", "accessmode": "free", "isselector": true, "recordrights": "selected", "everyonecaninvite": true, "canvieweachother": true, "ghostmode": "monitor" }, "recordusers": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", }, {...}, {...} ] } ]
>>> setupexistingconferenceresult
Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции.
[ "setupexistingconferenceresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 0, "error": 1, "errormsg": "notfound", } ]
//* conference:accessmode - free|shared|closed //* conference:recordrights - director|competitors|selected //* conference:ghostmode - monitor|help|talk //* список recordusers имеет смысл только когда conference:recordrights=selected.
<<< getconferenceinfo
Запрос из CRM в Oktell на возврат текущих параметров указанной конференции.
[ "getconferenceinfo", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" } ]
>>> getconferenceinforesult
Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния.
[ "getconferenceinforesult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 1, "conference": { "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "room": 884, "name": "Планерка", "description": "", "accessmode": 11, "accessmodestr": "Free", "isselector": true, "record": true, "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "creatorlogin": "Иванов", "creatorname": "Иван Иванович Иванов", "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "directorlogin": "Петров", "directorname": "Петр Петрович Петров", "timestart": "2011-04-03 17:58:22", "canvieweachother": true, "everyonecaninvite": true, "recordrights": 2, "recordrightsstr": "Competitors", "isghost": false, "ghostmode": 11, "ghostmodestr": "Monitor" }, "competitors": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "intnumber": "472", "extnumber": "89047289889", "cantalk": true }, {...}, {...} ], "recordusers": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", }, {...}, {...} ] } ]
<<< stopconference
Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции.
[ "stopconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" } ]
>>> stopconferenceresult
Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции.
[ "stopconferenceresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 0, "error": 1, "errormsg": "accessdenied" } ]
<<< confsetvoiceparams
Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции.
[ "confsetvoiceparams", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "competitor": { "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782", "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "cantalk": true, "canlisten": true, "ghosthelp": false } } ]
>>> confsetvoiceparamsresult
Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала.
[ "confsetvoiceparamsresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 0, "error": 1, "errormsg": "accessdenied" } ]
//* competitor:cantalk - может ли говорить //* competitor:canlisten - может ли слышать //* competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов - может ли слышать подключившегося супервизора //* достаточно/следует указывать только один из набора определяющих участника идентификаторов {competitorid, userid|userlogin, lineid}
<<< confsetwanttalk
Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего).
[ "confsetwanttalk", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "wanttalk": true } ]
>>> confsetwanttalkresult
Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса.
[ "confsetwanttalkresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
<<< confsetghostmode
Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи.
[ "confsetghostmode", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "ghostmode": "help", } ]
>>> confsetghostmoderesult
Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи.
[ "confsetghostmoderesult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
<<< exitconference
Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне.
[ "exitconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" } ]
>>> exitconferenceresult
Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции.
[ "exitconferenceresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
<<< confdisconnectcompetitor
Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника.
[ "confdisconnectcompetitor", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "competitor": { "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782", "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", } } ]
>>> confdisconnectcompetitorresult
Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника.
[ "confdisconnectcompetitorresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
<<< enterconference
Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference
[ "enterconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" } ]
>>> enterconferenceresult
Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию.
[ "enterconferenceresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
<<< confdisconnectcompetitor
Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа.
[ "confpermitdenyentrance", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "competitor": { "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782", "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "permit": true } } ]
>>> confpermitdenyentranceresult
Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику.
[ "confpermitdenyentranceresult", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
<<< invitetoconference
Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру).
[ "invitetoconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "competitors": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "intnumber": "472", "extnumber": "89047289889", "cantalk": true }, {...}, {...} ] } ]
>>> invitetoconference
Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции.
[ "invitetoconference", { "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "result": 1 } ]
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
События из Oktell, касающиеся конференций
>>> conflistchanged
Событие из Oktell в CRM об изменении списка текущих активных конференций.
[ "conflistchanged", { "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A", "conferencelist": [ { "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", "room": 884, "name": "Планерка", "description": "", "accessmode": 11, "accessmodestr": "Free", "isselector": true, "record": true, "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "creatorlogin": "Иванов", "creatorname": "Иван Иванович Иванов", "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "directorlogin": "Петров", "directorname": "Петр Петрович Петров", "timestart": "2011-04-03 17:58:22", "canvieweachother": true, "everyonecaninvite": true, "recordrights": 2, "recordrightsstr": "Competitors", "isghost": false, "ghostmode": 11, "ghostmodestr": "Monitor" }, {...}, {...} ] } ]
>>> "conf***"
Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже.
[ "conf***", { "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "eventinfo": { *** } } ]
//* confparamschanged, //* confcompositionchanged, //* confcompetitorstatechanged, //* confentrancedenied, //* confentrancepermitted, //* confentrancerequest, //* confnotifyinvite, //* confpossiblecompetitorstatechanged
Состояния пользователей и линий
<<< getuserstate
Запрос из CRM в Oktell состояния указанного пользователя системы.
[ "getuserstate", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
>>> getuserstateresult
Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы.
[ "getuserstateresult", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "userstate": 5, "userstateid": 5, "userstatestr": "usFullbusy", "onredirect": true, "onlunch": false, "oncallcenter": false } ]
<<< checkuserintask
Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра.
[ "checkuserintask", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
>>> checkuserintaskresult
Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа.
[ "checkuserintaskresult", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "intask": true, "task": {, "id": "1D565B41-1D16-46DE-B2C5-CF55ED5279F0", "name": "Исходящий обзвон", "code": "af-2329", "direction": "outgoing", "contacttype": 0, "contacttypestr": "Call", "projectid": "E6ADBA0D-C9FF-40F2-96FF-6D2F455F9D5A" } } ]
<<< getcurrentlinestate
Запрос из CRM в Oktell состояния телефонной линии указанного пользователя.
[ "getcurrentlinestate", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
>>> getcurrentlinestateresult
Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы.
[ "getcurrentlinestateresult", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "hasline": true, "lineid": "866692FC-DA08-459D-BAA1-428F9BA6A0D1", "linenumber": "17012", "linetype": 5, "linetypestr": "ltIntIP", "linestate": 32, "linestatestr": "lsCommutated" } ]
<<< getcurrentlinestate
Запрос из CRM в Oktell состояния очереди указанного пользователя.
[ "getcurrentqueue", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
>>> getcurrentlinestateresult
Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы.
[ "getcurrentqueueresult", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "queue": [ { "objectid": "723114EE-2ABF-4806-9BC6-FBB532C31B44", "objecttype": 0, "objecttypestr": "qotQueueLogic", "queuesource": 1, "queuesourcestr": "qsLineLogic", "queuepriority": 9, "srcelementid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "srclineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "srclinenumber": "17004", "startqueuetime": "2011-04-05 15:02:28", "lenqueue": 72, "managedlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "managedlinenumber": "17004", "callerid": "472", "calledid": "479", "isuser": true, "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "username": "Петр Петрович Петров", "department": "Руководство", "chainid": "02B99AD3-C954-4FD3-B07D-DFEDD83C0BF5", "istask": true, "taskid": "95575C37-5FDE-412C-8F42-36D55B1EC6BB", "taskname": "Входящая кампания", "taskdirection": "incoming", "tasklistid": "7D9A3E9C-0AD3-4C68-BC02-4EBFE3684507", "tasklistinfo": [ { "key": "Название организации", "value": "ООО МДГХ" }, {...}, {...} ] }, {...}, {...} ] } ]
<<< getcallingoutabonentinfo
Запрос из CRM в Oktell на возврат информации об абоненте, которому осуществляется исходящий вызов от имени указанного пользователя.
[ "getcallingoutabonentinfo", { "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
>>> getcallingoutabonentinforesult
Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя.
[ "getcallingoutabonentinforesult", { "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", "number": "89032728973", "name": "", "lineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F", "linenumber": "13005" } ]
Контент звонка
<<< getchaincontent
Запрос из CRM в Oktell на возврат контента текущей сессии, в которой участвует линия указанного пользователя. Кто инициировал звонок, когда, с кем коммутировался, кто переключал, куда, на кого, когда, были ли комментарии какие-то установлены в контент...
[ "getchaincontent", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" } ]
>>> getchaincontentresult
Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя.
[ "getchaincontentresult", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", "result": 1, "content": { "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", "createtime": "2011-04-06 20:38:41", "customfield": "трололололо", "trace": [ { "contentelementtype": "call", "pbxdirection": "internal", "objectid": "723114EE-2ABF-4806-9BC6-FBB532C31B44", "objecttype": 0, "objecttypestr": "qotQueueLogic", "queuesource": 5, "queuesourcestr": "qsIncomingTask", "queuepriority": 7, "srcelementid": "98F670D2-20E2-4883-B45E-42CDE1F3365F", "srclineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F", "srclinenumber": "13005", "startqueuetime": "2011-04-06 20:38:41", "managedlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "managedlinenumber": "17004", "callerid": "89048928835", "calledid": "4959211586", "isuser": false, "department": "", "istask": true, "taskid": "95575C37-5FDE-412C-8F42-36D55B1EC6BB", "taskname": "Входящая кампания", "taskdirection": "incoming", "tasklistid": "7D9A3E9C-0AD3-4C68-BC02-4EBFE3684507", "tasklistinfo": [ { "key": "Название организации", "value": "ООО МДГХ" } ] }, { "contentelementtype": "commutation", "commutationid": "58D76504-DA2D-42C2-9016-1089A94DC1BF", "timestart": "2011-04-06 20:40:01", "timeanswer": "2011-04-06 20:40:04", "connectiontype": 5, "connectiontypestr": "ctOuterInner", "isrecorded": true, "customfield": "траляляляля", "alineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F", "alinenumber": "13005", "anumberdialed": "4959211586", "aoutnumber": "89048928835", "aisuser": false, "atext": "ООО «СДЗЦ» (89048928835)", "blineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", "blinenumber": "17004", "bnumberdialed": "", "boutnumber": "472", "bisuser": true, "buserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "buserlogin": "Петров", "busername": "Петр Петрович Петров", "btext": "Петр Петрович Петров", "timestop": "2011-04-06 20:42:12", "length": 128.32, "stopside": "a", "stopreason": 2, "stopreasonstr": "scrAbonentHangOff" }, {...}, {...} ] } } ]
* trace:contentelementtype:
<<< setchaincontentcustomfield
Запрос из CRM в Oktell на установку комментария в контент текущей сессии, в которой участвует канал указанного пользователя.
[ "setchaincontentcustomfield", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "customfield": "фывафыдвлаожфыдлвао" } ]
>>> setchaincontentcustomfieldresult
Ответ из Oktell в CRM с результатом установки комментария в контент текущей сессии, в которой участвует канал указанного в запросе пользователя.
[ "setchaincontentcustomfieldresult", { "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", "result": 1 } ]
<<< setchaincontentcustomfield
Запрос из CRM в Oktell на возврат комментария из контента текущей сессии, в которой участвует канал указанного пользователя.
[ "getchaincontentcustomfield", { "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", } ]
>>> getchaincontentcustomfieldresult
Ответ из Oktell в CRM. Возвращает комментарий из контента текущей сессии, в которой участвует канал указанного в запросе пользователя.
[ "getchaincontentcustomfieldresult", { "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", "customfield": "фывафыдвлаожфыдлвао", "result": 1 } ]
Номерной план
<<< getusersbynumbers
Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя.
[ "getusersbynumbers", { "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "numbers": [ "883", "470", "472", "485" ] } ]
>>> getusersbynumbersresult
Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
[ "getusersbynumbersresult", { "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 1, "users": [ { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "username": "Петр Петрович Петров", }, { "userid": "2AC66E31-ADF0-4F84-A589-417A5A599EEA", "userlogin": "Сидоров", "username": "Сидор Сидорович Сидоров" } ] } ]
<<< getitemsbynumbers
Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя.
[ "getitemsbynumbers", { "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "numbers": [ "883", "470", "472", "485" ] } ]
>>> getitemsbynumbersresult
Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
[ "getitemsbynumbersresult", { "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 1, "items": [ { "type": "user", "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров", "username": "Петр Петрович Петров", }, { "type": "user", "userid": "2AC66E31-ADF0-4F84-A589-417A5A599EEA", "userlogin": "Сидоров", "username": "Сидор Сидорович Сидоров" }, { "type": "line", "lineid": "50203B8C-8079-4B52-8D24-ECDA4BF7877A", "linenumber": "17025" } ] } ]
<<< getsystemnumberbyuser
Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя.
[ "getsystemnumberbyuser", { "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "user": { "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "userlogin": "Петров" } } ]
>>> getsystemnumberbyuserresult
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
[ "getsystemnumberbyuserresult", { "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "result": 1, "systemnumber": "U28CA980EF9F84B83B4934454AA54FCD8" ] } ]
<<< getpbxnumbersforitem
Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя.
[ "getpbxnumbersforitem", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" "itemtype": "user", "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "itemuserlogin: "Петров" } ]
>>> getpbxnumbersforitemresult
Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса.
[ "getpbxnumbersforitemresult", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "itemtype": "user", "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "itemuserlogin: "Петров", "itemnumbers": "403, 472" } ]
/* "itemtype": "line", /* "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", /* "itemlinenumber": "17004"
<<< getmainpbxnumberforitem
Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре.
[ "getmainpbxnumberforitem", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" "itemtype": "user", "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "itemuserlogin: "Петров" } ]
>>> getmainpbxnumberforitemresult
Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса.
[ "getmainpbxnumberforitemresult", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "itemtype": "user", "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", "itemuserlogin: "Петров", "itemnumber": "472" } ]
/* "itemtype": "line", /* "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", /* "itemlinenumber": "17004"
<<< getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
[ "getpbxnumbers", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "mode": "simple" } ]
<<< getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
[ "getpbxnumbers", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "mode": "simple" } ]
>>> getpbxnumbersresult
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде.
[ "getpbxnumbersresult", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "mode": "simple", "numbers": [ "401", "402", "403", "404", "405", "471", "472", "473" ] } ]
<<< getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
[ "getpbxnumbers", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "mode": "full" } ]
<<< getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
[ "getpbxnumbers", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "mode": "full" } ]
>>> getpbxnumbersresult
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями.
[ "getpbxnumbersresult", { "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", "userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", "mode": "full", "numbers": [ { "id": "9079E514-FECF-4DFD-BF48-5EDE4241E3A1", "number": "472", "type": 0, "typestr": "intRule", "isgroup": false, "caption": "Петров", "state": 5, "statestr": "usFullbusy", "department": "Руководство" }, {...}, {...} ] } ]
/* number:type - intRule(0)|intFast(2)|intIVR(3)|intEmergency(4) /* number:state - usDisconnected(0)|usReady(1)|usLunch(2)|usOff(3)|usFullbusy(5)|usReserved(6)|usWOPhone(7)|usError(100)|usRinging(201)