def format_join_hash_key_arguments(options)
bad_argument = lambda do |(key, value)|
raise ArgumentError, "Unrecognize value for #{key.inspect} -- #{value.inspect}"
end
timeout = options.delete :timeout
announcement = options.delete :announce
ring_style = options.delete :play
allow_hangup = options.delete :allow_hangup
allow_transfer = options.delete :allow_transfer
raise ArgumentError, "Unrecognized args to join!: #{options.inspect}" if options.any?
ring_style = case ring_style
when :ringing: 'r'
when :music: ''
when nil
else bad_argument[:play => ring_style]
end.to_s
allow_hangup = case allow_hangup
when :caller: 'H'
when :agent: 'h'
when :everyone: 'Hh'
when nil
else bad_argument[:allow_hangup => allow_hangup]
end.to_s
allow_transfer = case allow_transfer
when :caller: 'T'
when :agent: 't'
when :everyone: 'Tt'
when nil
else bad_argument[:allow_transfer => allow_transfer]
end.to_s
terse_character_options = ring_style + allow_transfer + allow_hangup
[terse_character_options, '', announcement, timeout].map(&:to_s)
end