И вот снова понадобилась помощь профессионалов.
Создал дерево ИВР отдельным файлом *tree
examle.tree
include=> holiday
include=> night
[example]
exten => s,1,Answer()
exten => s,2,Background(custom/Example_Intro)
exten => s,3,WaitExten(5)
exten => 1,1,Goto(otdel_prodazh,s,1)
exten => 2,1,Goto(sluzhba_podderzhki,s,1)
exten => 3,1,Goto(teh_otdel,s,1)
[MOH]
exten => 222,1,Answer()
exten => 222,n,Set(MUSICCLASS()=default)
exten => 222,n,WaitMusicOnHold(20)
exten => 222,n,Hangup()
exten => t,1,Dial(DAHDI/g12/100,1)
exten => i,1,Dial(DAHDI/g12/100,1)
[otdel_prodazh]
exten => s,1,Background(custom/Otdel_Prodazh)
exten => s,2,Dial(DAHDI/g12/189)
exten => s,3,Dial(DAHDI/g12/187)
exten => 600,1,Voicemail(600)
exten => t,1,Background(custom/operators_busy)
exten => n,1,Goto(otdel-prodazh,s,1)
exten => 0,1,Goto(example,s,1)
[sluzhba_podderzhki]
exten => s,1,Background(custom/Sluzhba_Podderzhki)
exten => s,2,Dial(DAHDI/g12/190)
exten => s,3,Dial(DAHDI/g12/135)
exten => 600,1,Voicemail(600)
exten => t,1,Background(custom/operators_busy)
exten => n,1,Goto(otdel-prodazh,s,1)
exten => 0,1,Goto(example,s,1)
[teh_otdel]
exten => s,1,Background(custom/Teh_Otdel)
exten => s,2,Dial(DAHDI/g12/135)
exten => s,3,Dial(DAHDI/g12/188)
exten => 600,1,Voicemail(600)
exten => t,1,Background(custom/operators_busy)
exten => n,1,Goto(otdel-prodazh,s,1)
exten => 0,1,Goto(example,s,1)
exten => _222,1,Macro(noanswer|SIP|600|)
include => holiday|*|*|1-2|jan
include => holiday|*|*|7|jan
include => holiday|*|*|8|mar
include => holiday|*|*|22|mar
include => holiday|*|*|1|may
include => holiday|*|*|7|may
include => holiday|*|*|9|may
include => holiday|*|*|6|july
include => holiday|*|*|30|aug
include => holiday|*|*|15|oct
include => holiday|*|*|16|dec
include => day|09:00-18:00|mon-fri|*|*
include => night|18:01-8:59|mon-fri|*|*
include => night|*|sat-sun|*|*
[holiday]
exten => s,1,Answer
exten => s,n,Playback(custom/example_non_working)
exten => s,n,Hangup
[night]
exten => s,1,Answer
exten => s,n,Playback(custom/example_non_working)
exten => s,n,Hangup
Издержка из exten_custom.conf для этого дерева
#include "example.tree"
;Example Call Centre
exten => 222,1,Goto(example,s,1)
;VoiceMail User
exten => 600,1,Dial(SIP/ravil.nassifulin,20)
exten => 600,n,VoiceMail(600@default,u)
Файл Voicemail.conf
600 => ,example,example@nat.kz,attach=yes
Добавил также в файле vm_general некоторые записи (красным):
attach=yes
pbxskip=yes ; Don't put [PBX]: in the subject line
serveremail=vm@asterisk ; Who the e-mail notification should appear to come from
fromstring=Voicemail System ; Real name of email sender
maxsilence=10 ; Wait for 5 silent seconds and end the voicemail
silencethreshold=128 ; What do we consider to be silence
skipms=3000 ; How many miliseconds to skip forward/back when rew/ff in message playback
review=yes ; Allow sender to review/rerecord their message before saving it
operator=yes ; Allow caller to press 0
nextaftercmd=yes ; Automagically play next message when current message is deleted or saved
format=wav49|gsm|wav
maxlogins=3
emaildateformat=%A, %d %B %Y at %H:%M:%S
mailcmd=/usr/sbin/sendmail -t
sendvoicemail=yes
Вооот, в принципе, так
1. Не работает во внерабочее время проигрыш о нерабочем времени (сейчас хоть в какое время проигрыш один и тот же, рабочее время)
2. Не работает отправка во внерабочее время отправка на почтовый ящик письма о пропущенном звонке
3. Не получается поставить музыку (рекламу) в режиме ожидания.
Можно посмотреть, где, в чем ошибка, что я не дописал, что надо сделать?
Спасибо заранее
1. Можно ли как то сделать и как сделать отправку писем о звонках во внерабочее время (сообщения о том, чтобы оставить сообщение и перезвонить в рабочее) без подключения скриптов и Mysql?
2. Как правильно и куда поставить сообщение по времени о работе/не работе?
3. Куда вставить музыку (рекламу) в режиме ожидания именно после набора цифры "1" либо "2" или "3"?
Буду премного благодарен.
Я бы все же сделал проверку через agi + таблицу MySQL где указаны 1: рабочие часы 2: Исключения.
И куда у Вас приходит звонок? В какой контекст?
И вообще, вы бы сначала сделали хотя бы одно а потом уже сверху функционал добавляли.
p.s. У вас кстать и в night и holiday одно и то же "Playback(custom/example_non_working) "
з.ы. Утрясите свой код в одном месте переходы 1,2,3 в другом 1,n,n
_________________
Мы всегда можем уметь...
Звонок приходи в extensions_custom.conf
сверху
#include example.tree
[from-internal-custom]
;Example Call Centre
exten => 222,1,Goto(nomad-gps,s,1)
Ну вот, спрашиваю все по очереди
Как я вижу
1. Приходим в s и отвечаем, далее говорим Example_Intro, далее ждем 5 секунд и все
| Код: |
| [example] exten => s,1,Answer() same => n,Background(custom/Example_Intro) same => n,WaitExten(5) exten => 1,1,Goto(otdel_prodazh,s,1) exten => 2,1,Goto(sluzhba_podderzhki,s,1) exten => 3,1,Goto(teh_otdel,s,1) |
А как у Вас, что слышите, что в консоли происходит? Дайте лог работы.
_________________
Мы всегда можем уметь...
-- Goto (nomad-gps,s,1)
-- Executing [s@example:1] Answer("SIP/173-000000b7", "") in new stack
-- Executing [s@example:2] BackGround("SIP/173-000000b7", "custom/example_Intro") in new stack
-- Playing 'custom/example_Intro.slin' (language 'ru')
== CDR updated on SIP/173-000000b7
-- Executing [2@example:1] Goto("SIP/173-000000b7", "sluzhba_podderzhki,s,1") in new stack
-- Goto (sluzhba_podderzhki,s,1)
-- Executing [s@sluzhba_podderzhki:1] BackGround("SIP/173-000000b7", "custom/Sluzhba_Podderzhki") in new stack
-- Playing 'custom/Sluzhba_Podderzhki.slin' (language 'ru')
-- Executing [s@sluzhba_podderzhki:2] Dial("SIP/173-000000b7", "DAHDI/g12/190") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/g12/190
-- DAHDI/i2/190-729 is proceeding passing it to SIP/173-000000b7
-- DAHDI/i2/190-729 is ringing
-- Hungup 'DAHDI/i2/190-729'
== Spawn extension (sluzhba_podderzhki, s, 2) exited non-zero on 'SIP/173-000000b7'
Но уже тут понятно что проверки на время нет и это понятно.
_________________
Мы всегда можем уметь...
Сейчас...
без нажатия лог
Executing [222@from-internal:1] Goto("SIP/173-000000b8", "example,s,1") in new stack
-- Goto (example,s,1)
-- Executing [s@example:1] Answer("SIP/173-000000b8", "") in new stack
-- Executing [s@example:2] BackGround("SIP/173-000000b8", "custom/example_Intro") in new stack
-- Playing 'custom/example.slin' (language 'ru')
-- Executing [s@nomad-gps:3] WaitExten("SIP/173-000000b8", "5") in new stack
-- Timeout on SIP/173-000000b8, going to 't'
-- Executing [t@example:1] Dial("SIP/173-000000b8", "DAHDI/g12/100,1") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/g12/100
-- DAHDI/i2/100-72f is proceeding passing it to SIP/173-000000b8
-- DAHDI/i2/100-72f is ringing
-- Nobody picked up in 1000 ms
-- Hungup 'DAHDI/i2/100-72f'
-- Auto fallthrough, channel 'SIP/173-000000b8' status is 'NOANSWER'
Ну в любом случае на все Ваши вопросы лог ответил. В [example] нет никаких проверок на время и прочее.
У Вас кривая логика работы.
Советую прочитать тут про include тут про стандартные экстеншены
Тут очень подробно про include применительно ко времени!
P.S. А кстати где у Вас контекст day?
_________________
Мы всегда можем уметь...
буду читать
Контекст day в основном extensions_custom
Added after 15 minutes:
переделал (вернее поменял местами)
[holiday]
exten => s,1,Background(custom/example_non_working)
[day]
exten => s,1,Dial(DAHDI/1,20)
[night]
exten => s,1,Background(custom/example_non_working)
[default]
include => holiday|*|*|1-2|jan
include => holiday|*|*|7|jan
include => holiday|*|*|8|mar
include => holiday|*|*|22|mar
include => holiday|*|*|1|may
include => holiday|*|*|7|may
include => holiday|*|*|9|may
include => holiday|*|*|6|july
include => holiday|*|*|30|aug
include => holiday|*|*|15|oct
include => holiday|*|*|16|dec
include => day|09:00-18:00|mon-fri|*|*
include => night|18:01-8:59|mon-fri|*|*
include => night|*|sat-sun|*|*
[example]
exten => s,1,Answer()
exten => s,2,Background(custom/example_Intro)
exten => s,3,WaitExten(5)
exten => 1,1,Goto(otdel_prodazh,s,1)
exten => 2,1,Goto(sluzhba_podderzhki,s,1)
exten => 3,1,Goto(teh_otdel,s,1)
exten => t,1,Dial(DAHDI/g12/100,1)
exten => i,1,Dial(DAHDI/g12/100,1)
exten => _222,1,Macro(noanswer|SIP|600|)
[MOH]
exten => 222,1,Answer()
exten => 222,n,Set(MUSICCLASS()=default)
exten => 222,n,WaitMusicOnHold(20)
exten => 222,n,Hangup()
[otdel_prodazh]
exten => s,1,Background(custom/Otdel_Prodazh)
exten => s,2,Dial(DAHDI/g12/189)
exten => s,3,Dial(DAHDI/g12/187)
exten => 600,1,Voicemail(600)
exten => t,1,Background(custom/operators_busy)
exten => n,1,Goto(otdel-prodazh,s,1)
exten => 0,1,Goto(example,s,1)
[sluzhba_podderzhki]
exten => s,1,Background(custom/Sluzhba_Podderzhki)
exten => s,2,Dial(DAHDI/g12/190)
exten => s,3,Dial(DAHDI/g12/135)
exten => 600,1,Voicemail(600)
exten => t,1,Background(custom/operators_busy)
exten => n,1,Goto(otdel-prodazh,s,1)
exten => 0,1,Goto(example,s,1)
[teh_otdel]
exten => s,1,Background(custom/Teh_Otdel)
exten => s,2,Dial(DAHDI/g12/135)
exten => s,3,Dial(DAHDI/g12/188)
exten => 600,1,Voicemail(600)
exten => t,1,Background(custom/operators_busy)
exten => n,1,Goto(otdel-prodazh,s,1)
exten => 0,1,Goto(example,s,1)
вот, как то так
только все равно не пашет
в чем причина??
| Код: |
| [holiday] exten => s,1,Answer() same => n,Background(custom/example_non_working) same => n,WaitExten(5) [day] exten => s,1,Answer() same => n,Dial(DAHDI/1,20) same => n,WaitExten(5) [night] exten => s,1,Answer() same => n,Background(custom/example_non_working) same => n,WaitExten(5) [example] include => holiday|*|*|1-2|jan include => holiday|*|*|7|jan include => holiday|*|*|8|mar include => holiday|*|*|22|mar include => holiday|*|*|1|may include => holiday|*|*|7|may include => holiday|*|*|9|may include => holiday|*|*|6|july include => holiday|*|*|30|aug include => holiday|*|*|15|oct include => holiday|*|*|16|dec include => day|09:00-18:00|mon-fri|*|* include => night|18:01-8:59|mon-fri|*|* include => night|*|sat-sun|*|* exten => 1,1,Goto(otdel_prodazh,s,1) exten => 2,1,Goto(sluzhba_podderzhki,s,1) exten => 3,1,Goto(teh_otdel,s,1) exten => t,1,Dial(DAHDI/g12/100,1) exten => i,1,Dial(DAHDI/g12/100,1) |
_________________
Мы всегда можем уметь...
Можно закрывать тему.
Будет еще вопрос, но это не в этой теме. Создам новую