Skip to content

Fix headers, semantic line breaks, and other small edits. #256

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 21 additions & 22 deletions docs/FreeSWITCH-Explained/Dialplan/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,19 @@



## 0\. About
## About

The FreeSWITCH dialplan is a decision tree that provides routing services to bridge call legs together, execute dialplan applications, and invoke custom scripts that you write, among other things.
The FreeSWITCH dialplan is a decision tree that provides routing services to bridge call legs together, execute dialplan applications, invoke custom scripts that you write, and has other uses.

Much of your effort will be focused on configuring a dialplan to suit your application, whether it is the built–in [XML dialplan](./XML-Dialplan/index.mdx#about), a database lookup query sent to a web server via [mod\_xml\_curl](../Modules/mod_xml_curl_1049001.mdx) or via PostgreSQL using [freeswitch.dbh](../Databases/Lua-FreeSWITCH-Dbh_3965358.mdx#about) connection pooling.

**The FreeSWITCH dialplan is NOT a scripting language.**

## 1\. Introduction
## Introduction

**The FreeSWITCH dialplan is not a single entity**. You have the option to run different dialplan subsystems natively. These are not all translated into the same back–end as other systems may be employed. Instead each is a unique, independent method through which you can access information.
**The FreeSWITCH dialplan is not a single entity**. You have the option to run different dialplan subsystems natively.
These are not all translated into the same back–end as other systems may be employed.
Each is a unique, independent method through which you can access information.

Enter the **`show dialplan`** command on [fs\_cli](../Client-and-Developer-Interfaces/1048948.mdx) to see what other dialplans are loaded.

Expand All @@ -32,23 +34,26 @@ dialplan,signalwire,mod_signalwire

```

See [mod\_commands](../Modules/mod_commands_1966741.mdx)) for all the commands available on FreeSWITCH's [command line interface](../Client-and-Developer-Interfaces/1048948.mdx).
See [mod\_commands](../Modules/mod_commands_1966741.mdx) for all the commands available on FreeSWITCH's [command line interface](../Client-and-Developer-Interfaces/1048948.mdx).

Unlike some other switches, the dialplan is not designed to be a be-all and end-all configuration language that you put a bunch of logic into. The dialplan, quite simply, is designed to take a call request, decide where it should be handled, and then forward it to that application (or, in FreeSWITCH parlance, [modules](../Modules/index.mdx#about)).
Unlike some other switches, the dialplan is not designed to be a be-all and end-all configuration language that you put a bunch of logic into.
The dialplan, quite simply, is designed to take a call request, decide where it should be handled, and then forward it to that application (or, in FreeSWITCH parlance, [modules](../Modules/index.mdx#about)).

FreeSWITCH modules
### FreeSWITCH modules

[Modules](../Modules/index.mdx#about) are applications that extend FreeSWITCH with extra functionality. In the context, the most used commands / applications are in [mod\_dptools](../Modules/mod_dptools_1970333.mdx#c) (i.e., dialplan tools), but check out [the rest of the modules](../Modules/index.mdx#about) as well.
[Modules](../Modules/index.mdx#about) are applications that extend FreeSWITCH with extra functionality.
In the context, the most used commands and applications are in [mod\_dptools](../Modules/mod_dptools_1970333.mdx#c) (i.e., dialplan tools), but check out [the rest of the modules](../Modules/index.mdx#about) as well.

For example, routing a call to the [mod\_dptools:bridge](../Modules/mod-dptools/6586484.mdx#45-user) application will spawn a new channel and connect it to the incoming one.

The design allowing for multiple dialplan processing modules, as well as routing calls to applications which do all the hard work, gives you the flexibility to do what you need, the way that you need it to work. It does not force you to adapt your infrastructure around FreeSWITCH™, but lets FreeSWITCH™ more readily mesh with your existing infrastructure.
The design allowing for multiple dialplan processing modules, as well as routing calls to applications which do all the hard work, gives you the flexibility to do what you need, the way that you need it to work.
It does not force you to adapt your infrastructure around FreeSWITCH, but lets FreeSWITCH more readily mesh with your existing infrastructure.

IMPORTANT
### Contexts

**Contexts**

FreeSWITCH uses multiple **context**s to prevent internal extensions from being exposed to the world. The two contexts in the [vanilla FreeSWITCH configuration](../Configuration/Default-Configuration_6587388.mdx#mod_vp8) are called **`public`** and **`default`**, but these names are arbitrary and can be carefully changed. New contexts can also be added.
FreeSWITCH uses multiple **context**s to prevent internal extensions from being exposed to the world.
The two contexts in the [vanilla FreeSWITCH configuration](../Configuration/Default-Configuration_6587388.mdx#mod_vp8) are called **`public`** and **`default`**, but these names are arbitrary and can be carefully changed.
New contexts can also be added.

Everything in the **`public`** context is available to the world, while everything in the **`default`** context is only available to users who have registered with FreeSWITCH.

Expand All @@ -59,24 +64,18 @@ Contexts can be used in

Anywhere you can specify a dialplan to route calls (such as [mod\_sofia](../Modules/mod_sofia_1048707.mdx#about)'s configuration), you may specify multiple ones by separating them with commas.

## 2\. Modules

---
## Modules

* [Dialplan XML](./XML-Dialplan/index.mdx#about) \- XML Dialplan Module (the most common).
* [LDAP Directory](../Directory/LDAP-Directory_1048997.mdx#about) \- LDAP Directory Dialplan Module
* [mod\_dialplan\_asterisk](../Modules/mod_dialplan_asterisk_3966416.mdx#about) \- Asterisk compatible dialplan module.

## 3\. Tools

---
## Tools

* [blue.box](http://www.2600hz.org/)
* [FusionPBX](http://www.fusionpbx.com/)

## 4\. See Also

---
## See Also

* [Freeswitch IVR Originate](./Freeswitch-IVR-Originate_9634753.mdx#channel-variables)

Expand Down