Class: Majoron::AntHill::SMPP::SMPPAlertNotification

Inherits:
SMPPPDU
  • Object
show all
Defined in:
lib/pdu/smpp_alert_notification.rb

Instance Attribute Summary collapse

Attributes inherited from SMPPPDU

#header

Instance Method Summary collapse

Methods inherited from SMPPPDU

#command_id, #command_length, #command_status, #command_status=, #sequence_number, #sequence_number=

Constructor Details

#initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil) ⇒ SMPPAlertNotification

Returns a new instance of SMPPAlertNotification.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/pdu/smpp_alert_notification.rb', line 23

def initialize(command_status = ErrorCode::ESME_ROK, sequence_number = nil)
	super(CommandId::CM_ALERT_NOTIFICATION, command_status, sequence_number)

	# Mandatory fields
	@source_addr_ton = TON::UNKNOWN
	@source_addr_npi = TON::UNKNOWN
	@source_addr = ""
	@esme_addr_ton = TON::UNKNOWN
	@esme_addr_npi = TON::UNKNOWN
	@esme_addr = ""


	# Optional fields
	@ms_availability_status = nil

	# Optional fields len
	@ms_availability_status_len = SMPPTLVLen::BYTE_LEN

end

Instance Attribute Details

#esme_addrObject

Returns the value of attribute esme_addr.



122
123
124
# File 'lib/pdu/smpp_alert_notification.rb', line 122

def esme_addr
  @esme_addr
end

#esme_addr_npiObject

Returns the value of attribute esme_addr_npi.



121
122
123
# File 'lib/pdu/smpp_alert_notification.rb', line 121

def esme_addr_npi
  @esme_addr_npi
end

#esme_addr_tonObject

Returns the value of attribute esme_addr_ton.



120
121
122
# File 'lib/pdu/smpp_alert_notification.rb', line 120

def esme_addr_ton
  @esme_addr_ton
end

#ms_availability_statusObject

Optional fields



125
126
127
# File 'lib/pdu/smpp_alert_notification.rb', line 125

def ms_availability_status
  @ms_availability_status
end

#ms_availability_status_lenObject

Optional fields len



128
129
130
# File 'lib/pdu/smpp_alert_notification.rb', line 128

def ms_availability_status_len
  @ms_availability_status_len
end

#source_addrObject

Returns the value of attribute source_addr.



119
120
121
# File 'lib/pdu/smpp_alert_notification.rb', line 119

def source_addr
  @source_addr
end

#source_addr_npiObject

Returns the value of attribute source_addr_npi.



118
119
120
# File 'lib/pdu/smpp_alert_notification.rb', line 118

def source_addr_npi
  @source_addr_npi
end

#source_addr_tonObject

Mandatory fields



117
118
119
# File 'lib/pdu/smpp_alert_notification.rb', line 117

def source_addr_ton
  @source_addr_ton
end

Instance Method Details

#decode_packet(decoder) ⇒ Object

Interface to decode SMPP packet



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/pdu/smpp_alert_notification.rb', line 60

def decode_packet(decoder)
	# Decode header and mandatory fields
	@header = decoder.decode_header()
	@source_addr_ton = decoder.decode_source_addr_ton(command_length())
	@source_addr_npi = decoder.decode_source_addr_npi(command_length())
	@source_addr = decoder.decode_source_addr65(command_length())
	@esme_addr_ton = decoder.decode_esme_addr_ton(command_length())
	@esme_addr_npi = decoder.decode_esme_addr_npi(command_length())
	@esme_addr = decoder.decode_esme_addr(command_length())

	# Decode optional fields
	while decoder.has_tlvs()
		case decoder.get_tlv_code()
			when OptTags::TAG_MS_AVAILABILITY_STATUS
				@ms_availability_status, @ms_availability_status_len =
					decoder.decode_ms_availability_status(command_length())
			else
				# Report about error
				raise Errors::UNKNOWN_TAG_MSG + decode.get_tlv_error()
		end
	end
end

#encode_packet(encoder) ⇒ Object

Interface to encode SMPP packet



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/pdu/smpp_alert_notification.rb', line 44

def encode_packet(encoder)
	# Encode header and mandatory fields
	encoder.encode_header(@header)
	encoder.encode_source_addr_ton(@source_addr_ton)
	encoder.encode_source_addr_npi(@source_addr_npi)
	encoder.encode_source_addr65(@source_addr)
	encoder.encode_esme_addr_ton(@esme_addr_ton)
	encoder.encode_esme_addr_npi(@esme_addr_npi)
	encoder.encode_esme_addr(@esme_addr)

	# Encode optional fields
	encoder.encode_ms_availability_status(@ms_availability_status,
		@ms_availability_status_len) if !@ms_availability_status.nil?
end

#output_packet(outputter) ⇒ Object

Interface to output SMPP packet



101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/pdu/smpp_alert_notification.rb', line 101

def output_packet(outputter)
	# Output header and mandatory fields
	outputter.output_header(@header)
	outputter.output_source_addr_ton(@source_addr_ton)
	outputter.output_source_addr_npi(@source_addr_npi)
	outputter.output_source_addr65(@source_addr)
	outputter.output_esme_addr_ton(@esme_addr_ton)
	outputter.output_esme_addr_npi(@esme_addr_npi)
	outputter.output_esme_addr(@esme_addr)

	# Output optional fields
	outputter.output_ms_availability_status(@ms_availability_status,
		@ms_availability_status_len) if !@ms_availability_status.nil?
end

#validate_packet(validator) ⇒ Object

Interface to validate SMPP packet



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/pdu/smpp_alert_notification.rb', line 84

def validate_packet(validator)
	# Decode header and mandatory fields
	validator.validate_header(@header)
	validator.validate_source_addr_ton(@source_addr_ton)
	validator.validate_source_addr_npi(@source_addr_npi)
	validator.validate_source_addr65(@source_addr)
	validator.validate_esme_addr_ton(@esme_adddr_ton)
	validator.validate_esme_addr_npi(@esme_addr_npi)
	validator.validate_esme_addr(@esme_addr)

	# Validate optional fields
	validator.validate_ms_availability_status(@ms_availability_status,
		@ms_availability_status_len) if !@ms_availability_status.nil?

end