Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Как отобразить warning для dialplan reload

0

Сделала меню для работы с Asterisk, заведения абонентов и пр. из Linux CLI. Не могу как сделать отображение WARNING о проблемах в определенных строках плана нумерации при выполнении из Linux CLI. Например

asterisk -rx "dialplan reload"

в выводе команды отобразит только

Dialplan reloaded.

А хотелось бы отобразить WARNING как в Asterisk CLI, например:

ast16*CLI> dialplan reload
Dialplan reloaded.
[Mar 11 15:59:58] WARNING[8016]: config.c:2020 process_text_line: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 15:59:58] WARNING[8016]: config.c:2020 process_text_line: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
....
    -- pbx_config successfully loaded 54 contexts (enable debug for details).
[Mar 11 15:59:58] WARNING[8016]: pbx.c:8732 ast_context_verify_includes: Context 'local' tries to include nonexistent context 'trunklocal'

Сделала так. Может можно проще:

 reload) adate=`LC_ALL=C date +"%b %d %T"`  # дата в формате как в логах, временно переключили на английский язык, отобразит Mar 11 16:32:11
         echo "Время: $adate"
         asterisk -rx "dialplan reload"
         sleep 2
         tail -n1000 /var/log/asterisk/full | grep WARNING | grep -A1000 "$adate" ;;

Пример до и после применения поиска после текущей даты.

[root@ast16 loki]# sip dialplan reload
Время: Mar 11 16:50:14
Dialplan reloaded.
[Mar 11 16:48:19] WARNING[31395] pjsip/dialplan_functions.c: No transport information for channel PJSIP/orel-000080af
[Mar 11 16:48:19] WARNING[24316][C-00004061] func_channel.c: Unknown or unavailable item requested: 'pjsip,remote_addr'
[Mar 11 16:49:10] WARNING[25340] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:49:10] WARNING[25340] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:49:10] WARNING[25340] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal'
[Mar 11 16:50:11] WARNING[21397] pjsip/dialplan_functions.c: No transport information for channel PJSIP/4352-000080bf
[Mar 11 16:50:11] WARNING[26224][C-00004069] func_channel.c: Unknown or unavailable item requested: 'pjsip,remote_addr'
[Mar 11 16:50:14] WARNING[26378] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:50:14] WARNING[26378] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:50:14] WARNING[26378] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal'

[root@ast16 loki]# .linfunc
[root@ast16 loki]# sip dialplan reload
Время: Mar 11 16:51:07
Dialplan reloaded.
[Mar 11 16:51:07] WARNING[27271] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:51:07] WARNING[27271] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:51:07] WARNING[27271] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal'

Далее я открываю план нумерации на нужной строке:

sip dialplan 15

Как это реализовано в скрипте (мои маленькие функции savefile и testfile сохраняют бэкап плана нумерации перед редактированием и отображают различия в старом и отредактированном плане нумерации):

   +([0-9])) savefile
             vim /etc/asterisk/extensions.conf +$2 -c 'set number' +star
             testfile ;;
удалить закрыть спам изменить тег редактировать

спросил 2020-03-11 17:01:12 +0400

bestann Gravatar bestann
1 9 1 5

обновил 2020-03-11 18:05:55 +0400

Comments

По мне так это неправильный подход и походит на борьбу с ветряными мельницами. Не нужно допускать варнингов и писать конфиг нужно с учетом его синтаксиса. Вы так себе удваиваете работу.

zzuz ( 2020-03-15 16:43:05 +0400 )редактировать

присоединяюсь. Вы странная девушка. Разбейте конфиг на две части. Одна - сложная логика, другая - просто выставление параметров, return. и все. Скрипт обновляет только вторую. Все равно астериск не будет писать варнинги на полностью некорректные строчки, например, закоментированные или с неправильным префиксом. Ему пофигу

meral ( 2020-03-16 19:59:56 +0400 )редактировать

1 Ответ

0

Простой вариант - в том же формате делаете варнинг в файл до релоада и через 30 секунд после, в конце узнаете через grep -n где эти строчки в файле и собираете с помощью tail/head все между ними. После чего скипаете все, что не config.c и dialplan.

А вообще "заведения абонентов и пр." должно единобразно работать из базы данных. Генерироваться на основе проверенных шаблонов и логинов-паролей-адресов-темплейтов(астериск,кстати, умеет темплейты много где).

ссылка удалить спам редактировать

ответил 2020-03-16 20:02:34 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2020-03-16 20:05:44 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2020-03-11 17:01:12 +0400

Просмотрен: 312 раз

Обновлен: Mar 16 '20

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.