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

Автоматическое переключение IVR в Elastix

0

Имеется Elastix 2.5.0 (FreePBX 2.11.0 Asterisk 11.15.0) Два удаленных офиса, связанных между собой посредством VPN. В офисе №1 установлен Elastix.

Задача: при пропадании связи между офисами переключать приветствие в IVR на сообщение о том что имеются проблемы со связью (сейчас это делается руками через веб-интерфейс) Я вижу решение этой задачи в написании скрипта на bash, который будет пинговать (с сервера Elastix) офис №2 и в случае пропадания связи будет исправлять конфиг Elastix.

Файл extensions_additional.conf содержит одну из строй которую мне надо поменять

как есть:

[timeconditions]
exten
=> 1,n(falsegoto),GotoIf($["${TCMAINT}"!="RETURN"]?ivr-5,s,1)

как надо:

exten => 1,n(falsegoto),GotoIf($["${TCMAINT}"!="RETURN"]?ivr-6,s,1)

Учитывая что файл менять нельзя, работаю с файлом extensions_override_freepbx.conf Прописываю в данный файл:

[timeconditions]
exten
=> 1,n(falsegoto),GotoIf($["${TCMAINT}"!="RETURN"]?ivr-6,s,1)

Далее перезапускаю астериск командой:

/var/lib/asterisk/bin/module_admin reload

И в результате строка в файле extensions_additional.conf не меняется и как следствие нужное сообщение о проблемах со связью не проговаривается.

Куда копать не знаю, пните в нужном направлении.

спросил Jun 9 '15

ginnic Gravatar ginnic
19 1 3

обновил Jun 10 '15

Comments

Сначала нужно разобраться , что такое bush .

zzuz (Jun 9 '15)edit

У меня уже настроен IVR по рабочему времени, боюсь что не получиться использовать приложение "Режим дня и ночи".

ginnic (Jun 9 '15)edit

Одно другому не мешает. Приложение само по себе простой переключатель. К времени не привязывается.

zzuz (Jun 9 '15)edit

Спасибо за советы и особенно готовые скрипты. Буду пробовать их реализовать Но всё же, для себя, хочется понять, как можно в Elastix отредактировать conf-файл (не через Web-интерфейс), о чем я писал выше?

ginnic (Jun 10 '15)edit

Отредактировать чем? Скритом? awk и sed вам в руки .

zzuz (Jun 10 '15)edit

Извиняюсь за некорректно заданный вопрос. Какой файл необходимо редактировать в Elastix для изменения файла extensions_additional.conf?

ginnic (Jun 10 '15)edit

extensions_override_freepbx.conf

zzuz (Jun 10 '15)edit

Как правильно редактировать extensionsoverridefreepbx.conf? В данный файл я вставлял нужные мне строки (см. шапку), но после перезагрузки астериска они не появлялись в файле extensions_additional.conf. Или они не должны появляться? При этом правило которое я вставлял не работало :(

ginnic (Jun 10 '15)edit

Они не должны появляться. То что Вы написали какое-то правило - это не значит , что оно должно рабоать . Вы элементарно не соблюдаете синтаксис. Файл extensions_override_freepbx.conf читается первым при перезагрузке , поэтому для экстеншена должен быть задан явный приоритет . Приоритет n при первом заполнении контекста игнорируется.

zzuz (Jun 10 '15)edit

Ок понял. Как тогда проверить синтаксис и если можно где почитать об этом. Покопал интернет, не могу найти информацию. На сайте freepbx.org в описание также написано что прежде чем редактировать extensionsoverridefreepbx.conf read notes before. А где найти эти примечания не сказано.

ginnic (Jun 10 '15)edit

Читать про синтаксис тут http://www.voip-info.org/wiki/view/Asterisk+config+extensions.conf . Там же описано про вложения файлов в основной конфигурационный файл.

zzuz (Jun 10 '15)edit

Приложение "Режим дня и ночи" сейчас называется Call Flow Control. Создал правило в нем, теперь я могу переключать режим посредством звонка набрав специальный номер (*280). Не могу найти в database параметр для переключения его в скрипте.

ginnic (Jun 11 '15)edit

Кто ищет , тот всегда найдет .

zzuz (Jun 11 '15)edit

В базе данных данного параметра нет, оставил этот вариант. Попробовал пойти другим путем через команду channel originate extension (набор номера через консоль), но не получается позвонить на сервисный код 280. Есть идеи?

ginnic (Jun 11 '15)edit

"В базе данных данного параметра нет" - не верю. Плохо ищите.

zzuz (Jun 11 '15)edit

1 Ответ

0

Используйте приложение "Режим дня и ночи" . Выставляете разные звуковые файлы для дня и ночи и соответствующие направления. В IVR сообщение убираете , если конечно в обоих случаях схема распределения одинаковая. Запоминаете , какой индекс присваивается направлению и используйте его в скрипте. Например , Вы создали направление с индексом 0. Скрипт будет выглядет так :

#!/bin/bash
ASTPATH
=/usr/sbin/
INDEX
=0
IPADRR
=127.0.0.1
function ping_test()
{
  ping
-c 1 -q -w 1 $IPADRR | grep '1 received' > /dev/null && echo 1 || echo 0;
}
if [ $(ping_test) = 0 ]; then
  $ASTPATH
/asterisk -rx "database put DAYNIGHT C$INDEX NIGHT"
else
  $ASTPATH
/asterisk -rx "database put DAYNIGHT C$INDEX DAY"
fi

Также можно использовать приложение Misc App (дополнительные приложения) . Так можно перехватывать звонки из входящей маршрутизации и направлять на нужное направление. Рисуете в extensions_custom.conf что-то типа

[from-pstn-custom]
exten
=> _X.,1,Noop()
exten
=> _X.,n,GotoIF($["${DB(CUSTOM/ALARM)}" = "1"]?from-internal,12345,1) ; 12345 - сервисный код направления.
exten
=> _X.,n,Goto(ext-did,${EXTEN},1)

а в скрипте меняете блок if на

if [ $(ping_test) = 0 ]; then
  $ASTPATH
/asterisk -rx "database put CUSTOM ALARM 1"
else
  $ASTPATH
/asterisk -rx "database put CUSTOM ALARM 0"
fi
ссылка удалить спам редактировать

ответил Jun 9 '15

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

обновил Jun 9 '15

Ваш ответ

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)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: Jun 9 '15

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

Обновлен: Jun 10 '15

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

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