Реализовано в Nodejs с использованием библиотеки node-smpp и Selenium SMPPSim Simulator
const smpp = require('smpp');
const session = new smpp.Session({host: 'localhost', port: 1234});
session.on('connect', () => {
isConnected = true;
session.bind_transceiver({
system_id: "SYSTEMID",
password: "PASSWORD",
}, (pdu) => {
if (pdu.command_status == 0) {
console.log('smpp connected !')
}
})
})
//**all pdu listener**
session.on('pdu', (pdu)=>{
console.log(pdu)
})
function sendMessage(from, to, text){
from = `+${from}`
to = `+${to}`
session.submit_sm({
source_addr: from,
destination_addr: to,
short_message: text
}, function(pdu) {
console.log(pdu)
if (pdu.command_status == 0) {
console.log(pdu.message_id);
}
});
}
sendMessage("1111", "2222", "Hello World!")
Вывод при sendMessage () вызов метода:
PDU {
command_length: 18,
command_id: 2147483652,
command_status: 0,
sequence_number: 2,
command: 'submit_sm_resp',
message_id: '3' }
Здесь я использую SMPPSim Вывод формы инъекции MO: когда сообщение отправлено симулятором селена :
PDU {
command_length: 63,
command_id: 5,
command_status: 0,
sequence_number: 8,
command: 'deliver_sm',
service_type: '',
source_addr_ton: 1,
source_addr_npi: 1,
source_addr: '111111',
dest_addr_ton: 1,
dest_addr_npi: 1,
destination_addr: '222222',
esm_class: 0,
protocol_id: 0,
priority_flag: 0,
schedule_delivery_time: '',
validity_period: '',
registered_delivery: 0,
replace_if_present_flag: 0,
data_coding: 0,
sm_default_msg_id: 0,
short_message: { message: 'Hello from SMPPSim' } }
перепутано между обоимирезультат, если сообщение отправлено с использованием метода sendMessage (), то почему оно возвращает только submit_sm_resp , это из-за локальной машины ??или что-то другое ??нужна помощь, чтобы понять это поведение.