aastra_xml_api 1.0.0 → 1.0.1
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/README.md +10 -2
- data/aastra_xml_api.gemspec +1 -1
- data/lib/aastra_xml_api.rb +1 -1
- data/lib/aastra_xml_api/array_extensions.rb +61 -0
- data/lib/aastra_xml_api/phone.rb +205 -0
- data/lib/aastra_xml_api/phone_configuration.rb +56 -0
- data/lib/aastra_xml_api/phone_configuration_entry.rb +43 -0
- data/lib/aastra_xml_api/phone_directory.rb +122 -0
- data/lib/aastra_xml_api/phone_directory_entry.rb +34 -0
- data/lib/aastra_xml_api/phone_execute.rb +60 -0
- data/lib/aastra_xml_api/phone_execute_entry.rb +32 -0
- data/lib/aastra_xml_api/phone_formatted_text_screen.rb +119 -0
- data/lib/aastra_xml_api/phone_formatted_text_screen_entry.rb +50 -0
- data/lib/aastra_xml_api/phone_gd_image.rb +187 -0
- data/lib/aastra_xml_api/phone_icon_entry.rb +29 -0
- data/lib/aastra_xml_api/phone_image_menu.rb +145 -0
- data/lib/aastra_xml_api/phone_image_menu_entry.rb +27 -0
- data/lib/aastra_xml_api/phone_image_screen.rb +141 -0
- data/lib/aastra_xml_api/phone_input_screen.rb +251 -0
- data/lib/aastra_xml_api/phone_input_screen_entry.rb +86 -0
- data/lib/aastra_xml_api/phone_softkey_entry.rb +39 -0
- data/lib/aastra_xml_api/phone_status.rb +68 -0
- data/lib/aastra_xml_api/phone_status_entry.rb +58 -0
- data/lib/aastra_xml_api/phone_text_menu.rb +148 -0
- data/lib/aastra_xml_api/phone_text_menu_entry.rb +54 -0
- data/lib/aastra_xml_api/phone_text_screen.rb +95 -0
- data/lib/aastra_xml_api/version.rb +1 -1
- metadata +28 -27
- data/lib/aastra_xml_api/AastraIPPhone.rb +0 -203
- data/lib/aastra_xml_api/AastraIPPhoneConfiguration.rb +0 -55
- data/lib/aastra_xml_api/AastraIPPhoneConfigurationEntry.rb +0 -41
- data/lib/aastra_xml_api/AastraIPPhoneDirectory.rb +0 -119
- data/lib/aastra_xml_api/AastraIPPhoneDirectoryEntry.rb +0 -32
- data/lib/aastra_xml_api/AastraIPPhoneExecute.rb +0 -58
- data/lib/aastra_xml_api/AastraIPPhoneExecuteEntry.rb +0 -30
- data/lib/aastra_xml_api/AastraIPPhoneFormattedTextScreen.rb +0 -117
- data/lib/aastra_xml_api/AastraIPPhoneFormattedTextScreenEntry.rb +0 -48
- data/lib/aastra_xml_api/AastraIPPhoneGDImage.rb +0 -185
- data/lib/aastra_xml_api/AastraIPPhoneIconEntry.rb +0 -27
- data/lib/aastra_xml_api/AastraIPPhoneImageMenu.rb +0 -143
- data/lib/aastra_xml_api/AastraIPPhoneImageMenuEntry.rb +0 -25
- data/lib/aastra_xml_api/AastraIPPhoneImageScreen.rb +0 -139
- data/lib/aastra_xml_api/AastraIPPhoneInputScreen.rb +0 -249
- data/lib/aastra_xml_api/AastraIPPhoneInputScreenEntry.rb +0 -84
- data/lib/aastra_xml_api/AastraIPPhoneSoftkeyEntry.rb +0 -37
- data/lib/aastra_xml_api/AastraIPPhoneStatus.rb +0 -66
- data/lib/aastra_xml_api/AastraIPPhoneStatusEntry.rb +0 -56
- data/lib/aastra_xml_api/AastraIPPhoneTextMenu.rb +0 -145
- data/lib/aastra_xml_api/AastraIPPhoneTextMenuEntry.rb +0 -52
- data/lib/aastra_xml_api/AastraIPPhoneTextScreen.rb +0 -93
- data/lib/aastra_xml_api/arraynatsort.rb +0 -63
@@ -0,0 +1,86 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Aastra XML API Classes - PhoneInputScreenEntry
|
3
|
+
# Firmware 2.2.0 or better
|
4
|
+
# Copyright Aastra Telecom 2008
|
5
|
+
#
|
6
|
+
# Ruby adaptation by Carlton O'Riley
|
7
|
+
#
|
8
|
+
# Internal class for PhoneInputScreen object.
|
9
|
+
################################################################################
|
10
|
+
|
11
|
+
module AastraXmlApi
|
12
|
+
class PhoneInputScreenEntry
|
13
|
+
@type
|
14
|
+
@password
|
15
|
+
@editable
|
16
|
+
@parameter
|
17
|
+
@prompt
|
18
|
+
@default
|
19
|
+
@selection
|
20
|
+
@softkeys
|
21
|
+
|
22
|
+
# Create new input field as a given type. The type can be one of IP,
|
23
|
+
# string (default), number, timeUS, timeInt, dateUS, or dateInt.
|
24
|
+
def initialize(type)
|
25
|
+
@type = type
|
26
|
+
@softkeys = []
|
27
|
+
end
|
28
|
+
|
29
|
+
# Set the type (see initialize for values) of this input field.
|
30
|
+
def setType(type)
|
31
|
+
@type = type
|
32
|
+
end
|
33
|
+
|
34
|
+
# Set this input field as a password field masked by "*" characters.
|
35
|
+
def setPassword
|
36
|
+
@password = "yes"
|
37
|
+
end
|
38
|
+
|
39
|
+
# Make this input field editable, i.e. not read only.
|
40
|
+
def setEditable
|
41
|
+
@editable = "yes"
|
42
|
+
end
|
43
|
+
|
44
|
+
# Set paramter name value to be used to identify this field on submit.
|
45
|
+
def setParameter(parameter)
|
46
|
+
@parameter = parameter
|
47
|
+
end
|
48
|
+
|
49
|
+
# Set prompt to be displayed to let user know what this field is for.
|
50
|
+
def setPrompt(prompt)
|
51
|
+
@prompt = prompt
|
52
|
+
end
|
53
|
+
|
54
|
+
# Set default value to load this field with.
|
55
|
+
def setDefault(default)
|
56
|
+
@default = default
|
57
|
+
end
|
58
|
+
|
59
|
+
# The contents of this will be added when the submit key is pressed while
|
60
|
+
# editing this field.
|
61
|
+
def setSelection(selection)
|
62
|
+
@selection = selection
|
63
|
+
end
|
64
|
+
|
65
|
+
# Adds softkey to be displayed when editing this field.
|
66
|
+
def addSoftkey(index, label, uri, icon=nil)
|
67
|
+
@softkeys += [PhoneSoftkeyEntry.new(index, label, uri, icon)]
|
68
|
+
end
|
69
|
+
|
70
|
+
# Create XML text output for this entry.
|
71
|
+
def render
|
72
|
+
xml = "<InputField"
|
73
|
+
xml += " type=\"#{@type}\"" if not @type.nil?
|
74
|
+
xml += " password=\"yes\"" if @password == "yes"
|
75
|
+
xml += " editable=\"yes\"" if @editable == "yes"
|
76
|
+
xml += ">\n"
|
77
|
+
xml += "<Prompt>#{@prompt}</Prompt>\n" if not @prompt.nil?
|
78
|
+
xml += "<Parameter>#{@parameter}</Parameter>\n" if not @parameter.nil?
|
79
|
+
xml += "<Selection>#{@selection}</Selection>\n" if not @selection.nil?
|
80
|
+
xml += "<Default>#{@default}</Default>\n" if not @default.nil?
|
81
|
+
@softkeys.each { |softkey| xml += softkey.render }
|
82
|
+
xml += "</InputField>\n"
|
83
|
+
return xml
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Aastra XML API Classes - PhoneSoftkeyEntry
|
3
|
+
# Firmware 2.2.0 or better
|
4
|
+
# Copyright Aastra Telecom 2008
|
5
|
+
#
|
6
|
+
# Ruby adaptation by Carlton O'Riley
|
7
|
+
#
|
8
|
+
# Internal class for Phone object.
|
9
|
+
################################################################################
|
10
|
+
|
11
|
+
module AastraXmlApi
|
12
|
+
class PhoneSoftkeyEntry
|
13
|
+
@index
|
14
|
+
@label
|
15
|
+
@uri
|
16
|
+
@icon
|
17
|
+
|
18
|
+
# Create new softkey entry at index showing on screen with label. When
|
19
|
+
# pressed will call URI. Next to the label text the given icon
|
20
|
+
# will be shown.
|
21
|
+
def initialize(index, label, uri, icon)
|
22
|
+
@index = index
|
23
|
+
@label = label
|
24
|
+
@uri = uri
|
25
|
+
@icon = icon
|
26
|
+
end
|
27
|
+
|
28
|
+
# Create XML text output for this entry.
|
29
|
+
def render
|
30
|
+
xml = "<SoftKey index=\"#{@index}\""
|
31
|
+
xml += " icon=\"#{@icon}\"" if not @icon.nil?
|
32
|
+
xml += ">\n"
|
33
|
+
xml += "<Label>#{@label}</Label>\n"
|
34
|
+
xml += "<URI>#{@uri}</URI>\n"
|
35
|
+
xml += "</SoftKey>\n"
|
36
|
+
return xml
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Aastra XML API Classes - PhoneStatus
|
3
|
+
# Copyright Aastra Telecom 2008
|
4
|
+
#
|
5
|
+
# Ruby adaptation by Carlton O'Riley
|
6
|
+
#
|
7
|
+
# PhoneStatus object.
|
8
|
+
#
|
9
|
+
# Public methods
|
10
|
+
#
|
11
|
+
# Inherited from Phone
|
12
|
+
# setBeep to enable a notification beep with the object (optional)
|
13
|
+
#
|
14
|
+
# Specific to the object
|
15
|
+
# setSession(session) to setup the session ID
|
16
|
+
# setTriggerDestroyOnExit to set the triggerDestroyOnExit tag to
|
17
|
+
# "yes" (optional)
|
18
|
+
# addEntry(index,message,type,timeout) to add a message to be displayed
|
19
|
+
# on the idle screen.
|
20
|
+
#
|
21
|
+
# Example
|
22
|
+
# require 'PhoneStatus.rb'
|
23
|
+
# status = PhoneStatus.new
|
24
|
+
# status.setSession('Session');
|
25
|
+
# status.setBeep
|
26
|
+
# status.addEntry('1', 'Message 1', '', 0)
|
27
|
+
# status.addEntry('2', 'Message 2', 'alert', 5)
|
28
|
+
# aastra_output status
|
29
|
+
#
|
30
|
+
################################################################################
|
31
|
+
|
32
|
+
module AastraXmlApi
|
33
|
+
class PhoneStatus < Phone
|
34
|
+
@session
|
35
|
+
@triggerDestroyOnExit
|
36
|
+
|
37
|
+
# Sets the session associated with this status message. Only important
|
38
|
+
# if more than one application is sending status messages.
|
39
|
+
def setSession(session)
|
40
|
+
@session = session
|
41
|
+
end
|
42
|
+
|
43
|
+
# When set, the previous user interface XML object is destroyed
|
44
|
+
# if its destroyOnExit tag is also set to yes.
|
45
|
+
def setTriggerDestroyOnExit
|
46
|
+
@triggerDestroyOnExit = "yes"
|
47
|
+
end
|
48
|
+
|
49
|
+
# Adds a new status message to be displayed at index. The type can only
|
50
|
+
# be nothing (default) or alert which shows the message for 3 seconds.
|
51
|
+
# The timeout can override the default 3 seconds for an alert message.
|
52
|
+
def addEntry(index, message, type=nil, timeout=nil)
|
53
|
+
@entries += [PhoneStatusEntry.new(index, message, type, timeout)]
|
54
|
+
end
|
55
|
+
|
56
|
+
# Create XML text output.
|
57
|
+
def render
|
58
|
+
xml = "<PhoneStatus"
|
59
|
+
xml += " Beep=\"yes\"" if @beep == "yes"
|
60
|
+
xml += " triggerDestroyOnExit=\"yes\"" if @triggerDestroyOnExit == "yes"
|
61
|
+
xml += ">\n"
|
62
|
+
xml += "<Session>#{@session}</Session>\n"
|
63
|
+
@entries.each { |entry| xml += entry.render }
|
64
|
+
xml += "</PhoneStatus>\n"
|
65
|
+
return xml
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Aastra XML API Classes - PhoneStatusEntry
|
3
|
+
# Copyright Aastra Telecom 2008
|
4
|
+
#
|
5
|
+
# Ruby adaptation by Carlton O'Riley
|
6
|
+
#
|
7
|
+
# Internal class for PhoneStatus object.
|
8
|
+
################################################################################
|
9
|
+
|
10
|
+
module AastraXmlApi
|
11
|
+
class PhoneStatusEntry < Phone
|
12
|
+
@index
|
13
|
+
@message
|
14
|
+
@type
|
15
|
+
@timeout
|
16
|
+
|
17
|
+
# Create new status message at index. Type can only be "alert" or left
|
18
|
+
# blank. If the type is anything but blank, it is automatically set
|
19
|
+
# to "alert". The timeout overrides the default 3 seconds for an
|
20
|
+
# alert message.
|
21
|
+
def initialize(index, message, type=nil, timeout=nil)
|
22
|
+
@index = index
|
23
|
+
@message = message
|
24
|
+
setType(type)
|
25
|
+
@timeout = timeout
|
26
|
+
end
|
27
|
+
|
28
|
+
# Set the index of this message.
|
29
|
+
def setIndex(index)
|
30
|
+
@index = index
|
31
|
+
end
|
32
|
+
|
33
|
+
# Set the text of the message.
|
34
|
+
def setMessage(message)
|
35
|
+
@message = message
|
36
|
+
end
|
37
|
+
|
38
|
+
# Set the type of the message. Either "alert" or normal (blank and default)
|
39
|
+
def setType(type)
|
40
|
+
@type = type if type.nil?
|
41
|
+
@type = "alert" if not type.nil?
|
42
|
+
end
|
43
|
+
|
44
|
+
# Set the timeout (in seconds) of an alert message
|
45
|
+
def setTimeout(timeout)
|
46
|
+
@timeout = timeout
|
47
|
+
end
|
48
|
+
|
49
|
+
# Create XML text output of this entry
|
50
|
+
def render
|
51
|
+
xml = "<Message index=\"#{escape(@index)}\""
|
52
|
+
xml += " type=\"#{escape(@type)}\"" if not @type.nil?
|
53
|
+
xml += " Timeout=\"#{@timeout}\"" if not @timeout.nil?
|
54
|
+
xml += ">#{escape(@message)}</Message>\n"
|
55
|
+
return xml
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Aastra XML API Classes - PhoneTextMenu
|
3
|
+
# Copyright Aastra Telecom 2008
|
4
|
+
#
|
5
|
+
# PhoneTextMenu object.
|
6
|
+
#
|
7
|
+
# Public methods
|
8
|
+
#
|
9
|
+
# Inherited from Phone
|
10
|
+
# setTitle(Title) to setup the title of an object (optional)
|
11
|
+
# setTitleWrap to set the title to be wrapped on 2 lines (optional)
|
12
|
+
# setDestroyOnExit to set DestroyOnExit parameter to "yes" (optional)
|
13
|
+
# setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
|
14
|
+
# setBeep to enable a notification beep with the object (optional)
|
15
|
+
# setLockIn to set the Lock-in tag to 'yes' (optional)
|
16
|
+
# setAllowAnswer to set the allowAnswer tag to 'yes' (optional)
|
17
|
+
# setTimeout(timeout) to define a specific timeout for the XML object (optional)
|
18
|
+
# addSoftkey(index,label,uri,icon_index) to add custom softkeys to the object (optional)
|
19
|
+
# addIcon(index,icon) to add custom icons to the object (optional)
|
20
|
+
# setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
|
21
|
+
#
|
22
|
+
# Specific to the object
|
23
|
+
# setDefaultIndex(index) to set the default selection in the list (optional)
|
24
|
+
# setStyle(style) to set the style of the list numbered/none/radio (optional)
|
25
|
+
# setWrapList to allow 2 lines items (optional)
|
26
|
+
# addEntry(name,url,selection,icon,dial) to add an element in the list to be displayed
|
27
|
+
# natsortbyname to order the list
|
28
|
+
#
|
29
|
+
# Example 1
|
30
|
+
# require 'PhoneTextMenu.rb'
|
31
|
+
# menu = PhoneTextMenu.new
|
32
|
+
# menu.setTitle('Title')
|
33
|
+
# menu.setDestroyOnExit
|
34
|
+
# menu.setDeFaultIndex('3')
|
35
|
+
# menu.addEntry('Choice 2', 'http://myserver.com/script.php?choice=2', 'Value=2')
|
36
|
+
# menu.addEntry('Choice 1', 'http://myserver.com/script.php?choice=1', 'Value=1')
|
37
|
+
# menu.addEntry('Choice 3', 'http://myserver.com/script.php?choice=3', 'Value=3')
|
38
|
+
# menu.natsortByName
|
39
|
+
# menu.addSoftkey('1', 'My Select', 'http://myserver.com/script.php?action=1')
|
40
|
+
# menu.addSoftkey('6', 'Exit', 'SoftKey:Exit')
|
41
|
+
# aastra_output menu
|
42
|
+
#
|
43
|
+
# Example 2
|
44
|
+
# require 'PhoneTextMenu.rb'
|
45
|
+
# menu = PhoneTextMenu.new
|
46
|
+
# menu.setTitle('Title')
|
47
|
+
# menu.setDestroyOnExit
|
48
|
+
# menu.setDeFaultIndex('2')
|
49
|
+
# menu.addEntry('Choice 2', 'http://myserver.com/script.php?choice=2', 'Value=2','1')
|
50
|
+
# menu.addEntry('Choice 1', 'http://myserver.com/script.php?choice=1', 'Value=1','2')
|
51
|
+
# menu.addEntry('Choice 3', 'http://myserver.com/script.php?choice=3', 'Value=3','3')
|
52
|
+
# menu.natsortByName
|
53
|
+
# menu.addSoftkey('1', 'My Select', 'http://myserver.com/script.php?action=1')
|
54
|
+
# menu.addSoftkey('6', 'Exit', 'SoftKey:Exit')
|
55
|
+
# menu.addIcon('1', 'Icon:PhoneOnHook')
|
56
|
+
# menu.addIcon('2', 'Icon:PhoneOffHook')
|
57
|
+
# menu.addIcon('3', 'Icon:PhoneRinging')
|
58
|
+
# aastra_output menu
|
59
|
+
#
|
60
|
+
################################################################################
|
61
|
+
|
62
|
+
module AastraXmlApi
|
63
|
+
class PhoneTextMenu < Phone
|
64
|
+
@defaultIndex
|
65
|
+
@style
|
66
|
+
@wraplist
|
67
|
+
@maxitems
|
68
|
+
|
69
|
+
# Sets the default index to highlight when first shown.
|
70
|
+
def setDefaultIndex(defaultIndex)
|
71
|
+
@defaultIndex = defaultIndex
|
72
|
+
end
|
73
|
+
|
74
|
+
# Set the style to one of numbered (default), none, or radio.
|
75
|
+
def setStyle(style)
|
76
|
+
@style = style
|
77
|
+
end
|
78
|
+
|
79
|
+
# Add a menu entry with name displayed and calls url when selected. The
|
80
|
+
# selection option is the value appended to a custom softkey URL when
|
81
|
+
# this item is highlighted. icon is a reference to an included icon
|
82
|
+
# that is shown with the menu entry. dial is what is called when
|
83
|
+
# the user hits a softkey with the URI "SoftKey:Dial2".
|
84
|
+
def addEntry(name, url, selection=nil, icon=nil, dial=nil)
|
85
|
+
@entries += [PhoneTextMenuEntry.new(name, url, selection, icon, dial)]
|
86
|
+
end
|
87
|
+
|
88
|
+
# Allows entries in the list to wrap.
|
89
|
+
def setWrapList
|
90
|
+
@wraplist = "yes"
|
91
|
+
end
|
92
|
+
|
93
|
+
# Use natural order sorting to sort the menu by name.
|
94
|
+
def natsortByName
|
95
|
+
tmparray = []
|
96
|
+
tmp_array.include(ArrayExtension)
|
97
|
+
linklist = {}
|
98
|
+
for i in 0..@entries.size-1
|
99
|
+
tmparray += [@entries[i].getName]
|
100
|
+
linklist[@entries[i].getName] = i
|
101
|
+
end
|
102
|
+
tmparray.natsort!
|
103
|
+
newentries = []
|
104
|
+
tmparray.each do |name|
|
105
|
+
newentries += [@entries[linklist[name]]]
|
106
|
+
end
|
107
|
+
@entries = newentries
|
108
|
+
end
|
109
|
+
|
110
|
+
# Create XML text output.
|
111
|
+
def render
|
112
|
+
@maxitems = 30 if @maxitems.nil?
|
113
|
+
xml = "<PhoneTextMenu"
|
114
|
+
xml += " destroyOnExit=\"yes\"" if @destroyOnExit == "yes"
|
115
|
+
xml += " cancelAction=\"#{escape(@cancelAction)}\"" if not @cancelAction.nil?
|
116
|
+
xml += " defaultIndex=\"#{@defaultIndex}\"" if not @defaultIndex.nil?
|
117
|
+
xml += " style=\"#{@style}\"" if not @style.nil?
|
118
|
+
xml += " Beep=\"yes\"" if @beep == "yes"
|
119
|
+
xml += " LockIn=\"yes\"" if @lockin == "yes"
|
120
|
+
xml += " wrapList=\"yes\"" if @wraplist == "yes"
|
121
|
+
xml += " allowAnswer=\"yes\"" if @allowAnswer == "yes"
|
122
|
+
xml += " Timeout=\"#{@timeout}\"" if @timeout != 0
|
123
|
+
xml += ">\n"
|
124
|
+
if not @title.nil? then
|
125
|
+
xml += "<Title"
|
126
|
+
xml += " wrap=\"yes\"" if @title_wrap == "yes"
|
127
|
+
xml += ">#{escape(@title)}</Title>\n"
|
128
|
+
end
|
129
|
+
index = 0
|
130
|
+
@entries.each do |entry|
|
131
|
+
xml += entry.render if index < @maxitems
|
132
|
+
index += 1
|
133
|
+
end
|
134
|
+
@softkeys.each { |softkey| xml += softkey.render }
|
135
|
+
iconList = 0
|
136
|
+
@icons.each do |icon|
|
137
|
+
if iconList == 0 then
|
138
|
+
xml += "<IconList>\n"
|
139
|
+
iconList = 1
|
140
|
+
end
|
141
|
+
xml += icon.render
|
142
|
+
end
|
143
|
+
xml += "</IconList>\n" if iconList != 0
|
144
|
+
xml += "</PhoneTextMenu>\n"
|
145
|
+
return xml
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Aastra XML API Classes - PhoneTextMenuEntry
|
3
|
+
# Copyright Aastra Telecom 2008
|
4
|
+
#
|
5
|
+
# Ruby adaptation by Carlton O'Riley
|
6
|
+
#
|
7
|
+
# Internal class for PhoneTextMenu object.
|
8
|
+
################################################################################
|
9
|
+
|
10
|
+
module AastraXmlApi
|
11
|
+
class PhoneTextMenuEntry < Phone
|
12
|
+
@name
|
13
|
+
@url
|
14
|
+
@selection
|
15
|
+
@icon
|
16
|
+
@dial
|
17
|
+
|
18
|
+
# Create new text menu entry with given name to be displayed, url to be
|
19
|
+
# called when selected. Selection is the value appended to a custom URI
|
20
|
+
# attached to a softkey. This will be added as either ?selection=value
|
21
|
+
# or &selection=value depending on if the URI already has parameters.
|
22
|
+
# icon is the index of the icon to be displayed to the left of the
|
23
|
+
# given entry. dial is the number to call if the user pushes a softkey
|
24
|
+
# with URI SoftKey:Dial2.
|
25
|
+
def initialize(name, url, selection, icon, dial)
|
26
|
+
@name = name
|
27
|
+
@url = url
|
28
|
+
@selection = selection
|
29
|
+
@icon = icon
|
30
|
+
@dial = dial
|
31
|
+
@selection = nil if @selection == ''
|
32
|
+
@icon = nil if @icon == ''
|
33
|
+
@dial = nil if @dial == ''
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns the name associated with this entry.
|
37
|
+
def getName
|
38
|
+
return @name
|
39
|
+
end
|
40
|
+
|
41
|
+
# Create XML text output of this entry.
|
42
|
+
def render
|
43
|
+
xml = "<MenuItem"
|
44
|
+
xml += " icon=\"#{@icon}\"" if not @icon.nil?
|
45
|
+
xml += ">\n"
|
46
|
+
xml += "<Prompt>#{escape(@name)}</Prompt>\n"
|
47
|
+
xml += "<URI>#{escape(@url)}</URI>\n"
|
48
|
+
xml += "<Selection>#{escape(@selection)}</Selection>\n" if not @selection.nil?
|
49
|
+
xml += "<Dial>#{@dial}</Dial>\n" if not @dial.nil?
|
50
|
+
xml += "</MenuItem>\n"
|
51
|
+
return xml
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|