VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Динамическое определение шаблона - как сделать?

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
vaskodegama
Сообщения: 28
Зарегистрирован: 30 май 2013, 15:14

Динамическое определение шаблона - как сделать?

Сообщение vaskodegama »

хочу хранить диалпланы в базе
попадание в диалплан по шаблону ао логике астериска -> набор действий из БД

сиюминутно в голову пришло дописывать в extension.conf как-то так

exten => _555.,1,System(/scripts/fetch_dialplan.pl _555.); #вернуть действие
extent => _555.,n,Goto(действие);

в идеале хотелось бы так
exten => _X.,1,System(/scripts/fetch_dialplan.pl ${EXTEN}); #вернуть действие
extent => _X.,n,Goto(действие);

но разбирать астерисковую логику попадания в шаблон внутри скрипта - как?

как сделать умнее? )))
ded
Сообщения: 15627
Зарегистрирован: 26 авг 2010, 19:00

Re: Динамическое определение шаблона - как сделать?

Сообщение ded »

vaskodegama, не хотите почитать про Realtime в Астериске?
exten => _555.,1,System(/scripts/fetch_dialplan.pl _555.); #вернуть действие
ужас!
vaskodegama
Сообщения: 28
Зарегистрирован: 30 май 2013, 15:14

Re: Динамическое определение шаблона - как сделать?

Сообщение vaskodegama »

хочу хранить диалпланы в базе, не описывая каждый в extension.conf

например в бд две таблицы

таблица extension

ext_id ext_template

1 _7812.
2 78122128506

таблица actions

action_id ext_id action timeout
1 1 Dial 20
2 1 Voicemail
3 1 Hangup()
4 2 Playback()
5 2 Hangup()

нужно определить что extension 78122128506 попадает в ext_id = 2 с приоритетом большим, чем ext_id=1, строго как в астериске
в общем видимо решение с realtime хотя бы на этапе вхождения в диалплан в соответствии с шаблоном а потом уже пляски от него - лучше, чем прогонять ${EXTEN } по всем шаблонам из базы
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Динамическое определение шаблона - как сделать?

Сообщение Samael28 »

Откройте для себя AGI. И делайте на PHP/Perl/Bash/C.... что хотите и как хотите :)
Мой профайл на Upwork
ded
Сообщения: 15627
Зарегистрирован: 26 авг 2010, 19:00

Re: Динамическое определение шаблона - как сделать?

Сообщение ded »

... и/или ael...
vaskodegama
Сообщения: 28
Зарегистрирован: 30 май 2013, 15:14

Re: Динамическое определение шаблона - как сделать?

Сообщение vaskodegama »

я наверное плохой объяснятель.
мне нужно, чтобы звонок прилетевший в соответствующий шаблон сопоставить с нужным правилом которое хранится в БД
если делать все скриптами, то нужен разбор шаблона по правилам астериска

в общем пока ничего лучше не придумал чем запихивать первую строку диалплана в realtime extension которая дальше передает управление скрипту

типо так:
extent => _555., AGI(script, параметры)
и все последующие действия производить через agi в скрипте

а в идеале хотелось сначала в extension.conf оставить всего одну строчку

exten => _X.,1,AGI(скрипт, параметры)
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Динамическое определение шаблона - как сделать?

Сообщение Samael28 »

Какая-то у Вас архитектура загадочная..... Может Вы просто объясните, что хотите в конце получить, пому как путь отдает кривизной.
Мой профайл на Upwork
vaskodegama
Сообщения: 28
Зарегистрирован: 30 май 2013, 15:14

Re: Динамическое определение шаблона - как сделать?

Сообщение vaskodegama »

нормальная архитектура. ))) просто хотел всю логику свалить на AGI и БД не используя extensions.conf
в итоге понял, что получится свой Realtime только с особенностями. в частности сразу встал вопрос как разбирать экстеншены на предмет вхождения в шаблоны. думал может какая-то системная функция сопоставления есть (выдрать шаблоны из базы, проверить на соотвествие экстеншену)
в итоге делаю связку Realtime+AGI, вопрос уже по сути отпал


кстати, кто-нибудь может кинуться полным описанием полей таблицы sippeers? а то я чую сейчас велосипедов наизабретаю. не могу никак найти. даже в sql-дампе из дистрибутива не было поля canreinvite, сегодня столкнулся что в реалтайм-реализации через мультифон не бегает голос. добавил вручную поле выставил 'no', заработало
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH