gs_phone 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/CHANGES.txt CHANGED
@@ -1,3 +1,10 @@
1
+ Version 0.0.4
2
+ (09 May 2007)
3
+
4
+ * Added all commands for reboot, update, and make
5
+ * Marked all internal methods as private
6
+ * Moved the logic parsing into library as part of the public API
7
+
1
8
  Version 0.0.3
2
9
  (25 March 2007)
3
10
 
data/INSTALL.txt ADDED
@@ -0,0 +1,33 @@
1
+ Adapted from: http://theadmin.org/articles/2007/03/23/gs_phone-ruby-program-to-remotely-configure-grandstream-voip-phone
2
+
3
+ ### How do I get it?
4
+
5
+ There are three ways to get gs_phone.
6
+
7
+ 1. (Recommended) Grab the gem from Rubyforge. It is packaged like many other Ruby libraries and this will let you keep up to date and any changes to the program.
8
+
9
+ gem install gs_phone
10
+
11
+ 2. Grab the [archive file][1] from Rubyforge.
12
+
13
+ 3. Get the latest Subversion copy. The repository is public for reading so a quick checkout should work.
14
+
15
+ svn checkout https://svn.theadmin.org/public/gs_phone/trunk/ gs_phone
16
+
17
+ You can also get the release code in the tags folders
18
+
19
+ svn checkout https://svn.theadmin.org/public/gs_phone/tags/release-0.0.2/ gs_phone-0.0.2
20
+
21
+ In order to use gs_phone you will also need to download [gsutil][2] from Charles Howes. The main file we are looking for is called gsutil
22
+
23
+
24
+ ### How do I use it?
25
+
26
+ 1. First you will need to run gs_phone to have it setup a folder and some files for you. Currenly they are hardcoded to HOME/.gs_phone but they could change soon. Just run gs_phone and it should notice you need the files and create them for you.
27
+ 2. Next you need to point gs_phone to your gsutil program. You can either copy gsutil into HOME/.gs_phone or modify the config.yml for gs_phone to point to the correct location.
28
+ 3. gs_phone should now work. Run the help command to get an idea of some of the functions. You can also run help on a command to see what a specific command does.
29
+
30
+ Eric Davis
31
+
32
+ [1]: http://rubyforge.org/frs/?group_id=3216
33
+ [2]: http://www.pkts.ca/gsutil.shtml
data/MAINTAINERS.txt ADDED
@@ -0,0 +1,3 @@
1
+ = List of Maintainers
2
+
3
+ * Eric Davis <edavis10@gmail.com>
data/README.txt CHANGED
@@ -4,19 +4,28 @@ Copyright (C) 2007 Eric Davis
4
4
 
5
5
  = Description
6
6
 
7
+ Application to mange and configure a group of Grandstream Voip phones.
7
8
 
8
9
  = Dependencies
9
10
 
10
- YAML and optparse are required.
11
+ YAML is required.
11
12
 
12
13
  = Installation
13
14
 
14
15
  RubyGem way:
15
16
  $ gem install gs_phone
16
17
 
17
- = Example
18
+ = Usage
18
19
 
19
- Example files are provided in the "examples" directory.
20
+ A shell program, 'gs_phone', is installed by RubyGems and is the primary way to
21
+ use gs_phone. Running "gs_phone help" will provide usage examples.
22
+
23
+ Additional the library can be called through the public methods by another Ruby
24
+ application. See the RDoc for details on how to use the public methods.
25
+
26
+ = Example configurations
27
+
28
+ Example configuration files are provided in the "examples" directory.
20
29
 
21
30
  = Contact
22
31
 
data/ROADMAP.txt ADDED
@@ -0,0 +1,32 @@
1
+ = Version 0.0.2 =
2
+
3
+ * Rework command line passing
4
+
5
+ = Version 0.0.3 =
6
+
7
+ * Add unit tests
8
+
9
+ = Version 0.0.4 =
10
+
11
+ * Separate pubic and private methods
12
+ * Add in the 'all' commands
13
+
14
+ = Version 0.0.5 =
15
+
16
+ * Refactor design
17
+
18
+ = Version 0.0.6 =
19
+
20
+ * Add in command to get a list of ip addresses
21
+
22
+ = Version 0.1.0 =
23
+
24
+ * Beta Release
25
+ * Replace gsutil script
26
+
27
+ = Version 1.0.0 =
28
+
29
+ * Stable release
30
+ * ???
31
+
32
+
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ AUTHOR = "Eric Davis" # can also be an array of Authors
15
15
  EMAIL = "edavis10@gmail.com"
16
16
  DESCRIPTION = "Application to mange and configure a group of Grandstream Voip phones"
17
17
  GEM_NAME = "gs_phone" # what ppl will type to install your gem
18
- RUBYFORGE_PROJECT = "gs_phone" # The unix name for your project
18
+ RUBYFORGE_PROJECT = "gs-phone" # The unix name for your project
19
19
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
20
20
 
21
21
  NAME = "gs_phone"
@@ -50,7 +50,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
50
50
  #p.changes - A description of the release's latest changes.
51
51
  #p.extra_deps - An array of rubygem dependencies.
52
52
  p.spec_extras = {
53
- "extra_rdoc_files" => ["CHANGES.txt", "README.txt", "COPYING.txt", "TODO.txt"]
53
+ "extra_rdoc_files" => ["CHANGES.txt", "README.txt", "COPYING.txt", "TODO.txt", "MAINTAINERS.txt", "ROADMAP.txt", "INSTALL.txt"]
54
54
  }
55
55
  end
56
56
 
data/TODO.txt CHANGED
@@ -4,6 +4,7 @@ This is the list of tasks that need to be done or have been completed.
4
4
 
5
5
  = CURRENT
6
6
 
7
+ * Refactor design
7
8
  * Announce package
8
9
  * Get a list of the ip addresses currently assigned (Currently this works: grep -i '^ip' users.yml | awk '// {print $2}' | sort)
9
10
  * Allow asterisk intregration
@@ -28,3 +29,5 @@ This is the list of tasks that need to be done or have been completed.
28
29
  * Add unit tests
29
30
  * Cleanup the option parser
30
31
  * Cleanup the output from the program (e.g. remove "GS >")
32
+ * Make methods private
33
+ * BUG: No interface to the all commands (e.g. reboot all)
data/bin/gs_phone CHANGED
@@ -10,39 +10,4 @@ require 'gs_phone'
10
10
 
11
11
 
12
12
  gs = GrandStream.new
13
-
14
- if not ARGV.nil? and ARGV.include?("-v")
15
- gs.verbose = true
16
- ARGV.delete_if { |a| a == "-v"}
17
- end
18
-
19
- @command = ARGV[0]
20
- @ip = ARGV[1]
21
- @current_ip = ARGV[2]
22
- @admin = ARGV[3]
23
-
24
- case @command
25
- when "help"
26
- response = gs.help(ARGV[1])
27
- when "new"
28
- # Don't use response because we want to give feeback throughout this process
29
- puts gs.add_user(@ip)
30
- puts gs.make(@ip)
31
- puts gs.update_config(@ip, @current_ip, @admin)
32
- puts gs.reboot_phone(@ip)
33
- when "add"
34
- response = gs.add_user(@ip)
35
- when "make"
36
- response = gs.make(@ip)
37
- when "update"
38
- response = gs.update_config(@ip, @current_ip, @admin)
39
- when "reboot"
40
- response = gs.reboot_phone(@ip)
41
- when "find"
42
- response = gs.find_ip
43
- else
44
- response = gs.help
45
- end
46
-
47
- # Print out any responses, used for verbose options
48
- puts response unless response.nil?
13
+ puts gs.parse_arguements(ARGV)
data/lib/gs_phone.rb CHANGED
@@ -50,7 +50,77 @@ class GrandStream
50
50
  # TODO: need to find a way to stop printing this in TEST
51
51
  # puts @new_config_created unless @new_config_created.nil?
52
52
  end
53
+
54
+ # This is the main event handler. Send it an array of arguements that match
55
+ # the following signatures. Arguements marked with * are optional:
56
+ #
57
+ # help => "help", *command
58
+ # new => "new", ip, *current_ip, *admin_password
59
+ # add => "add", *username, *password, *mac_address
60
+ # make => "make", *ip
61
+ # make all => "make", "all"
62
+ # update => "update", *ip
63
+ # update all => "update", "all"
64
+ # reboot => "reboot", *ip
65
+ # reboot all => "reboot", "all"
66
+ # find => "find", *ip
67
+ #
68
+ def parse_arguements(arguements)
69
+ if not arguements.nil? and arguements.include?("-v")
70
+ @verbose = true
71
+ arguements.delete_if { |a| a == "-v"}
72
+ end
53
73
 
74
+ @command = arguements[0]
75
+ @ip = arguements[1]
76
+ @current_ip = arguements[2]
77
+ @admin = arguements[3]
78
+
79
+ case @command
80
+ when "help"
81
+ response = help(arguements[1])
82
+ when "new"
83
+ # Don't use response because we want to give feeback throughout this process
84
+ puts add_user(@ip)
85
+ puts make(@ip)
86
+ puts update_config(@ip, @current_ip, @admin)
87
+ puts reboot_phone(@ip)
88
+ when "add"
89
+ username = arguements[2]
90
+ password = arguements[3]
91
+ extension = arguements[3] # TODO: assuming password and extensions are the same.
92
+ mac_addy = arguements[4]
93
+ response = add_user(@ip,username,password,mac_addy)
94
+ when "make"
95
+ if @ip != "all"
96
+ response = make(@ip)
97
+ else
98
+ response = make_all
99
+ end
100
+ when "update"
101
+ if @ip != "all"
102
+ response = update_config(@ip, @current_ip, @admin)
103
+ else
104
+ response = update_all
105
+ end
106
+ when "reboot"
107
+ if @ip != "all"
108
+ response = reboot_phone(@ip)
109
+ else
110
+ response = reboot_all
111
+ end
112
+ when "find"
113
+ response = find_ip(@ip)
114
+ else
115
+ response = help
116
+ end
117
+
118
+ # Print out any responses, used for verbose options
119
+ return response unless response.nil?
120
+ end
121
+
122
+ private
123
+
54
124
  def help(command=nil)
55
125
  usage_summary(command)
56
126
  end
@@ -184,9 +254,21 @@ class GrandStream
184
254
  data = YAML::load_documents(users) do |element|
185
255
  @user_list[element['ext']] = element['ip']
186
256
  end
257
+
258
+ responses = String.new
187
259
  @user_list.each do |ext,ip|
188
- make(ip)
260
+ response = make(ip)
261
+ if response
262
+ responses << response
263
+ end
264
+ end
265
+
266
+ if not @verbose
267
+ return nil
268
+ else
269
+ return responses
189
270
  end
271
+
190
272
  end
191
273
 
192
274
 
@@ -256,7 +338,7 @@ class GrandStream
256
338
  end
257
339
 
258
340
  # Reboot all phones
259
- def reboot_all_phones
341
+ def reboot_all
260
342
  puts "Rebooting all phones" if @verbose
261
343
  @user_list = Hash.new
262
344
 
@@ -323,10 +405,12 @@ EOADD
323
405
  usage =<<EOMAKE
324
406
  Usage: make IP_ADDRESS
325
407
 
326
- Creates the configuration file for the phone at IP_ADDRESS
408
+ Creates the configuration file for the phone at IP_ADDRESS. 'all' can be used
409
+ as the IP_ADDRESS to make configurations all of the systems.
327
410
 
328
411
  Ex:
329
412
  make 192.168.1.200
413
+ make all
330
414
 
331
415
  EOMAKE
332
416
 
@@ -334,7 +418,8 @@ EOMAKE
334
418
  usage =<<EOUPDATE
335
419
  Usage: update IP_ADDRESS [CURRENT_ADDRESS] [ADMIN_PASSWORD]
336
420
 
337
- Sends the updated configuration file for IP_ADDRESS to the phone.
421
+ Sends the updated configuration file for IP_ADDRESS to the phone. 'all' can be
422
+ used as the IP_ADDRESS to update all of the systems.
338
423
 
339
424
  Optionally, a phone configuration can be sent to a phone that currently has
340
425
  a different ip address by using CURRENT_ADDRESS
@@ -345,20 +430,23 @@ Ex:
345
430
  update 192.168.1.200
346
431
  update 192.168.1.200 192.168.1.10 <= Send '200's update to the phone at '10'
347
432
  update 192.168.1.200 192.168.1.10 admin <= Also uses the factory password
433
+ update all
348
434
 
349
435
 
350
436
  EOUPDATE
351
437
 
352
438
  when "reboot"
353
439
  usage =<<EOREBOOT
354
- Usage: reboot COMMAND IP_ADDRESS
440
+ Usage: reboot IP_ADDRESS
355
441
 
356
- Reboots the phone at IP_ADDRESS.
442
+ Reboots the phone at IP_ADDRESS. 'all' can be used as the IP_ADDRESS to reboot
443
+ all of the systems.
357
444
 
358
445
  CAUTION: Some firmware will allow the phone to be rebooted while it is in use!
359
446
 
360
447
  Ex:
361
448
  reboot 192.168.1.200
449
+ reboot all
362
450
 
363
451
  EOREBOOT
364
452
 
@@ -2,7 +2,7 @@ module GsPhone #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -70,7 +70,7 @@ class GrandstreamTest < Test::Unit::TestCase
70
70
  def test_add_user
71
71
  create_new_settings
72
72
  gs = GrandStream.new
73
- gs.add_user("192.168.100.23","John Doe","200","000B820B0A7C")
73
+ gs.parse_arguements(["add","192.168.100.23","John Doe","200","000B820B0A7C"])
74
74
 
75
75
  assert File.exists?("tmp/users.yml")
76
76
  users = YAML::load(File.open("tmp/users.yml"))
@@ -85,10 +85,10 @@ class GrandstreamTest < Test::Unit::TestCase
85
85
  def test_make
86
86
  create_new_settings
87
87
  gs = GrandStream.new
88
- gs.add_user("192.168.100.23","John Doe","200","000B820B0A7C")
88
+ gs.parse_arguements(["add","192.168.100.23","John Doe","200","000B820B0A7C"])
89
89
 
90
90
  # Make the file and check that it is correct
91
- gs.make("192.168.100.23")
91
+ assert_equal "Made config for extension 200",gs.parse_arguements(['make','192.168.100.23'])
92
92
  assert File.exists?("tmp/templates/192.168.100.23.cfg")
93
93
 
94
94
  config = File.read("tmp/templates/192.168.100.23.cfg")
@@ -122,12 +122,12 @@ class GrandstreamTest < Test::Unit::TestCase
122
122
 
123
123
  # Create some users
124
124
  userlist.each do |ip,user|
125
- gs.add_user(ip,user,rand(300).to_s,"000B820B0A7C")
125
+ gs.parse_arguements(["add",ip,user,rand(300).to_s,"000B820B0A7C"])
126
126
  end
127
127
 
128
128
  # Make all of the files
129
- gs.make_all
130
-
129
+ assert_nil gs.parse_arguements(['make','all'])
130
+
131
131
  # Check that they are all there and correct
132
132
  userlist.each do |ip, user|
133
133
  assert File.exists?("tmp/templates/#{ip}.cfg")
@@ -140,9 +140,9 @@ class GrandstreamTest < Test::Unit::TestCase
140
140
  def test_find_ip
141
141
  create_new_settings
142
142
  gs = GrandStream.new
143
- gs.add_user("192.168.100.23","John Doe","200","000B820B0A7C")
143
+ gs.parse_arguements(["add","192.168.100.23","John Doe","200","000B820B0A7C"])
144
144
 
145
- assert_equal "192.168.100.23", gs.find_ip("200")
145
+ assert_equal "192.168.100.23", gs.parse_arguements(['find','200'])
146
146
  end
147
147
 
148
148
  # Reboot the phone
@@ -151,7 +151,7 @@ class GrandstreamTest < Test::Unit::TestCase
151
151
  # Change the admin password so the mock will work
152
152
  change_admin_password
153
153
  gs = GrandStream.new
154
- assert_nil gs.reboot_phone("192.168.1.25") # a nil return means no error
154
+ assert_nil gs.parse_arguements(['reboot',"192.168.1.25"]) # a nil return means no error
155
155
 
156
156
  end
157
157
 
@@ -159,7 +159,7 @@ class GrandstreamTest < Test::Unit::TestCase
159
159
  def test_reboot_incorrect_password
160
160
  create_new_settings
161
161
  gs = GrandStream.new
162
- assert_equal "ERROR: Failed to reboot phone", gs.reboot_phone("192.168.1.25")
162
+ assert_equal "ERROR: Failed to reboot phone", gs.parse_arguements(['reboot',"192.168.1.25"])
163
163
 
164
164
  end
165
165
 
@@ -170,10 +170,10 @@ class GrandstreamTest < Test::Unit::TestCase
170
170
  # Change the admin password so the mock will work
171
171
  change_admin_password
172
172
  gs = GrandStream.new
173
- gs.add_user("192.168.1.25","John Doe1","200","000B820B0A7C")
174
- gs.add_user("192.168.1.25","John Doe2","201","000B820B0A7C")
173
+ gs.parse_arguements(["add","192.168.1.25","John Doe1","200","000B820B0A7C"])
174
+ gs.parse_arguements(["add","192.168.1.25","John Doe2","201","000B820B0A7C"])
175
175
 
176
- assert_nil gs.reboot_all_phones # a nil return means no error
176
+ assert_nil gs.parse_arguements(['reboot','all'])
177
177
 
178
178
  end
179
179
 
@@ -183,10 +183,10 @@ class GrandstreamTest < Test::Unit::TestCase
183
183
  # Change the admin password so the mock will work
184
184
  change_admin_password
185
185
  gs = GrandStream.new
186
- gs.add_user("192.168.1.25","John Doe","200","000B820B0A7C")
187
- gs.make("192.168.1.25")
188
-
189
- assert_nil gs.update_config("192.168.1.25") # nil means no error
186
+ gs.parse_arguements(["add","192.168.1.25","John Doe","200","000B820B0A7C"])
187
+ assert_equal "Made config for extension 200", gs.parse_arguements(['make','192.168.1.25'])
188
+
189
+ assert_nil gs.parse_arguements(['update','192.168.1.25']) # nil means no error
190
190
 
191
191
  end
192
192
 
@@ -194,10 +194,10 @@ class GrandstreamTest < Test::Unit::TestCase
194
194
  def test_update_incorrect_password
195
195
  create_new_settings
196
196
  gs = GrandStream.new
197
- gs.add_user("192.168.1.25","John Doe","200","000B820B0A7C")
198
- gs.make("192.168.1.25")
197
+ gs.parse_arguements(["add","192.168.1.25","John Doe","200","000B820B0A7C"])
198
+ assert_equal "Made config for extension 200", gs.parse_arguements(['make','192.168.1.25'])
199
199
 
200
- assert_equal "ERROR: Failed to send config", gs.update_config("192.168.1.25")
200
+ assert_equal "ERROR: Failed to send config", gs.parse_arguements(['update','192.168.1.25'])
201
201
 
202
202
  end
203
203
 
@@ -215,24 +215,67 @@ class GrandstreamTest < Test::Unit::TestCase
215
215
 
216
216
  # Create some users
217
217
  userlist.each do |ip,user|
218
- gs.add_user(ip,user,rand(300).to_s,"000B820B0A7C")
218
+ gs.parse_arguements(["add",ip,user,rand(300).to_s,"000B820B0A7C"])
219
219
  end
220
220
 
221
221
  # Make all of the files
222
- gs.make_all
223
-
224
- assert_nil gs.update_all # nil means no error
222
+ assert_nil gs.parse_arguements(['make','all'])
223
+ assert_nil gs.parse_arguements(['update','all'])
225
224
 
226
225
  end
227
226
 
228
-
229
227
  #####
230
228
  # Help sections
231
229
  #####
232
230
  def test_help
233
231
  create_new_settings
234
232
  gs = GrandStream.new
235
- help =<<EOHELP
233
+ assert_equal help_text, gs.parse_arguements([])
234
+ end
235
+
236
+ def test_help_new
237
+ create_new_settings
238
+ gs = GrandStream.new
239
+ assert_equal help_text_new, gs.parse_arguements(["help","new"])
240
+ end
241
+
242
+ def test_help_add
243
+ create_new_settings
244
+ gs = GrandStream.new
245
+
246
+ assert_equal help_text_add, gs.parse_arguements(["help","add"])
247
+ end
248
+
249
+ def test_help_make
250
+ create_new_settings
251
+ gs = GrandStream.new
252
+
253
+ assert_equal help_text_make, gs.parse_arguements(["help","make"])
254
+ end
255
+
256
+ def test_help_update
257
+ create_new_settings
258
+ gs = GrandStream.new
259
+
260
+ assert_equal help_text_update, gs.parse_arguements(["help","update"])
261
+ end
262
+
263
+ def test_help_reboot
264
+ create_new_settings
265
+ gs = GrandStream.new
266
+
267
+ assert_equal help_text_reboot, gs.parse_arguements(["help","reboot"])
268
+ end
269
+
270
+ def test_help_find
271
+ create_new_settings
272
+ gs = GrandStream.new
273
+
274
+ assert_equal help_text_find, gs.parse_arguements(["help","find"])
275
+ end
276
+
277
+ def help_text
278
+ help =<<EOHELP
236
279
  Usage: COMMAND [options]
237
280
 
238
281
  COMMANDS DESCRIPTION
@@ -244,13 +287,11 @@ reboot Reboots a phone
244
287
  find Find the ip address in the configuration file
245
288
 
246
289
  EOHELP
247
-
248
- assert_equal help, gs.help
290
+ return help
249
291
  end
250
292
 
251
- def test_help_new
252
- create_new_settings
253
- gs = GrandStream.new
293
+ def help_text_new
294
+
254
295
  help =<<EONEW
255
296
  Usage: new
256
297
 
@@ -258,13 +299,12 @@ Goes through all the steps to setup a new phone:
258
299
  "add", "make", "update", "reboot"
259
300
 
260
301
  EONEW
261
-
262
- assert_equal help, gs.help("new")
302
+
303
+ return help
263
304
  end
264
305
 
265
- def test_help_add
266
- create_new_settings
267
- gs = GrandStream.new
306
+
307
+ def help_text_add
268
308
  help =<<EOADD
269
309
  Usage: add IP_ADDRESS
270
310
 
@@ -275,32 +315,31 @@ Ex:
275
315
 
276
316
  EOADD
277
317
 
278
- assert_equal help, gs.help("add")
318
+ return help
279
319
  end
280
320
 
281
- def test_help_make
282
- create_new_settings
283
- gs = GrandStream.new
321
+ def help_text_make
284
322
  help =<<EOMAKE
285
323
  Usage: make IP_ADDRESS
286
324
 
287
- Creates the configuration file for the phone at IP_ADDRESS
325
+ Creates the configuration file for the phone at IP_ADDRESS. 'all' can be used
326
+ as the IP_ADDRESS to make configurations all of the systems.
288
327
 
289
328
  Ex:
290
329
  make 192.168.1.200
330
+ make all
291
331
 
292
332
  EOMAKE
293
333
 
294
- assert_equal help, gs.help("make")
334
+ return help
295
335
  end
296
-
297
- def test_help_update
298
- create_new_settings
299
- gs = GrandStream.new
336
+
337
+ def help_text_update
300
338
  help =<<EOUPDATE
301
339
  Usage: update IP_ADDRESS [CURRENT_ADDRESS] [ADMIN_PASSWORD]
302
340
 
303
- Sends the updated configuration file for IP_ADDRESS to the phone.
341
+ Sends the updated configuration file for IP_ADDRESS to the phone. 'all' can be
342
+ used as the IP_ADDRESS to update all of the systems.
304
343
 
305
344
  Optionally, a phone configuration can be sent to a phone that currently has
306
345
  a different ip address by using CURRENT_ADDRESS
@@ -311,34 +350,35 @@ Ex:
311
350
  update 192.168.1.200
312
351
  update 192.168.1.200 192.168.1.10 <= Send '200's update to the phone at '10'
313
352
  update 192.168.1.200 192.168.1.10 admin <= Also uses the factory password
353
+ update all
314
354
 
315
355
 
316
356
  EOUPDATE
317
-
318
- assert_equal help, gs.help("update")
357
+
358
+ return help
319
359
  end
320
360
 
321
- def test_help_reboot
322
- create_new_settings
323
- gs = GrandStream.new
361
+ def help_text_reboot
324
362
  help =<<EOREBOOT
325
- Usage: reboot COMMAND IP_ADDRESS
363
+ Usage: reboot IP_ADDRESS
326
364
 
327
- Reboots the phone at IP_ADDRESS.
365
+ Reboots the phone at IP_ADDRESS. 'all' can be used as the IP_ADDRESS to reboot
366
+ all of the systems.
328
367
 
329
368
  CAUTION: Some firmware will allow the phone to be rebooted while it is in use!
330
369
 
331
370
  Ex:
332
371
  reboot 192.168.1.200
372
+ reboot all
333
373
 
334
374
  EOREBOOT
335
-
336
- assert_equal help, gs.help("reboot")
375
+
376
+
377
+
378
+ return help
337
379
  end
338
380
 
339
- def test_help_find
340
- create_new_settings
341
- gs = GrandStream.new
381
+ def help_text_find
342
382
  help =<<EOFIND
343
383
  Usage: find
344
384
 
@@ -346,7 +386,7 @@ Searches the user.yml file to get the ipaddress of an extension.
346
386
 
347
387
  EOFIND
348
388
 
349
- assert_equal help, gs.help("find")
389
+ return help
350
390
  end
351
-
391
+
352
392
  end
metadata CHANGED
@@ -3,14 +3,14 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: gs_phone
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.3
7
- date: 2007-03-25 00:00:00 -07:00
6
+ version: 0.0.4
7
+ date: 2007-05-09 00:00:00 -07:00
8
8
  summary: Application to mange and configure a group of Grandstream Voip phones
9
9
  require_paths:
10
10
  - lib
11
11
  email: edavis10@gmail.com
12
- homepage: http://gs_phone.rubyforge.org
13
- rubyforge_project: gs_phone
12
+ homepage: http://gs-phone.rubyforge.org
13
+ rubyforge_project: gs-phone
14
14
  description: Application to mange and configure a group of Grandstream Voip phones
15
15
  autorequire:
16
16
  default_executable:
@@ -42,6 +42,9 @@ files:
42
42
  - CHANGES.txt
43
43
  - COPYING.txt
44
44
  - TODO.txt
45
+ - MAINTAINERS.txt
46
+ - ROADMAP.txt
47
+ - INSTALL.txt
45
48
  test_files:
46
49
  - test/gs_phone_test.rb
47
50
  rdoc_options: []
@@ -51,6 +54,9 @@ extra_rdoc_files:
51
54
  - README.txt
52
55
  - COPYING.txt
53
56
  - TODO.txt
57
+ - MAINTAINERS.txt
58
+ - ROADMAP.txt
59
+ - INSTALL.txt
54
60
  executables:
55
61
  - gs_phone
56
62
  extensions: []