2016-09-21 1 views
0

Iam étudiant le protocole SMPP et a essayé de mettre en œuvre un émetteur simple avec un code golang et simulateur de sélénium smpp. J'ai trouvé un paquet "CodeMonkeyKevin/smpp34" de github. Mais je suis incapable de définir le paramètre facultatif "user_message_reference".Impossible de définir le paramètre facultatif SMPP dans le code go

I légèrement modifié la fonction « SubmitSm » dans le fichier « transmitter.go » en ajoutant ces lignes (juste avant l'opération d'écriture):

err = p.SetTLVField(tag, length, []byte(value)) 
    if err != nil { 
     fmt.Println("Set TLV failed") 
     return 0, err 
    } 

Mais cela ne fonctionne pas.

I fourni des valeurs tag = 0516 (int équivalent de 0x0204 user_message_reference) longueur = 02 et value = "91".

Dans la réponse je pouvais voir "tag = 516, len = 2, valeur = 0x3931" dans le simulateur SMSC, le champ de valeur ne me semble pas approprié; aussi le « MESSAGE_ID » dans la réponse continue sa séquence en ajoutant 1 au dernier message_id

quelqu'un peut me aider à régler le paramètre optionnel « de user_message_reference » à la demande « submit_sm »?

Merci d'avance.

+0

Qu'est-ce que cela signifie vous êtes "incapable de définir le paramètre optionnel user_message_reference"? S'il vous plaît montrer un exemple de ce que vous avez essayé, ce que vous attendez et ce que vous avez réellement vu. – JimB

+0

J'ai fourni les valeurs tag = 0516 (équivalent int de 0x0204 user_message_reference) length = 02 et value = "91" dans la fonction setTVLField. J'ai pu voir "tag = 516, len = 2, value = 0x3931" apparaître dans le simulateur SMSC, mais la valeur ne me semble pas appropriée; et le message_id dans la réponse continue sa séquence en ajoutant 1 avec le dernier message_id. – Hardy

+0

@JimB a-t-il aidé? – Hardy

Répondre

0

Vous n'avez pas modifier la fonction dans le transmitter.go

situé juste à vos champs après votre VLE submit_sm

exemple

pdu, err  := trx.Smpp.SubmitSm("+254720000000", 
pdu.GetField("source_addr").String(), msg, &smpp.Params{}) 

pdu.SetTLVField(0x0501, 1, []byte{2}) #eg a ussd_service_op 

Ceci est la bonne façon d'ajouter votre VLE valeurs si vous utilisez le paquet de kevin Voir https://github.com/CodeMonkeyKevin/smpp34/issues/9 Additional parameters