osmo-msc/include/osmocom/smpp/smpp.h

32 lines
988 B
C

#pragma once
#include <osmocom/msc/gsm_data.h>
/* Length limits according to SMPP 3.4 spec including NUL-byte: */
#define SMPP_SYS_ID_LEN 15
#define SMPP_PASSWD_LEN 8
enum esme_read_state {
READ_ST_IN_LEN = 0,
READ_ST_IN_MSG = 1,
};
/*! \brief Ugly wrapper. libsmpp34 should do this itself! */
#define SMPP34_UNPACK(rc, type, str, data, len) { \
memset(str, 0, sizeof(*str)); \
rc = smpp34_unpack(type, str, data, len); }
#define PACK_AND_SEND(esme, ptr) pack_and_send(esme, (ptr)->command_id, ptr)
/*! \brief initialize the libsmpp34 data structure for a response */
#define INIT_RESP(type, resp, req) { \
memset((resp), 0, sizeof(*(resp))); \
(resp)->command_length = 0; \
(resp)->command_id = type; \
(resp)->command_status = ESME_ROK; \
(resp)->sequence_number = (req)->sequence_number; }
uint32_t smpp_msgb_cmdid(struct msgb *msg);
int smpp_openbsc_alloc_init(void *ctx);
int smpp_openbsc_start(struct gsm_network *net);