1 /* ==================================================================== 
     2  * The Kannel Software License, Version 1.0 
     4  * Copyright (c) 2001-2018 Kannel Group  
     5  * Copyright (c) 1998-2001 WapIT Ltd.   
     8  * Redistribution and use in source and binary forms, with or without 
     9  * modification, are permitted provided that the following conditions 
    12  * 1. Redistributions of source code must retain the above copyright 
    13  *    notice, this list of conditions and the following disclaimer. 
    15  * 2. Redistributions in binary form must reproduce the above copyright 
    16  *    notice, this list of conditions and the following disclaimer in 
    17  *    the documentation and/or other materials provided with the 
    20  * 3. The end-user documentation included with the redistribution, 
    21  *    if any, must include the following acknowledgment: 
    22  *       "This product includes software developed by the 
    23  *        Kannel Group (http://www.kannel.org/)." 
    24  *    Alternately, this acknowledgment may appear in the software itself, 
    25  *    if and wherever such third-party acknowledgments normally appear. 
    27  * 4. The names "Kannel" and "Kannel Group" must not be used to 
    28  *    endorse or promote products derived from this software without 
    29  *    prior written permission. For written permission, please  
    30  *    contact org@kannel.org. 
    32  * 5. Products derived from this software may not be called "Kannel", 
    33  *    nor may "Kannel" appear in their name, without prior written 
    34  *    permission of the Kannel Group. 
    36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 
    37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
    38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
    39  * DISCLAIMED.  IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 
    40  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,  
    41  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT  
    42  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR  
    43  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  
    44  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE  
    45  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  
    46  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    47  * ==================================================================== 
    49  * This software consists of voluntary contributions made by many 
    50  * individuals on behalf of the Kannel Group.  For more information on  
    51  * the Kannel Group, please see <http://www.kannel.org/>. 
    53  * Portions of this software are based upon software originally written at  
    54  * WapIT Ltd., Helsinki, Finland for the Kannel project.  
    58  * smpp_pdu.def - definitions of SMPP PDU structure
    61  * Daniel Lukic <lukic@vivatech.de>:
    62  *     Initial optional parameters implementation.
    63  * Alexander Malysh <a.malysh@centrium.de>:
    64  *     Extended optional parameters implementation.
    65  * Stipe Tolj <stolj at kannel.org>:
    66  *     Adding SMPP v5.0 PDUs
    70 #include "smpp_pdu_opt.def"
    74 #error Macro PDU not defined.
    78 #error Macro INTEGER not defined.
    82 #error Macro NULTERMINATED not defined.
    86 #error Macro OCTETS not defined.
    89 #ifndef OPTIONAL_BEGIN
    90 #error Macro OPTIONAL_BEGIN not defined.
    94 #error Macro TLV_INTEGER not defined.
    97 #ifndef TLV_NULTERMINATED
    98 #error Macro TLV_NULTERMINATED not defined.
   102 #error Macro TLV_OCTETS not defined.
   106 #error Macro OPTIONAL_END not defined.
   110  * All SMPP PDUs have a common header consisting of four integers.
   111  * The first integer, command_length, is dealt with implicitly by
   112  * the I/O stuff, so we don't store it in the PDU data structure.
   113  * The other three are defined in the HEADER macro.
   116 #error Macro HEADER was already defined.
   119     INTEGER(command_id, 4) \
   120     INTEGER(command_status, 4) \
   121     INTEGER(sequence_number, 4)
   124  * PDUs defined in SMPP v3.4
   126 PDU(bind_transmitter,
   129     NULTERMINATED(system_id, 16)
   130     NULTERMINATED(password, 9)
   131     NULTERMINATED(system_type, 13)
   132     INTEGER(interface_version, 1)
   135     NULTERMINATED(address_range, 41)
   138 PDU(bind_transmitter_resp,
   141     NULTERMINATED(system_id, 16)
   143     TLV_INTEGER(sc_interface_version, 1)
   150     NULTERMINATED(system_id, 16)
   151     NULTERMINATED(password, 9)
   152     NULTERMINATED(system_type, 13)
   153     INTEGER(interface_version, 1)
   156     NULTERMINATED(address_range, 41)
   159 PDU(bind_receiver_resp,
   162     NULTERMINATED(system_id, 16)
   164     TLV_INTEGER(sc_interface_version, 1)
   168 PDU(bind_transceiver,
   171     NULTERMINATED(system_id, 16)
   172     NULTERMINATED(password, 9)
   173     NULTERMINATED(system_type, 13)
   174     INTEGER(interface_version, 1)
   177     NULTERMINATED(address_range, 41)
   180 PDU(bind_transceiver_resp,
   183     NULTERMINATED(system_id, 16)
   185     TLV_INTEGER(sc_interface_version, 1)
   192     NULTERMINATED(system_id, 16)
   193     NULTERMINATED(password, 9)
   214     NULTERMINATED(service_type, 6)
   215     INTEGER(source_addr_ton, 1)
   216     INTEGER(source_addr_npi, 1)
   217     NULTERMINATED(source_addr, 21)
   218     INTEGER(dest_addr_ton, 1)
   219     INTEGER(dest_addr_npi, 1)
   220     NULTERMINATED(destination_addr, 21)
   221     INTEGER(esm_class, 1)
   222     INTEGER(protocol_id, 1)
   223     INTEGER(priority_flag, 1)
   224     NULTERMINATED(schedule_delivery_time, 17)
   225     NULTERMINATED(validity_period, 17)
   226     INTEGER(registered_delivery, 1)
   227     INTEGER(replace_if_present_flag, 1)
   228     INTEGER(data_coding, 1)
   229     INTEGER(sm_default_msg_id, 1)
   230     INTEGER(sm_length, 1)
   231     OCTETS(short_message, sm_length)
   233     /* defined in SMPP v3.4 */
   234     TLV_INTEGER(user_message_reference, 2)
   235     TLV_INTEGER(source_port, 2)
   236     TLV_INTEGER(source_addr_subunit, 1)
   237     TLV_INTEGER(destination_port, 2)   /* renamed to 'dest_port' in SMPP v5.0 ?? */
   238     TLV_INTEGER(dest_addr_subunit, 1)
   239     TLV_INTEGER(sar_msg_ref_num, 2)
   240     TLV_INTEGER(sar_total_segments, 1)
   241     TLV_INTEGER(sar_segment_seqnum, 1)
   242     TLV_INTEGER(more_messages_to_send, 1)
   243     TLV_INTEGER(payload_type, 1)
   244     TLV_OCTETS(message_payload, 0, 65536)
   245     TLV_INTEGER(privacy_indicator, 1)
   246     TLV_OCTETS(callback_num, 4, 19)
   247     TLV_INTEGER(callback_num_pres_ind, 1)
   248     TLV_OCTETS(callback_num_atag, 0, 65)
   249     TLV_OCTETS(source_subaddress, 2, 23)
   250     TLV_OCTETS(dest_subaddress, 2, 23)
   251     TLV_INTEGER(user_response_code, 1)
   252     TLV_INTEGER(display_time, 1)
   253     TLV_INTEGER(sms_signal, 2)
   254     TLV_INTEGER(ms_validity, 1)
   255     TLV_INTEGER(ms_msg_wait_facilities, 1)
   256     TLV_INTEGER(number_of_messages, 1)
   257     TLV_INTEGER(alert_on_message_delivery, 0)
   258     TLV_INTEGER(language_indicator, 1)
   259     TLV_INTEGER(its_reply_type, 1)
   260     TLV_OCTETS(its_session_info, 2, 2)
   261     TLV_OCTETS(ussd_service_op, 1, 1)
   262     /* added in SMPP v5.0 */
   263     TLV_OCTETS(billing_identification, 1, 1024)
   264     TLV_INTEGER(dest_addr_np_country, 5)
   265     TLV_OCTETS(dest_addr_np_information, 10, 10)
   266     TLV_INTEGER(dest_addr_np_resolution, 1)
   267     TLV_INTEGER(dest_bearer_type, 1)
   268     TLV_NULTERMINATED(dest_network_id, 65)
   269     TLV_INTEGER(dest_network_type, 1)
   270     TLV_OCTETS(dest_node_id, 6, 6)
   271     TLV_INTEGER(dest_telematics_id, 2)
   272     TLV_INTEGER(qos_time_to_live, 4)
   273     TLV_INTEGER(set_dpf, 1)
   274     TLV_INTEGER(source_bearer_type, 1)
   275     TLV_NULTERMINATED(source_network_id, 65)
   276     TLV_INTEGER(source_network_type, 1)
   277     TLV_OCTETS(source_node_id, 6, 6)
   278     TLV_INTEGER(source_telematics_id, 1)
   285     NULTERMINATED(message_id, 65)
   287    /* added in SMPP v5.0 */
   288     TLV_NULTERMINATED(additional_status_info_text, 256)
   289     TLV_INTEGER(delivery_failure_reason, 1)
   290     TLV_INTEGER(dpf_result, 1)
   291     TLV_OCTETS(network_error_code, 3, 3)
   298     NULTERMINATED(service_type, 6)
   299     INTEGER(source_addr_ton, 1)
   300     INTEGER(source_addr_npi, 1)
   301     NULTERMINATED(source_addr, 21)
   302     INTEGER(number_of_dests, 1)
   303     NULTERMINATED(dest_address_es, 254 * 24)
   304     INTEGER(esm_class, 1)
   305     INTEGER(protocol_id, 1)
   306     INTEGER(priority_flag, 1)
   307     NULTERMINATED(schedule_delivery_time, 17)
   308     NULTERMINATED(validity_period, 17)
   309     INTEGER(registered_delivery, 1)
   310     INTEGER(replace_if_present_flag, 1)
   311     INTEGER(data_coding, 1)
   312     INTEGER(sm_default_msg_id, 1)
   313     INTEGER(sm_length, 1)
   314     OCTETS(short_message, sm_length)
   316     /* defined in SMPP v3.4 */
   317     TLV_INTEGER(user_message_reference, 2)
   318     TLV_INTEGER(source_port, 2)
   319     TLV_INTEGER(source_addr_subunit, 1)
   320     TLV_INTEGER(destination_port, 2)
   321     TLV_INTEGER(dest_addr_subunit, 1)
   322     TLV_INTEGER(sar_msg_ref_num, 2)
   323     TLV_INTEGER(sar_total_segments, 1)
   324     TLV_INTEGER(sar_segment_seqnum, 1)
   325     TLV_INTEGER(payload_type, 1)
   326     TLV_OCTETS(message_payload, 0, 65536)
   327     TLV_INTEGER(privacy_indicator, 1)
   328     TLV_OCTETS(callback_num, 4, 19)
   329     TLV_INTEGER(callback_num_pres_ind, 1)
   330     TLV_OCTETS(callback_num_atag, 0, 65)
   331     TLV_OCTETS(source_subaddress, 2, 23)
   332     TLV_OCTETS(dest_subaddress, 2, 23)
   333     TLV_INTEGER(display_time, 1)
   334     TLV_INTEGER(sms_signal, 2)
   335     TLV_INTEGER(ms_validity, 1)
   336     TLV_INTEGER(ms_msg_wait_facilities, 1)
   337     TLV_INTEGER(alert_on_message_delivery, 0)
   338     TLV_INTEGER(language_indicator, 1)
   339     /* added in SMPP v5.0 */
   340     TLV_OCTETS(billing_identification, 1, 1024)
   341     TLV_INTEGER(dest_addr_np_country, 5)
   342     TLV_OCTETS(dest_addr_np_information, 10, 10)
   343     TLV_INTEGER(dest_addr_np_resolution, 1)
   344     TLV_INTEGER(dest_bearer_type, 1)
   345     TLV_NULTERMINATED(dest_network_id, 65)
   346     TLV_INTEGER(dest_network_type, 1)
   347     TLV_OCTETS(dest_node_id, 6, 6)
   348     TLV_INTEGER(dest_telematics_id, 2)
   349     TLV_INTEGER(its_reply_type, 1)
   350     TLV_OCTETS(its_session_info, 2, 2)
   351     TLV_INTEGER(more_messages_to_send, 1)
   352     TLV_INTEGER(number_of_messages, 1)
   353     TLV_INTEGER(qos_time_to_live, 4)
   354     TLV_INTEGER(set_dpf, 1)
   355     TLV_INTEGER(source_bearer_type, 1)
   356     TLV_NULTERMINATED(source_network_id, 65)
   357     TLV_INTEGER(source_network_type, 1)
   358     TLV_OCTETS(source_node_id, 6, 6)
   359     TLV_INTEGER(source_telematics_id, 1)
   360     TLV_INTEGER(user_response_code, 1)
   364 PDU(submit_multi_resp,
   367     NULTERMINATED(message_id, 65)
   368     INTEGER(no_unsuccess, 1)
   369     //VAR_OCTETS(unsuccess_sme, 6, 27)
   370     //OCTETS(unsuccess_sme, 27)
   372    /* added in SMPP v5.0 */
   373     TLV_NULTERMINATED(additional_status_info_text, 256)
   374     TLV_INTEGER(delivery_failure_reason, 1)
   375     TLV_INTEGER(dpf_result, 1)
   376     TLV_OCTETS(network_error_code, 3, 3)
   383     NULTERMINATED(service_type, 6)
   384     INTEGER(source_addr_ton, 1)
   385     INTEGER(source_addr_npi, 1)
   386     NULTERMINATED(source_addr, 21)
   387     INTEGER(dest_addr_ton, 1)
   388     INTEGER(dest_addr_npi, 1)
   389     NULTERMINATED(destination_addr, 21)
   390     INTEGER(esm_class, 1)
   391     INTEGER(protocol_id, 1)
   392     INTEGER(priority_flag, 1)
   393     NULTERMINATED(schedule_delivery_time, 17)
   394     NULTERMINATED(validity_period, 17)
   395     INTEGER(registered_delivery, 1)
   396     INTEGER(replace_if_present_flag, 1)
   397     INTEGER(data_coding, 1)
   398     INTEGER(sm_default_msg_id, 1)
   399     INTEGER(sm_length, 1)
   400     OCTETS(short_message, sm_length)
   402     /* defined in SMPP v3.4 */
   403     TLV_INTEGER(user_message_reference, 2)
   404     TLV_INTEGER(source_port, 2)
   405     TLV_INTEGER(destination_port, 2) /* renamed to 'dest_port' in SMPP v5.0 ?? */
   406     TLV_INTEGER(sar_msg_ref_num, 2)
   407     TLV_INTEGER(sar_total_segments, 1)
   408     TLV_INTEGER(sar_segment_seqnum, 1)
   409     TLV_INTEGER(user_response_code, 1)
   410     TLV_INTEGER(privacy_indicator, 1)
   411     TLV_INTEGER(payload_type, 1)
   412     TLV_OCTETS(message_payload, 0, 65536)
   413     TLV_OCTETS(callback_num, 4, 19)
   414     TLV_OCTETS(source_subaddress, 2, 23)
   415     TLV_OCTETS(dest_subaddress, 2, 23)
   416     TLV_INTEGER(language_indicator, 1)
   417     TLV_OCTETS(its_session_info, 2, 2)
   418     TLV_OCTETS(network_error_code, 3, 3)
   419     TLV_INTEGER(message_state, 1)
   420     TLV_NULTERMINATED(receipted_message_id, 65)
   421     /* added in SMPP v5.0 */
   422     TLV_OCTETS(callback_num_atag, 0, 65)
   423     TLV_INTEGER(callback_num_pres_ind, 1)
   424     TLV_INTEGER(dest_addr_np_country, 5)
   425     TLV_OCTETS(dest_addr_np_information, 10, 10)
   426     TLV_INTEGER(dest_addr_np_resolution, 1)
   427     TLV_INTEGER(dest_addr_subunit, 1)
   428     TLV_NULTERMINATED(dest_network_id, 65)
   429     TLV_INTEGER(dpf_result, 1)
   430     TLV_INTEGER(its_reply_type, 1)
   431     TLV_INTEGER(source_addr_subunit, 1)
   432     TLV_NULTERMINATED(source_network_id, 65)
   433     TLV_OCTETS(source_node_id, 6, 6)
   434     TLV_OCTETS(ussd_service_op, 1, 1)
   441     NULTERMINATED(message_id, 1)
   443     /* added in SMPP v5.0 */
   444     TLV_NULTERMINATED(additional_status_info_text, 256)
   445     TLV_INTEGER(delivery_failure_reason, 1)
   446     TLV_OCTETS(network_error_code, 3, 3)
   453     NULTERMINATED(service_type, 6)
   454     INTEGER(source_addr_ton, 1)
   455     INTEGER(source_addr_npi, 1)
   456     NULTERMINATED(source_addr, 65)
   457     INTEGER(dest_addr_ton, 1)
   458     INTEGER(dest_addr_npi, 1)
   459     NULTERMINATED(destination_addr, 65)
   460     INTEGER(esm_class, 1)
   461     INTEGER(registered_delivery, 1)
   462     INTEGER(data_coding, 1)
   464     /* defined in SMPP v3.4 */
   465     TLV_INTEGER(source_port, 2)
   466     TLV_INTEGER(source_addr_subunit, 1)
   467     TLV_INTEGER(source_network_type, 1)
   468     TLV_INTEGER(source_bearer_type, 1)
   469     TLV_INTEGER(source_telematics_id, 1)
   470     TLV_INTEGER(destination_port, 2)
   471     TLV_INTEGER(dest_addr_subunit, 1)
   472     TLV_INTEGER(dest_network_type, 1)
   473     TLV_INTEGER(dest_bearer_type, 1)
   474     TLV_INTEGER(dest_telematics_id, 2)
   475     TLV_INTEGER(sar_msg_ref_num, 2)
   476     TLV_INTEGER(sar_total_segments, 1)
   477     TLV_INTEGER(sar_segment_seqnum, 1)
   478     TLV_INTEGER(more_messages_to_send, 1)
   479     TLV_INTEGER(qos_time_to_live, 4)
   480     TLV_INTEGER(payload_type, 1)
   481     TLV_OCTETS(message_payload, 0, 65536)
   482     TLV_INTEGER(set_dpf, 1)
   483     TLV_NULTERMINATED(receipted_message_id, 65)
   484     TLV_INTEGER(message_state, 1)
   485     TLV_OCTETS(network_error_code, 3, 3)
   486     TLV_INTEGER(user_message_reference, 2)
   487     TLV_INTEGER(privacy_indicator, 1)
   488     TLV_OCTETS(callback_num, 4, 19)
   489     TLV_INTEGER(callback_num_pres_ind, 1)
   490     TLV_OCTETS(callback_num_atag, 0, 65)
   491     TLV_OCTETS(source_subaddress, 2, 23)
   492     TLV_OCTETS(dest_subaddress, 2, 23)
   493     TLV_INTEGER(user_response_code, 1)
   494     TLV_INTEGER(display_time, 1)
   495     TLV_INTEGER(sms_signal, 2)
   496     TLV_INTEGER(ms_validity, 1)
   497     TLV_INTEGER(ms_msg_wait_facilities, 1)
   498     TLV_INTEGER(number_of_messages, 1)
   499     TLV_INTEGER(alert_on_message_delivery, 0)
   500     TLV_INTEGER(language_indicator, 1)
   501     TLV_INTEGER(its_reply_type, 1)
   502     TLV_OCTETS(its_session_info, 2, 2)
   503     /* added in SMPP v5.0 */
   504     TLV_OCTETS(billing_identification, 1, 1024)
   505     TLV_INTEGER(dest_addr_np_country, 5)
   506     TLV_OCTETS(dest_addr_np_information, 10, 10)
   507     TLV_INTEGER(dest_addr_np_resolution, 1)
   508     TLV_NULTERMINATED(dest_network_id, 65)
   509     TLV_OCTETS(dest_node_id, 6, 6)
   510     TLV_NULTERMINATED(source_network_id, 65)
   511     TLV_OCTETS(source_node_id, 6, 6)
   512     TLV_OCTETS(ussd_service_op, 1, 1)
   519     NULTERMINATED(message_id, 65)
   521     /* defined in SMPP v3.4 */
   522     TLV_NULTERMINATED(additional_status_info_text, 256)
   523     TLV_INTEGER(delivery_failure_reason, 1)
   524     TLV_INTEGER(dpf_result, 1)
   525     TLV_OCTETS(network_error_code, 3, 3)
   532     NULTERMINATED(message_id, 65)
   533     INTEGER(source_addr_ton, 1)
   534     INTEGER(source_addr_npi, 1)
   535     NULTERMINATED(source_addr, 21)
   541     NULTERMINATED(message_id, 65)
   542     NULTERMINATED(final_date, 17)
   543     INTEGER(message_state, 1)
   544     INTEGER(error_code, 1)
   550     NULTERMINATED(service_type, 6)
   551     NULTERMINATED(message_id, 65)
   552     INTEGER(source_addr_ton, 1)
   553     INTEGER(source_addr_npi, 1)
   554     NULTERMINATED(source_addr, 21)
   555     INTEGER(dest_addr_ton, 1)
   556     INTEGER(dest_addr_npi, 1)
   557     NULTERMINATED(destination_addr, 65)
   568     NULTERMINATED(service_type, 6)
   569     NULTERMINATED(message_id, 65)
   570     INTEGER(source_addr_ton, 1)
   571     INTEGER(source_addr_npi, 1)
   572     NULTERMINATED(source_addr, 21)
   573     NULTERMINATED(schedule_delivery_time, 17)
   574     NULTERMINATED(validity_period, 17)
   575     INTEGER(registered_delivery, 1)
   576     INTEGER(sm_default_msg_id, 1)
   577     INTEGER(sm_length, 1)
   578     OCTETS(short_message, sm_length)
   580     /* added in SMPP v5.0 */
   581     TLV_OCTETS(message_payload, 0, 65536)
   595 PDU(enquire_link_resp,
   600 PDU(alert_notification,
   603     INTEGER(source_addr_ton, 1)
   604     INTEGER(source_addr_npi, 1)
   605     NULTERMINATED(source_addr, 21)
   606     INTEGER(esme_addr_ton, 1)
   607     INTEGER(esme_addr_npi, 1)
   608     NULTERMINATED(esme_addr, 65)
   610     /* defined in SMPP v3.4 */
   611     TLV_INTEGER(ms_availability_status, 1)
   616  * PDUs defined in SMPP v5.0
   621     NULTERMINATED(service_type, 6)
   622     INTEGER(source_addr_ton, 1)
   623     INTEGER(source_addr_npi, 1)
   624     NULTERMINATED(source_addr, 21)
   625     NULTERMINATED(message_id, 65)
   626     INTEGER(priority_flag, 1)
   627     NULTERMINATED(schedule_delivery_time, 17)
   628     NULTERMINATED(validity_period, 17)
   629     INTEGER(registered_delivery, 1)
   630     INTEGER(replace_if_present_flag, 1)
   631     INTEGER(data_coding, 1)
   632     INTEGER(sm_default_msg_id, 1)
   634     TLV_OCTETS(broadcast_area_identifier, 1, 101)
   635     TLV_OCTETS(broadcast_content_type, 3, 3)
   636     TLV_OCTETS(broadcast_rep_num, 3, 3)
   637     TLV_OCTETS(broadcast_frequency_interval, 3, 3)
   639     TLV_INTEGER(alert_on_message_delivery, 0)
   640     TLV_INTEGER(broadcast_channel_indicator, 1)
   641     TLV_OCTETS(broadcast_content_type_info, 1, 254)
   642     TLV_INTEGER(broadcast_message_class, 1)
   643     TLV_OCTETS(broadcast_service_group, 1, 254)
   644     TLV_OCTETS(callback_num, 4, 19)
   645     TLV_OCTETS(callback_num_atag, 0, 65)
   646     TLV_INTEGER(callback_num_pres_ind, 1)
   647     TLV_INTEGER(dest_addr_subunit, 1)
   648     TLV_OCTETS(dest_subaddress, 2, 23)
   649     TLV_INTEGER(destination_port, 2)   /* called 'dest_port' in SMPP v5.0 spec?? */
   650     TLV_INTEGER(display_time, 1)
   651     TLV_INTEGER(language_indicator, 1)
   652     TLV_OCTETS(message_payload, 0, 65536)
   653     TLV_INTEGER(ms_validity, 1)
   654     TLV_INTEGER(payload_type, 1)
   655     TLV_INTEGER(privacy_indicator, 1)
   656     TLV_INTEGER(sms_signal, 2)
   657     TLV_INTEGER(source_addr_subunit, 1)
   658     TLV_INTEGER(source_port, 2)
   659     TLV_OCTETS(source_subaddress, 2, 23)
   660     TLV_INTEGER(user_message_reference, 2)
   664 PDU(broadcast_sm_resp,
   667     NULTERMINATED(message_id, 65)
   669     TLV_INTEGER(broadcast_error_status, 4)
   670     TLV_OCTETS(failed_broadcast_area_identifier, 1, 101)
   674 PDU(query_broadcast_sm,
   677     NULTERMINATED(message_id, 65)
   678     INTEGER(source_addr_ton, 1)
   679     INTEGER(source_addr_npi, 1)
   680     NULTERMINATED(source_addr, 21)
   682     TLV_INTEGER(user_message_reference, 2)
   686 PDU(query_broadcast_sm_resp,
   689     NULTERMINATED(message_id, 65)
   691     TLV_INTEGER(message_state, 1)
   692     TLV_OCTETS(broadcast_area_identifier, 1, 101)
   693     TLV_INTEGER(broadcast_area_success, 1)
   695     TLV_NULTERMINATED(broadcast_end_time, 16)
   696     TLV_INTEGER(user_message_reference, 2)
   700 PDU(cancel_broadcast_sm,
   703     NULTERMINATED(service_type, 6)
   704     NULTERMINATED(message_id, 65)
   705     INTEGER(source_addr_ton, 1)
   706     INTEGER(source_addr_npi, 1)
   707     NULTERMINATED(source_addr, 21)
   709     TLV_OCTETS(broadcast_content_type, 3, 3)
   710     TLV_INTEGER(user_message_reference, 2)
   714 PDU(cancel_broadcast_sm_resp,
   724 #undef OPTIONAL_BEGIN
   726 #undef TLV_NULTERMINATED