[Freeswitch-users] Generating calls from external source

Shelby Ramsey sicfslist at gmail.com
Tue Feb 3 09:13:19 PST 2009


Nik,
There are a lot of ways to make FS dial out and deliver messaging etc.  We
are going through the process of replacing * for this purpose.  For us
(getting started with the help of our friends here on the list) it has been
pretty easy.

With * we were using AMI to originate calls ... to migrate to FS we just
changed that to use event_socket with bgapi to originate the call and
connect the call to a context and extension.  There are several ways to get
the dialplan to FS after that ... a script, xml_curl, or statically
configured in the conf directory.

So as an example the application we have just logs into the FS socket
(similar to * but much better) and then rips off calls like this:

bgapi originate{$set_some_vars}sofia/external/$ANI@$IP:$PORT $EXTENSION xml
$CONTEXT

The beauty of it all is that:
  -- a lot of flexibility in what you can do (like drive the call through
events)
  -- the CDR reporting is about 3 million times better than *
  -- obviously higher capacity

I'd start playing with event_socket and some static dialplans to get the
feel for it ... but if you have an application written already to work with
* (i.e. the logic and backend) it will be very easy to migrate and you'll be
glad you did it!

Shelby



On Tue, Feb 3, 2009 at 10: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
> 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?
>
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20090203/2dc96b6e/attachment-0002.html 


More information about the FreeSWITCH-users mailing list