kannel_rails 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -25,7 +25,6 @@ development:
25
25
  username: username # Kannel sendsms-user username
26
26
  password: password # Kannel sendsms-user password
27
27
  api_secret: testing # A secret key you will also configure in Kannel for extra security
28
- dlr_mask: 31 # Set this if you want to receive delivery reports from Kannel.
29
28
  ```
30
29
 
31
30
  In config/routes.rb, add:
@@ -62,13 +61,13 @@ KannelRails.send_message("+639001234567", "Hello Flash!", :mclass => 0)
62
61
 
63
62
  To handle incoming SMS, create handler classes and register them.
64
63
 
65
- Classes have an invoke method which is called when handle? is true
64
+ Classes have an `invoke` method which is called when `handle?` is true
66
65
 
67
- The return value of invoke will be the response to Kannel, which will be sent back to the sender as SMS. omit-empty is set in the sms-service so that empty strings will not be sent back.
66
+ The return value of `invoke` will be the response to Kannel, which will be sent back to the sender as SMS. omit-empty is set in the sms-service so that empty strings will not be sent back.
68
67
 
69
- Sample handler is in spec/dummy/lib/echo_handler.rb
68
+ Sample handler is in `spec/dummy/lib/echo_handler.rb`
70
69
 
71
- Register the handler class in config/initializers/sms_handlers.rb (or some other place if you want):
70
+ Register the handler class in `config/initializers/sms_handlers.rb` (or some other place if you want):
72
71
 
73
72
  ```ruby
74
73
  KannelRails::Handlers.register HandlerClass
@@ -76,12 +75,21 @@ KannelRails::Handlers.register HandlerClass
76
75
 
77
76
  ### Delivery Reports
78
77
 
79
- To receive delivery reports, you must have the dlr_mask set. Check Kannel docs for possible values.
78
+ To receive delivery reports, you must have the dlr_mask and dlr_url set. Check Kannel docs for possible values.
80
79
 
81
- ```ruby
82
- dlr_url = "http://rails_app/some_endpoint?msg_id=123&type=%d&smsc_id=%i"
80
+ In your config:
83
81
 
84
- KannelRails.send_message("+639001234567", "Hello World!", 'dlr-url' => dlr_url)
82
+ ```yaml
83
+ development:
84
+ ...
85
+ dlr_url: http://rails_app/some_endpoint?msg_id=$msg_id&type=%d&smsc_id=%i
86
+ dlr_mask: 31
87
+ ```
88
+
89
+ Note: The `$msg_id` in the DLR URL is a special string that will be replaced with the value of `:msg_id` option when you call `send_message`.
90
+
91
+ ```ruby
92
+ KannelRails.send_message("+639001234567", "Hello World!", :msg_id => '1234')
85
93
  ```
86
94
 
87
- Refer to kannel docs for %d, %i, etc. You want to provide a unique msg id here (doesnt have to be called msg_id) so that you can match the delivery report to the corresponding message you sent.
95
+ This will result in Kannel calling something similar to the URL: `http://rails_app/some_endpoint?msg_id=1234&type=1&smsc_id=the_smsc_id`
@@ -8,7 +8,9 @@ class KannelRails::Config
8
8
  attr_accessor :username
9
9
  attr_accessor :password
10
10
 
11
+ attr_accessor :dlr_url
11
12
  attr_accessor :dlr_mask
13
+
12
14
  attr_accessor :api_secret
13
15
 
14
16
  def initialize(config_hash = {})
@@ -19,7 +21,9 @@ class KannelRails::Config
19
21
  self.username = config_hash['username']
20
22
  self.password = config_hash['password']
21
23
 
24
+ self.dlr_url = config_hash['dlr_url']
22
25
  self.dlr_mask = config_hash['dlr_mask']
26
+
23
27
  self.api_secret = config_hash['api_secret']
24
28
  end
25
29
 
@@ -1,3 +1,3 @@
1
1
  module KannelRails
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/kannel_rails.rb CHANGED
@@ -12,9 +12,15 @@ module KannelRails
12
12
  :password => config.password,
13
13
  :to => recipient,
14
14
  :text => message,
15
+ :'dlr-url' => config.dlr_url,
15
16
  :'dlr-mask' => config.dlr_mask
16
- }.merge!(options)
17
+ }
17
18
 
19
+ if config.dlr_url and options[:msg_id]
20
+ query_hash[:'dlr-url'] = config.dlr_url.sub('$msg_id', options[:msg_id])
21
+ end
22
+
23
+ query_hash.merge!(options)
18
24
  query_hash.delete_if { |k, v| v.to_s.blank? }
19
25
 
20
26
  request_url = config.kannel_url.merge('/cgi-bin/sendsms')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kannel_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-26 00:00:00.000000000 Z
12
+ date: 2013-12-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails