Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
astpanel:ats:asterisk:environments_v6 [2013/11/26 04:52] apor [Проверка] |
astpanel:ats:asterisk:environments_v6 [2018/06/08 09:14] (текущий) apor [Dialplan Вариант 2] |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
[[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | [[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**.\\ | ||
Строка 13: | Строка 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}** | ||
Строка 42: | Строка 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 1С>#!/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'); | ||
Строка 66: | Строка 102: | ||
| | ||
$agi->exec("UserEvent", "AsteriskSettings" | $agi->exec("UserEvent", "AsteriskSettings" | ||
- | .",Channel:$Chan" | + | .",chan1c:$Chan" |
.",FaxSendUrl:$FaxSendUrl" | .",FaxSendUrl:$FaxSendUrl" | ||
.",DefaultContext:$DefaultContext" | .",DefaultContext:$DefaultContext" | ||
Строка 127: | Строка 163: | ||
-- Executing [10000111@miko_ajam:4] Hangup("SIP/104-00000000", "") in new stack | -- 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> | == 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_v6|Обратно к основной инструкции...]] |