module SMPP_Templates { import from General_Types all; import from SMPP_Types all; template (value) SMPP_header ts_SMPP_hdr(OCT4 command_id, SMPP_error_code status, integer seq := 0) := { command_len := 0, command_id := command_id, command_status := status, seq_num := seq } template SMPP_header tr_SMPP_hdr(template OCT4 command_id, template SMPP_error_code status, template integer seq := ?) := { command_len := ?, command_id := command_id, command_status := status, seq_num := seq } template (value) SMPP_PDU ts_SMPP(OCT4 command_id, SMPP_error_code status, template (value) SMPP_operation_body body) := { header := ts_SMPP_hdr(command_id, status), body := body } template SMPP_PDU tr_SMPP(template OCT4 command_id, template SMPP_error_code status, template integer seq := ?, template SMPP_operation_body body := ?) := { header := tr_SMPP_hdr(command_id, status, seq), body := body } template (value) SMPP_PDU ts_SMPP_BIND_TX(template (value) SMPP_Bind bind) := { header := ts_SMPP_hdr(c_SMPP_command_id_bind_transmitter, ESME_ROK), body := { bind_transmitter := bind } } template SMPP_PDU tr_SMPP_BIND_TX(template (value) SMPP_Bind bind, template integer seq := ?) := { header := tr_SMPP_hdr(c_SMPP_command_id_bind_transmitter, ESME_ROK, seq), body := { bind_transmitter := bind } } template (value) SMPP_PDU ts_SMPP_BIND_TX_resp(SMPP_error_code status, template (value) SMPP_Bind_resp bind) := { header := ts_SMPP_hdr(c_SMPP_command_id_bind_transmitter_resp, status), body := { bind_transmitter_resp := bind } } template (value) SMPP_PDU ts_SMPP_BIND_RX(template (value) SMPP_Bind bind) := { header := ts_SMPP_hdr(c_SMPP_command_id_bind_receiver, ESME_ROK), body := { bind_receiver := bind } } template SMPP_PDU tr_SMPP_BIND_RX(template (value) SMPP_Bind bind, template integer seq := ?) := { header := tr_SMPP_hdr(c_SMPP_command_id_bind_receiver, ESME_ROK, seq), body := { bind_receiver := bind } } template (value) SMPP_PDU ts_SMPP_BIND_RX_resp(SMPP_error_code status, template (value) SMPP_Bind_resp bind) := { header := ts_SMPP_hdr(c_SMPP_command_id_bind_receiver_resp, status), body := { bind_receiver_resp := bind } } template (value) SMPP_PDU ts_SMPP_BIND_TRX(template (value) SMPP_Bind bind) := { header := ts_SMPP_hdr(c_SMPP_command_id_bind_transceiver, ESME_ROK), body := { bind_transceiver := bind } } template SMPP_PDU tr_SMPP_BIND_TRX(template (value) SMPP_Bind bind, template integer seq := ?) := { header := tr_SMPP_hdr(c_SMPP_command_id_bind_transceiver, ESME_ROK, seq), body := { bind_transceiver := bind } } template (value) SMPP_PDU ts_SMPP_BIND_TRX_resp(SMPP_error_code status, template (value) SMPP_Bind_resp bind) := { header := ts_SMPP_hdr(c_SMPP_command_id_bind_transceiver_resp, status), body := { bind_transceiver_resp := bind } } template (value) SMPP_PDU ts_SMPP_ENQ_LINK := { header := ts_SMPP_hdr(c_SMPP_command_id_enquire_link, ESME_ROK), body := { enquire_link := {} } } template (value) SMPP_PDU ts_SMPP_ENQ_LINK_resp := { header := ts_SMPP_hdr(c_SMPP_command_id_enquire_link_resp, ESME_ROK), body := { enquire_link_resp := {} } } template (value) SMPP_PDU ts_SMPP_DELIVER_SM_resp(SMPP_error_code status, integer seq) := { header := ts_SMPP_hdr(c_SMPP_command_id_deliver_sm_resp, status, seq), body := { deliver_sm_resp := { message_id := "", /* unused */ opt_pars := omit } } } template (value) SMPP_PDU ts_SMPP_SUBMIT_SM(SMPP_SM sm) := { header := ts_SMPP_hdr(c_SMPP_command_id_submit_sm, ESME_ROK), body := { submit_sm := sm } } /* Section 5.2.12 esm_class */ template SMPP_BIT1 tr_ESM_CLASS_DEFAULT := '??????00'B; template SMPP_BIT1 tr_ESM_CLASS_DATAGRAM := '??????01'B; template SMPP_BIT1 tr_ESM_CLASS_TRANSACTION := '??????10'B; template SMPP_BIT1 tr_ESM_CLASS_STORE_FORWARD := '??????11'B; template SMPP_BIT1 tr_ESM_CLASS_UDHI := '?1??????'B; template SMPP_BIT1 tr_ESM_CLASS_REPLYP_PATH := '1???????'B; }