Class: Adhearsion::VoIP::Asterisk::ConfigFileGenerators::Agents
- Inherits:
-
AsteriskConfigGenerator
- Object
- AsteriskConfigGenerator
- Adhearsion::VoIP::Asterisk::ConfigFileGenerators::Agents
- Defined in:
- lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb
Constant Summary
Constants inherited from AsteriskConfigGenerator
Adhearsion::VoIP::Asterisk::ConfigFileGenerators::AsteriskConfigGenerator::SECTION_TITLE
Instance Attribute Summary collapse
-
#agent_definitions ⇒ Object
Returns the value of attribute agent_definitions.
-
#agent_section ⇒ Object
Returns the value of attribute agent_section.
-
#agent_section_special ⇒ Object
Returns the value of attribute agent_section_special.
-
#general_section ⇒ Object
Returns the value of attribute general_section.
Instance Method Summary collapse
- #agent(id, properties) ⇒ Object
-
#allow_multiple_logins_per_extension(yes_or_no) ⇒ Object
enable or disable a single extension from longing in as multiple agents, defaults to enabled.
-
#allow_star_to_hangup(yes_or_no) ⇒ Object
Define endcall to allow an agent to hangup a call by ‘*’.
-
#change_cdr_source(yes_or_no) ⇒ Object
Define updatecdr.
-
#groups(*args) ⇒ Object
Group memberships for agents (may change in mid-file) WHAT DOES GROUPING ACCOMPLISH?.
-
#hold_music_class(music_class) ⇒ Object
Define the default musiconhold for agents musiconhold => music_class.
-
#initialize ⇒ Agents
constructor
A new instance of Agents.
-
#log_off_after_duration(time_in_seconds) ⇒ Object
Define autologoff times if appropriate.
-
#log_off_if_unavailable(yes_or_no) ⇒ Object
Define autologoffunavail to have agents automatically logged out when the extension that they are at returns a CHANUNAVAIL status when a call is attempted to be sent there.
-
#max_login_tries(number_of_tries) ⇒ Object
Define maxlogintries to allow agent to try max logins before failed.
-
#persistent_agents(yes_or_no) ⇒ Object
Define whether callbacklogins should be stored in astdb for persistence.
-
#play_for_waiting_keep_alive(sound_file) ⇒ Object
An optional custom beep sound file to play to always-connected agents.
-
#play_on_agent_goodbye(sound_file_name) ⇒ Object
Define the default good bye sound file for agents default to vm-goodbye.
- #record_agent_calls(yes_or_no) ⇒ Object
- #recording_format(symbol) ⇒ Object
- #recording_prefix(string) ⇒ Object
-
#require_hash_to_acknowledge(yes_or_no) ⇒ Object
Define ackcall to require an acknowledgement by ‘#’ when an agent logs in using agentcallbacklogin.
- #save_recordings_in(path_to_directory) ⇒ Object
-
#time_between_calls(time_in_seconds) ⇒ Object
Define wrapuptime.
- #to_s ⇒ Object (also: #conf)
Methods inherited from AsteriskConfigGenerator
create_sanitary_hash_from, #to_sanitary_hash, warning_message
Constructor Details
#initialize ⇒ Agents
Returns a new instance of Agents.
10 11 12 13 14 15 16 17 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 10 def initialize @general_section = {} @agent_section = {} @agent_section_special = {} # Uses => separator @agent_definitions = [] super end |
Instance Attribute Details
#agent_definitions ⇒ Object
Returns the value of attribute agent_definitions.
9 10 11 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 9 def agent_definitions @agent_definitions end |
#agent_section ⇒ Object
Returns the value of attribute agent_section.
9 10 11 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 9 def agent_section @agent_section end |
#agent_section_special ⇒ Object
Returns the value of attribute agent_section_special.
9 10 11 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 9 def agent_section_special @agent_section_special end |
#general_section ⇒ Object
Returns the value of attribute general_section.
9 10 11 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 9 def general_section @general_section end |
Instance Method Details
#agent(id, properties) ⇒ Object
30 31 32 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 30 def agent(id, properties) agent_definitions << {:id => id}.merge(properties) end |
#allow_multiple_logins_per_extension(yes_or_no) ⇒ Object
enable or disable a single extension from longing in as multiple agents, defaults to enabled
49 50 51 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 49 def allow_multiple_logins_per_extension(yes_or_no) general_section[:multiplelogin] = boolean_to_yes_no yes_or_no end |
#allow_star_to_hangup(yes_or_no) ⇒ Object
Define endcall to allow an agent to hangup a call by ‘*’. Default is “yes”. Set this to “no” to ignore ‘*’.
82 83 84 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 82 def allow_star_to_hangup(yes_or_no) agent_section[:endcall] = boolean_to_yes_no yes_or_no end |
#change_cdr_source(yes_or_no) ⇒ Object
Define updatecdr. This is whether or not to change the source channel in the CDR record for this call to agent/agent_id so that we know which agent generates the call
110 111 112 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 110 def change_cdr_source(yes_or_no) agent_section[:updatecdr] = boolean_to_yes_no yes_or_no end |
#groups(*args) ⇒ Object
Group memberships for agents (may change in mid-file) WHAT DOES GROUPING ACCOMPLISH?
36 37 38 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 36 def groups(*args) agent_section[:group] = args.join(",") end |
#hold_music_class(music_class) ⇒ Object
Define the default musiconhold for agents musiconhold => music_class
95 96 97 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 95 def hold_music_class(music_class) agent_section_special[:musiconhold] = music_class.to_s end |
#log_off_after_duration(time_in_seconds) ⇒ Object
Define autologoff times if appropriate. This is how long the phone has to ring with no answer before the agent is automatically logged off (in seconds)
62 63 64 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 62 def log_off_after_duration(time_in_seconds) agent_section[:autologoff] = time_in_seconds end |
#log_off_if_unavailable(yes_or_no) ⇒ Object
Define autologoffunavail to have agents automatically logged out when the extension that they are at returns a CHANUNAVAIL status when a call is attempted to be sent there. Default is “no”.
70 71 72 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 70 def log_off_if_unavailable(yes_or_no) agent_section[:autologoffunavail] = boolean_to_yes_no yes_or_no end |
#max_login_tries(number_of_tries) ⇒ Object
Define maxlogintries to allow agent to try max logins before failed. Default to 3
55 56 57 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 55 def max_login_tries(number_of_tries) agent_section[:maxlogintries] = number_of_tries end |
#persistent_agents(yes_or_no) ⇒ Object
Define whether callbacklogins should be stored in astdb for persistence. Persistent logins will be reloaded after Asterisk restarts.
43 44 45 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 43 def persistent_agents(yes_or_no) general_section[:persistentagents] = boolean_to_yes_no yes_or_no end |
#play_for_waiting_keep_alive(sound_file) ⇒ Object
An optional custom beep sound file to play to always-connected agents.
115 116 117 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 115 def play_for_waiting_keep_alive(sound_file) agent_section[:custom_beep] = sound_file end |
#play_on_agent_goodbye(sound_file_name) ⇒ Object
Define the default good bye sound file for agents default to vm-goodbye
103 104 105 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 103 def play_on_agent_goodbye(sound_file_name) agent_section_special[:agentgoodbye] = sound_file_name end |
#record_agent_calls(yes_or_no) ⇒ Object
119 120 121 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 119 def record_agent_calls(yes_or_no) agent_section[:recordagentcalls] = boolean_to_yes_no yes_or_no end |
#recording_format(symbol) ⇒ Object
123 124 125 126 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 123 def recording_format(symbol) raise ArgumentError, "Unrecognized format #{symbol}" unless [:wav, :wav49, :gsm].include? symbol agent_section[:recordformat] = symbol end |
#recording_prefix(string) ⇒ Object
128 129 130 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 128 def recording_prefix(string) agent_section[:urlprefix] = string end |
#require_hash_to_acknowledge(yes_or_no) ⇒ Object
Define ackcall to require an acknowledgement by ‘#’ when an agent logs in using agentcallbacklogin. Default is “no”.
76 77 78 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 76 def require_hash_to_acknowledge(yes_or_no) agent_section[:ackcall] = boolean_to_yes_no yes_or_no end |
#save_recordings_in(path_to_directory) ⇒ Object
132 133 134 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 132 def save_recordings_in(path_to_directory) agent_section[:savecallsin] = path_to_directory end |
#time_between_calls(time_in_seconds) ⇒ Object
Define wrapuptime. This is the minimum amount of time when after disconnecting before the caller can receive a new call note this is in milliseconds.
89 90 91 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 89 def time_between_calls(time_in_seconds) agent_section[:wrapuptime] = (time_in_seconds * 1000).to_i end |
#to_s ⇒ Object Also known as: conf
19 20 21 22 23 24 25 26 27 |
# File 'lib/adhearsion/voip/asterisk/config_generators/agents.conf.rb', line 19 def to_s AsteriskConfigGenerator. + general_section.inject("[general]") { |section,(key,value)| section + "\n#{key}=#{value}" } + agent_section.inject("\n[agents]") { |section,(key,value)| section + "\n#{key}=#{value}" } + agent_section_special.inject("") { |section,(key,value)| section + "\n#{key} => #{value}" } + agent_definitions.inject("\n") do |section,properties| section + "\nagent => #{properties[:id]},#{properties[:password]},#{properties[:name]}" end end |