####################
Advanced Dialplans
####################

FusionPBX installs several default dialplans. FusionPBX also gives the option to make new dialplans. This gives you the power for more advanced functions, and produce the desired result.    




Adding a Dialplan
^^^^^^^^^^^^^^^^^^^

You can create a new dialplan or copy and modify an existing dialplan.

* Go to Dialplan > Dialplan Manager

* Click the **ADD** button at the top right.

.. image:: ../_static/images/dialplan/fusionpbx_dialplan_advanced1.png
        :scale: 60%

* Complete required fields and click save.

.. image:: ../_static/images/dialplan/fusionpbx_dialplan_advanced2.png
        :scale: 60%


Edit a Dialplan
^^^^^^^^^^^^^^^^^

Find the dialplan you want to edit and click the edit icon.

.. image:: ../_static/images/dialplan/fusionpbx_dialplan_advanced3.png
        :scale: 60%

Once you enter data into the empty fields at the bottom and click save, more blank fileds will populate if needed.

.. image:: ../_static/images/dialplan/fusionpbx_dialplan_advanced4.png
        :scale: 60%


Enable a Dialplan Destination
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Dialplans that have a value in the **Number** filed can be enabled and used in `Dialplan > Destinations <../dialplan/destinations.html>`_. Setting the **destination** field to **True** will enable the dialplan to be visable and used as an action in `Dialplan > Destinations <../dialplan/destinations.html>`_.

.. image:: ../_static/images/dialplan/fusionpbx_dialplan_advanced5.png
        :scale: 60%

Cross Tenant Calling
~~~~~~~~~~~~~~~~~~~~~~

This would require a prefix of 5 followed by 4 digit extensions. The prefix can be any number that you choose to use and the 4 digit extension must match the destination tenant. So if the destination extensions are 3 digit then you would use 3 instead of 4.

+-----------+---------------------------+------------------------------------------+-------+--------+-------+-------+
| Tag       | Type                      | Data                                     | Break | Inline | Group | Order |
+===========+===========================+==========================================+=======+========+=======+=======+
| condition | ${destination_number}     | ^5(\d{4})$                               |       |        |       | 5     |
+-----------+---------------------------+------------------------------------------+-------+--------+-------+-------+
| action    | set                       | domain_name=customer.domain.tld          |       | True   |       | 10    |
+-----------+---------------------------+------------------------------------------+-------+--------+-------+-------+
| action    | set                       | domain_uuid=correct-uuid-for-the-domain  |       | True   |       | 15    |
+-----------+---------------------------+------------------------------------------+-------+--------+-------+-------+
| action    | transfer                  | $1 XML ${domain_name}                    |       |        |       | 20    |
+-----------+---------------------------+------------------------------------------+-------+--------+-------+-------+

* Be sure to set the **Continue dropdown box True**

* Finally we have the desired dialplan to call from tenant A to tenant B.


.. image:: ../_static/images/dialplan/fusionpbx_custom_dialplan.png
        :scale: 60%




.. note::
      A quick way to find a domains uuid is by going to Advanced > Domains.  Then click the edit icon on the domain you want to know the uuid of.  The uuid will be at the end of the url.



