TwiML (TwiML v0.1.0) View Source

Examples

Say 2 things, one after the other:

iex> TwiML.say("Hello") |> TwiML.say("world") |> TwiML.to_xml()
~s(<Response>
  <Say>Hello</Say>
  <Say>world</Say>
</Response>)

Say something in another voice:

iex> TwiML.say(nil, "Hello", voice: "woman") |> TwiML.to_xml()
~s(<Response>
  <Say voice="woman">Hello</Say>
</Response>)

Leaving the content empty for a TwiML verb, will create a XML Element that has no body:

iex> TwiML.hangup([]) |> TwiML.to_xml()
~s(<Response>
  <Hangup/>
</Response>)

You can embed TwiML tags into other tags using the into_<verb> function:

iex> TwiML.say("Lets say this inside the gather")
...> |> TwiML.into_gather(language: "en-US", input: "speech")
...> |> TwiML.to_xml()
~s(<Response>
  <Gather language="en-US" input="speech">
    <Say>Lets say this inside the gather</Say>
  </Gather>
</Response>)

If you have multiple TwiML tags you want to embed, that works too:

iex> TwiML.say("Hi")
...> |> TwiML.say("We cool?")
...> |> TwiML.into_gather(language: "en-US", input: "speech", hints: "yes, no")
...> |> TwiML.to_xml()
~s(<Response>
  <Gather language="en-US" input="speech" hints="yes, no">
    <Say>Hi</Say>
    <Say>We cool?</Say>
  </Gather>
</Response>)

It is also possible to just include a few of the preceding tags into the body of another element. The 1 decides that we want to only put the last element into the Dial element's body:

iex> TwiML.say("Calling Yodel")
...> |> TwiML.number("+1 415-483-0400")
...> |> TwiML.into_dial([], 1)
...> |> TwiML.to_xml()
~s(<Response>
  <Say>Calling Yodel</Say>
  <Dial>
    <Number>+1 415-483-0400</Number>
  </Dial>
</Response>)

Link to this section Summary

Link to this section Functions

Link to this function

dial(verbs \\ nil, content, attrs \\ [])

View Source
Link to this function

gather(verbs \\ nil, content, attrs \\ [])

View Source
Link to this function

hangup(verbs \\ nil, content, attrs \\ [])

View Source
Link to this function

into_dial(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

into_gather(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

into_hangup(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

into_number(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

into_pause(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

into_play(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

into_say(verbs, attrs, last_n_elements \\ :all)

View Source
Link to this function

number(verbs \\ nil, content, attrs \\ [])

View Source
Link to this function

pause(verbs \\ nil, content, attrs \\ [])

View Source
Link to this function

play(verbs \\ nil, content, attrs \\ [])

View Source
Link to this function

say(verbs \\ nil, content, attrs \\ [])

View Source