Class: PduSms::ServiceCenterAddress
- Inherits:
-
Phone
- Object
- Phone
- PduSms::ServiceCenterAddress
show all
- Defined in:
- lib/pdu_sms/service_center_address.rb
Instance Attribute Summary
Attributes inherited from Phone
#number_plan_identifier, #type_number
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Phone
#get_phone_number
Constructor Details
#initialize(type, data = false, number_play_identifier = false, type_number = false) ⇒ ServiceCenterAddress
Returns a new instance of ServiceCenterAddress.
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/pdu_sms/service_center_address.rb', line 5
def initialize(type, data=false, number_play_identifier=false, type_number=false)
if not data
@phone_number = ''
elsif type == :encode_ms
_set_phone_number data, number_play_identifier, type_number
elsif type == :decode_ms
_set_pdu_hex ServiceCenterAddress.cut_off_pdu(data, part=:current, :ms)
elsif type == :encode_sc
_set_phone_number data, number_play_identifier, type_number
elsif type == :decode_sc
_set_pdu_hex ServiceCenterAddress.cut_off_pdu(data, part=:current, :sc)
end
end
|
Class Method Details
.cut_off_pdu(pdu, part = :all, type = :sc) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/pdu_sms/service_center_address.rb', line 35
def ServiceCenterAddress.cut_off_pdu(pdu, part=:all, type=:sc) raise ArgumentError, 'The "pdu" is incorrect' if pdu.length < 3
sca_length = pdu[0..1].to_i
if sca_length > 0
current = pdu[0..(sca_length * 2 + 1)]
tail = pdu[(sca_length * 2 + 2)..-1]
else
current = '00'
tail = pdu[2..-1]
end
case part
when :current then current
when :tail then tail
else [current,tail]
end
end
|
.decode_ms(str_pdu) ⇒ Object
23
24
25
|
# File 'lib/pdu_sms/service_center_address.rb', line 23
def ServiceCenterAddress.decode_ms(str_pdu)
new(:decode_ms, str_pdu).freeze
end
|
.decode_sc(str_pdu) ⇒ Object
31
32
33
|
# File 'lib/pdu_sms/service_center_address.rb', line 31
def ServiceCenterAddress.decode_sc(str_pdu)
new(:decode_sc, str_pdu).freeze
end
|
.encode_ms(str_phone_number = false, number_play_identifier = false, type_number = false) ⇒ Object
19
20
21
|
# File 'lib/pdu_sms/service_center_address.rb', line 19
def ServiceCenterAddress.encode_ms(str_phone_number=false, number_play_identifier=false, type_number=false)
new(:encode_ms, str_phone_number, number_play_identifier, type_number).freeze
end
|
.encode_sc(str_phone_number = false, number_play_identifier = false, type_number = false) ⇒ Object
27
28
29
|
# File 'lib/pdu_sms/service_center_address.rb', line 27
def ServiceCenterAddress.encode_sc(str_phone_number=false, number_play_identifier=false, type_number=false)
new(:encode_sc, str_phone_number, number_play_identifier, type_number).freeze
end
|
Instance Method Details
#get_hex ⇒ Object
52
53
54
55
|
# File 'lib/pdu_sms/service_center_address.rb', line 52
def get_hex
return '%02X' % 0x00 unless _check_phone?
'%s%s' % [_address_length_hex, _get_hex_type_and_phone]
end
|