ruby_sipgate 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cee0dbb7032e1712414dfc2325bdc788b5bd7700
4
+ data.tar.gz: 102b1f54f934adec212811f4438384a39777c64f
5
+ SHA512:
6
+ metadata.gz: 1ea85ca6ec52a3ce87f6310010c9d6a012496eeba5862286a32648d96d3bfdb258b7874d6ac2b02425ca8e2a15ef94431243919cd6e2506a89f9f35862131766
7
+ data.tar.gz: d61cd18a5f53d094665bd10e6250c05ed465d8512d33a2630c89c541de0fcddc2ee0e871f818a2a6d6bc37a72722ae4a64f937346c48635f657b764669685da9
@@ -0,0 +1,2 @@
1
+ *.gem
2
+ *.swp
@@ -0,0 +1,22 @@
1
+ ruby-sipgate
2
+ =========
3
+
4
+ Ruby Gem for sending sms via sipgate api
5
+
6
+
7
+ Usage
8
+ ======
9
+
10
+ require 'rubysgate'
11
+
12
+ Rubysgate::Config.set :password, "your_password"
13
+
14
+ Rubysgate::Config.set :username, "your_username"
15
+
16
+ Rubysgate::Sms.deliver "015598765432", "Lorem Ipsum"
17
+
18
+ Config Parameters
19
+ ==================
20
+ * :password = ""
21
+ * :username = ""
22
+ * :debug = false
@@ -0,0 +1,5 @@
1
+ module RubySipgate
2
+ require "xmlrpc/client"
3
+ require "./ruby_sipgate/sms"
4
+ require "./ruby_sipgate/config"
5
+ end
@@ -0,0 +1,22 @@
1
+ module RubySipgate
2
+ class Config
3
+ @@params={username:"",password:"",debug:false,verbose:false}
4
+
5
+ def self.get *key
6
+ if key.empty?
7
+ return @@params
8
+ elsif key.size == 1
9
+ return @@params[key.first]
10
+ end
11
+ return nil
12
+ end
13
+
14
+ def self.set hash
15
+ @@params = hash
16
+ end
17
+
18
+ def self.set key,value
19
+ @@params[key]=value
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,45 @@
1
+ # credits for base construct to Thomas Witt
2
+ # https://gist.github.com/thomaswitt/4006850
3
+
4
+ module RubySipgate
5
+ class Sms
6
+ def self.hi
7
+ puts "Hi #{RubySipgate::Config.get :username}, your pass is '#{RubySipgate::Config.get :password}'!"
8
+ end
9
+
10
+ def self.deliver(phonenumber, text)
11
+ user = RubySipgate::Config.get :username
12
+ url = "https://#{user}:#{RubySipgate::Config.get :password}@samurai.sipgate.net/RPC2"
13
+ client = XMLRPC::Client.new2(url)
14
+ client.call('samurai.ClientIdentify', {'ClientName' => 'Ruby-Client'} )
15
+ number = strip_phonenumber(phonenumber)
16
+ args = {
17
+ 'RemoteUri' => "sip:#{number}@sipgate.net",
18
+ 'TOS' => 'text',
19
+ 'Content' => text[0,159]
20
+ }
21
+ if RubySipgate::Config.get :debug
22
+ puts "*** I would have sent the following to #{phonenumber}:"
23
+ puts args.inspect
24
+ else
25
+ if r = client.call('samurai.SessionInitiate', args)
26
+ if RubySipgate::Config.get :verbose
27
+ puts "*** SMS sent to #{number} (#{r.inspect})"
28
+ puts "*** SMS text: #{text}"
29
+ end
30
+ return r
31
+ else
32
+ raise "sms send failed: #{r.inspect}"
33
+ end
34
+ end
35
+ end
36
+
37
+ private
38
+ def self.strip_phonenumber(number)
39
+ number.gsub!(/\D/, '')
40
+ number.gsub!(/^01/, '491')
41
+ number.gsub!(/^00491/, '491')
42
+ number
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,14 @@
1
+ require 'date'
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'ruby_sipgate'
5
+ s.version = '0.2.3'
6
+ s.date = Date.today.to_s
7
+ s.summary = "sms via sipgate api"
8
+ s.description = "Sending sms via sipgate api"
9
+ s.authors = ["Sebastian Neumann"]
10
+ s.email = 'github@tempo-tm.de'
11
+ s.files = `git ls-files`.split("\n")
12
+ s.homepage = 'https://github.com/tempo/ruby_sipgate'
13
+ s.license = 'MIT'
14
+ end
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_sipgate
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3
5
+ platform: ruby
6
+ authors:
7
+ - Sebastian Neumann
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-24 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Sending sms via sipgate api
14
+ email: github@tempo-tm.de
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - ".gitignore"
20
+ - README.md
21
+ - lib/ruby_sipgate.rb
22
+ - lib/ruby_sipgate/config.rb
23
+ - lib/ruby_sipgate/sms.rb
24
+ - ruby_sipgate.gemspec
25
+ homepage: https://github.com/tempo/ruby_sipgate
26
+ licenses:
27
+ - MIT
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 2.2.1
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: sms via sipgate api
49
+ test_files: []
50
+ has_rdoc: