AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Правило по времени

Newbies/FAQ Forum 9 сообщений -
#1

Добрый день, задача следующая:

Есть 2 голосовые записи

Нужно сделать если звонки поступают в промежуток понедельник-суббота с 9-00 до 19-00 проигрывать первую запись и переводить на группу номеров, если входящий звонок поступает в другое время включать другую запись и после воспроизведения её, делать hangup.


Система elastix 2.2
Asterisk 1.8.7.0

Написан такой сценарий:

exten => _X.,1,Wait(1)
exten => _X.,n,Wait(1)
exten => _X.,n,Playback(custom/1,1,,,1) ; воспроизводит голосовое приветсвие 1
exten => _X.,n,GotoIfTime(08:00-22:00,Mon-Sat,*,*?:to_hangup) ; если звонок приходит не в этот временной промежуток сбрасывает вызов.
;exten => _X.,n,GotoIfTime(09:00-19:00,Mon-Sat,*,*?:Playback(custom/1,1,,,1)
exten => _X.,n,Set(fname=${UNIQUEID})
exten => _X.,n,MixMonitor(/var/spool/asterisk/monitor/${STRFTIME(,,%G%m%d)}/${fname}.wav)
exten => _X.,n,Noop(${EXTEN}"----
#2

А кто не дает вам поставить GotoIfTime до проигрывания приветствия?
_________________
P4 3.0 + 1Gb CentOS 5.7 Aster 1.8.15.1
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#3

я поставлю gotoiftime до проигрывания, как правильно прописать эту строчку, чтобы он выбирал как пригрывать?
exten => _X.,1,Wait(1)
exten => _X.,n,Wait(1)

exten => _X.,n,GotoIfTime(08:00-22:00,Mon-Sat,*,*?: ????? Что здесь нужно прописать чтобы оно выбирало?
exten => _X.,n,Playback(custom/1,1,,,1) ; воспроизводит голосовое приветсвие 1
exten => _X.,n,Playback(custom/2,1,,,1) ; воспроизводит голосовое приветсвие 2
#4

Ваще-то GotoIfTime - это ПЕРЕХОД на другую метку диалплана

типа GotoIfTime(.....:metka1)

exten => s,n(metka1),Playback(......)

_________________
P4 3.0 + 1Gb CentOS 5.7 Aster 1.8.15.1
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#5

Позволю дополнить великого сенсея.

exten => ,n,NoOp(Call from ${CALLERID(num)})
exten => ,n,GotoIfTime(08:00-22:00,Mon-Sat,*,*?Say_Closed) ; переходим на эту метку Say_Closed
exten => ,n,GotoIfTime(09:00-19:00,Mon-Sat,*,*?Say_Open) ; переходим на эту метку Say_Open
exten => ,n,GoTo(exit_dialplan) ;на всякий случай убежим что бы если криво настроено избежать проблем
exten => ,n(Say_Closed),Playback(We_Closed)
Что то делаем или не делаем
exten => ,n,GoTo(exit_dialplan)
exten => ,n(Say_Open),Playback(We_Open)
Что то делаем или не делаем
exten => ,n,GoTo(exit_dialplan)
....................................................................
exten => ,n(exit_dialplan),Hangup()


Но не советую Вам сразу проверять день недели в GotoIfTime, так как возможно что это праздник и Вы работаете в этот день!!! Или это рабочий день но вы не работаете так как это был перенос!!
Делайте проверку на время (если время не рабочее дропайтесь), потом на дату (рабочий выходной по календарю) а уже если нет в базе даты (рабочий/выходной) проверяйте день недели..
Советую сначала нарисовать блок схему и только потом пишите диалплан.

С уважением.

_________________
Мы всегда можем уметь...
#6

Спасибо, поставил

exten => _X.,n,GotoIfTime(08:00-22:00,Mon-Sat,*,*?:metka1)
exten => _X.,n,Playback(custom/121,1,,,1)
exten => _X.,n(metka1),Playback(custom/122,1,,,1)
exten => _X.,n(metka1),Goto(to_hangup)

Корректно ли это?
#7

exten => _X.,n,GotoIfTime(08:00-22:00,Mon-Sat,*,*?:metka1)
exten => _X.,n,Playback(custom/121,1,,,1)
exten => _X.,n,Goto(metka2)
exten => _X.,n(metka1),Playback(custom/122,1,,,1)
exten => _X.,n,Goto(to_hangup)

exten => _X.,n(metka2),....................................

_________________
P4 3.0 + 1Gb CentOS 5.7 Aster 1.8.15.1
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#8

спасибо Smile
#9

А если есть Elastix, то можно зайти в time group, выбрать определенное правило по дням недели, затем в time condition выбрать созданную group и направить по желанию (ivr, ring group, extensions). В inbound route отправить звонок на созданный time condition.
Но, вручную прописывать конфиги конечно наглядней и полезней для изучения, только зачем тогда веб-интерфейс.