Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Шедалер в Asterisk

Шедалер в Asterisk

Как выполнять некие действия в *
1 23>
Сообщений: 203

Шедалер в Asterisk

Добрый день. (с уток писать не буду)

Есть 2 вопроса с которыми не знаю как более нативно для Asterisk разобраться.

1. По планировщику (желательно встроенному в *) выполнять некие действия. Меня устроит даже эмитировать выполнение диалплана по какому-то заранее заданому екстеншену.

2. При старте * поднимать значения глобальных переменных из заранее сохранённого места, а не дефолтовые значения.

С первым вопросом вообще пока ума не приложу как это сделать красиво... По этому не буду высказывать глупые идеи...
С вторым вопросом немного более понятно. При выполнении команд из диалплана меняю значения переменных и скриптом записываю в некий условно ini файл эти новые значения. НО! Не могу найти простые примеры создания таких собственных конфигов, с дальнейшим их чтением при старте *.

Суть вопроса проста. Есть АТС. Есть её текущее состояние которое было изменено (значения глобальных переменных). Хочу при рестарте получить то состояние, которое было до рестарта.
2008-12-22 23:03

Сообщений: 6521

Re: Шедалер в Asterisk

Надо же!
Дай мне Господи, изменить то, что в моих силах, и дай смирение принять то, что не в моих силах изменить.
А главное - дай разумение отличать одно от другого.
Аминь!

Хоть малость, да изменил... (Но утки уже, высоко-высоко, летать так летать, я им помашу рукой!)

1. Call file по cron - легко. Я раньше пачку набабахивал, для непрерывного бомбометания в сторону многоканальных номеров московских спаммеров. Строго в 9:00 включалси, и в 16:00 выключалси.

2. если делается (а должно!) через safe_asterisk то по-моему не проблема его творчески переработать?
Anyway, в Триксбоксе всякая чума подгружается инклюдными файлами. В нужном месте в файле стоит строка
#include sip_general_custom.conf
ясно, что в секции [general] и вот все переменные там записанные принимаются при старте-рестарте
2008-12-22 23:45

Сообщений: 6521

Re: Шедалер в Asterisk

schedule [‘ edu:l//’skedзvl,-dзel]
что можно описать русскими фонемами как скедьюл. Относительно топика, значить, скедьюлер.
Ну и анекдот в тему:

A WOMAN'S SCHEDULE:
1. Get up.
2. Pee.
3. Drink raspberry-cranberry tea.
4. Pee.
5. Apply makeup. Pee first so you don't have to stop in the middle.
6. Drive to work. Pee at gas station. Complain about dirty restroom. Go to a different gas station and pee there.
7. Get to work at Burger King. Pee. Wash hands.
8. Lunch. Slimfast. Pee.
9. Arrive home. Pee. Shower. Pee.
10. Promise sex to husband. Pee. Get up in the middle of sex and pee.
11. Pee. Go to bed. Get up at 3 A.M. waking husband but instead of giving him head, go and pee.
2008-12-23 00:55

Avatara of simax
Откуда: Нижний Новгород
Сообщений: 277

Re: Шедалер в Asterisk

А еще по пункту 2 можно использовать #exec директиву в * 1.6 если конечно она работает :-)
2008-12-23 01:03

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Шедалер в Asterisk

2. При старте * поднимать значения глобальных переменных из заранее сохранённого места, а не дефолтовые значения.
Глобальные переменные устанавливаются функцией GLOBAL. Сразу после старта Asterisk надо делать вызов asterisk -rx 'originate Local/s@set-globals application NoOp'.
Содержимое set-globals:
[set-globals]
exten => s,1,Set(GLOBAL(bla)=1)
exten => s,2,Set(GLOBAL(bla2)=2)
exten => s,3,Hangup

лог:
*CLI> originate Local/s@set-globals application NoOp
[2008-12-23 08:45:45] -- Executing [s@set-globals:1] Set("Local/s@set-globals-c7fe,2", "GLOBAL(bla)=1") in new stack
[2008-12-23 08:45:45] == Setting global variable 'bla' to '1'
[2008-12-23 08:45:45] -- Executing [s@set-globals:2] Set("Local/s@set-globals-c7fe,2", "GLOBAL(bla2)=2") in new stack
[2008-12-23 08:45:45] == Setting global variable 'bla2' to '2'
[2008-12-23 08:45:45] -- Executing [s@set-globals:3] Hangup("Local/s@set-globals-c7fe,2", "") in new stack
[2008-12-23 08:45:45] == Spawn extension (set-globals, s, 3) exited non-zero on 'Local/s@set-globals-c7fe,2'
*CLI>

Обожаю такие задачки!
P.S. Hint: module load res_clioriginate.so
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-12-23 08:47

Сообщений: 203

Re: Шедалер в Asterisk

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

Мне надо не просто переменные выставлять в некое значение при старте (всегда одно и тоже), а скажем есть переменная WorkTime. Возможные значения 0/1/2. В диалплане есть следующее:
; SET TIME
exten => _78[012],1,SET(GLOBAL(WorkTime)=${EXTEN:2})
exten => _78[012],n,Playback(beep)
exten => _78[012],n,Hangup


Я хочу не просто всегда при рестарте в 0 выставить, а если до рестарта значение было 1, тогда и после рестарта вернуть значение 1...

Как я понимаю надо рыть в сторону safe_asterisk, но пока не уверен. (только что начал читать)
2008-12-23 12:33

Avatara of svoy
Откуда: Киев
Сообщений: 1096

Re: Шедалер в Asterisk

Вам же Ded подсказал идею с include.
что вам мешает перезаписывать во время работы файлик командой System(echo ... > file). После рестарта этот файл подгрузится автоматом
2008-12-23 12:44

Сообщений: 6521

Re: Шедалер в Asterisk

Иван, я понял.
Как ни жаль Ваших собственных наработок, это всё давно реализовано в FreePBX. Вот там есть временные сеты - Day/Night control, определить можно просто и понятно - каждый сет будет иметь номер 0, 1, 2, и так далее, который есть последняя цифра сервисного кода *28. То есть включить режим 0 - набрать *280, включить режим 1 - набрать *281, и так далее, всё как у Вас.
И ещё там автоматизация всего этого добра - Time conditions, которые создав, можно применять как фильтры для входящих, без писания диалпланов руками.
2008-12-23 12:57

Сообщений: 229

Re: Шедалер в Asterisk

baho_76:

Я хочу не просто всегда при рестарте в 0 выставить, а если до рестарта значение было 1, тогда и после рестарта вернуть значение 1...
astdb
2008-12-23 13:23

Сообщений: 6521

Re: Шедалер в Asterisk

mean
CLI> database put bla bla bla
2008-12-23 13:56

1 23>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru