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

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

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


astpanel:ats:asterisk:environments_v6

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
astpanel:ats:asterisk:environments_v6 [2013/11/25 17:54]
apor [Описание параметров]
astpanel:ats:asterisk:environments_v6 [2018/06/08 09:14] (текущий)
apor [Dialplan Вариант 2]
Строка 1: Строка 1:
 ====== 10000111. Настройка передачи общих параметров системы из Asterisk ====== ====== 10000111. Настройка передачи общих параметров системы из Asterisk ======
 +[[astpanel:​ats:​asterisk_v6|Обратно к основной инструкции...]]
 ===== Описание ===== ===== Описание =====
 +
 +<note important>​**В этой статье описан алгоритм работы**. Пример реализации описан в [[http://​wiki.miko.ru/​astpanel:​dialplan_miko_ajam | статье]] </​note> ​
 +
 В плане набора должен быть описан контекст **miko_ajam**.\\ В плане набора должен быть описан контекст **miko_ajam**.\\
 В контексте miko_ajam определяется extension с номером **10000111**.\\ В контексте miko_ajam определяется extension с номером **10000111**.\\
Строка 12: Строка 16:
 **Переменные канала** \\ **Переменные канала** \\
   * v1 - канал пользователя,​ который инициировал originate   * v1 - канал пользователя,​ который инициировал originate
- 
 ===== Действие ===== ===== Действие =====
 Приложение должно выполнить команду плана набора **UserEvent** и передать настройки:​ Приложение должно выполнить команду плана набора **UserEvent** и передать настройки:​
-<​code>​exten => 10000111,​n,​UserEvent(AsteriskSettings,​Channel: ${v1},​FaxSendUrl:​ ${FaxSendUrl},​GhostScriptVer:​ ${GSVER},​DefaultContext:​ ${DefaultContext},​SkypeContext:​ ${SkypeContext},​DialplanVer:​ ${DialplanVer})</​code>​+<​code>​exten => 10000111,​n,​UserEvent(AsteriskSettings,​chan1c: ${v1},​FaxSendUrl:​ ${FaxSendUrl},​GhostScriptVer:​ ${GSVER},​DefaultContext:​ ${DefaultContext},​SkypeContext:​ ${SkypeContext},​DialplanVer:​ ${DialplanVer})</​code>​
  
 Далее приложение должно оповестить о завершении работы:​ Далее приложение должно оповестить о завершении работы:​
-<​code>​exten => 10000111,​n,​UserEvent(HintsEnd,​Channel: ${v1})</​code>​ +<​code>​exten => 10000111,​n,​UserEvent(HintsEnd,​chan1c: ${v1})</​code>​
 ===== Описание параметров ===== ===== Описание параметров =====
   * **${Channel}** - имя канала,​ запросившего настройки **${v1}**   * **${Channel}** - имя канала,​ запросившего настройки **${v1}**
Строка 41: Строка 43:
 ===== Примеры:​ ===== ===== Примеры:​ =====
  
-==== Dialplan ====+==== Dialplan ​Вариант 1 ==== 
 +<​code>​[miko_ajam] 
 +exten => 10000111,​1,​NoOP(Settings Asterisk) 
 +
 +; FaxSendUrl - ресурс скрипта загрузки файла факса, 80 - порт, "/​admin/​1c/​upload/​index.php"​ - ресурс 
 +exten => 10000111,​n,​Set(FaxSendUrl=80/​admin/​1c/​upload/​index.php) 
 +
 +; DefaultContext - контекст для звонков "по умолчанию"​ 
 +; этот контекст ​ будет использован,​ если для SIP учетки пользователя контекст не указан. 
 +exten => 10000111,​n,​Set(DefaultContext=from-internal) 
 +
 +; SkypeContext - диалплан для исходящих звонков на скайп 
 +exten => 10000111,​n,​Set(SkypeContext=from-skype) 
 +;​GhostScriptVer - оставить пустым,​ если работа с ним не возможна. в этом случае конвертация pdf в tiff должна быть реализована со стороны 1С. 
 +exten => 10000111,​n,​Set(GhostScriptVer=8.70) ;  
 +;  
 +; DialplanVer - не менять! 
 +exten => 10000111,​n,​Set(DialplanVer=1.0.0.6) 
 +
 +exten => 10000111,​n,​UserEvent(AsteriskSettings,​chan1c:​ ${v1},​FaxSendUrl:​ ${FaxSendUrl},​GhostScriptVer:​ ${GSVER},​DefaultContext:​ ${DefaultContext},​SkypeContext:​ ${SkypeContext},​DialplanVer:​ ${DialplanVer}) 
 +
 +exten => 10000111,​n,​UserEvent(HintsEnd,​chan1c:​${v1}) 
 +exten => 10000111,​n,​Answer() 
 +exten => 10000111,​n,​Hangup()</​code>​
  
 +==== Dialplan Вариант 2 ====
 <​code>​[miko_ajam] <​code>​[miko_ajam]
 exten => 10000111,​1,​NoCDR() exten => 10000111,​1,​NoCDR()
 exten => 10000111,​n,​Noop(internal calling application:​ 10000111 1С_SetupEnv) exten => 10000111,​n,​Noop(internal calling application:​ 10000111 1С_SetupEnv)
 exten => 10000111,​n,​AGI(1C_SetupEnv.php) exten => 10000111,​n,​AGI(1C_SetupEnv.php)
-exten => 10000111,​n,​Hangup</​code>​+exten => 10000111,​n,​Hangup</​code> ​
  
-==== PHP AGI скрипт ​====+=== PHP AGI скрипт ===
  
-<​code ​1c>#​!/​usr/​bin/​php -q+<​code ​>#​!/​usr/​bin/​php -q
 <?php <?php
 +// Получение переменной AGI канала
 +//
 +function GetVarChannnel($agi,​ $_varName){
 +  $v = $agi->​get_variable($_varName);​
 +  if(!$v['​result'​] == 0){
 +    return $v['​data'​];​
 +  }
 +  else{
 +    return "";​
 +  }
 +} // GetVarChannnel($_agi,​ $_varName)
 require_once('​phpagi.php'​);​ require_once('​phpagi.php'​);​
  
Строка 58: Строка 95:
 $Chan = GetVarChannnel($agi,​ "​v1"​);;​ $Chan = GetVarChannnel($agi,​ "​v1"​);;​
 $DialplanVer = "​1.0.0.6";​ $DialplanVer = "​1.0.0.6";​
-$GSVER = '8.70';+$GSVER = "8.70";
 $FaxSendUrl ​ = "​80/​admin/​1c/​upload/​index.php";​ $FaxSendUrl ​ = "​80/​admin/​1c/​upload/​index.php";​
 $Statistic ​ = "​user:​pass";​ $Statistic ​ = "​user:​pass";​
Строка 65: Строка 102:
     ​     ​
 $agi->​exec("​UserEvent", ​  "​AsteriskSettings"​ $agi->​exec("​UserEvent", ​  "​AsteriskSettings"​
- .",Channel:​$Chan"​+ .",chan1c:​$Chan"​
     .",​FaxSendUrl:​$FaxSendUrl"​     .",​FaxSendUrl:​$FaxSendUrl"​
     .",​DefaultContext:​$DefaultContext"​     .",​DefaultContext:​$DefaultContext"​
Строка 81: Строка 118:
 ?>​​</​code>​ ?>​​</​code>​
    
 +==== Проверка ====
 +Выполните в консоли Asterisk:\\
 +<​code>​
 +CLI> dialplan reload
 +CLI> dialplan show 10000111@miko_ajam
 +[ Context '​miko_ajam'​ created by '​pbx_config'​ ]
 +  '​10000111'​ =>     1. NoCDR() ​                                   [pbx_config]
 +                    2. Noop(internal calling application:​ 10000111 1С_SetupEnv) [pbx_config]
 +                    3. AGI(1C_SetupEnv.php) ​                      ​[pbx_config]
 +                    4. Hangup() ​                                  ​[pbx_config]
 +
 +-= 1 extension (4 priorities) in 1 context. =-
 +</​code>​
 +
 +=== Для проверки можно использовать следующий скрипт:​ ===
 +
 +  * Звонок с **SIP/104** (Телефон должен быть подключен) на **10000111**
 +<​code>#​!/​bin/​sh
 +dir_script='/​tmp/';​
 +# каталог из asterisk.conf
 +astspooldir='/​var/​spool/​asterisk';​
 +#
 +call_text="​Channel:​ SIP/104
 +Context: miko_ajam
 +Extension: 10000111
 +Set: v1=SIP/​104";​
 +
 +echo "​$call_text"​ > /​tmp/​file.call;​
 +mv '/​tmp/​file.call'​ "​$astspooldir/​outgoing/";​
 +
 +asterisk -rvvv;
 +</​code>​
 +
 +Скрипт формирует call файл.
 +=== Вывод в консоли Asterisk ===
 +
 +<​code> ​   -- Executing [10000111@miko_ajam:​1] NoCDR("​SIP/​104-00000000",​ ""​) in new stack
 +    -- Executing [10000111@miko_ajam:​2] NoOp("​SIP/​104-00000000",​ "​internal calling application:​ 10000111 1С_SetupEnv"​) in new stack
 +    -- Executing [10000111@miko_ajam:​3] AGI("​SIP/​104-00000000",​ "​1C_SetupEnv.php"​) in new stack
 +    -- Launched AGI Script /​var/​lib/​asterisk/​agi-bin/​1C_SetupEnv.php
 +    -- AGI Script Executing Application:​ (UserEvent) Options: (AsteriskSettings,​Channel:​SIP/​104,​FaxSendUrl:​80/​admin/​1c/​upload/​index.php,​DefaultContext:,​SkypeContext:,​DialplanVer:​1.0.0.6,​autoanswernumber:​**,​Statistic:​user:​pass,​GhostScriptVer:​8.70)
 +    -- AGI Script Executing Application:​ (UserEvent) Options: (HintsEnd,​Channel:​SIP/​104)
 +    -- <​SIP/​104-00000000>​AGI Script 1C_SetupEnv.php completed, returning 0
 +    -- Executing [10000111@miko_ajam:​4] Hangup("​SIP/​104-00000000",​ ""​) in new stack
 +  == Spawn extension (miko_ajam, 10000111, 4) exited non-zero on '​SIP/​104-00000000'</​code>​
 +  ​
 +=== Вывод в AMI ===
 +
 +<note important>​Обязательно наличие событий "​UserEvent:​ **AsteriskSettings**"​ и "​UserEvent:​ **HintsEnd**"​!
 +
 +</​note>​
 +<​code>​Event:​ UserEvent
 +Privilege: user,all
 +UserEvent: AsteriskSettings
 +Uniqueid: 1412018840.1
 +Channel:​SIP/​1001
 +FaxSendUrl:​80/​admin/​1c/​upload/​index.php
 +DefaultContext:​
 +SkypeContext:​
 +DialplanVer:​1.0.0.6
 +autoanswernumber:​**
 +Statistic:​user:​pass
 +GhostScriptVer:​8.70
 +
 +Event: UserEvent
 +Privilege: user,all
 +UserEvent: HintsEnd
 +Uniqueid: 1412018840.1
 +Channel:​SIP/​1001
 +
 +Event: Hangup
 +Privilege: call,all
 +Channel: SIP/​1001-00000001
 +Uniqueid: 1412018840.1
 +CallerIDNum:​ <​unknown>​
 +CallerIDName:​ <​unknown>​
 +ConnectedLineNum:​ <​unknown>​
 +ConnectedLineName:​ <​unknown>​
 +AccountCode: ​
 +Cause: 16
 +Cause-txt: Normal Clearing
 +</​code>​
 +  ​
 +[[astpanel:​ats:​asterisk_v6|Обратно к основной инструкции...]]
astpanel/ats/asterisk/environments_v6.1385402041.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)