rfetion 0.3.9 → 0.3.10
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/VERSION +1 -1
- data/lib/rfetion/fetion.rb +22 -2
- data/rfetion.gemspec +2 -2
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.10
|
data/lib/rfetion/fetion.rb
CHANGED
@@ -105,9 +105,24 @@ class Fetion
|
|
105
105
|
|
106
106
|
def register
|
107
107
|
@logger.info "fetion http register"
|
108
|
+
call = next_call
|
108
109
|
arg = '<args><device type="PC" version="44" client-version="3.2.0540" /><caps value="simple-im;im-session;temp-group;personal-group" /><events value="contact;permission;system-message;personal-group" /><user-info attributes="all" /><presence><basic value="400" desc="" /></presence></args>'
|
109
110
|
|
110
|
-
call
|
111
|
+
register_first(call, arg)
|
112
|
+
|
113
|
+
# get nonce, it failed, try again 16s later
|
114
|
+
begin
|
115
|
+
register_second(call, arg)
|
116
|
+
rescue
|
117
|
+
sleep(16)
|
118
|
+
register_second(call, arg)
|
119
|
+
end
|
120
|
+
@logger.info "fetion http register success"
|
121
|
+
end
|
122
|
+
|
123
|
+
def register_first(call, arg)
|
124
|
+
@logger.debug "fetion http register first"
|
125
|
+
|
111
126
|
curl_exec(next_url, @ssic, FETION_SIPP)
|
112
127
|
|
113
128
|
msg = sip_create("R fetion.com.cn SIP-C/2.0", {'F' => @sid, 'I' => call, 'Q' => '1 R'}, arg) + FETION_SIPP
|
@@ -125,13 +140,18 @@ class Fetion
|
|
125
140
|
@logger.debug "salt: #{@salt}"
|
126
141
|
@logger.debug "cnonce: #{@cnonce}"
|
127
142
|
@logger.debug "response: #{@response}"
|
143
|
+
@logger.debug "fetion http register first success"
|
144
|
+
end
|
145
|
+
|
146
|
+
def register_second(call, arg)
|
147
|
+
@logger.debug "fetion http register second"
|
128
148
|
|
129
149
|
msg = sip_create('R fetion.com.cn SIP-C/2.0', {'F' => @sid, 'I' => call, 'Q' => '2 R', 'A' => "Digest algorithm=\"SHA1-sess\",response=\"#{@response}\",cnonce=\"#{@cnonce}\",salt=\"#{@salt}\""}, arg) + FETION_SIPP
|
130
150
|
curl_exec(next_url, @ssic, msg)
|
131
151
|
response = curl_exec(next_url, @ssic, FETION_SIPP)
|
132
152
|
|
133
153
|
raise FetionException.new('Fetion Error: Register failed.') unless response.is_a? Net::HTTPSuccess
|
134
|
-
@logger.
|
154
|
+
@logger.debug "fetion http register second success"
|
135
155
|
end
|
136
156
|
|
137
157
|
def get_buddy_list
|
data/rfetion.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rfetion}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.10"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Richard Huang"]
|
12
|
-
s.date = %q{2009-11-
|
12
|
+
s.date = %q{2009-11-22}
|
13
13
|
s.description = %q{rfetion is a ruby gem for China Mobile fetion service that you can send SMS free.}
|
14
14
|
s.email = %q{flyerhzm@gmail.com}
|
15
15
|
s.executables = ["rfetion", "rfetion"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rfetion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-22 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|