Class: Adhearsion::Asterisk::ConfigGenerator::Voicemail::EmailDefinition

Inherits:
Adhearsion::Asterisk::ConfigGenerator show all
Defined in:
lib/adhearsion/asterisk/config_generator/voicemail.rb

Constant Summary collapse

EMAIL_VARIABLE_CONVENIENCES =
{
  :name             => '${VM_NAME}',
  :duration         => '${VM_DUR}',
  :message_number   => '${VM_MSGNUM}',
  :mailbox          => '${VM_MAILBOX}',
  :caller_id        => '${VM_CALLERID}',
  :date             => '${VM_DATE}',
  :caller_id_number => '${VM_CIDNUM}',
  :caller_id_name   => '${VM_CIDNAME}'
}

Constants inherited from Adhearsion::Asterisk::ConfigGenerator

SECTION_TITLE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Adhearsion::Asterisk::ConfigGenerator

create_sanitary_hash_from, #to_sanitary_hash, warning_message

Constructor Details

#initializeEmailDefinition

Returns a new instance of EmailDefinition.



157
158
159
160
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 157

def initialize
  @properties = {}
  super
end

Instance Attribute Details

#propertiesObject (readonly)

Returns the value of attribute properties.



156
157
158
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 156

def properties
  @properties
end

Instance Method Details

#[](email_variable) ⇒ Object



162
163
164
165
166
167
168
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 162

def [](email_variable)
  if EMAIL_VARIABLE_CONVENIENCES.has_key? email_variable
    EMAIL_VARIABLE_CONVENIENCES[email_variable]
  else
    raise ArgumentError, "Unrecognized variable #{email_variable.inspect}"
  end
end

#attach_recordings(true_or_false) ⇒ Object



180
181
182
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 180

def attach_recordings(true_or_false)
  boolean :attach => true_or_false
end

#attach_recordings?Boolean

Returns:

  • (Boolean)


184
185
186
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 184

def attach_recordings?
  properties[:attach] == 'yes'
end

#body(str) ⇒ Object



188
189
190
191
192
193
194
195
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 188

def body(str)
  str = str.gsub("\r", '').gsub("\n", '\n')
  if str.length > 512
    raise ArgumentError, "Asterisk has an email body limit of 512 characters! Your body is too long!\n" +
    ("-" * 10) + "\n" + str
  end
  string :emailbody => str
end

#command(cmd) ⇒ Object



201
202
203
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 201

def command(cmd)
  string :mailcmd => cmd
end

#disable!Object

Raises:

  • (NotImpementedError)


170
171
172
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 170

def disable!
  raise NotImpementedError
end

#from(options) ⇒ Object



174
175
176
177
178
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 174

def from(options)
  name, email = options.values_at :name, :email
  string :serveremail => email
  string :fromstring  => name
end

#subject(str) ⇒ Object



197
198
199
# File 'lib/adhearsion/asterisk/config_generator/voicemail.rb', line 197

def subject(str)
  string :emailsubject => str
end