Contemplating a jump from Asterisk to Freeswitch
Hello, I have been reading through the on-line info as well as some reviews of the FreeSwitch platform. I am fairly convinced at this point that FreeSwitch is at least something I need to carefully look into. Our company utilizes asterisk to support our SaaS ACD/VPD/IVR platform. We currently support many thousands of concurrent agents (inbound and outbound). I have spent a lot of time trouble shooting bugs and working through 'issues' with asterisk. While I have tamed the beast, I am still not thrilled with the performance, nor am I very excited about the direction the project appears to be heading. It seems like every time a 'fix' is committed to SVN, it breaks something else. It's kind of like the wild-wild-west over there... and it certainly doesn't give me the warm/fuzzies when thinking about the future of my company. One of the benefits of our architecture is that our business logic is completely abstracted from the asterisk system. We use a combination of FastAGI and AMI to control channels on the asterisk server. We have a Java based server which interfaces with the higher level call routing engines. It looks to me like the Mod_event_socket would probably satisfy my requirements for controlling the calls via an external process, although it doesn't look as cut/dry as the FastAGI model. I haven't seen anything which would let me know the equivalent of the FastAGI 'script' being requested. The other thing I haven't seen is how to dynamically create conferences on the fly and redirect channels into them. We use app_conference on asterisk to avoid the ztdummy issue. Once the higher level intelligence engine determines two channels need to speak with each other, they are both redirected via AMI Redirect into a dynamic Conference created just for that particular call. Also - what is the status of call progress on FreeSwitch? Some things that are important to me are answering machine detection as well as detecting SIT intercept tones in the early media stream... any love here? I have a ton more questions, but this seems like a good start. Thanks! Geoff
Hi Geoff,
One of the benefits of our architecture is that our business logic is completely abstracted from the asterisk system. We use a combination of FastAGI and AMI to control channels on the asterisk server. We have a Java based server which interfaces with the higher level call routing engines. It looks to me like the Mod_event_socket would probably satisfy my requirements for controlling the calls via an external process, although it doesn't look as cut/dry as the FastAGI model. I haven't seen anything which would let me know the equivalent of the FastAGI 'script' being requested.
Three possibilities spring to mind:- * have each distinct 'script' listen on a different socket; * set a variable in the dialplan to a script name or other identifier before making the outbound socket connection; * have your event socket handler work out what to do itself based on the dialled number, or whatever other criteria you'd use.
The other thing I haven't seen is how to dynamically create conferences on the fly and redirect channels into them. We use app_conference on asterisk to avoid the ztdummy issue. Once the higher level intelligence engine determines two channels need to speak with each other, they are both redirected via AMI Redirect into a dynamic Conference created just for that particular call.
Choose a (unique) conference ID, and execute conference <id> on each of the channels.
Also - what is the status of call progress on FreeSwitch? Some things that are important to me are answering machine detection as well as detecting SIT intercept tones in the early media stream... any love here?
Not sure on these, but I'm *am* sure that someone else will be ;-) Cheers -- Dave -- David Knell, Director, 3C Limited T: +44 20 3298 2000 E: dave@3c.co.uk W: http://www.3c.co.uk
On Sun, Jul 5, 2009 at 6:29 PM, <geoffreymina@gmail.com> wrote:
Also - what is the status of call progress on FreeSwitch? Some things that are important to me are answering machine detection as well as detecting SIT intercept tones in the early media stream... any love here?
Not my specialty but I'll try... Answering machine detection can be done with mod_vmd: http://wiki.freeswitch.org/wiki/Mod_vmd Tone detection: http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_tone_detect -- Kristian Kielhofner http://www.astlinux.org http://blog.krisk.org http://www.star2star.com http://www.submityoursip.com http://www.voalte.com
A few questions for you if I may: FreeSWITCH doesn't yet have a GUI -are you okay with XML config files? Do you have TDM circuits for your outbound traffic or are you using a SIP provider? BTW, mod_vmd is used to detect an answering machine beep, but it does not detect human vs. machine. For that you'll need mod_amd which isn't free but is available at a reasonable price. (email consulting@FreeSWITCH.org ) FYI, detecting SIT tones is always a challenge if you telco forces you to listen inband. You'll need a little processing power and the tone_detect app. I've done it on a PRI and cheap Tormenta 2 clone and it actually works pretty well. -MC Sent from my iPhone On Jul 5, 2009, at 3:29 PM, geoffreymina@gmail.com wrote:
Hello, I have been reading through the on-line info as well as some reviews of the FreeSwitch platform. I am fairly convinced at this point that FreeSwitch is at least something I need to carefully look into.
Our company utilizes asterisk to support our SaaS ACD/VPD/IVR platform. We currently support many thousands of concurrent agents (inbound and outbound). I have spent a lot of time trouble shooting bugs and working through 'issues' with asterisk. While I have tamed the beast, I am still not thrilled with the performance, nor am I very excited about the direction the project appears to be heading. It seems like every time a 'fix' is committed to SVN, it breaks something else. It's kind of like the wild-wild-west over there... and it certainly doesn't give me the warm/fuzzies when thinking about the future of my company.
One of the benefits of our architecture is that our business logic is completely abstracted from the asterisk system. We use a combination of FastAGI and AMI to control channels on the asterisk server. We have a Java based server which interfaces with the higher level call routing engines. It looks to me like the Mod_event_socket would probably satisfy my requirements for controlling the calls via an external process, although it doesn't look as cut/dry as the FastAGI model. I haven't seen anything which would let me know the equivalent of the FastAGI 'script' being requested.
The other thing I haven't seen is how to dynamically create conferences on the fly and redirect channels into them. We use app_conference on asterisk to avoid the ztdummy issue. Once the higher level intelligence engine determines two channels need to speak with each other, they are both redirected via AMI Redirect into a dynamic Conference created just for that particular call.
Also - what is the status of call progress on FreeSwitch? Some things that are important to me are answering machine detection as well as detecting SIT intercept tones in the early media stream... any love here?
I have a ton more questions, but this seems like a good start.
Thanks! Geoff _______________________________________________ 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 love the fact that there is no GUI. I have never used any GUI for asterisk, so that is certainly not a problem. XML is fine with me. We are a pure VoIP environment. I have many wholesale SIP providers whom I interface with. AMD and SIT detection are very important to me. Because of that, I am exploring a relationship with Sangoma for their SIP based CPD product to satisfy those requirements. There are a couple things which I don't like... namely that it only runs on windows, but I may be able to ignore that for the time being. thanks. On Mon, Jul 6, 2009 at 1:43 AM, Michael S Collins<msc@freeswitch.org> wrote:
A few questions for you if I may: FreeSWITCH doesn't yet have a GUI -are you okay with XML config files?
Do you have TDM circuits for your outbound traffic or are you using a SIP provider?
BTW, mod_vmd is used to detect an answering machine beep, but it does not detect human vs. machine. For that you'll need mod_amd which isn't free but is available at a reasonable price. (email consulting@FreeSWITCH.org )
FYI, detecting SIT tones is always a challenge if you telco forces you to listen inband. You'll need a little processing power and the tone_detect app. I've done it on a PRI and cheap Tormenta 2 clone and it actually works pretty well.
-MC
Sent from my iPhone
On Jul 5, 2009, at 3:29 PM, geoffreymina@gmail.com wrote:
Hello, I have been reading through the on-line info as well as some reviews of the FreeSwitch platform. I am fairly convinced at this point that FreeSwitch is at least something I need to carefully look into.
Our company utilizes asterisk to support our SaaS ACD/VPD/IVR platform. We currently support many thousands of concurrent agents (inbound and outbound). I have spent a lot of time trouble shooting bugs and working through 'issues' with asterisk. While I have tamed the beast, I am still not thrilled with the performance, nor am I very excited about the direction the project appears to be heading. It seems like every time a 'fix' is committed to SVN, it breaks something else. It's kind of like the wild-wild-west over there... and it certainly doesn't give me the warm/fuzzies when thinking about the future of my company.
One of the benefits of our architecture is that our business logic is completely abstracted from the asterisk system. We use a combination of FastAGI and AMI to control channels on the asterisk server. We have a Java based server which interfaces with the higher level call routing engines. It looks to me like the Mod_event_socket would probably satisfy my requirements for controlling the calls via an external process, although it doesn't look as cut/dry as the FastAGI model. I haven't seen anything which would let me know the equivalent of the FastAGI 'script' being requested.
The other thing I haven't seen is how to dynamically create conferences on the fly and redirect channels into them. We use app_conference on asterisk to avoid the ztdummy issue. Once the higher level intelligence engine determines two channels need to speak with each other, they are both redirected via AMI Redirect into a dynamic Conference created just for that particular call.
Also - what is the status of call progress on FreeSwitch? Some things that are important to me are answering machine detection as well as detecting SIT intercept tones in the early media stream... any love here?
I have a ton more questions, but this seems like a good start.
Thanks! Geoff _______________________________________________ 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
_______________________________________________ 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
The best way to describe event socket to someone familiar with asterisk is that its a combination of AGI and AMI which can be used bidirectional. You can: connect one inbound socket from a client and control every call at once using events. connect one inbound socket then latch on to an existing single call and control it. connect one outbound socket to your application per call and control it. In all cases you have the option for full control which allows you to gain access to log, event, and FSAPI commands (the equiv of cli commands in asterisk) You can have your script listen on a dedicated port or use the ivrd example which is a daemon written in C that gets the desired script name from a channel variable and executes it on the remote end of the socket using STDIN/STDOUT as the socket. The other big difference besides that the single protocol does all these things is that we have a BSD licensed client library in our source tree called ESL. its in the libs/esl directory. This can be use to write clients in C or several other higher level languages using swig. fs_cli that is built with FS is written using ESL. Perl, Ruby, Python, Lua, PHP are all working and there is the beginning of a JAVA one which is stubbed out but just needs a little bit of work to finish it off and you could have that too. On Sun, Jul 5, 2009 at 5:29 PM, <geoffreymina@gmail.com> wrote:
Hello, I have been reading through the on-line info as well as some reviews of the FreeSwitch platform. I am fairly convinced at this point that FreeSwitch is at least something I need to carefully look into.
Our company utilizes asterisk to support our SaaS ACD/VPD/IVR platform. We currently support many thousands of concurrent agents (inbound and outbound). I have spent a lot of time trouble shooting bugs and working through 'issues' with asterisk. While I have tamed the beast, I am still not thrilled with the performance, nor am I very excited about the direction the project appears to be heading. It seems like every time a 'fix' is committed to SVN, it breaks something else. It's kind of like the wild-wild-west over there... and it certainly doesn't give me the warm/fuzzies when thinking about the future of my company.
One of the benefits of our architecture is that our business logic is completely abstracted from the asterisk system. We use a combination of FastAGI and AMI to control channels on the asterisk server. We have a Java based server which interfaces with the higher level call routing engines. It looks to me like the Mod_event_socket would probably satisfy my requirements for controlling the calls via an external process, although it doesn't look as cut/dry as the FastAGI model. I haven't seen anything which would let me know the equivalent of the FastAGI 'script' being requested.
The other thing I haven't seen is how to dynamically create conferences on the fly and redirect channels into them. We use app_conference on asterisk to avoid the ztdummy issue. Once the higher level intelligence engine determines two channels need to speak with each other, they are both redirected via AMI Redirect into a dynamic Conference created just for that particular call.
Also - what is the status of call progress on FreeSwitch? Some things that are important to me are answering machine detection as well as detecting SIT intercept tones in the early media stream... any love here?
I have a ton more questions, but this seems like a good start.
Thanks! Geoff _______________________________________________ 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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
participants (6)
-
Anthony Minessale
-
David Knell
-
Geoffrey Mina
-
geoffreymina@gmail.com
-
Kristian Kielhofner
-
Michael S Collins