Files
svc.ems/plat/mtp3_old/src/include/mtp3.h
2024-09-27 15:39:34 +08:00

172 lines
4.2 KiB
C

#include "../../../iptrans/src/include/iptrans.h"
#ifdef _INCLUDE_M2UA
#include "../../../m2ua/src/include/m2ua.h"
#endif
#ifndef _MTP3_HEAD_FILE
#define _MTP3_HEAD_FILE
#define _up_message up_message
#define MAX_SS7_MSG_LEN 272
typedef struct up_message{
long dest_ip;
long dpc;
long opc;
BYTE cic[2];
BYTE link;
BYTE sio;
// BYTE len;/* len not include itself */
WORD len;//long message
BYTE msgList[MAX_SS7_MSG_LEN];
}up_message;
typedef struct up_message_2{
long dest_ip;
long dpc;
long opc;
BYTE cic[4];
BYTE link;
BYTE sio; // 13 for BICC
// BYTE len;/* len not include itself */
WORD len;//long message
BYTE msgList[MAX_SS7_MSG_LEN];
}up_message_2;
typedef struct up_buffer /* user part buffer. user part:telephone user part,
isdn user part, and sccp part */
{
BYTE RSub; /* subscript of array msgList for reader */
BYTE WSub; /* subscript of array msgList for writer */
up_message msgNum[256];/* this buffer can storge up to 256
messages */
}up_buffer;
typedef struct up_buffer_2 /* user part buffer. user part:telephone user part,
isdn user part, and sccp part */
{
BYTE RSub; /* subscript of array msgList for reader */
BYTE WSub; /* subscript of array msgList for writer */
up_message_2 msgNum[256];/* this buffer can storge up to 256
messages */
}up_buffer_2;
#define _tup_shm tup_shm
typedef struct tup_shm {
up_buffer TM_Buf;
up_buffer MT_Buf;
} tup_shm;
#define _isup_shm isup_shm
typedef struct isup_shm {
up_buffer IM_Buf;
up_buffer MI_Buf;
} isup_shm;
#define _bicc_shm bicc_shm
typedef struct bicc_shm {
up_buffer_2 IM_Buf;
up_buffer_2 MI_Buf;
} bicc_shm;
#define _sccp_shm sccp_shm
typedef struct sccp_shm {
up_buffer SM_Buf;
up_buffer MS_Buf;
} sccp_shm;
typedef struct iprt1
{
BYTE pad[20] __attribute__((packed));
message_list io_msg __attribute__((packed));
}iprt1;
typedef struct mtp_primitive
{
long pc;
BYTE nw_indicator;
BYTE availability;
}mtp_primitive;
typedef struct primitive_to_tup
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_tup;
typedef struct primitive_to_isup
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_isup;
typedef struct primitive_to_bicc
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_bicc;
typedef struct primitive_to_sccp
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_sccp;
typedef struct mtp3_routing_result
{
BYTE tupMsgOutLink[256];
BYTE isupMsgOutLink[256];
BYTE biccMsgOutLink[256];
BYTE sccpMsgOutLink[256];
}mtp3_routing_result;
#define MTP3DB_CMD 0
#define MTP3DB_SNMMSG 1
#define MTP3DB_SCCPMSG 2
#define MTP3DB_TUPMSG 3
#define MTP3DB_ISUPMSG 4
#define MTP3DB_ERROR 5
#define MTP3DB_EVENT 6
#define MTP3DB_ALLLKON 7
#define MTP3DB_PFHB 8// platform heartbeat
#define MTP3DB_APP_APP_MSG 9// msg from app to app
#define MTP3DB_PRIMITIVE_MSG 10// msg from MTP3 to MTP2
#define MTP3DB_BICCMSG 11
void mtp_shm_init(WORD moduleid_systemid);
//moduleid = 8/9/11 vss/mss/aas
//void iptrans_init();
void mtp3_proc();
int tup_to_mtp3(up_message *msgptr);
int isup_to_mtp3(up_message *msgptr);
int bicc_to_mtp3(up_message_2 *msgptr);
int sccp_to_mtp3(up_message *msgptr);
int sccp_redirect(up_message *msgptr);
int bicc_redirect(up_message_2 *msgptr);
int isup_redirect(up_message *msgptr);
int tup_GetMsg(up_message *msgptr);
int isup_GetMsg(up_message *msgptr);
int bicc_GetMsg(up_message_2 *msgptr);
int sccp_GetMsg(up_message *msgptr);
int sccp_get_SPstate(mtp_primitive *ptr);
int isup_get_SPstate(mtp_primitive *ptr);
int bicc_get_SPstate(mtp_primitive *ptr);
int tup_get_SPstate(mtp_primitive *ptr);
BYTE *spc_to_acn(BYTE netID,DWORD spc);
BYTE mtp3_ansiFlag(BYTE netID);
BYTE *check_MTP3LinkType();
BYTE *check_MTP3LinkL2State();
void MTP3_activate(DWORD ip);
void MTP3_deactivate(DWORD ip);
void MTP3_Enable_SubSystem(BYTE SubSystem);
void MTP3_Disable_SubSystem(BYTE SubSystem);
void mtp3_init_serial(char *Serial);
int mtp3_create_opc(BYTE nw, DWORD opc);
int mtp3_delete_opc(BYTE nw, DWORD opc);
int check_m3ua_rc_verify(DWORD rc);
#endif