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

Дерево IVR

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

Всем снова привет.
И вот снова понадобилась помощь профессионалов.
Создал дерево ИВР отдельным файлом *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"?

Буду премного благодарен.
#2

Я конечно как обычно скажу какую то ерунду, но ошибки есть?

Я бы все же сделал проверку через agi + таблицу MySQL где указаны 1: рабочие часы 2: Исключения.

И куда у Вас приходит звонок? В какой контекст?

И вообще, вы бы сначала сделали хотя бы одно а потом уже сверху функционал добавляли.

p.s. У вас кстать и в night и holiday одно и то же "Playback(custom/example_non_working) "
з.ы. Утрясите свой код в одном месте переходы 1,2,3 в другом 1,n,n

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

ну в night и holiday правильно, нерабочее время, поэтому одно и тоже сообщение
Звонок приходи в extensions_custom.conf

сверху
#include example.tree

[from-internal-custom]
;Example Call Centre
exten => 222,1,Goto(nomad-gps,s,1)

Ну вот, спрашиваю все по очереди
#4

гм..все яно, надо было написать что в example переход =)

Как я вижу
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)


А как у Вас, что слышите, что в консоли происходит? Дайте лог работы.

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

-- Executing [222@from-internal:1] Goto("SIP/173-000000b7", "example,s,1") in new stack
-- 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'
#6

Не понял, это Вы нажимаете на кнопку 2 или само переходит? Если само, я пойду перечитаю книгу, если Вы то ничего не нажимайте и киньте еще раз лог работы.
Но уже тут понятно что проверки на время нет и это понятно.

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

Да, я нажимаю
Сейчас...


без нажатия лог

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'
#8

Ну все тогда понятно кроме какого он идет в MOH (или откуда это Executing [t@example:1]) и там на t попадает..я не понял =( У Вас в [example] нет t и по идее все должно вроде как сбросится.
Ну в любом случае на все Ваши вопросы лог ответил. В [example] нет никаких проверок на время и прочее.

У Вас кривая логика работы.
Советую прочитать тут про include тут про стандартные экстеншены
Тут очень подробно про include применительно ко времени!



P.S. А кстати где у Вас контекст day?

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

пасиб
буду читать Smile
Контекст 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)


вот, как то так


только все равно не пашет
в чем причина??
#10

Гм, могу ошибится, попробуйте так

Код:

[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)

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

Всем спасибо, все сделано. Разобрался сам с Voicemail, с musiconhold с деревом, все работает
Можно закрывать тему.
Будет еще вопрос, но это не в этой теме. Создам новую