Страница 1 из 3

Elastix AEL MySQL откуда зайти?

Добавлено: 27 июн 2016, 16:58
svd
Дня доброго.

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

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

статьи про AEL нашел легко и непринуждённо
https://habrahabr.ru/post/122974/
http://asterisk.ru/knowledgebase/Asterisk+AEL
и ещё кучу всяких... попробовал создать свой файл с расширением ael
точнее... ну как свой, средствами вэб интерфейса создал новый файл extension_custom.ael
перенес в него кусок кода из extension_custom.conf (который написал ранее)

app-miscapps-custom {
0001 => {
Playback(digits/5);
}
}

код работал (когда был написан в файле extension_custom.conf
[app-miscapps-custom]
exten => 0001,1,Playback(digits/5)

когда удалил этот кусок из файла .conf и перенес а .ael
ну соответственно пробовал команды reload и ael reload

но больше при наборе 0001 мне англицкая тётя "5" не говорила

[app-miscapps]
include => app-miscapps-custom
exten => 0001,1,Noop(Running miscapp 2: FilterCaller)
exten => 0001,n,Macro(user-callerid,)
exten => 0001,n,Goto(ext-queues,200,1)

что-то я пропустил...

как проверить смотрятся ли вообще конфиги написанные на ael в файлах с расширением ael (транслируются ли в обычные конф файлы)?
как заставить это делать?
или мне надо было описывать что то типа
FilterCaller {
0001 => {
Playback(digits/5);
}
}

или файл с названием FilterCaller.ael делать

чёт я не понимаю, так скать, соли основопологающей

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 27 июн 2016, 17:18
ded
Elastix может быть не очень удачная платформа для экспериментов с AEL. Так как надо учитывать готовую огромную структуру далплана: apps & func.
Все вызовы внутренних номеров исполняются из дефолтного контекста from-internal. Поэтому проверять - видит ваши конструкции диалплан или не видит надо командой
CLI> dialplan show 0001@from-internal
до места, куда попадает это по инклюдам нужно иногда долго добираться, поэтому лучший вариант был - начинать эксперименты в контексте from-internal-custom.

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 27 июн 2016, 17:45
svd
согласен, возможно она не самая удачная, но она целевая...

Код: Выделить всё

CLI> dialplan show 0001@from-internal
[ Included context 'app-miscapps' created by 'pbx_config' ]
  '0001' =>         1. Noop(Running miscapp 2: FilterCaller)      [pbx_config]
                    2. Macro(user-callerid,)                      [pbx_config]
                    3. Goto(ext-queues,200,1)                     [pbx_config]

[ Included context 'bad-number' created by 'pbx_config' ]
  '_X.' =>          1. ResetCDR()                                 [pbx_config]
                    2. NoCDR()                                    [pbx_config]
                    3. Progress()                                 [pbx_config]
                    4. Wait(1)                                    [pbx_config]
                    5. Progress()                                 [pbx_config]
                    6. Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer) [pbx_config]
                    7. Wait(1)                                    [pbx_config]
                    8. Congestion(20)                             [pbx_config]
                    9. Hangup()                                   [pbx_config]

-= 2 extensions (12 priorities) in 2 contexts. =-
подредактировал заодно ошибку в файле ael

app-miscapps-custom
заменил на
context app-miscapps-custom

но судя по всему астериск не берет в расчёт мой рукопашный файл с расширением ael

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 27 июн 2016, 18:30
ded
вообще конфиги написанные на ael в файлах с расширением ael не транслируются в обычные конф файлы.

C прошлого года активно внедряют вторую версию AEL - AEL2.
Enable AEL2 contexts debug

CLI> ael2 debug contexts

Enable AEL2 macros debug

CLI> ael2 debug macros

Enable AEL2 read debug

CLI> ael2 debug read

Enable AEL2 tokens debug

CLI> ael2 debug tokens

Disable AEL2 debug messages

CLI> ael2 no debug

AELPARSE

You should never place code in /etc/extensions.ael without first testing it with aelparse!!

The aelparse program is built in the utils/ directory of the asterisk source. It is a standalone executable, and accepts only the options -d, -w, -q, and -n.

-d: Using this option says, instead of reading the file "extensions.ael2" (in the trunk version, that would be "extensions.ael") from /etc/asterisk (or wherever the config files are normally kept) aelparse will instead look in the current directory. This is very useful for testing your dialplan somewhere other than your production directory.
-w: Convert the input dialplan file (extensions.ael2) to extensions.conf format, and dump the file in the current directory under the file name "extensions.conf.aeldump". Why on earth would you ever want to do this? Well, you could take that file and use it on 1.2 or earlier asterisk systems! You don't have to program dialplans in extensions.conf format any more!
-n: Don't display the function calls to build the extensions in asterisk.
-q: (implies -n). Pretty much, only show warnings and errors.
http://www.voip-info.org/wiki/view/Asterisk+AEL2

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 30 июн 2016, 06:44
svd
спасибо про ael2... попробую
теперь обрисовался другой вопрос
есть файл extensions.ael в нем я описал свой контекст... не удобно править и тестить,там куча всего написано в начале файла.

как заставить астериска подхватывать какой нибудь мой файл с расширением .ael (допустим svd.ael) ?

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 30 июн 2016, 07:49
gosha
include ни кто не отменял

#include "/opt/myapp/etc/extensions.ael"

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 30 июн 2016, 13:27
svd
gosha писал(а):include ни кто не отменял

#include "/opt/myapp/etc/extensions.ael"
не подхватывает :(

пробовал дописать в файл extensions_custom.conf
#include "/etc/asterisk/green.ael"

пробовал дописать в extensions.conf
#include "/etc/asterisk/green.ael"
и так
#include green.ael

не получается

dialplan show 0002

There is no existence of '0002' context
Command 'dialplan show 0002' failed.

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 30 июн 2016, 14:19
ded
dialplan show 0002 - в каком контексте? Синтаксис не хотите подучить?

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 30 июн 2016, 15:08
virus_net
ну как же в каком ?! в МОЕМ ! Вот астериск тупой, не понимает что такое МОЙ контекст. Ведь это очевидно !
:lol:

ded, судя по его вопросам ответом на твой вопрос будет "нет". Печаль одним словом. Человек взялся за AEL не зная элементарных основ диалплана... жесть...
"Иногда лучше читать чем говорить"

Re: Elastix AEL MySQL откуда зайти?

Добавлено: 30 июн 2016, 15:23
zzuz
100% автор заряжает свой смартфон шнуром от утюга.