Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread Nik Middleton
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://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


Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread David Knell

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


Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread Raul Fragoso
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 +, 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

Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread Nik Middleton
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 +, 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

Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread Shelby Ramsey
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 +, 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

Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread Michael Collins
On Tue, Feb 3, 2009 at 8: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

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 s much and does it so well. Enjoy!
-MC

 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 +, 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

Re: [Freeswitch-users] Generating calls from external source

2009-02-03 Thread Anthony Minessale
There is also an event socket library written in C called esl that is in the
fs tree in the libs directory.
This has the ability to establish connections both inbound and outbound from
FS.

There is also a perl module FreeSWITCH::Client that mr collins may be
interested in in the tree as well.


On Tue, Feb 3, 2009 at 7:12 AM, Raul Fragoso r...@etellicom.com wrote:

 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 +, 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