[Freeswitch-users] Generating calls from external source
Raul Fragoso
raul at etellicom.com
Tue Feb 3 05:12:28 PST 2009
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
More information about the Freeswitch-users
mailing list