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

Пояснить, как работает include =>

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Ответить
pilot
Сообщения: 10
Зарегистрирован: 25 май 2012, 13:26

Пояснить, как работает include =>

Сообщение pilot »

Господа,
кто может пояснить, как работает 'include =>', точнее, как вклиниться в конфиги FreePBX?
Суть вопроса:
1. FreePBX генерирует контекст

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

[from-trunk-sip-Tenor]
include => from-trunk-sip-Tenor-custom
exten => _.,1,Set(GROUP()=OUT_3)
exten => _.,n,Goto(from-trunk,${EXTEN},1)
2. Я пытаюсь в extension_custom.conf сделать добавку к этому контексту:

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

[from-trunk-sip-Tenor-custom]
exten => _.,1,Noop(TRALI-VALI)
3. Смотрю в dialplan show - мой контекст стоит после основного. В отработке звонка он не появляется, т.к., как я понимаю, раньше него срабатывает Goto.

Т.е. получается, что добавление по include всегда идет в конец, вне зависимости от того, где стоит сам include? Как в таком случае правильно написать ...-custom, чтобы он сработал?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Пояснить, как работает include =>

Сообщение Vlad1983 »

просто включает все содержимое контекста, причем в последнюю очередь независимо от того в какой строке стоит include =>
в результате у вас следующий контекст
[from-trunk-sip-Tenor]
exten => _.,1,Set(GROUP()=OUT_3)
exten => _.,n,Goto(from-trunk,${EXTEN},1)
exten => _.,1,Noop(TRALI-VALI) ; не будет создан из-за конфликта приоритета
ЛС: @rostel
pilot
Сообщения: 10
Зарегистрирован: 25 май 2012, 13:26

Re: Пояснить, как работает include =>

Сообщение pilot »

Спасибо, vlad1983
Т.е. предположил я правильно.
Тогда суть вопроса остается - как корректно вклиниться в контекст или в макрос конфига FreePBX. Приоритетами я играть пытался - влезть до Goto у меня не получилось. Приоритет n в первой строчке моего контекста не принимается (ошибка), 2 - тоже пересекается с Goto, 3 - уже никому не интересно.

У них там в генерируемых фронтэндом конфигах множество таких "выходов" на включения custom-фрагментов для подпрограмм, макросов и контекстов. Но сами эти контексты/подпрограммы/макросы заканчиваются всякими goto (как в данном примере), Dial и прочими делами, при которых дело до добавленных include-ом в конец строчек просто не доходит.
Куда бедному крестьянину податься? (Сейчас набежит куча ботов с сообщениями "в платную поддержку" :) )
pilot
Сообщения: 10
Зарегистрирован: 25 май 2012, 13:26

Re: Пояснить, как работает include =>

Сообщение pilot »

Вдогонку.
Нашел контекст from-pstn, состоящий из одних include, причем первый - на custom-фрагмент. Переименовал свой контекст в from-pstn-custom. Он заработал (стал появляться в протоколе звонка). Но при этом накрылась первая строчка из "встроенного" контекста ext-local, который включается следом. Т.е. своим вклиниванием я что-то испортил.

Так как правильно влазить в конфиги FreePBX, чтобы ничего не испортить, может кто-то что-то посоветовать?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Пояснить, как работает include =>

Сообщение Vlad1983 »

в кастомных нужно назначать экстен большей длины, но это не будет работать если нужно перебить s, тогда нужно использовать extensions_override_freepbx.conf

или всегда extensions_override_freepbx.conf
ЛС: @rostel
pilot
Сообщения: 10
Зарегистрирован: 25 май 2012, 13:26

Re: Пояснить, как работает include =>

Сообщение pilot »

Я перебил контекст из примера в override, добавив в него то, что мне надо. Все заработало, спасибо за совет.

Однако там видно, что упоминаются некоторые потроха FreePBX (exten => _.,1,Set(GROUP()=OUT_3)). Т.е. есть риск, что при изменении конфигурации транков это решение все испортит?

Нельзя ли пояснить, что означает
назначать экстен большей длины
? Если речь идет о том, что в кастомных включениях надо использовать что-то более точное, чем "_.", то я пробовал и "_X.", и "_9XX" - не помогало.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH