Описание интеграционного протокола Oktell web-soсket protocol — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 148: Строка 148:
  
 
На первом уровне объекта - массив из двух значений: строковый кодовый идентификатор сообщения, именованный список параметров:
 
На первом уровне объекта - массив из двух значений: строковый кодовый идентификатор сообщения, именованный список параметров:
  [ "messagecode", {"var1":"value1", "var2":"value2", ...} ]
+
<pre>[ "messagecode", {"var1":"value1", "var2":"value2", ...} ]</pre>
  
 
В общем случае среди параметров могут присутствовать сложные объекты (массивы и словари):
 
В общем случае среди параметров могут присутствовать сложные объекты (массивы и словари):
  "var1":["a", "b", "c"]  или "var2":{"a":1, "b":2, "c":3}
+
<pre>"var1":["a", "b", "c"]  или "var2":{"a":1, "b":2, "c":3}</pre>
  
 
В каждом сообщении присутствует параметр "qid", содержащий уникальный строковый идентификатор сообщения, обеспечивающий возможность построения из сообщений серий вида запрос-ответ.
 
В каждом сообщении присутствует параметр "qid", содержащий уникальный строковый идентификатор сообщения, обеспечивающий возможность построения из сообщений серий вида запрос-ответ.
Строка 163: Строка 163:
  
 
-------------------------------------------------
 
-------------------------------------------------
-> getactiveusers
+
-> getactiveusers<br>
Запрос из Октелла в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения.
+
Запрос из Октелла в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения.
  [
+
<pre>
    "getactiveusers",
+
[
    {
+
"getactiveusers",
    "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7"
+
{
    }
+
  "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7"
  ]
+
}
 +
]
 +
</pre>
  
 
    
 
    
-> activeusers
+
-> activeusers<br>
Ответное сообщение из CRM в Октелл со списком активных авторизованных пользователей CRM.
+
Ответное сообщение из CRM в Октелл со списком активных авторизованных пользователей CRM.
  [
+
<pre>
    "activeusers",
+
[
    {
+
"activeusers",
    "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7",
+
{
    "users": [
+
  "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7",
      {"userlogin": "ivanov", "userid": "20394857203948752345"},
+
  "users": [
      {"userlogin": "petrov", "userid": "kasjdfhlaksjdfhlaks"},
+
  {"userlogin": "ivanov", "userid": "20394857203948752345"},
      {"userlogin": "sidorov", "userid": "987495873948573945"}
+
  {"userlogin": "petrov", "userid": "kasjdfhlaksjdfhlaks"},
    ]
+
  {"userlogin": "sidorov", "userid": "987495873948573945"}
    }
+
  ]
  ]
+
}
 
+
]
 +
</pre>
 
    
 
    
 +
 
-------------------------------------------------   
 
-------------------------------------------------   
<- login
+
<- login<br>
Сообщение из CRM в Октелл об авторизации пользователя. Запрос кросс-авторизации в Октелле.
+
Сообщение из CRM в Октелл об авторизации пользователя. Запрос кросс-авторизации в Октелле.
+
<pre>
  [
+
[
    "login",
+
"login",
    {
+
{
    "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
+
  "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
    "userlogin": "ivanov",
+
  "userlogin": "ivanov",
    "userid": "29834234234"
+
  "userid": "29834234234"
    }
+
}
  ]
+
]
 +
</pre>
  
 
    
 
    
-> loginresult
+
-> loginresult<br>
Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Октелле, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers.
+
Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Октелле, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers.
+
<pre>
  [
+
[
    "loginresult",
+
"loginresult",
    {
+
{
    "qid": "939AA33E-011F-4FEC-B60A-8BC1B4888B5A",
+
  "qid": "939AA33E-011F-4FEC-B60A-8BC1B4888B5A",
    "userlogin": "ivanov",
+
  "userlogin": "ivanov",
    "userid": "29834234234",
+
  "userid": "29834234234",
    "result": 0,
+
  "result": 0,
    "error": 50093,
+
  "error": 50093,
    "errormsg": "Пользователь уже зарегистрирован"
+
  "errormsg": "Пользователь уже зарегистрирован"
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
<- logout
+
<- logout<br>
Сообщение из CRM в Октелл о выходе (логауте) пользователя. Команда на кросс-логаут в Октелле.
+
Сообщение из CRM в Октелл о выходе (логауте) пользователя. Команда на кросс-логаут в Октелле.
+
<pre>
  [
+
[
    "logout",
+
"logout",
    {
+
{
    "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
+
  "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
    "userlogin": "ivanov",
+
  "userlogin": "ivanov",
    "userid": "29834234234"
+
  "userid": "29834234234"
    }
+
}
  ]
+
]
 +
</pre>
  
  
-> logoutresult
+
-> logoutresult<br>
Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Октелле, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано).
+
Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Октелле, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано).
 
+
<pre>
  [
+
[
    "logoutresult",
+
"logoutresult",
    {
+
{
    "qid": "4B25E210-2D67-4675-A5AE-46DC9CBC32F9",
+
  "qid": "4B25E210-2D67-4675-A5AE-46DC9CBC32F9",
    "userlogin": "ivanov",
+
  "userlogin": "ivanov",
    "userid": "29834234234",
+
  "userid": "29834234234",
    "result": 1
+
  "result": 1
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> pbxnumberstatechanged
+
-> pbxnumberstatechanged<br>
Сообщение из Октелл о смене состояния внутреннего номера (или группы внутренних номеров)
+
Сообщение из Октелл о смене состояния внутреннего номера (или группы внутренних номеров)
+
<pre>
  [
+
[
    "pbxnumberstatechanged",
+
"pbxnumberstatechanged",
    {
+
{
    "qid": "5B9508DF-565B-44E1-A122-6FEB70ADA0B9",
+
  "qid": "5B9508DF-565B-44E1-A122-6FEB70ADA0B9",
    "numbers": [
+
  "numbers": [
  {"num": "425", "numstateid": 3},
+
  {"num": "425", "numstateid": 3},
  {"num": "427", "numstateid": 2},
+
  {"num": "427", "numstateid": 2},
  {"num": "#82", "numstateid": 3}
+
  {"num": "#82", "numstateid": 3}
    ]
+
  ]
    }
+
}
  ]
+
]
 +
</pre>
  
  
Строка 265: Строка 276:
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> userstatechanged
+
-> userstatechanged<br>
Сообщение из Октелла в CRM о смене состояния пользователя в Октелле. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо.
+
Сообщение из Октелла в CRM о смене состояния пользователя в Октелле. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо.
+
<pre>
  [
+
[
    "userstatechanged",
+
"userstatechanged",
    {
+
{
    "qid": "66F8D479-0234-47DF-B043-3A065FF464A7",
+
  "qid": "66F8D479-0234-47DF-B043-3A065FF464A7",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "userstateid": 2,
+
  "userstateid": 2,
    "onredirect": true,
+
  "onredirect": true,
    "onlunch": false,
+
  "onlunch": false,
    "oncallcenter": false
+
  "oncallcenter": false
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
<- setuserstate
+
<- setuserstate<br>
Запрос из CRM к Октеллу на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged.
+
Запрос из CRM к Октеллу на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged.
+
<pre>
  [
+
[
    "setuserstate",
+
"setuserstate",
    {
+
{
    "qid": "2A45010A-8EEA-4876-90CB-F062459D4BE2",
+
  "qid": "2A45010A-8EEA-4876-90CB-F062459D4BE2",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "userstateid": 2,
+
  "userstateid": 2,
    "onredirect": false,
+
  "onredirect": false,
    "lunchreasonid": 120,
+
  "lunchreasonid": 120,
    "lunchreasonmsg": ""
+
  "lunchreasonmsg": ""
    }
+
}
  ]
+
]
+
</pre>
  //* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел.
+
<pre>
 +
//* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел.
 +
</pre>
 +
 
  
 
-------------------------------------------------
 
-------------------------------------------------
<- entercallcenter
+
<- entercallcenter<br>
Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
+
Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
+
<pre>
  [
+
[
    "entercallcenter",
+
"entercallcenter",
    {
+
{
    "qid": "7DD2ED7A-B6BF-4988-A780-99719C65CA5D",
+
  "qid": "7DD2ED7A-B6BF-4988-A780-99719C65CA5D",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    }
+
}
  ]
+
]
 +
</pre>
  
  
<- exitcallcenter
+
<- exitcallcenter<br>
Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
+
Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
  [
+
<pre>
    "exitcallcenter",
+
[
    {
+
"exitcallcenter",
    "qid": "6E899456-C373-48EB-949E-E2C0D79D45EA",
+
{
    "userlogin": "Иванов",
+
  "qid": "6E899456-C373-48EB-949E-E2C0D79D45EA",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userlogin": "Иванов",
    }
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  ]
+
}
 +
]
 +
</pre>
  
  
Строка 330: Строка 349:
 
   
 
   
 
-------------------------------------------------
 
-------------------------------------------------
-> usertextmessagereceived
+
-> usertextmessagereceived<br>
Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата.
+
Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата.
+
 
<pre>
 
<pre>
  [
+
[
    "usertextmessagereceived",
+
"usertextmessagereceived",
    {
+
{
    "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0",
+
  "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "messageid": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
+
  "messageid": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
    "snduserlogin": "Петров",
+
  "snduserlogin": "Петров",
    "snduserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
+
  "snduserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
    "sndusername": "Петров Антон Григорьевич",
+
  "sndusername": "Петров Антон Григорьевич",
    "messagetext": "раз два три четыре пять вышел зайчик погулять",
+
  "messagetext": "раз два три четыре пять вышел зайчик погулять",
    "messagedate": "2011-03-27 14:12:28",
+
  "messagedate": "2011-03-27 14:12:28",
    }
+
}
  ]
+
]
 
</pre>
 
</pre>
  
-> usertextmessageviewed.
 
Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения.
 
  
 +
-> usertextmessageviewed<br>
 +
Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения.
 
<pre>
 
<pre>
 
[
 
[
Строка 369: Строка 387:
 
</pre>
 
</pre>
  
<-
 
Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю.
 
  
 +
<- sendusertextmessage<br>
 +
Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю.
 
<pre>
 
<pre>
  [
+
[
    "sendusertextmessage",
+
"sendusertextmessage",
    {
+
{
    "qid": "F14F31B7-F203-4462-975F-3A37DD16240B",
+
  "qid": "F14F31B7-F203-4462-975F-3A37DD16240B",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "messageid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
+
  "messageid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
    "recvuserlogin": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
+
  "recvuserlogin": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
    "recvuserid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
+
  "recvuserid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
    "messagetext": "раз два три четыре пять вышел зайчик погулять",
+
  "messagetext": "раз два три четыре пять вышел зайчик погулять",
    }
+
}
  ]
+
]
 
</pre>
 
</pre>
  
<-
 
Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid.
 
  
 +
<- setusermessageviewed<br>
 +
Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid.
 
<pre>
 
<pre>
 
[
 
[
Строка 405: Строка 423:
 
]
 
]
 
</pre>
 
</pre>
 +
  
  
Строка 410: Строка 429:
 
   
 
   
 
-------------------------------------------------
 
-------------------------------------------------
-> voicemailreceived
+
-> voicemailreceived<br>
Сообщение из Октелла в CRM о факте поступления голосовой почты на ящик пользователя.
+
Сообщение из Октелла в CRM о факте поступления голосовой почты на ящик пользователя.
+
<pre>
  [
+
[
    "voicemailreceived",
+
"voicemailreceived",
    {
+
{
    "qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0",
+
  "qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    }
+
}
  ]
+
]
 +
</pre>
  
  
Строка 427: Строка 447:
  
 
-------------------------------------------------
 
-------------------------------------------------
-> shownotifymessage
+
-> shownotifymessage<br>
Сообщение(запрос) из Октелла об уведомлении пользователя по аналогии с всплывающими Октелловскими уведомлениями
+
Сообщение(запрос) из Октелла об уведомлении пользователя по аналогии с всплывающими Октелловскими уведомлениями
+
<pre>
  [
+
[
    "shownotifymessage",
+
"shownotifymessage",
    {
+
{
    "qid": "99CC8C57-1793-486A-AFB1-6E5CA3E6855E",
+
  "qid": "99CC8C57-1793-486A-AFB1-6E5CA3E6855E",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "sender": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
+
  "sender": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
    "text": "Петров",
+
  "text": "Петров",
    "autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
+
  "autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
    "type": 262144,
+
  "type": 262144,
    "backcolor": "00FF0000",
+
  "backcolor": "00FF0000",
    "uniquekey": "E7899B61-55C3-4007-91EE-DDB348913AA8",
+
  "uniquekey": "E7899B61-55C3-4007-91EE-DDB348913AA8",
    }
+
}
  ]
+
]
 
+
</pre>
  //* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это)
+
<pre>
  //* backcolor - hex AARRGGBB
+
//* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это)
  //* type - тип сообщения из флагового списка кратных двойке кодов
+
//* backcolor - hex AARRGGBB
 
+
//* type - тип сообщения из флагового списка кратных двойке кодов
 +
</pre>
  
  
Строка 454: Строка 475:
  
 
-------------------------------------------------  
 
-------------------------------------------------  
-> phoneevent_ringstarted
+
-> phoneevent_ringstarted<br>
Сообщение из Октелла в CRM о входящем звонке. Не имеет отношения к постановке звонка в очередь. Фактически когда телефон пользователя начал звенеть.
+
Сообщение из Октелла в CRM о входящем звонке. Не имеет отношения к постановке звонка в очередь. Фактически когда телефон пользователя начал звенеть.
+
<pre>
  [
+
[
    "phoneevent_ringstarted",
+
"phoneevent_ringstarted",
    {
+
{
    "qid": "00488421-97E4-443B-81B7-D645E403AEBB",
+
  "qid": "00488421-97E4-443B-81B7-D645E403AEBB",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
+
  "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
    "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673",
+
  "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673",
    "callerlinenum": "13027",
+
  "callerlinenum": "13027",
    "callerdirection": "oktell_pbx",
+
  "callerdirection": "oktell_pbx",
    "callerid": "73439170203",
+
  "callerid": "73439170203",
    "callername": "ОАО Металлург",
+
  "callername": "ОАО Металлург",
    "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов",
+
  "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов",
    "callerinfo": "Абонент: 315, Задача 'Входящие в коллцентр'",
+
  "callerinfo": "Абонент: 315, Задача 'Входящие в коллцентр'",
    "callercomment": "Еще что-то об абоненте",
+
  "callercomment": "Еще что-то об абоненте",
    "calleruserlogin": "",
+
  "calleruserlogin": "",
    "calleruserid": "00000000-0000-0000-0000-000000000000",
+
  "calleruserid": "00000000-0000-0000-0000-000000000000",
    "isextline": true,
+
  "isextline": true,
    "canfax": true,
+
  "canfax": true,
    "canvideo": false,
+
  "canvideo": false,
    "isconference": false,
+
  "isconference": false,
    "confid": "00000000-0000-0000-0000-000000000000",
+
  "confid": "00000000-0000-0000-0000-000000000000",
    "confname": "",
+
  "confname": "",
    "confroom": 0,
+
  "confroom": 0,
    "confinviternumber": "",
+
  "confinviternumber": "",
    "confinviteruserid": "00000000-0000-0000-0000-000000000000",
+
  "confinviteruserid": "00000000-0000-0000-0000-000000000000",
    "confinviteruserlogin": "",
+
  "confinviteruserlogin": "",
    "istask": true,
+
  "istask": true,
    "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD",
+
  "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD",
    "taskname": "Входящие в коллцентр"
+
  "taskname": "Входящие в коллцентр"
    }
+
}
  ]
+
]
 +
</pre>
 +
<pre>
 +
//* Частично могут отсутстовать параметры, описывающие абонента.
 +
//    Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec
 +
//    Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid
 +
//    Если isconference=false, то отсутствует confid, confname, confroom
 +
</pre>
  
  //* Частично могут отсутстовать параметры, описывающие абонента.
 
  //    Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec
 
  //    Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid
 
  //    Если isconference=false, то отсутствует confid, confname, confroom
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_ringstopped
+
-> phoneevent_ringstopped<br>
Сообщение из Октелла в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился.
+
Сообщение из Октелла в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился.
+
<pre>
  [
+
[
    "phoneevent_ringstopped",
+
"phoneevent_ringstopped",
    {
+
{
    "qid": "BEB91146-BA27-4236-9CAC-EF562719E7E5",
+
  "qid": "BEB91146-BA27-4236-9CAC-EF562719E7E5",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718"
+
  "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718"
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_commstarted
+
-> phoneevent_commstarted<br>
Сообщение из Октелла в CRM о коммутации
+
Сообщение из Октелла в CRM о коммутации
+
<pre>
  [
+
[
    "phoneevent_commstarted",
+
"phoneevent_commstarted",
    {
+
{
    "qid": "B7ACFEC1-65BB-4773-A425-DC39F5D1A48C",
+
  "qid": "B7ACFEC1-65BB-4773-A425-DC39F5D1A48C",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
+
  "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
    "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
+
  "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
    "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673",
+
  "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673",
    "callerlinenum": "13027",
+
  "callerlinenum": "13027",
    "callerid": "73439170203",
+
  "callerid": "73439170203",
    "callername": "ОАО Металлург",
+
  "callername": "ОАО Металлург",
    "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов",
+
  "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов",
    "callerinfosimple": "Абонент: 315, Задача 'Входящие в коллцентр'",
+
  "callerinfosimple": "Абонент: 315, Задача 'Входящие в коллцентр'",
    "callercomment": "Еще что-то об абоненте",
+
  "callercomment": "Еще что-то об абоненте",
    "calleruserlogin": "",
+
  "calleruserlogin": "",
    "calleruserid": "00000000-0000-0000-0000-000000000000",
+
  "calleruserid": "00000000-0000-0000-0000-000000000000",
    "isextline": true,
+
  "isextline": true,
    "canfax": true,
+
  "canfax": true,
    "canvideo": false,
+
  "canvideo": false,
    "cansendfiles": true,
+
  "cansendfiles": true,
    "canbuildconf": true,
+
  "canbuildconf": true,
    "isivrscript": false,
+
  "isivrscript": false,
    "isconference": false,
+
  "isconference": false,
    "confid": "00000000-0000-0000-0000-000000000000",
+
  "confid": "00000000-0000-0000-0000-000000000000",
    "confname": "",
+
  "confname": "",
    "confroom": 0,
+
  "confroom": 0,
    "istask": true,
+
  "istask": true,
    "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD",
+
  "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD",
    "taskname": "Входящие в коллцентр",
+
  "taskname": "Входящие в коллцентр",
    "tasktalklimitsec": 180,
+
  "tasktalklimitsec": 180,
    "taskfromhandlesec": 24
+
  "taskfromhandlesec": 24
    }
+
}
  ]
+
]
 +
</pre>
 +
<pre>
 +
//* Частично могут отсутстовать параметры, описывающие абонента.
 +
//    Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec
 +
//    Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid
 +
//    Если isconference=false, то отсутствует confid, confname, confroom
 +
</pre>
  
  //* Частично могут отсутстовать параметры, описывающие абонента.
 
  //    Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec
 
  //    Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid
 
  //    Если isconference=false, то отсутствует confid, confname, confroom
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_commstopped
+
-> phoneevent_commstopped<br>
Сообщение из Октелла в CRM о завершении коммутации. Не путать со звонком. Коммутаций в рамках обработки звонка может быть много.
+
Сообщение из Октелла в CRM о завершении коммутации. Не путать со звонком. Коммутаций в рамках обработки звонка может быть много.
 +
<pre>
 +
[
 +
"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"
 +
}
 +
]
 +
</pre>
  
[
 
    "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
+
-> phoneevent_ivrstarted<br>
Сообщение из Октелла в CRM о соединении с IVR-сценарием.
+
Сообщение из Октелла в CRM о соединении с IVR-сценарием.
+
<pre>
  [
+
[
    "phoneevent_ivrstarted",
+
"phoneevent_ivrstarted",
    {
+
{
    "qid": "46E07742-0B24-4DD6-B4C6-12CDC1F7B938",
+
  "qid": "46E07742-0B24-4DD6-B4C6-12CDC1F7B938",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "scriptname": "(Служебный) Вход в АТС",
+
  "scriptname": "(Служебный) Вход в АТС",
    "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
+
  "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
    "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
+
  "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------
 
-------------------------------------------------
-> phoneevent_ivrstopped  
+
-> phoneevent_ivrstopped<br>
Сообщение из Октелла в CRM о завершении соединения с IVR сценарием.
+
Сообщение из Октелла в CRM о завершении соединения с IVR сценарием.
+
<pre>
  [
+
[
    "phoneevent_ivrstopped",
+
"phoneevent_ivrstopped",
    {
+
{
    "qid": "FC9DD78C-1A5F-4E06-9AB5-A9CEDE025F6A",
+
  "qid": "FC9DD78C-1A5F-4E06-9AB5-A9CEDE025F6A",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_acmcallstarted
+
-> phoneevent_acmcallstarted<br>
Сообщение из Октелла в CRM о запуске автодозвона.
+
Сообщение из Октелла в CRM о запуске автодозвона.
+
<pre>
  [
+
[
    "phoneevent_acmcallstarted",
+
"phoneevent_acmcallstarted",
    {
+
{
    "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0",
+
  "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
+
  "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
    "callnumber": "471",
+
  "callnumber": "471",
    "isextline": false,
+
  "isextline": false,
    "callername": "Сигизмунд Львович Кац",
+
  "callername": "Сигизмунд Львович Кац",
    }
+
}
  ]
+
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_acmcallstopped
+
-> phoneevent_acmcallstopped<br>
Сообщение из Октелла в CRM об остановке автодозвона.
+
Сообщение из Октелла в CRM об остановке автодозвона.
+
<pre>
 
   [
 
   [
 
     "phoneevent_acmcallstopped",
 
     "phoneevent_acmcallstopped",
Строка 627: Строка 664:
 
     }
 
     }
 
   ]
 
   ]
 +
</pre>
 +
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_faxstarted
+
-> phoneevent_faxstarted<br>
Сообщение из Октелла о начале факс-сеанса на оппозитном канале.
+
Сообщение из Октелла о начале факс-сеанса на оппозитном канале.
+
<pre>
 
   [
 
   [
 
     "phoneevent_faxstarted",
 
     "phoneevent_faxstarted",
Строка 644: Строка 683:
 
     }
 
     }
 
   ]
 
   ]
 +
</pre>
 +
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_faxstopped  
+
-> phoneevent_faxstopped<br>
Сообщение из Октелла о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там).
+
Сообщение из Октелла о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там).
+
<pre>
 
   [
 
   [
 
     "phoneevent_faxstopped",
 
     "phoneevent_faxstopped",
Строка 661: Строка 702:
 
     }
 
     }
 
   ]
 
   ]
 +
</pre>
 +
  
 
-------------------------------------------------   
 
-------------------------------------------------   
-> phoneevent_faxreceived  
+
-> phoneevent_faxreceived<br>
Cообщение из Октелла о завершении приема факса со ссылками на файлы.
+
Cообщение из Октелла о завершении приема факса со ссылками на файлы.
+
<pre>
 
   [
 
   [
 
     "phoneevent_faxreceived",
 
     "phoneevent_faxreceived",
Строка 685: Строка 728:
 
     }
 
     }
 
   ]
 
   ]
 
+
</pre>
 +
<pre>
 
   //* Даже если result=0, могут быть частично полученные файлы.
 
   //* Даже если result=0, могут быть частично полученные файлы.
 
+
</pre>
  
  
Строка 694: Строка 738:
 
   
 
   
 
-------------------------------------------------
 
-------------------------------------------------
<- pbxautocallstart
+
<- pbxautocallstart<br>
Запрос из CRM к Октеллу на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя.
+
Запрос из CRM к Октеллу на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя.
 
+
<pre>
  [
+
[
    "pbxautocallstart",
+
"pbxautocallstart",
    {
+
{
    "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
+
  "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "number": "425",
+
  "number": "425",
    "direction": "int",
+
  "direction": "int",
    "sequence": "abonent"
+
  "sequence": "abonent"
    }
+
}
  ]
+
]
 
+
</pre>
  //* direction: int, ext, undefined, -
+
<pre>
  //* sequence: abonent, user, -
+
//* direction: int, ext, undefined, -
 +
//* sequence: abonent, user, -
 +
</pre>
  
 
    
 
    
-> pbxautocallstartresult  
+
-> pbxautocallstartresult<br>
Ответ из Октелла в CRM на запрос звонка.
+
Ответ из Октелла в CRM на запрос звонка.
 +
<pre>
 +
[
 +
"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"
 +
}
 +
]
 +
</pre>
 +
<pre>
 +
//* error, errormsg: EACMAnswer:
 +
//*  cntStartedSuccessfully = 0, //Звонок успешно взят в реализацию
 +
//*  cntUserNotReady = 1, //У осуществляющего вызов пользователя не найдены линии, готовые линии, или состояние кривое
 +
//*  cntBusy = 2, //При звонке на внутренний номер - признак занятости. В очереди и сам повисеть может (в дальнейшем реализуем как раз ожидание в очереди...)
 +
//*  cntExtLineNotFound = 3, //Не найдены готовые внешние линии (если будем на это замес делать.. возможно просто будет стоять и ждать.. )
 +
//*  cntError = 4, //Прочие ошибки, исключения.
 +
//*  cntControlNotReady = 5, //Режим не доделан.
 +
//*  cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если сервак сам будет определять направление звонка, это вообще не будет задействовано)
 +
</pre>
  
  [
 
    "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
+
<- pbxautocallabort<br>
Запрос из CRM к Октеллу на прекращение автодозвона
+
Запрос из CRM к Октеллу на прекращение автодозвона
+
<pre>
  [
+
[
    "pbxautocallabort",
+
"pbxautocallabort",
    {
+
{
    "qid": "28BF3E8F-1F97-47AB-BD42-92D174D4A705",
+
  "qid": "28BF3E8F-1F97-47AB-BD42-92D174D4A705",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    }
+
}
  ]
+
]
 +
</pre>
  
-------------------------------------------------
 
<- pbxtransfercall
 
Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер.
 
 
  [
 
    "pbxtransfercall",
 
    {
 
    "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
 
    "userlogin": "Иванов",
 
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 
    "number": "425",
 
    "direction": "int",
 
    "sequence": "abonent"
 
    }
 
  ]
 
  
 +
-------------------------------------------------
 +
<- pbxtransfercall<br>
 +
Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер.
 +
<pre>
 +
[
 +
"pbxtransfercall",
 +
{
 +
  "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
 +
  "userlogin": "Иванов",
 +
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 +
  "number": "425",
 +
  "direction": "int",
 +
  "sequence": "abonent"
 +
}
 +
]
 +
</pre>
 
    
 
    
-> pbxtransfercallresult
+
 
И аналогичный ответ из Oktell в CRM.
+
-> pbxtransfercallresult<br>
+
И аналогичный ответ из Oktell в CRM.
  [
+
<pre>
    "pbxtransfercallresult",
+
[
    {
+
"pbxtransfercallresult",
    "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
+
{
    "userlogin": "Иванов",
+
  "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userlogin": "Иванов",
    "number": "425",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "direction": "int",
+
  "number": "425",
    "sequence": "abonent",
+
  "direction": "int",
    "result": 0,
+
  "sequence": "abonent",
    "error": 5,
+
  "result": 0,
    "errormsg": "cntNumberNotFound"
+
  "error": 5,
    }
+
  "errormsg": "cntNumberNotFound"
  ]
+
}
 +
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
Запрос из CRM к Октеллу на отклонение звонка.
+
-> pbxdeclinecall<br>
+
Запрос из CRM к Октеллу на отклонение звонка.
  [
+
<pre>
    "pbxdeclinecall",
+
[
    {
+
"pbxdeclinecall",
    "qid": "0AFB2B0C-A68F-448B-9B4B-AB42096D4E95",
+
{
    "userlogin": "Иванов",
+
  "qid": "0AFB2B0C-A68F-448B-9B4B-AB42096D4E95",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userlogin": "Иванов",
    }
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  ]
+
}
 +
]
 +
</pre>
 +
 
  
 
-------------------------------------------------   
 
-------------------------------------------------   
<- pbxabortcall
+
<- pbxabortcall<br>
Запрос из CRM к Октеллу на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен.
+
Запрос из CRM к Октеллу на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен.
+
<pre>
  [
+
[
    "pbxabortcall",
+
"pbxabortcall",
    {
+
{
    "qid": "53F2EE86-46AF-4A37-8C60-2F27EADD10DE",
+
  "qid": "53F2EE86-46AF-4A37-8C60-2F27EADD10DE",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    }
+
}
  ]
+
]
 +
</pre>
  
  
 
-------------------------------------------------   
 
-------------------------------------------------   
<- pbxmakeflash
+
<- pbxmakeflash<br>
Запрос из CRM в Октелл на программную эмуляцию флэш.
+
Запрос из CRM в Октелл на программную эмуляцию флэш.
+
<pre>
  [
+
[
    "pbxmakeflash",
+
"pbxmakeflash",
    {
+
{
    "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6",
+
  "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    }
+
}
  ]
+
]
 +
</pre>
  
  
Строка 832: Строка 891:
 
   
 
   
 
-------------------------------------------------   
 
-------------------------------------------------   
<- startsvcscript
+
<- startsvcscript<br>
Запрос из CRM в Октелл на запуск служебного сценария.
+
Запрос из CRM в Октелл на запуск служебного сценария.
+
<pre>
  [
+
[
    "startsvcscript",
+
"startsvcscript",
    {
+
{
    "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
+
  "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "scriptname": "Служебный сценарий получения почты",
+
  "scriptname": "Служебный сценарий получения почты",
    "startparam1": "значение параметра 1",
+
  "startparam1": "значение параметра 1",
    "startparam2": "значение параметра 2",
+
  "startparam2": "значение параметра 2",
    "startparam3": "значение параметра 3",
+
  "startparam3": "значение параметра 3",
    "startparam4": "значение параметра 4",
+
  "startparam4": "значение параметра 4",
    "startparam5": "значение параметра 5",
+
  "startparam5": "значение параметра 5",
    "waitresponse": true,
+
  "waitresponse": true,
    "waittimeoutsec": 10
+
  "waittimeoutsec": 10
    }
+
}
  ]
+
]
 +
</pre>
  
 
    
 
    
-> startsvcscriptresult  
+
-> startsvcscriptresult<br>
Ответ Октелла на запрос запуска служебного сценария.
+
Ответ Октелла на запрос запуска служебного сценария.
+
<pre>
  [
+
[
    "startsvcscriptresult",
+
"startsvcscriptresult",
    {
+
{
    "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
+
  "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
    "userlogin": "Иванов",
+
  "userlogin": "Иванов",
    "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
    "scriptname": "Служебный сценарий получения почты",
+
  "scriptname": "Служебный сценарий получения почты",
    "result": 0,
+
  "result": 0,
    "returnvalue": "присвоенный в сценарии результат",
+
  "returnvalue": "присвоенный в сценарии результат",
    "error": 10
+
  "error": 10
    }
+
}
  ]
+
]
 
+
</pre>
  //*  error: 10 - файл не найден, 11 - исключение, 12 - таймаут
+
<pre>
 +
//*  error: 10 - файл не найден, 11 - исключение, 12 - таймаут
 +
</pre>
  
  
Строка 875: Строка 937:
  
 
''' ДИНАМИЧЕСКОЕ ВЗАИМОДЕЙСТВИЕ.'''
 
''' ДИНАМИЧЕСКОЕ ВЗАИМОДЕЙСТВИЕ.'''
Информация от CRM о поддерживаемых методах, доступных Октеллу для инициации исполнения.
+
 
 +
Информация от CRM о поддерживаемых методах, доступных Октеллу для инициации исполнения.
 
    
 
    
Общая идея:
+
Общая идея:
В момент создания сценариев в Октелле администратор имеет возможность настроить взаимодействие с CRM.
+
В момент создания сценариев в Октелле администратор имеет возможность настроить взаимодействие с CRM.
Взаимодействие представляет собой вызов определенного метода с передачей в него входных параметров,  и возможно ожидание его исполнения с возвратом [нескольких] выходных значений.
+
Взаимодействие представляет собой вызов определенного метода с передачей в него входных параметров,  и возможно ожидание его исполнения с возвратом [нескольких] выходных значений.
При организации подключения Октелл-сервера к CRM-серверу, Октеллом производится запрос доступных в CRM методов.  
+
При организации подключения Октелл-сервера к CRM-серверу, Октеллом производится запрос доступных в CRM методов.  
По каждому методу дополнительно описывается перечень входных и выходных параметров, их типы, способ исполнения метода (по организованному каналу или отдельным http-подключением), возможность его отмены (для длительных операций, например метод "открыть диалоговую форму" может быть отменен обратным методом "закрыть диалоговую форму", а может быть прерван с тем же результатом).
+
По каждому методу дополнительно описывается перечень входных и выходных параметров, их типы, способ исполнения метода (по организованному каналу или отдельным http-подключением), возможность его отмены (для длительных операций, например метод "открыть диалоговую форму" может быть отменен обратным методом "закрыть диалоговую форму", а может быть прерван с тем же результатом).
В интеграционном интерфейсе отсутствует таким образом необходимость конкретизировать методы CRM. В момент настройки сценария администратор уже имеет о них информацию и настраивает конкретный сценарий под место.
+
В интеграционном интерфейсе отсутствует таким образом необходимость конкретизировать методы CRM. В момент настройки сценария администратор уже имеет о них информацию и настраивает конкретный сценарий под место.
 
   
 
   
Для примера: в момент поступления вызова Октелл определил номер абонента. Производит синхронное исполнение динамического метода CRM "вернуть ид компании по номеру телефона", дожидается ответа и принимает в сценарий значение. Далее исполняет динамический метод "Ответственный сотрудник", дожидается ответа и принимает в сценарий значение. Все это время абоненту проигрывается приветствие. Когда воспроизведение завершается, Октелл производит маршрутизацию в соответствии с вернувшимися значениями, а также в момент поступления звонка сотруднику исполняет динамический метод "открыть карточку компании" с передачей в качестве параметра идентификатора, вернувшегося на первом шаге. В случае, если сотрудник не снимает трубку, Октелл отменяет исполнение метода, тем самым отдавая команду на закрытие карточки компании.  
+
Для примера: в момент поступления вызова Октелл определил номер абонента. Производит синхронное исполнение динамического метода CRM "вернуть ид компании по номеру телефона", дожидается ответа и принимает в сценарий значение. Далее исполняет динамический метод "Ответственный сотрудник", дожидается ответа и принимает в сценарий значение. Все это время абоненту проигрывается приветствие. Когда воспроизведение завершается, Октелл производит маршрутизацию в соответствии с вернувшимися значениями, а также в момент поступления звонка сотруднику исполняет динамический метод "открыть карточку компании" с передачей в качестве параметра идентификатора, вернувшегося на первом шаге. В случае, если сотрудник не снимает трубку, Октелл отменяет исполнение метода, тем самым отдавая команду на закрытие карточки компании.  
Ни об одном из перечисленных в примере методов CRM Октелл не знает, зато знает администратор, настраивающий систему на работу совместно с CRM.
+
Ни об одном из перечисленных в примере методов CRM Октелл не знает, зато знает администратор, настраивающий систему на работу совместно с CRM.
 
   
 
   
Серия методов forms - частный случай методов, позволяющий выделить в отдельную категорию работу с карточками. Смысл и способ работы тот же самый. Тем не менее карточки могут быть представлены как методы.
+
Серия методов forms - частный случай методов, позволяющий выделить в отдельную категорию работу с карточками. Смысл и способ работы тот же самый. Тем не менее карточки могут быть представлены как методы.
  
 
----------------------------------------------
 
----------------------------------------------
 
   
 
   
-> getavailablemethods
+
-> getavailablemethods<br>
<- availablemethods
+
<- availablemethods<br>
-> executemethod
+
-> executemethod<br>
-> cancelmethod
+
-> cancelmethod<br>
<- methodresult
+
<- methodresult<br>
  
-> getavailableforms
+
-> getavailableforms<br>
<- availableforms
+
<- availableforms<br>
-> showform
+
-> showform<br>
-> closeform
+
-> closeform<br>
<- formresult
+
<- formresult<br>
  
  
 
------------------------------------------------------------------------------
 
------------------------------------------------------------------------------
-> getavailablemethods
+
-> getavailablemethods<br>
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных динамических методов CRM.
+
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных динамических методов CRM.
 +
<pre>
 +
[
 +
"getavailablemethods",
 +
{
 +
  "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170"
 +
}
 +
]
 +
</pre>
 +
  
    [
+
<- availablemethods<br>
    "getavailablemethods",
+
Сообщение-ответ из CRM в Oktell со списком доступных динамических методов CRM.
 +
<pre>
 +
[
 +
"availablemethods",
 +
{
 +
  "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170",
 +
  "methods": [
 +
  {
 +
    "key": "16893E86-4D73-4F4C-8629-6E484B2CB5B0",
 +
    "name": "Вернуть данные о компании",
 +
    "description": "Возвращает информацию о компании по одному из выбранных идентификаторов, чтобы в дальнейшем использовать при открытии карточки данных о компании",
 +
    "connectiontype": "http",
 +
    "defineuser": false,
 +
    "allowcancel": false,
 +
    "inputparams": [
 
     {
 
     {
       "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170"
+
       "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"
 +
    }
 +
    {...},
 +
    {...}
 
     ]
 
     ]
+
  },
+
  {
<- availablemethods
+
    "key": "card_records",  
Cообщение-ответ из CRM в Oktell со списком доступных динамических методов CRM.
+
    "name": "Показать карточку «ДЕЛА»",
+
    "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке",
    [
+
    "connectiontype": "websock",
      "availablemethods",
+
    "defineuser": true,
      {
+
    "allowcancel": true,
        "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170",
+
    "inputparams": [
        "methods": [
+
    {
          {
+
      "key": "recordid",
            "key": "16893E86-4D73-4F4C-8629-6E484B2CB5B0",
+
      "name": "Номер дела",
          "name": "Вернуть данные о компании",
+
      "description": "Номер дела, который ранее был создан при вызове метода «Создать запись дела»",
          "description": "Возвращает информацию о компании по одному из выбранных идентификаторов, чтобы в дальнейшем использовать при открытии карточки данных о компании",
+
      "type": "string"
            "connectiontype": "http",
+
    },
            "defineuser": false,
+
    {
            "allowcancel": false,
+
      "key": "accountid",
          "inputparams": [
+
      "name": "Идентификатор клиента",
              {
+
      "description": "Идентификатор клиента в базе данных CRM",
                "key": "type",
+
      "type": "string"
                "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"
+
              },
+
              {...},
+
              {...}
+
            ]
+
          },
+
          {...},
+
          {...}
+
        ]
+
      }
+
 
     ]
 
     ]
 +
  },
 +
  {...},
 +
  {...}
 +
  ]
 +
}
 +
]
 +
</pre>
 +
  
 
------------------------------------------------------------------------------
 
------------------------------------------------------------------------------
-> executemethod
+
-> executemethod<br>
Сообщение-команда из Октелл в CRM на выполнение динамического метода (возможно у конкретного пользователя).
+
Сообщение-команда из Октелл в CRM на выполнение динамического метода (возможно у конкретного пользователя).
+
<pre>
    [
+
[
      "executemethod",
+
"executemethod",
      {
+
{
        "qid": "4A8E20A1-57F9-4CA6-B4EE-221E2EB00364",
+
  "qid": "4A8E20A1-57F9-4CA6-B4EE-221E2EB00364",
        "userlogin": "Иванов",
+
  "userlogin": "Иванов",
        "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
        "methodkey": "createrecord",
+
  "methodkey": "createrecord",
        "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
+
  "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
        "inputparameters": {
+
  "inputparameters": {
          "sessionid": "2A2C48FE-D8B6-4B51-951A-09D31543D000"
+
  "sessionid": "2A2C48FE-D8B6-4B51-951A-09D31543D000"
        }
+
  }
      }
+
}
    ]
+
]
+
</pre>
 +
 
 +
 
 +
<- methodresult<br>
 +
Сообщение-результат выполнения динамического метода из CRM в Октелл с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod.
 +
<pre>
 +
[
 +
"methodresult",
 +
{
 +
  "qid": "A238110C-6B74-4980-AA23-41402B1E9B0E",
 +
  "methodkey": "createrecord",
 +
  "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
 +
  "outputparameters": {
 +
  "recordid": "ADCB1376-BA66-496C-A56E-AB7A7D5A9193"
 +
  }
 +
}
 +
]
 +
</pre>
  
<- methodresult
 
Сообщение-результат выполнения динамического метода из CRM в Октелл с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod.
 
 
    [
 
      "methodresult",
 
      {
 
        "qid": "A238110C-6B74-4980-AA23-41402B1E9B0E",
 
        "methodkey": "createrecord",
 
        "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
 
        "outputparameters": {
 
          "recordid": "ADCB1376-BA66-496C-A56E-AB7A7D5A9193"
 
        }
 
    }
 
    ]
 
  
 
------------------------------------------------------------------------------
 
------------------------------------------------------------------------------
-> cancelmethod
+
-> cancelmethod<br>
Сообщение-команда из Октелл на прекращение выполнения ранее запущенного динамического метода.
+
Сообщение-команда из Октелл на прекращение выполнения ранее запущенного динамического метода.
+
<pre>
    [
+
[
      "cancelmethod",
+
"cancelmethod",
      {
+
{
        "qid": "6ADC3F1E-B1DD-4768-BAF8-3EEB477B2F17",
+
  "qid": "6ADC3F1E-B1DD-4768-BAF8-3EEB477B2F17",
        "userlogin": "Иванов",
+
  "userlogin": "Иванов",
        "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
        "methodkey": "card_records",
+
  "methodkey": "card_records",
        "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
+
  "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
        "forcecancel": 0
+
  "forcecancel": 0
      }
+
}
    ]
+
]
 +
</pre>
 +
 
  
 
------------------------------------------------------------------------------
 
------------------------------------------------------------------------------
-> getavailableforms
+
-> getavailableforms<br>
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных карточек CRM.
+
Отправляет из Oktell в CRM сообщение-запрос на возврат доступных карточек CRM.
 
+
<pre>
    [
+
[
    "getavailableforms",
+
"getavailableforms",
    {
+
{
      "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E"
+
  "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E"
    }
+
}
    ]
+
]
 +
</pre>
  
  
<- availableforms
+
<- availableforms<br>
  Cообщение-ответ из CRM в Oktell со списком доступных карточек CRM.
+
Cообщение-ответ из CRM в Oktell со списком доступных карточек CRM.
 
+
<pre>
    [
+
[
      "availableforms",
+
"availableforms",
      {
+
{
        "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E",
+
  "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E",
        "forms": [
+
  "forms": [
          {
+
  {
            "key": "B840825C-95BB-49B8-9B30-74D3225701BF",  
+
    "key": "B840825C-95BB-49B8-9B30-74D3225701BF",  
          "name": "Данные о компании",
+
    "name": "Данные о компании",
          "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке",
+
    "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке",
          "inputparams": [
+
    "inputparams": [
              {
+
    {
                "key": "accountid",
+
      "key": "accountid",
                "name": "Код компании",
+
      "name": "Код компании",
                "description": "Код компании, который CRM возвращает в поле [accountid] в ответ на запрос данных о компании по номеру телефона",
+
      "description": "Код компании, который CRM возвращает в поле [accountid] в ответ на запрос данных о компании по номеру телефона",
                "type": "string"
+
      "type": "string"
              },
+
    },
              {
+
    {
                "key": "page",
+
      "key": "page",
                "name": "Активная страница",
+
      "name": "Активная страница",
                "description": "Открываемая страница формы по умолчанию при открытии карточки",
+
      "description": "Открываемая страница формы по умолчанию при открытии карточки",
                "type": "list",
+
      "type": "list",
                "items": [
+
      "items": [
                  {
+
      {
                    id: "page1",
+
        id: "page1",
                    name: "Контактные данные"
+
        name: "Контактные данные"
                  },
+
      },
                  {
+
      {
                    id: "page2",
+
        id: "page2",
                    name: "История взаимодействия"
+
        name: "История взаимодействия"
                  },
+
      },
                  {
+
      {
                    id: "page3",
+
        id: "page3",
                    name: "Комментарии"
+
        name: "Комментарии"
                  }
+
      }
                ]
+
      ]
              {...},
+
    {...},
              {...}
+
    {...}
            ]
+
          },
+
          {...},
+
          {...}
+
        ]
+
      }
+
 
     ]
 
     ]
 +
  },
 +
  {...},
 +
  {...}
 +
  ]
 +
}
 +
]
 +
</pre>
 +
  
 
------------------------------------------------------------------------------
 
------------------------------------------------------------------------------
-> showform
+
-> showform<br>
Сообщение-команда из Октелл в CRM на открытие карточки у конкретного пользователя.
+
Сообщение-команда из Октелл в CRM на открытие карточки у конкретного пользователя.
 +
<pre>
 +
[
 +
"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"
 +
  }
 +
}
 +
]
 +
</pre>
 +
 
 
 
    [
+
<- formresult<br>
      "showform",
+
Сообщение-результат из CRM в Октелл при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой CloseForm
      {
+
<pre>
        "qid": "5CF770AE-E308-41DA-B89E-7BBCE75BE36F",
+
[
        "userlogin": "Иванов",
+
"formresult",
        "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
{
        "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF",
+
  "qid": "EC9E1619-AC1B-4071-98B9-30808B9ED0EC",
        "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40",
+
  "userlogin": "Иванов",
        "inputparameters": {
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
          "accountid": "05379F49-AB22-4872-B2C2-0D4BA019EA0B",
+
  "formkey": "EC9E1619-AC1B-4071-98B9-30808B9ED0EC",
          "page": "page2"
+
  "windowid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
        }
+
  "outputparameters": {
      }
+
  "comment": "блаблабла"
    ]
+
  }
 +
}
 +
]
 +
</pre>
  
 
<- formresult
 
Сообщение-результат из CRM в Октелл при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой 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
+
-> closeform<br>
Сообщение-команда из Октелл на закрытие карточки у конкретного пользователя.
+
Сообщение-команда из Октелл на закрытие карточки у конкретного пользователя.
+
<pre>
    [
+
[
      "closeform",
+
"closeform",
      {
+
{
        "qid": "FAA1A503-FEC6-4D23-ADA9-2E4FD63F2C96",
+
  "qid": "FAA1A503-FEC6-4D23-ADA9-2E4FD63F2C96",
        "userlogin": "Иванов",
+
  "userlogin": "Иванов",
        "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
        "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF",
+
  "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF",
        "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40",
+
  "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40",
        "forceclose": 0
+
  "forceclose": 0
      }
+
}
    ]
+
]
 +
</pre>
  
  
Строка 1192: Строка 1270:
 
''' КОНФЕРЕНЦ-СВЯЗЬ'''
 
''' КОНФЕРЕНЦ-СВЯЗЬ'''
 
   
 
   
Запросы из CRM, ответы от Октелла, события из Октелла
+
Запросы из CRM, ответы от Октелла, события из Октелла
  
 
---------------------------------------------
 
---------------------------------------------
<- confhandleevent
+
<- confhandleevent<br>
Подписка/отписка на указанную категорию событий сервера конференций.
+
Подписка/отписка на указанную категорию событий сервера конференций.
+
<pre>
    [
+
[
    "confhandleevent",
+
"confhandleevent",
    {
+
{
      "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
+
  "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
+
  "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "eventtype": "competitors",
+
  "eventtype": "competitors",
      "handle": true
+
  "handle": true
    }
+
}
    ]
+
]
 +
</pre>
 +
<pre>
 +
//* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates
 +
// предполагается, что в общем случае инфа идет только о списке конференций (conferences)
 +
//          когда юзер находится в конференции - дополнительно о внутреннем состоянии конференции (competitors)
 +
// когда юзер настраивает конференцию и выбирает из списка участников для автоматического приглашения - о состояниях всех пользователей (userstates)
 +
//        Подписками управляет сам внешний модуль. Когда потребность уходит - необходимо отписываться, чтобы не заваливать канал порожняком.
 +
//* handle - true|false - подписаться/отписаться
 +
</pre>
  
    //* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates
 
    // предполагается, что в общем случае инфа идет только о списке конференций (conferences)
 
    //          когда юзер находится в конференции - дополнительно о внутреннем состоянии конференции (competitors)
 
    // когда юзер настраивает конференцию и выбирает из списка участников для автоматического приглашения - о состояниях всех пользователей (userstates)
 
    //        Подписками управляет сам внешний модуль. Когда потребность уходит - необходимо отписываться, чтобы не заваливать канал порожняком.
 
    //* handle - true|false - подписаться/отписаться
 
  
 
---------------------------------------------
 
---------------------------------------------
<- checkcanconnecttogathertoconference
+
<- checkcanconnecttogathertoconference<br>
Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь.
+
Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь.
 
+
<pre>
    [
+
[
    "checkcanconnecttogathertoconference",
+
"checkcanconnecttogathertoconference",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
    }
+
}
    ]
+
]
 +
</pre>
  
 
 
-> confcheckcanconnecttogatherresult
+
-> confcheckcanconnecttogatherresult<br>
Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию.
+
Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию.
+
<pre>
    [
+
[
    "confcheckcanconnecttogatherresult",
+
"confcheckcanconnecttogatherresult",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "canconnecttogather": true,
+
  "canconnecttogather": true,
      "inconference": false,
+
  "inconference": false,
    }
+
}
    ]
+
]
 +
</pre>
 +
 
  
 
---------------------------------------------
 
---------------------------------------------
<- connecttogathertoconference
+
<- connecttogathertoconference<br>
Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию.
+
Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию.
+
<pre>
    [
+
[
    "connecttogathertoconference",
+
"connecttogathertoconference",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
    }
+
}
    ]
+
]
 +
</pre>
  
  
 
---------------------------------------------
 
---------------------------------------------
<- buildconferencefromcommutation
+
<- buildconferencefromcommutation<br>
Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками.
+
Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками.
+
<pre>
    [
+
[
    "buildconferencefromcommutation",
+
"buildconferencefromcommutation",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
    }
+
}
    ]
+
]
 +
</pre>
 +
 
  
 
---------------------------------------------
 
---------------------------------------------
<- attachasghost
+
<- attachasghost<br>
Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь.
+
Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь.
+
<pre>
    [
+
[
    "attachasghost",
+
"attachasghost",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "ghostedid": "FE9D6B52-C267-4D39-AC9F-81A0F44713FF",
+
  "ghostedid": "FE9D6B52-C267-4D39-AC9F-81A0F44713FF",
      "ghostedlogin": "Петров"
+
  "ghostedlogin": "Петров"
    }
+
}
    ]
+
]
 +
</pre>
  
 
 
-> attachasghostresult
+
-> attachasghostresult<br>
Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку.
+
Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку.
+
<pre>
    [
+
[
    "attachasghostresult",
+
"attachasghostresult",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 0,
+
  "result": 0,
      "error": 52703
+
  "error": 52703
    }
+
}
    ]
+
]
 +
</pre>
 +
<pre>
 +
//* ghostedid - ид пользователя или линии, к которому подцепляться для прослушки
 +
//* ghostedlogin - логин пользователя, к которому подцепляться для прослушки
 +
</pre>
  
    //* ghostedid - ид пользователя или линии, к которому подцепляться для прослушки
 
    //* ghostedlogin - логин пользователя, к которому подцепляться для прослушки
 
  
 
---------------------------------------------
 
---------------------------------------------
<- getconferences
+
<- getconferences<br>
Запрос из CRM в Oktell на возврат текущих активных конференц-сессий.
+
Запрос из CRM в Oktell на возврат текущих активных конференц-сессий.
+
<pre>
    [
+
[
    "getconferences",
+
"getconferences",
    {
+
{
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
+
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
+
  "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
+
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
    }
+
}
    ]
+
]
 +
</pre>
  
 
 
-> getconferencesresult
+
-> getconferencesresult<br>
Ответ из Oktell в CRM со списком текущих активных конференц-сессий.
+
Ответ из Oktell в CRM со списком текущих активных конференц-сессий.
+
<pre>
 
     [
 
     [
 
     "getconferencesresult",
 
     "getconferencesresult",
Строка 1358: Строка 1450:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- getconferencecompetitors
+
<- getconferencecompetitors<br>
Запрос из CRM в Oktell на возврат текущих участников указанной конференции.
+
Запрос из CRM в Oktell на возврат текущих участников указанной конференции.
+
<pre>
 
     [
 
     [
 
     "getconferencecompetitors",
 
     "getconferencecompetitors",
Строка 1372: Строка 1466:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getconferencecompetitorsresult
+
-> getconferencecompetitorsresult<br>
Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции.
+
Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции.
+
<pre>
 
     [
 
     [
 
     "getconferencecompetitorsresult",
 
     "getconferencecompetitorsresult",
Строка 1411: Строка 1506:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- getusersforconferenceinvitelist
+
<- getusersforconferenceinvitelist<br>
Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях).
+
Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях).
+
<pre>
 
     [
 
     [
 
     "getusersforconferenceinvitelist",
 
     "getusersforconferenceinvitelist",
Строка 1424: Строка 1521:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
-> getusersforconferenceinvitelistresult
+
 
Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях.
+
-> getusersforconferenceinvitelistresult<br>
+
Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях.
 +
<pre>
 
     [
 
     [
 
     "getusersforconferenceinvitelistresult",
 
     "getusersforconferenceinvitelistresult",
Строка 1456: Строка 1555:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- createnewconference
+
<- createnewconference<br>
Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте.
+
Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте.
+
<pre>
 
     [
 
     [
 
     "createnewconference",
 
     "createnewconference",
Строка 1501: Строка 1602:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
  
-> createnewconferenceresult
+
-> createnewconferenceresult<br>
Ответ из Oktell в CRM с результатом исполнения команды на создание конференции.
+
Ответ из Oktell в CRM с результатом исполнения команды на создание конференции.
+
<pre>
 
     [
 
     [
 
     "createnewconferenceresult",
 
     "createnewconferenceresult",
Строка 1517: Строка 1619:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
<pre>
 +
//* conference:accessmode - free|shared|closed
 +
//* conference:recordrights - director|competitors|selected
 +
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
 +
//* список recordusers имеет смысл только когда conference:recordrights=selected.
 +
</pre>
  
    //* conference:accessmode - free|shared|closed
 
    //* conference:recordrights - director|competitors|selected
 
    //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
 
    //* список recordusers имеет смысл только когда conference:recordrights=selected.
 
  
 
---------------------------------------------
 
---------------------------------------------
<- setupexistingconference
+
<- setupexistingconference<br>
Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции.
+
Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции.
 
+
<pre>
 
     [
 
     [
 
     "setupexistingconference",
 
     "setupexistingconference",
Строка 1555: Строка 1660:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> setupexistingconferenceresult
+
-> setupexistingconferenceresult<br>
Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции.
+
Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции.
+
<pre>
 
     [
 
     [
 
     "setupexistingconferenceresult",
 
     "setupexistingconferenceresult",
Строка 1571: Строка 1677:
 
     }
 
     }
 
     ]
 
     ]
 
+
</pre>
 +
<pre>
 
     //* conference:accessmode - free|shared|closed
 
     //* conference:accessmode - free|shared|closed
 
     //* conference:recordrights - director|competitors|selected
 
     //* conference:recordrights - director|competitors|selected
 
     //* conference:ghostmode - monitor|help|talk
 
     //* conference:ghostmode - monitor|help|talk
 
     //* список recordusers имеет смысл только когда conference:recordrights=selected.
 
     //* список recordusers имеет смысл только когда conference:recordrights=selected.
 +
</pre>
  
---------------------------------------------
 
<- getconferenceinfo
 
Запрос из CRM в Oktell на возврат текущих параметров указанной конференции.
 
  
 +
---------------------------------------------
 +
<- getconferenceinfo<br>
 +
Запрос из CRM в Oktell на возврат текущих параметров указанной конференции.
 +
<pre>
 
     [
 
     [
 
     "getconferenceinfo",
 
     "getconferenceinfo",
Строка 1590: Строка 1699:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getconferenceinforesult
+
-> getconferenceinforesult<br>
Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния.
+
Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния.
+
<pre>
 
     [
 
     [
 
     "getconferenceinforesult",
 
     "getconferenceinforesult",
Строка 1648: Строка 1758:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
---------------------------------------------
 
<- stopconference
 
Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции.
 
  
 +
---------------------------------------------
 +
<- stopconference<br>
 +
Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции.
 +
<pre>
 
     [
 
     [
 
     "stopconference",
 
     "stopconference",
Строка 1662: Строка 1774:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 
 
 
 
-> stopconferenceresult
+
-> stopconferenceresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции.
+
Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции.
+
<pre>
 
     [
 
     [
 
     "stopconferenceresult",
 
     "stopconferenceresult",
Строка 1679: Строка 1792:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
 
 
 
---------------------------------------------
 
---------------------------------------------
<- confsetvoiceparams
+
<- confsetvoiceparams<br>
Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции.
+
Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции.
 
+
<pre>
 
     [
 
     [
 
     "confsetvoiceparams",
 
     "confsetvoiceparams",
Строка 1702: Строка 1817:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> confsetvoiceparamsresult
+
-> confsetvoiceparamsresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала.
+
Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала.
+
<pre>
 
     [
 
     [
 
     "confsetvoiceparamsresult",
 
     "confsetvoiceparamsresult",
Строка 1719: Строка 1835:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
<pre>
 +
//*  competitor:cantalk - может ли говорить
 +
//*  competitor:canlisten - может ли слышать
 +
//*  competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов - может ли слышать подключившегося супервизора
 +
//*  достаточно/следует указывать только один из набора определяющих участника идентификаторов {competitorid, userid|userlogin, lineid}
 +
</pre>
  
    //*  competitor:cantalk - может ли говорить
 
    //*  competitor:canlisten - может ли слышать
 
    //*  competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов - может ли слышать подключившегося супервизора
 
    //*  достаточно/следует указывать только один из набора определяющих участника идентификаторов {competitorid, userid|userlogin, lineid}
 
  
 
---------------------------------------------
 
---------------------------------------------
<- confsetwanttalk
+
<- confsetwanttalk<br>
Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего).
+
Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего).
 
+
<pre>
 
     [
 
     [
 
     "confsetwanttalk",
 
     "confsetwanttalk",
Строка 1739: Строка 1858:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> confsetwanttalkresult
+
-> confsetwanttalkresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса.
+
Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса.
+
<pre>
 
     [
 
     [
 
     "confsetwanttalkresult",
 
     "confsetwanttalkresult",
Строка 1754: Строка 1874:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
---------------------------------------------
 
<- confsetghostmode
 
Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи.
 
  
 +
---------------------------------------------
 +
<- confsetghostmode<br>
 +
Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи.
 +
<pre>
 
     [
 
     [
 
     "confsetghostmode",
 
     "confsetghostmode",
Строка 1769: Строка 1891:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> confsetghostmoderesult
+
-> confsetghostmoderesult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи.
+
Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи.
+
<pre>
 
     [
 
     [
 
     "confsetghostmoderesult",
 
     "confsetghostmoderesult",
Строка 1784: Строка 1907:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- exitconference
+
<- exitconference<br>
Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне.
+
Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне.
+
<pre>
 
     [
 
     [
 
     "exitconference",
 
     "exitconference",
Строка 1798: Строка 1923:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> exitconferenceresult
+
-> exitconferenceresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции.
+
Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции.
+
<pre>
 
     [
 
     [
 
     "exitconferenceresult",
 
     "exitconferenceresult",
Строка 1813: Строка 1939:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- confdisconnectcompetitor
+
<- confdisconnectcompetitor<br>
Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника.
+
Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника.
+
<pre>
[
+
  [
 
     "confdisconnectcompetitor",
 
     "confdisconnectcompetitor",
 
     {
 
     {
Строка 1833: Строка 1961:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 
 
  
-> confdisconnectcompetitorresult
+
-> confdisconnectcompetitorresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника.
+
Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника.
+
<pre>
 
     [
 
     [
 
     "confdisconnectcompetitorresult",
 
     "confdisconnectcompetitorresult",
Строка 1848: Строка 1977:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- enterconference
+
<- enterconference<br>
Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference
+
Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference
+
<pre>
[
+
  [
 
     "enterconference",
 
     "enterconference",
 
     {
 
     {
Строка 1862: Строка 1993:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> enterconferenceresult
+
-> enterconferenceresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию.
+
Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию.
+
<pre>
 
     [
 
     [
 
     "enterconferenceresult",
 
     "enterconferenceresult",
Строка 1877: Строка 2009:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- confdisconnectcompetitor
+
<- confdisconnectcompetitor<br>
Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа.
+
Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа.
+
<pre>
 
     [
 
     [
 
     "confpermitdenyentrance",
 
     "confpermitdenyentrance",
Строка 1898: Строка 2032:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 
 
  
-> confpermitdenyentranceresult
+
-> confpermitdenyentranceresult<br>
Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику.
+
Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику.
+
<pre>
 
     [
 
     [
 
     "confpermitdenyentranceresult",
 
     "confpermitdenyentranceresult",
Строка 1913: Строка 2048:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
---------------------------------------------
 
---------------------------------------------
<- invitetoconference
+
<- invitetoconference<br>
Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру).
+
Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру).
+
<pre>
 
     [
 
     [
 
     "invitetoconference",
 
     "invitetoconference",
Строка 1939: Строка 2076:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> invitetoconference
+
-> invitetoconference<br>
Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции.
+
Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции.
+
<pre>
 
     [
 
     [
 
     "invitetoconference",
 
     "invitetoconference",
Строка 1954: Строка 2092:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
<pre>
 +
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
 +
</pre>
 +
  
    //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
 
  
 
''' События из Октелла по теме конференций.'''
 
''' События из Октелла по теме конференций.'''
  
 
---------------------------------------------
 
---------------------------------------------
-> conflistchanged
+
-> conflistchanged<br>
Событие из Oktell в CRM об изменении списка текущих активных конференций.
+
Событие из Oktell в CRM об изменении списка текущих активных конференций.
+
<pre>
 
     [
 
     [
 
     "conflistchanged",
 
     "conflistchanged",
Строка 1997: Строка 2139:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
 
---------------------------------------------
 
---------------------------------------------
-> "conf***"
+
-> "conf***"<br>
Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже.
+
Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже.
+
<pre>
 
     [
 
     [
 
     "conf***",
 
     "conf***",
Строка 2014: Строка 2157:
 
     }
 
     }
 
     ]
 
     ]
 
+
</pre>
 +
<pre>
 
     //* confparamschanged,  
 
     //* confparamschanged,  
 
     //* confcompositionchanged,  
 
     //* confcompositionchanged,  
Строка 2023: Строка 2167:
 
     //* confnotifyinvite,  
 
     //* confnotifyinvite,  
 
     //* confpossiblecompetitorstatechanged
 
     //* confpossiblecompetitorstatechanged
 
+
</pre>
  
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getuserstate
+
<- getuserstate<br>
Запрос из CRM в Oktell состояния указанного пользователя системы.
+
Запрос из CRM в Oktell состояния указанного пользователя системы.
+
<pre>
 
     [
 
     [
 
     "getuserstate",
 
     "getuserstate",
Строка 2038: Строка 2182:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getuserstateresult
+
-> getuserstateresult<br>
Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы.  
+
Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы.  
+
<pre>
 
     [
 
     [
 
     "getuserstateresult",
 
     "getuserstateresult",
Строка 2057: Строка 2202:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- checkuserintask
+
<- checkuserintask<br>
Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра.
+
Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра.
+
<pre>
[
+
  [
 
     "checkuserintask",
 
     "checkuserintask",
 
     {
 
     {
Строка 2070: Строка 2217:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> checkuserintaskresult
+
-> checkuserintaskresult<br>
Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа.
+
Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа.
+
<pre>
 
     [
 
     [
 
     "checkuserintaskresult",
 
     "checkuserintaskresult",
Строка 2093: Строка 2241:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getcurrentlinestate
+
<- getcurrentlinestate<br>
Запрос из CRM в Oktell состояния телефонной линии указанного пользователя.
+
Запрос из CRM в Oktell состояния телефонной линии указанного пользователя.
+
<pre>
 
     [
 
     [
 
     "getcurrentlinestate",
 
     "getcurrentlinestate",
Строка 2106: Строка 2256:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getcurrentlinestateresult
+
-> getcurrentlinestateresult<br>
Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы.  
+
Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы.  
+
<pre>
 
     [
 
     [
 
     "getcurrentlinestateresult",
 
     "getcurrentlinestateresult",
Строка 2126: Строка 2277:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getcurrentlinestate
+
<- getcurrentlinestate<br>
Запрос из CRM в Oktell состояния очереди указанного пользователя.
+
Запрос из CRM в Oktell состояния очереди указанного пользователя.
+
<pre>
[
+
  [
 
     "getcurrentqueue",
 
     "getcurrentqueue",
 
     {
 
     {
Строка 2139: Строка 2292:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getcurrentlinestateresult
+
-> getcurrentlinestateresult<br>
Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы.  
+
Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы.  
+
<pre>
 
     [
 
     [
 
     "getcurrentqueueresult",
 
     "getcurrentqueueresult",
Строка 2192: Строка 2346:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getchaincontent
+
<- getchaincontent<br>
Запрос из CRM в Oktell на возврат контента текущей сессии, в которой участвует линия указанного пользователя. Кто инициировал звонок, когда, с кем коммутировался, кто переключал, куда, на кого, когда, были ли комментарии какие-то установлены в контент...
+
Запрос из CRM в Oktell на возврат контента текущей сессии, в которой участвует линия указанного пользователя. Кто инициировал звонок, когда, с кем коммутировался, кто переключал, куда, на кого, когда, были ли комментарии какие-то установлены в контент...
+
<pre>
[
+
  [
 
     "getchaincontent",
 
     "getchaincontent",
 
     {
 
     {
Строка 2205: Строка 2361:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getchaincontentresult
+
-> getchaincontentresult<br>
Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя.  
+
Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя.  
+
<pre>
 
     [
 
     [
 
     "getchaincontentresult",
 
     "getchaincontentresult",
Строка 2290: Строка 2447:
 
     }
 
     }
 
     ]
 
     ]
 
+
</pre>
 +
<pre>
 
     * trace:contentelementtype:  
 
     * trace:contentelementtype:  
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- setchaincontentcustomfield
+
<- setchaincontentcustomfield<br>
Запрос из CRM в Oktell на установку комментария в контент текущей сессии, в которой участвует канал указанного пользователя.
+
Запрос из CRM в Oktell на установку комментария в контент текущей сессии, в которой участвует канал указанного пользователя.
+
<pre>
 
     [
 
     [
 
     "setchaincontentcustomfield",
 
     "setchaincontentcustomfield",
Строка 2306: Строка 2466:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> setchaincontentcustomfieldresult
+
-> setchaincontentcustomfieldresult<br>
Ответ из Oktell в CRM с результатом установки комментария в контент текущей сессии, в которой участвует канал указанного в запросе пользователя.
+
Ответ из Oktell в CRM с результатом установки комментария в контент текущей сессии, в которой участвует канал указанного в запросе пользователя.
+
<pre>
 
     [
 
     [
 
     "setchaincontentcustomfieldresult",
 
     "setchaincontentcustomfieldresult",
Строка 2321: Строка 2482:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- setchaincontentcustomfield
+
<- setchaincontentcustomfield<br>
Запрос из CRM в Oktell на возврат комментария из контента текущей сессии, в которой участвует канал указанного пользователя.
+
Запрос из CRM в Oktell на возврат комментария из контента текущей сессии, в которой участвует канал указанного пользователя.
+
<pre>
 
     [
 
     [
 
     "getchaincontentcustomfield",
 
     "getchaincontentcustomfield",
Строка 2334: Строка 2497:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getchaincontentcustomfieldresult
+
-> getchaincontentcustomfieldresult<br>
Ответ из Oktell в CRM. Возвращает комментарий из контента текущей сессии, в которой участвует канал указанного в запросе пользователя.
+
Ответ из Oktell в CRM. Возвращает комментарий из контента текущей сессии, в которой участвует канал указанного в запросе пользователя.
+
<pre>
 
     [
 
     [
 
     "getchaincontentcustomfieldresult",
 
     "getchaincontentcustomfieldresult",
Строка 2350: Строка 2514:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getcallingoutabonentinfo
+
<- getcallingoutabonentinfo<br>
Запрос из CRM в Oktell на возврат информации об абоненте, которому осуществляется исходящий вызов от имени указанного пользователя.
+
Запрос из CRM в Oktell на возврат информации об абоненте, которому осуществляется исходящий вызов от имени указанного пользователя.
+
<pre>
 
     [
 
     [
 
     "getcallingoutabonentinfo",
 
     "getcallingoutabonentinfo",
Строка 2363: Строка 2529:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getcallingoutabonentinforesult
+
-> getcallingoutabonentinforesult<br>
Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя.
+
Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя.
+
<pre>
 
     [
 
     [
 
     "getcallingoutabonentinforesult",
 
     "getcallingoutabonentinforesult",
Строка 2381: Строка 2548:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getusersbynumbers
+
<- getusersbynumbers<br>
Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя.
+
Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя.
+
<pre>
[
+
  [
 
     "getusersbynumbers",
 
     "getusersbynumbers",
 
     {
 
     {
Строка 2400: Строка 2569:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getusersbynumbersresult
+
-> getusersbynumbersresult<br>
Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
+
Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
+
<pre>
 
     [
 
     [
 
     "getusersbynumbersresult",
 
     "getusersbynumbersresult",
Строка 2426: Строка 2596:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getitemsbynumbers
+
<- getitemsbynumbers<br>
Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя.
+
Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя.
+
<pre>
[
+
  [
 
     "getitemsbynumbers",
 
     "getitemsbynumbers",
 
     {
 
     {
Строка 2445: Строка 2617:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getitemsbynumbersresult
+
-> getitemsbynumbersresult<br>
Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
+
Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
+
<pre>
 
     [
 
     [
 
     "getitemsbynumbersresult",
 
     "getitemsbynumbersresult",
Строка 2478: Строка 2651:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getsystemnumberbyuser
+
<- getsystemnumberbyuser<br>
Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя.
+
Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя.
+
<pre>
 
     [
 
     [
 
     "getsystemnumberbyuser",
 
     "getsystemnumberbyuser",
Строка 2495: Строка 2670:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getsystemnumberbyuserresult
+
-> getsystemnumberbyuserresult<br>
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
+
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
+
<pre>
 
     [
 
     [
 
     "getsystemnumberbyuserresult",
 
     "getsystemnumberbyuserresult",
Строка 2511: Строка 2687:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getpbxnumbersforitem
+
<- getpbxnumbersforitem<br>
Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя.
+
Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя.
   
+
<pre>
[
+
  [
 
     "getpbxnumbersforitem",
 
     "getpbxnumbersforitem",
 
     {
 
     {
Строка 2527: Строка 2705:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
  
-> getpbxnumbersforitemresult
+
-> getpbxnumbersforitemresult<br>
Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса.
+
Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса.
+
<pre>
 
     [
 
     [
 
     "getpbxnumbersforitemresult",
 
     "getpbxnumbersforitemresult",
Строка 2544: Строка 2723:
 
     }
 
     }
 
     ]
 
     ]
 
+
</pre>
 +
<pre>
 
     /*  "itemtype": "line",
 
     /*  "itemtype": "line",
 
     /*  "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
 
     /*  "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
 
     /*  "itemlinenumber": "17004"
 
     /*  "itemlinenumber": "17004"
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getmainpbxnumberforitem
+
<- getmainpbxnumberforitem<br>
Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре.
+
Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре.
   
+
<pre> 
[
+
  [
 
     "getmainpbxnumberforitem",
 
     "getmainpbxnumberforitem",
 
     {
 
     {
Строка 2564: Строка 2746:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
  
-> getmainpbxnumberforitemresult
+
-> getmainpbxnumberforitemresult<br>
Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса.
+
Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса.
+
<pre>
 
     [
 
     [
 
     "getmainpbxnumberforitemresult",
 
     "getmainpbxnumberforitemresult",
Строка 2581: Строка 2764:
 
     }
 
     }
 
     ]
 
     ]
 
+
</pre>
 +
<pre>
 
     /*  "itemtype": "line",
 
     /*  "itemtype": "line",
 
     /*  "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
 
     /*  "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
 
     /*  "itemlinenumber": "17004"
 
     /*  "itemlinenumber": "17004"
 +
</pre>
 +
  
 
-------------------------------------------------------------------
 
-------------------------------------------------------------------
<- getpbxnumbers
+
<- getpbxnumbers<br>
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
+
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
   
+
<pre>
[
+
  [
 
     "getpbxnumbers",
 
     "getpbxnumbers",
 
     {
 
     {
Строка 2596: Строка 2782:
 
       "mode": "simple"
 
       "mode": "simple"
 
     }
 
     }
    ]
+
  ]
 +
</pre>
  
<- getpbxnumbers
+
 
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
+
<- getpbxnumbers<br>
+
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
 +
<pre>
 
     [
 
     [
 
     "getpbxnumbers",
 
     "getpbxnumbers",
Строка 2610: Строка 2798:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getpbxnumbersresult
+
-> getpbxnumbersresult<br>
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде.
+
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде.
+
<pre>
 
     [
 
     [
 
     "getpbxnumbersresult",
 
     "getpbxnumbersresult",
Строка 2634: Строка 2823:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 
 
  
<- getpbxnumbers
+
<- getpbxnumbers<br>
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
+
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
 
+
<pre> 
 
     [
 
     [
 
     "getpbxnumbers",
 
     "getpbxnumbers",
Строка 2646: Строка 2836:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
 +
 
 
<- getpbxnumbers
+
<- getpbxnumbers<br>
 
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
 
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
+
<pre>
 
     [
 
     [
 
     "getpbxnumbers",
 
     "getpbxnumbers",
Строка 2659: Строка 2851:
 
     }
 
     }
 
     ]
 
     ]
 +
</pre>
  
 
 
-> getpbxnumbersresult
+
-> getpbxnumbersresult<br>
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями.
+
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями.
+
<pre>
 
     [
 
     [
 
     "getpbxnumbersresult",
 
     "getpbxnumbersresult",
Строка 2688: Строка 2881:
 
     }
 
     }
 
     ]
 
     ]
 
+
</pre>
    /* number:type - intRule(0)|intFast(2)|intIVR(3)|intEmergency(4)
+
<pre>
    /* number:state - usDisconnected(0)|usReady(1)|usLunch(2)|usOff(3)|usFullbusy(5)|usReserved(6)|usWOPhone(7)|usError(100)|usRinging(201)
+
/* 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>

Версия 13:37, 18 апреля 2012

В рамках настоящей статьи рассматриваются вопросы интеграции web-системы и коммуникационной системы. Web система на рабочем месте сотрудника используется через браузер. Телефон, находящийся на рабочем месте сотрудника подключен к серверу (узлу коммутаций) Oktell. Задача: объединить две системы функционально, предоставив возможности приема и совершения звонков и управления телефоном из интерфейсов WEB системы.


КРАТКОЕ ОПИСАНИЕ ВОЗМОЖНОСТЕЙ ТЕЛЕФОНИИ ОКТЕЛ

Стандартный функционал октелла предоставляет пользователям:

  1. доступ к управлению телефонами (позвонить, переключить, отклонить звонок, организовать конференцию, пригласить других участников в конференцию, подключиться к разговору в режиме прослушивания, помощи и т.д.).
  2. доступ к управлению состояниями пользователей (перерыв - чтобы поток входящих звонков не поступал, занят - чтобы отметить факт обработки звонка, переадресация - чтобы все звонки на #пользователя перенаправлялись в соответствии с настроенными правилами, готов - чтобы вернуться к обычному режиму).
  3. информацию о текущем состоянии телефонов, внутренних номеров, пользователей с т.з. занятости в операциях телефонии.
  4. информацию о поступающем звонке, абоненте
  5. доступ к статистике разговоров (по правам).
  6. доступ к записям разговоров (по правам).
  7. доступ к информации об ожидающей очереди абонентов в реальном времени.
  8. доступ к управлению режимом переадресации.

и т.д.


В рамках настройки сценариев октелла, имеется возможность отправлять синхронные и асинхронные запросы в веб-систему (фактически исполнять методы по событиям в октелле)и получать ответы и применять их в рамках проведения маршрутизации или любых других действий, реализуемых в сценариях. Например:

  1. Выяснить, какому клиенту/контакту принадлежит определившийся номер телефона или введенный им вручную с помощью DTMF-набора номер договора, отфильтровать по черному списку, переключить вызов на ответственного за работу с этим контактом пользователя, если пользователя нет в системе - переключить на секретаря, а если контакт новый - соединить с отделом продаж. Если ответственный пользователь занят, предложить оставить голосовое сообщение для VIP клиентов.
  2. В момент поступления звонка открыть карточку у пользователя, которому звонок поступает. Закрыть ее автоматически, если пользователь так и не снял трубку (а снял кто-то другой, или звонок потерялся).
  3. Выполнить какое-то важное с т.з. веб-системы действие в случае, например, если пользователь оставил заказ на встречный звонок, занести его в список задач.


Именно сценарии придают жизнь и востребованность октеллу и его сервисов Среди событий октелла, отрабатываемых в сценариях^

  1. поступление внешнего звонка.
  2. завершение звонка.
  3. переключение абонента на пользователя, группу пользователей, задачу коллцентра.
  4. любое из интересующих явлений в ходе обработки звонка (от преобразования номера абонента в нужный формат и сверки времени поступления звонка до обработки контента звонка после завершения и выявления там факта состоявшейся конференции).
  5. наступление определенного времени.
  6. периодический запуск по таймеру.
  7. поступление/отправка e-mail.
  8. поступление/отправка sms/icq/jabber.
  9. контрольные события коллцентра (оператор первым положил трубку, оператор слишком долго находится в перерыве или поствызывной обработке, число операторов в задаче меньше минимально допустимого, число абонентов в очереди задачи больше допустимого и т.д.)
  10. ручной запуск сценария по инициативе пользователя или веб-системы.
  11. исходящий звонок от пользователя
  12. поступление голосовой почты
  13. появление где-то в базе данных интересующего события (например появление новой записи в таблице абонентов)
  14. появление где-то на веб-ресурсе интересующего события (например температура на улице опустилась ниже нуля)

и т.д.


ПРЕДЛАГАЕМАЯ СХЕМА ИНТЕГРАЦИИ

Socket 1.jpg

рис.1


Сервер октелл взаимодействует с телефонами и с веб-сервером CRM. Веб-сервер CRM взаимодействует ответно с сервером Октелл и с браузерами.

Первая проблема, предшествующая проведению обмену функционалом - сопоставление конкретных пользователей с конкретными телефонными устройствами. Почему это проблема: элементы управления устройством находятся в браузере, а влияют они на поведение конкретного телефона. Например, простейшая задача перевода звонка из браузера на врача Михайлова. Звонок должен поступить на телефон, находящийся в кабинете 103, за компьютером в котором сейчас сидит Михайлов (в браузере открыта веб-система и авторизован Михайлов)

Пользователи могут работать - стационарно каждый за своим компьютером. - перемещаться с одного рабочего место за другое. - работать посменно за одним рабочим местом. (Рабочее место = компьютер + телефон)

Необходимо в каждый момент времени знать, около какого телефона какой пользователь сидит.

Существуют два подхода к решению.

1. Жесткая привязка пользователя к телефонной учетной записи.

+: При взаимодействии октелла и веб-системы используются одни и те же идентификаторы (например логины пользователей), соответственно отсутствует проблема привязки как таковая.

-: Пользователь вынужден перемещаться с одного компьютера на другой вместе со своим телефоном, или переназначая учетную запись в телефонном аппарате.


2. Телефон привязывается к компьютеру, а в момент логина пользователя сопоставление производится через этот компьютер.

+: Кто бы ни залогинился с этого компьютера, приобретает управление телефоном, все звонки пользователю попадают на этот телефон.

-: Требует указания одного из постоянных идентификаторов компьютера в октелле, а также передачи его из веб-системы в момент логина для привязки. Это может быть айпи адрес, хостнейм или любой другой постоянный идентификатор.

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

Ограничение: Октелл не позволяет пользователям логиниться с разных рабочих мест одновременно. Делается это для того, чтобы каждому пользователю соответствовало не более одного телефона.


Socket 3.jpg

рис.4

Все взаимодействие между октеллом и веб системой идет по общему каналу путем обмена сообщениями. В каждом из сообщений должен присутствовать идентификатор, позволяющий различать одинаковые, но направляемые от разных пользователей команды из веб-системы в октелл и наоборот соответственно. В качестве идентификатора в зависимости от реализуемой схемы привязки могут выступать пользователь (например его логин) или рабочее место (его постоянный идентификатор).

Октелл генерирует события. Октелл производит запросы к веб-системе. Веб-система отправляет ответы на получаемые запросы.

Веб-система производит запросы к октеллу. В том числе и команды. Октелл отправляет ответы на запросы.

Взаимодействие на транспортном уровне происходит по websocket ([rfc6455 v13], [v8], [v7], [75] или [76]). Но может также происходить по http или udp. Формат представления сообщений json или xml. Формат самих сообщений определяется непосредственно протоколом интеграции. Например вот так выглядит сообщение из октелла в веб-систему о факте входящего вызова в формате json:


Json.jpg

рис.5

Для исполнения динамических методов в веб-срм по событиям в октелле существует запрос, в ответ на который веб-система перечисляет список действий, инициативу исполнения которых она готова отдать наружу в октелл. При описании метода упоминаются человеческое название, краткий код метода, описание для администратора, настраивающего октелл, список входных параметров с упоминанием типов (и возможных значений для перечислений), список выходных параметров, если метод возвращает данные и призван влиять на алгоритм сценария в октелле, признак того, нужно ли исполнять метод с привязкой к конкретному пользователю, или это обращение к серверу вообще, разрешено ли отменять исполнение (например для метода «открыть карточку такую-то» возможна отмена, означающая «закрыть карточку такую-то»), куда октеллу гнать запрос - через сокет (стандартный для взаимодействия канал) или по http на альтернативный url веб-сервера.


Соответственно, когда настраивается сценарий в октелле, администратором определяется одно или несколько из доступных действий, определяется момент исполнения, определяются входные параметры или способ их вычисления, а также режим ожидания или асинхронного выполнения. В рантайм октеллом отправляется команда на исполнение в соответствии с определенными админом настройками. Если метод призван исполняться синхронно и возвращать некие значения, то сценарий приостанавливается, а после получения ответа сохраняет результаты в переменных сценария и продолжает выполнение.


WEB-SOCKET ПРОТОКОЛ

Между октеллом и веб-сервером CRM-системы существует один канал для обмена сообщениями. Все сообщения имеют идентификаторы для организации серий типа “запрос-ответ”. Сообщения могут адресоваться конкретному пользователю или относиться к общим. В первом случае указывается идентификатор/логин пользователя. Касается обоих направлений пересылки.

Установка соединения может производиться как октеллом, так и веб-сервером CRM-системы. В случае разрыва соединения сторона-инициатор вновь организует подключение. Рукопожатие на установление web-socket соединения предлагается также стороной-инициатором. Подробнее http://ru.wikipedia.org/wiki/WebSocket.

Каждое сообщение представляет из себя строку XML или JSON в кодировке UTF8. Сообщения в общем потоке данных в канале отделяются друг от друга байтами 0 и 255. 0 - в начале сообщений, 255 в конце. Форматы XML и JSON представления данных в текстовом виде гарантируют отсутствие байтов 0 и 255 в теле сообщений.

Сообщения длиной более 64К упаковываются в Base64 и разбиваются на несколько сообщений длиной до 64К. Формат multipart сообщения определен отдельно.

После установки соединения системы обмениваются данными друг о друге, об авторизованных пользователях, о динамических методах.

Структура каждого сообщения - это список из двух объектов, первый из которых - тип сообщения, второй - словарь параметров. В словаре обязательно присутствует идентификатор запроса (любое текстовое уникальное значение). В случае, когда сообщение производится от имени пользователя, присутствуют его идентификаторы (userid, userlogin).


Среди параметров находятся и индивидуальные параметры сообщения. Поддерживается произвольная вложенность объектов: строк, чисел, дат, словарей, списков.


СПИСОК МЕТОДОВ ИНТЕРФЕЙСА

Взаимодействие происходит путем обмена сообщениями по установившемуся между серверами транспортному каналу. Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение представляет собой байтовое представление текста с escape-последовательностями, описывающего объект в виде структуры JSON (возможен вариант XML), преобразованного через кодировку UTF8.

На первом уровне объекта - массив из двух значений: строковый кодовый идентификатор сообщения, именованный список параметров:

[ "messagecode", {"var1":"value1", "var2":"value2", ...} ]

В общем случае среди параметров могут присутствовать сложные объекты (массивы и словари):

"var1":["a", "b", "c"]  или "var2":{"a":1, "b":2, "c":3}

В каждом сообщении присутствует параметр "qid", содержащий уникальный строковый идентификатор сообщения, обеспечивающий возможность построения из сообщений серий вида запрос-ответ. В случае, когда сообщение относится к конкретному пользователю (отправляется от его имени), в нем присутствуют параметры "userlogin" и "userid". По умолчанию синхронизация учетных записей пользователей происходит по их уникальным логинам (так проще).

Если транспортный канал единый (например websock), то сообщения разделяются последовательностью байтов 255 и 0, то есть 0 добавляется к сообщению в начало, 255 в конец. При необходимости длинные сообщения разбиваются на несколько более мелких, каждое из которых не превышает 64кБ.


ОБМЕН ДАННЫМИ ОБ АКТИВНЫХ ПОЛЬЗОВАТЕЛЯХ.


-> getactiveusers
Запрос из Октелла в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения.

[
 "getactiveusers",
 {
  "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7"
 }
]


-> activeusers
Ответное сообщение из CRM в Октелл со списком активных авторизованных пользователей CRM.

[
 "activeusers",
 {
  "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7",
  "users": [
   {"userlogin": "ivanov", "userid": "20394857203948752345"},
   {"userlogin": "petrov", "userid": "kasjdfhlaksjdfhlaks"},
   {"userlogin": "sidorov", "userid": "987495873948573945"}
  ]
 }
]



<- login
Сообщение из CRM в Октелл об авторизации пользователя. Запрос кросс-авторизации в Октелле.

	
[
 "login",
 {
  "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
  "userlogin": "ivanov",
  "userid": "29834234234"
 }
]


-> loginresult
Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Октелле, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers.

[
 "loginresult",
 {
  "qid": "939AA33E-011F-4FEC-B60A-8BC1B4888B5A",
  "userlogin": "ivanov",
  "userid": "29834234234",
  "result": 0,
  "error": 50093,
  "errormsg": "Пользователь уже зарегистрирован"
 }
]



<- logout
Сообщение из CRM в Октелл о выходе (логауте) пользователя. Команда на кросс-логаут в Октелле.

[
 "logout",
 {
  "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
  "userlogin": "ivanov",
  "userid": "29834234234"
 }
]


-> logoutresult
Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Октелле, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано).

[
 "logoutresult",
 {
  "qid": "4B25E210-2D67-4675-A5AE-46DC9CBC32F9",
  "userlogin": "ivanov",
  "userid": "29834234234",
  "result": 1
 }
]



-> pbxnumberstatechanged
Сообщение из Октелл о смене состояния внутреннего номера (или группы внутренних номеров)

[
 "pbxnumberstatechanged",
 {
  "qid": "5B9508DF-565B-44E1-A122-6FEB70ADA0B9",
  "numbers": [
   {"num": "425", "numstateid": 3},
   {"num": "427", "numstateid": 2},
   {"num": "#82", "numstateid": 3}
  ]
 }
]


ОБМЕН СОСТОЯНИЯМИ ПОЛЬЗОВАТЕЛЕЙ


-> userstatechanged
Сообщение из Октелла в CRM о смене состояния пользователя в Октелле. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо.

[
 "userstatechanged",
 {
  "qid": "66F8D479-0234-47DF-B043-3A065FF464A7",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "userstateid": 2,
  "onredirect": true,
  "onlunch": false,
  "oncallcenter": false
 }
]



<- setuserstate
Запрос из CRM к Октеллу на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged.

	
[
 "setuserstate",
 {
  "qid": "2A45010A-8EEA-4876-90CB-F062459D4BE2",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "userstateid": 2,
  "onredirect": false,
  "lunchreasonid": 120,
  "lunchreasonmsg": ""
 }
]
//* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва. id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел.



<- entercallcenter
Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.

[
 "entercallcenter",
 {
  "qid": "7DD2ED7A-B6BF-4988-A780-99719C65CA5D",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]


<- exitcallcenter
Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.

[
 "exitcallcenter",
 {
  "qid": "6E899456-C373-48EB-949E-E2C0D79D45EA",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]


ТЕКСТОВЫЙ ЧАТ


-> usertextmessagereceived
Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата.

[
 "usertextmessagereceived",
 {
  "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "messageid": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
  "snduserlogin": "Петров",
  "snduserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
  "sndusername": "Петров Антон Григорьевич",
  "messagetext": "раз два три четыре пять вышел зайчик погулять",
  "messagedate": "2011-03-27 14:12:28",
 }
]


-> usertextmessageviewed
Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения.

[
 "usertextmessageviewed",
 {
  "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "vieweduserid": "66D12297-E400-4862-BD24-F6DACCFDF9DA",
  "messageids": [
    "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
    "4B5110FD-899B-4429-A659-2B9695B4D89E"
  ]
 }
]


<- sendusertextmessage
Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю.

[
 "sendusertextmessage",
 {
  "qid": "F14F31B7-F203-4462-975F-3A37DD16240B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "messageid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
  "recvuserlogin": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
  "recvuserid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
  "messagetext": "раз два три четыре пять вышел зайчик погулять",
 }
]


<- setusermessageviewed
Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid.

[
 "setusermessageviewed",
 {
  "qid": "AA29AE60-50C3-48EE-A32E-3D98265D7412",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "senderuserid": "689BD58D-2288-4E93-8647-58FB0756F3CA",
  "messageids": [ 
    "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240", 
    "4748964E-9ADC-4999-9ACB-12B8B46660CF" 
  ]
 }
]


ГОЛОСОВАЯ ПОЧТА


-> voicemailreceived
Сообщение из Октелла в CRM о факте поступления голосовой почты на ящик пользователя.

[
 "voicemailreceived",
 {
  "qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]


ВСПЛЫВАЮЩИЕ УВЕДОМЛЕНИЯ


-> shownotifymessage
Сообщение(запрос) из Октелла об уведомлении пользователя по аналогии с всплывающими Октелловскими уведомлениями

[
 "shownotifymessage",
 {
  "qid": "99CC8C57-1793-486A-AFB1-6E5CA3E6855E",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "sender": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
  "text": "Петров",
  "autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
  "type": 262144,
  "backcolor": "00FF0000",
  "uniquekey": "E7899B61-55C3-4007-91EE-DDB348913AA8",
 }
]
//* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это)
//* backcolor - hex AARRGGBB
//* type - тип сообщения из флагового списка кратных двойке кодов


СООБЩЕНИЯ ОТ АТС


-> phoneevent_ringstarted
Сообщение из Октелла в 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
Сообщение из Октелла в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился.

[
 "phoneevent_ringstopped",
 {
  "qid": "BEB91146-BA27-4236-9CAC-EF562719E7E5",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718"
 }
]



-> phoneevent_commstarted
Сообщение из Октелла в 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
Сообщение из Октелла в 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
Сообщение из Октелла в 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
Сообщение из Октелла в CRM о завершении соединения с IVR сценарием.

	
[
 "phoneevent_ivrstopped",
 {
  "qid": "FC9DD78C-1A5F-4E06-9AB5-A9CEDE025F6A",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]



-> phoneevent_acmcallstarted
Сообщение из Октелла в 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
Сообщение из Октелла в CRM об остановке автодозвона.

   [
    "phoneevent_acmcallstopped",
    {
     "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0",
     "userlogin": "Иванов",
     "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
     "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
    }
   ]



-> phoneevent_faxstarted
Сообщение из Октелла о начале факс-сеанса на оппозитном канале.

   [
    "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
Сообщение из Октелла о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там).

   [
    "phoneevent_faxstopped",
    {
     "qid": "324CD087-BC2D-4FF3-A9BD-86A7276A4DED",
     "userlogin": "Иванов",
     "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
     "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
     "result": 0,
     "error": 65289,
     "errormsg": "NoFaxPages"
    }
   ]



-> phoneevent_faxreceived
Cообщение из Октелла о завершении приема факса со ссылками на файлы.

   [
    "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 к Октеллу на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя.

[
 "pbxautocallstart",
 {
  "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "number": "425",
  "direction": "int",
  "sequence": "abonent"
 }
]
//* direction: int, ext, undefined, -
//* sequence: abonent, user, -


-> pbxautocallstartresult
Ответ из Октелла в 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 к Октеллу на прекращение автодозвона

[
 "pbxautocallabort",
 {
  "qid": "28BF3E8F-1F97-47AB-BD42-92D174D4A705",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]



<- pbxtransfercall
Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер.

[
 "pbxtransfercall",
 {
  "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "number": "425",
  "direction": "int",
  "sequence": "abonent"
 }
]


-> pbxtransfercallresult
И аналогичный ответ из Oktell в CRM.

	
[
 "pbxtransfercallresult",
 {
  "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "number": "425",
  "direction": "int",
  "sequence": "abonent",
  "result": 0,
  "error": 5,
  "errormsg": "cntNumberNotFound"
 }
]



-> pbxdeclinecall
Запрос из CRM к Октеллу на отклонение звонка.

	
[
 "pbxdeclinecall",
 {
  "qid": "0AFB2B0C-A68F-448B-9B4B-AB42096D4E95",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]



<- pbxabortcall
Запрос из CRM к Октеллу на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен.

[
 "pbxabortcall",
 {
  "qid": "53F2EE86-46AF-4A37-8C60-2F27EADD10DE",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]



<- pbxmakeflash
Запрос из CRM в Октелл на программную эмуляцию флэш.

[
 "pbxmakeflash",
 {
  "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
 }
]


ЗАПУСК СЛУЖЕБНОГО СЦЕНАРИЯ


<- startsvcscript
Запрос из CRM в Октелл на запуск служебного сценария.

[
 "startsvcscript",
 {
  "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "scriptname": "Служебный сценарий получения почты",
  "startparam1": "значение параметра 1",
  "startparam2": "значение параметра 2",
  "startparam3": "значение параметра 3",
  "startparam4": "значение параметра 4",
  "startparam5": "значение параметра 5",
  "waitresponse": true,
  "waittimeoutsec": 10
 }
]


-> startsvcscriptresult
Ответ Октелла на запрос запуска служебного сценария.

[
 "startsvcscriptresult",
 {
  "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "scriptname": "Служебный сценарий получения почты",
  "result": 0,
  "returnvalue": "присвоенный в сценарии результат",
  "error": 10
 }
]
//*   error: 10 - файл не найден, 11 - исключение, 12 - таймаут



ДИНАМИЧЕСКОЕ ВЗАИМОДЕЙСТВИЕ.

Информация от CRM о поддерживаемых методах, доступных Октеллу для инициации исполнения.

Общая идея: В момент создания сценариев в Октелле администратор имеет возможность настроить взаимодействие с CRM. Взаимодействие представляет собой вызов определенного метода с передачей в него входных параметров, и возможно ожидание его исполнения с возвратом [нескольких] выходных значений. При организации подключения Октелл-сервера к CRM-серверу, Октеллом производится запрос доступных в CRM методов. По каждому методу дополнительно описывается перечень входных и выходных параметров, их типы, способ исполнения метода (по организованному каналу или отдельным http-подключением), возможность его отмены (для длительных операций, например метод "открыть диалоговую форму" может быть отменен обратным методом "закрыть диалоговую форму", а может быть прерван с тем же результатом). В интеграционном интерфейсе отсутствует таким образом необходимость конкретизировать методы CRM. В момент настройки сценария администратор уже имеет о них информацию и настраивает конкретный сценарий под место.

Для примера: в момент поступления вызова Октелл определил номер абонента. Производит синхронное исполнение динамического метода CRM "вернуть ид компании по номеру телефона", дожидается ответа и принимает в сценарий значение. Далее исполняет динамический метод "Ответственный сотрудник", дожидается ответа и принимает в сценарий значение. Все это время абоненту проигрывается приветствие. Когда воспроизведение завершается, Октелл производит маршрутизацию в соответствии с вернувшимися значениями, а также в момент поступления звонка сотруднику исполняет динамический метод "открыть карточку компании" с передачей в качестве параметра идентификатора, вернувшегося на первом шаге. В случае, если сотрудник не снимает трубку, Октелл отменяет исполнение метода, тем самым отдавая команду на закрытие карточки компании. Ни об одном из перечисленных в примере методов CRM Октелл не знает, зато знает администратор, настраивающий систему на работу совместно с CRM.

Серия методов 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
Сообщение-команда из Октелл в 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 в Октелл с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod.

	
[
 "methodresult",
 {
  "qid": "A238110C-6B74-4980-AA23-41402B1E9B0E",
  "methodkey": "createrecord",
  "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
  "outputparameters": {
   "recordid": "ADCB1376-BA66-496C-A56E-AB7A7D5A9193"
  }
 }
]



-> cancelmethod
Сообщение-команда из Октелл на прекращение выполнения ранее запущенного динамического метода.

[
 "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
Сообщение-команда из Октелл в 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 в Октелл при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой 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
Сообщение-команда из Октелл на закрытие карточки у конкретного пользователя.

[
 "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, ответы от Октелла, события из Октелла


<- confhandleevent
Подписка/отписка на указанную категорию событий сервера конференций.

[
 "confhandleevent",
 {
  "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
  "eventtype": "competitors",
  "handle": true
 }
]
//* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates
//			предполагается, что в общем случае инфа идет только о списке конференций (conferences)
//          когда юзер находится в конференции - дополнительно о внутреннем состоянии конференции (competitors)
//			когда юзер настраивает конференцию и выбирает из списка участников для автоматического приглашения - о состояниях всех пользователей (userstates)
//        Подписками управляет сам внешний модуль. Когда потребность уходит - необходимо отписываться, чтобы не заваливать канал порожняком.
//* handle - true|false - подписаться/отписаться



<- checkcanconnecttogathertoconference
Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь.

[
 "checkcanconnecttogathertoconference",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
 }
]


-> confcheckcanconnecttogatherresult
Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию.

[
 "confcheckcanconnecttogatherresult",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "canconnecttogather": true,
  "inconference": false,
 }
]



<- connecttogathertoconference
Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию.

[
 "connecttogathertoconference",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
 }
]



<- buildconferencefromcommutation
Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками.

[
 "buildconferencefromcommutation",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
 }
]



<- attachasghost
Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь.

[
 "attachasghost",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "ghostedid": "FE9D6B52-C267-4D39-AC9F-81A0F44713FF",
  "ghostedlogin": "Петров"
 }
]


-> attachasghostresult
Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку.

[
 "attachasghostresult",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
  "result": 0,
  "error": 52703
 }
]
//* ghostedid - ид пользователя или линии, к которому подцепляться для прослушки
//* ghostedlogin - логин пользователя, к которому подцепляться для прослушки



<- getconferences
Запрос из CRM в Oktell на возврат текущих активных конференц-сессий.

[
 "getconferences",
 {
  "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
  "userlogin": "Иванов",
  "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
 }
]


-> getconferencesresult
Ответ из Oktell в CRM со списком текущих активных конференц-сессий.

    [
     "getconferencesresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferencelist": [
       {
        "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
        "room": 884,
        "name": "Планерка",
        "description": "",
        "accessmode": 11,
        "accessmodestr": "Free",
        "isselector": true,
        "record": true,
        "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
        "creatorlogin": "Иванов",
        "creatorname": "Иван Иванович Иванов", 
        "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "directorlogin": "Петров",
        "directorname": "Петр Петрович Петров",
        "timestart": "2011-04-03 17:58:22",
        "canvieweachother": true,
        "everyonecaninvite": true,
        "recordrights": 2,
        "recordrightsstr": "Competitors",
        "isghost": false,
        "ghostmode": 11,
        "ghostmodestr": "Monitor"
       },
       {...},
       {...}
      ]
     }
    ]



<- getconferencecompetitors
Запрос из CRM в Oktell на возврат текущих участников указанной конференции.

    [
     "getconferencecompetitors",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22"
     }
    ]


-> getconferencecompetitorsresult
Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции.

	
    [
     "getconferencecompetitorsresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22",
      "competitorlist": [
       {
        "competitorid": "65AC0E98-64DE-41CF-B609-D00A4C8B07FD",
        "chainid": "91687102-E19F-466C-A0BE-B6C3EEF83EE7",
        "sessionid": "91687102-E19F-466C-A0BE-B6C3EEF83EE7",
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "username": "Петр Петрович Петров",
        "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "linenumber": "17004",
        "number": "472",
        "intnumber": "472",
        "extnumber": "",
        "confstate": 11,
        "confstatestr": "OnlineTalking",
        "wanttalk": false,
        "isdirector": true,
        "iscreator": false,
        "isghost": false,
        "isghostmajor": false,
        "islifebuoy": false
       },
       {...},
       {...}
      ]
     }
    ]



<- getusersforconferenceinvitelist
Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях).

    [
     "getusersforconferenceinvitelist",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
     }
    ]


-> getusersforconferenceinvitelistresult
Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях.

    [
     "getusersforconferenceinvitelistresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "possiblecompetitorlist": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "username": "Петр Петрович Петров",
        "groupid": "F72C315A-F9EA-471E-A679-D4BA4797DB51",
        "groupname": "Руководство"
        "userstate": 5,
        "userstatestr": "usFullbusy",
        "isredirect": false,
        "islunch": false,
        "inconference": true,
        "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22",
        "confstate": 11,
        "confstatestr": "OnlineTalking"
       },
       {...},
       {...}
      ],
      "result": 1
     }
    ]



<- createnewconference
Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте.

	
    [
     "createnewconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conference": {
       "id": "17A3F9D2-040C-471B-A4F5-6A13BEB27667",
       "room": 578
       "name": "Совещание с заказчиком",
       "description": "",
       "accessmode": "free",
       "isselector": true,
       "record": true,
       "recordrights": "selected",
       "everyonecaninvite": true,
       "canvieweachother": true
      },
      "competitors": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "intnumber": "472",
        "extnumber": "89047289889",
        "cantalk": true
       },
       {...},
       {...}
      ],
      "recordusers": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
       },
       {...},
       {...}
      ]
     }
    ]


-> createnewconferenceresult
Ответ из Oktell в CRM с результатом исполнения команды на создание конференции.

    [
     "createnewconferenceresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 0,
      "error": 1,
      "errormsg": "alreadyexists",
     }
    ]
//* conference:accessmode - free|shared|closed
//* conference:recordrights - director|competitors|selected
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
//* список recordusers имеет смысл только когда conference:recordrights=selected.



<- setupexistingconference
Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции.

    [
     "setupexistingconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conference": {
       "id": "17A3F9D2-040C-471B-A4F5-6A13BEB27667",
       "room": 578
       "name": "Совещание с заказчиком",
       "description": "",
       "accessmode": "free",
       "isselector": true,
       "recordrights": "selected",
       "everyonecaninvite": true,
       "canvieweachother": true,
       "ghostmode": "monitor"
      },
      "recordusers": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
       },
       {...},
       {...}
      ]
     }
    ]


-> setupexistingconferenceresult
Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции.

	
    [
     "setupexistingconferenceresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 0,
      "error": 1,
      "errormsg": "notfound",
     }
    ]
    //* conference:accessmode - free|shared|closed
    //* conference:recordrights - director|competitors|selected
    //* conference:ghostmode - monitor|help|talk
    //* список recordusers имеет смысл только когда conference:recordrights=selected.



<- getconferenceinfo
Запрос из CRM в Oktell на возврат текущих параметров указанной конференции.

    [
     "getconferenceinfo",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
     }
    ]


-> getconferenceinforesult
Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния.

    [
     "getconferenceinforesult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 1,
      "conference": {
        "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
        "room": 884,
        "name": "Планерка",
        "description": "",
        "accessmode": 11,
        "accessmodestr": "Free",
        "isselector": true,
        "record": true,
        "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
        "creatorlogin": "Иванов",
        "creatorname": "Иван Иванович Иванов", 
        "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "directorlogin": "Петров",
        "directorname": "Петр Петрович Петров",
        "timestart": "2011-04-03 17:58:22",
        "canvieweachother": true,
        "everyonecaninvite": true,
        "recordrights": 2,
        "recordrightsstr": "Competitors",
        "isghost": false,
        "ghostmode": 11,
        "ghostmodestr": "Monitor"
      },
      "competitors": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "intnumber": "472",
        "extnumber": "89047289889",
        "cantalk": true
       },
       {...},
       {...}
      ],
      "recordusers": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
       },
       {...},
       {...}
      ]
     }
    ]



<- stopconference
Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции.

    [
     "stopconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
     }
    ]


-> stopconferenceresult
Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции.

    [
     "stopconferenceresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 0,
      "error": 1,
      "errormsg": "accessdenied"
     }
    ]



<- confsetvoiceparams
Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции.

    [
     "confsetvoiceparams",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "competitor": {
       "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782",
       "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
       "userlogin": "Петров",
       "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
       "cantalk": true,
       "canlisten": true,
       "ghosthelp": false
      }
     }
    ]


-> confsetvoiceparamsresult
Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала.

	
    [
     "confsetvoiceparamsresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 0,
      "error": 1,
      "errormsg": "accessdenied"
     }
    ]
//*  competitor:cantalk - может ли говорить
//*  competitor:canlisten - может ли слышать
//*  competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов - может ли слышать подключившегося супервизора
//*  достаточно/следует указывать только один из набора определяющих участника идентификаторов {competitorid, userid|userlogin, lineid}



<- confsetwanttalk
Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего).

    [
     "confsetwanttalk",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "wanttalk": true
     }
    ]


-> confsetwanttalkresult
Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса.

    [
     "confsetwanttalkresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]



<- confsetghostmode
Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи.

    [
     "confsetghostmode",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "ghostmode": "help",
     }
    ]


-> confsetghostmoderesult
Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи.

    [
     "confsetghostmoderesult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]



<- exitconference
Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне.

    [
     "exitconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
     }
    ]


-> exitconferenceresult
Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции.

    [
     "exitconferenceresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]



<- confdisconnectcompetitor
Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника.

	
   [
     "confdisconnectcompetitor",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "competitor": {
       "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782",
       "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
       "userlogin": "Петров",
       "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
      }
     }
    ]


-> confdisconnectcompetitorresult
Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника.

	
    [
     "confdisconnectcompetitorresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]



<- enterconference
Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference

	
   [
     "enterconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
     }
    ]


-> enterconferenceresult
Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию.

	
    [
     "enterconferenceresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]



<- confdisconnectcompetitor
Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа.

		
    [
     "confpermitdenyentrance",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "competitor": {
       "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782",
       "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
       "userlogin": "Петров",
       "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
       "permit": true
      }
     }
    ]


-> confpermitdenyentranceresult
Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику.

	
    [
     "confpermitdenyentranceresult",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]



<- invitetoconference
Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру).

    [
     "invitetoconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "competitors": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "intnumber": "472",
        "extnumber": "89047289889",
        "cantalk": true
       },
       {...},
       {...}
      ]
     }
    ]


-> invitetoconference
Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции.

		
    [
     "invitetoconference",
     {
      "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
      "result": 1
     }
    ]
//* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}


События из Октелла по теме конференций.


-> conflistchanged
Событие из Oktell в CRM об изменении списка текущих активных конференций.

    [
     "conflistchanged",
     {
      "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A",
      "conferencelist": [
       {
        "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
        "room": 884,
        "name": "Планерка",
        "description": "",
        "accessmode": 11,
        "accessmodestr": "Free",
        "isselector": true,
        "record": true,
        "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
        "creatorlogin": "Иванов",
        "creatorname": "Иван Иванович Иванов", 
        "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "directorlogin": "Петров",
        "directorname": "Петр Петрович Петров",
        "timestart": "2011-04-03 17:58:22",
        "canvieweachother": true,
        "everyonecaninvite": true,
        "recordrights": 2,
        "recordrightsstr": "Competitors",
        "isghost": false,
        "ghostmode": 11,
        "ghostmodestr": "Monitor"
       },
       {...},
       {...}
      ]
     }
    ]



-> "conf***"
Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже.

	
    [
     "conf***",
     {
      "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "eventinfo": {
         ***
      }
     }
    ]
    //* confparamschanged, 
    //* confcompositionchanged, 
    //* confcompetitorstatechanged, 
    //* confentrancedenied, 
    //* confentrancepermitted, 
    //* confentrancerequest, 
    //* confnotifyinvite, 
    //* confpossiblecompetitorstatechanged



<- getuserstate
Запрос из CRM в Oktell состояния указанного пользователя системы.

	
    [
     "getuserstate",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
     }
    ]


-> getuserstateresult
Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы.

    [
     "getuserstateresult",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "userstate": 5,
      "userstateid": 5,
      "userstatestr": "usFullbusy",
      "onredirect": true,
      "onlunch": false,
      "oncallcenter": false
     }
    ]



<- checkuserintask
Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра.

		
   [
     "checkuserintask",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
     }
    ]


-> checkuserintaskresult
Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа.

	
    [
     "checkuserintaskresult",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "intask": true,
      "task": {,
       "id": "1D565B41-1D16-46DE-B2C5-CF55ED5279F0",
       "name": "Исходящий обзвон",
       "code": "af-2329",
       "direction": "outgoing",
       "contacttype": 0,
       "contacttypestr": "Call",
       "projectid": "E6ADBA0D-C9FF-40F2-96FF-6D2F455F9D5A"
      }
     }
    ]



<- getcurrentlinestate
Запрос из CRM в Oktell состояния телефонной линии указанного пользователя.

			
    [
     "getcurrentlinestate",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
     }
    ]


-> getcurrentlinestateresult
Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы.

    [
     "getcurrentlinestateresult",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "hasline": true,
      "lineid": "866692FC-DA08-459D-BAA1-428F9BA6A0D1",
      "linenumber": "17012",
      "linetype": 5,
      "linetypestr": "ltIntIP",
      "linestate": 32,
      "linestatestr": "lsCommutated"
     }
    ]



<- getcurrentlinestate
Запрос из CRM в Oktell состояния очереди указанного пользователя.

			
   [
     "getcurrentqueue",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
     }
    ]


-> getcurrentlinestateresult
Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы.

    [
     "getcurrentqueueresult",
     {
      "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "queue": [
       {
        "objectid": "723114EE-2ABF-4806-9BC6-FBB532C31B44",
        "objecttype": 0,
        "objecttypestr": "qotQueueLogic",
        "queuesource": 1,
        "queuesourcestr": "qsLineLogic",
        "queuepriority": 9,
        "srcelementid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "srclineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "srclinenumber": "17004",
        "startqueuetime": "2011-04-05 15:02:28",
        "lenqueue": 72,
        "managedlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
        "managedlinenumber": "17004",
        "callerid": "472",
        "calledid": "479",
        "isuser": true,
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "username": "Петр Петрович Петров",
        "department": "Руководство",
        "chainid": "02B99AD3-C954-4FD3-B07D-DFEDD83C0BF5",
        "istask": true,
        "taskid": "95575C37-5FDE-412C-8F42-36D55B1EC6BB",
        "taskname": "Входящая кампания",
        "taskdirection": "incoming",
        "tasklistid": "7D9A3E9C-0AD3-4C68-BC02-4EBFE3684507",
        "tasklistinfo": [
         {
          "key": "Название организации",
          "value": "ООО МДГХ"
         },
         {...},
         {...}
        ]
       },
       {...},
       {...}
      ]
     }
    ]



<- 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
     }
    ]



<- 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"
     }
    ]



<- getusersbynumbers
Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя.

		
   [
     "getusersbynumbers",
     {
      "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "numbers": [
       "883",
       "470",
       "472",
       "485"
      ]
     }
    ]


-> getusersbynumbersresult
Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.

	
    [
     "getusersbynumbersresult",
     {
      "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 1,
      "users": [
       {
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "username": "Петр Петрович Петров",
       },
       {
        "userid": "2AC66E31-ADF0-4F84-A589-417A5A599EEA",
        "userlogin": "Сидоров",
        "username": "Сидор Сидорович Сидоров"
       }
      ]
     }
    ]



<- getitemsbynumbers
Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя.

   [
     "getitemsbynumbers",
     {
      "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "numbers": [
       "883",
       "470",
       "472",
       "485"
      ]
     }
    ]


-> getitemsbynumbersresult
Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.

	
    [
     "getitemsbynumbersresult",
     {
      "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 1,
      "items": [
       {
        "type": "user",
        "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
        "userlogin": "Петров",
        "username": "Петр Петрович Петров",
       },
       {
        "type": "user",
        "userid": "2AC66E31-ADF0-4F84-A589-417A5A599EEA",
        "userlogin": "Сидоров",
        "username": "Сидор Сидорович Сидоров"
       },
       {
        "type": "line",
        "lineid": "50203B8C-8079-4B52-8D24-ECDA4BF7877A",
        "linenumber": "17025"
       }
      ]
     }
    ]



<- getsystemnumberbyuser
Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя.

    [
     "getsystemnumberbyuser",
     {
      "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "user": {
       "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
       "userlogin": "Петров"
      }
     }
    ]


-> getsystemnumberbyuserresult
Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.

    [
     "getsystemnumberbyuserresult",
     {
      "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "result": 1,
      "systemnumber": "U28CA980EF9F84B83B4934454AA54FCD8"
      ]
     }
    ]



<- getpbxnumbersforitem
Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя.

   [
     "getpbxnumbersforitem",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
      "itemtype": "user",
      "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
      "itemuserlogin: "Петров"
     }
    ]


-> getpbxnumbersforitemresult
Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса.

    [
     "getpbxnumbersforitemresult",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "itemtype": "user",
      "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
      "itemuserlogin: "Петров",
      "itemnumbers": "403, 472"
     }
    ]
    /*  "itemtype": "line",
    /*  "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
    /*  "itemlinenumber": "17004"



<- getmainpbxnumberforitem
Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре.

   
   [
     "getmainpbxnumberforitem",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
      "itemtype": "user",
      "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
      "itemuserlogin: "Петров"
     }
    ]


-> getmainpbxnumberforitemresult
Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса.

	
    [
     "getmainpbxnumberforitemresult",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "itemtype": "user",
      "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
      "itemuserlogin: "Петров",
      "itemnumber": "472"
     }
    ]
    /*  "itemtype": "line",
    /*  "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
    /*  "itemlinenumber": "17004"



<- getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.

   [
     "getpbxnumbers",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "mode": "simple"
     }
   ]


<- getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.

	
    [
     "getpbxnumbers",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "mode": "simple"
     }
    ]


-> getpbxnumbersresult
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде.

    [
     "getpbxnumbersresult",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "mode": "simple",
      "numbers": [
       "401",
       "402",
       "403",
       "404",
       "405",
       "471",
       "472",
       "473"
      ]
     }
    ]


<- getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.

  
    [
     "getpbxnumbers",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "mode": "full"
     }
    ]


<- getpbxnumbers
Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.

    [
     "getpbxnumbers",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "mode": "full"
     }
    ]


-> getpbxnumbersresult
Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями.

    [
     "getpbxnumbersresult",
     {
      "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
      "userlogin": "Иванов",
      "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
      "mode": "full",
      "numbers": [
       {
        "id": "9079E514-FECF-4DFD-BF48-5EDE4241E3A1",
        "number": "472",
        "type": 0,
        "typestr": "intRule",
        "isgroup": false,
        "caption": "Петров",
        "state": 5,
        "statestr": "usFullbusy",
        "department": "Руководство"
       },
       {...},
       {...}
      ]
     }
    ]
/* number:type - intRule(0)|intFast(2)|intIVR(3)|intEmergency(4)
/* number:state - usDisconnected(0)|usReady(1)|usLunch(2)|usOff(3)|usFullbusy(5)|usReserved(6)|usWOPhone(7)|usError(100)|usRinging(201)