[Freeswitch-users] Generating calls from external source

Michael Collins msc at freeswitch.org
Tue Feb 3 09:27:57 PST 2009


On Tue, Feb 3, 2009 at 8:53 AM, Nik Middleton
<nik.middleton at noblesolutions.co.uk> wrote:
> Are you suggesting that I should process the call externally instead of
> using the dialplan?  That would be neat as the audio file select could

I'm not saying you should, merely that you could. What I did was
create a bunch of extensions in my dialplan that handled various steps
of the IVR outbound call: start, answered, busy, not answered, SIT
tones, etc. So my originate command would originate the call (A leg)
and drop the B leg into the dialplan at the "start" extension and then
it goes from there. It listens for early media busy or SIT tones and
also does an "execute_on_answer" to the extension that does the actual
IVR. (Only need the IVR on an answered call.) If the call is not
answered after 25 seconds then I run a Lua script that checks for the
presence of certain channel variables that I set with the
"tone_detect" application (busy and SIT). If none of those are present
then I assume the call went unanswered and do the post-processing.


> be driven from the db select for the number.  I presume that I could
> also bridge the call to another number as well dependant on DTMF
> selection?

Yes, you can do this as well. You can build an IVR in XML or you can
build in a scripting language like Lua:
demo IVR: http://svn.freeswitch.org/svn/freeswitch/trunk/conf/autoload_configs/ivr.conf.xml
Lua IVR info: http://wiki.freeswitch.org/wiki/IVR#Lua_IVRs

Sorry if this is all a bit overwhelming, but you'll be glad that you
dove in to FS because it does soooo much and does it so well. Enjoy!
-MC
>
> Regards
>
>
> -----Original Message-----
> From: freeswitch-users-bounces at lists.freeswitch.org
> [mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Raul
> Fragoso
> Sent: 03 February 2009 13:12
> To: freeswitch-users at lists.freeswitch.org
> Subject: Re: [Freeswitch-users] Generating calls from external source
>
> In addition do David's suggestion, you probably want to have your
> application to watch for some specific events after the call is
> originated and take action based on them. For example, you could watch
> for the CHANNEL_ANSWER event and play some audio file waiting for some
> digit, which is generated by the DTMF event.
> To watch only for those specific events, you should do the following
> just after authentication (still using Perl as an example, but the
> mod_event_socket is language agnostic), then you will receive those
> events from FreeSWITCH through the socket stream:
>
> ...
> print $sock "auth XXX\n\n";
> print $sock "event plain CHANNEL_ANSWER DTMF\n\n";
> ...
>
> To see a list of available events, please look at the following wiki
> pages:
> http://wiki.freeswitch.org/wiki/Mod_event_socket#event
> http://wiki.freeswitch.org/wiki/Event_list
>
> Regards,
>
> Raul
>
> On Tue, 2009-02-03 at 09:46 +0000, David Knell wrote:
>> Hi Nik,
>>
>>
>> Here's a snipped in Perl that launches an outbound call:
>>
>>
>> if (my $sock = IO::Socket::INET->new(Proto =>'tcp', PeerAddr =>
>> '127.0.0.1', PeerPort => 8021)) {
>> print $sock "auth XXX\n\n";
>> print $sock "api originate {softivr_id=$siid,src_softivr_id=
>> $siid,softivr_outdial=true}sofia/frombt/$ntd at 1.2.3.4 $service\n\n";
>> $sock->close();
>> }
>>
>>
>> - it does no error checking or anything, but (line by line) it:
>>  - opens a socket to the event socket interface
>>  - authenticates
>>  - issues an originate which dials out to the number in $ntd.  The
>> bits in {} set a bunch of variables on the channel, which are used by
>> the software which processes the call later on.  The call is linked to
>> the extension in $service - FS looks this up in the dialplan - which
>> handles our end.
>>  - closes the socket
>>
>>
>> Cheers --
>>
>>
>> Dave
>>
>>
>>
>> > Thanks for that, coming from a C++ background it's a refreshing
>> > change to be looking at something that seems logical and efficient.
>> >
>> > I'd briefly looked at the event socket and wondered if that was the
>> > way to go.  I presume that there's some sort of event generation
>> > that can trigger and external process as well somewhere, though all
>> > I need to do is update mysql (hopefully using some sort of pooled
>> > connection)
>> >
>> > I'm not using a TDM card, I have a direct interconnect with the PSTN
>> > breakout provider with 1,500 channels available to me.  I'm finding
>> > Asterisk proving to be less than stable at high call volumes and
>> > load values spike at more than 100 calls with billing/accounting in
>> > place, hence my interest in FS.  The only thing that's concerning me
>> > is XML at the moment.  Lots of code and very wordy.  I'm sure I'll
>> > appreciate why XML given time
>> >
>> > Regards,
>> >
>> >
>> > ____________________________________________________________________
>> > From: freeswitch-users-bounces at lists.freeswitch.org
> [mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of
> Michael S Collins
>> > Sent: 03 February 2009 01:17
>> > To: freeswitch-users at lists.freeswitch.org
>> > Subject: Re: [Freeswitch-users] Generating calls from external
>> > source
>> >
>> > Nik,
>> >
>> > Welcome to FreeSWITCH! The short answer is "yes, FS can do that."
>> > The first thing that you should do is unlearn "the Asterisk way" of
>> > thinking. Usually there is an elegant way of doing things in FS that
>> > wasn't possible in Ast.
>> >
>> > I would recommend that you start by looking at the event socket,
>> > which is somewhat analogous to the AMI only cooler. :) I have
>> > personally done something similar to this using the event socket and
>> > a Perl script. The key is to learn the syntax of the originate
>> > command. (definitely hit the wiki and IRC channel)
>> > Are you using TDM cards for this? Just curious.
>> >
>> > -MC (IRC nick: mercutioviz)
>> >
>> > Sent from my iPhone
>> >
>> > On Feb 2, 2009, at 3:35 PM, "Nik Middleton"
>> > <nik.middleton at noblesolutions.co.uk> wrote:
>> > > Hi Guys,
>> > >
>> > > As a long time Asterisk user, I'm looking into freeswitch as an
>> > > alternative mainly due to (list multiple reasons here)
>> > >
>> > > Can anyone give me a pointer as to how I would achieve the
>> > > following?
>> > >
>> > > I need to replicate an emergency broadcast system currently
>> > > running under Asterisk.
>> > >
>> > > At the moment, I run through a Mysql database and using the
>> > > manager API, issues an Originate command to dial a number.
>> > >
>> > > When the call is answered, a message is played, and the recipient
>> > > has the option of hitting a digit to confirm receipt.  I then call
>> > > an AGI script to update the database.
>> > >
>> > > Is this fairly easy to do in Freeswitch?
>> > >
>> > > Not looking for code, just some pointers as to what's available to
>> > > do the above /
>> > >
>> > > Regards,
>> > > _______________________________________________
>> > > Freeswitch-users mailing list
>> > > Freeswitch-users at 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 at 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 at 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 at 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 at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>




More information about the FreeSWITCH-users mailing list