Sponsor: VoiceMeUp - Corporate & Wholesale VoIP Services

VoIP Mailing List Archives
Mailing list archives for the VoIP community
 SearchSearch 

[asterisk-users] Building a Complex IVR


 
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> Asterisk Users
View previous topic :: View next topic  
Author Message
dougmig33 at yahoo.com
Guest





PostPosted: Mon Jun 23, 2008 11:54 am    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be pretty ugly. What are my other options? I guess I could do it in AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Thanks,
Doug.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080623/b33554b3/attachment.htm
Back to top
stotaro at totarotechn...
Guest





PostPosted: Mon Jun 23, 2008 12:02 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

On Mon, Jun 23, 2008 at 12:54 PM, Douglas Garstang <dougmig33 at yahoo.com> wrote:
Quote:
I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be
pretty ugly. What are my other options? I guess I could do it in
AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Thanks,
Doug.


FastAGI is a good bet. You can patch it to jump N+101 so you can have
failover in case the box hosting the AGI is unreachable, it will jump,
instead of the default of just failing and halting.

It also offloads the processing to a different box.

Thanks,
Steve Totaro
Back to top
dougmig33 at yahoo.com
Guest





PostPosted: Mon Jun 23, 2008 12:31 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Right, except now I have to go write a multi-threaded, redundant FastAGI server in python (euww, hate java). That replaces the effort of doing it in the dial-plan with the effort required for a more complex application + the effort required to make it redundant. Asterisk 1.2 also does not recover from a failure to connect to a FastAGI server. When it fails to connect, the current call just bombs out. No recovery possible.

Doug.
----- Original Message ----
From: Steve Totaro <stotaro at totarotechnologies.com>
To: Asterisk Users Mailing List - Non-Commercial Discussion <asterisk-users at lists.digium.com>
Sent: Monday, June 23, 2008 10:02:37 AM
Subject: Re: [asterisk-users] Building a Complex IVR

On Mon, Jun 23, 2008 at 12:54 PM, Douglas Garstang <dougmig33 at yahoo.com> wrote:
Quote:
I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be
pretty ugly. What are my other options? I guess I could do it in
AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Thanks,
Doug.


FastAGI is a good bet. You can patch it to jump N+101 so you can have
failover in case the box hosting the AGI is unreachable, it will jump,
instead of the default of just failing and halting.

It also offloads the processing to a different box.

Thanks,
Steve Totaro

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080623/73801b8b/attachment.htm
Back to top
stotaro at totarotechn...
Guest





PostPosted: Mon Jun 23, 2008 12:52 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Quote:
Asterisk 1.2 also does not recover
from a failure to connect to a FastAGI server. When it fails to connect, the
current call just bombs out. No recovery possible."

Wrong. If you re-read my initial post, there is a patch for this.
http://bugs.digium.com/view.php?id=4029

If you are going to complain about recommended solutions, then why ask
in the first place?

Just use FreePBX and copy over the pertinent parts of your conf files.......

Thanks,
Steve T

On Mon, Jun 23, 2008 at 1:31 PM, Douglas Garstang <dougmig33 at yahoo.com> wrote:
Quote:
Right, except now I have to go write a multi-threaded, redundant FastAGI
server in python (euww, hate java). That replaces the effort of doing it in
the dial-plan with the effort required for a more complex application + the
effort required to make it redundant. Asterisk 1.2 also does not recover
from a failure to connect to a FastAGI server. When it fails to connect, the
current call just bombs out. No recovery possible.

Doug.

----- Original Message ----
From: Steve Totaro <stotaro at totarotechnologies.com>
To: Asterisk Users Mailing List - Non-Commercial Discussion
<asterisk-users at lists.digium.com>
Sent: Monday, June 23, 2008 10:02:37 AM
Subject: Re: [asterisk-users] Building a Complex IVR

On Mon, Jun 23, 2008 at 12:54 PM, Douglas Garstang <dougmig33 at yahoo.com>
wrote:
Quote:
I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be
pretty ugly. What are my other options? I guess I could do it in
AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Thanks,
Doug.


FastAGI is a good bet. You can patch it to jump N+101 so you can have
failover in case the box hosting the AGI is unreachable, it will jump,
instead of the default of just failing and halting.

It also offloads the processing to a different box.

Thanks,
Steve Totaro

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users


_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
Back to top
asterisk.org at sedwar...
Guest





PostPosted: Mon Jun 23, 2008 1:05 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Quote:
On Mon, Jun 23, 2008 at 12:54 PM, Douglas Garstang <dougmig33 at yahoo.com>
wrote:

Quote:
Quote:
I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be
pretty ugly. What are my other options? I guess I could do it in
AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Quote:
From: Steve Totaro <stotaro at totarotechnologies.com>

FastAGI is a good bet. You can patch it to jump N+101 so you can have
failover in case the box hosting the AGI is unreachable, it will jump,
instead of the default of just failing and halting.

It also offloads the processing to a different box.

On Mon, 23 Jun 2008, Douglas Garstang wrote:

Quote:
Right, except now I have to go write a multi-threaded, redundant FastAGI
server in python (euww, hate java). That replaces the effort of doing it
in the dial-plan with the effort required for a more complex application
+ the effort required to make it redundant. Asterisk 1.2 also does not
recover from a failure to connect to a FastAGI server. When it fails to
connect, the current call just bombs out. No recovery possible.

Then don't do it (fastagi()).

Even a POC computer can do hundreds of "normal" AGIs per second.

If your load isn't massive, agi() should be fine. If AGIs truly (and
demonstrably) are the bottleneck, almost all of your work should be
reusable as FastAGI. If your load is expected to be massive, C would be a
better choice for your FastAGI server anyway. Or, throw a lot more
hardware at the problem.

I would build it this way:

1) Design the dialplan logically so it is understandable and maintainable.

2) Code up the AGIs in whatever language you are comfortable. I would use
C, but that's what I'm most comfortable with.

3) Confirm everything works like you think it should.

4) Measure to identify where the real bottlenecks are.

5) Attack the top 1 or 2 bottlenecks. The solution may be:

a) Recode an AGI in C.

b) Re-implement an AGI as fastagi() on the same server.

c) Re-implement an AGI as fastagi() on another server.

6) Go to step 3

Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000
Back to top
dougmig33 at yahoo.com
Guest





PostPosted: Mon Jun 23, 2008 1:18 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Oh, if only we where installing Asterisk from source.
----- Original Message ----
From: Steve Totaro <stotaro at totarotechnologies.com>
To: Asterisk Users Mailing List - Non-Commercial Discussion <asterisk-users at lists.digium.com>
Sent: Monday, June 23, 2008 10:52:22 AM
Subject: Re: [asterisk-users] Building a Complex IVR

Quote:
Asterisk 1.2 also does not recover
from a failure to connect to a FastAGI server. When it fails to connect, the
current call just bombs out. No recovery possible."

Wrong. If you re-read my initial post, there is a patch for this.
http://bugs.digium.com/view.php?id=4029

If you are going to complain about recommended solutions, then why ask
in the first place?

Just use FreePBX and copy over the pertinent parts of your conf files.......

Thanks,
Steve T

On Mon, Jun 23, 2008 at 1:31 PM, Douglas Garstang <dougmig33 at yahoo.com> wrote:
Quote:
Right, except now I have to go write a multi-threaded, redundant FastAGI
server in python (euww, hate java). That replaces the effort of doing it in
the dial-plan with the effort required for a more complex application + the
effort required to make it redundant. Asterisk 1.2 also does not recover
from a failure to connect to a FastAGI server. When it fails to connect, the
current call just bombs out. No recovery possible.

Doug.

----- Original Message ----
From: Steve Totaro <stotaro at totarotechnologies.com>
To: Asterisk Users Mailing List - Non-Commercial Discussion
<asterisk-users at lists.digium.com>
Sent: Monday, June 23, 2008 10:02:37 AM
Subject: Re: [asterisk-users] Building a Complex IVR

On Mon, Jun 23, 2008 at 12:54 PM, Douglas Garstang <dougmig33 at yahoo.com>
wrote:
Quote:
I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be
pretty ugly. What are my other options? I guess I could do it in
AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Thanks,
Doug.


FastAGI is a good bet. You can patch it to jump N+101 so you can have
failover in case the box hosting the AGI is unreachable, it will jump,
instead of the default of just failing and halting.

It also offloads the processing to a different box.

Thanks,
Steve Totaro

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users


_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users


_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2008 - September 22 - 25 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080623/c69717e3/attachment.htm
Back to top
dougmig33 at yahoo.com
Guest





PostPosted: Mon Jun 23, 2008 1:20 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Quote:
I would build it this way:

Quote:

1) Design the dialplan logically so it is understandable and maintainable.

2) Code up the AGIs in whatever language you are comfortable. I would use
C, but that's what I'm most comfortable with.

3) Confirm everything works like you think it should.

4) Measure to identify where the real bottlenecks are.

5) Attack the top 1 or 2 bottlenecks. The solution may be:

a) Recode an AGI in C.

b) Re-implement an AGI as fastagi() on the same server.

c) Re-implement an AGI as fastagi() on another server.

6) Go to step 3

Can FastAGI call FastAGI? The application needs to contact another FastAGI server written in Java to lookup various billing information.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080623/1367a5e9/attachment.htm
Back to top
asterisk.org at sedwar...
Guest





PostPosted: Mon Jun 23, 2008 4:04 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Quote:
Quote:
I would build it this way:

1) Design the dialplan logically so it is understandable and maintainable.

2) Code up the AGIs in whatever language you are comfortable. I would use
C, but that's what I'm most comfortable with.

3) Confirm everything works like you think it should.

4) Measure to identify where the real bottlenecks are.

5) Attack the top 1 or 2 bottlenecks. The solution may be:

a) Recode an AGI in C.

b) Re-implement an AGI as fastagi() on the same server.

c) Re-implement an AGI as fastagi() on another server.

6) Go to step 3

On Mon, 23 Jun 2008, Douglas Garstang wrote:

Quote:
Can FastAGI call FastAGI?

I guess it would be possible using the EXEC agi command to call fastagi(),
but I don't see any advantage.

Quote:
The application needs to contact another FastAGI server written in Java
to lookup various billing information.

I'm not a big fan of Java. I've never used it, I only know it by
reputation Smile If the application is just "select and return the values"
the choice of language could be irrelevant. If the application fiddles
with the values or scans through rows or implements a bunch of logic, I'd
vote for C.

C seems obvious to me for daemons like a FastAGI server.

I would focus on clarity and maintainability and then throw more efficient
languages or more hardware at the observed performance problem.

Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000
Back to top
abalashov at evaristes...
Guest





PostPosted: Mon Jun 23, 2008 6:02 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Douglas Garstang wrote:
Quote:
Right, except now I have to go write a multi-threaded, redundant FastAGI
server in python (euww, hate java). That replaces the effort of doing it
in the dial-plan with the effort required for a more complex application
+ the effort required to make it redundant. Asterisk 1.2 also does not
recover from a failure to connect to a FastAGI server. When it fails to
connect, the current call just bombs out. No recovery possible.

You can do a FastAGI service in Perl, too.

--
Alex Balashov
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (706) 338-8599
Back to top
abalashov at evaristes...
Guest





PostPosted: Mon Jun 23, 2008 6:03 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

Douglas Garstang wrote:

Quote:
Can FastAGI call FastAGI? The application needs to contact another
FastAGI server written in Java to lookup various billing information.

AGI can call any dialplan application, including another call to AGI()
(with a URL that ends up going to FastAGI).

--
Alex Balashov
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (706) 338-8599
Back to top
dougmig33 at yahoo.com
Guest





PostPosted: Wed Jun 25, 2008 6:17 pm    Post subject: [asterisk-users] Building a Complex IVR Reply with quote

I don't think anyone did, and I was hoping someone would. Smile
----- Original Message ----
From: Steve Murphy <murf at digium.com>
To: Asterisk Users Mailing List - Non-Commercial Discussion <asterisk-users at lists.digium.com>
Sent: Tuesday, June 24, 2008 3:57:48 PM
Subject: Re: [asterisk-users] Building a Complex IVR

On Mon, 2008-06-23 at 09:54 -0700, Douglas Garstang wrote:
Quote:
I'm about to build a complex IVR with Asterisk.

Having done it a few times with the dial plan, I know it's going to be
pretty ugly. What are my other options? I guess I could do it in
AGI/FastAGI. What about VxML (about which I know almost nothing...)?

Using Asterisk 1.2

Thanks,
Doug.


Sorry, I tried to peak thru all the stuff in this thread, but I may
have missed it; has anyone suggested the externalIVR app? If not,
it might be worth consideration...?

murf

--
Steve Murphy
Software Developer
Digium




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080625/38e67b10/attachment.htm
Back to top
Display posts from previous:   
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> Asterisk Users All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group

VoiceMeUp - Corporate & Wholesale VoIP Services