class ActionSmser::DeliveryMethods::Smstrade
Documentation: www.smstrade.eu/pdf/SMS-Gateway_HTTP_API_v2_en.pdf
Constants
- ERROR_CODES
Public Class Methods
deliver(sms)
click to toggle source
# File lib/action_smser/delivery_methods/smstrade.rb, line 22 def self.deliver(sms) options = sms.delivery_options[:smstrade] || {} options = options.dup options[:server] = 'gateway.smstrade.de' options[:use_ssl] = false options[:status_report_req] ||= sms.delivery_options[:save_delivery_reports] sms.delivery_info = [] # SmsTrade might confuse US numbers with German numbers if not prepended with 00 or +. formatted_numbers = sms.to_numbers_array.map { |to| ["00", to].join } formatted_numbers.each do |to| deliver_path = self.deliver_path(sms, to, options) response = self.deliver_http_request(sms, options, deliver_path) ActionSmser::Logger.info "Smstrade delivery http ||| #{deliver_path} ||| #{response.inspect}" ActionSmser::Logger.info response.body if !response.blank? sms.delivery_info.push(response) result = response.body.split("\n") result = {"response-code" => result[0], "message-id" => result[1], "cost" => result[2], "message-count" => result[3]} if ERROR_CODES[result["response-code"]].nil? status = "UNKNOWN_ERROR" else status = ERROR_CODES[result["response-code"]] end # Results include sms_id or error code in each line if sms.delivery_options[:save_delivery_reports] dr = ActionSmser::DeliveryReport.build_from_sms(sms, to, result["message-id"]) if status != "OK" dr.status = status dr.add_log "smstrade_error_code: #{result["response-code"]}" end dr.save sms.delivery_reports.push(dr) end end sms.delivery_options[:save_delivery_reports] ? sms.delivery_reports : sms.delivery_info end
deliver_path(sms, to, options)
click to toggle source
# File lib/action_smser/delivery_methods/smstrade.rb, line 67 def self.deliver_path(sms, to, options) "/?key=#{options[:key]}"+ "&from=#{sms.from_escaped}"+ "&to=#{to}"+ "&message=#{sms.body_escaped}"+ "&route=#{options[:route]}"+ "&debug=#{options[:debug] ? 1 : 0}"+ "&cost=1&message_id=1&count=1&charset=utf-8" end