SMPP v5

Dec 18, 2014 at 8:55 AM
Has anyone updated their version of Jamaa SMPP to support SMPP v5?

I have converted this current release to VB.NET and added long message (multi-SMS) sending and receiving support.

But I now need to support v5. I expect I'll have to do it myself, but that also means I can just update those parts of the protocol we're using.

Just checking if anyone has looked into this already.
Jan 5, 2015 at 5:42 AM
I haven't attempted to implement the extra PDUs of v5, but the non-backward compatible part of the existing v33/v34 Jamaa implementation seems to simply be that some PDUs now have defined TLVs in v5 where they were unexpected previously. So other than defining more enums the minimal change seems to be changing
        'This pdu has no option parameters,
        'If there is something left in the buffer,
        'then we have more than required bytes
        If buffer.Length > 0 Then _
            Throw New TooManyBytesException()
to
        ' If there are some bytes left,
        ' construct a tlv collection
        If Buffer.Length > 0 Then _
            vTlv = Protocol.Tlv.TlvCollection.Parse(Buffer)
in four places.

Of course if you want to actually generate or process the new TLVs you may need to add the code for that to.

Another thing I noticed (from 3.2.1.3) is that if the returned ErrorCode (in the PduHeader) is anything other than 0 you should ignore the rest of the packet, but given the inheritance chain this is a little hard to do (and some ESMEs and MCs do provide further error information).
Jan 5, 2015 at 5:53 AM
Actually 3.2.1.3 is clearly contradicted by the TLVs additional_status_info_text, delivery_failure_reason, network_error_code and dpf_result.