Book Image

FreeSWITCH Cookbook

Book Image

FreeSWITCH Cookbook

Overview of this book

FreeSWITCH is an open source telephony platform designed to facilitate the creation of voice, chat, and video applications. It can scale from a soft-phone to a PBX and even up to an enterprise-class softswitch.In the FreeSWITCH Cookbook, members of the FreeSWITCH development team share some of their hard-earned knowledge with you in the book's recipes. Use this knowledge to improve and expand your FreeSWITCH installations.The FreeSWITCH Cookbook is an essential addition to any VoIP administrator's library.The book starts with recipes on how to handle call routing and then discusses connecting your FreeSWITCH server to the outside world.It then teaches you more advanced topics like CDR handling, practical examples of controlling FreeSWITCH with the event socket, and configuring many features commonly associated with a PBX installation.
Table of Contents (12 chapters)
FreeSWITCH Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Creating XML IVR menus


FreeSWITCH has a simple but flexible system for building IVR-style menus for caller interaction. In this recipe we create a custom menu that is very similar to the demo IVR that is part of the default FreeSWITCH configuration.

Getting ready

You will need a text editor and a telephone for testing. We will create a custom menu for extension number 5002 and we will use a generic greeting that comes with the FreeSWITCH sound files. To use the dial-by-name directory be sure to complete the recipe Company directory earlier in this chapter.

How to do it...

Create the menu definition by following these steps:

  1. Open a text editor and create a new file called conf/ivr_menus/custom_ivr.xml.

  2. Add these lines:

    <menu name="simple_greeting" 
          greet-long="ivr/ivr-generic_greeting.wav" 
          greet-short="ivr/ivr-generic_greeting.wav" 
          invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav" 
          exit-sound="voicemail/vm-goodbye.wav" 
          confirm-attempts="3" 
          timeout...