Страница 1 из 2

Call Center не работает запись звонков

Добавлено: 09 янв 2014, 07:37
merkajiu
Всем привет! Форумчане нужна помощь.
Создал дерево Колл Центра, все работает за исключением записи звонков.
Схема следующая: МЕридиан<=>Астер+wildcard te220 (E1).
На * создан экст 333 ( exten=> 333,1,Goto (banksgate,s,1) звонки поступают на этот номер далее по списку дерева идет звонок из очереди на МЕРИДИАН номера 313&324

Дерево колл центра

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

[banksgate]
exten => s,1,GotoIfTime(9:00-19:00|mon-fri|*|*?wellcome,s,1)
exten => s,2,GotoIfTime(19:01-8:59|mon-fri|*|*?not_working,s,1)
exten => s,3,GotoIfTime(*|sut-sun|*|*?not_working,s,1)

[wellcome]
exten => s,1,Answer()
exten => s,2,Background(custom/BanksIntro)
exten => s,3,Goto(contact_center,s,1)

[contact_center]
exten => s,1,Dial(DAHDI/g12/313&DAHDI/g12/324,15,m())
exten => s,2,Dial(DAHDI/g11/8123456789,18,m())
exten => 382,1,Voicemail(382)
exten => s,3,Playback(custom/OperatorsBusy)
exten => s,n,Goto(contact_center,s,1)

[not_working]
exten => s,2,Playback(custom/NonWorkingBanks)
exten => s,1,Answer
exten => s,3,GotoIfTime(19:01-8:59|*|*|*?voicemail,s,1)
exten => s,4,GotoIfTime(*|sat-sun|*|*?voicemail,s,1)

[voicemail]
exten => s,1,Answer
exten => s,2,Voicemail(382,s)
exten => s,3,Hangup
Debug

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

-- Accepting call from '175' to '333' on channel 0/14, span 2
    -- Executing [333@from-meridian:1] Goto("DAHDI/i2/175-491", "from-internal,333,1") in new stack
    -- Goto (from-internal,333,1)
    -- Executing [333@from-internal:1] Goto("DAHDI/i2/175-491", "banksgate,s,1") in new stack
    -- Goto (banksgate,s,1)
    -- Executing [s@banksgate:1] GotoIfTime("DAHDI/i2/175-491", "9:00-19:00|mon-fri|*|*?wellcome,s,1") in new stack
    -- Goto (wellcome,s,1)
    -- Executing [s@wellcome:1] Answer("DAHDI/i2/175-491", "") in new stack
    -- Executing [s@wellcome:2] BackGround("DAHDI/i2/175-491", "custom/BanksIntro") in new stack
    -- <DAHDI/i2/175-491> Playing 'custom/BanksIntro.slin' (language 'en')
    -- Executing [s@wellcome:3] Goto("DAHDI/i2/175-491", "contact_center,s,1") in new stack
    -- Goto (contact_center,s,1)
    -- Executing [s@contact_center:1] Dial("DAHDI/i2/175-491", "DAHDI/g12/313&DAHDI/g12/324,15,m()") in new stack
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g12/313
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g12/324
    -- Started music on hold, class 'default', on DAHDI/i2/175-491
    -- DAHDI/i2/313-492 is proceeding passing it to DAHDI/i2/175-491
    -- DAHDI/i2/313-492 is ringing
    -- DAHDI/i2/324-493 is proceeding passing it to DAHDI/i2/175-491
    -- DAHDI/i2/324-493 is ringing
    -- Nobody picked up in 15000 ms
    -- Stopped music on hold on DAHDI/i2/175-491
    -- Hungup 'DAHDI/i2/324-493'
    -- Hungup 'DAHDI/i2/313-492'
    -- Executing [s@contact_center:2] Dial("DAHDI/i2/175-491", "DAHDI/g11/87012046426,18,m()") in new stack
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g11/87012046426
    -- Started music on hold, class 'default', on DAHDI/i2/175-491
    -- DAHDI/i1/87012046426-358 is proceeding passing it to DAHDI/i2/175-491
    -- DAHDI/i1/87012046426-358 is ringing
    -- DAHDI/i1/87012046426-358 is making progress passing it to DAHDI/i2/175-491
    -- Nobody picked up in 18000 ms
    -- Stopped music on hold on DAHDI/i2/175-491
    -- Hungup 'DAHDI/i1/87012046426-358'
    -- Executing [s@contact_center:3] Playback("DAHDI/i2/175-491", "custom/OperatorsBusy") in new stack
    -- <DAHDI/i2/175-491> Playing 'custom/OperatorsBusy.slin' (language 'en')
    -- Executing [s@contact_center:4] Goto("DAHDI/i2/175-491", "contact_center,s,1") in new stack
    -- Goto (contact_center,s,1)
    -- Executing [s@contact_center:1] Dial("DAHDI/i2/175-491", "DAHDI/g12/313&DAHDI/g12/324,15,m()") in new stack
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g12/313
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g12/324
    -- Started music on hold, class 'default', on DAHDI/i2/175-491
    -- DAHDI/i2/313-494 is proceeding passing it to DAHDI/i2/175-491
    -- DAHDI/i2/313-494 is ringing
    -- DAHDI/i2/324-495 is proceeding passing it to DAHDI/i2/175-491
    -- DAHDI/i2/324-495 is ringing
    -- Span 2: Channel 0/14 got hangup request, cause 16
    -- Stopped music on hold on DAHDI/i2/175-491
    -- Hungup 'DAHDI/i2/324-495'
    -- Hungup 'DAHDI/i2/313-494'
Оператор берет трубку и на этом все.
Добавлял Mixmonitor в дерево, создавал отдельный файл с включением в дерево. Добавлял командой put в базу. > НЕ помогло.

Mixmonitor работает. Запись звонка SIP отрабатывает.

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 07:50
awsswa
Что то добавляю, что убавляю - но вам не покажу
а вам задание сделать правильно.

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:06
merkajiu
Что было сделано:
CLI>database put rec_a 333 1

Отдельный файл rec.monitor. Включен в дерево кол центра
exten => s,1,Answer()
exten => _X.,1,Set(CALLERPRES()=allowed_not_screened)
exten => _X.,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}_(${STRFTIME(${EPOCH},,%d-%m-%Y)}_${STRFTIME(${EPOCH},,H-%M)})_SRC(${CDR(src)})-DST(${CDR(dst)}).wav,b)
exten => _X.,n,Set(CALLERID(all))
exten => _X.,n,Dial(DAHDI/g12/${EXTEN})
exten => s,n,Hangup()

С астером начал работать пару месяцев. Может подскажете куда копать?

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:10
Vlad1983
что есть "дерево кол центра"?

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:14
merkajiu
Файл кол центра назвал banksgate.tree. Потому и дерево :) . Люди ну серьезно, помогите плиз.

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:21
awsswa
покажите нам звонок - где видно что ваше волшебное правило отрабатывает
потому как то что вы привели в debug - там точно нет строки MixMonitor

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:27
Vlad1983
заодно расскажите какое "дерево" выдумало такое разбрасывание диалплана по файлам

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:31
merkajiu
Так вот именно что не отрабатывает.

Вот дебаг 350 sip

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

 -- Executing [175@from-internal:1] Macro("SIP/350-00000040", "user-callerid,SKIPTTL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/350-00000040", "AMPUSER=350") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/350-00000040", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/350-00000040", "1?Set(REALCALLERIDNUM=350)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/350-00000040", "AMPUSER=350") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/350-00000040", "AMPUSERCIDNAME=Operator1") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/350-00000040", "0?report") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/350-00000040", "AMPUSERCID=350") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/350-00000040", "CALLERID(all)="Operator1" <350>") in new stack
    -- Executing [s@macro-user-callerid:9] ExecIf("SIP/350-00000040", "0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s@macro-user-callerid:10] GotoIf("SIP/350-00000040", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [s@macro-user-callerid:19] Set("SIP/350-00000040", "CALLERID(number)=350") in new stack
    -- Executing [s@macro-user-callerid:20] Set("SIP/350-00000040", "CALLERID(name)=Operator1") in new stack
    -- Executing [s@macro-user-callerid:21] NoOp("SIP/350-00000040", "Using CallerID "Operator1" <350>") in new stack
    -- Executing [175@from-internal:2] NoOp("SIP/350-00000040", "Calling Out Route: ToAstana") in new stack
    -- Executing [175@from-internal:3] Set("SIP/350-00000040", "MOHCLASS=none") in new stack
    -- Executing [175@from-internal:4] Set("SIP/350-00000040", "_NODEST=") in new stack
    -- Executing [175@from-internal:5] Macro("SIP/350-00000040", "record-enable,350,OUT,") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/350-00000040", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("SIP/350-00000040", "0?MacroExit()") in new stack
    -- Executing [s@macro-record-enable:5] GotoIf("SIP/350-00000040", "0?Group:OUT") in new stack
    -- Goto (macro-record-enable,s,15)
    -- Executing [s@macro-record-enable:15] GotoIf("SIP/350-00000040", "0?IN") in new stack
    -- Executing [s@macro-record-enable:16] ExecIf("SIP/350-00000040", "0?MacroExit()") in new stack
    -- Executing [s@macro-record-enable:17] NoOp("SIP/350-00000040", "Recording enable for 350") in new stack
    -- Executing [s@macro-record-enable:18] Set("SIP/350-00000040", "CALLFILENAME=OUT350-20140109-102537-1389241537.2196") in new stack
    -- Executing [s@macro-record-enable:19] Goto("SIP/350-00000040", "record") in new stack
    -- Goto (macro-record-enable,s,23)
    -- Executing [s@macro-record-enable:23] MixMonitor("SIP/350-00000040", "/var/spool/asterisk/monitorOUT350-20140109-102537-1389241537.2196.wav,,") in new stack
    -- Executing [s@macro-record-enable:24] Set("SIP/350-00000040", "CDR(userfield)=audio:OUT350-20140109-102537-1389241537.2196.wav") in new stack
    -- Executing [s@macro-record-enable:25] MacroExit("SIP/350-00000040", "") in new stack
    -- Executing [175@from-internal:6] Macro("SIP/350-00000040", "dialout-trunk,2,175,") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("SIP/350-00000040", "DIAL_TRUNK=2") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/350-00000040", "0?sub-pincheck,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/350-00000040", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("SIP/350-00000040", "DIAL_NUMBER=175") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("SIP/350-00000040", "DIAL_TRUNK_OPTIONS=trwW") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("SIP/350-00000040", "OUTBOUND_GROUP=OUT_2") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/350-00000040", "1?nomax") in new stack
    -- Goto (macro-dialout-trunk,s,9)
    -- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/350-00000040", "0?skipoutcid") in new stack
  == Begin MixMonitor Recording SIP/350-00000040
    -- Executing [s@macro-dialout-trunk:10] Set("SIP/350-00000040", "DIAL_TRUNK_OPTIONS=wW") in new stack
    -- Executing [s@macro-dialout-trunk:11] Macro("SIP/350-00000040", "outbound-callerid,2") in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/350-00000040", "0?Set(CALLERPRES()=)") in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/350-00000040", "0?Set(REALCALLERIDNUM=350)") in new stack
    -- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/350-00000040", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,6)
    -- Executing [s@macro-outbound-callerid:6] Set("SIP/350-00000040", "USEROUTCID="Operator1" <350>") in new stack
    -- Executing [s@macro-outbound-callerid:7] Set("SIP/350-00000040", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("SIP/350-00000040", "TRUNKOUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/350-00000040", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,12)
    -- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/350-00000040", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/350-00000040", "1?Set(CALLERID(all)="Operator1" <350>)") in new stack
    -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/350-00000040", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/350-00000040", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
    -- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/350-00000040", "0?sub-flp-2,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("SIP/350-00000040", "OUTNUM=175") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("SIP/350-00000040", "custom=IAX2/astana") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/350-00000040", "1?Set(DIAL_TRUNK_OPTIONS=M(setmusic^none)wW)") in new stack
    -- Executing [s@macro-dialout-trunk:16] Macro("SIP/350-00000040", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/350-00000040", "") in new stack
    -- Executing [s@macro-dialout-trunk:17] GotoIf("SIP/350-00000040", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/350-00000040", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:19] Dial("SIP/350-00000040", "IAX2/astana/175,300,M(setmusic^none)wW") in new stack
    -- Called IAX2/astana/175
    -- Call accepted by 192.168.0.10 (format gsm)
    -- Format for call is gsm
    -- IAX2/astana-17346 is proceeding passing it to SIP/350-00000040
    -- IAX2/astana-17346 is ringing
    -- IAX2/astana-17346 answered SIP/350-00000040
    -- Executing [s@macro-setmusic:1] NoOp("IAX2/astana-17346", "Setting Outbound Route MoH To: none") in new stack
    -- Executing [s@macro-setmusic:2] Set("IAX2/astana-17346", "CHANNEL(musicclass)=none") in new stack
    -- Executing [h@macro-dialout-trunk:1] Macro("SIP/350-00000040", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/350-00000040", "0?endmixmoncheck") in new stack
    -- Executing [s@macro-hangupcall:2] Set("SIP/350-00000040", "MIXMON_CALLFILENAME=/var/spool/asterisk/monitor/OUT350-20140109-102537-1389241537.2196.wav") in new stack
    -- Executing [s@macro-hangupcall:3] GotoIf("SIP/350-00000040", "0?defaultmixmondir") in new stack
    -- Executing [s@macro-hangupcall:4] Set("SIP/350-00000040", "MIXMON_CALLFILENAME=/var/spool/asterisk/monitorOUT350-20140109-102537-1389241537.2196.wav") in new stack
    -- Executing [s@macro-hangupcall:5] System("SIP/350-00000040", "test -e /var/spool/asterisk/monitorOUT350-20140109-102537-1389241537.2196.wav") in new stack
    -- Executing [s@macro-hangupcall:6] NoOp("SIP/350-00000040", "SYSTEMSTATUS = SUCCESS") in new stack
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/350-00000040", "1?endmixmoncheck") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] NoOp("SIP/350-00000040", "End of MIXMON check") in new stack
    -- Executing [s@macro-hangupcall:10] GotoIf("SIP/350-00000040", "1?nomeetmemon") in new stack
    -- Goto (macro-hangupcall,s,15)
    -- Executing [s@macro-hangupcall:15] NoOp("SIP/350-00000040", "MEETME_RECORDINGFILE=") in new stack
    -- Executing [s@macro-hangupcall:16] GotoIf("SIP/350-00000040", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,18)
    -- Executing [s@macro-hangupcall:18] NoOp("SIP/350-00000040", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:19] GotoIf("SIP/350-00000040", "1?noautomon2") in new stack
    -- Goto (macro-hangupcall,s,25)
    -- Executing [s@macro-hangupcall:25] NoOp("SIP/350-00000040", "MONITOR_FILENAME=") in new stack
    -- Executing [s@macro-hangupcall:26] GotoIf("SIP/350-00000040", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,29)
    -- Executing [s@macro-hangupcall:29] GotoIf("SIP/350-00000040", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,32)
    -- Executing [s@macro-hangupcall:32] GotoIf("SIP/350-00000040", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,34)
    -- Executing [s@macro-hangupcall:34] Hangup("SIP/350-00000040", "") in new stack
  == Spawn extension (macro-hangupcall, s, 34) exited non-zero on 'SIP/350-00000040' in macro 'hangupcall'
  == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'SIP/350-00000040'
    -- Hungup 'IAX2/astana-17346'
  == Spawn extension (macro-dialout-trunk, s, 19) exited non-zero on 'SIP/350-00000040' in macro 'dialout-trunk'
  == Spawn extension (from-internal, 175, 6) exited non-zero on 'SIP/350-00000040'
  == MixMonitor close filestream
  == End MixMonitor Recording SIP/350-00000040
Дебаг колцентра

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

-- Accepting call from '175' to '333' on channel 0/5, span 2
    -- Executing [333@from-meridian:1] Goto("DAHDI/i2/175-4a7", "from-internal,333,1") in new stack
    -- Goto (from-internal,333,1)
    -- Executing [333@from-internal:1] Goto("DAHDI/i2/175-4a7", "banksgate,s,1") in new stack
    -- Goto (banksgate,s,1)
    -- Executing [s@banksgate:1] GotoIfTime("DAHDI/i2/175-4a7", "9:00-19:00|mon-fri|*|*?wellcome,s,1") in new stack
    -- Goto (wellcome,s,1)
    -- Executing [s@wellcome:1] Answer("DAHDI/i2/175-4a7", "") in new stack
    -- Executing [s@wellcome:2] BackGround("DAHDI/i2/175-4a7", "custom/BanksIntro") in new stack
    -- <DAHDI/i2/175-4a7> Playing 'custom/BanksIntro.slin' (language 'en')
    -- Executing [s@wellcome:3] Goto("DAHDI/i2/175-4a7", "contact_center,s,1") in new stack
    -- Goto (contact_center,s,1)
    -- Executing [s@contact_center:1] Dial("DAHDI/i2/175-4a7", "DAHDI/g12/313&DAHDI/g12/324,15,m()") in new stack
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g12/313
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called DAHDI/g12/324
    -- Started music on hold, class 'default', on DAHDI/i2/175-4a7
    -- DAHDI/i2/313-4a8 is proceeding passing it to DAHDI/i2/175-4a7
    -- DAHDI/i2/313-4a8 is ringing
    -- DAHDI/i2/324-4a9 is proceeding passing it to DAHDI/i2/175-4a7
    -- DAHDI/i2/324-4a9 is ringing
    -- DAHDI/i2/313-4a8 connected line has changed. Saving it until answer for DAHDI/i2/175-4a7
    -- DAHDI/i2/313-4a8 answered DAHDI/i2/175-4a7
    -- Hungup 'DAHDI/i2/324-4a9'
    -- Stopped music on hold on DAHDI/i2/175-4a7
    -- Native bridging DAHDI/i2/175-4a7 and DAHDI/i2/313-4a8
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Span 2: Channel 0/1 got hangup request, cause 16
    -- Hungup 'DAHDI/i2/313-4a8'
  == Spawn extension (contact_center, s, 1) exited non-zero on 'DAHDI/i2/175-4a7'
    -- Hungup 'DAHDI/i2/175-4a7'

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:34
merkajiu
Пример кол центра был взят с англоязычных форумов

Re: Call Center не работает запись звонков

Добавлено: 09 янв 2014, 08:35
awsswa
[wellcome]
exten => s,1,Answer()
exten => s,n,Background(custom/BanksIntro)
exten => s,n,Set(CALLERPRES()=allowed_not_screened)
exten => s,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}_(${STRFTIME(${EPOCH},,%d-%m-%Y)}_${STRFTIME(${EPOCH},,H-%M)})_SRC(${CDR(src)})-DST(${CDR(dst)}).wav,b)
exten => s,n,Goto(contact_center,s,1)