README.md

# FreeswitchDialplanXmlEx

A diaplan builder for **mod_xml_curl**.

~~~elixir
defmodule MyFanstaticDialplan do
    use FreeswitchDialplanXmlEx, 
        condition_field_mapping: %{"Caller-Destination-Number" => "destination_number"}
    
    # only render extension who conditions asserts
    extension "echo" do
        condition %{"Caller-Destination-Number" => "9196" do
            action "echo"
        end
    end
    
    extension "extension" do
        condition %{"Caller-Destination-Number" => "1" <> rest do
          action "bridge", "user/1#{rest}"
        end
    end
end

...

IO.inspect MyFanstaticDialplan.render(params_from_mod_xml_curl_as_map)

<extension name"echo">
 <condition field="${destination_number}" expression="^9196">
   <action application="echo"/>
 </condition>
 <condition field="${variable_destination_number}" expression="^1.+$">
   <action application="bridge" data="user/1..string interpolated.."/>
 </condition>
</extension>
~~~

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `freeswitch_dialplan_xml_ex` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:freeswitch_dialplan_xml_ex, "~> 0.1.0"}
  ]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at <https://hexdocs.pm/freeswitch_dialplan_xml_ex>.