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

Автоматическое переключение 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 не меняется и как следствие нужное сообщение о проблемах со связью не проговаривается.

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

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

спросил 2015-06-09 22:34:30 +0400

ginnic Gravatar ginnic
19 1 2

обновил 2015-06-10 09:58:49 +0400

Comments

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

zzuz ( 2015-06-09 23:17:26 +0400 )редактировать

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

ginnic ( 2015-06-09 23:40:42 +0400 )редактировать

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

zzuz ( 2015-06-09 23:45:38 +0400 )редактировать

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

ginnic ( 2015-06-10 10:01:12 +0400 )редактировать

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

zzuz ( 2015-06-10 11:03:57 +0400 )редактировать

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

ginnic ( 2015-06-10 12:25:14 +0400 )редактировать

extensions_override_freepbx.conf

zzuz ( 2015-06-10 13:16:23 +0400 )редактировать

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

ginnic ( 2015-06-10 14:17:01 +0400 )редактировать

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

zzuz ( 2015-06-10 14:33:13 +0400 )редактировать

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

ginnic ( 2015-06-10 14:53:11 +0400 )редактировать

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

zzuz ( 2015-06-10 15:17:06 +0400 )редактировать

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

ginnic ( 2015-06-11 16:21:47 +0400 )редактировать

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

zzuz ( 2015-06-11 17:04:30 +0400 )редактировать

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

ginnic ( 2015-06-11 21:46:23 +0400 )редактировать

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

zzuz ( 2015-06-12 01:28:49 +0400 )редактировать

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
ссылка удалить спам редактировать

ответил 2015-06-09 23:29:44 +0400

zzuz Gravatar zzuz flag of Russian Federation
6744 2 6 69
http://line24.ru/

обновил 2015-06-09 23:55:01 +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)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: 2015-06-09 22:34:30 +0400

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

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

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

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