Шаблоны Joomla 3 здесь: http://www.joomla3x.ru/joomla3-templates.html

Голосовое уведомление при получении факса

Автор: GAMER вкл. .

После поднятия факс-сервера на Asterisk (см. http://gamer.uz.ua/index.php/linux/21-iaxmodemhylafaxasteriskubuntu), захотелось уведомлять получателей голосовым звонком (факс приходит на мыло, которое нужно ж почитать :) ).

И так, задача. При звонках на определенный номер, нужно сделать голосовое меню с выбором, кому отправлять факс.

В диалплане (extensions.conf) пишем такие секции:

[fax-ivr]; собственно меню выбора отдела
exten => s,1,NoOp(ivr-main)
exten => s,2,Set(try=1)
exten => s,3,Answer
exten => s,4,Set(DigitTimeout=2)
exten => s,5,Set(ResponseTimeout=10)
exten => s,6(faxivr),Background(/usr/share/asterisk/sounds/custom/record/faxivr); само голосовое меню
exten => s,7,WaitExten()

exten => 1,1,Goto(fax,6502,1)
exten => 2,1,Goto(fax,6501,1)
exten => 3,1,Goto(fax,6500,1)
exten => 4,1,Goto(fax,6503,1)
exten => 5,1,Goto(fax,6500,1)

exten => i,1,Set(try=${try}+1)
exten => i,2,GotoIf($[${try} < 4]?3:5)
exten => i,3,Background(/usr/share/asterisk/sounds/custom/record/m3); неправильный выбор
exten => i,4,Goto(s,7)
exten => i,5,Goto(fax,6500,1)

exten => t,1,Goto(fax,6500,1)

 

[fax]; прием факса
exten => 6500,1,noop(fax-6500)
exten => 6500,n,Dial(IAX2/iaxmodem0,5,g)
exten => 6500,n,System(cp /etc/asterisk/call/150.call /tmp/)
exten => 6500,n,System(mv /tmp/150.call /var/spool/asterisk/outgoing/)
exten => 6500,n,noop(end-fax-6500)
exten => 6500,n, Hangup()

exten => 6501,1,noop(fax-6501)
exten => 6501,n,Dial(IAX2/iaxmodem1,5,g)
exten => 6501,n,System(cp /etc/asterisk/call/160.call /tmp/)
exten => 6501,n,System(mv /tmp/160.call /var/spool/asterisk/outgoing/)
exten => 6501,n,noop(end-fax-6501)
exten => 6501,n, Hangup()

exten => 6502,1,noop(fax-6502)
exten => 6502,n,Dial(IAX2/iaxmodem2,5,g)
exten => 6502,n,System(cp /etc/asterisk/call/303.call /tmp/)
exten => 6502,n,System(mv /tmp/303.call /var/spool/asterisk/outgoing/)
exten => 6502,n,noop(end-fax-6502)
exten => 6502,n, Hangup()

exten => 6503,1,noop(fax-6503)
exten => 6503,n,Dial(IAX2/iaxmodem3,5,g)
exten => 6503,n,System(cp /etc/asterisk/call/310.call /tmp/)
exten => 6503,n,System(mv /tmp/310.call /var/spool/asterisk/outgoing/)
exten => 6503,n,noop(end-fax-6503)
exten => 6503,n, Hangup()

exten => 6504,1,noop(fax-6504)
exten => 6504,n,Dial(IAX2/iaxmodem4,5,g)
exten => 6504,n,System(cp /etc/asterisk/call/306.call /tmp/)
exten => 6504,n,System(mv /tmp/306.call /var/spool/asterisk/outgoing/)
exten => 6504,n,noop(end-fax-6504)
exten => 6504,n, Hangup()

[call-file]; план автодозвона с уведомлением. Для каждого отдела своя реплика
exten => 10,1,Answer()
exten => 10,n,Wait(1)
exten => 10,n,Playback(/usr/share/asterisk/sounds/custom/record/fax_rec)
exten => 10,n,Wait(1)
exten => 10,n,Hangup()

exten => 11,1,Answer()
exten => 11,n,Wait(1)
exten => 11,n,Playback(/usr/share/asterisk/sounds/custom/record/fax_bron)
exten => 11,n,Wait(1)
exten => 11,n,Hangup()

exten => 12,1,Answer()
exten => 12,n,Wait(1)
exten => 12,n,Playback(/usr/share/asterisk/sounds/custom/record/fax_buh)
exten => 12,n,Wait(1)
exten => 12,n,Hangup()

exten => 13,1,Answer()
exten => 13,n,Wait(1)
exten => 13,n,Playback(/usr/share/asterisk/sounds/custom/record/fax_rest)
exten => 13,n,Wait(1)
exten => 13,n,Hangup()

exten => 14,1,Answer()
exten => 14,n,Wait(1)
exten => 14,n,Playback(/usr/share/asterisk/sounds/custom/record/fax)
exten => 14,n,Wait(1)
exten => 14,n,Hangup()

fax_buh и подобные - записи с уведомлением, типа: "факс для бухгалтерии".

Файлы, в которых описывается правило автодозвона хранятся в каталоге  /etc/asterisk/call и имеют расширение call.

Формат файла такой:

$cat 150.call
Channel: SIP/trunk_1/778150
Callerid: 6500
MaxRetries: 1
RetryTime: 5
WaitTime: 20
Context: call-file
Extension: 10

где Channel: SIP/trunk_1/778150 - куда делать автодозвон,

     Extension: 10 - расширение, под которым будет обрабатываться событие в секции [call-file].

Просим кого-то отправить для нас факс и проверяем :)