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

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

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


astpanel:ats:asterisk:setstatus_v6

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
astpanel:ats:asterisk:setstatus_v6 [2014/06/16 13:56]
apor
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 ====
 <​code>​ <​code>​
 #!/bin/sh #!/bin/sh
Строка 146: Строка 150:
 asterisk -rvvv; asterisk -rvvv;
 </​code>​ </​code>​
 +
 +Пример вывода 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>​
 +#!/bin/sh
 +dir_script='/​tmp/';​
 +# каталог из asterisk.conf
 +astspooldir='/​var/​spool/​asterisk';​
 +#
 +call_text="​Channel:​ SIP/104
 +Context: miko_ajam
 +Extension: 10000222
 +Callerid: Alexey<​104>​
 +Setvar: command=put
 +Setvar: dbFamily=CF
 +Setvar: key=104
 +Setvar: val=79257184222
 +Setvar: chan=SIP/​104";​
 +
 +echo "​$call_text"​ > /​tmp/​file.call;​
 +mv '/​tmp/​file.call'​ "​$astspooldir/​outgoing/";​
 +
 +asterisk -rvvv;
 +</​code>​
 +Пример ответа CLI при "​verbose 3":
 +<​code> ​   -- Executing [10000222@miko_ajam:​1] NoOp("​SIP/​104-000000d0",​ "​miko_ajam calling application:​ 1C_Set_Status"​) in new stack
 +    -- Executing [10000222@miko_ajam:​2] Goto("​SIP/​104-000000d0",​ "​DIALPLAN-APPLICATION-1C_Set_Status_v6,​10000222,​1"​) in new stack
 +    -- Goto (DIALPLAN-APPLICATION-1C_Set_Status_v6,​10000222,​1)
 +    -- Executing [10000222@miko_ajam:​1] AGI("​SIP/​104-000000d0",​ "​1C_Set_Status_v6.php"​) in new stack
 +    -- Launched AGI Script /​etc/​asterisk/​agi-bin/​1C_Set_Status_v6.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-1403173508.682
 +Channel:​SIP/​104
 +key:104
 +val:​79257184222</​code>​
 +
 +Окончательная проверка:​
 +<​code>​CLI>​ database get CF 104
 +Value: 79257184222</​code>​
 +
 +==== Получения значений из AstDB ====
  
 <​code>#​!/​bin/​sh <​code>#​!/​bin/​sh
Строка 167: Строка 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.1402926988.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)