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

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

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

bestann Gravatar bestann

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

Сделала меню для работы с Asterisk, заведения абонентов и пр. из Linux CLI. Не могу как сделать отображение WARNING о проблемах в определенных строках плана нумерации при выполнении из Linux CLI. Например asterisk -rx "dialplan reload" в выводе команды отобразит только Dialplan reloaded. А хотелось бы отобразить WARNING как в Asterisk CLI, например: ast16*CLI> dialplan reload Dialplan reloaded. .... -- pbx_config successfully loaded 54 contexts (enable debug for details).

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

Сделала меню для работы с 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).

details). [Mar 11 15:59:58] WARNING[8016]: pbx.c:8732 ast_context_verify_includes: Context 'local' tries to include nonexistent context 'trunklocal'

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

sip dialplan reload

Dialplan reloaded. [Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf [Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf [Mar 11 16:17:30] WARNING[25669] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal'

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload

reload Dialplan reloaded. [Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf [Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf [Mar 11 16:17:30] WARNING[25669] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal''trunklocal'

Если есть другой более корректный способ, напишите.

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal'

Если есть другой более корректный способ, напишите.напишите. Возможно в логе время сохранить и сделать поиск только позже определенного времени, чтобы предыдущие перезагрузки плана нумерации не попали.

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: 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" ;;

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: Context 'local' tries to include nonexistent context 'trunklocal'

Если есть другой более корректный способ, напишите. Возможно в логе время сохранить и сделать поиск только позже определенного времени, чтобы предыдущие перезагрузки плана нумерации не попали.

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

 reload) adate=LC_ALL=C adate=`LC_ALL=C date +"%b %d %T" %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" ;;

;;

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: 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'

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: 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

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: 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 ;;

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

Сделала меню для работы с 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) asterisk -rx "dialplan reload" sleep 2 tail -n1000 /var/log/asterisk/full | grep -i warning ;;

Результат:

# sip dialplan reload
Dialplan reloaded.
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 15 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] config.c: No '=' (equal sign) in line 23 of /etc/asterisk/extensions.conf
[Mar 11 16:17:30] WARNING[25669] pbx.c: 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 ;;

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