Home

Resources

Products

Developers

Main • IVR

Resources -> Documentation -> IVR Setup

In Yate the IVR functionality is not related to routing, therefore regexroute - or any other routing module - will not help writing an IVR. In Yate an IVR is rather an application started when an incoming call is routed to that application. This application gets the opportunity of inspecting events generated by the caller and giving commands to Yate - all these by handling or generating messages.

You must make sure extmodule.yate exist (is compiled and/or installed) and is not disabled from the yate.conf file. Also in extmodule.conf make sure you specify a proper scripts_dir setting in the [general] section. The scripts_dir parameter must point to the directory where the external scripts and their libraries are installed, like in this example:

 
[general]
scripts_dir=/usr/local/lib/yate/

In this directory you should place the IVR applications or scripts you are going to use.

You will also need to route the incoming calls to the external application so it creates an instance of the IVR when the user dials that number. Let's suppose you want to use regular expressions to route the short number 555 to the voicemail.

 
^555$=external/nodata/voicemail.php

Most IVR scripts would use type "nodata" for their type as the actual voice data is not provided by the IVR itself but by Yate provided sources attached later.

When the 555 number is dialed an instance of the voicemail.php script is launched and the "call.execute" message is passed to it (even if it didn't install a handler) so it can pick up usefull info about the call:

  • caller channel "id"
  • caller number "caller"
  • caller user account "user" - if authenticated by the incoming call driver
  • called number "called" - in case the IVR handles more than one number

The application then keeps running, installing message handlers, generating messages and keeping the event loop running. In the end the caller is either disconnected or is transferred to another channel which can be another IVR. The application terminates when the caller disconnects or is transferred.

You can find more about the internal working of an IVR application in the page related to writing an IVR.

3 May 2010:
Yate 3.0.0 alpha 3 released. Featuring the new Jabber server and wideband audio.
Download NOW

8 March 2010:
Yate 2.2 released. Mostly bug fixes. Dahdi compatible. Latest 2 release before 3.0.

6-7 February 2010:
Yate booth at FOSDEM 2010. Free CD with Freesentral available.

2 Nov 2009:
Yate 2.1 launched. Can replace a Cisco PGW2200 to control a Cisco AS54xx.

6 Aug 2008:
Yate and OpenSIPS (former OpenSER) join to build IP based clusters.

4 Aug 2008:
Yate 2 launched.

10 Jul 2008:
Yate presentation in Germany.

Feb 2008:
Yate 2.0.0 alpha 2 released. New routing module allows sending ENUM routed or forked calls to numbers of registered phones. More...

21 Jan 2008:
Yate 2 alpha released. Major changes, new ISDN, SS7 and MGCP stack. Added analogic and RBS support.

3 September:
Yate 1.3 released. Minor fixes and improvments mainly in client and SIP.

14 August:
Yate based ISDN passive recording system released by Trisys.

16 April:
Yate 1.2 released. Added Jingle and XML support, PBX improved.

25 September:
YateAdmin 1 released.

25 September:
Yate 1.1 released. Fallback routing from a database, fax support in Linux and bug fixes. Changelog and Download availables.

11 July 2006:
O'Reilly published an article about prototyping telephony applications with Yate and Python.

10 July 2006:
Yate 1 released. Includes YIAX, YSIP, YRTP and many new features.

June 1st 2006:
New Yate website launched


EditHistoryBacklinksRecent ChangesSearch