Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


astpanel:ats:asterisk:setstatus_v6

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
astpanel:ats:asterisk:setstatus_v6 [2014/06/19 10:28]
apor [Запись в AstDB]
astpanel:ats:asterisk:setstatus_v6 [2018/06/08 09:18] (текущий)
apor [Пример 1C_SetStatus.php]
Строка 3: Строка 3:
  
 ===== Описание ===== ===== Описание =====
 +<note important>​**В этой статье описан алгоритм работы**. Пример реализации описан в [[http://​wiki.miko.ru/​astpanel:​dialplan_miko_ajam | статье]] </​note> ​
 +
 В плане набора должен быть описан контекст **miko_ajam**.\\ В плане набора должен быть описан контекст **miko_ajam**.\\
 В контексте miko_ajam определяется extension с номером ** 10000222**.\\ В контексте miko_ajam определяется extension с номером ** 10000222**.\\
Строка 24: Строка 26:
 // ООО "​МИКО"​ - 2014-03-04  ​ // ООО "​МИКО"​ - 2014-03-04  ​
 // v.1.5 // 1С_Set_Status // 10000222 ​ // v.1.5 // 1С_Set_Status // 10000222 ​
-// Передача статусов пользователей+// Передача статусов пользователей ​
 ------------------------------------------------------- -------------------------------------------------------
 Скрипт протестирован на Askozia v2: Скрипт протестирован на Askozia v2:
Строка 57: Строка 59:
     if($ret['​result'​]==1&&​$ret['​code'​]==200){     if($ret['​result'​]==1&&​$ret['​code'​]==200){
       // успех выполнения операции       // успех выполнения операции
-      $agi->​exec("​UserEvent",​ "​DB_$dbFamily,​сhannel:​$chan,​key:​$key,​val:​$val"​); ​   ​+      $agi->​exec("​UserEvent",​ "​DB_$dbFamily,​chan1c:​$chan,​key:​$key,​val:​$val"​); ​   ​
     }else{ ​   ​     }else{ ​   ​
       // не установлена!       // не установлена!
-      $agi->​exec("​UserEvent",​ "​DB_$dbFamily,​сhannel:​$chan,​key:​$key,​val:"​);​+      $agi->​exec("​UserEvent",​ "​DB_$dbFamily,​chan1c:​$chan,​key:​$key,​val:"​);​
     }     }
    
Строка 77: Строка 79:
   if($ret['​result'​]==1&&​$ret['​code'​]==200){   if($ret['​result'​]==1&&​$ret['​code'​]==200){
     // успех выполнения операции     // успех выполнения операции
-    $agi->​exec("​UserEvent",​ "​DB_$dbFamily,​Channel:​$chan,​key:​$key,​val:​$val"​); ​+    $agi->​exec("​UserEvent",​ "​DB_$dbFamily,​chan1c:​$chan,​key:​$key,​val:​$val"​); ​
   }else{ ​   ​   }else{ ​   ​
     // были ошибки     // были ошибки
-    $agi->​exec("​UserEvent",​ "​Error_data_put_$dbFamily,​Channel:​$chan,​key:​$key,​val:​$val"​); ​+    $agi->​exec("​UserEvent",​ "​Error_data_put_$dbFamily,​chan1c:​$chan,​key:​$key,​val:​$val"​); ​
   }      }   
 }elseif($command=='​show'​){ }elseif($command=='​show'​){
Строка 104: Строка 106:
       if($ch == 20){       if($ch == 20){
           // отправляем данные в 1С, обнуляем буфер           // отправляем данные в 1С, обнуляем буфер
-          $agi->​exec("​UserEvent",​ "​From$dbFamily,​Channel:​$chan,​Date:​$date1,​Lines:​$result"​);​+          $agi->​exec("​UserEvent",​ "​From$dbFamily,​chan1c:​$chan,​Date:​$date1,​Lines:​$result"​);​
           $result = "";​ $ch = 1;           $result = "";​ $ch = 1;
       }       }
Строка 111: Строка 113:
   // проверяем,​ есть ли остаток данных для отправки   // проверяем,​ есть ли остаток данных для отправки
   if(!$result == ""​){   if(!$result == ""​){
-      $agi->​exec("​UserEvent",​ "​From$dbFamily,​Channel:​$chan,​Date:​$date1,​Lines:​$result"​);​+      $agi->​exec("​UserEvent",​ "​From$dbFamily,​chan1c:​$chan,​Date:​$date1,​Lines:​$result"​);​
   }  ​   }  ​
 }else{ }else{
Строка 123: Строка 125:
 ?> ?>
 </​code>​ </​code>​
- 
 ===== Проверка ===== ===== Проверка =====
 Для проверки можно использовать следующий скрипт:​ Для проверки можно использовать следующий скрипт:​
  
-==== Чтение из AstDB ==== +==== Запись в AstDB ====
 <​code>​ <​code>​
 #!/bin/sh #!/bin/sh
Строка 151: Строка 151:
 </​code>​ </​code>​
  
-==== Запись в AstDB ====+Пример вывода CLI: 
 +<​code> ​   -- Executing [10000222@miko_ajam:​1] NoOp("​SIP/​104-000000d2",​ "​miko_ajam calling application:​ 1C_Set_Status"​) in new stack 
 +    -- Executing [10000222@miko_ajam:​2] Set("​SIP/​104-000000d2",​ "​CDR(miko_ajamCalleridNum)=10000222"​) in new stack 
 +    -- Executing [10000222@miko_ajam:​3] Goto("​SIP/​104-000000d2",​ "​miko_ajam,​10000222,​1"​) in new stack 
 +    -- Goto (miko_ajam,​10000222,​1) 
 +    -- Executing [10000222@miko_ajam:​1] AGI("​SIP/​104-000000d2",​ "​miko_ajam.php"​) in new stack 
 +    -- Launched AGI Script /​etc/​asterisk/​agi-bin/​miko_ajam.php 
 +    -- AGI Script Executing Application:​ (UserEvent) Options: (DB_CF,​Channel:​SIP/​104,​key:​104,​val:​79257184222) 
 +    -- AGI Script Executing Application:​ (NoCDR) Options: ()</​code>​ 
 + 
 +Пример ответа AMI: 
 +<​code>​Event:​ UserEvent 
 +Privilege: user,all 
 +UserEvent: DB_CF 
 +Uniqueid: askozia-1403173782.683 
 +Channel:​SIP/​104 
 +key:104 
 +val:​79257184222</​code>​ 
 + 
 +Альтернативная CLI команда:​ 
 +<​code>​askoziapbx*CLI>​ database put CF 104 74922293045 
 +Updated database successfully</​code>​ 
 + 
 +==== Чтение из AstDB ====
  
 <​code>​ <​code>​
Строка 218: Строка 241:
 asterisk -rvvv; asterisk -rvvv;
 </​code>​ </​code>​
 +
 +Пример вывода в CLI:
 +<​code> ​   -- Executing [10000222@miko_ajam:​1] NoOp("​SIP/​104-000000d3",​ "​miko_ajam calling application:​ 1C_Set_Status"​) in new stack
 +    -- Executing [10000222@miko_ajam:​2] Set("​SIP/​104-000000d3",​ "​CDR(miko_ajamCalleridNum)=10000222"​) in new stack
 +    -- Executing [10000222@miko_ajam:​3] Goto("​SIP/​104-000000d3",​ "​miko_ajam,​10000222,​1"​) in new stack
 +    -- Goto (miko_ajam,​10000222,​1)
 +    -- Executing [10000222@miko_ajam:​1] AGI("​SIP/​104-000000d3",​ "​miko_ajam.php"​) in new stack
 +    -- Launched AGI Script /​etc/​asterisk/​agi-bin/​miko_ajam.php
 +    -- AGI Script Executing Application:​ (UserEvent) Options: (FromCF,​Channel:​SIP/​104,​Lines:/​CF/​104@.@79257184222.....1resultsfound.)
 +    -- AGI Script Executing Application:​ (NoCDR) Options: ()
 +</​code>​
 +Пример ответа AMI:
 +<​code>​Event:​ UserEvent
 +Privilege: user,all
 +UserEvent: FromCF
 +Uniqueid: askozia-1403173871.684
 +Channel:​SIP/​104
 +Lines:/​CF/​104@.@79257184222...../​CF/​100@.@79257184100...../​CF/​101@.@79257184101</​code>​
 +
 +Аналог команды CLI:
 +<​code>​askoziapbx*CLI>​ database show CF
 +/​CF/​104 ​                                          : 79257184222 ​             ​
 +1 results found.</​code>​
astpanel/ats/asterisk/setstatus_v6.1403173707.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)