2016-05-21 1 views
0

J'essaie d'envoyer une messagerie SMS en utilisant node-smpp avec le ActiveXperts free demo service.NodeJS - SMPP ne pas envoyer

Voici ce que la documentation ActiveXperts dit d'envoyer un message de démonstration gratuit:

enter image description here

Comme par le node-smpp documentation, voici mon code:

var smpp = require('smpp'); 
var session = smpp.connect('smpp.activexperts-labs.com', 2775); 
session.bind_transceiver({}, function(pdu) { 
    console.log(pdu); 
    if (pdu.command_status == 0) { 
     // Successfully bound 
     session.submit_sm({ 
      destination_addr: '1234567890', 
      short_message: 'Hello!' 
     }, function(pdu) { 
      if (pdu.command_status == 0) { 
       // Message successfully sent 
       console.log(pdu.message_id); 
      } 
     }); 
    } 
}); 

Et voici ma réponse PDU:

PDU { 
    command_length: 32, 
    command_id: 2147483657, 
    command_status: 14, 
    sequence_number: 1, 
    command: 'bind_transceiver_resp', 
    system_id: 'ActiveXperts GW' } 

La fonction que envoie le message (session.submit_sm) n'est évidemment pas appelé parce que le pdu résulte command_status = 14 au lieu de ce que l'instruction if nécessite, if (pdu.command_status == 0).

J'ai supprimé l'instruction if et le message n'envoie toujours pas. Toutes les idées que je fais mal.

+0

quelle version de smpp vous utilisez? – Ankanna

+0

@JohnAnkanna J'ai couru npm installent npm --save et à cause de cela j'utilise la version "0.2.0" – Thomas

+0

vous utilisez le 'SMPP v5.0 dans node.js, avec le soutien pour les commandes personnalisées et TLVs. ne supporte pas votre «service de démonstration gratuit d'experts» – Ankanna

Répondre

0

Dans votre code, vous avez passé un objet vide en tant que paramètre pour la méthode bind_transceiver. Vous devez transmettre les informations d'identification smpp comme suit:

session.bind_transceiver({ 
    system_id: 'YOUR_SYSTEM_ID', 
    password: 'YOUR_PASSWORD' 
}, function(pdu) {