Oktell Web-Socket Protocol — различия между версиями
Peter (обсуждение | вклад) |
Peter (обсуждение | вклад) |
||
| Строка 390: | Строка 390: | ||
====Обмен состояниями пользователей==== | ====Обмен состояниями пользователей==== | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| Строка 587: | Строка 542: | ||
<span style="color:green">>>> '''shownotifymessage'''</span> | <span style="color:green">>>> '''shownotifymessage'''</span> | ||
| − | + | Команда из Oktell в CRM об уведомлении пользователя по аналогии с всплывающими уведомлениями клиентского приложения Oktell | |
<pre> | <pre> | ||
| Строка 596: | Строка 551: | ||
"userlogin": "Иванов", | "userlogin": "Иванов", | ||
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| − | " | + | "id": "A33027E1-096F-38B8-1198-BB4D7C15823A", |
| + | "sender": "АТС", | ||
"text": "Петров", | "text": "Петров", | ||
| + | "savedb": "true", | ||
"autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | "autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | ||
| + | "dtformat": "dd.MM.yyyy HH:mm:ss", | ||
| + | "dt": "25.09.2011 13:07:12", | ||
"type": 262144, | "type": 262144, | ||
"backcolor": "00FF0000", | "backcolor": "00FF0000", | ||
| Строка 606: | Строка 565: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
| + | //* id - идентификатор сообщения. Присутствует, если сообщение сохранено в БД. | ||
| + | //* savedb: true|false. Сохранено ли сообщение в БД. | ||
| + | //* dt - дата/время генерации уведомления. | ||
//* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только | //* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только | ||
одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это) | одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это) | ||
| + | //* backcolor - hex AARRGGBB | ||
| + | //* type - тип сообщения из флагового списка кратных двойке кодов | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------- | ||
| + | <span style="color:green"><<< '''setnotifyshown'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell об установке признака прочтенности уведомления. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setnotifyshown", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "id": "A33027E1-096F-38B8-1198-BB4D7C15823A", | ||
| + | "wasshown": false | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* id - идентификатор сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только | ||
| + | одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это) | ||
| + | //* ids - список идентификаторов отображенных уведомлений. | ||
//* backcolor - hex AARRGGBB | //* backcolor - hex AARRGGBB | ||
//* type - тип сообщения из флагового списка кратных двойке кодов | //* type - тип сообщения из флагового списка кратных двойке кодов | ||
| Строка 814: | Строка 803: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "phoneevent_acmcallstopped", | |
| − | + | { | |
| − | + | "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 832: | Строка 821: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 853: | Строка 842: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* error: список FaxError | ||
</pre> | </pre> | ||
| Строка 874: | Строка 866: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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", | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | //* Даже если result=0, могут быть частично полученные файлы. | |
</pre> | </pre> | ||
| Строка 917: | Строка 909: | ||
"number": "425", | "number": "425", | ||
"direction": "int", | "direction": "int", | ||
| − | "sequence": "abonent" | + | "sequence": "abonent", |
| + | "intercom": false | ||
} | } | ||
] | ] | ||
| Строка 924: | Строка 917: | ||
//* direction: int, ext, undefined (внутрь, наружу, автоопределение) | //* direction: int, ext, undefined (внутрь, наружу, автоопределение) | ||
//* sequence: abonent, user (сначала до абонента, сначала до пользователя) | //* sequence: abonent, user (сначала до абонента, сначала до пользователя) | ||
| + | //* intercom: true|false (интерком-вызов, обычный вызов) | ||
</pre> | </pre> | ||
| − | + | ||
<span style="color:green">>>> '''pbxautocallstartresult'''</span> | <span style="color:green">>>> '''pbxautocallstartresult'''</span> | ||
| Строка 956: | Строка 950: | ||
//* cntControlNotReady = 5, //Режим не доделан. | //* cntControlNotReady = 5, //Режим не доделан. | ||
//* cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если сервер сам будет определять | //* cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если сервер сам будет определять | ||
| − | + | направление звонка, это вообще не будет задействовано) | |
</pre> | </pre> | ||
| Строка 990: | Строка 984: | ||
"number": "425", | "number": "425", | ||
"direction": "int", | "direction": "int", | ||
| − | "sequence": "abonent" | + | "sequence": "abonent", |
| + | "intercom": false | ||
} | } | ||
] | ] | ||
</pre> | </pre> | ||
| − | + | ||
<span style="color:green">>>> '''pbxtransfercallresult'''</span> | <span style="color:green">>>> '''pbxtransfercallresult'''</span> | ||
| Строка 1064: | Строка 1059: | ||
"userlogin": "Иванов", | "userlogin": "Иванов", | ||
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "mode": "default" | ||
} | } | ||
] | ] | ||
</pre> | </pre> | ||
| + | <pre> | ||
| + | //* mode - abort, switch, next - устанавливает поведение, если на удержании уже находится абонент. | ||
| + | abort - обрыв текущему и переключение на того кто на удержании | ||
| + | switch - возврат к тому, кто на удержании, с размещением текущего на удержании | ||
| + | next - обрыв текущему и переход сразу в набор номера | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------- | ||
| + | <span style="color:green"><<< '''pbxclearflash'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на обрыв линии, находящейся на удержании. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "pbxclearflash", | ||
| + | { | ||
| + | "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | } | ||
| + | ] | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------- | ||
| + | <span style="color:green"><<< '''pbxfaxreceive'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на переключение в прием факса. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "pbxfaxreceive", | ||
| + | { | ||
| + | "qid": "59305AD1-40A5-476A-B76D-2DAB1F2A89D3", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "linkmode": "simple" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* linkmode - full, simple - устанавливает формат ссылок, в котором будут указаны полученные файлы | ||
| + | в событии об окончании приема. | ||
| + | full - вернуть абсолютную ссылку на скачивание через http. | ||
| + | simple - вернуть относительную ссылку на скачивание. | ||
| + | При формировании абсолютной ссылки в качестве доменного имени берется значение из | ||
| + | раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green"><<< '''pbxfaxstop'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на прерывание приема/передачи факса. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "pbxfaxstop", | ||
| + | { | ||
| + | "qid": "59305AD1-40A5-476A-B76D-2DAB1F2A89D3", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------- | ||
| + | <span style="color:green"><<< '''pbxmakeflash'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на программную эмуляцию флэш. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "pbxmakeflash", | ||
| + | { | ||
| + | "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "mode": "default" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* mode - abort, switch, next - устанавливает поведение, если на удержании уже находится абонент. | ||
| + | abort - обрыв текущему и переключение на того кто на удержании | ||
| + | switch - возврат к тому, кто на удержании, с размещением текущего на удержании | ||
| + | next - обрыв текущему и переход сразу в набор номера | ||
| + | </pre> | ||
| + | |||
| Строка 1075: | Строка 1162: | ||
------------------------------------------------- | ------------------------------------------------- | ||
<span style="color:green"><<< '''startsvcscript'''</span> | <span style="color:green"><<< '''startsvcscript'''</span> | ||
| + | <span style="color:green"><<< '''execsvcscript'''</span> | ||
| − | Запрос из CRM в Oktell на запуск служебного сценария. | + | Запрос из CRM в Oktell на запуск служебного сценария. ''startsvcscript'' - от имени пользователя, ''execsvcscript'' - без указания пользователя от имени сервера. |
<pre> | <pre> | ||
| Строка 1096: | Строка 1184: | ||
] | ] | ||
</pre> | </pre> | ||
| + | <pre> | ||
| + | [ | ||
| + | "execsvcscript", | ||
| + | { | ||
| + | "qid": "244E3867-470E-4A56-904D-D435D57CFBFE", | ||
| + | "scriptname": "Служебный сценарий получения почты", | ||
| + | "startparam1": "значение параметра 1", | ||
| + | "startparam2": "значение параметра 2", | ||
| + | "startparam3": "значение параметра 3", | ||
| + | "startparam4": "значение параметра 4", | ||
| + | "startparam5": "значение параметра 5", | ||
| + | "waitresponse": true, | ||
| + | "waittimeoutsec": 10 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* scriptname - название сценария в общем разделе. | ||
| + | //* startparamN - строковое значение соответствующего параметра. | ||
| + | При необходимости передать больше параметров следует объединять параметры в одну строку | ||
| + | с использованием символа-разделителя, а в самом сценарии производить обратную операцию. | ||
| + | //* waitresponse - ожидать ли ответа. | ||
| + | //* waittimeoutsec - таймаут ожидания ответа в секундах. 0 - вечно. | ||
| + | </pre> | ||
| + | |||
| − | |||
<span style="color:green">>>> '''startsvcscriptresult'''</span> | <span style="color:green">>>> '''startsvcscriptresult'''</span> | ||
| Строка 1117: | Строка 1229: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | //* | + | [ |
| + | "execsvcscriptresult", | ||
| + | { | ||
| + | "qid": "244E3867-470E-4A56-904D-D435D57CFBFE", | ||
| + | "scriptname": "Служебный сценарий получения почты", | ||
| + | "result": 0, | ||
| + | "returnvalue": "присвоенный в сценарии результат", | ||
| + | "error": 10 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* error: 10 - файл не найден, 11 - исключение, 12 - таймаут | ||
| + | //* returnvalue - возвращаемый результат сценария (если сценарий исполнился, и его завершения удалось дождаться) | ||
</pre> | </pre> | ||
| Строка 1474: | Строка 1599: | ||
<span style="color:green"><<< '''confhandleevent'''</span> | <span style="color:green"><<< '''confhandleevent'''</span> | ||
| − | Подписка/отписка на указанную категорию событий сервера конференций. | + | Запрос из CRM к Oktell. Подписка/отписка на указанную категорию событий сервера конференций. |
<pre> | <pre> | ||
| Строка 1491: | Строка 1616: | ||
<pre> | <pre> | ||
//* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates | //* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates | ||
| − | + | предполагается, что в общем случае инфа идет только о списке конференций (conferences); | |
| − | + | когда юзер находится в конференции - дополнительно о внутреннем состоянии конференции (competitors); | |
| − | + | когда юзер настраивает конференцию и выбирает из списка участников для автоматического приглашения - | |
| − | + | о состояниях всех пользователей (userstates). | |
| − | + | Подписками управляет сам внешний модуль. Когда потребность уходит - необходимо отписываться, | |
| − | + | чтобы не заваливать канал порожняком. | |
//* handle - true|false - подписаться/отписаться | //* handle - true|false - подписаться/отписаться | ||
</pre> | </pre> | ||
| Строка 1633: | Строка 1758: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1678: | Строка 1803: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getconferencecompetitors", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1695: | Строка 1820: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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 | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1738: | Строка 1863: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getusersforconferenceinvitelist", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1754: | Строка 1879: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1791: | Строка 1916: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "+7 (495) 255-55-28", | |
| − | + | "cantalk": true | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ], | |
| − | + | "recordusers": [ | |
| − | + | { | |
| − | + | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | |
| − | + | "userlogin": "Петров", | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* conference:accessmode - free|shared|closed (свободный вход, вход по запросу, вход запрещен) | ||
| + | //* conference:recordrights - director|competitors|selected (только управляющий, все участники, избранные участники) | ||
| + | Определяет, кто может прослушивать запись конференции. | ||
| + | //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один | ||
| + | параметр из набора {userid|userlogin, lineid, intnumber, extnumber} | ||
| + | //* список recordusers следует указывать, если conference:recordrights=selected. | ||
</pre> | </pre> | ||
| Строка 1839: | Строка 1972: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "createnewconferenceresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "result": 0, | |
| − | + | "error": 1, | |
| − | + | "errormsg": "alreadyexists", | |
| − | + | } | |
| − | + | ] | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</pre> | </pre> | ||
| Строка 1866: | Строка 1992: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "Петров", | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1902: | Строка 2028: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "setupexistingconferenceresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "result": 0, | |
| − | + | "error": 1, | |
| − | + | "errormsg": "notfound", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | //* conference:accessmode - free|shared|closed | |
| − | + | //* conference:recordrights - director|competitors|selected | |
| − | + | //* conference:ghostmode - monitor|help|talk | |
| − | + | //* список recordusers имеет смысл только когда conference:recordrights=selected. | |
</pre> | </pre> | ||
| Строка 1928: | Строка 2054: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getconferenceinfo", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 1945: | Строка 2071: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "+7 (495) 255-55-28", | |
| − | + | "cantalk": true | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ], | |
| − | + | "recordusers": [ | |
| − | + | { | |
| − | + | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | |
| − | + | "userlogin": "Петров", | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2007: | Строка 2133: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "stopconference", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2024: | Строка 2150: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2045: | Строка 2171: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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 | |
| − | + | } | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* competitor - указывает на одного участника конференции. | ||
| + | / достаточно/следует указывать только один из набора определяющих участника идентификаторов | ||
| + | {competitorid, userid|userlogin, lineid} | ||
| + | |||
| + | //* competitor:cantalk - может ли говорить | ||
| + | //* competitor:canlisten - может ли слышать | ||
| + | //* competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов - | ||
| + | может ли слышать подключившегося супервизора | ||
</pre> | </pre> | ||
| Строка 2071: | Строка 2207: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</pre> | </pre> | ||
| Строка 2100: | Строка 2228: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "confsetwanttalk", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "wanttalk": true | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2118: | Строка 2246: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "confsetwanttalkresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2137: | Строка 2265: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "confsetghostmode", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "ghostmode": "help", | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* ghostmode - monitor, help, conference (подслушивание, помощь, конференция) | ||
</pre> | </pre> | ||
| − | |||
<span style="color:green">>>> '''confsetghostmoderesult'''</span> | <span style="color:green">>>> '''confsetghostmoderesult'''</span> | ||
| Строка 2155: | Строка 2285: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "confsetghostmoderesult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2171: | Строка 2301: | ||
<span style="color:green"><<< '''exitconference'''</span> | <span style="color:green"><<< '''exitconference'''</span> | ||
| − | Запрос из CRM в Oktell | + | Запрос из CRM в Oktell на вывод авторизованного пользователя из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне. |
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "exitconference", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2191: | Строка 2321: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "exitconferenceresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2210: | Строка 2340: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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", | |
| − | + | } | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* competitor - указывает на одного участника конференции. | ||
| + | / достаточно/следует указывать только один из набора определяющих участника идентификаторов | ||
| + | {competitorid, userid|userlogin, lineid} | ||
</pre> | </pre> | ||
| Строка 2233: | Строка 2368: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "confdisconnectcompetitorresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2251: | Строка 2386: | ||
Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference | Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "enterconference", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2268: | Строка 2403: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "enterconferenceresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2287: | Строка 2422: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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 | |
| − | + | } | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| − | + | <pre> | |
| + | //* competitor - указывает на одного участника конференции. | ||
| + | / достаточно/следует указывать только один из набора определяющих участника идентификаторов | ||
| + | {competitorid, userid|userlogin, lineid} | ||
| + | </pre> | ||
| + | |||
<span style="color:green">>>> '''confpermitdenyentranceresult'''</span> | <span style="color:green">>>> '''confpermitdenyentranceresult'''</span> | ||
| Строка 2311: | Строка 2451: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "confpermitdenyentranceresult", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2330: | Строка 2470: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "+7 (495) 255-55-28", | |
| − | + | "cantalk": true | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один | ||
| + | параметр из набора {userid|userlogin, lineid, intnumber, extnumber} | ||
</pre> | </pre> | ||
| Строка 2359: | Строка 2503: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "invitetoconference", | |
| − | + | { | |
| − | + | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</pre> | </pre> | ||
| Строка 2386: | Строка 2526: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2429: | Строка 2569: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "conf***", | |
| − | + | { | |
| − | + | "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "eventinfo": { | |
| − | + | *** | |
| − | + | } | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | //* confparamschanged, | |
| − | + | //* confcompositionchanged, | |
| − | + | //* confcompetitorstatechanged, | |
| − | + | //* confentrancedenied, | |
| − | + | //* confentrancepermitted, | |
| − | + | //* confentrancerequest, | |
| − | + | //* confnotifyinvite, | |
| − | + | //* confpossiblecompetitorstatechanged | |
</pre> | </pre> | ||
| Строка 2456: | Строка 2596: | ||
====Состояния пользователей и линий==== | ====Состояния пользователей и линий==== | ||
| + | |||
| + | ------------------------------------------------- | ||
| + | <span style="color:green">>>> '''userstatechanged'''</span> | ||
| + | |||
| + | Сообщение из Oktell в CRM о смене состояния пользователя в Oktell. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "userstatechanged", | ||
| + | { | ||
| + | "qid": "66F8D479-0234-47DF-B043-3A065FF464A7", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "userstateid": 2, | ||
| + | "onredirect": true, | ||
| + | "onlunch": false, | ||
| + | "oncallcenter": false | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------- | ||
| + | <span style="color:green"><<< '''setuserstate'''</span> | ||
| + | |||
| + | Запрос из CRM к Oktell на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setuserstate", | ||
| + | { | ||
| + | "qid": "2A45010A-8EEA-4876-90CB-F062459D4BE2", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "userstateid": 2, | ||
| + | "onredirect": false, | ||
| + | "lunchreasonid": 120, | ||
| + | "lunchreasonmsg": "" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. | ||
| + | id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел. | ||
| + | </pre> | ||
| + | |||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
| Строка 2463: | Строка 2649: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getuserstate", | |
| − | + | { | |
| − | + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2478: | Строка 2664: | ||
Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы. | Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2501: | Строка 2687: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "checkuserintask", | |
| − | + | { | |
| − | + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2517: | Строка 2703: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | } | |
| − | ] | + | ] |
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getmyuserinfo'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на получение информации о текущем авторизованном пользователе: имя, внутренний номер, номер и идентификатор линии. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getmyuserinfo", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",</pre> | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getmyuserinforesult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM с ответом на запрос информации о текущем авторизованном пользователе. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getmyuserinforesult", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "username": "Иванов Иван Иванович", | ||
| + | "mainpbxnumber": "471", | ||
| + | "hasline": 1, | ||
| + | "lineid": "267F8F36-4713-4B66-81BD-019512E56E7E", | ||
| + | "linenumber": "17374", | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getuserphoto'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell о текущем изображении (аватарке) указанного пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getuserphoto", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "photoownerlogin": "Петров", | ||
| + | "photoownerid": "3F140170-AEEF-4621-AF9D-247116AE1411" | ||
| + | "mode": "link" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* mode - link, page, data. По умолчанию page. | ||
| + | link - вернуть абсолютную ссылку на скачивание через http. | ||
| + | page - вернуть относительную ссылку на скачивание. | ||
| + | вернуть данные изображения в base64. | ||
| + | При формировании абсолютной ссылки в качестве доменного имени берется значение из | ||
| + | раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell. | ||
| + | //* photoownerlogin, photoownerid - логин и/или идентификатор пользователя, чья аватарка требуется | ||
| + | Может не указываться, тогда будет возвращена аватарка авторизованного пользователя. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getuserphotoresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM с ответом на запрос информации о текущем авторизованном пользователе. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getuserphotoresult", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 1, | ||
| + | "link": "http://..." | ||
| + | "link32": "http://..." | ||
| + | "link96": "http://..." | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* result. В случае отсутствия файла или по любой другой причине неудачи описание неудачи | ||
| + | будет находиться в поле errormsg. Например "File not found". | ||
| + | //* imagedatab64. В случае возврата целиком изображения, оно будет в base64 строке содержаться в поле. | ||
| + | //* link, link32, link96. В случае возврата ссылки на изображение в полях лежат соответственно | ||
| + | ссылки на полное изображение, 32х32- и 96x96- пиксельные образы. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getalluserphotolink'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на получение ссылок на текущие изображения (аватарки) всех пользователей системы. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getalluserphotolink", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "mode": "link" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* mode - link, page. По умолчанию page. | ||
| + | link - вернуть абсолютную ссылку на скачивание через http. | ||
| + | page - вернуть относительную ссылку на скачивание. | ||
| + | При формировании абсолютной ссылки в качестве доменного имени берется значение из | ||
| + | раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getalluserphotolinkresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM с ответом на запрос ссылкок на текущие изображения (аватарки) всех пользователей системы. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getalluserphotolinkresult", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 1, | ||
| + | "links": [ | ||
| + | { | ||
| + | "userid": "C6036E73-FB90-4F0C-B780-81CE5659BFEA", | ||
| + | "userlogin": "Сидоров", | ||
| + | "link": "http://...", | ||
| + | "link32x32": "http://...", | ||
| + | "link96x96": "http://...", | ||
| + | }, | ||
| + | ... | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* result. Если в наборе есть хотя бы одна аватарка, будет содержать 1. Иначе 0. | ||
| + | //* links. Содержит набор пользовательских словарей, в каждом из которых идентификатор, | ||
| + | логин и набор ссылок link, link32, link96. В полях лежат соответственно | ||
| + | ссылки на полное изображение, 32х32- и 96x96- пиксельные образы. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''setmyuserphoto'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на установку нового изображения (аватарки) текущего пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setmyuserphoto", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "filepath": "", | ||
| + | "imagedatab64": "", | ||
| + | "filename": "" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* filepath - если файл уже на сервере где-то, то это путь к нему - | ||
| + | относительный рабочего каталога, относительный файлового хранилища, или абсолютный. | ||
| + | Допускается устанавливать в качестве аватарки изображения размером не более 1 MБ. | ||
| + | либо | ||
| + | //* imagedatab64 и filename - если файл целиком прокачивается через веб-сокет, то тут base64 строка | ||
| + | с образом файла. | ||
| + | |||
| + | //* если не указано ни filepath, ни imagedatab64, ни filename - стирает текущую аватарку. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''setmyuserphotoresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM с ответом на запрос информации о текущем авторизованном пользователе. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setmyuserphotoresult", | ||
| + | { | ||
| + | "qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 1 | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* result. В случае отсутствия файла или по любой другой причине неудачи описание неудачи | ||
| + | будет находиться в поле errormsg. Например "File not found". | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''changepassword'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на изменение пароля текущего авторизованного пользователя | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "changepassword", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "newpwdmd5": "", | ||
| + | "oldpwdmd5": "" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* oldpwdmd5 - MD5 текущего пароля. | ||
| + | //* newpwdmd5 - MD5 нового пароля. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''changepasswordresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM о результате изменения пароля. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "changepasswordresult", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 0, | ||
| + | "errormsg": "password should be md5 string" | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
| Строка 2544: | Строка 2978: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getcurrentlinestate", | |
| − | + | { | |
| − | + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2559: | Строка 2993: | ||
Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы. | Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
------------------------------------------------------------------- | ------------------------------------------------------------------- | ||
| − | <span style="color:green"><<< ''' | + | <span style="color:green"><<< '''getcurrentqueue'''</span> |
Запрос из CRM в Oktell состояния очереди указанного пользователя. | Запрос из CRM в Oktell состояния очереди указанного пользователя. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getcurrentqueue", | |
| − | + | { | |
| − | + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| − | <span style="color:green">>>> ''' | + | <span style="color:green">>>> '''getcurrentqueueresult'''</span> |
Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы. | Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "ООО МДГХ" | |
| − | + | }, | |
| − | + | {...}, | |
| − | + | {...} | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
] | ] | ||
| + | }, | ||
| + | {...}, | ||
| + | {...} | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
| Строка 2655: | Строка 3089: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getcallingoutabonentinfo", | |
| − | + | { | |
| − | + | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2671: | Строка 3105: | ||
<pre> | <pre> | ||
| − | [ | + | [ |
| − | " | + | "getcallingoutabonentinforesult", |
| + | { | ||
| + | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", | ||
| + | "number": "+7 (495) 255-55-28", | ||
| + | "name": "", | ||
| + | "lineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F", | ||
| + | "linenumber": "13005" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getflashedabonentinfo'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат информации об абоненте, находящемся на удержании. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getflashedabonentinfo", | ||
| + | { | ||
| + | "qid": "DC35D182-8BAB-4DE4-919C-5F79090D92DE", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getcallingoutabonentinforesult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает информацию об абоненте, находящемся на удержании | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getflashedabonentinforesult", | ||
| + | { | ||
| + | "qid": "DC35D182-8BAB-4DE4-919C-5F79090D92DE", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "containsflashed": 1, | ||
| + | "abonent": { | ||
| + | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", | ||
| + | "isconference": 0, | ||
| + | "conferenceid": "0D2A4CA1-FF17-473B-A5E9-E035CB16E257", | ||
| + | "conferenceroom": "#124", | ||
| + | "conferencename": "Планерка", | ||
| + | "conferencedescription": "", | ||
| + | "name": "", | ||
| + | "comment": "", | ||
| + | "description": "", | ||
| + | "simplename": "", | ||
| + | "number": "+7 (495) 255-55-28", | ||
| + | "lineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F", | ||
| + | "linenumber": "13005", | ||
| + | "userid": "", | ||
| + | "userlogin": "", | ||
| + | "username": "" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getextendedlineinfo'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат расширенной информации о текущей линии и ее оппозитных абонентах: текущее состояние, информация об абоненте в коммутации, информация об абоненте на удержании. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getextendedlineinfo", | ||
| + | { | ||
| + | "qid": "55D54351-651E-4EC2-8E48-1D5136811FB9", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getextendedlineinfo'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getextendedlineinforesult", | ||
| + | { | ||
| + | "qid": "55D54351-651E-4EC2-8E48-1D5136811FB9", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "linestateid": 5, | ||
| + | "linestatestr": "lsCommutated, | ||
| + | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", | ||
| + | "datetimeformat" = "dd.MM.yyyy HH:mm:ss", | ||
| + | "activetimestart" = "01.12.2011 16:59:28", | ||
| + | "abonent": { | ||
| + | "isconference": false, | ||
| + | "conferenceid": "0D2A4CA1-FF17-473B-A5E9-E035CB16E257", | ||
| + | "conferenceroom": "#124", | ||
| + | "conferencename": "Планерка", | ||
| + | "conferencedescription": "", | ||
| + | "iscommutated": false, | ||
| + | "iswaitingfaxline": false, | ||
| + | "iswaitinginflash": false, | ||
| + | "iswaitingforanswer": false, | ||
| + | "number": "", | ||
| + | "name": "", | ||
| + | "description": "", | ||
| + | "userid": "", | ||
| + | "userlogin": "", | ||
| + | "username": "", | ||
| + | "comment": "", | ||
| + | "simplename": "", | ||
| + | "lineid": "", | ||
| + | "linenumber": "", | ||
| + | "isextline": false, | ||
| + | "iswaitingforanswer": false, | ||
| + | "extnumber": "", | ||
| + | "queuesourceid": 1, | ||
| + | "queuesourcestr": "", | ||
| + | "isivr": false, | ||
| + | "ivrname": "", | ||
| + | "isautocall": false, | ||
| + | "number": "", | ||
| + | "isringing": false, | ||
| + | "ringtimesec": 172, | ||
| + | "isconference": false, | ||
| + | "conferenceid": "", | ||
| + | "conferencename": "", | ||
| + | "conferenceroom": "", | ||
| + | "conferencedescription": "", | ||
| + | "inviteruserid": "", | ||
| + | "inviterusername": "", | ||
| + | "inviteruserlogin": "", | ||
| + | "number": "", | ||
| + | "name": "", | ||
| + | "comment": "", | ||
| + | "description": "", | ||
| + | "direction": "", | ||
| + | "isextline": true, | ||
| + | "istask": false, | ||
| + | "taskid": "", | ||
| + | "taskname": "", | ||
| + | "userid": "", | ||
| + | "userlogin": "", | ||
| + | "username": "", | ||
| + | "lineid": "", | ||
| + | "linenumber": "" | ||
| + | } | ||
| + | "isflashing": true, | ||
| + | "flashed": { | ||
| + | "isconference": true, | ||
| + | "conferenceid": "0D2A4CA1-FF17-473B-A5E9-E035CB16E257", | ||
| + | "conferenceroom": "#124", | ||
| + | "conferencename": "Планерка", | ||
| + | "conferencedescription": "", | ||
| + | "number": "", | ||
| + | "name": "", | ||
| + | "description": "", | ||
| + | "userid": "", | ||
| + | "userlogin": "", | ||
| + | "username": "", | ||
| + | "comment": "", | ||
| + | "simplename": "", | ||
| + | "lineid": "", | ||
| + | "linenumber": "", | ||
| + | "isextline": false | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* С отступом в примере указаны поля, появляющиеся в случае, если базовое булево поле имеет значение true. | ||
| + | // Например, если isringing=true, то указанные с отступом поля будут присутствовать и представлять собой | ||
| + | // информацию об абоненте, осуществляющем вызов текущего канала. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====Управление переадресацией==== | ||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getredirectrules'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат списка правил переадресации для текущего пользователя с их настройками. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getredirectrules", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getredirectrulesresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает список правил переадресации для текущего пользователя с их настройками. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getredirectrulesresult", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "redirectrules": [ | ||
| + | { | ||
| + | "id": "5FD3120D-E86B-4F4B-B57C-AC32343CD00F", | ||
| + | "caption": "Постоянное", | ||
| + | "description": "Действует всегда, когда я в состоянии переадресации", | ||
| + | "priority": 1, | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "isenabled": true, | ||
| + | "allowcascade": true, | ||
| + | "state": 2, | ||
| + | "statestr": "Active", | ||
| + | "destinationnumber": "+7 (495) 255-55-28", | ||
| + | "onlyforredirectstate": true, | ||
| + | "definesources": true, | ||
| + | "sources": [ | ||
{ | { | ||
| − | " | + | "type": 0, |
| − | " | + | "typestr": "ExtNumber", |
| − | " | + | "description": "", |
| − | " | + | "srcnumber": "4959741589", |
| − | + | "srcid": "" | |
| − | " | + | }, |
| − | " | + | ... |
| − | " | + | ], |
| − | } | + | "defineschedule": true, |
| + | "tformat": "HH:mm:ss", | ||
| + | "schedule": [ | ||
| + | { | ||
| + | "weekday": 0, | ||
| + | "weekdaystr": "Sunday", | ||
| + | "tstart": "00:00:00", | ||
| + | "tstop": "23:59:59", | ||
| + | }, | ||
| + | ... | ||
] | ] | ||
| + | }, | ||
| + | ... | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* state: disabled=0, enabled=1, active=2 | ||
| + | //* defineschedule - если false, значит активно всегда | ||
| + | //* definesources - если false, значит для всех номеров | ||
| + | //* sourcetype - extnumber=0, user=1, client=3, clientgroup=4. | ||
| + | Если номер - то указывается scrnumber, иначе srcid | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''saveredirectrules'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Сохраняет новое/измененное правило переадресации для текущего пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "saveredirectrules", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "redirectrules": [ | ||
| + | { | ||
| + | "id": "5FD3120D-E86B-4F4B-B57C-AC32343CD00F", | ||
| + | "caption": "Постоянное", | ||
| + | "description": "Действует всегда, когда я в состоянии переадресации", | ||
| + | "priority": 1, | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "isenabled": true, | ||
| + | "allowcascade": true, | ||
| + | "destinationnumber": "+7 (495) 255-55-28", | ||
| + | "onlyforredirectstate": true, | ||
| + | "definesources": true, | ||
| + | "sources": [ | ||
| + | { | ||
| + | "type": 0, | ||
| + | "typestr": "ExtNumber", | ||
| + | "description": "", | ||
| + | "srcnumber": "4959741589", | ||
| + | "srcid": "" | ||
| + | }, | ||
| + | ... | ||
| + | ], | ||
| + | "defineschedule": true, | ||
| + | "tformat": "HH:mm:ss", | ||
| + | "schedule": [ | ||
| + | { | ||
| + | "weekday": 0, | ||
| + | "weekdaystr": "Sunday", | ||
| + | "tstart": "00:00:00", | ||
| + | "tstop": "23:59:59", | ||
| + | }, | ||
| + | ... | ||
| + | ] | ||
| + | }, | ||
| + | ... | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* state: disabled=0, enabled=1, active=2 | ||
| + | //* defineschedule - если false, значит активно всегда | ||
| + | //* definesources - если false, значит для всех номеров | ||
| + | //* sourcetype - extnumber=0, user=1, client=3, clientgroup=4. Если номер - то указывается scrnumber, иначе srcid | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''saveredirectrulesresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает список правил переадресации для текущего пользователя с их настройками. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "saveredirectrulesresult", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 1 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''deleteredirectrules'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Удаляет указанные правила переадресации для текущего пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "deleteredirectrules", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | ||
| + | "ids": [ | ||
| + | "5FD3120D-E86B-4F4B-B57C-AC32343CD00F", | ||
| + | ... | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''deleteredirectrulesresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Ничего не возвращает, кроме факта выполнения запроса на удаление правил переадресации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "deleteredirectrulesresult", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''setredirectruleenabled'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Включает/выключает указанные правила переадресации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setredirectruleenabled", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | ||
| + | "id": "5FD3120D-E86B-4F4B-B57C-AC32343CD00F", | ||
| + | "enabled": true | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''setredirectruleenabledresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Ничего не возвращает, кроме факта выполнения запроса на включение/выключения указанных правил переадресации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setredirectruleenabledresult", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
| Строка 2712: | Строка 3544: | ||
Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя. | Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "+7 (495) 255-55-28", | |
| − | + | "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": "+7 (495) 255-55-28", | ||
| + | "aisuser": false, | ||
| + | "atext": "ООО «СДЗЦ» (+7 (495) 255-55-28)", | ||
| + | "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" | ||
| + | }, | ||
| + | {...}, | ||
| + | {...} | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | * trace:contentelementtype: | |
</pre> | </pre> | ||
| Строка 2804: | Строка 3636: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "setchaincontentcustomfield", | |
| − | + | { | |
| − | + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "customfield": "фывафыдвлаожфыдлвао" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2821: | Строка 3653: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "setchaincontentcustomfieldresult", | |
| − | + | { | |
| − | + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2840: | Строка 3672: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getchaincontentcustomfield", | |
| − | + | { | |
| − | + | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2856: | Строка 3688: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getchaincontentcustomfieldresult", | |
| − | + | { | |
| − | + | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968", | |
| − | + | "customfield": "фывафыдвлаожфыдлвао", | |
| − | + | "result": 1 | |
| − | + | } | |
| − | ] | + | ] |
| + | </pre> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====Журнал звонков==== | ||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getpbxcalljournal'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат журнала звонков АТС по указанному фильтру в соответствии с правами пользователя. | ||
| + | В том числе ссылки на файлы записей разговоров. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getpbxcalljournal", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "filter": { | ||
| + | "idconn": "08708573-4AF9-45F2-83B7-B8A0DDEF52EC", | ||
| + | "idchain": "94B5B657-3009-45E0-9095-F5D7BA163EB2", | ||
| + | "datestart": "2011-04-07", | ||
| + | "datestop": "2011-04-07", | ||
| + | "timestart": "08:00:00", | ||
| + | "timestop": "20:00:00", | ||
| + | "connectiontype": "all", | ||
| + | "intnumber": "", | ||
| + | "outnumber": "+7 (495) 255-55-28", | ||
| + | "minduration": 1, | ||
| + | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | ||
| + | "userlogin: "Петров" | ||
| + | "comment": "", | ||
| + | "showcallcenter": false, | ||
| + | "taskid": "00000000-0000-0000-0000-000000000000" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* filter - фильтр для запроса. Все поля не являются обязательными. | ||
| + | По умолчанию возвращаются разговоры за текущий день с 8:00 до 17:00 без звонков call-центра | ||
| + | длительностью более 1 секунды, которые доступны авторизованному пользователю по правам контроля. | ||
| + | К фильтру могут быть применены: | ||
| + | idconn - идентификатор конкретно интересующей коммутации. | ||
| + | idchain - идентификатор конкретно интересующей цепочки коммутаций/сессии. | ||
| + | datestart - дата начала интересующего периода. Включительно. | ||
| + | datestop - дата окончания интересующего периода. Включительно. | ||
| + | timestart - время начала интересующего внутридневного интервала. | ||
| + | timestop - время окончания интересующего внутридневного интервала. | ||
| + | connectiontype - тип соединения (all, incoming, outcoming, internal, conference). | ||
| + | intnumber - интересующий внутренний номер. | ||
| + | outnumber - интересующий внешний номер. | ||
| + | minduration - минимальная длительность коммутации в секундах, может быть действительным значением. | ||
| + | userid - идентификатор интересующего пользователя. | ||
| + | userlogin - логин интересующего пользователя. | ||
| + | comment - строка включения в комментарии. | ||
| + | showcallcenter: true|false. Отображать ли коммутации call-центра. | ||
| + | taskid - идентификатор задачи в рамках коллцентра, чьи звонки интересны. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green"><<< '''getpbxcalljournalresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM. Возвращает журнал звонков АТС по указанному фильтру в соответствии с правами пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getpbxcalljournalresult", | ||
| + | { | ||
| + | "qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "dtformat": "dd.MM.yyyy HH:mm:ss", | ||
| + | "data": [ | ||
| + | { | ||
| + | "commutationid": "044d56f9-7137-49b6-bacf-a10370a54df4", | ||
| + | "chainid": "672ec703-e77a-47b1-b698-cb8488352fc9", | ||
| + | "connectiontype": 10, | ||
| + | "connectiontypestr": "conference", | ||
| + | "dtstart": "2011-04-09 19:55:30", | ||
| + | "dtanswer": "2011-04-09 19:55:30", | ||
| + | "dtstop": "2011-04-09 19:55:33", | ||
| + | "length": 2, | ||
| + | "answerlength": 0, | ||
| + | "hascomment": false, | ||
| + | "isbetweenusers": true, | ||
| + | "fromcc": false, | ||
| + | "isconf": true, | ||
| + | "isrecorded": true, | ||
| + | "recordlink": "/download/rec/AQAAAAAQIKvNHczNCBEBAAAA", | ||
| + | "fileext": "wav", | ||
| + | "auserid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3", | ||
| + | "auserlogin": "Крючков", | ||
| + | "alineid": "A117499D-23EA-4BF8-A6B9-F49580E9628C", | ||
| + | "alinenumber": "16001", | ||
| + | "aoutnumber": "Семен Егорович Крючков", | ||
| + | "anumberdialed": "", | ||
| + | "atext": "Семен Егорович Крючков", | ||
| + | "conferenceid": "224476F1-2E41-4C8F-BA85-6BEF0EBB5339", | ||
| + | "conferenceroom": "751", | ||
| + | "conferencename": "Автоконференция #751 09.04.11 19:55:30", | ||
| + | "conferencedirectorid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3", | ||
| + | "conferencedirectorlogin": "Крючков", | ||
| + | "conferencedirectorname": "Семен Егорович Крючков", | ||
| + | "reasonstop": -1, | ||
| + | "stopside": "a" | ||
| + | }, | ||
| + | { | ||
| + | "commutationid": "5F64DECF-194C-474B-8CA7-824E82A1C072", | ||
| + | "chainid": "22A01B17-064B-4E19-99BA-FED96680AF25", | ||
| + | "connectiontype": 5, | ||
| + | "connectiontypestr": "ctOuterInner", | ||
| + | "dtstart": "2011-04-09 19:57:24", | ||
| + | "dtanswer": "2011-04-09 19:57:24", | ||
| + | "dtstop": "2011-04-09 19:58:13", | ||
| + | "length": 49, | ||
| + | "answerlength": 0, | ||
| + | "hascomment": true, | ||
| + | "isbetweenusers": true, | ||
| + | "fromcc": false, | ||
| + | "isrecorded": true, | ||
| + | "recordlink": "/download/rec/AAAAAABwOltxHczNCGlCAACBPgAA", | ||
| + | "fileext": "mp3", | ||
| + | "isconf": false, | ||
| + | "auserid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3", | ||
| + | "auserlogin": "Крючков", | ||
| + | "alineid": "A117499D-23EA-4BF8-A6B9-F49580E9628C", | ||
| + | "alinenumber": "16001", | ||
| + | "aoutnumber": "Семен Егорович Крючков", | ||
| + | "anumberdialed": "", | ||
| + | "atext": "Семен Егорович Крючков", | ||
| + | "buserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | ||
| + | "buserlogin": "Петров", | ||
| + | "blineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", | ||
| + | "blinenumber": "17004", | ||
| + | "boutnumber": "", | ||
| + | "bnumberdialed": "217", | ||
| + | "btext": "Петр Петрович Петров", | ||
| + | "reasonstop": -1, | ||
| + | "stopside": "b" | ||
| + | } | ||
| + | {...}, | ||
| + | {...} | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* dtformat - формат представления даты/времени. | ||
| + | //* data - набор попавших в выдачу коммутаций/конференций. Каждая запись - в отдельном словаре. | ||
| + | commutationid - идентификатор коммутации. | ||
| + | chainid - идентификатор цепочки коммутаций/сессии. | ||
| + | connectiontype, connectiontypestr - Тип соединения: | ||
| + | ctInnerOuter = 1, //внутренняя линия с внешней линией | ||
| + | ctInnerIvr = 2, //внутренняя линия с IVR | ||
| + | ctInnerInner = 3, //внутренняя линия с внутренней линией | ||
| + | ctOuterIvr = 4, //внешняя линия с IVR | ||
| + | ctOuterInner = 5, //внешняя линия с внутренней линией линией | ||
| + | ctOuterOuter = 6, //внешняя линия с внешней линией | ||
| + | ctIvrOuter = 7, //IVR с внешней линией | ||
| + | ctIvrInner = 8, //IVR с внутренней линией | ||
| + | ctConference = 10,//Конференция | ||
| + | ctSelector = 11,//Селекторное совещание | ||
| + | dtstart - дата/время начала вызова перед осуществлением коммутации. | ||
| + | dtanswer - дата/время ответа и начала коммутации. | ||
| + | dtstop - дата/время окончания коммутации | ||
| + | length - длительность в секундах | ||
| + | answerlength - длительность ответа в секундах. | ||
| + | hascomment - true|false. Имеет ли данная коммутация комментарий. | ||
| + | isbetweenusers - true|false. Является ли текущая коммутация между пользователями системы. | ||
| + | fromcc - true|false. Произведена ли текущая коммутация в рамках работы call-центра. | ||
| + | isrecorded - true|false. Записана ли коммутация. | ||
| + | recordlink - относительная ссылка на скачивание файла записи разговора. | ||
| + | fileext - если файл записан, то его расширение mp3 или wav. Возвращает только если в полном | ||
| + | результате менее 5 записей, иначе поле отсутствует. | ||
| + | isconf - true|false. Является ли текущая запись конференцией. | ||
| + | auserid - идентификатор пользователя абонента a. | ||
| + | Если IVR - 'ab000000-0000-0000-0000-000000000000', | ||
| + | Если внешний абонент - 'bf000000-0000-0000-0000-000000000000' | ||
| + | auserlogin - логин пользователя абонента a. | ||
| + | alineid - идентификатор линии абонента a. | ||
| + | alinenumber - номер линии абонента a. | ||
| + | aoutnumber - номер абонента a (CallerId). | ||
| + | anumberdialed - набранный абонентом a номер. | ||
| + | atext - текстовое описание абонента a. | ||
| + | buserid - идентификатор пользователя абонента b. | ||
| + | Если IVR - 'ab000000-0000-0000-0000-000000000000', | ||
| + | Если внешний абонент - 'bf000000-0000-0000-0000-000000000000' | ||
| + | buserlogin - логин пользователя абонента b. | ||
| + | blineid - идентификатор линии абонента b. | ||
| + | blinenumber - номер линии абонента b. | ||
| + | boutnumber - номер абонента b (CallerId). | ||
| + | bnumberdialed - набранный абонентом b номер. | ||
| + | btext - текстовое описание абонента b. | ||
| + | reasonstop - причина разрыва коммутации. | ||
| + | stopside - a, b. По чьей инициативе коммутация прервана. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getpbxcallcomment'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат комментария к указанной коммутации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getpbxcallcomment", | ||
| + | { | ||
| + | "qid": "1E3C27C0-BE28-4621-AD39-6D1B31EB37EB", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green"><<< '''getpbxcallcommentresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM. Возвращает комментарий к запрошенной коммутации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getpbxcallcommentresult", | ||
| + | { | ||
| + | "qid": "1E3C27C0-BE28-4621-AD39-6D1B31EB37EB", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644", | ||
| + | "comment": "раз два три четыре пять вышел зайчик погулять" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''setpbxcallcomment'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на установку комментария для указанной коммутации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setpbxcallcomment", | ||
| + | { | ||
| + | "qid": "3AB79A11-24FB-4D10-B7FD-5FD1653A679D", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644" | ||
| + | "comment": "раз два три четыре пять вышел зайчик погулять" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green"><<< '''setpbxcallcommentresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM. Возвращает результат установки комментария к коммутации. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "setpbxcallcommentresult", | ||
| + | { | ||
| + | "qid": "3AB79A11-24FB-4D10-B7FD-5FD1653A679D", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 1 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getpbxmycalljournal'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат журнала собственных звонков авторизованного пользователя по указанному фильтру. | ||
| + | В том числе ссылки на файлы записей разговоров. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getpbxmycalljournal", | ||
| + | { | ||
| + | "qid": "F95D0A08-D904-49C9-A4B9-8C02B1781A89", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "linkmode": "full", | ||
| + | "filter": { | ||
| + | "datestart": "2011-04-07", | ||
| + | "datestop": "2011-04-07", | ||
| + | "comment": "", | ||
| + | "number": "+7 (495) 255-55-28", | ||
| + | "media": "all", | ||
| + | "type": "all" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* linkmode - full, simple - устанавливает формат ссылок, в котором будут указаны полученные файлы | ||
| + | в событии об окончании приема. | ||
| + | full - вернуть абсолютную ссылку на скачивание через http. | ||
| + | simple - вернуть относительную ссылку на скачивание. | ||
| + | При формировании абсолютной ссылки в качестве доменного имени берется значение из | ||
| + | раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell. | ||
| + | //* filter - фильтр для запроса. Все поля не являются обязательными. | ||
| + | По умолчанию возвращаются разговоры за текущий день с 8:00 до 17:00, в которых | ||
| + | участвовал авторизованный пользователь | ||
| + | К фильтру могут быть применены: | ||
| + | datestart - дата начала интересующего периода. Включительно. | ||
| + | datestop - дата окончания интересующего периода. Включительно. | ||
| + | comment - строка включения в комментарии. | ||
| + | number - интересующий номер оппонента. | ||
| + | media - external, internal, all. Среда вызова. | ||
| + | type - тип звонка: | ||
| + | incoming - входящий звонок. | ||
| + | outcoming - исходящий звонок. | ||
| + | missed - пропущенный звонок. Что является пропущенным звонком определяется в разделе | ||
| + | [[Менеджер очередей]] общих настроек Oktell. | ||
| + | conference - конференция. | ||
| + | selector - селекторное совещание. | ||
| + | all - все типы звонков. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green"><<< '''getpbxmycalljournalresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM. Возвращает журнал собственных звонков авторизованного пользователя по указанному фильтру. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getpbxmycalljournalresult", | ||
| + | { | ||
| + | "qid": "F95D0A08-D904-49C9-A4B9-8C02B1781A89", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "dtformat": "dd.MM.yyyy HH:mm:ss", | ||
| + | "data": [ | ||
| + | { | ||
| + | "type": 1, | ||
| + | "typestr": "incoming", | ||
| + | "media": 2, | ||
| + | "mediastr": "internal", | ||
| + | "commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644", | ||
| + | "chainid": "46fe0543-4a58-49c5-b501-644b8ddad69a", | ||
| + | "dtstart": "2011-04-09 19:55:25", | ||
| + | "dtanswer": "2011-04-09 19:55:27", | ||
| + | "dtstop": "2011-04-09 19:56:29", | ||
| + | "length": 61, | ||
| + | "number": "14", | ||
| + | "alineid": "3294CD8F-7865-436A-AC2E-CEA481D8F52D", | ||
| + | "alinenumber": "17011", | ||
| + | "blineid": "021BDECD-196B-408F-8C36-8C37C0A94C5A", | ||
| + | "blinenumber": "17014", | ||
| + | "isrecorded": true, | ||
| + | "recordlink": "http://192.168.0.12:4055/download/rec/AQAAAADQfMDNHczNCBEBAAAA", | ||
| + | "hascomment": true, | ||
| + | "abonentname": "Петр Петрович Петров", | ||
| + | "isconf": false | ||
| + | }, | ||
| + | { | ||
| + | "type": 10, | ||
| + | "typestr": "conference", | ||
| + | "media": 10, | ||
| + | "mediastr": "conference", | ||
| + | "commutationid": "20CF9B5A-5FFE-4456-8984-E7B79D7166EE", | ||
| + | "chainid": "E443FEA7-5ABB-49CB-A28D-8CC25F404E97", | ||
| + | "dtstart": "2011-04-09 19:58:12", | ||
| + | "dtanswer": "2011-04-09 19:58:12", | ||
| + | "dtstop": "2011-04-09 19:59:45", | ||
| + | "length": 93, | ||
| + | "alineid": "3294CD8F-7865-436A-AC2E-CEA481D8F52D", | ||
| + | "alinenumber": "17011", | ||
| + | "isconf": true, | ||
| + | "conferenceid": "224476F1-2E41-4C8F-BA85-6BEF0EBB5339", | ||
| + | "conferenceroom": "751", | ||
| + | "conferencename": "Автоконференция #751 09.04.11 19:55:30", | ||
| + | "conferencedirectorid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3", | ||
| + | "conferencedirectorlogin": "Крючков", | ||
| + | "conferencedirectorname": "Семен Егорович Крючков", | ||
| + | "isrecorded": true, | ||
| + | "recordlink": "http://192.168.0.12:4055/download/rec/AAAAAACQSBTLHczNCGlCAACBPgAA", | ||
| + | "hascomment": true | ||
| + | }, | ||
| + | {...}, | ||
| + | {...} | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* dtformat - формат представления даты/времени. | ||
| + | //* data - набор попавших в выдачу коммутаций/конференций. Каждая запись - в отдельном словаре. | ||
| + | type, typestr - тип звонка: | ||
| + | incoming = 1 - входящий звонок. | ||
| + | outcoming = 2 - исходящий звонок. | ||
| + | missed = 3 - пропущенный звонок. Что является пропущенным звонком определяется | ||
| + | в разделе [[Настройки менеджера очередей|Менеджер очередей]] общих настроек Oktell. | ||
| + | conference = 10 - конференция. | ||
| + | selector = 11 - селекторное совещание. | ||
| + | media, mediastr - тип среды вызова: | ||
| + | external = 2 - внешняя среда. | ||
| + | internal = 1 - внутренний вызов. | ||
| + | conference = 10 - конференция. | ||
| + | selector = 11 - селекторное совещание. | ||
| + | commutationid - идентификатор коммутации. | ||
| + | chainid - идентификатор цепочки коммутаций/сессии. | ||
| + | dtstart - дата/время начала вызова перед осуществлением коммутации. | ||
| + | dtanswer - дата/время ответа и начала коммутации. | ||
| + | dtstop - дата/время окончания коммутации | ||
| + | length - длительность в секундах | ||
| + | alineid - идентификатор линии абонента a. | ||
| + | alinenumber - номер линии абонента a. | ||
| + | blineid - идентификатор линии абонента b, если это коммутация. | ||
| + | blinenumber - номер линии абонента b, если это коммутация. | ||
| + | isrecorded - true|false. Записана ли коммутация. | ||
| + | recordlink - относительная или абсолютная ссылка на скачивание файла записи разговора. | ||
| + | hascomment - true|false. Имеет ли данная коммутация комментарий. | ||
| + | abonentname - текстовое описание оппозитного абонента коммутации. | ||
| + | isconf - true|false. Является ли текущая запись конференцией(селектором) или нет. | ||
| + | conferenceid - идентификатор конференции/селектора. | ||
| + | conferenceroom - номер комнаты конференции/селектора. | ||
| + | conferencename - название конференции/селектора. | ||
| + | conferencedirectorid - идентификатор управляющего пользователя конференции/селектора. | ||
| + | conferencedirectorlogin - логин управляющего пользователя конференции/селектора. | ||
| + | conferencedirectorname - имя управляющего пользователя конференции/селектора. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''removepbxcallrecord'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Удаляет запись разговора указанной коммутации в соответствии с правами доступа. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "removepbxcallrecord", | ||
| + | { | ||
| + | "qid": "DF061C5B-1B3B-41AA-94FF-A7A2F8FA6AE7", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green"><<< '''removepbxcallrecordresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM. Возвращает результат удаления записи разговора. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "removepbxcallrecordresult", | ||
| + | { | ||
| + | "qid": "DF061C5B-1B3B-41AA-94FF-A7A2F8FA6AE7", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "result": 1 | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
| Строка 2880: | Строка 4173: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getusersbynumbers", | |
| − | + | { | |
| − | + | "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "numbers": [ | |
| − | + | "883", | |
| − | + | "470", | |
| − | + | "472", | |
| − | + | "485" | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2902: | Строка 4195: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "Сидор Сидорович Сидоров" | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2932: | Строка 4225: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getitemsbynumbers", | |
| − | + | { | |
| − | + | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "numbers": [ | |
| − | + | "883", | |
| − | + | "470", | |
| − | + | "472", | |
| − | + | "485" | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2954: | Строка 4247: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 2991: | Строка 4284: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getsystemnumberbyuser", | |
| − | + | { | |
| − | + | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "user": { | |
| − | + | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | |
| − | + | "userlogin": "Петров" | |
| − | + | } | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 3011: | Строка 4304: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getsystemnumberbyuserresult", | |
| − | + | { | |
| − | + | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "result": 1, | |
| − | + | "systemnumber": "U28CA980EF9F84B83B4934454AA54FCD8" | |
| − | + | ] | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 3031: | Строка 4324: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getpbxnumbersforitem", | |
| − | + | { | |
| − | + | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | |
| − | + | "itemtype": "user", | |
| − | + | "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | |
| − | + | "itemuserlogin: "Петров" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 3050: | Строка 4343: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | /* "itemtype": "line", | |
| − | + | /* "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", | |
| − | + | /* "itemlinenumber": "17004" | |
</pre> | </pre> | ||
| Строка 3076: | Строка 4369: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getmainpbxnumberforitem", | |
| − | + | { | |
| − | + | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | |
| − | + | "itemtype": "user", | |
| − | + | "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002", | |
| − | + | "itemuserlogin: "Петров" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
| Строка 3095: | Строка 4388: | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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" | |
| − | + | } | |
| − | + | ] | |
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | /* "itemtype": "line", | |
| − | + | /* "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0", | |
| − | + | /* "itemlinenumber": "17004" | |
</pre> | </pre> | ||
| Строка 3118: | Строка 4411: | ||
<span style="color:green"><<< '''getpbxnumbers'''</span> | <span style="color:green"><<< '''getpbxnumbers'''</span> | ||
| − | Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде. | + | Запрос из CRM в Oktell на возврат всех внутренних номеров системы. |
| + | Не требует указания авторизованного пользователя, так как может исполняться по инициативе сервера WebCRM. | ||
| + | В примере приведен запрос для формирования ответа с перечнем номеров в простом виде. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getpbxnumbers", | |
| − | + | { | |
| − | + | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", | |
| − | + | "mode": "simple" | |
| − | + | } | |
| − | + | ] | |
| + | </pre> | ||
| + | <pre> | ||
| + | //* mode: simple, full (простой вид, полный вид). | ||
</pre> | </pre> | ||
| + | |||
| + | <span style="color:green">>>> '''getpbxnumbersresult'''</span> | ||
| − | + | Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. | |
| + | В примере приведен ответ на запрос с перечнем номеров в простом виде. | ||
| − | + | <pre> | |
| + | [ | ||
| + | "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" | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | В следующем примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "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": "Руководство" | ||
| + | }, | ||
| + | {...}, | ||
| + | {...} | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | /* 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) | ||
</pre> | </pre> | ||
| − | |||
| − | |||
| − | + | ------------------------------------------------------------------- | |
| + | <span style="color:green"><<< '''getallusernumbers'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат списка всех пользователей, содержащего актуальную информацию по их прямым, основным и групповым номерам. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getallusernumbers", | |
| − | + | { | |
| − | + | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B" | |
| − | + | } | |
| − | + | ] | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</pre> | </pre> | ||
| − | |||
| − | |||
| − | + | <span style="color:green">>>> '''getallusernumbersresult'''</span> | |
| + | |||
| + | Ответ из Oktell в CRM. Возвращает список всех пользователей, содержащий актуальную информацию по их прямым, основным и групповым номерам. | ||
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getallusernumbersresult", | |
| − | + | { | |
| − | + | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | ] | + | "users": [ |
| + | {"id": "47A8B3A0-0B33-41BB-9D08-1D9EB0D6F09B", | ||
| + | "name: "Петров", | ||
| + | "main: "14", | ||
| + | "nums": "14, 625, 773" | ||
| + | }, | ||
| + | {"id": "5A84368D-5ED3-434B-8EB2-41AE86E1566A", | ||
| + | "name: "Иванов" | ||
| + | }, | ||
| + | ... | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | /* users:main - основной прямой номер, | ||
| + | /* users:nums - перечень номеров, в которых участвует пользователь или его текущая линия. | ||
| + | Порядок следования от главного к групповым, затем от главного к групповым с участием линии. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====Преобразования==== | ||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getuserbyline'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат информации о связанном пользователе по ключу линии. Ключом линии традиционно является идентификатор или номер линии. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getuserbyline", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "linekey": "17002" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
| − | <span style="color:green"> | + | <span style="color:green">>>> '''getuserbylineresult'''</span> |
| − | + | Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя. | |
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getuserbylineresult", | |
| − | + | { | |
| − | + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | |
| − | + | "userlogin": "Иванов", | |
| − | + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | |
| − | + | "founduser": { | |
| − | + | "userid": "BE6A252A-D7E7-4D15-8D75-385A210DF997", | |
| − | + | "userlogin": "john", | |
| + | "username": "John Smith" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* founduser - информация о связанном с указанной линии пользователе - его идентификатор, логин, имя. | ||
| + | Если линия указана неверно или к ней в данный момент не привязан пользователь - null. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getlinebyuser'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат информации о связанной линии по ключу пользователя. Ключом пользователя традиционно является идентификатор, логин или имя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getlinebyuser", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "userkey": "ivanov" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
| − | <span style="color:green">>>> ''' | + | <span style="color:green">>>> '''getlinebyuserresult'''</span> |
| − | Ответ из Oktell в CRM. Возвращает | + | Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя. |
<pre> | <pre> | ||
| − | + | [ | |
| − | + | "getlinebyuserresult", | |
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "foundline": { | ||
| + | "lineid": "FA86E75A-6383-42B7-873C-37A0654B18EF", | ||
| + | "linenum": "17002" | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* foundline - информация о связанной с указанным авторизованным пользователем линии - ее идентификатор, номер. | ||
| + | Если пользователь указана неверно, или не авторизован - null. | ||
| + | ''Пользователь по умолчанию'' считается авторизованным. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====Служебные методы==== | ||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''getversionresult'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат информации о версии сервера Oktell. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getversion", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "showalloweddbstoredprocs": 1 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* showalloweddbstoredprocs: true|false. Отображать ли список доступных хранимых процедур БД. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''getversionresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "getversionresult", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "version": { | ||
| + | "text": "Версия программы: 2.7.110808(4237.32979). Версия БД: 110713.", | ||
| + | "dated": "110808", | ||
| + | "build": "2.7.4237.32979", | ||
| + | "datedhal": "110808", | ||
| + | "buildhal": "2.15.3.2871", | ||
| + | "webserverport": 4067 | ||
| + | } | ||
| + | "alloweddbstoredprocs": { | ||
| + | "w_favoritegetbyuser": 1, | ||
| + | "w_favoritesavebyuser": 1, | ||
| + | "w_favoritedeletebyuser": 1, | ||
| + | "w_clientsget": 1, | ||
| + | "w_clientgroupsget": 1 | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* version - информация о версии сервера логики и HAL. | ||
| + | //* version:webserverport - номер порта [[Серверный_HTTP_интерфейс|HTTP веб-сервера oktell]]. | ||
| + | //* alloweddbstoredprocs - перечень хранимых процедур, доступных для исполнения в БД Oktell | ||
| + | посредством метода <span style="color:green">''execpredefineddbstoredproc''</span> | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''gettemphttppass'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Генерирует и возвращает временный пароль на доступ к [[Веб-интерфейс|HTTP веб-серверу]] без авторизации. | ||
| + | Временный пароль живет не более 10 секунд до первого обращения к HTTP с указанием этого пароля среди параметров запроса. | ||
| + | Пароль привязывается к IP адресу дополнительно. | ||
| + | После этого вне зависимости от способа авторизации, установленного для HTTP веб-сервера Oktell, однократный вызов любого [[Серверный_HTTP_интерфейс|метода серверного веб-интерфейса]] возможен без авторизации с указанием среди параметров дополнительного служебного параметра ''temppass=A'', где A - выданный временный пароль. | ||
| + | |||
| + | Доступно для [[#Arch2|схемы интеграции 2]]. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "gettemphttppass", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "responsetowebsock": true | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''gettemphttppassresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "gettemphttppassresult", | ||
| + | { | ||
| + | "qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "password": "6f3200ac" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* password - временный пароль для подстановки в качестве значения параметра temppass | ||
| + | при осуществлении GET или POST запроса к HTTP веб-серверу Oktell. | ||
| + | Следует иметь в виду, что даже в случае POST запроса со специальным контентом | ||
| + | указание параметра-пароля возможно в теле самой страницы (по аналогии с GET запросом). | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''triggercustomevent'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на генерацию пользовательского произвольного события всем или только указанным пользователям. | ||
| + | Может быть использовано в [[#Arch2|схеме интеграции 2]]. | ||
| + | Производит массовую рассылку указанного события. Точно также как и все остальные события требует подписки. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "triggercustomevent", | ||
| + | { | ||
| + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "eventname": "newClientCategoryAdded", | ||
| + | "eventparam": "строка" | ||
| + | "sendback": 1, // отправлять мне самому или нет | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | [ | ||
| + | "triggercustomevent", | ||
| + | { | ||
| + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "eventname": "newClientCategoryAdded", | ||
| + | "eventparam": "строка", | ||
| + | "recipients": [ | ||
| + | "Петров", | ||
| + | "Сидоров" | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | [ | ||
| + | "triggercustomevent", | ||
| + | { | ||
| + | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A", | ||
| + | "userlogin": "Иванов", | ||
| + | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "eventname": "newClientCategoryAdded", | ||
| + | "eventparam": { "param1": "123", "p2": { "asdfasd": "sdfgsdf" } , ... }, | ||
| + | "recipients": [ | ||
| + | "C45D4911-BDE2-40C0-8D11-A4AFF1F160CC", | ||
| + | "BA2C4BAC-7A7C-4959-B1A7-2F63C248DF3D" | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* recipients - список идентификаторов/логинов получателей сообщений. | ||
| + | Может не быть указанным, тогда отправка производится всем. | ||
| + | //* sendback - генерировать ли событие для самого отправителя. Имеет смысл, поскольку | ||
| + | в случае использования нескольких вкладок в браузере, каждое из подключений | ||
| + | получит событие независимо. | ||
| + | //* eventname - название пользовательского события. | ||
| + | //* eventparam - параметр пользовательского события. Переходит в сгенерированное сообщение без изменений. | ||
| + | Может содержать строку, набор, массив, словарь - все что угодно. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''gettemphttppassresult'''</span> | ||
| + | |||
| + | Событие из Oktell пользователям CRM. Отправляется всем пользователям, указанным при запросе на рассылку события. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "customevent", | ||
| + | { | ||
| + | "qid":"aaa3f5c9-bcd5-4bf9-aef9-0b4ee735170d", | ||
| + | "userlogin": "Петров", | ||
| + | "userid": "C45D4911-BDE2-40C0-8D11-A4AFF1F160CC", | ||
| + | "eventname": "newClientCategoryAdded", | ||
| + | "triggereduserid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", | ||
| + | "triggereduserlogin": "Иванов", | ||
| + | "eventparam": { "param1": "123", "p2": { "asdfasd": "sdfgsdf" } , ... } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* eventname - название пользовательского события. | ||
| + | //* eventparam - параметр пользовательского события в неизменном виде, как в запросе. | ||
| + | //* triggereduserid - идентификатор пользователя-рассыльщика. | ||
| + | //* triggereduserlogin - логин пользователя-рассыльщика. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''gettotalqueue'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell на возврат информации обо всех очередях. | ||
| + | Может использоваться без указания пользователя. | ||
| + | Не рекомендуется к частому использованию, так как требует значительных вычислительных ресурсов. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "gettotalqueue", | ||
| + | { | ||
| + | "qid": "DDDB5BCA-A200-448C-93C7-EFEAE5AFE48D", | ||
| + | "skipempty": true | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''gettotalqueueresultresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает список всех очередей и их абонентов | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "gettotalqueueresult", | ||
| + | { | ||
| + | "qid": "DDDB5BCA-A200-448C-93C7-EFEAE5AFE48D", | ||
| + | "result": [ | ||
| + | { | ||
| + | "numid": "507db30b-f8f7-46cf-b3c7-6b8ba7b696a8", | ||
| + | "numprefix": "12", | ||
| + | "ruleid": "6ffab1ac-7b9b-4ba2-8547-233175368b6d", | ||
| + | "rulename": "Денис" | ||
| + | "queue": [ | ||
{ | { | ||
| − | " | + | "objectid": "928efda2-a3b3-423b-9d49-d2e76879c718", |
| − | " | + | "chainid": "d1c2b337-6293-4ea0-a355-f59caaeff54b", |
| − | " | + | "srcelementid": "38d8b6ad-a68b-4075-a1a3-038510f20a54", |
| − | " | + | "objecttype": 0, |
| − | " | + | "objecttypestr": "qotQueueLogic", |
| − | + | "queuesource": 1, | |
| − | + | "queuesourcestr": "qsLineLogic", | |
| − | + | "callerid": "14", | |
| − | + | "calledid": "12", | |
| − | + | "isuser": true, | |
| − | + | "userid": "da803f01-ea77-40fa-bc9d-e2efb36fd5a8", | |
| − | + | "userlogin": "Peter", | |
| − | + | "username": "Петр Александрович", | |
| − | + | "department": "Программисты", | |
| − | + | "managedlineid": "38d8b6ad-a68b-4075-a1a3-038510f20a54", | |
| − | + | "managedlinenumber": "16001", | |
| − | + | "srclineid": "38d8b6ad-a68b-4075-a1a3-038510f20a54", | |
| − | + | "srclinenumber": "16001", | |
| − | + | "queuepriority": 9, | |
| − | + | "startqueuetime": "2012-06-07 12:58:44", | |
| + | "lenqueue": 1.4375, | ||
| + | "istask": false | ||
| + | } | ||
] | ] | ||
| + | }, | ||
| + | ... | ||
| + | {} | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | /* | + | //* result - содержит список всех очередей. Очередь при этом содержится в словаре. |
| − | /* | + | //* result:numid - идентификатор стандартного внутреннего номера, при котором данная очередь. |
| − | + | //* result:numprefix - стандартный внутреннего номер, при котором данная очередь. | |
| + | //* result:ruleid - идентификатор номерного правила, при котором данная очередь. | ||
| + | //* result:rulename - название номерного правила, при котором данная очередь. | ||
| + | //* result:queue - список абонентов очереди в порядке убывания. Каждый абонент содержится в словаре. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green">'''whoareyou'''</span> | ||
| + | |||
| + | Двунаправленный запрос на возврат информации об удаленной стороне. Служит для выстраивания взаимоотношений на основе типа подключения, а также дает возможность получить имя системы для указания администратору. | ||
| + | Ответом является сообщение ''iam''. | ||
| + | |||
| + | Применяется в [[#Arch2|схеме интеграции 1]]. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "whoareyou", | ||
| + | { | ||
| + | "qid": "4FEEB8EF-DF4B-47AE-8EFE-4BDA577A6FF8", | ||
| + | "type": "ws-server", | ||
| + | "name": "Iris CRM", | ||
| + | "version": 10.5 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* type - собственный тип сервера, осуществляющего запрос. | ||
| + | Oktell при запросе указывает значение ''commserver''. | ||
| + | WebCRM может указывать что либо отличное, например ''ws-server'' или ''crm-server''. | ||
| + | //* name - собственное название службы. | ||
| + | //* version - собственная версия службы. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">'''iam'''</span> | ||
| + | |||
| + | Двунаправленный ответ на запрос ''whoareyou''. Возвращает информацию об удаленной стороне. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "iam", | ||
| + | { | ||
| + | "qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0", | ||
| + | "type": "commserver", | ||
| + | "name": "Oktell", | ||
| + | "version": 100425, | ||
| + | "build": "2.5.3928.8022" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* type - тип удаленного сервера. | ||
| + | Oktell при запросе указывает значение ''commserver''. | ||
| + | WebCRM может указывать что либо отличное, например ''ws-server'' или ''crm-server''. | ||
| + | //* name - название службы на удаленнм сервере. | ||
| + | //* version - версия службы на удаленном сервере. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''execpredefineddbstoredproc'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Исполняет указанную хранимую процедуру в БД Oktell и возвращает данные всех сформированных в ходе выполнения наборов. | ||
| + | Доступные для исполнения процедуры содержатся в конфигурационном файле ''websocket.config'', а также могут быть возвращены методом ''getversion''. | ||
| + | |||
| + | Не требует указания пользователя. | ||
| + | |||
| + | Доступно для [[#Arch2|схемы интеграции 2]]. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "execpredefineddbstoredproc", | ||
| + | { | ||
| + | "qid": "7198D943-7BA9-443D-B283-55812BC82AFB", | ||
| + | "procedure": "T_GetFavorites", | ||
| + | "inputparams": { | ||
| + | "param1": "XXX", | ||
| + | "param2": 10 | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* procedure - название процедуры из разрешенного списка. | ||
| + | //* inputparams - значения параметров процедуры. Имена параметров могут содержать в начале символ ''@'', | ||
| + | В случае его отсутствия он добавляется автоматически. | ||
| + | Если в списке присутствует параметр ''authorizeduserid'', его значение будет принудительно заменено | ||
| + | на идентификатор текущего авторизованного пользователя в Oktell. Этим можно пользоваться для | ||
| + | создания в БД процедур, учитывающих инициатора исполнения. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''execpredefineddbstoredprocresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает результат исполнения хранимой процедуры в БД Oktell. Перечисляет все выходные наборы данных. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "execpredefineddbstoredprocresult", | ||
| + | { | ||
| + | "qid": "7198D943-7BA9-443D-B283-55812BC82AFB", | ||
| + | "result": 1, | ||
| + | "errorcode": 0, | ||
| + | "errorstr": "", | ||
| + | "dataset": [ | ||
| + | [ | ||
| + | ["column1", "column2", "column3"], | ||
| + | ["row1val1", "row1val2", "row1val3" ], | ||
| + | ["row2val1", "row2val2", "row2val3" ], | ||
| + | ... | ||
| + | ], | ||
| + | [ | ||
| + | ["column1", "column2"] | ||
| + | ], | ||
| + | ... | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* result - 1 или 0. Успешно или неудачно проведена операция. | ||
| + | //* errorcode - код ошибки. 50044 - служебное значение, в случае запрета или исключения при исполнении, | ||
| + | не связанного с ошибкой SQL | ||
| + | //* errorstr - описание ошибки. | ||
| + | //* dataset - наборы данных по порядку выдачи в ходе исполнения хранимой процедуры. | ||
| + | Набор - это список строк, каждая из которых - список значений по ячейкам. | ||
| + | Первая строка в наборе - всегда содержит названия столбцов набора. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''exectmcall'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Осуществляет размещение короткого задания на дозвон и соединение с указанным оператором (пользователем). | ||
| + | Дозвониться до одного из указанных абонентов-номеров группы A, соединить с одним из указанных абонентов-номеров группы B. | ||
| + | Результатом выполнения является одна коммутация. | ||
| + | |||
| + | Не требует указания пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "exectmcall", | ||
| + | { | ||
| + | "qid": "BE06A1E4-759A-4BFA-8D15-5FCF756EEE53", | ||
| + | "taskid": "qud82039lsdfmnasd", | ||
| + | "a_abonents": [ | ||
| + | "7931289", | ||
| + | "+7 (495) 255-55-28", | ||
| + | "425", | ||
| + | "688C1DD6-7429-4B47-819D-C15827654A53", | ||
| + | { | ||
| + | "type": 11, | ||
| + | "key": "+7 (495) 255-55-28" | ||
| + | } | ||
| + | ], | ||
| + | "b_abonents": [ | ||
| + | "1211F58F-93AE-470C-895D-E3A163E8FF5F", | ||
| + | "ivanov", | ||
| + | "2BC51D79-BA63-47D7-93CA-1F283029C529", | ||
| + | { | ||
| + | "type": 12, | ||
| + | "key": "1211F58F-93AE-470C-895D-E3A163E8FF5F" | ||
| + | } | ||
| + | ] | ||
| + | "mode": 0 | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | [ | ||
| + | "exectmcall", | ||
| + | { | ||
| + | "qid": "BE06A1E4-759A-4BFA-8D15-5FCF756EEE53", | ||
| + | "taskid": "qud82039lsdfmnasd", | ||
| + | "taskcode": "xxxxx", | ||
| + | "a_abonents": ["4952172020"], | ||
| + | "b_abonents": ["417"], | ||
| + | "mode": 0, | ||
| + | "ownertext": "Задача соединения", | ||
| + | "sessionid": "FB232E90-524A-453C-95BA-1B42251F5A14", | ||
| + | "projectid": "F95BA34E-2CE2-49FA-B3C2-4344199F5B42", | ||
| + | "a_callerid": "4959261589", | ||
| + | "a_music": "Фоновое воспроизведение для оператора", | ||
| + | "a_usequeue": false, | ||
| + | "a_queuepriority": 10, | ||
| + | "a_timeoutsec": 40, | ||
| + | "b_callerid": "4952172020", | ||
| + | "b_music": "?**ivr?Фоновое воспроизведение", | ||
| + | "b_usequeue": true, | ||
| + | "b_queuepriority": 5, | ||
| + | "b_timeoutsec": 40, | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | Обязательными параметрами являются только a_abonents и b_abonents. Остальные имеют значения по умолчанию. | ||
| + | |||
| + | //* taskid - уникальный строковый идентификатор задания. | ||
| + | Может быть не указан, тогда генерируется автоматически. | ||
| + | //* taskcode - пользовательский код задачи, передается в сценарии, обслуживающие дозвоны. | ||
| + | //* a_abonents - набор из одного или нескольких абонентов, относящихся к группе A. | ||
| + | //* b_abonents - набор из одного или нескольких абонентов, относящихся к группе B. | ||
| + | abonent:type - типы представления о конкретном абоненте | ||
| + | Undefined = 0, //Не определен, определить автоматически. | ||
| + | External = 11,//Внешний номер | ||
| + | InternalItem = 12,//Внутренний элемент - пользователь или линия, | ||
| + | задаются ключами (идентификатор, номер, логин, имя). | ||
| + | InternalRule = 13,//Стандартный внутренний номер | ||
| + | InternalFast = 14,//Быстрый номер | ||
| + | InternalEmergency = 15,//Экстренный номер | ||
| + | InternalIVR = 16,//Сценарий IVR | ||
| + | //* mode: | ||
| + | 0 - вызывает сначала группу A (достает первого ответившего), | ||
| + | потом абонентов группы B (достает первого ответившего) | ||
| + | 1 - вызывает сначала группу B (достает первого ответившего), | ||
| + | потом абонентов группы A (достает первого ответившего) | ||
| + | 2 - вызывает одновременно всех, достает первого ответившего из группы A | ||
| + | и первого ответившего из группы B. | ||
| + | //* a_music, b_music - мелодия ожидания для абонентов группы A и B. Задается с помощью строки: | ||
| + | - ''?**ivr?scriptname'', где scriptname - название фонового медиа сценария IVR. | ||
| + | - ''?**ff?filepath'', где filepath - абсолютный путь к звуковому файлу (*.mp3 или *.wav). | ||
| + | - ''?**ff?folderpath'', где folderpath - абсолютный путь к каталогу со звуковыми файлами, выбираются рандомно. | ||
| + | - ''?**ff?filename'', где filename - название файла с расширением (*.mp3 или *.wav) в стандартном каталоге Snd. | ||
| + | - абсолютный путь к каталогу cо звуковыми файлами | ||
| + | - абсолютный путь к файлу | ||
| + | - название файла с расширением в стандартном каталоге Snd | ||
| + | - название фонового медиа-сценария IVR | ||
| + | - если не указывать, указывать неверно или указывать пустоту - играется | ||
| + | [[Музыкальное сопровождение#Alternative|альтернативная мелодия ожидания]] (возможно сценарий) из общих настроек | ||
| + | //* sessionid - генерируемый идентификатор цепочки коммутаций/сессии. | ||
| + | //* ownertext - название владельца служебного сценария набора номеров. | ||
| + | //* projectid - привязанный идентификатор проекта (участвует в поиске сценариев). | ||
| + | //* a_usequeue, b_usequeue: true|false. Использовать ли очередь ожидания при вызове внутренних абонентов. | ||
| + | //* a_queuepriority, b_queuepriority: числовой приоритет при размещении в очередях. | ||
| + | Традиционно чем меньше значение - тем больше приоритет. | ||
| + | Значения по умолчанию определены в [[Настройки менеджера очередей|общих настройках]] | ||
| + | //* a_timeoutsec, b_timeoutsec: таймаут в секундах для вызова абонентов соответствующей группы. | ||
| + | Режим использования таймаута задается в разделе [[Настройки менеджера очередей|настроек менеджера очередей]]. | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''exectmcallresult'''</span> | ||
| + | |||
| + | Ответ из Oktell в CRM. Возвращает результат исполнения хранимой процедуры в БД Oktell. Перечисляет все выходные наборы данных. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "exectmcallresult", | ||
| + | { | ||
| + | "qid": "BE06A1E4-759A-4BFA-8D15-5FCF756EEE53", | ||
| + | "taskid": "qud82039lsdfmnasd" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | //* taskid - возвращает идентификатор запущенного задания. | ||
| + | В дальнейшем с помощью него можно будет отменить задание (если оно еще не будет к тому времени исполнено) | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''stoptmcall'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Отменяет ранее запущенное методом ''exectmcall'' задание, если оно еще не завершило исполнение. | ||
| + | |||
| + | Не требует указания пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "stoptmcall", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859", | ||
| + | "taskid": "qud82039lsdfmnasd" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''stoptmcallresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM. Возвращает результат отмены задания. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "stoptmcallresult", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859", | ||
| + | "taskid": "qud82039lsdfmnasd", | ||
| + | "success": false, | ||
| + | "errortext": "task not found" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''ping'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Периодически пробивает канал связи, напоминая о жизнеспособности подключения. Необязательно | ||
| + | |||
| + | Не требует указания пользователя. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "ping", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''pong'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM на запрос ''ping''. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "pong", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859" | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------- | ||
| + | <span style="color:green"><<< '''subscribeevent'''</span>, | ||
| + | <span style="color:green">'''unsubscribeevent'''</span> | ||
| + | |||
| + | Запрос из CRM в Oktell. Производит соответсвенно подписку и отписку на указанные события. | ||
| + | |||
| + | Доступно и требуется только для [[#Arch2|схемы интеграции 2]]. | ||
| + | В [[#Arch2|схеме интеграции 1]] события поступают в полном объеме, часть из них объединяются и отправляются на сервер WebCRM без привязки к пользователю; ожидается, что сервер WebCRM самостоятельно размножит их. К таким событиям относятся, например ''pbxnumberstatechanged'', ''conflistchanged'' и им подобные. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "subscribeevent", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859" | ||
| + | "eventmethod": "userstatechanged", | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | [ | ||
| + | "subscribeevent", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859" | ||
| + | "eventmethod": [ | ||
| + | "userstatechanged", | ||
| + | "pbxnumberstatechanged" | ||
| + | ] | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | <pre> | ||
| + | [ | ||
| + | "unsubscribeevent", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859" | ||
| + | "eventmethod": "userstatechanged", | ||
| + | } | ||
| + | ] | ||
| + | </pre> | ||
| + | |||
| + | События, требующие подписки: | ||
| + | :* pbxnumberstatechanged | ||
| + | :* pbxnumberlistmodified | ||
| + | :* shownotifymessage | ||
| + | :* usertextmessagereceived | ||
| + | :* usertextmessageviewed | ||
| + | :* voicemailreceived | ||
| + | :* userstatechanged | ||
| + | :* phoneevent_acmcallstarted | ||
| + | :* phoneevent_acmcallstopped | ||
| + | :* phoneevent_ringstarted | ||
| + | :* phoneevent_ringstopped | ||
| + | :* phoneevent_ivrstarted | ||
| + | :* phoneevent_ivrstopped | ||
| + | :* phoneevent_commstarted | ||
| + | :* phoneevent_commstopped | ||
| + | :* phoneevent_faxstarted | ||
| + | :* phoneevent_faxstopped | ||
| + | :* phoneevent_faxreceived | ||
| + | :* linestatechanged | ||
| + | :* chainstatechanged | ||
| + | :* flashstatechanged | ||
| + | :* conferenceevent | ||
| + | :* conflistchanged | ||
| + | :* confparamschanged | ||
| + | :* confcompositionchanged | ||
| + | :* confcompetitorstatechanged | ||
| + | :* confentrancedenied | ||
| + | :* confentrancepermitted | ||
| + | :* confentrancerequest | ||
| + | :* confnotifyinvite | ||
| + | :* confpossiblecompetitorstatechanged | ||
| + | :* customevent | ||
| + | :* executemethod ''(список доступных динамических методов содержится в файле websock.config)'' | ||
| + | :* cancelmethod | ||
| + | :* showform ''(список доступных динамических форм содержится в файле websock.config)'' | ||
| + | :* closeform | ||
| + | |||
| + | |||
| + | <span style="color:green">>>> '''subscribeeventresult'''</span>, | ||
| + | <span style="color:green">'''unsubscribeeventresult'''</span> | ||
| + | |||
| + | Ответ от Oktell в CRM на запросы ''subscribeeventresult'' и ''unsubscribeeventresult'' соответственно. | ||
| + | |||
| + | <pre> | ||
| + | [ | ||
| + | "subscribeeventresult", | ||
| + | { | ||
| + | "qid": "DDA55585-F598-4F8C-B605-E6E186E6D859" | ||
| + | "result": 1 | ||
| + | } | ||
| + | ] | ||
</pre> | </pre> | ||
Версия 18:46, 17 сентября 2012
В рамках настоящей статьи рассматриваются вопросы интеграции web-системы и коммуникационной системы (в дальнейшем WebCRM и Oktell). WebCRM на рабочем месте сотрудника используется через браузер. Телефон, находящийся на рабочем месте сотрудника подключен к серверу (узлу коммутаций) Oktell. Решается задача функционального объединения двух системы с предоставлением возможности приема и совершения звонков и управления телефоном из интерфейсов WebCRM.
Содержание
- 1 Краткое описание возможностей телефонии Oktell
- 2 Схема интеграции 1 (межсерверное подключение)
- 3 Схема интеграции 2 (клиент-серверное подключение)
- 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 Контент звонка
- 7.15 Журнал звонков
- 7.16 Номерной план
- 7.17 Преобразования
- 7.18 Служебные методы
Краткое описание возможностей телефонии Oktell
Стандартный функционал Oktell предоставляет пользователям:
- доступ к управлению телефонами (позвонить, переключить, отклонить звонок, организовать конференцию, пригласить других участников в конференцию, подключиться к разговору в режиме прослушивания, помощи и т.д.).
- доступ к управлению состояниями пользователей (перерыв - чтобы поток входящих звонков не поступал, занят - чтобы отметить факт обработки звонка, переадресация - чтобы все звонки на пользователя перенаправлялись в соответствии с настроенными правилами, готов - чтобы вернуться к обычному режиму).
- информацию о текущем состоянии телефонов, внутренних номеров, пользователей с т.з. занятости в операциях телефонии.
- информацию о поступающем звонке, абоненте
- доступ к статистике разговоров (по правам).
- доступ к записям разговоров (по правам).
- доступ к информации об ожидающей очереди абонентов в реальном времени.
- доступ к контентам сессий и линий.
- доступ к управлению режимом переадресации.
- возможность запуска служебных сценариев.
и т.д.
В рамках настройки сценариев Oktell, имеется возможность отправлять синхронные и асинхронные запросы в WebCRM (фактически исполнять методы по событиям в Oktell)и получать ответы и применять их в рамках проведения маршрутизации или любых других действий, реализуемых в сценариях. Например:
- Выяснить, какому клиенту/контакту принадлежит определившийся номер телефона или введенный им вручную с помощью DTMF-набора номер договора, отфильтровать по черному списку, переключить вызов на ответственного за работу с этим контактом пользователя, если пользователя нет в системе - переключить на секретаря, а если контакт новый - соединить с отделом продаж. Если ответственный пользователь занят, предложить оставить голосовое сообщение для VIP клиентов.
- В момент поступления звонка открыть карточку у пользователя, которому направляется звонок. Закрыть ее автоматически, если пользователь так и не снял трубку (а снял кто-то другой, или звонок потерялся).
- Выполнить какое-то важное с т.з. WebCRM действие в случае, например, если пользователь оставил заказ на встречный звонок, занести его в список задач.
Именно сценарии придают жизнь Oktell и его сервисам.
Среди событий Oktell, отрабатываемых в сценариях:
- поступление внешнего звонка.
- завершение звонка.
- переключение абонента на пользователя, группу пользователей, задачу коллцентра.
- любое из интересующих явлений в ходе обработки звонка (от преобразования номера абонента в нужный формат и сверки времени поступления звонка до обработки контента звонка после завершения и выявления там факта состоявшейся конференции).
- наступление определенного времени.
- периодический запуск по таймеру.
- поступление/отправка e-mail.
- поступление/отправка sms/icq/jabber.
- контрольные события call-центра (оператор первым положил трубку, оператор слишком долго находится в перерыве или поствызывной обработке, число операторов в задаче меньше минимально допустимого, число абонентов в очереди задачи больше допустимого и т.д.)
- ручной запуск сценария по инициативе пользователя или WebCRM.
- исходящий звонок от пользователя
- поступление голосовой почты
- появление где-то в базе данных интересующего события (например появление новой записи в таблице абонентов)
- появление где-то на веб-ресурсе интересующего события (например температура на улице опустилась ниже нуля)
и т.д.
Схема интеграции 1 (межсерверное подключение)
Сервер 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 (клиент-серверное подключение)
Сервер 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}
]
}
]
Обмен состояниями пользователей
<<< 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 в CRM об уведомлении пользователя по аналогии с всплывающими уведомлениями клиентского приложения Oktell
[
"shownotifymessage",
{
"qid": "99CC8C57-1793-486A-AFB1-6E5CA3E6855E",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"id": "A33027E1-096F-38B8-1198-BB4D7C15823A",
"sender": "АТС",
"text": "Петров",
"savedb": "true",
"autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
"dtformat": "dd.MM.yyyy HH:mm:ss",
"dt": "25.09.2011 13:07:12",
"type": 262144,
"backcolor": "00FF0000",
"uniquekey": "E7899B61-55C3-4007-91EE-DDB348913AA8",
}
]
//* id - идентификатор сообщения. Присутствует, если сообщение сохранено в БД.
//* savedb: true|false. Сохранено ли сообщение в БД.
//* dt - дата/время генерации уведомления.
//* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только
одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это)
//* backcolor - hex AARRGGBB
//* type - тип сообщения из флагового списка кратных двойке кодов
<<< setnotifyshown
Запрос из CRM в Oktell об установке признака прочтенности уведомления.
[
"setnotifyshown",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"id": "A33027E1-096F-38B8-1198-BB4D7C15823A",
"wasshown": false
}
}
]
//* id - идентификатор сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только
одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это)
//* ids - список идентификаторов отображенных уведомлений.
//* 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"
}
]
//* error: список FaxError
>>> 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",
"intercom": false
}
]
//* direction: int, ext, undefined (внутрь, наружу, автоопределение) //* sequence: abonent, user (сначала до абонента, сначала до пользователя) //* intercom: true|false (интерком-вызов, обычный вызов)
>>> 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",
"intercom": false
}
]
>>> 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",
"mode": "default"
}
]
//* mode - abort, switch, next - устанавливает поведение, если на удержании уже находится абонент. abort - обрыв текущему и переключение на того кто на удержании switch - возврат к тому, кто на удержании, с размещением текущего на удержании next - обрыв текущему и переход сразу в набор номера
<<< pbxclearflash
Запрос из CRM в Oktell на обрыв линии, находящейся на удержании.
[
"pbxclearflash",
{
"qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
}
]
]
<<< pbxfaxreceive
Запрос из CRM в Oktell на переключение в прием факса.
[
"pbxfaxreceive",
{
"qid": "59305AD1-40A5-476A-B76D-2DAB1F2A89D3",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"linkmode": "simple"
}
]
//* linkmode - full, simple - устанавливает формат ссылок, в котором будут указаны полученные файлы в событии об окончании приема. full - вернуть абсолютную ссылку на скачивание через http. simple - вернуть относительную ссылку на скачивание. При формировании абсолютной ссылки в качестве доменного имени берется значение из раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell.
<<< pbxfaxstop
Запрос из CRM в Oktell на прерывание приема/передачи факса.
[
"pbxfaxstop",
{
"qid": "59305AD1-40A5-476A-B76D-2DAB1F2A89D3",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
}
]
<<< pbxmakeflash
Запрос из CRM в Oktell на программную эмуляцию флэш.
[
"pbxmakeflash",
{
"qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"mode": "default"
}
]
//* mode - abort, switch, next - устанавливает поведение, если на удержании уже находится абонент. abort - обрыв текущему и переключение на того кто на удержании switch - возврат к тому, кто на удержании, с размещением текущего на удержании next - обрыв текущему и переход сразу в набор номера
Запуск служебного сценария
<<< startsvcscript <<< execsvcscript
Запрос из CRM в Oktell на запуск служебного сценария. startsvcscript - от имени пользователя, execsvcscript - без указания пользователя от имени сервера.
[
"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
}
]
[
"execsvcscript",
{
"qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
"scriptname": "Служебный сценарий получения почты",
"startparam1": "значение параметра 1",
"startparam2": "значение параметра 2",
"startparam3": "значение параметра 3",
"startparam4": "значение параметра 4",
"startparam5": "значение параметра 5",
"waitresponse": true,
"waittimeoutsec": 10
}
]
//* scriptname - название сценария в общем разделе. //* startparamN - строковое значение соответствующего параметра. При необходимости передать больше параметров следует объединять параметры в одну строку с использованием символа-разделителя, а в самом сценарии производить обратную операцию. //* waitresponse - ожидать ли ответа. //* waittimeoutsec - таймаут ожидания ответа в секундах. 0 - вечно.
>>> startsvcscriptresult
Ответ Oktell на запрос запуска служебного сценария.
[
"startsvcscriptresult",
{
"qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"scriptname": "Служебный сценарий получения почты",
"result": 0,
"returnvalue": "присвоенный в сценарии результат",
"error": 10
}
]
[
"execsvcscriptresult",
{
"qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
"scriptname": "Служебный сценарий получения почты",
"result": 0,
"returnvalue": "присвоенный в сценарии результат",
"error": 10
}
]
//* error: 10 - файл не найден, 11 - исключение, 12 - таймаут //* returnvalue - возвращаемый результат сценария (если сценарий исполнился, и его завершения удалось дождаться)
Методы динамического взаимодействия
Информация от 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
Запрос из CRM к Oktell. Подписка/отписка на указанную категорию событий сервера конференций.
[
"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": "Петров",
},
{...},
{...}
]
}
]
//* conference:accessmode - free|shared|closed (свободный вход, вход по запросу, вход запрещен)
//* conference:recordrights - director|competitors|selected (только управляющий, все участники, избранные участники)
Определяет, кто может прослушивать запись конференции.
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один
параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
//* список recordusers следует указывать, если conference:recordrights=selected.
>>> createnewconferenceresult
Ответ из Oktell в CRM с результатом исполнения команды на создание конференции.
[
"createnewconferenceresult",
{
"qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 0,
"error": 1,
"errormsg": "alreadyexists",
}
]
<<< 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
}
}
]
//* competitor - указывает на одного участника конференции.
/ достаточно/следует указывать только один из набора определяющих участника идентификаторов
{competitorid, userid|userlogin, lineid}
//* competitor:cantalk - может ли говорить
//* competitor:canlisten - может ли слышать
//* competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов -
может ли слышать подключившегося супервизора
>>> 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"
}
]
<<< 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",
}
]
//* ghostmode - monitor, help, conference (подслушивание, помощь, конференция)
>>> 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",
}
}
]
//* competitor - указывает на одного участника конференции.
/ достаточно/следует указывать только один из набора определяющих участника идентификаторов
{competitorid, userid|userlogin, lineid}
>>> 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
}
}
]
//* competitor - указывает на одного участника конференции.
/ достаточно/следует указывать только один из набора определяющих участника идентификаторов
{competitorid, userid|userlogin, lineid}
>>> 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
},
{...},
{...}
]
}
]
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один
параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
>>> 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
}
]
События из 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
Состояния пользователей и линий
>>> 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 - если что-то уникальное юзер ввел.
<<< 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"
}
}
]
<<< getmyuserinfo
Запрос из CRM в Oktell на получение информации о текущем авторизованном пользователе: имя, внутренний номер, номер и идентификатор линии.
[
"getmyuserinfo",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов", "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B", }
] </pre>
>>> getmyuserinforesult
Ответ из Oktell в CRM с ответом на запрос информации о текущем авторизованном пользователе.
[
"getmyuserinforesult",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"username": "Иванов Иван Иванович",
"mainpbxnumber": "471",
"hasline": 1,
"lineid": "267F8F36-4713-4B66-81BD-019512E56E7E",
"linenumber": "17374",
}
}
]
<<< getuserphoto
Запрос из CRM в Oktell о текущем изображении (аватарке) указанного пользователя.
[
"getuserphoto",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"photoownerlogin": "Петров",
"photoownerid": "3F140170-AEEF-4621-AF9D-247116AE1411"
"mode": "link"
}
]
//* mode - link, page, data. По умолчанию page. link - вернуть абсолютную ссылку на скачивание через http. page - вернуть относительную ссылку на скачивание. вернуть данные изображения в base64. При формировании абсолютной ссылки в качестве доменного имени берется значение из раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell. //* photoownerlogin, photoownerid - логин и/или идентификатор пользователя, чья аватарка требуется Может не указываться, тогда будет возвращена аватарка авторизованного пользователя.
>>> getuserphotoresult
Ответ из Oktell в CRM с ответом на запрос информации о текущем авторизованном пользователе.
[
"getuserphotoresult",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 1,
"link": "http://..."
"link32": "http://..."
"link96": "http://..."
}
}
]
//* result. В случае отсутствия файла или по любой другой причине неудачи описание неудачи будет находиться в поле errormsg. Например "File not found". //* imagedatab64. В случае возврата целиком изображения, оно будет в base64 строке содержаться в поле. //* link, link32, link96. В случае возврата ссылки на изображение в полях лежат соответственно ссылки на полное изображение, 32х32- и 96x96- пиксельные образы.
<<< getalluserphotolink
Запрос из CRM в Oktell на получение ссылок на текущие изображения (аватарки) всех пользователей системы.
[
"getalluserphotolink",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"mode": "link"
}
]
//* mode - link, page. По умолчанию page. link - вернуть абсолютную ссылку на скачивание через http. page - вернуть относительную ссылку на скачивание. При формировании абсолютной ссылки в качестве доменного имени берется значение из раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell.
>>> getalluserphotolinkresult
Ответ из Oktell в CRM с ответом на запрос ссылкок на текущие изображения (аватарки) всех пользователей системы.
[
"getalluserphotolinkresult",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 1,
"links": [
{
"userid": "C6036E73-FB90-4F0C-B780-81CE5659BFEA",
"userlogin": "Сидоров",
"link": "http://...",
"link32x32": "http://...",
"link96x96": "http://...",
},
...
]
}
]
//* result. Если в наборе есть хотя бы одна аватарка, будет содержать 1. Иначе 0. //* links. Содержит набор пользовательских словарей, в каждом из которых идентификатор, логин и набор ссылок link, link32, link96. В полях лежат соответственно ссылки на полное изображение, 32х32- и 96x96- пиксельные образы.
<<< setmyuserphoto
Запрос из CRM в Oktell на установку нового изображения (аватарки) текущего пользователя.
[
"setmyuserphoto",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"filepath": "",
"imagedatab64": "",
"filename": ""
}
]
//* filepath - если файл уже на сервере где-то, то это путь к нему - относительный рабочего каталога, относительный файлового хранилища, или абсолютный. Допускается устанавливать в качестве аватарки изображения размером не более 1 MБ. либо //* imagedatab64 и filename - если файл целиком прокачивается через веб-сокет, то тут base64 строка с образом файла. //* если не указано ни filepath, ни imagedatab64, ни filename - стирает текущую аватарку.
>>> setmyuserphotoresult
Ответ из Oktell в CRM с ответом на запрос информации о текущем авторизованном пользователе.
[
"setmyuserphotoresult",
{
"qid": "0DD06DFF-E7C7-431B-BC29-920EAC81F76F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 1
}
}
]
//* result. В случае отсутствия файла или по любой другой причине неудачи описание неудачи будет находиться в поле errormsg. Например "File not found".
<<< changepassword
Запрос из CRM в Oktell на изменение пароля текущего авторизованного пользователя
[
"changepassword",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"newpwdmd5": "",
"oldpwdmd5": ""
}
]
//* oldpwdmd5 - MD5 текущего пароля. //* newpwdmd5 - MD5 нового пароля.
>>> changepasswordresult
Ответ от Oktell в CRM о результате изменения пароля.
[
"changepasswordresult",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 0,
"errormsg": "password should be md5 string"
}
]
<<< 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"
}
]
<<< getcurrentqueue
Запрос из CRM в Oktell состояния очереди указанного пользователя.
[
"getcurrentqueue",
{
"qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
}
]
>>> getcurrentqueueresult
Ответ из 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"
}
]
<<< getflashedabonentinfo
Запрос из CRM в Oktell на возврат информации об абоненте, находящемся на удержании.
[
"getflashedabonentinfo",
{
"qid": "DC35D182-8BAB-4DE4-919C-5F79090D92DE",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
}
]
>>> getcallingoutabonentinforesult
Ответ из Oktell в CRM. Возвращает информацию об абоненте, находящемся на удержании
[
"getflashedabonentinforesult",
{
"qid": "DC35D182-8BAB-4DE4-919C-5F79090D92DE",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"containsflashed": 1,
"abonent": {
"chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
"isconference": 0,
"conferenceid": "0D2A4CA1-FF17-473B-A5E9-E035CB16E257",
"conferenceroom": "#124",
"conferencename": "Планерка",
"conferencedescription": "",
"name": "",
"comment": "",
"description": "",
"simplename": "",
"number": "89032728973",
"lineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F",
"linenumber": "13005",
"userid": "",
"userlogin": "",
"username": ""
}
}
]
<<< getextendedlineinfo
Запрос из CRM в Oktell на возврат расширенной информации о текущей линии и ее оппозитных абонентах: текущее состояние, информация об абоненте в коммутации, информация об абоненте на удержании.
[
"getextendedlineinfo",
{
"qid": "55D54351-651E-4EC2-8E48-1D5136811FB9",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
}
]
>>> getextendedlineinfo
Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя.
[
"getextendedlineinforesult",
{
"qid": "55D54351-651E-4EC2-8E48-1D5136811FB9",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"linestateid": 5,
"linestatestr": "lsCommutated,
"chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
"datetimeformat" = "dd.MM.yyyy HH:mm:ss",
"activetimestart" = "01.12.2011 16:59:28",
"abonent": {
"isconference": false,
"conferenceid": "0D2A4CA1-FF17-473B-A5E9-E035CB16E257",
"conferenceroom": "#124",
"conferencename": "Планерка",
"conferencedescription": "",
"iscommutated": false,
"iswaitingfaxline": false,
"iswaitinginflash": false,
"iswaitingforanswer": false,
"number": "",
"name": "",
"description": "",
"userid": "",
"userlogin": "",
"username": "",
"comment": "",
"simplename": "",
"lineid": "",
"linenumber": "",
"isextline": false,
"iswaitingforanswer": false,
"extnumber": "",
"queuesourceid": 1,
"queuesourcestr": "",
"isivr": false,
"ivrname": "",
"isautocall": false,
"number": "",
"isringing": false,
"ringtimesec": 172,
"isconference": false,
"conferenceid": "",
"conferencename": "",
"conferenceroom": "",
"conferencedescription": "",
"inviteruserid": "",
"inviterusername": "",
"inviteruserlogin": "",
"number": "",
"name": "",
"comment": "",
"description": "",
"direction": "",
"isextline": true,
"istask": false,
"taskid": "",
"taskname": "",
"userid": "",
"userlogin": "",
"username": "",
"lineid": "",
"linenumber": ""
}
"isflashing": true,
"flashed": {
"isconference": true,
"conferenceid": "0D2A4CA1-FF17-473B-A5E9-E035CB16E257",
"conferenceroom": "#124",
"conferencename": "Планерка",
"conferencedescription": "",
"number": "",
"name": "",
"description": "",
"userid": "",
"userlogin": "",
"username": "",
"comment": "",
"simplename": "",
"lineid": "",
"linenumber": "",
"isextline": false
}
}
]
//* С отступом в примере указаны поля, появляющиеся в случае, если базовое булево поле имеет значение true. // Например, если isringing=true, то указанные с отступом поля будут присутствовать и представлять собой // информацию об абоненте, осуществляющем вызов текущего канала.
Управление переадресацией
<<< getredirectrules
Запрос из CRM в Oktell на возврат списка правил переадресации для текущего пользователя с их настройками.
[
"getredirectrules",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
}
]
>>> getredirectrulesresult
Ответ из Oktell в CRM. Возвращает список правил переадресации для текущего пользователя с их настройками.
[
"getredirectrulesresult",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"redirectrules": [
{
"id": "5FD3120D-E86B-4F4B-B57C-AC32343CD00F",
"caption": "Постоянное",
"description": "Действует всегда, когда я в состоянии переадресации",
"priority": 1,
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"isenabled": true,
"allowcascade": true,
"state": 2,
"statestr": "Active",
"destinationnumber": "89050213951",
"onlyforredirectstate": true,
"definesources": true,
"sources": [
{
"type": 0,
"typestr": "ExtNumber",
"description": "",
"srcnumber": "4959741589",
"srcid": ""
},
...
],
"defineschedule": true,
"tformat": "HH:mm:ss",
"schedule": [
{
"weekday": 0,
"weekdaystr": "Sunday",
"tstart": "00:00:00",
"tstop": "23:59:59",
},
...
]
},
...
]
}
]
//* state: disabled=0, enabled=1, active=2 //* defineschedule - если false, значит активно всегда //* definesources - если false, значит для всех номеров //* sourcetype - extnumber=0, user=1, client=3, clientgroup=4. Если номер - то указывается scrnumber, иначе srcid
<<< saveredirectrules
Запрос из CRM в Oktell. Сохраняет новое/измененное правило переадресации для текущего пользователя.
[
"saveredirectrules",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"redirectrules": [
{
"id": "5FD3120D-E86B-4F4B-B57C-AC32343CD00F",
"caption": "Постоянное",
"description": "Действует всегда, когда я в состоянии переадресации",
"priority": 1,
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"isenabled": true,
"allowcascade": true,
"destinationnumber": "89050213951",
"onlyforredirectstate": true,
"definesources": true,
"sources": [
{
"type": 0,
"typestr": "ExtNumber",
"description": "",
"srcnumber": "4959741589",
"srcid": ""
},
...
],
"defineschedule": true,
"tformat": "HH:mm:ss",
"schedule": [
{
"weekday": 0,
"weekdaystr": "Sunday",
"tstart": "00:00:00",
"tstop": "23:59:59",
},
...
]
},
...
]
}
]
//* state: disabled=0, enabled=1, active=2 //* defineschedule - если false, значит активно всегда //* definesources - если false, значит для всех номеров //* sourcetype - extnumber=0, user=1, client=3, clientgroup=4. Если номер - то указывается scrnumber, иначе srcid
>>> saveredirectrulesresult
Ответ из Oktell в CRM. Возвращает список правил переадресации для текущего пользователя с их настройками.
[
"saveredirectrulesresult",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 1
}
]
<<< deleteredirectrules
Запрос из CRM в Oktell. Удаляет указанные правила переадресации для текущего пользователя.
[
"deleteredirectrules",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
"ids": [
"5FD3120D-E86B-4F4B-B57C-AC32343CD00F",
...
]
}
]
>>> deleteredirectrulesresult
Ответ из Oktell в CRM. Ничего не возвращает, кроме факта выполнения запроса на удаление правил переадресации.
[
"deleteredirectrulesresult",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
}
]
<<< setredirectruleenabled
Запрос из CRM в Oktell. Включает/выключает указанные правила переадресации.
[
"setredirectruleenabled",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
"id": "5FD3120D-E86B-4F4B-B57C-AC32343CD00F",
"enabled": true
}
]
>>> setredirectruleenabledresult
Ответ из Oktell в CRM. Ничего не возвращает, кроме факта выполнения запроса на включение/выключения указанных правил переадресации.
[
"setredirectruleenabledresult",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
}
]
Контент звонка
<<< 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
}
]
Журнал звонков
<<< getpbxcalljournal
Запрос из CRM в Oktell на возврат журнала звонков АТС по указанному фильтру в соответствии с правами пользователя. В том числе ссылки на файлы записей разговоров.
[
"getpbxcalljournal",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"filter": {
"idconn": "08708573-4AF9-45F2-83B7-B8A0DDEF52EC",
"idchain": "94B5B657-3009-45E0-9095-F5D7BA163EB2",
"datestart": "2011-04-07",
"datestop": "2011-04-07",
"timestart": "08:00:00",
"timestop": "20:00:00",
"connectiontype": "all",
"intnumber": "",
"outnumber": "89503222555",
"minduration": 1,
"userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
"userlogin: "Петров"
"comment": "",
"showcallcenter": false,
"taskid": "00000000-0000-0000-0000-000000000000"
}
}
]
//* filter - фильтр для запроса. Все поля не являются обязательными. По умолчанию возвращаются разговоры за текущий день с 8:00 до 17:00 без звонков call-центра длительностью более 1 секунды, которые доступны авторизованному пользователю по правам контроля. К фильтру могут быть применены: idconn - идентификатор конкретно интересующей коммутации. idchain - идентификатор конкретно интересующей цепочки коммутаций/сессии. datestart - дата начала интересующего периода. Включительно. datestop - дата окончания интересующего периода. Включительно. timestart - время начала интересующего внутридневного интервала. timestop - время окончания интересующего внутридневного интервала. connectiontype - тип соединения (all, incoming, outcoming, internal, conference). intnumber - интересующий внутренний номер. outnumber - интересующий внешний номер. minduration - минимальная длительность коммутации в секундах, может быть действительным значением. userid - идентификатор интересующего пользователя. userlogin - логин интересующего пользователя. comment - строка включения в комментарии. showcallcenter: true|false. Отображать ли коммутации call-центра. taskid - идентификатор задачи в рамках коллцентра, чьи звонки интересны.
<<< getpbxcalljournalresult
Ответ от Oktell в CRM. Возвращает журнал звонков АТС по указанному фильтру в соответствии с правами пользователя.
[
"getpbxcalljournalresult",
{
"qid": "4CC7EDEC-499B-4C03-95D3-57B8C30FC110",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"dtformat": "dd.MM.yyyy HH:mm:ss",
"data": [
{
"commutationid": "044d56f9-7137-49b6-bacf-a10370a54df4",
"chainid": "672ec703-e77a-47b1-b698-cb8488352fc9",
"connectiontype": 10,
"connectiontypestr": "conference",
"dtstart": "2011-04-09 19:55:30",
"dtanswer": "2011-04-09 19:55:30",
"dtstop": "2011-04-09 19:55:33",
"length": 2,
"answerlength": 0,
"hascomment": false,
"isbetweenusers": true,
"fromcc": false,
"isconf": true,
"isrecorded": true,
"recordlink": "/download/rec/AQAAAAAQIKvNHczNCBEBAAAA",
"fileext": "wav",
"auserid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3",
"auserlogin": "Крючков",
"alineid": "A117499D-23EA-4BF8-A6B9-F49580E9628C",
"alinenumber": "16001",
"aoutnumber": "Семен Егорович Крючков",
"anumberdialed": "",
"atext": "Семен Егорович Крючков",
"conferenceid": "224476F1-2E41-4C8F-BA85-6BEF0EBB5339",
"conferenceroom": "751",
"conferencename": "Автоконференция #751 09.04.11 19:55:30",
"conferencedirectorid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3",
"conferencedirectorlogin": "Крючков",
"conferencedirectorname": "Семен Егорович Крючков",
"reasonstop": -1,
"stopside": "a"
},
{
"commutationid": "5F64DECF-194C-474B-8CA7-824E82A1C072",
"chainid": "22A01B17-064B-4E19-99BA-FED96680AF25",
"connectiontype": 5,
"connectiontypestr": "ctOuterInner",
"dtstart": "2011-04-09 19:57:24",
"dtanswer": "2011-04-09 19:57:24",
"dtstop": "2011-04-09 19:58:13",
"length": 49,
"answerlength": 0,
"hascomment": true,
"isbetweenusers": true,
"fromcc": false,
"isrecorded": true,
"recordlink": "/download/rec/AAAAAABwOltxHczNCGlCAACBPgAA",
"fileext": "mp3",
"isconf": false,
"auserid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3",
"auserlogin": "Крючков",
"alineid": "A117499D-23EA-4BF8-A6B9-F49580E9628C",
"alinenumber": "16001",
"aoutnumber": "Семен Егорович Крючков",
"anumberdialed": "",
"atext": "Семен Егорович Крючков",
"buserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
"buserlogin": "Петров",
"blineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
"blinenumber": "17004",
"boutnumber": "",
"bnumberdialed": "217",
"btext": "Петр Петрович Петров",
"reasonstop": -1,
"stopside": "b"
}
{...},
{...}
]
}
]
//* dtformat - формат представления даты/времени. //* data - набор попавших в выдачу коммутаций/конференций. Каждая запись - в отдельном словаре. commutationid - идентификатор коммутации. chainid - идентификатор цепочки коммутаций/сессии. connectiontype, connectiontypestr - Тип соединения: ctInnerOuter = 1, //внутренняя линия с внешней линией ctInnerIvr = 2, //внутренняя линия с IVR ctInnerInner = 3, //внутренняя линия с внутренней линией ctOuterIvr = 4, //внешняя линия с IVR ctOuterInner = 5, //внешняя линия с внутренней линией линией ctOuterOuter = 6, //внешняя линия с внешней линией ctIvrOuter = 7, //IVR с внешней линией ctIvrInner = 8, //IVR с внутренней линией ctConference = 10,//Конференция ctSelector = 11,//Селекторное совещание dtstart - дата/время начала вызова перед осуществлением коммутации. dtanswer - дата/время ответа и начала коммутации. dtstop - дата/время окончания коммутации length - длительность в секундах answerlength - длительность ответа в секундах. hascomment - true|false. Имеет ли данная коммутация комментарий. isbetweenusers - true|false. Является ли текущая коммутация между пользователями системы. fromcc - true|false. Произведена ли текущая коммутация в рамках работы call-центра. isrecorded - true|false. Записана ли коммутация. recordlink - относительная ссылка на скачивание файла записи разговора. fileext - если файл записан, то его расширение mp3 или wav. Возвращает только если в полном результате менее 5 записей, иначе поле отсутствует. isconf - true|false. Является ли текущая запись конференцией. auserid - идентификатор пользователя абонента a. Если IVR - 'ab000000-0000-0000-0000-000000000000', Если внешний абонент - 'bf000000-0000-0000-0000-000000000000' auserlogin - логин пользователя абонента a. alineid - идентификатор линии абонента a. alinenumber - номер линии абонента a. aoutnumber - номер абонента a (CallerId). anumberdialed - набранный абонентом a номер. atext - текстовое описание абонента a. buserid - идентификатор пользователя абонента b. Если IVR - 'ab000000-0000-0000-0000-000000000000', Если внешний абонент - 'bf000000-0000-0000-0000-000000000000' buserlogin - логин пользователя абонента b. blineid - идентификатор линии абонента b. blinenumber - номер линии абонента b. boutnumber - номер абонента b (CallerId). bnumberdialed - набранный абонентом b номер. btext - текстовое описание абонента b. reasonstop - причина разрыва коммутации. stopside - a, b. По чьей инициативе коммутация прервана.
<<< getpbxcallcomment
Запрос из CRM в Oktell на возврат комментария к указанной коммутации.
[
"getpbxcallcomment",
{
"qid": "1E3C27C0-BE28-4621-AD39-6D1B31EB37EB",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644"
}
]
<<< getpbxcallcommentresult
Ответ от Oktell в CRM. Возвращает комментарий к запрошенной коммутации.
[
"getpbxcallcommentresult",
{
"qid": "1E3C27C0-BE28-4621-AD39-6D1B31EB37EB",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644",
"comment": "раз два три четыре пять вышел зайчик погулять"
}
]
<<< setpbxcallcomment
Запрос из CRM в Oktell на установку комментария для указанной коммутации.
[
"setpbxcallcomment",
{
"qid": "3AB79A11-24FB-4D10-B7FD-5FD1653A679D",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644"
"comment": "раз два три четыре пять вышел зайчик погулять"
}
]
<<< setpbxcallcommentresult
Ответ от Oktell в CRM. Возвращает результат установки комментария к коммутации.
[
"setpbxcallcommentresult",
{
"qid": "3AB79A11-24FB-4D10-B7FD-5FD1653A679D",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"result": 1
}
]
<<< getpbxmycalljournal
Запрос из CRM в Oktell на возврат журнала собственных звонков авторизованного пользователя по указанному фильтру. В том числе ссылки на файлы записей разговоров.
[
"getpbxmycalljournal",
{
"qid": "F95D0A08-D904-49C9-A4B9-8C02B1781A89",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"linkmode": "full",
"filter": {
"datestart": "2011-04-07",
"datestop": "2011-04-07",
"comment": "",
"number": "89503222555",
"media": "all",
"type": "all"
}
}
]
//* linkmode - full, simple - устанавливает формат ссылок, в котором будут указаны полученные файлы в событии об окончании приема. full - вернуть абсолютную ссылку на скачивание через http. simple - вернуть относительную ссылку на скачивание. При формировании абсолютной ссылки в качестве доменного имени берется значение из раздела [[Интеграция с WEB-Socket CRM]] общих настроек Oktell. //* filter - фильтр для запроса. Все поля не являются обязательными. По умолчанию возвращаются разговоры за текущий день с 8:00 до 17:00, в которых участвовал авторизованный пользователь К фильтру могут быть применены: datestart - дата начала интересующего периода. Включительно. datestop - дата окончания интересующего периода. Включительно. comment - строка включения в комментарии. number - интересующий номер оппонента. media - external, internal, all. Среда вызова. type - тип звонка: incoming - входящий звонок. outcoming - исходящий звонок. missed - пропущенный звонок. Что является пропущенным звонком определяется в разделе [[Менеджер очередей]] общих настроек Oktell. conference - конференция. selector - селекторное совещание. all - все типы звонков.
<<< getpbxmycalljournalresult
Ответ от Oktell в CRM. Возвращает журнал собственных звонков авторизованного пользователя по указанному фильтру.
[
"getpbxmycalljournalresult",
{
"qid": "F95D0A08-D904-49C9-A4B9-8C02B1781A89",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"dtformat": "dd.MM.yyyy HH:mm:ss",
"data": [
{
"type": 1,
"typestr": "incoming",
"media": 2,
"mediastr": "internal",
"commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644",
"chainid": "46fe0543-4a58-49c5-b501-644b8ddad69a",
"dtstart": "2011-04-09 19:55:25",
"dtanswer": "2011-04-09 19:55:27",
"dtstop": "2011-04-09 19:56:29",
"length": 61,
"number": "14",
"alineid": "3294CD8F-7865-436A-AC2E-CEA481D8F52D",
"alinenumber": "17011",
"blineid": "021BDECD-196B-408F-8C36-8C37C0A94C5A",
"blinenumber": "17014",
"isrecorded": true,
"recordlink": "http://192.168.0.12:4055/download/rec/AQAAAADQfMDNHczNCBEBAAAA",
"hascomment": true,
"abonentname": "Петр Петрович Петров",
"isconf": false
},
{
"type": 10,
"typestr": "conference",
"media": 10,
"mediastr": "conference",
"commutationid": "20CF9B5A-5FFE-4456-8984-E7B79D7166EE",
"chainid": "E443FEA7-5ABB-49CB-A28D-8CC25F404E97",
"dtstart": "2011-04-09 19:58:12",
"dtanswer": "2011-04-09 19:58:12",
"dtstop": "2011-04-09 19:59:45",
"length": 93,
"alineid": "3294CD8F-7865-436A-AC2E-CEA481D8F52D",
"alinenumber": "17011",
"isconf": true,
"conferenceid": "224476F1-2E41-4C8F-BA85-6BEF0EBB5339",
"conferenceroom": "751",
"conferencename": "Автоконференция #751 09.04.11 19:55:30",
"conferencedirectorid": "AA3B3E14-2B44-4D08-8C62-3C616F9D27E3",
"conferencedirectorlogin": "Крючков",
"conferencedirectorname": "Семен Егорович Крючков",
"isrecorded": true,
"recordlink": "http://192.168.0.12:4055/download/rec/AAAAAACQSBTLHczNCGlCAACBPgAA",
"hascomment": true
},
{...},
{...}
]
}
]
//* dtformat - формат представления даты/времени. //* data - набор попавших в выдачу коммутаций/конференций. Каждая запись - в отдельном словаре. type, typestr - тип звонка: incoming = 1 - входящий звонок. outcoming = 2 - исходящий звонок. missed = 3 - пропущенный звонок. Что является пропущенным звонком определяется в разделе [[Настройки менеджера очередей|Менеджер очередей]] общих настроек Oktell. conference = 10 - конференция. selector = 11 - селекторное совещание. media, mediastr - тип среды вызова: external = 2 - внешняя среда. internal = 1 - внутренний вызов. conference = 10 - конференция. selector = 11 - селекторное совещание. commutationid - идентификатор коммутации. chainid - идентификатор цепочки коммутаций/сессии. dtstart - дата/время начала вызова перед осуществлением коммутации. dtanswer - дата/время ответа и начала коммутации. dtstop - дата/время окончания коммутации length - длительность в секундах alineid - идентификатор линии абонента a. alinenumber - номер линии абонента a. blineid - идентификатор линии абонента b, если это коммутация. blinenumber - номер линии абонента b, если это коммутация. isrecorded - true|false. Записана ли коммутация. recordlink - относительная или абсолютная ссылка на скачивание файла записи разговора. hascomment - true|false. Имеет ли данная коммутация комментарий. abonentname - текстовое описание оппозитного абонента коммутации. isconf - true|false. Является ли текущая запись конференцией(селектором) или нет. conferenceid - идентификатор конференции/селектора. conferenceroom - номер комнаты конференции/селектора. conferencename - название конференции/селектора. conferencedirectorid - идентификатор управляющего пользователя конференции/селектора. conferencedirectorlogin - логин управляющего пользователя конференции/селектора. conferencedirectorname - имя управляющего пользователя конференции/селектора.
<<< removepbxcallrecord
Запрос из CRM в Oktell. Удаляет запись разговора указанной коммутации в соответствии с правами доступа.
[
"removepbxcallrecord",
{
"qid": "DF061C5B-1B3B-41AA-94FF-A7A2F8FA6AE7",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"commutationid": "73567FD4-EFB9-46BF-9346-35B8638FE644"
}
]
<<< removepbxcallrecordresult
Ответ от Oktell в CRM. Возвращает результат удаления записи разговора.
[
"removepbxcallrecordresult",
{
"qid": "DF061C5B-1B3B-41AA-94FF-A7A2F8FA6AE7",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"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 на возврат всех внутренних номеров системы. Не требует указания авторизованного пользователя, так как может исполняться по инициативе сервера WebCRM. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
[
"getpbxnumbers",
{
"qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
"mode": "simple"
}
]
//* mode: simple, full (простой вид, полный вид).
>>> 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"
]
}
]
В следующем примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями.
[
"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)
<<< getallusernumbers
Запрос из CRM в Oktell на возврат списка всех пользователей, содержащего актуальную информацию по их прямым, основным и групповым номерам.
[
"getallusernumbers",
{
"qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
}
]
>>> getallusernumbersresult
Ответ из Oktell в CRM. Возвращает список всех пользователей, содержащий актуальную информацию по их прямым, основным и групповым номерам.
[
"getallusernumbersresult",
{
"qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"users": [
{"id": "47A8B3A0-0B33-41BB-9D08-1D9EB0D6F09B",
"name: "Петров",
"main: "14",
"nums": "14, 625, 773"
},
{"id": "5A84368D-5ED3-434B-8EB2-41AE86E1566A",
"name: "Иванов"
},
...
]
}
]
/* users:main - основной прямой номер, /* users:nums - перечень номеров, в которых участвует пользователь или его текущая линия. Порядок следования от главного к групповым, затем от главного к групповым с участием линии.
Преобразования
<<< getuserbyline
Запрос из CRM в Oktell на возврат информации о связанном пользователе по ключу линии. Ключом линии традиционно является идентификатор или номер линии.
[
"getuserbyline",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"linekey": "17002"
}
}
]
>>> getuserbylineresult
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
[
"getuserbylineresult",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"founduser": {
"userid": "BE6A252A-D7E7-4D15-8D75-385A210DF997",
"userlogin": "john",
"username": "John Smith"
}
}
]
//* founduser - информация о связанном с указанной линии пользователе - его идентификатор, логин, имя. Если линия указана неверно или к ней в данный момент не привязан пользователь - null.
<<< getlinebyuser
Запрос из CRM в Oktell на возврат информации о связанной линии по ключу пользователя. Ключом пользователя традиционно является идентификатор, логин или имя.
[
"getlinebyuser",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"userkey": "ivanov"
}
}
]
>>> getlinebyuserresult
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
[
"getlinebyuserresult",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"foundline": {
"lineid": "FA86E75A-6383-42B7-873C-37A0654B18EF",
"linenum": "17002"
}
}
]
//* foundline - информация о связанной с указанным авторизованным пользователем линии - ее идентификатор, номер. Если пользователь указана неверно, или не авторизован - null. ''Пользователь по умолчанию'' считается авторизованным.
Служебные методы
<<< getversionresult
Запрос из CRM в Oktell на возврат информации о версии сервера Oktell.
[
"getversion",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"showalloweddbstoredprocs": 1
}
]
//* showalloweddbstoredprocs: true|false. Отображать ли список доступных хранимых процедур БД.
>>> getversionresult
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
[
"getversionresult",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"version": {
"text": "Версия программы: 2.7.110808(4237.32979). Версия БД: 110713.",
"dated": "110808",
"build": "2.7.4237.32979",
"datedhal": "110808",
"buildhal": "2.15.3.2871",
"webserverport": 4067
}
"alloweddbstoredprocs": {
"w_favoritegetbyuser": 1,
"w_favoritesavebyuser": 1,
"w_favoritedeletebyuser": 1,
"w_clientsget": 1,
"w_clientgroupsget": 1
}
}
]
//* version - информация о версии сервера логики и HAL. //* version:webserverport - номер порта [[Серверный_HTTP_интерфейс|HTTP веб-сервера oktell]]. //* alloweddbstoredprocs - перечень хранимых процедур, доступных для исполнения в БД Oktell посредством метода <span style="color:green">''execpredefineddbstoredproc''</span>
<<< gettemphttppass
Запрос из CRM в Oktell. Генерирует и возвращает временный пароль на доступ к HTTP веб-серверу без авторизации. Временный пароль живет не более 10 секунд до первого обращения к HTTP с указанием этого пароля среди параметров запроса. Пароль привязывается к IP адресу дополнительно. После этого вне зависимости от способа авторизации, установленного для HTTP веб-сервера Oktell, однократный вызов любого метода серверного веб-интерфейса возможен без авторизации с указанием среди параметров дополнительного служебного параметра temppass=A, где A - выданный временный пароль.
Доступно для схемы интеграции 2.
[
"gettemphttppass",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"responsetowebsock": true
}
]
>>> gettemphttppassresult
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
[
"gettemphttppassresult",
{
"qid": "21D38282-DFB7-4DEF-8C76-BFB338A80947",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"password": "6f3200ac"
}
]
//* password - временный пароль для подстановки в качестве значения параметра temppass при осуществлении GET или POST запроса к HTTP веб-серверу Oktell. Следует иметь в виду, что даже в случае POST запроса со специальным контентом указание параметра-пароля возможно в теле самой страницы (по аналогии с GET запросом).
<<< triggercustomevent
Запрос из CRM в Oktell на генерацию пользовательского произвольного события всем или только указанным пользователям. Может быть использовано в схеме интеграции 2. Производит массовую рассылку указанного события. Точно также как и все остальные события требует подписки.
[
"triggercustomevent",
{
"qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"eventname": "newClientCategoryAdded",
"eventparam": "строка"
"sendback": 1, // отправлять мне самому или нет
}
]
[
"triggercustomevent",
{
"qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"eventname": "newClientCategoryAdded",
"eventparam": "строка",
"recipients": [
"Петров",
"Сидоров"
]
}
]
[
"triggercustomevent",
{
"qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
"userlogin": "Иванов",
"userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"eventname": "newClientCategoryAdded",
"eventparam": { "param1": "123", "p2": { "asdfasd": "sdfgsdf" } , ... },
"recipients": [
"C45D4911-BDE2-40C0-8D11-A4AFF1F160CC",
"BA2C4BAC-7A7C-4959-B1A7-2F63C248DF3D"
]
}
]
//* recipients - список идентификаторов/логинов получателей сообщений. Может не быть указанным, тогда отправка производится всем. //* sendback - генерировать ли событие для самого отправителя. Имеет смысл, поскольку в случае использования нескольких вкладок в браузере, каждое из подключений получит событие независимо. //* eventname - название пользовательского события. //* eventparam - параметр пользовательского события. Переходит в сгенерированное сообщение без изменений. Может содержать строку, набор, массив, словарь - все что угодно.
>>> gettemphttppassresult
Событие из Oktell пользователям CRM. Отправляется всем пользователям, указанным при запросе на рассылку события.
[
"customevent",
{
"qid":"aaa3f5c9-bcd5-4bf9-aef9-0b4ee735170d",
"userlogin": "Петров",
"userid": "C45D4911-BDE2-40C0-8D11-A4AFF1F160CC",
"eventname": "newClientCategoryAdded",
"triggereduserid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
"triggereduserlogin": "Иванов",
"eventparam": { "param1": "123", "p2": { "asdfasd": "sdfgsdf" } , ... }
}
]
//* eventname - название пользовательского события. //* eventparam - параметр пользовательского события в неизменном виде, как в запросе. //* triggereduserid - идентификатор пользователя-рассыльщика. //* triggereduserlogin - логин пользователя-рассыльщика.
<<< gettotalqueue
Запрос из CRM в Oktell на возврат информации обо всех очередях. Может использоваться без указания пользователя. Не рекомендуется к частому использованию, так как требует значительных вычислительных ресурсов.
[
"gettotalqueue",
{
"qid": "DDDB5BCA-A200-448C-93C7-EFEAE5AFE48D",
"skipempty": true
}
]
>>> gettotalqueueresultresult
Ответ из Oktell в CRM. Возвращает список всех очередей и их абонентов
[
"gettotalqueueresult",
{
"qid": "DDDB5BCA-A200-448C-93C7-EFEAE5AFE48D",
"result": [
{
"numid": "507db30b-f8f7-46cf-b3c7-6b8ba7b696a8",
"numprefix": "12",
"ruleid": "6ffab1ac-7b9b-4ba2-8547-233175368b6d",
"rulename": "Денис"
"queue": [
{
"objectid": "928efda2-a3b3-423b-9d49-d2e76879c718",
"chainid": "d1c2b337-6293-4ea0-a355-f59caaeff54b",
"srcelementid": "38d8b6ad-a68b-4075-a1a3-038510f20a54",
"objecttype": 0,
"objecttypestr": "qotQueueLogic",
"queuesource": 1,
"queuesourcestr": "qsLineLogic",
"callerid": "14",
"calledid": "12",
"isuser": true,
"userid": "da803f01-ea77-40fa-bc9d-e2efb36fd5a8",
"userlogin": "Peter",
"username": "Петр Александрович",
"department": "Программисты",
"managedlineid": "38d8b6ad-a68b-4075-a1a3-038510f20a54",
"managedlinenumber": "16001",
"srclineid": "38d8b6ad-a68b-4075-a1a3-038510f20a54",
"srclinenumber": "16001",
"queuepriority": 9,
"startqueuetime": "2012-06-07 12:58:44",
"lenqueue": 1.4375,
"istask": false
}
]
},
...
{}
]
}
]
//* result - содержит список всех очередей. Очередь при этом содержится в словаре. //* result:numid - идентификатор стандартного внутреннего номера, при котором данная очередь. //* result:numprefix - стандартный внутреннего номер, при котором данная очередь. //* result:ruleid - идентификатор номерного правила, при котором данная очередь. //* result:rulename - название номерного правила, при котором данная очередь. //* result:queue - список абонентов очереди в порядке убывания. Каждый абонент содержится в словаре.
whoareyou
Двунаправленный запрос на возврат информации об удаленной стороне. Служит для выстраивания взаимоотношений на основе типа подключения, а также дает возможность получить имя системы для указания администратору. Ответом является сообщение iam.
Применяется в схеме интеграции 1.
[
"whoareyou",
{
"qid": "4FEEB8EF-DF4B-47AE-8EFE-4BDA577A6FF8",
"type": "ws-server",
"name": "Iris CRM",
"version": 10.5
}
]
//* type - собственный тип сервера, осуществляющего запрос. Oktell при запросе указывает значение ''commserver''. WebCRM может указывать что либо отличное, например ''ws-server'' или ''crm-server''. //* name - собственное название службы. //* version - собственная версия службы.
iam
Двунаправленный ответ на запрос whoareyou. Возвращает информацию об удаленной стороне.
[
"iam",
{
"qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0",
"type": "commserver",
"name": "Oktell",
"version": 100425,
"build": "2.5.3928.8022"
}
]
//* type - тип удаленного сервера. Oktell при запросе указывает значение ''commserver''. WebCRM может указывать что либо отличное, например ''ws-server'' или ''crm-server''. //* name - название службы на удаленнм сервере. //* version - версия службы на удаленном сервере.
<<< execpredefineddbstoredproc
Запрос из CRM в Oktell. Исполняет указанную хранимую процедуру в БД Oktell и возвращает данные всех сформированных в ходе выполнения наборов. Доступные для исполнения процедуры содержатся в конфигурационном файле websocket.config, а также могут быть возвращены методом getversion.
Не требует указания пользователя.
Доступно для схемы интеграции 2.
[
"execpredefineddbstoredproc",
{
"qid": "7198D943-7BA9-443D-B283-55812BC82AFB",
"procedure": "T_GetFavorites",
"inputparams": {
"param1": "XXX",
"param2": 10
}
}
]
//* procedure - название процедуры из разрешенного списка. //* inputparams - значения параметров процедуры. Имена параметров могут содержать в начале символ ''@'', В случае его отсутствия он добавляется автоматически. Если в списке присутствует параметр ''authorizeduserid'', его значение будет принудительно заменено на идентификатор текущего авторизованного пользователя в Oktell. Этим можно пользоваться для создания в БД процедур, учитывающих инициатора исполнения.
>>> execpredefineddbstoredprocresult
Ответ из Oktell в CRM. Возвращает результат исполнения хранимой процедуры в БД Oktell. Перечисляет все выходные наборы данных.
[
"execpredefineddbstoredprocresult",
{
"qid": "7198D943-7BA9-443D-B283-55812BC82AFB",
"result": 1,
"errorcode": 0,
"errorstr": "",
"dataset": [
[
["column1", "column2", "column3"],
["row1val1", "row1val2", "row1val3" ],
["row2val1", "row2val2", "row2val3" ],
...
],
[
["column1", "column2"]
],
...
]
}
]
//* result - 1 или 0. Успешно или неудачно проведена операция. //* errorcode - код ошибки. 50044 - служебное значение, в случае запрета или исключения при исполнении, не связанного с ошибкой SQL //* errorstr - описание ошибки. //* dataset - наборы данных по порядку выдачи в ходе исполнения хранимой процедуры. Набор - это список строк, каждая из которых - список значений по ячейкам. Первая строка в наборе - всегда содержит названия столбцов набора.
<<< exectmcall
Запрос из CRM в Oktell. Осуществляет размещение короткого задания на дозвон и соединение с указанным оператором (пользователем). Дозвониться до одного из указанных абонентов-номеров группы A, соединить с одним из указанных абонентов-номеров группы B. Результатом выполнения является одна коммутация.
Не требует указания пользователя.
[
"exectmcall",
{
"qid": "BE06A1E4-759A-4BFA-8D15-5FCF756EEE53",
"taskid": "qud82039lsdfmnasd",
"a_abonents": [
"7931289",
"83959279394",
"425",
"688C1DD6-7429-4B47-819D-C15827654A53",
{
"type": 11,
"key": "84951435565"
}
],
"b_abonents": [
"1211F58F-93AE-470C-895D-E3A163E8FF5F",
"ivanov",
"2BC51D79-BA63-47D7-93CA-1F283029C529",
{
"type": 12,
"key": "1211F58F-93AE-470C-895D-E3A163E8FF5F"
}
]
"mode": 0
}
]
[
"exectmcall",
{
"qid": "BE06A1E4-759A-4BFA-8D15-5FCF756EEE53",
"taskid": "qud82039lsdfmnasd",
"taskcode": "xxxxx",
"a_abonents": ["4952172020"],
"b_abonents": ["417"],
"mode": 0,
"ownertext": "Задача соединения",
"sessionid": "FB232E90-524A-453C-95BA-1B42251F5A14",
"projectid": "F95BA34E-2CE2-49FA-B3C2-4344199F5B42",
"a_callerid": "4959261589",
"a_music": "Фоновое воспроизведение для оператора",
"a_usequeue": false,
"a_queuepriority": 10,
"a_timeoutsec": 40,
"b_callerid": "4952172020",
"b_music": "?**ivr?Фоновое воспроизведение",
"b_usequeue": true,
"b_queuepriority": 5,
"b_timeoutsec": 40,
}
]
Обязательными параметрами являются только a_abonents и b_abonents. Остальные имеют значения по умолчанию. //* taskid - уникальный строковый идентификатор задания. Может быть не указан, тогда генерируется автоматически. //* taskcode - пользовательский код задачи, передается в сценарии, обслуживающие дозвоны. //* a_abonents - набор из одного или нескольких абонентов, относящихся к группе A. //* b_abonents - набор из одного или нескольких абонентов, относящихся к группе B. abonent:type - типы представления о конкретном абоненте Undefined = 0, //Не определен, определить автоматически. External = 11,//Внешний номер InternalItem = 12,//Внутренний элемент - пользователь или линия, задаются ключами (идентификатор, номер, логин, имя). InternalRule = 13,//Стандартный внутренний номер InternalFast = 14,//Быстрый номер InternalEmergency = 15,//Экстренный номер InternalIVR = 16,//Сценарий IVR //* mode: 0 - вызывает сначала группу A (достает первого ответившего), потом абонентов группы B (достает первого ответившего) 1 - вызывает сначала группу B (достает первого ответившего), потом абонентов группы A (достает первого ответившего) 2 - вызывает одновременно всех, достает первого ответившего из группы A и первого ответившего из группы B. //* a_music, b_music - мелодия ожидания для абонентов группы A и B. Задается с помощью строки: - ''?**ivr?scriptname'', где scriptname - название фонового медиа сценария IVR. - ''?**ff?filepath'', где filepath - абсолютный путь к звуковому файлу (*.mp3 или *.wav). - ''?**ff?folderpath'', где folderpath - абсолютный путь к каталогу со звуковыми файлами, выбираются рандомно. - ''?**ff?filename'', где filename - название файла с расширением (*.mp3 или *.wav) в стандартном каталоге Snd. - абсолютный путь к каталогу cо звуковыми файлами - абсолютный путь к файлу - название файла с расширением в стандартном каталоге Snd - название фонового медиа-сценария IVR - если не указывать, указывать неверно или указывать пустоту - играется [[Музыкальное сопровождение#Alternative|альтернативная мелодия ожидания]] (возможно сценарий) из общих настроек //* sessionid - генерируемый идентификатор цепочки коммутаций/сессии. //* ownertext - название владельца служебного сценария набора номеров. //* projectid - привязанный идентификатор проекта (участвует в поиске сценариев). //* a_usequeue, b_usequeue: true|false. Использовать ли очередь ожидания при вызове внутренних абонентов. //* a_queuepriority, b_queuepriority: числовой приоритет при размещении в очередях. Традиционно чем меньше значение - тем больше приоритет. Значения по умолчанию определены в [[Настройки менеджера очередей|общих настройках]] //* a_timeoutsec, b_timeoutsec: таймаут в секундах для вызова абонентов соответствующей группы. Режим использования таймаута задается в разделе [[Настройки менеджера очередей|настроек менеджера очередей]].
>>> exectmcallresult
Ответ из Oktell в CRM. Возвращает результат исполнения хранимой процедуры в БД Oktell. Перечисляет все выходные наборы данных.
[
"exectmcallresult",
{
"qid": "BE06A1E4-759A-4BFA-8D15-5FCF756EEE53",
"taskid": "qud82039lsdfmnasd"
}
]
//* taskid - возвращает идентификатор запущенного задания. В дальнейшем с помощью него можно будет отменить задание (если оно еще не будет к тому времени исполнено)
<<< stoptmcall
Запрос из CRM в Oktell. Отменяет ранее запущенное методом exectmcall задание, если оно еще не завершило исполнение.
Не требует указания пользователя.
[
"stoptmcall",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859",
"taskid": "qud82039lsdfmnasd"
}
]
>>> stoptmcallresult
Ответ от Oktell в CRM. Возвращает результат отмены задания.
[
"stoptmcallresult",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859",
"taskid": "qud82039lsdfmnasd",
"success": false,
"errortext": "task not found"
}
]
<<< ping
Запрос из CRM в Oktell. Периодически пробивает канал связи, напоминая о жизнеспособности подключения. Необязательно
Не требует указания пользователя.
[
"ping",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859"
}
]
>>> pong
Ответ от Oktell в CRM на запрос ping.
[
"pong",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859"
}
]
<<< subscribeevent, unsubscribeevent
Запрос из CRM в Oktell. Производит соответсвенно подписку и отписку на указанные события.
Доступно и требуется только для схемы интеграции 2. В схеме интеграции 1 события поступают в полном объеме, часть из них объединяются и отправляются на сервер WebCRM без привязки к пользователю; ожидается, что сервер WebCRM самостоятельно размножит их. К таким событиям относятся, например pbxnumberstatechanged, conflistchanged и им подобные.
[
"subscribeevent",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859"
"eventmethod": "userstatechanged",
}
]
[
"subscribeevent",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859"
"eventmethod": [
"userstatechanged",
"pbxnumberstatechanged"
]
}
]
[
"unsubscribeevent",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859"
"eventmethod": "userstatechanged",
}
]
События, требующие подписки:
- pbxnumberstatechanged
- pbxnumberlistmodified
- shownotifymessage
- usertextmessagereceived
- usertextmessageviewed
- voicemailreceived
- userstatechanged
- phoneevent_acmcallstarted
- phoneevent_acmcallstopped
- phoneevent_ringstarted
- phoneevent_ringstopped
- phoneevent_ivrstarted
- phoneevent_ivrstopped
- phoneevent_commstarted
- phoneevent_commstopped
- phoneevent_faxstarted
- phoneevent_faxstopped
- phoneevent_faxreceived
- linestatechanged
- chainstatechanged
- flashstatechanged
- conferenceevent
- conflistchanged
- confparamschanged
- confcompositionchanged
- confcompetitorstatechanged
- confentrancedenied
- confentrancepermitted
- confentrancerequest
- confnotifyinvite
- confpossiblecompetitorstatechanged
- customevent
- executemethod (список доступных динамических методов содержится в файле websock.config)
- cancelmethod
- showform (список доступных динамических форм содержится в файле websock.config)
- closeform
>>> subscribeeventresult,
unsubscribeeventresult
Ответ от Oktell в CRM на запросы subscribeeventresult и unsubscribeeventresult соответственно.
[
"subscribeeventresult",
{
"qid": "DDA55585-F598-4F8C-B605-E6E186E6D859"
"result": 1
}
]



