smpp_pdu.def
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:4k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * smpp_pdu.def - definitions of SMPP PDU structure
  3.  *
  4.  * Lars Wirzenius
  5.  */
  6. /*
  7.  * XXX Implementation note:
  8.  * 
  9.  * The PDUs bind_transmitter_resp, bind_receiver_resp, and submit_sm_resp
  10.  * contain a body part that is not optional, but on the other hand is only
  11.  * included if the command_status field is zero. The way this is handled at
  12.  * the moment is that the body is not included in the PDU description in
  13.  * this file, so it is always ignored. This is OK because it is not being
  14.  * used anyway. In the future the body will be needed, and so this will
  15.  * be implemented in a better way then.
  16.  */
  17. #ifndef PDU
  18. #error Macro PDU not defined.
  19. #endif
  20. #ifndef INTEGER
  21. #error Macro INTEGER not defined.
  22. #endif
  23. #ifndef NULTERMINATED
  24. #error Macro NULTERMINATED not defined.
  25. #endif
  26. #ifndef OCTETS
  27. #error Macro OCTETS not defined.
  28. #endif
  29. /*
  30.  * All SMPP PDUs have a common header consisting of four integers.
  31.  * The first integer, command_length, is dealt with implicitly by
  32.  * the I/O stuff, so we don't store it in the PDU data structure.
  33.  * The other three are defined in the HEADER macro.
  34.  */
  35. #ifdef HEADER
  36. #error Macro HEADER was already defined.
  37. #endif
  38. #define HEADER
  39. INTEGER(command_id, 4) 
  40. INTEGER(command_status, 4) 
  41. INTEGER(sequence_number, 4)
  42. PDU(bind_transmitter,
  43.     0x00000002,
  44.     HEADER
  45.     NULTERMINATED(system_id, 16)
  46.     NULTERMINATED(password, 9)
  47.     NULTERMINATED(system_type, 13)
  48.     INTEGER(interface_version, 1)
  49.     INTEGER(addr_ton, 1)
  50.     INTEGER(addr_npi, 1)
  51.     NULTERMINATED(address_range, 41)
  52. )
  53. PDU(bind_transmitter_resp,
  54.     0x80000002,
  55.     HEADER
  56.     /* XXX not included for now: NULTERMINATED(system_id, 16) */
  57. )
  58. PDU(bind_receiver,
  59.     0x00000001,
  60.     HEADER
  61.     NULTERMINATED(system_id, 16)
  62.     NULTERMINATED(password, 9)
  63.     NULTERMINATED(system_type, 13)
  64.     INTEGER(interface_version, 1)
  65.     INTEGER(addr_ton, 1)
  66.     INTEGER(addr_npi, 1)
  67.     NULTERMINATED(address_range, 41)
  68. )
  69. PDU(bind_receiver_resp,
  70.     0x80000001,
  71.     HEADER
  72.     /* XXX not included for now: NULTERMINATED(system_id, 16) */
  73. )
  74. PDU(bind_transceiver,
  75.     0x00000009,
  76.     HEADER
  77.     NULTERMINATED(system_id, 16)
  78.     NULTERMINATED(password, 9)
  79.     NULTERMINATED(system_type, 13)
  80.     INTEGER(interface_version, 1)
  81.     INTEGER(addr_ton, 1)
  82.     INTEGER(addr_npi, 1)
  83.     NULTERMINATED(address_range, 41)
  84. )
  85. PDU(bind_transceiver_resp,
  86.     0x80000009,
  87.     HEADER
  88.     /* XXX not included for now: NULTERMINATED(system_id, 16) */
  89. )
  90. PDU(unbind,
  91.     0x00000006,
  92.     HEADER
  93. )
  94. PDU(unbind_resp,
  95.     0x80000006,
  96.     HEADER
  97. )
  98. PDU(submit_sm,
  99.     0x00000004,
  100.     HEADER
  101.     NULTERMINATED(service_type, 6)
  102.     INTEGER(source_addr_ton, 1)
  103.     INTEGER(source_addr_npi, 1)
  104.     NULTERMINATED(source_addr, 21)
  105.     INTEGER(dest_addr_ton, 1)
  106.     INTEGER(dest_addr_npi, 1)
  107.     NULTERMINATED(destination_addr, 21)
  108.     INTEGER(esm_class, 1)
  109.     INTEGER(protocol_id, 1)
  110.     INTEGER(priority_flag, 1)
  111.     NULTERMINATED(schedule_delivery_time, 17)
  112.     NULTERMINATED(validity_period, 17)
  113.     INTEGER(registered_delivery, 1)
  114.     INTEGER(replace_if_present_flag, 1)
  115.     INTEGER(data_coding, 1)
  116.     INTEGER(sm_default_msg_id, 1)
  117.     INTEGER(sm_length, 1)
  118.     OCTETS(short_message, sm_length)
  119. )
  120. PDU(submit_sm_resp,
  121.     0x80000004,
  122.     HEADER
  123.     NULTERMINATED(message_id, 65)
  124. )
  125. PDU(deliver_sm,
  126.     0x00000005,
  127.     HEADER
  128.     NULTERMINATED(service_type, 6)
  129.     INTEGER(source_addr_ton, 1)
  130.     INTEGER(source_addr_npi, 1)
  131.     NULTERMINATED(source_addr, 21)
  132.     INTEGER(dest_addr_ton, 1)
  133.     INTEGER(dest_addr_npi, 1)
  134.     NULTERMINATED(destination_addr, 21)
  135.     INTEGER(esm_class, 1)
  136.     INTEGER(protocol_id, 1)
  137.     INTEGER(priority_flag, 1)
  138.     NULTERMINATED(schedule_delivery_time, 1)
  139.     NULTERMINATED(validity_period, 1)
  140.     INTEGER(registered_delivery, 1)
  141.     INTEGER(replace_if_present_flag, 1)
  142.     INTEGER(data_coding, 1)
  143.     INTEGER(sm_default_msg_id, 1)
  144.     INTEGER(sm_length, 1)
  145.     OCTETS(short_message, sm_length)
  146. )
  147. PDU(deliver_sm_resp,
  148.     0x80000005,
  149.     HEADER
  150.     NULTERMINATED(message_id, 1)
  151. )
  152. PDU(enquire_link,
  153.     0x00000015,
  154.     HEADER
  155. )
  156. PDU(enquire_link_resp,
  157.     0x80000015,
  158.     HEADER
  159. )
  160. PDU(generic_nack_resp,
  161.     0x80000000,
  162.     HEADER
  163. )
  164. #undef PDU
  165. #undef INTEGER
  166. #undef NULTERMINATED
  167. #undef OCTETS
  168. #undef HEADER