[asterisk-users] Asterisk as an IVR

research at businesstz.com research at businesstz.com
Tue Jul 1 13:39:54 CDT 2008


Greetings

Can someone assist to unfold the secret on how to atleast to a count on
particular branch, say, if 2 is chosen, then we start count from the time
the choice is made to the time the caller hangup or choice another option

i.e.
exten => s,1,Answer()
exten => s,n,Background(PLEASE ENTER YOU OPTION)
exten => s,n,XXX ; //IS IT POSSIBLE TO START A STOPWATCH (COUNTER) HERE
exten => s,n,WaitExten(10)
exten => s,n,Goto(s,1)

exten => 1,1,Answer()
exten => 1,n,AGI(POPULATE PREVIOUS BRANCH DATA INTO THE DB)
exten => 1,n,XXX ;(RE)START A COUNTER HERE
exten => 1,n,PLAYBACK(OPTION1 SELECTED);(RE)START A COUNTER HERE
exten => 1,n,Hangup

exten => 2,1,Answer()
exten => 2,n,AGI(POPULATE PREVIOUS BRANCH DATA INTO THE DB)
exten => 2,n,XXX ;(RE)START A COUNTER HERE
exten => 2,n,PLAYBACK(OPTION2 SELECTED);(RE)START A COUNTER HERE
exten => 2,n,Hangup

i believe we can set something very powerful here

Kili






> Thanks Anselm
>
> Its true that is a lot of calls but i have a separate mysql database on
> different server (HP DL580G5 with 16cores). what am currently doing is
> capturing the information right after selection and insert that record
> into mySql.
>
> ****
> [macro-capture-input]
> ;
> ;
> ; Macro that feeds data into mysql through perl script:
> ; ${ARG1} - MSISDN
> ; ${ARG2} - src
> ; ${ARG3} - MainMenu Application
> ; ${ARG4} - Channel
> ; ${ARG5} - calldatetime
> ; ${ARG6} - Sub Menu Application
> ;
> ;
> exten => s,1,System(/var/lib/asterisk/agi-bin/capture.pl ${ARG1} ${ARG2}
> ${ARG3} ${ARG4} ${ARG5} ${ARG6})
>
> [Data-Services-Options]
> ;       This menu is aimed to provide user with info about data services
> offered by Vodacom, including
> ;       1 - SUBMenu 1
> ;       2 - SUBMenu 2
> ;       3 - SUBMenu 3
> ;       4 - SUBMenu 4
> ;
> ;
> ;SUBMENU 1
> ;
> exten =>
> 1,1,Macro(capture-input,"${MSISDN}","${OPT}","APPLICATION1","${CHANNEL}","now()","SUBMENU1")
> exten => 1,n,Background(IVR/(1110) MENU 1)
>
> ;SUBMENU 2
> exten => 2,1,Macro(sendsms,${MSISDN},1,${LANGUAGE})
> exten =>
> 2,n,Macro(ivrcdr,"${MSISDN}","${OPT}","APPLICATION2","${CHANNEL}","now()","SUBMENU2")
> exten => 2,n,Background(IVR/(1120) MENU 2)
> .
> .
> .
> ****
>
> what i will also want to capture is how long a caller took to listen to
> say SUBMENU1
>
> It should be noted that CDR doesnot capture such detailed info (Tzafrir)
>
> Regards
> Kili
>>
>> On Sat, Jun 28, 2008 at 03:37:56PM +0200, Anselm Martin Hoffmeister
>> wrote:
>>> Am Samstag, den 28.06.2008, 08:15 -0500 schrieb
>>> research at businesstz.com:
>>> > Hi List
>>> >
>>> > I have build an IVR on Asterisk from 1.2 to now 1.4.18 and has
>>> already
>>> > processed more than 10million calls!
>>> >
>>> > I have one big challenge which is reporting... it is the requirement
>>> to
>>> > have a web reporting module which should the following info based on
>>> > selected time frame
>>> > - Number of calls on specific branch- Done
>>> > - Number of calls to branch 1 that came from  branch 2 (this should
>>> be
>>> > flexible)
>>> > - talktime on specified branch (say how long caller listened to
>>> option
>>> 1
>>> > before choosing option 2 or hangup)
>>> >
>>> > On IVR, it is so important to understand how many callers select a
>>> > specific branch and how long they spent on that branch. CDR stats can
>>> not
>>> > provide these type of information and on trying freepbx, still can
>>> not
>>> go
>>> > so detailed
>>>
>>> Dear Kili,
>>>
>>> in my opinion this is a good application for Database backends. You
>>> could, for example, write entries to a DB whenever someone presses a
>>> key
>>> (or is re-routed in the dialplan, which comes to a similar scheme). In
>>> data mining time some SQL logic can produce nearly any data you want,
>>> provided the input data is there.
>>>
>>> Millions of calls sounds a lot though, so be sure to have a reasonable
>>> database backend: The asterisk included one might be a bit on the small
>>> side here.
>>>
>>> This is just an idea, I did not implement anything the like (yet).
>>
>> Asterisk already has this separate database backend: CDR.
>>
>> --
>>                Tzafrir Cohen
>> icq#16849755              jabber:tzafrir.cohen at xorcom.com
>> +972-50-7952406           mailto:tzafrir.cohen at xorcom.com
>> http://www.xorcom.com  iax:guest at local.xorcom.com/tzafrir
>>
>
>





More information about the asterisk-users mailing list