gs_phone 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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: []