Kannel Patch - LMT Latvia - Custom PDUThanks,

I am impressed, you said you were no C programmer. However, these are just the 
definitions. Implementation means you have to create a flow for them. How does 
kannel respond when receiving such a PDU? Most likely it will panic - or just 
ignore it if it receives an unknown PDU, depending on its state. Have you 
tested them?

The big reason that noone wants to deal with them, is that without the 
architectural documents describing the flow of these PDUs, you cannot use them. 
Another reason is that you have to be able to test the portions of code as you 
build it, and noone has access.

I have no doubt that meta-data works, and doesn't even need the PDU 
definitions, but what about the rest? I have the feeling that Illimar didn't 
have this in mind.

BR,
Nikos
  ----- Original Message ----- 
  From: [email protected] 
  To: [email protected] 
  Sent: Friday, October 02, 2009 10:36 PM
  Subject: Kannel Patch - LMT Latvia - Custom PDU


  Patch for LMT Operator in LATVIA.




  This will add support for custom PDU into Kannel




  Description:

  LMT Operator has custom PDU in SMPP server answers:




  LMT_REPORT         0x00010000

  LMT_REPORT_RESP         0x80010000

  LMT_GEN_CODE         0x00010001

  LMT_GEN_CODE_RESP         0x80010001

  LMT_VERIFY_CODE         0x00010002

  LMT_VERIFY_CODE_RESP         0x80010002







  I wrote this patch for my self and every one.







  File: gw/smsc/smpp_pdu.def




  //

  // LMT

  //




  PDU(LMT_REPORT,

      0x00010000,

      HEADER

      OPTIONAL_BEGIN

         TLV_OCTETS(lmt_created_ts, 14, 14)

         TLV_INTEGER(lmt_report_type, 1)

         TLV_OCTETS(lmt_message_id, 1, 65)

         TLV_OCTETS(lmt_subscriber_id, 1, 20)

      OPTIONAL_END

  )




  PDU(LMT_REPORT_RESP,

      0x80010000,

      HEADER

  )




  PDU(LMT_GEN_CODE,

      0x00010001,

      HEADER

         INTEGER(source_addr_ton, 1)

         NULTERMINATED(source_addr, 21)

         INTEGER(dest_addr_ton, 1)

         NULTERMINATED(destination_addr, 21)

         NULTERMINATED(validity_period, 17)

         INTEGER(data_coding, 1)

         OPTIONAL_BEGIN

         TLV_OCTETS(message_payload, 0, 65536)

         OPTIONAL_END

  )




  PDU(LMT_GEN_CODE_RESP,

      0x80010001,

      HEADER

         NULTERMINATED(message_id, 65)

  )




  PDU(LMT_VERIFY_CODE,

      0x00010002,

      HEADER

         OPTIONAL_BEGIN

         TLV_OCTETS(message_payload, 0, 65536)

         OPTIONAL_END

  )




  PDU(LMT_VERIFY_CODE_RESP,

      0x80010002,

      HEADER

         INTEGER(source_addr_ton, 1)

         NULTERMINATED(source_addr, 21)

         NULTERMINATED(message_id, 65)

         OPTIONAL_BEGIN

         TLV_OCTETS(lmt_subscriber_id, 1, 20)

         OPTIONAL_END

  )




  //

  // END OF LMT

  //










  File: gw/smsc/smpp_pdu_opt.def




  //

  // LMT

  //

  #define        SMPP_lmt_created_ts                        0x1500

  #define        SMPP_lmt_subscriber_id                        0x1501

  #define        SMPP_lmt_response_till                        0x1502

  #define        SMPP_lmt_tariff_class                        0x1503

  #define        SMPP_lmt_more_messages_to_send                        0x1504

  #define        SMPP_lmt_service_desc                        0x1505

  #define        SMPP_lmt_message_id                        0x1506

  #define        SMPP_lmt_report_type                        0x1508

  #define        SMPP_lmt_transaction_id                        0x1509

  #define        SMPP_lmt_addr                        0x1510

  #define        SMPP_lmt_addr_ton                        0x1511

  //

  // END OF LMT

  //










  LMT also have big amount of TLV variables ( for kannel.conf )




  group = smpp-tlv

  name = lmt_created_ts

  tag = 0x1500

  type = octetstring

  length = 14

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_subscriber_id

  tag = 0x1501

  type = octetstring

  length = 20

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_response_till

  tag = 0x1502

  type = octetstring

  length = 20

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_tariff_class

  tag = 0x1503

  type = integer

  length = 2

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_more_messages_to_send

  tag = 0x1504

  type = integer

  length = 1

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_service_desc

  tag = 0x1505

  type = octetstring

  length = 40

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_message_id

  tag = 0x1506

  type = octetstring

  length = 65

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_report_type

  tag = 0x1508

  type = integer

  length = 1

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_transaction_id

  tag = 0x1509

  type = integer

  length = 4

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_addr

  tag = 0x1510

  type = octetstring

  length = 20

  smsc-id = LMT




  group = smpp-tlv

  name = lmt_addr_ton

  tag = 0x1511

  type = integer

  length = 1

  smsc-id = LMT













  p.s. I wrote this, because no one does, and only one person has his own 
patch: Illimar Reinbusch <illimar [at] telejazz.com> , and he told me that he 
will only sell it. So fuck off asshole!



Reply via email to