VoIP Mailing List Archives
Mailing list archives for the VoIP community |
|
View previous topic :: View next topic |
Author |
Message |
research at businesstz... Guest
|
Posted: Sat Jun 28, 2008 8:15 am Post subject: [asterisk-users] Asterisk as an IVR |
|
|
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
Is there anyone with similar project that is willing to share some
information
Regards
Kili |
|
Back to top |
|
|
anselm at hoffmeister-... Guest
|
Posted: Sat Jun 28, 2008 8:37 am Post subject: [asterisk-users] Asterisk as an IVR |
|
|
Am Samstag, den 28.06.2008, 08:15 -0500 schrieb research at businesstz.com:
Quote: | 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).
BR
Anselm |
|
Back to top |
|
|
tzafrir.cohen at xorco... Guest
|
Posted: Sat Jun 28, 2008 8:58 am Post subject: [asterisk-users] Asterisk as an IVR |
|
|
On Sat, Jun 28, 2008 at 03:37:56PM +0200, Anselm Martin Hoffmeister wrote:
Quote: | Am Samstag, den 28.06.2008, 08:15 -0500 schrieb research at businesstz.com:
Quote: | 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 |
|
Back to top |
|
|
research at businesstz... Guest
|
Posted: Sat Jun 28, 2008 1:08 pm Post subject: [asterisk-users] Asterisk as an IVR |
|
|
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
Quote: |
On Sat, Jun 28, 2008 at 03:37:56PM +0200, Anselm Martin Hoffmeister wrote:
Quote: | Am Samstag, den 28.06.2008, 08:15 -0500 schrieb research at businesstz.com:
Quote: | 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
Quote: | 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
Quote: | 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
Quote: | provide these type of information and on trying freepbx, still can not
| go
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
|
|
|
Back to top |
|
|
research at businesstz... Guest
|
Posted: Tue Jul 01, 2008 1:39 pm Post subject: [asterisk-users] Asterisk as an IVR |
|
|
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
Quote: | 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
Quote: |
On Sat, Jun 28, 2008 at 03:37:56PM +0200, Anselm Martin Hoffmeister
wrote:
Quote: | Am Samstag, den 28.06.2008, 08:15 -0500 schrieb
research at businesstz.com:
Quote: | Hi List
I have build an IVR on Asterisk from 1.2 to now 1.4.18 and has
| already
Quote: | processed more than 10million calls!
I have one big challenge which is reporting... it is the requirement
| to
Quote: | 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
Quote: | flexible)
- talktime on specified branch (say how long caller listened to
| option
1
Quote: | 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
Quote: | provide these type of information and on trying freepbx, still can
| not
go
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
|
|
|
|
Back to top |
|
|
asterisk.org at sedwar... Guest
|
Posted: Tue Jul 01, 2008 2:28 pm Post subject: [asterisk-users] Asterisk as an IVR |
|
|
On Tue, 1 Jul 2008, research at businesstz.com wrote:
Quote: | 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
|
You could "start" your stopwatch with
exten = s,n, set(STOPWATCH=${EPOCH})
instead of your extraneous answer()s and then in your "h" extension, stop
the stopwatch with:
exten = h,n, set(STOPWATCH=$[${EPOCH} - ${STOPWATCH}])
You could also use resetcdr(w) at the start of each option. This will
create a new CDR with the time spent on the previous option at each step
in your dialplan. By setting the option number in a CDR variable after
each CDR is written, the time spent in each option can be identified.
Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000 |
|
Back to top |
|
|
research at businesstz... Guest
|
Posted: Tue Jul 01, 2008 10:43 pm Post subject: [asterisk-users] Asterisk as an IVR |
|
|
Oh Edward
You are my Hero... Simple but perfect. Option II is ideal but as you know
this is Asterisk/*/everything..
Thanks to list
Kill
Quote: | Quote: | 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
|
You could "start" your stopwatch with
exten = s,n, set(STOPWATCH=${EPOCH})
instead of your extraneous answer()s and then in your "h" extension, stop
the stopwatch with:
exten = h,n, set(STOPWATCH=$[${EPOCH} - ${STOPWATCH}])
You could also use resetcdr(w) at the start of each option. This will
create a new CDR with the time spent on the previous option at each step
in your dialplan. By setting the option number in a CDR variable after
each CDR is written, the time spent in each option can be identified.
Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000
|
|
|
Back to top |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|