Nik, There's also a PHP library fs_sock.php under contrib in the source code. I used it to create a simple app that originates calls and then run some other sutff when it detects the call has ended. The actual call originate command is executed inside a javascript file which is run using bgapi jsrun. The js script also makes a POST request to an external URL using CURL.
There's plenty to play around with, Freeswitch is really great, and mostly easy, a world of difference with *. Good luck! Nicolas On Tue, Feb 3, 2009 at 2:13 PM, Shelby Ramsey <sicfsl...@gmail.com> wrote: > 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/$...@$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.middle...@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-boun...@lists.freeswitch.org >> [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Raul >> Fragoso >> Sent: 03 February 2009 13:12 >> To: freeswitch-users@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/$...@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-boun...@lists.freeswitch.org >> [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of >> Michael S Collins >> > > Sent: 03 February 2009 01:17 >> > > To: freeswitch-users@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.middle...@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@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 >> > > >> > >> > >> > _______________________________________________ >> > 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 >> >> _______________________________________________ >> 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 > > _______________________________________________ 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