ruby-agi 1.0.2 → 1.1.0

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/ChangeLog CHANGED
@@ -1,10 +1,29 @@
1
- 2006-01-08 (revision 21)
2
- gemspec file updated to work properly with ruby-1.8.3
1
+ 2006-01-16 (revision 23)
2
+ -- ruby-agi-1.1.0 released
3
+ -- method calleridnumber added and is generated from callerid
4
+ -- method calleridname gets name from callerid method,
5
+ currently I found asterisk returns nothing because of missing agi_calleridname
6
+ -- method jump_to added
7
+
8
+ 2006-01-10 (revision 22)
9
+ -- following files added to svn repository
10
+ ruby-agi-1.0.1.gem
11
+ ruby-agi-1.0.2.gem
12
+ Release-Notes
13
+ ruby-agi-1.0.2.tgz
14
+
15
+ 2006-01-09 (revision 21)
16
+ -- gemspec file updated to work properly with ruby-1.8.3
17
+
3
18
  2006-01-08 (revision 20)
4
- ruby-agi-1.0.1 released
19
+ -- ruby-agi-1.0.1 released
20
+
5
21
  2006-01-08 (revision 19)
6
- examples/call_log.rb added
22
+ -- examples/call_log.rb added
23
+
7
24
  2006-01-08 (revision 18)
8
- ruby-agi-0.0.2.gem removed from subversion repository
25
+ -- ruby-agi-0.0.2.gem removed from subversion repository
26
+
9
27
  2006-01-08 (revision 17)
10
- Started to maintain ChangeLog !!
28
+ -- Started to maintain ChangeLog !!
29
+
data/Release-Notes CHANGED
@@ -1,3 +1,12 @@
1
+ 1.1.0 (2006-01-17)
2
+ addition of method 'jump_to'
3
+ jump_to would take three arguments ex. jump_to(context, extension, priority)
4
+ enhanced callerid, calleridname and calleridnumber. calleridnumber is an addtional method to this release.
5
+ Regardless of Asterisk version above three caller variables would return uniform value.
6
+ Such as, callerid would return "John Smith" <1234567890> or empty string, if unidentified
7
+ calleridnumber would return number part of callerid (as string) ex. 1234567890 or empty string, if unidentified
8
+ calleridname would return name part of callerid ex. John Smith or emtpy string, if unidentified
9
+
1
10
  1.0.2 (2006-01-09)
2
11
  Because of a yaml bug in ruby-1.8.3, rubyforge server doesn't support any package that were built on ruby-1.8.3
3
12
  This version is basically re-build of version 1.0.1 on ruby-1.8.4 instead of ruby-1.8.3
data/lib/ruby-agi/agi.rb CHANGED
@@ -243,29 +243,45 @@ class AGI
243
243
  end
244
244
 
245
245
  #
246
- # <method description>
246
+ # method to read callerid, Ex. "John Smith" <1234567890>
247
+ # regardless of asterisk version, method callerid would return "Caller Name" <Number>
247
248
  #
248
249
  # <b>Parameters</b>
249
250
  # - none
251
+ #
250
252
  # <b>Returns</b>
251
- # - String
253
+ # - String : empty string for Unidentified
252
254
  #
253
255
  def callerid
254
256
  return env.callerid
255
257
  end
256
258
 
257
259
  #
258
- # <method description>
260
+ # method to read calleridname, Ex. John Smith
259
261
  #
260
262
  # <b>Parameters</b>
261
263
  # - none
264
+ #
262
265
  # <b>Returns</b>
263
- # - String
266
+ # - String : empty string for Unidentified
264
267
  #
265
268
  def calleridname
266
269
  return env.calleridname
267
270
  end
268
271
 
272
+ #
273
+ # method to read calleridnumber, Ex. 1234567890
274
+ #
275
+ # <b>Parameters</b>
276
+ # - none
277
+ #
278
+ # <b>Returns</b>
279
+ # - String : empty string for Unidentified
280
+ #
281
+ def calleridnumber
282
+ return env.calleridnumber
283
+ end
284
+
269
285
  #
270
286
  # <method description>
271
287
  #
@@ -843,5 +859,20 @@ class AGI
843
859
  def dial(telephone_number=nil, protocol=nil, username=nil, context=nil, timeout=nil, options=nil)
844
860
  return command.dial(telephone_number, protocol, username, context, timeout, options)
845
861
  end
862
+
863
+ #
864
+ # method to jump in a specified context, extension and priority
865
+ #
866
+ # <b>Parameters</b>
867
+ # - context : name of the context
868
+ # - extension : name of the extension
869
+ # - priority : name of the priority
870
+ #
871
+ # <b>Returns</b>
872
+ # - none
873
+ #
874
+ def jump_to(context=nil, extension=nil, priority=nil)
875
+ command.jump_to(context, extension, priority)
876
+ end
846
877
  end
847
878
 
@@ -23,6 +23,22 @@
23
23
  # == Overview
24
24
  #
25
25
 
26
+ # Followings are the list of AGI variables
27
+ # -- ruby-agi >> agi_request
28
+ # -- ruby-agi >> agi_channel
29
+ # -- ruby-agi >> agi_language
30
+ # -- ruby-agi >> agi_type
31
+ # -- ruby-agi >> agi_uniqueid
32
+ # -- ruby-agi >> agi_callerid
33
+ # -- ruby-agi >> agi_dnid
34
+ # -- ruby-agi >> agi_rdnis
35
+ # -- ruby-agi >> agi_context
36
+ # -- ruby-agi >> agi_extension
37
+ # -- ruby-agi >> agi_priority
38
+ # -- ruby-agi >> agi_enhanced
39
+ # -- ruby-agi >> agi_accountcode
40
+
41
+
26
42
  require 'ruby-agi/agi.rb'
27
43
  require 'ruby-agi/error.rb'
28
44
 
@@ -56,15 +72,14 @@ class AsteriskVariable < AGI
56
72
 
57
73
  protected
58
74
  def read_env(name)
59
- val = env[name]
60
75
  if debug?
61
76
  semaphore do
62
77
  $stderr.puts " -- ruby-agi << Read asterisk variable '#{name}'"
63
- $stderr.puts " -- ruby-agi >> Asterisk variable #{name} = #{val.to_s}"
78
+ $stderr.puts " -- ruby-agi >> Asterisk variable #{name} = #{env[name].to_s}"
64
79
  end
65
80
  end
66
81
 
67
- return val
82
+ return env[name]
68
83
  end
69
84
 
70
85
  public
@@ -94,32 +109,11 @@ class AsteriskVariable < AGI
94
109
 
95
110
  public
96
111
  def callerid
97
- return read_env('agi_callerid')
98
- end
99
-
100
- public
101
- def calleridname
102
- return read_env('agi_calleridname')
103
- end
104
-
105
- public
106
- def callingpres
107
- return read_env('agi_callingpres')
108
- end
109
-
110
- public
111
- def callingani2
112
- return read_env('agi_callingani2')
113
- end
114
-
115
- public
116
- def callington
117
- return read_env('agi_callington')
118
- end
112
+ if @callerid.nil?
113
+ init_caller_variable
114
+ end
119
115
 
120
- public
121
- def callingtns
122
- return read_env('agi_callingtns')
116
+ return @callerid
123
117
  end
124
118
 
125
119
  public
@@ -156,4 +150,84 @@ class AsteriskVariable < AGI
156
150
  def accountcode
157
151
  return read_env('agi_accountcode')
158
152
  end
153
+
154
+ ####################################################################
155
+ #### additional methods generated from existing basic methods ####
156
+ ####################################################################
157
+
158
+ public
159
+ def calleridname
160
+ if @calleridname.nil?
161
+ init_caller_variable
162
+ end
163
+
164
+ return @calleridname
165
+ end
166
+
167
+ public
168
+ def calleridnumber
169
+ if @calleridnumber.nil?
170
+ init_caller_variable
171
+ end
172
+
173
+ return @calleridnumber
174
+ end
175
+
176
+ # following methods are not confirm that they are AGI variables
177
+ public
178
+ def callingpres
179
+ return read_env('agi_callingpres')
180
+ end
181
+
182
+ public
183
+ def callingani2
184
+ return read_env('agi_callingani2')
185
+ end
186
+
187
+ public
188
+ def callington
189
+ return read_env('agi_callington')
190
+ end
191
+
192
+ public
193
+ def callingtns
194
+ return read_env('agi_callingtns')
195
+ end
196
+
197
+ protected
198
+ def init_caller_variable
199
+ if read_env('callerid') == "unknown"
200
+ @callerid = ""
201
+ @calleridname = ""
202
+ @calleridnumber = ""
203
+ else
204
+ if read_env('calleridname').nil? # for asterisk that don't have agi variable 'agi_calleridname'
205
+ @callerid = read_env('callerid')
206
+ name = Regexp.new(/\".+\"/).match(@callerid)
207
+ number = Regexp.new(/\<\d+\>/).match(@callerid)
208
+
209
+ if name.nil?
210
+ @calleridname = ""
211
+ else
212
+ name = name.to_s
213
+ name.gsub!(/\"/, '')
214
+ @calleridname = name.strip
215
+ end
216
+
217
+ if number.nil?
218
+ @calleridnumber = ""
219
+ else
220
+ number = number.to_s
221
+ number.sub!(/\</, '')
222
+ number.sub!(/\>/, '')
223
+ @calleridnumber = number
224
+ end
225
+ else # for asterisk that have agi variable 'agi_calleridname'
226
+ @calleridnumber = read_env('callerid')
227
+ @calleridname = read_env('calleridname')
228
+ @callerid = "\"#{@calleridname}\" <#{@calleridnumber}>"
229
+ end
230
+ end
231
+ end
232
+
159
233
  end
@@ -894,4 +894,15 @@ class Command < AGI
894
894
 
895
895
  return max_digit
896
896
  end
897
+
898
+ ############################################
899
+ ### More synthetic methods ###
900
+ ############################################
901
+
902
+ public
903
+ def jump_to(context, extension, priority)
904
+ set_context(context) if not context.nil?
905
+ set_extension(extension) if not extension.nil?
906
+ set_priority(priority) if not priority.nil?
907
+ end
897
908
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: ruby-agi
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.2
7
- date: 2006-01-09 00:00:00 -05:00
6
+ version: 1.1.0
7
+ date: 2006-01-17 00:00:00 -05:00
8
8
  summary: Ruby Language API for Asterisk
9
9
  require_paths:
10
10
  - lib