selfcare init

This commit is contained in:
zhangsz
2025-03-03 11:40:37 +08:00
parent 19f09dd7ea
commit aca2bace68
692 changed files with 273972 additions and 0 deletions

53
proxy_c/pstn_cli/Makefile Normal file
View File

@@ -0,0 +1,53 @@
MODULE = pstncli
TYPE = plat
DBUG_FLAGS_ADD =
RELS_FLAGS_ADD =
##Default commonly as below
BUILD = lib
CFG = debug
PLT_LIB = -DDEBUG
APP_LIB =
LIB_ADD =
SRC_PATH = ./src
INC_PATH = ./src/include
PLT_PATH = ../../plat
APP_PATH = ../../mss
OBJ_ADD =
TEST_OBJ_PATH =
PREPROC_CMD =
POSTPROC_CMD =
##---------------------------------------------------------------------##
##--------------------------------------
##
## Make configuration(Customer define)
##
##--------------------------------------
## CCFLAG_SWITCH = on/off => gcc flag show on/off
## COVER_NEED = yes/no => PTF cover report needed
## COVER_REPORT_PATH = [path ] => PTF cover report path
CCFLAG_SWITCH = off
COVER_NEED = no
COVER_REPORT_PATH = ./output
##---------------------------------------------------------------------##
##--------------------------------------
##
## include makefile.rules (Do not change)
##
##--------------------------------------
include ./scripts/Makefile.rules

View File

@@ -0,0 +1,342 @@
##----------------------------------------------------------##
## ##
## Universal Makefile Rules ##
## ##
## Created : Wei Liu 07/03/07 ##
## Revision: [Last]Wei Liu 07/07/07 ##
## ##
##----------------------------------------------------------##
UMAKE_VERSION := V2.0
##-------------------------------------
##
## Work Directory : /usr/local/include
## Default Target : all
##
##-------------------------------------
default: all
.PHONY: all clean rebuild test indent splint doc \
dir config check bk lsbk rmbk unzip umakever usage\
FORCE
.SUFFIXES:
umakever:
@echo "Universal Makefile (UMake) Version: $(UMAKE_VERSION)"
##--------------------------------------
##
## Makefile CFG defination check
##
##--------------------------------------
ifeq "$(MODULE)" ""
$(error Please input the module name (MODULE = )in makefile. )
endif
ifeq "$(CFG)" ""
CFG=debug
$(warnning No configuration specified for CFG. Defaulting to $(MODULE) - debug. )
endif
ifeq "$(BUILD)" ""
BUILD=lib
$(warnning No configuration specified for BUILD. Defaulting to create lib$(MODULE).a. )
endif
ifeq "$(SRC_PATH)" ""
SRC_PATH=.
$(warnning No configuration specified for SRC_PATH. Defaulting to ./. )
endif
COVER_NEED ?= no
PLT_PATH ?= ../../plat
APP_PATH ?= ../../app
TYPE ?= plat
##--------------------------------------
##
## Gcc Flag for debug or release
##
##--------------------------------------
CC := gcc
GCC_CFLAGS := -Wall -MM
AR_LINK := ar -r
RELS_FLAGS_ADD += -DNDEBUG
RELEASE_CFLAGS += -g -Wall -I. $(RELS_FLAGS_ADD) -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient
RELEASE_LINK_CFLAGS = -g $(RELS_FLAGS_ADD) -o
DEBUG_CFLAGS += -g -Wall -rdynamic -DDEBUG -I. $(DBUG_FLAGS_ADD) -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient -I/usr/include/openssl
DEBUG_LINK_CFLAGS = -g -rdynamic -DDEBUG -o
ifeq "$(COVER_NEED)" "yes"
DEBUG_CFLAGS += -fprofile-arcs -ftest-coverage -pg
endif
GCC_CFLAGS=$(DEBUG_CFLAGS)
GCC_LINK_CFLAGS=$(DEBUG_LINK_CFLAGS)
##--------------------------------------
##
## Project setting
##
##--------------------------------------
OBJDIR:=./obj
LIBDIR:=./lib
UTDIR :=./ut
DOCDIR:=./doc
DIRBUILD=$(OBJDIR)
ifeq "$(BUILD)" "lib"
BINDIR:=./bin
OUTFILE=$(LIBDIR)/lib$(MODULE).a
DIRNEED=$(UTDIR) $(DOCDIR)
DIRBUILD+=$(LIBDIR)
else
BINDIR:=.
OUTFILE=$(BINDIR)/$(MODULE)
DIRNEED=
DIRBUILD+=$(BINDIR)
endif
##--------------------------------------
##
## source , object and dependencies files
##
##--------------------------------------
SRC_SUBDIR := $(shell find $(SRC_PATH) -type d)
vpath %.c $(SRC_SUBDIR)
vpath %.o $(OBJDIR)
vpath %.d $(OBJDIR)
SRC_FULL_PATH = $(foreach dir,$(SRC_SUBDIR),$(wildcard $(dir)/*.c))
SRC_FILES = $(foreach file, $(notdir $(SRC_FULL_PATH)) ,$(OBJDIR)/$(file))
COMMON_OBJ = $(SRC_FILES:%.c=%.o)
TEST_OBJ_PATH ?= ../../obj
TEST_OBJ = $(foreach dir,$(TEST_OBJ_PATH),$(wildcard $(dir)/*.o))
OBJ=$(COMMON_OBJ) $(OBJ_ADD)
ALL_OBJ := $(OBJ) $(TEST_OBJ)
##--------------------------------------
##
## Lib setting
##
##--------------------------------------
ifeq "$(COVER_NEED)" "yes"
LIBCOVER=-lgcov
endif
MODULE_PLT_LIB=$(foreach lib,$(PLT_LIB), -L$(PLT_PATH)/$(lib)/lib/ -l$(lib) )
MODULE_PLT_LIB+=-lm
MODULE_APP_LIB=$(foreach lib,$(APP_LIB),-L$(APP_PATH)/$(lib)/lib -l$(lib))
##--------------------------------------
##
## Rules
##
##--------------------------------------
CCFLAG_SWITCH ?= off
CC_COMPILE =$(CC) $(GCC_CFLAGS) -c $< -o $@
CC_PRG_LINK=$(CC) $(GCC_LINK_CFLAGS) $(OUTFILE) $(ALL_OBJ) $(LIBCOVER) $(MODULE_APP_LIB) $(MODULE_PLT_LIB) $(LIB_ADD)
CC_LIB_LINK=$(AR_LINK) $(OUTFILE) $(ALL_OBJ)
COMPILE=$(CC_COMPILE)
PRG_LINK=$(CC_PRG_LINK)
LIB_LINK=$(CC_LIB_LINK)
ifeq "$(BUILD)" "exef"
LINK=$(PRG_LINK)
else
LINK=$(LIB_LINK)
endif
# Build rules
all: preproc start dir $(ALL_OBJ) #prtdebug
@echo Linking :$(OUTFILE)
ifeq "$(CCFLAG_SWITCH)" "off"
@$(LINK)
else
$(LINK)
endif
@$(POSTPROC_CMD)
@echo -e "\n================================================================================\n"
sinclude $(DEPENDS)
release : CC_COMPILE =$(CC) $(RELEASE_CFLAGS) -c $< -o $@
release : CC_PRG_LINK=$(CC) $(RELEASE_LINK_CFLAGS) $(OUTFILE) $(ALL_OBJ) $(MODULE_APP_LIB) $(MODULE_PLT_LIB) $(LIB_ADD)
release : all
##--------------------------------------
##
## Make command to use for dependencies
##
##--------------------------------------
MAKE :=make
RM :=rm
MKDIR :=mkdir
preproc:
@$(PREPROC_CMD)
start:
@echo -e "\n================================================================================\n"
@echo "[Building Project]: $(notdir $(MODULE))"
ifeq "$(CCFLAG_SWITCH)" "off"
@echo "Show Gcc Flags switch = OFF"
endif
prtdebug:
@echo "$(MODULE)-$(BUILD)[$(CFG)] build source file:" "$(SRC_FULL_PATH)"
@echo SRC_SUBDIR: $(SRC_SUBDIR)
@echo SRC_FULL_PATH : $(SRC_FULL_PATH)
@echo SRC_FILES : $(SRC_FILES)
@echo ALL_OBJ : $(ALL_OBJ)
@echo LIB:$(MODULE_PLT_LIB)
@echo PLT_LIB: $(PLT_LIB)
@echo CCFLAG_SWITCH :$(CCFLAG_SWITCH)
config: dir
dir:
@$(foreach dir,$(DIRNEED),$(MKDIR) -p $(DIRNEED) --mode=0777; )
@$(foreach dir,$(DIRBUILD),$(MKDIR) -p $(dir) --mode=0777; )
##--------------------------------------
##
## Make Rebuild and clean
##
##--------------------------------------
ifneq "$(PROJ)" ""
FRIEND_PROJ := $(shell )
endif
jumprebuild:
ifneq "$(PROJ)" ""
@cd $(FRIEND_PROJ); mak rebuild ; cd -
endif
# Rebuild this project
rebuild: jumprebuild cleanall all
# Clean this project and all dependencies
cleanall: clean
# Clean this project
clean:
@echo -e "||--------------------------------------------------------------- "
@echo -e "|| Umake clean gcc , lcov, doxygen generated and temporary files. "
@echo -e "||--------------------------------------------------------------- "
@$(RM) -rf $(OBJDIR) $(OUTFILE) $(COVER_REPORT_PATH) ./doc/doxygen.conf ./doc/html ./doc/latex ./doc/rtf $(foreach dir,$(SRC_SUBDIR),$(dir)/*~)
##--------------------------------------
##
## indent Makefile.indent
##
##--------------------------------------
include Makefile.indent
indent:
@chmod 777 $(SRC_FULL_PATH)
@echo ===================================Indent START=================================
@echo
@echo "[Indent source file ]: $(SRC_FULL_PATH)"
$(call MAKE_INDENT , $(SRC_FULL_PATH))
##--------------------------------------
##
## splint makefile.splint
##
##--------------------------------------
include Makefile.splint
SPLINT_FLAG_SWITCH ?= off
splint:
@chmod 777 $(SRC_FULL_PATH)
@echo =================================Splint START==================================
@echo
ifeq "$(SPLINT_FLAG_SWITCH)" "on"
@echo "[Splint flags ]: $(SPLINT_FLAGS)"
endif
@echo "[Lint Clean Project]: $(notdir $(MODULE))"
$(call MAKE_SPLINT, $(SRC_FULL_PATH))
##--------------------------------------
##
## doc Makefile.doxygen
##
##--------------------------------------
include Makefile.doxygen
doc:
@chmod 777 $(SRC_FULL_PATH)
@echo ==================================Doxygen START=================================
@echo
$(call MAKE_DOC, $(SRC_FULL_PATH))
##--------------------------------------
##
## backup Makefile.backup
##
##--------------------------------------
include Makefile.backup
##--------------------------------------
##
## cov Makefile.cov
##
##--------------------------------------
include Makefile.cov
##--------------------------------------
##
## usage Makefile.usage
##
##--------------------------------------
include Makefile.usage
##--------------------------------------
##
## Make dependencies
##
##--------------------------------------
$(OBJDIR)/%.d:%.c
@$(CC) $< -MM -MD -o $@
$(OBJDIR)/%.o:%.c
ifeq "$(CCFLAG_SWITCH)" "off"
@echo -e "building: $(notdir $@) \t\t\t\t please wait ..."
@$(COMPILE)
else
$(COMPILE)
endif
DEPENDS=$(COMMON_OBJ:.o=.d)
##--------------------------------------
##
## Make force
##
##--------------------------------------
FORCE:

View File

@@ -0,0 +1,199 @@
#ifndef _PSTN_CLIENT_H
#define _PSTN_CLIENT_H
#define MAX_COMMAND_LEN 2048
#define MAX_PSTN_PROCS 8
#define MSG_TIMER 6000
#define MSG_WAIT_TIMER 400
#define MSG_WAIT_LTIMER 1600
#define MAX_SLOTS 100
typedef struct msan_param_t
{
u_char server_enable;
char server_ip[16];
u_short server_port;
char user_name[16];
char password[16];
}_msan_param_t;
typedef struct pair_2_slot_param_t
{
int used;
int pair_group; /* every 64 pairs is a group */
int msan_id; /*1/2 */
int slot_id; /* paris are mapped to : slot+port */
}_pair_2_slot_param_t;
typedef struct pstn_server_param_t
{
char local_ip[16];
u_short local_port;
u_char server_enable;
char server_ip[16];
u_short server_port;
char user_name[16];
char password[16];
int krone_pair_id_in_crm;
int ss_entry_id_in_crm;
_msan_param_t msan[2];
_pair_2_slot_param_t pair_slot_info[MAX_SLOTS];
}_pstn_server_param_t;
typedef enum PORT_STATE
{
PS_NULL,
PS_CREATE,
PS_UPDATE,
PS_DELETE,
PS_BAR_OUT,
PS_UNBAR_OUT,
PS_BAR_IN,
PS_UNBAR_IN,
PS_CREATE_MSAN,
PS_DELETE_MSAN,
PS_RELEASE,
}_PORT_STATE;
typedef enum PORT_CRT_STATE
{
PCS_NULL,
PCS_INIT,
PCS_ECHO,
PCS_LOGIN,
PCS_PSSWD,
PCS_NOGUI,
PCS_QUERY_DSTN,
PCS_ENTRY,
PCS_STATION,
PCS_DSTN,
PCS_NAME,
PCS_SIGNAL,
PCS_SIP_USER,
PCS_VOIP_GRP,
PCS_TOLL,
PCS_EXTI,
PCS_ACTIVE,
PCS_LOGOUT,
PCS_LOGOUT_AGAIN,
PCS_TRANS_TO_MSAN,
// PCS_ENTRY,
// PCS_VOIP_GRP,
PCS_MAX,
}_PORT_CRT_STATE;
typedef enum PORT_UPDATE_STATE
{
PUS_NULL,
PUS_INIT,
PUS_LOGIN,
PUS_PSSWD,
PUS_NOGUI,
PUS_DSTN,
PUS_TOLL,
PUS_LOCKI,
PUS_EXTI,
PUS_ACTIVATE,
PUS_LOGOUT,
PUS_MAX,
}_PORT_UPDATE_STATE;
typedef enum PORT_DEL_STATE
{
PDS_NULL,
PDS_INIT,
PDS_LOGIN,
PDS_PSSWD,
PDS_NOGUI,
PDS_DSTN,
PDS_ENTRY,
PDS_DEL,
PDS_EXTI,
PDS_LOGOUT,
PDS_LOGOUT_AGAIN,
PDS_MAX,
}_PORT_DEL_STATE;
typedef enum MSAN_CRT_STATE
{
MCS_NULL,
MCS_INIT,
MCS_ECHO,
MCS_LOGIN,
MCS_PSSWD,
MCS_CREATE,
MCS_BRING_UP,
MCS_SAVE,
MCS_EXIT,
MCS_WAIT_EXIT,
MCS_MAX,
}_MSAN_CRT_STATE;
typedef enum MSAN_DEL_STATE
{
MDS_NULL,
MDS_INIT,
MDS_LOGIN,
MDS_PSSWD,
MDS_DELETE,
MDS_BRING_DOWN,
MDS_SAVE,
MDS_LOGOUT,
MDS_MAX,
}_MSAN_DEL_STATE;
typedef enum PSTN_PROV_CMD
{
PC_NULL,
PC_CREATE,
PC_UPDATE,
PC_DELETE,
PC_BAR,
PC_UNBAR,
}_PSTN_PROV_CMD;
typedef struct pstn_prov_t
{
int command;
long pre_id;
char isdn_number[16];
char user_name[64];
int ss_entry;
int krone_pair_id;
int msan_id;
int msan_slot_id;
int msan_slot_port_id;
int update_status;
}_pstn_prov_t;
typedef struct pstn_proc_t
{
char flag;
int id;
int tcp_port_id;
int state;
int sub_state;
int timer;
int dstn_entry;
int recv_msg_flag;
int msg_len;
char recv_msg[MAX_COMMAND_LEN];
_pstn_prov_t prov;
}_pstn_proc_t;
typedef struct pstn_procs_t
{
_pstn_proc_t procs[MAX_PSTN_PROCS];
}_pstn_procs_t;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,133 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <malloc.h>
#include <netdb.h>
#include <fcntl.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define BUF_SIZE 1024
#define RES_LENGTH 10240
static int client_fd=0;
static int client_connect_flag = -1;
static char server_ip[16];
static short server_port;
int connect_socket(char * server,int serverPort);
int send_msg(int sockfd,char * sendBuff);
char * recv_msg(int sockfd);
int close_socket(int sockfd);
int init_socketfd()
{
int sockfd = -1;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){
herror("Init socket error!");
}
return sockfd;
}
void tcp_init_client_fd()
{
client_fd = init_socketfd();
}
void tcp_connect_server(char *ip, u_short port)
{
tcp_init_client_fd();
strcpy(server_ip, ip);
server_port = port;
client_connect_flag = connect_socket(ip, port);
}
int is_tcp_connected()
{
return client_connect_flag;
}
/* * ********************************************************/
int connect_socket(char * server,int serverPort)
{
struct sockaddr_in addr;
struct hostent * phost;
bzero(&addr,sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(serverPort);
addr.sin_addr.s_addr = inet_addr(server);
if(addr.sin_addr.s_addr == INADDR_NONE){
phost = (struct hostent*)gethostbyname(server);
if(phost==NULL){
herror("Init socket s_addr error!");
return -1;
}
addr.sin_addr.s_addr =((struct in_addr*)phost->h_addr)->s_addr;
}
if(connect(client_fd,(struct sockaddr*)&addr, sizeof(addr))<0)
{
// perror("Connect server fail!");
return -1; //0<><30>ʾ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>-1<><31>ʾʧ<CABE><CAA7>
}
else
return 0;
}
int tcp_send_msg( u_char *sendbuf, short len)
{
int sendSize=0;
if((sendSize=send(client_fd,sendbuf,len,MSG_NOSIGNAL))<=0){
close_socket(client_fd);
herror("Send msg error!");
return -1;
}
return sendSize;
}
int tcp_recv_msg(u_char *recvbuf)
{
int recLenth=0;
if(( recLenth=recv(client_fd,recvbuf, BUF_SIZE,0))==-1 )
{
close_socket(client_fd);
return -1;
}
if( recLenth>0)
recvbuf[recLenth] = 0;
return recLenth;
}
int tcp_check_connection()
{
//if(client_connect_flag == -1)
// connect_socket(server_ip, server_port);
return client_connect_flag;
}
/**************************************************
*<2A>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
* **********************************************/
int close_socket(int sockfd)
{
client_connect_flag = -1;
close(sockfd);
smcli_connection_is_broken();
return 0;
}