asterisk ночной режим

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

asterisk ночной режим

Сообщение immortal » Чт июл 11, 2013 10:53 pm

настройка маджордомо сводится к добавлению выключателя

перед настройкой диалплана астериска лезем в базу и смотрим ID переменной night (лениво было писать выборку по имени, в принципе можно переписать значение переменной)


в диалплан добавляем проверку включения или выключения режима:
/mnt/disk2/ast/menu/ - путь к файлам меню (изменить на свой)
в начало файла extensions.conf Добавляем пути, куда будут записываться разговоры

Код: Выделить всё

[globals]
WAV=/mnt/disk2/ast/wav
MP3=/mnt/disk2/ast/mp3

1. записываем звуковое сообщение ночной и дневной режим (99# вызов) (если используете мои файлы, можно это пункт пропустить)

Код: Выделить всё

;запись голоса для меню
exten => _99,1,Wait(2)
exten => _99,n,Set(filename=${STRFTIME(${EPOCH},,%Y-%m-%d_%H_%M_%S)})
exten => _99,n,Record(/mnt/disk2/ast/menu/${filename}:wav)
exten => _99,n,Wait(1)
exten => _99,n,Playback(/mnt/disk2/ast/menu/${filename})
exten => _99,n,Wait(2)
exten => _99,n,Hangup()
2. в диалплан в секцию екстеншена пишем (у меня проверка: 55# вызов) соответственно заменив db_user db_password и PROPERTY_ID='54'

Код: Выделить всё

exten => day-gw,1,Playback(/mnt/disk2/ast/menu/r_day)
exten => day-gw,2,Return
exten => night-gw,1,Playback(/mnt/disk2/ast/menu/r_night)
exten => night-gw,2,Return
;проверка режима
exten => 55,1,MYSQL(Connect connid localhost db_user db_password db_terminal)
exten => 55,2,MYSQL(Query resultid ${connid} SELECT VALUE,PROPERTY_ID FROM pvalues WHERE PROPERTY_ID='54')
exten => 55,3,MYSQL(Fetch fetchid ${resultid} pDayNight)
exten => 55,4,GosubIf($[${pDayNight} = 0]?day-gw,1:night-gw,1)
exten => 55,5,Playback(/mnt/disk2/ast/menu/${pDayNight})
exten => 55,6,MYSQL(Clear ${resultid})
exten => 55,7,MYSQL(Disconnect ${connid})
exten => 55,8,Hangup()
3. добавляем в диалплан входящего звонка, у меня на номер 10

Код: Выделить всё

;входящие с linksys3102
[from-gw]
exten => 10,1,Answer()
exten => 10,2,MYSQL(Connect connid localhost db_user db_password db_terminal)
exten => 10,3,MYSQL(Query resultid ${connid} SELECT VALUE,PROPERTY_ID FROM pvalues WHERE PROPERTY_ID='54')
exten => 10,4,MYSQL(Fetch fetchid ${resultid} pDayNight)
exten => 10,5,GotoIf($[${pDayNight} = 0]?13:6)
exten => 10,6,Set(filename=${STRFTIME(${EPOCH},,1night-%Y-%m-%d_%H_%M)}-${CALLERID(number)}-${EXTEN}-in)
exten => 10,7,Set(monopt=nice -n 19 /usr/bin/lame -b 16 --silent "${WAV}/${filename}-in.wav" "${MP3}/night/${filename}.mp3" && rm -f "${WAV}/${filename}-in.wav" && rm -f "${WAV}/${filename}-out.wav")
exten => 10,8,Monitor(wav,${MP3}/night/${filename})
exten => 10,9,Playback(/mnt/disk2/ast/menu/menu_night)
exten => 10,10,MYSQL(Clear ${resultid})
exten => 10,11,MYSQL(Disconnect ${connid})
exten => 10,12,Hangup()
exten => 10,13,Set(filename=${STRFTIME(${EPOCH},,%Y-%m-%d_%H_%M)}-${CALLERID(number)}-${EXTEN}-in)
exten => 10,14,Set(monopt=nice -n 19 /usr/bin/lame -b 16 --silent "${WAV}/${filename}.wav" "${MP3}/${filename}.mp3" && rm -f "${WAV}/${filename}.wav")
exten => 10,15,MixMonitor(${WAV}/${filename}.wav,,${monopt})
exten => 10,16,Dial(SIP/10,60,t)
exten => 10,17,Hangup()
строки:
1 - поднятие трубки
2-4 - подключение к базе и считывание данных
5 - проверка значения
6-12 - проигрывание звукового сообщения при включении ночного режима
8 - можно убрать, пишет в папку что говорит звонящий когда слушает сообщение, можно убрать.
с 13 до конца - дневной режим, стандартный звонок
13-15 - запись разговора и конвертация сразу в mp3
16 - звоним на SIP/10 - это fxs linksys 3102
17 - вешаем трубку.

Если будете добавлять или убирать строки, то не забудьте поправить в 5-й строке ссылки на 13-ю и 6-ю

Вот собственно и все, проверка режима нужна только при отладке и можно её не делать и пропустить 1 и 2-й пункты.
Вложения
menu_ast.tar.gz
аудиофайлы
(131.3 КБ) 802 скачивания
Выделение_006.png
добавление выключателя
Выделение_006.png (95.14 КБ) 4358 просмотров
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Ответить