ex_twiml v2.1.2 ExTwiml
Contains macros to make generating TwiML from Elixir far easier and more efficient. Just import ExTwiml
and go!
Examples
How to generate nested verbs, such as <Gather>
:
# Options are passed before "do"
gather digits: 1, finish_on_key: "#" do
# More verbs here ...
end
# Generates
<Gather digits="1" finishOnKey="#"></Gather>
How to generate simpler verbs, such as <Say>
:
# Options are passed as the second argument
say "words to say", voice: "woman"
# Generates
<Say voice="woman">words to say</Say>
How to generate command verbs, like <Leave>
or <Pause>
:
# If the verb has no attributes, just write the name
# of the verb:
leave
# Generates
<Leave />
# If the verb has attributes, like <Pause>, write them
# after the name of the verb:
pause length: 5
# Generates
<Pause length="5" />
A complete example:
import ExTwiml
twiml do
play "/assets/welcome.mp3"
gather digits: 1 do
say "For more menus, please press 1.", voice: "woman"
say "To speak with a real person, please press 2.", voice: "woman"
end
end
Produces the following string
:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Play>/assets/welcome.mp3</Play>
<Gather digits="3">
<Say voice="woman">For more menus, please press 1.</Say>
<Say voice="woman">To speak with a real person, please press 2.</Say>
</Gather>
</Response>
You'd then need to render this string to the browser.
Summary
Functions
Get the current state of a buffer
Update the buffer by pushing a new tag onto the beginning
Render the contents of the buffer into a string
Start an Agent to store a given buffer state
Stop a buffer
Macros
Use this macro to generate a tag not yet supported by this Twiml library. Note that you'll also need to use the text
macro to include text within this tag
Adds whatever text is given to the current Twiml buffer, unmodified. As a result, this macro is really only useful when nested inside one of the other macros provided by this module
Functions
Specs
put_buffer(pid, any) :: atom
Update the buffer by pushing a new tag onto the beginning.
Specs
start_buffer(list) :: {:ok, pid}
Start an Agent to store a given buffer state.
Macros
Use this macro to generate a tag not yet supported by this Twiml library. Note that you'll also need to use the text
macro to include text within this tag.
Examples
tag :mms, to: "1112223333", from: "2223334444" do
text "How are you doing?"
end
Will produce the following Twiml:
<Mms to="1112223333" from="2223334444">How are you doing?</Mms>
Adds whatever text is given to the current Twiml buffer, unmodified. As a result, this macro is really only useful when nested inside one of the other macros provided by this module.
Start creating a TwiML document. Returns the rendered TwiML as a string. See the ExTwiml
documentation to see how to call TwiML verbs from within the twiml/1
macro.
Example
iex> import ExTwiml
...> twiml do
...> say "Hello World"
...> end
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Say>Hello World</Say></Response>"