Sha256: a43e0f2d2098d131b1c5ab3779d282aa3509b62ef7c8cd26724f57efd20b6756

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Responses
    module Twiml
      def dial_twiml(params: {})
        hangup = params[:hangup].present? ? '<Hangup/>' : ''
        protocol = params[:protocol].to_s.titleize
        play_urls = Array(params[:play_urls]).map do |play|
          "<Play>#{play}</Play>\n"
        end.join('')

        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \
          "\n<Response>\n" \
            "#{play_urls}" \
            "#{hangup}" \
            "<Dial action=\"#{CGI.escapeHTML(params[:action_url])}\" "\
              "callerId=\"#{params[:caller_id]}\">" \
              "\n<#{protocol} " \
                "statusCallback=\"#{params[:status_callback_url]}\" " \
                "statusCallbackEvent=\"#{params[:status_callback_events]}\">" \
                "#{params[:endpoint]}" \
              "</#{protocol}>" \
            "\n</Dial>\n" \
          "</Response>\n"
      end

      def refer_twiml(params: {})
        vr = Twilio::TwiML::VoiceResponse.new
        vr.refer(action: params[:action_url]) do |refer|
          refer.sip(
            params[:endpoint],
            status_callback: params[:status_callback_url],
            status_callback_event: params[:status_callback_events]
          )
        end.to_s
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 spec/support/twilio_base/responses/twiml.rb
twilio_base-1.11.11 spec/support/twilio_base/responses/twiml.rb