172 lines
4.2 KiB
C
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
|