Hi Everyone, New member, so nice to 'meet' you all! I'm experimenting with FreeSwitch to see how it could replace Asterisk in a mass dialler system that I run in Europe, and I have been playing with the AVMD module. It seems to work perfectly, and does detect voicemail very well. What I am trying to do through is have the dialler generate calls and run as much as possible through FreeSwitch's core, rather than external scripts (I'm using PHP for most of my external functionality as thats what I use to write the agent interfaces too). So I generate individual calls and launch them in FreeSwitch, and it then does most of the call logic from XML dialplan commands, jumping to PHP shell scripts for quick MySQL functions. I'd like very much to be able to run AVMD from the second the call is answered, which is simple enough, but at the same time have my outgoing message playing. So we are assuming the call is a human, but if during the OGM playout AVMD hears a beep, it just terminates the call. Can anyone tell me if this is possible please, either using XML dialplan (I'm guessing not as the XML is sequential), or using a programming script like LUA. Many thanks for any advise anyone can offer, Ian
Hi Ian, Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer Just be nice and don't abuse your new found powers! :) -MC P.S. - Welcome to the FreeSWITCH community. On Mon, Jul 16, 2012 at 1:44 AM, Ian Bonham <ian.bonham@gmail.com> wrote:
Hi Everyone,
New member, so nice to 'meet' you all!
I'm experimenting with FreeSwitch to see how it could replace Asterisk in a mass dialler system that I run in Europe, and I have been playing with the AVMD module. It seems to work perfectly, and does detect voicemail very well. What I am trying to do through is have the dialler generate calls and run as much as possible through FreeSwitch's core, rather than external scripts (I'm using PHP for most of my external functionality as thats what I use to write the agent interfaces too). So I generate individual calls and launch them in FreeSwitch, and it then does most of the call logic from XML dialplan commands, jumping to PHP shell scripts for quick MySQL functions.
I'd like very much to be able to run AVMD from the second the call is answered, which is simple enough, but at the same time have my outgoing message playing. So we are assuming the call is a human, but if during the OGM playout AVMD hears a beep, it just terminates the call. Can anyone tell me if this is possible please, either using XML dialplan (I'm guessing not as the XML is sequential), or using a programming script like LUA.
Many thanks for any advise anyone can offer,
Ian
Michael, I have also been looking into AVMD. The point being that I want to play some pre-recorded message once the phone is answered and start AVMD at the same time, and if the 'beep' is detected later during the call(say 10 sec. later). I want to be able to stop the original Playback and start a new Playback. Is there a way to do that? Henry On Mon, Jul 16, 2012 at 11:32 AM, Michael Collins <msc@freeswitch.org>wrote:
Hi Ian,
Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer
Just be nice and don't abuse your new found powers! :)
-MC
P.S. - Welcome to the FreeSWITCH community.
On Mon, Jul 16, 2012 at 1:26 PM, Henry Huang <red.rain.seven@gmail.com>wrote:
Michael,
I have also been looking into AVMD. The point being that I want to play some pre-recorded message once the phone is answered and start AVMD at the same time, and if the 'beep' is detected later during the call(say 10 sec. later). I want to be able to stop the original Playback and start a new Playback. Is there a way to do that?
Yes, but "some assembly required" as the saying goes. AVMD only throws events, so whatever solution you are using must be able to consume and react to those events. The OP is using Lua which definitely allows you to consume the events. There's even a really simple example on the wiki about using the setInputCallback function to look for "events" and then do something once the event comes in. It's a really sparse example but it demonstrates how to catch an event. From there you'd need to put in your commands. I'm assuming you'll need a break app or uuid_break API to stop the current playback and then you'll need to queue up another playback. It's also good to turn off avmd at this point as well. I'm just throwing this out there off the top of my head, so I highly recommend some hands on tinkering. Please let us know what you end up doing. :) -MC
Henry
On Mon, Jul 16, 2012 at 11:32 AM, Michael Collins <msc@freeswitch.org>wrote:
Hi Ian,
Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer
Just be nice and don't abuse your new found powers! :)
-MC
P.S. - Welcome to the FreeSWITCH community.
Michael is totally right there! Hands on Tinkering is what I've been doing all afternoon and picked up so much. I also hit Amazon (Other book shops are available!) and got myself the FreeSwitch 1.0.6 book by our Mr Collins himself, Mr Minessale and Mr Schriber. A fine read guys, and a good start when you're really wanting to get stuck in! I was thinking, oh great LUA, something else new to learn but the book has really got me going in the right direction, thanks! Bon On 16 July 2012 22:38, Michael Collins <msc@freeswitch.org> wrote:
On Mon, Jul 16, 2012 at 1:26 PM, Henry Huang <red.rain.seven@gmail.com>wrote:
Michael,
I have also been looking into AVMD. The point being that I want to play some pre-recorded message once the phone is answered and start AVMD at the same time, and if the 'beep' is detected later during the call(say 10 sec. later). I want to be able to stop the original Playback and start a new Playback. Is there a way to do that?
Yes, but "some assembly required" as the saying goes. AVMD only throws events, so whatever solution you are using must be able to consume and react to those events. The OP is using Lua which definitely allows you to consume the events. There's even a really simple example on the wiki about using the setInputCallback function to look for "events" and then do something once the event comes in. It's a really sparse example but it demonstrates how to catch an event. From there you'd need to put in your commands. I'm assuming you'll need a break app or uuid_break API to stop the current playback and then you'll need to queue up another playback. It's also good to turn off avmd at this point as well. I'm just throwing this out there off the top of my head, so I highly recommend some hands on tinkering.
Please let us know what you end up doing. :)
-MC
Henry
On Mon, Jul 16, 2012 at 11:32 AM, Michael Collins <msc@freeswitch.org>wrote:
Hi Ian,
Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer
Just be nice and don't abuse your new found powers! :)
-MC
P.S. - Welcome to the FreeSWITCH community.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
I've been back and forth on getting the book (time to read and blah blah), but you just sold me on it. (: 'We who cut mere stones must always be envisioning cathedrals.' Quarry Worker's Creed On 7/16/2012 3:58 PM, Ian Bonham wrote:
Michael is totally right there! Hands on Tinkering is what I've been doing all afternoon and picked up so much. I also hit Amazon (Other book shops are available!) and got myself the FreeSwitch 1.0.6 book by our Mr Collins himself, Mr Minessale and Mr Schriber. A fine read guys, and a good start when you're really wanting to get stuck in! I was thinking, oh great LUA, something else new to learn but the book has really got me going in the right direction, thanks!
Bon
On 16 July 2012 22:38, Michael Collins <msc@freeswitch.org <mailto:msc@freeswitch.org>> wrote:
On Mon, Jul 16, 2012 at 1:26 PM, Henry Huang <red.rain.seven@gmail.com <mailto:red.rain.seven@gmail.com>> wrote:
Michael,
I have also been looking into AVMD. The point being that I want to play some pre-recorded message once the phone is answered and start AVMD at the same time, and if the 'beep' is detected later during the call(say 10 sec. later). I want to be able to stop the original Playback and start a new Playback. Is there a way to do that?
Yes, but "some assembly required" as the saying goes. AVMD only throws events, so whatever solution you are using must be able to consume and react to those events. The OP is using Lua which definitely allows you to consume the events. There's even a really simple example on the wiki about using the setInputCallback function to look for "events" and then do something once the event comes in. It's a really sparse example but it demonstrates how to catch an event. From there you'd need to put in your commands. I'm assuming you'll need a break app or uuid_break API to stop the current playback and then you'll need to queue up another playback. It's also good to turn off avmd at this point as well. I'm just throwing this out there off the top of my head, so I highly recommend some hands on tinkering.
Please let us know what you end up doing. :)
-MC
Henry
On Mon, Jul 16, 2012 at 11:32 AM, Michael Collins <msc@freeswitch.org <mailto:msc@freeswitch.org>> wrote:
Hi Ian,
Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer
Just be nice and don't abuse your new found powers! :)
-MC
P.S. - Welcome to the FreeSWITCH community.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org <mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
It's really good actually, some dry humour in there, some great ideas, and I got it on Kindle so I can reference it anywhere. I'm not on commission btw! ;) On 16 July 2012 23:01, Timothy Bolton <ifoundthetao@gmail.com> wrote:
I've been back and forth on getting the book (time to read and blah blah), but you just sold me on it. (:
'We who cut mere stones must always be envisioning cathedrals.' Quarry Worker's Creed
On 7/16/2012 3:58 PM, Ian Bonham wrote:
Michael is totally right there! Hands on Tinkering is what I've been doing all afternoon and picked up so much. I also hit Amazon (Other book shops are available!) and got myself the FreeSwitch 1.0.6 book by our Mr Collins himself, Mr Minessale and Mr Schriber. A fine read guys, and a good start when you're really wanting to get stuck in! I was thinking, oh great LUA, something else new to learn but the book has really got me going in the right direction, thanks!
Bon
On 16 July 2012 22:38, Michael Collins <msc@freeswitch.org> wrote:
On Mon, Jul 16, 2012 at 1:26 PM, Henry Huang <red.rain.seven@gmail.com>wrote:
Michael,
I have also been looking into AVMD. The point being that I want to play some pre-recorded message once the phone is answered and start AVMD at the same time, and if the 'beep' is detected later during the call(say 10 sec. later). I want to be able to stop the original Playback and start a new Playback. Is there a way to do that?
Yes, but "some assembly required" as the saying goes. AVMD only throws events, so whatever solution you are using must be able to consume and react to those events. The OP is using Lua which definitely allows you to consume the events. There's even a really simple example on the wiki about using the setInputCallback function to look for "events" and then do something once the event comes in. It's a really sparse example but it demonstrates how to catch an event. From there you'd need to put in your commands. I'm assuming you'll need a break app or uuid_break API to stop the current playback and then you'll need to queue up another playback. It's also good to turn off avmd at this point as well. I'm just throwing this out there off the top of my head, so I highly recommend some hands on tinkering.
Please let us know what you end up doing. :)
-MC
Henry
On Mon, Jul 16, 2012 at 11:32 AM, Michael Collins <msc@freeswitch.org>wrote:
Hi Ian,
Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer
Just be nice and don't abuse your new found powers! :)
-MC
P.S. - Welcome to the FreeSWITCH community.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services:consulting@freeswitch.orghttp://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Serverhttp://www.cudatel.com
Official FreeSWITCH Siteshttp://www.freeswitch.orghttp://wiki.freeswitch.orghttp://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing listFreeSWITCH-users@lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.frees...
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
I'll get a 'proper' book tomorrow :p On 17 July 2012 00:38, Michael Collins <msc@freeswitch.org> wrote:
On Mon, Jul 16, 2012 at 2:14 PM, Ian Bonham <ian.bonham@gmail.com> wrote:
It's really good actually, some dry humour in there, some great ideas, and I got it on Kindle so I can reference it anywhere.
Dry humo[u]r? Us? I think you may have purchased the *our* FS book?! :)
-MC
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hi Michael, Thanks for getting back to me, this is why I on the whole love the Linux/FOSS community (most of the time!) I've actually had a fun afternoon studying more and more about OpenSwitch and ended up changing my dial logic totally. I now have a PHP script staying resident, that queries fs_cli every 5 seconds for the number of active calls. If that number is less than the target number of calls per agent (in total) I know I need to add some more calls. So the script grabs a load out the database (based on how many I need to get back to the target # of calls) and chucks them into FreeSwitch using fs_cli -x and just an originate. I originate the call and lob it to an extension for that campaign. That 'extension' then launches an LUA script for each call which starts a playback and runs AVMD at the same time. So we start playing the OGM, but if I hear a beep tone I just hang up as we're wasting money. If a DTMF has been detected I process that and handle the call accordingly (If they press 9, I go back to the database and add the number to the DNC list, if they press 5 I look for an agent that has been waiting the longest and bridge the call to them). If neither of those conditions is reached I mark the call in the database for a retry and count how many times we've tried it (unless it's a duff number, then I mark it as such and the call centre get a report at the end of the day on dead lines so they can get a refund on the dead numbers in any particular data set). It's almost running now, few bugs to stamp on tomorrow, and then I'll run it with 20 or so 'test' agents tomorrow or Wednesday and see how hard I can push it. I'm on an 8 core Xeon dedicated server at the moment, so I'll see how hard I can thrash that and then see about migrating it to AWS maybe. Thanks to all the FreeSwitch developers, my job is suddenly fun again! Bon On 16 July 2012 20:32, Michael Collins <msc@freeswitch.org> wrote:
Hi Ian,
Just curious - at what point during the call are you currently launching AVMD? In any case, this sounds like a perfect job for "execute_on_answer": http://wiki.freeswitch.org/wiki/Channel_Variables#execute_on_answer
Just be nice and don't abuse your new found powers! :)
-MC
P.S. - Welcome to the FreeSWITCH community.
On Mon, Jul 16, 2012 at 1:44 AM, Ian Bonham <ian.bonham@gmail.com> wrote:
Hi Everyone,
New member, so nice to 'meet' you all!
I'm experimenting with FreeSwitch to see how it could replace Asterisk in a mass dialler system that I run in Europe, and I have been playing with the AVMD module. It seems to work perfectly, and does detect voicemail very well. What I am trying to do through is have the dialler generate calls and run as much as possible through FreeSwitch's core, rather than external scripts (I'm using PHP for most of my external functionality as thats what I use to write the agent interfaces too). So I generate individual calls and launch them in FreeSwitch, and it then does most of the call logic from XML dialplan commands, jumping to PHP shell scripts for quick MySQL functions.
I'd like very much to be able to run AVMD from the second the call is answered, which is simple enough, but at the same time have my outgoing message playing. So we are assuming the call is a human, but if during the OGM playout AVMD hears a beep, it just terminates the call. Can anyone tell me if this is possible please, either using XML dialplan (I'm guessing not as the XML is sequential), or using a programming script like LUA.
Many thanks for any advise anyone can offer,
Ian
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
Join Us At ClueCon - Aug 7-9, 2012
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
participants (4)
-
Henry Huang
-
Ian Bonham
-
Michael Collins
-
Timothy Bolton