developergarden_sdk 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -147
- data/Rakefile +2 -2
- data/lib/quota_service/account_balance_response.rb +49 -0
- data/lib/quota_service/quota_service.rb +14 -4
- data/lib/sms_service/sms_get_validated_numbers_response.rb +52 -0
- data/lib/sms_service/sms_validation_response.rb +18 -0
- data/lib/sms_service/sms_validation_service.rb +101 -0
- data/lib/voice_call_service/call_status_response.rb +4 -1
- data/lib/voice_call_service/voice_call_service.rb +1 -1
- metadata +8 -4
data/README
CHANGED
@@ -1,147 +1 @@
|
|
1
|
-
|
2
|
-
This library provides access to open development services of the Deutsche Telekom AG.
|
3
|
-
For more details about the services see
|
4
|
-
|
5
|
-
http://www.developergarden.com
|
6
|
-
|
7
|
-
Depending on your operating system you might want to skip the "sudo" command prior to the
|
8
|
-
commands listed here.
|
9
|
-
|
10
|
-
|
11
|
-
=== Installation
|
12
|
-
sudo gem install developergarden_sdk
|
13
|
-
|
14
|
-
Dependent gems will be installed automatically.
|
15
|
-
|
16
|
-
=== Basic usage
|
17
|
-
You can use the gem from pure Ruby applications and of course from Ruby on Rails apps as well.
|
18
|
-
|
19
|
-
==== To use the gem from your Ruby app
|
20
|
-
|
21
|
-
require 'rubygems'
|
22
|
-
gem 'developergarden_sdk'
|
23
|
-
require 'token_Service/token_service'
|
24
|
-
require 'sms_service/sms_service'
|
25
|
-
require 'voice_call_service/voice_call_service'
|
26
|
-
require 'quota_service/quota_service'
|
27
|
-
require 'service_environment'
|
28
|
-
|
29
|
-
==== Ruby Example to send a sms
|
30
|
-
#!/usr/bin/env ruby -d
|
31
|
-
|
32
|
-
require 'rubygems'
|
33
|
-
gem 'developergarden_sdk'
|
34
|
-
require 'token_Service/token_service'
|
35
|
-
require 'sms_service/sms_service'
|
36
|
-
require 'service_environment'
|
37
|
-
|
38
|
-
sms = SmsService::SmsService.new("<USER>@t-online.de", "<PASSWORD>")
|
39
|
-
sms_response = sms.send_sms("+49177 0000001", "Your message text.", "RubySDK", ServiceEnvironment.PRODUCTION, "")
|
40
|
-
|
41
|
-
|
42
|
-
=== Ruby Example to perform an ip location request
|
43
|
-
|
44
|
-
require 'rubygems'
|
45
|
-
gem 'developergarden_sdk'
|
46
|
-
require 'token_service/token_service'
|
47
|
-
require 'ip_location_service/ip_location_service'
|
48
|
-
|
49
|
-
@ip_location_service = IpLocationService::IpLocationService.new("<USER>@t-online.de", "<PASSWORD>")
|
50
|
-
|
51
|
-
ip = IpLocationService::IpAddress.new("93.222.255.58")
|
52
|
-
response = @ip_location_service.locate_ip(ip, ServiceEnvironment.PRODUCTION)
|
53
|
-
|
54
|
-
puts response.ip_address_locations.first.address
|
55
|
-
puts response.ip_address_locations.first.is_in_region.country_code
|
56
|
-
puts response.ip_address_locations.first.is_in_region.region_name
|
57
|
-
|
58
|
-
# If you except a single ip location (if you have passed a single ip to look up)
|
59
|
-
# then you can use the following way to access the location
|
60
|
-
puts response.ip_address_location.address
|
61
|
-
puts response.ip_address_location.is_in_region.country_code
|
62
|
-
puts response.ip_address_location.is_in_region.region_name
|
63
|
-
|
64
|
-
=== Ruby Example to perform a local search
|
65
|
-
require 'rubygems'
|
66
|
-
gem 'developergarden_sdk'
|
67
|
-
require 'token_service/token_service'
|
68
|
-
require 'token_service/token_service'
|
69
|
-
require 'local_search_service/local_search_service'
|
70
|
-
|
71
|
-
@service = LocalSearchService::LocalSearchService.new("<USER>@t-online.de", "<PASSWORD>")
|
72
|
-
|
73
|
-
search_parameter = {
|
74
|
-
:what => "music",
|
75
|
-
:near => "Konstanz"
|
76
|
-
}
|
77
|
-
response = @service.local_search(search_parameter, ServiceEnvironment.PRODUCTION)
|
78
|
-
|
79
|
-
# Show response xml
|
80
|
-
puts response.search_result.to_xml
|
81
|
-
results_where_locs_where = response.search_result.xpath("//RESULTS/WHERE_LOCS/WHERE").first
|
82
|
-
lat = results_where_locs_where["LAT"]
|
83
|
-
puts lat
|
84
|
-
|
85
|
-
=== Ruby Example to create a conference call
|
86
|
-
require 'rubygems'
|
87
|
-
gem 'developergarden_sdk'
|
88
|
-
require 'token_Service/token_service'
|
89
|
-
require 'conference_call_service/conference_call_service'
|
90
|
-
|
91
|
-
environment = ServiceEnvironment.PRODUCTION
|
92
|
-
|
93
|
-
service = ConferenceCallService::ConferenceCallService.new("<USERNAME>@t-online.de", "<PASSWORD>")
|
94
|
-
|
95
|
-
conf_details = ConferenceCallService::ConferenceDetails.new("A very important conf", "A very impressive description", 30)
|
96
|
-
|
97
|
-
response = service.create_conference("max.mustermann", conf_details, nil, environment)
|
98
|
-
|
99
|
-
conf_id = response.conference_id
|
100
|
-
|
101
|
-
participant = ConferenceCallService::ParticipantDetails.new('maxi', 'max', '<NUMBER A>', 'max@spin.to', 1)
|
102
|
-
participant2 = ConferenceCallService::ParticipantDetails.new('roger', 'beep', '<NUMBER B>', 'roger@spin.to', 0)
|
103
|
-
|
104
|
-
service.new_participant(conf_id, participant, environment)
|
105
|
-
service.new_participant(conf_id, participant2, environment)
|
106
|
-
|
107
|
-
service.commit_conference(conf_id, ServiceEnvironment.PRODUCTION)
|
108
|
-
|
109
|
-
==== To use your gem from your Ruby on Rails app
|
110
|
-
In your environment.rb add the following line in the config block:
|
111
|
-
config.gem 'developergarden_sdk'
|
112
|
-
|
113
|
-
==== Ruby on Rails Example
|
114
|
-
|
115
|
-
class SmsNotification
|
116
|
-
|
117
|
-
USERNAME = "<USER>@t-online.de"
|
118
|
-
PASSWORD = "<PASSWORD>"
|
119
|
-
|
120
|
-
# Send SMS to Numbers.
|
121
|
-
def send_sms(number, message, originator, environment = 2)
|
122
|
-
|
123
|
-
# Create new SmsService instance
|
124
|
-
@sms = SmsService::SmsService.new(USERNAME, PASSWORD)
|
125
|
-
|
126
|
-
# Send SMS to cell phone
|
127
|
-
@sms.send_sms(number, message, originator, environment)
|
128
|
-
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
=== More Examples
|
134
|
-
In order to see more examples have a look the unit tests included in the gem's source code.
|
135
|
-
You might also want to have a look at the actual source code and source code comments.
|
136
|
-
|
137
|
-
|
138
|
-
==More Information
|
139
|
-
More information about developer garden services can be found at:
|
140
|
-
http://www.developergarden.com
|
141
|
-
|
142
|
-
==FAQ
|
143
|
-
=== Did not understand "MustUnderstand" header(s)
|
144
|
-
Handsoap::Fault: Handsoap::Fault { :code => 'soapenv:MustUnderstand', :reason => 'Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security' }
|
145
|
-
|
146
|
-
You will receive this error message if a mandatory header element is not present or the remote service was unable to process it.
|
147
|
-
Most likely this will happen if something is wrong during the authentication process such as missing parameters like username, password.
|
1
|
+
See README.rdoc
|
data/Rakefile
CHANGED
@@ -13,11 +13,11 @@ require 'fileutils'
|
|
13
13
|
|
14
14
|
spec = Gem::Specification.new do |s|
|
15
15
|
s.name = 'developergarden_sdk'
|
16
|
-
s.version = '0.9.
|
16
|
+
s.version = '0.9.2'
|
17
17
|
s.homepage = 'http://www.developergarden.com'
|
18
18
|
s.has_rdoc = true
|
19
19
|
s.extra_rdoc_files = ['README', 'LICENSE']
|
20
|
-
s.summary = '
|
20
|
+
s.summary = 'Client library for the open development services of Deutsche Telekom AG. The services are: send SMS, voice call, conference call, IP location, local search and quota management. For more information, please see http://www.developergarden.com.'
|
21
21
|
s.description = s.summary
|
22
22
|
s.author = 'Julian Fischer / Aperto move GmbH'
|
23
23
|
s.email = 'ruby@developergarden.com'
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class AccountBalanceResponse < BasicResponse
|
2
|
+
attr_accessor :account_balances
|
3
|
+
|
4
|
+
# Constructor.
|
5
|
+
# ===Parameters
|
6
|
+
# <tt>response_xml</tt>:: Xml as returned by a <tt>call_status</tt>-method call.
|
7
|
+
# <tt>raise_exception_on_error</tt>:: Xml as returned by a <tt>call_status</tt>-method call.
|
8
|
+
def initialize(response_xml, raise_exception_on_error = true)
|
9
|
+
doc = response_xml.document
|
10
|
+
|
11
|
+
@error_code = doc.xpath("//errorCode").to_s
|
12
|
+
@error_message = doc.xpath("//errorMessage").to_s
|
13
|
+
@account_balances = []
|
14
|
+
|
15
|
+
# Get a list of all account sections
|
16
|
+
accounts_xml = doc.xpath("//getAccountBalanceResponse/Account")
|
17
|
+
|
18
|
+
# Create Account objects out of the xml response
|
19
|
+
if accounts_xml.is_a?(Handsoap::XmlQueryFront::NodeSelection) then
|
20
|
+
accounts_xml.each do |account_xml|
|
21
|
+
account = Account.build_from_xml(account_xml)
|
22
|
+
account_balances << account
|
23
|
+
end
|
24
|
+
else
|
25
|
+
raise "Unexpected response format."
|
26
|
+
end
|
27
|
+
|
28
|
+
raise_on_error(response_xml) if raise_exception_on_error
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class Account
|
33
|
+
attr_accessor :account, :credits
|
34
|
+
|
35
|
+
def initialize(account, credits)
|
36
|
+
@account = account
|
37
|
+
@credits = credits
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.build_from_xml(xml_doc)
|
41
|
+
account = xml_doc.xpath("Account").to_s
|
42
|
+
credits = xml_doc.xpath("Credits").to_s
|
43
|
+
return Account.new(account, credits)
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_s
|
47
|
+
self.inspect
|
48
|
+
end
|
49
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../authenticated_service'
|
2
2
|
require File.dirname(__FILE__) + '/../quota_service/quota_information'
|
3
|
+
require File.dirname(__FILE__) + '/../quota_service/account_balance_response'
|
3
4
|
|
4
5
|
Handsoap.http_driver = :httpclient
|
5
6
|
|
@@ -26,13 +27,11 @@ module QuotaService
|
|
26
27
|
# ===Parameters
|
27
28
|
# <tt>module_id</tt>:: module_id of the service for which a quota request to be made, such as "VoiceButlerProduction"
|
28
29
|
def get_quota_information(module_id = "VoiceButlerSandbox")
|
29
|
-
|
30
30
|
response = invoke_authenticated("getQuotaInformation") do |message, doc|
|
31
31
|
message.add('moduleId', module_id)
|
32
32
|
end
|
33
|
-
|
34
33
|
quota_info = QuotaInformation.new(response)
|
35
|
-
|
34
|
+
|
36
35
|
return quota_info
|
37
36
|
end
|
38
37
|
|
@@ -41,7 +40,6 @@ module QuotaService
|
|
41
40
|
# <tt>module_id</tt>:: module_id of the service for which a quota request to be made, such as "VoiceButlerProduction"
|
42
41
|
# <tt>quota_max</tt>:: Quota limit to be set
|
43
42
|
def change_quota_pool(module_id = "VoiceButlerSandbox", quota_max = 100)
|
44
|
-
|
45
43
|
response = invoke_authenticated("changeQuotaPool") do |message, doc|
|
46
44
|
message.add('moduleId', module_id)
|
47
45
|
message.add('quotaMax', quota_max)
|
@@ -49,5 +47,17 @@ module QuotaService
|
|
49
47
|
|
50
48
|
return BasicResponse.new(response)
|
51
49
|
end
|
50
|
+
|
51
|
+
# Get balance of the given developergarden account.
|
52
|
+
# ===Parameters
|
53
|
+
# <tt>account</tt>:: Account ids of the sub accounts to retrieve the balance for.
|
54
|
+
# Retrieves the balance of the main account if the account balance is empty.
|
55
|
+
def get_account_balance(account = nil)
|
56
|
+
response = invoke_authenticated("getAccountBalance") do |message, doc|
|
57
|
+
message.add('account', account) if account
|
58
|
+
end
|
59
|
+
|
60
|
+
return AccountBalanceResponse.new(response)
|
61
|
+
end
|
52
62
|
end
|
53
63
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../basic_response'
|
2
|
+
|
3
|
+
# Representing a response from the <tt>SmsService</tt>.
|
4
|
+
class SmsGetValidatedNumbersResponse < BasicResponse
|
5
|
+
|
6
|
+
attr_accessor :validated_numbers
|
7
|
+
|
8
|
+
# Constructor.
|
9
|
+
# ===Parameters
|
10
|
+
# <tt>response_xml</tt>:: Xml as returned by a <tt>sms_status</tt>-method call.
|
11
|
+
# <tt>raise_exception_on_error</tt>:: Xml as returned by a <tt>sms_status</tt>-method call.
|
12
|
+
def initialize(response_xml, raise_exception_on_error = true)
|
13
|
+
doc = response_xml.document
|
14
|
+
|
15
|
+
@error_code = doc.xpath("//statusCode").to_s
|
16
|
+
@error_message = doc.xpath("//statusMessage").to_s
|
17
|
+
@validated_numbers = []
|
18
|
+
|
19
|
+
validated_numbers_xml = doc.xpath("//validatedNumbers")
|
20
|
+
|
21
|
+
if validated_numbers_xml.is_a?(Handsoap::XmlQueryFront::NodeSelection) then
|
22
|
+
validated_numbers_xml.each do |validated_number_xml|
|
23
|
+
validated_number = ValidatedNumber.build_from_xml(validated_number_xml)
|
24
|
+
validated_numbers << validated_number
|
25
|
+
end
|
26
|
+
else
|
27
|
+
raise "Unexpected response format."
|
28
|
+
end
|
29
|
+
|
30
|
+
raise_on_error(response_xml) if raise_exception_on_error
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class ValidatedNumber
|
35
|
+
attr_accessor :number, :validated_until
|
36
|
+
|
37
|
+
def initialize(number, validated_until)
|
38
|
+
@number = number
|
39
|
+
@validated_until = validated_until
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.build_from_xml(xml_doc)
|
43
|
+
number = xml_doc.xpath("number").to_s
|
44
|
+
validated_until = xml_doc.xpath("validUntil").to_s
|
45
|
+
|
46
|
+
return ValidatedNumber.new(number, validated_until)
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_s
|
50
|
+
self.inspect
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../basic_response'
|
2
|
+
|
3
|
+
# Representing a response from the <tt>SmsService</tt>.
|
4
|
+
class SmsSendValidationResponse < BasicResponse
|
5
|
+
|
6
|
+
# Constructor.
|
7
|
+
# ===Parameters
|
8
|
+
# <tt>response_xml</tt>:: Xml as returned by a <tt>sms_status</tt>-method call.
|
9
|
+
# <tt>raise_exception_on_error</tt>:: Xml as returned by a <tt>sms_status</tt>-method call.
|
10
|
+
def initialize(response_xml, raise_exception_on_error = true)
|
11
|
+
doc = response_xml.document
|
12
|
+
|
13
|
+
@error_code = doc.xpath("//statusCode").to_s
|
14
|
+
@error_message = doc.xpath("//statusMessage").to_s
|
15
|
+
|
16
|
+
raise_on_error(response_xml) if raise_exception_on_error
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../authenticated_service'
|
2
|
+
require File.dirname(__FILE__) + '/../sms_service/sms_validation_response'
|
3
|
+
require File.dirname(__FILE__) + '/../sms_service/sms_get_validated_numbers_response'
|
4
|
+
|
5
|
+
Handsoap.http_driver = :httpclient
|
6
|
+
|
7
|
+
# Print http and soap requests and reponses if ruby has been started with -d option.
|
8
|
+
Handsoap::Service.logger = $stdout if $DEBUG
|
9
|
+
|
10
|
+
module SmsService
|
11
|
+
|
12
|
+
# SmsValidationService allows you to use physical mobile phone numbers as the sender number
|
13
|
+
# of a text message.
|
14
|
+
#
|
15
|
+
# See also:
|
16
|
+
# * https://www.developergarden.com/openapi/dokumentation/services#4.2.3.
|
17
|
+
class SmsValidationService < AuthenticatedService
|
18
|
+
|
19
|
+
@@SMS_VALIDATION_SERVICE_SCHEMA = "http://webservice.sms.odg.tonline.de"
|
20
|
+
|
21
|
+
@@SMS_SERVICE_ENDPOINT = {
|
22
|
+
:uri => "https://gateway.developer.telekom.com/p3gw-mod-odg-sms-validation/services/SmsValidationUserService",
|
23
|
+
:version => 1
|
24
|
+
}
|
25
|
+
|
26
|
+
endpoint @@SMS_SERVICE_ENDPOINT
|
27
|
+
|
28
|
+
# Add namespaces to the handsoap XmlMason document.
|
29
|
+
def on_create_document(doc)
|
30
|
+
super(doc)
|
31
|
+
doc.alias 'smsvs', @@SMS_VALIDATION_SERVICE_SCHEMA
|
32
|
+
end
|
33
|
+
|
34
|
+
# Send a validation text message.
|
35
|
+
#
|
36
|
+
# Note this method does not support a sandbox service environment.
|
37
|
+
# Validated numbers can be used in both the production and sandbox environment.
|
38
|
+
# For more details please refer to the developergarden docs.
|
39
|
+
# ===Parameters
|
40
|
+
# <tt>message</tt>:: Message which should be send along the validation key. Message needs to contain two
|
41
|
+
# placeholders: #key# and #validUntil#.
|
42
|
+
# <tt>number</tt>:: Number to be validated.
|
43
|
+
# <tt>originator</tt>:: Originator to be displayed in the receiver's validation text message.
|
44
|
+
# <tt>account</tt>:: Optional developergarden subaccount.
|
45
|
+
def send_validation_keyword(message, number, originator, environment = ServiceEnvironment.MOCK, account = "")
|
46
|
+
response = invoke_authenticated('smsvs:sendValidationKeywordRequest') do |request, doc|
|
47
|
+
request.add('message', message)
|
48
|
+
request.add('number', number)
|
49
|
+
request.add('originator', originator)
|
50
|
+
request.add('account', account)
|
51
|
+
request.add('environment', environment)
|
52
|
+
end
|
53
|
+
|
54
|
+
return SmsSendValidationResponse.new(response)
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
# Validate the requested number using the received keyword.
|
59
|
+
# ===Parameters
|
60
|
+
# <tt>keyword</tt>:: Secret keyword used to finalize the ongoing validation process.
|
61
|
+
# <tt>number</tt>:: Number to be validated
|
62
|
+
# <tt>environment</tt>:: Note that only the MOCK and PRODUCTION environments can be used. Numbers already validated
|
63
|
+
# in the PRODUCTIOn environment can also be used for sending text messages in the SANDBOX ENVIRONMENT.
|
64
|
+
# Validations with the keyword <tt>SECRET</tt> in the MOCK environment should always succeed.
|
65
|
+
def validate(keyword, number, environment = ServiceEnvironment.MOCK)
|
66
|
+
response = invoke_authenticated('smsvs:validateRequest') do |request, doc|
|
67
|
+
request.add('keyword', keyword)
|
68
|
+
request.add('number', number)
|
69
|
+
request.add('environment', environment)
|
70
|
+
end
|
71
|
+
|
72
|
+
return SmsSendValidationResponse.new(response)
|
73
|
+
end
|
74
|
+
|
75
|
+
# Invalidate the given number.
|
76
|
+
# ===Parameters
|
77
|
+
# <tt>number</tt>:: Number to be invalidated
|
78
|
+
# <tt>environment</tt>:: Note that only the MOCK and PRODUCTION environments can be used. Numbers already validated
|
79
|
+
# in the PRODUCTIOn environment can also be used for sending text messages in the SANDBOX ENVIRONMENT.
|
80
|
+
# Validations with the keyword <tt>SECRET</tt> in the MOCK environment should always succeed.
|
81
|
+
def invalidate(number, environment = ServiceEnvironment.MOCK)
|
82
|
+
response = invoke_authenticated('smsvs:invalidateRequest') do |request, doc|
|
83
|
+
request.add('number', number)
|
84
|
+
request.add('environment', environment)
|
85
|
+
end
|
86
|
+
|
87
|
+
return SmsSendValidationResponse.new(response)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Retrieves a list of already validated numbers.
|
91
|
+
# ===Parameters
|
92
|
+
# <tt>environment</tt>:: Note that only the MOCK and PRODUCTION environments can be used.
|
93
|
+
def get_validated_numbers(environment = ServiceEnvironment.MOCK)
|
94
|
+
response = invoke_authenticated('smsvs:getValidatedNumbersRequest') do |request, doc|
|
95
|
+
request.add('environment', environment)
|
96
|
+
end
|
97
|
+
|
98
|
+
return SmsGetValidatedNumbersResponse.new(response)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -5,7 +5,7 @@ require File.dirname(__FILE__) + '/../basic_response'
|
|
5
5
|
class CallStatusResponse < BasicResponse
|
6
6
|
|
7
7
|
attr_accessor :connection_time_a, :connection_time_b, :description_a, :description_b, :reason_a, :reason_b
|
8
|
-
attr_accessor :state_a, :state_b
|
8
|
+
attr_accessor :state_a, :state_b, :be164, :bindex
|
9
9
|
|
10
10
|
# Constructor.
|
11
11
|
# ===Parameters
|
@@ -25,6 +25,9 @@ class CallStatusResponse < BasicResponse
|
|
25
25
|
@reason_b = doc.xpath("//reasonb").to_s
|
26
26
|
@state_a = doc.xpath("//statea").to_s
|
27
27
|
@state_b = doc.xpath("//stateb").to_s
|
28
|
+
@be164 = doc.xpath("//be164").to_s
|
29
|
+
@bindex = doc.xpath("//bindex").to_s
|
30
|
+
|
28
31
|
|
29
32
|
raise_on_error(response_xml) if raise_exception_on_error
|
30
33
|
end
|
@@ -13,7 +13,7 @@ module VoiceCallService
|
|
13
13
|
# Establish voice calls between two participants
|
14
14
|
# See also: http://www.developergarden.com/openapi/dokumentation/services#4.2.1.
|
15
15
|
class VoiceCallService < AuthenticatedService
|
16
|
-
@@VOICE_CALL_SERVICE_ENDPOINT = {
|
16
|
+
@@VOICE_CALL_SERVICE_ENDPOINT = { +
|
17
17
|
:uri => "https://gateway.developer.telekom.com/p3gw-mod-odg-voicebutler/services/VoiceButlerService",
|
18
18
|
:version => 1
|
19
19
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: developergarden_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Fischer / Aperto move GmbH
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-02-09 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: 4.0.0
|
54
54
|
version:
|
55
|
-
description:
|
55
|
+
description: "Client library for the open development services of Deutsche Telekom AG. The services are: send SMS, voice call, conference call, IP location, local search and quota management. For more information, please see http://www.developergarden.com."
|
56
56
|
email: ruby@developergarden.com
|
57
57
|
executables: []
|
58
58
|
|
@@ -102,12 +102,16 @@ files:
|
|
102
102
|
- lib/ip_location_service/region.rb
|
103
103
|
- lib/local_search_service/local_search_response.rb
|
104
104
|
- lib/local_search_service/local_search_service.rb
|
105
|
+
- lib/quota_service/account_balance_response.rb
|
105
106
|
- lib/quota_service/quota_information.rb
|
106
107
|
- lib/quota_service/quota_service.rb
|
107
108
|
- lib/service_environment.rb
|
108
109
|
- lib/service_exception.rb
|
110
|
+
- lib/sms_service/sms_get_validated_numbers_response.rb
|
109
111
|
- lib/sms_service/sms_response.rb
|
110
112
|
- lib/sms_service/sms_service.rb
|
113
|
+
- lib/sms_service/sms_validation_response.rb
|
114
|
+
- lib/sms_service/sms_validation_service.rb
|
111
115
|
- lib/telekom_sdk.rb
|
112
116
|
- lib/token_service/security_token_validator.rb
|
113
117
|
- lib/token_service/token_service.rb
|
@@ -141,6 +145,6 @@ rubyforge_project:
|
|
141
145
|
rubygems_version: 1.3.5
|
142
146
|
signing_key:
|
143
147
|
specification_version: 3
|
144
|
-
summary:
|
148
|
+
summary: "Client library for the open development services of Deutsche Telekom AG. The services are: send SMS, voice call, conference call, IP location, local search and quota management. For more information, please see http://www.developergarden.com."
|
145
149
|
test_files: []
|
146
150
|
|