Class: ActiveSms::ConnectionAdapters::BulkSmsAdapter

Inherits:
AbstractAdapter show all
Defined in:
lib/activesms/connection_adapters/bulk_sms_adapter.rb

Constant Summary collapse

SERVICE_HOSTS =
{
  :international => 'bulksms.vsms.net',
  :safrica       => 'bulksms.2way.co.za',
  :spoin         => 'bulksms.com.es',
  :uk            => 'www.bulksms.co.uk',
  :usa           => 'usa.bulksms.com'
}
SERVICE_PORT =
5567
SERVICE_PATH =
'/eapi/submission/send_sms/2/2.0'
STATUS_MESSAGES =
{
   0 => 'in progress',
   1 => 'scheduled',
  22 => 'internal fatal error',
  23 => 'authentication failure',
  24 => 'data validation failed',
  25 => 'insufficient credits',
  26 => 'upstream credits not available',
  27 => 'daily quota exceeded',
  28 => 'upstream quota exceeded',
  40 => 'temporarily unavailable'
}

Instance Attribute Summary

Attributes inherited from AbstractAdapter

#logger

Instance Method Summary collapse

Methods inherited from AbstractAdapter

#adapter_name, #parse

Constructor Details

#initialize(logger = nil, config = {}) ⇒ BulkSmsAdapter

Create an adapter for the BulkSMS gateway.

Options:

  • :region

  • :username

  • :password



42
43
44
45
46
47
48
# File 'lib/activesms/connection_adapters/bulk_sms_adapter.rb', line 42

def initialize(logger = nil, config = {})
  super(logger)
  @config = config.dup
  
  host = SERVICE_HOSTS[config[:region]] || SERVICE_HOSTS[:uk]
  @service_url = "http://#{host}:#{SERVICE_PORT}#{SERVICE_PATH}"
end

Instance Method Details

#adpter_nameObject

Return the human readable name of the connection adapter name.



51
52
53
# File 'lib/activesms/connection_adapters/bulk_sms_adapter.rb', line 51

def adpter_name
  return 'BulkSMS'
end

#deliver(sms) ⇒ Object



55
56
57
58
59
60
61
62
63
# File 'lib/activesms/connection_adapters/bulk_sms_adapter.rb', line 55

def deliver(sms)
  params = {
    :username => @config[:username],
    :password => @config[:password],
    :msisdn   => sms.recipients,
    :message  => sms.body,
  }
  send_http_request(@service_url, params)
end