# File lib/adhearsion/voip/asterisk/commands.rb, line 407
              def format_join_hash_key_arguments(options)
                
                bad_argument = lambda do |(key, value)|
                  raise ArgumentError, "Unrecognize value for #{key.inspect} -- #{value.inspect}"
                end
                
                # Direct Queue() arguments:
                timeout        = options.delete :timeout
                announcement   = options.delete :announce

                # Terse single-character options
                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