⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.c

📁 基于h323协议的软phone
💻 C
📖 第 1 页 / 共 4 页
字号:
void logtest()
{
	int iRet;
	char logName[128];

	printf("\nrv_log_mask=%d\n", RV_LOGMASK_COMPILEMASK);

	printf("log level:%d\n", msGetDebugLevel());

	iRet = msGetLogFilename(128, logName);
	printf("log file get ret:%d, name:%s\n", iRet, logName);

	msAdd("BORDERCHAN");
	msAdd("Q931");
	msAdd("CHANNELS");
	msAdd("RA");
	msAdd("CM");
	msAdd("RAS");
	msAdd("CMAPI");
	msAdd("RTP");
	msAdd("CMAPICB");
	msAdd("SELI");
	msAdd("CMERR");
	msAdd("SSAPI");
	msAdd("CONF");
	msAdd("SSAPICB");
	msAdd("ETIMER");
	msAdd("SSCHAN");
	msAdd("LI");
	msAdd("SSEAPI");
	msAdd("LIINFO");
	msAdd("SSEAPICB");
	msAdd("LOOPBACK");
	msAdd("SSERR");
	msAdd("PER");
	msAdd("VT");
	msAdd("PERERR");	
}
#endif
static void Log_Print(IN char* line,...)
{
	static char logprint[1024];

	/* Not windows - just use printf to terminal */
	va_list v;
	va_start(v, line);
	printf("rvwpLog:");
	vprintf(line, v);

	va_end(v);
}

extern void Initrvwp();

void LogInit(void)
{
    /* Set the stack's logging callback to the application's event handler */
    msSetStackNotify(Log_Print);
}

#ifdef INCLUDE_RV_RTP
extern RvUint32 rtp_start_time;
#endif
#if 0
int stopStack()
{
	int status;
	status = cmStop(hApp);
	printf("stop the stack %s\n", (status>=0)?"ok":"error");
	/*taskDelay(100);*/
	return 1;
}

int startStack()
{
	int status;
	status = cmStart(hApp);
	printf("start the stack %s\n", (status>=0)?"ok":"error");
	/*taskDelay(100);*/
	return 1;
}

void endStack()
{
	int status = cmEnd(hApp);
	printf("cmEnd() return = %d\n", status);
}
#endif
#if 0
void reStack()
{
	int status;
	configRv();
	/* Initialize the stack */
	status = cmInitialize(bufConfig,&hApp);
	printf("in reinitStack(), hApp = 0x%x\n", hApp);
	if (status < 0)
	{
		switch (status)
		{
			case -2: printf("Resource problem\n"); break;
			case -10: printf("Memory problem\n"); break;
			case -11: printf("Configuration problem\n"); break;
			case -13: printf("Network problem\n"); break;
			default: printf("Unknown problem = %d\n", status); break;
		}
	}
	endConfig();
}
#endif


int reinitStack(void)
{
	int status;
	SCMEVENT                        cmEvent;
	SCMCALLEVENT                    cmCallEvent;
	SCMCHANEVENT                    cmChanEvent;
	SCMCONTROLEVENT                 cmControlEvent;
	SCMPROTOCOLEVENT                cmProtocolEvent;
	SCMRASEVENT                     cmRasEvent;
	SCMAUTORASEVENT                 cmAutoRasEvent;
	cmElem* app = (cmElem*)hApp;
	
	configRv();
	/* Initialize the stack */
	status = cmInitialize(bufConfig,&hApp);
	 /* Start with the configuration */
	if (status < 0)
	{
		switch (status)
		{
			case -2: printf("Resource problem\n"); break;
			case -10: printf("Memory problem\n"); break;
			case -11: printf("Configuration problem\n"); break;
			case -13: printf("Network problem\n"); break;
			default: printf("Unknown problem = %d\n", status); break;
		}
		return status;
	}
	endConfig();

#if 1
#ifdef INCLUDE_RV_RTP

	status = rtpInit();
	if (status < 0)
	{
		printf("rtpInit error:%d\n", status);
		return status;
	}
#if 1

	status = rtcpInit();
	if (status < 0)
	{
		printf("rtcpInit error:%d\n", status);
		return status;
	}
#endif
	rtp_start_time = timerGetTimeInSeconds();
#endif
#endif
    /* Initialize supserv (does nothing if not h450 enabled) 
    status = H450_init((char *)CONFIG_FILE,hApp);
    if (status < 0) return status*/;

    /* Initialize OSP (does nothing if not OSP enabled)
    status = OSP_TestInit(hApp);
    if (status < 0) return status */;

    /* Initialize rtp/rtcp (does nothing if not enabled) 
    RTP_TestInit()*/;

    /* Initialize security (does nothing if not security enabled)
    SEC_init(hApp); */

    /* Initialize MIB support 
    SNMP_init();*/
 
    memset(&cmEvent, 0, sizeof(SCMEVENT));
    cmEvent.cmEvNewCall     = cmEvNewCall;
    UNUSED_HANDLE(cmEvent.cmEvRegEvent);
    cmSetGenEventHandler(hApp,&cmEvent,sizeof(SCMEVENT));

    memset (&cmCallEvent,0,sizeof(SCMCALLEVENT));
    cmCallEvent.cmCallNonStandardParam      = NULL; /*Obsolete. Stack never calls it */
    UNUSED_HANDLE(cmCallEvent.cmEvCallAdditionalAddress);
    cmCallEvent.cmEvCallFacility            = wpcmEvCallFacility;
    UNUSED_HANDLE(cmCallEvent.cmEvCallFastStart);
    /*cmCallEvent.cmEvCallFastStartSetup      = cmEvCallFastStartSetup;*/
/*#ifdef USE_H450
    cmCallEvent.cmEvCallH450SupplServ       = cmEvCallH450SupplServ;
#endif*/
    UNUSED_HANDLE(cmCallEvent.cmEvCallIncompleteAddress);
    /*cmCallEvent.cmEvCallInfo                = cmEvCallInfo;*/
    UNUSED_HANDLE(cmCallEvent.cmEvCallNewAnnexLMessage);
    UNUSED_HANDLE(cmCallEvent.cmEvCallNewAnnexMMessage);
    UNUSED_HANDLE(cmCallEvent.cmEvCallNewRate);
    /*cmCallEvent.cmEvCallNotify              = cmEvCallNotify;*/
    cmCallEvent.cmEvCallProgress            = cmEvCallProgress;
    cmCallEvent.cmEvCallRecvMessage         = cmEvCallRecvMessage;
    cmCallEvent.cmEvCallSendMessage         = cmEvCallSendMessage;
    cmCallEvent.cmEvCallStateChanged        = cmEvCallStateChanged;
   /* cmCallEvent.cmEvCallStatus              = cmEvCallStatus;
    cmCallEvent.cmEvCallTunnNewMessage      = cmEvCallTunnNewMessage;*/
    cmCallEvent.cmEvCallFastStart		= cmEvCallFastStart;
/*    cmCallEvent.cmEvCallUserInfo            = cmEvCallUserInfo;*/
    cmSetCallEventHandler(hApp,&cmCallEvent,sizeof(SCMCALLEVENT));

    memset (&cmChanEvent,0,sizeof(SCMCHANEVENT));
    cmChanEvent.cmEvChannelStateChanged             = cmEvChannelStateChanged;
	cmChanEvent.cmEvChannelSetAddress               = cmEvChannelSetAddress;
	cmChanEvent.cmEvChannelParameters               = cmEvChannelParameters;
/*	cmChanEvent.cmEvChannelReplace                  = cmEvChannelReplace;
    cmChanEvent.cmEvChannelStateChanged             = cmEvChannelStateChanged;
    cmChanEvent.cmEvChannelNewRate                  = cmEvChannelNewRate;
    cmChanEvent.cmEvChannelMaxSkew                  = cmEvChannelMaxSkew;
    cmChanEvent.cmEvChannelSetAddress               = cmEvChannelSetAddress;
    cmChanEvent.cmEvChannelSetRTCPAddress           = cmEvChannelSetRTCPAddress;
    cmChanEvent.cmEvChannelParameters               = cmEvChannelParameters;
    cmChanEvent.cmEvChannelRTPDynamicPayloadType    = cmEvChannelRTPDynamicPayloadType;
    cmChanEvent.cmEvChannelVideoFastUpdatePicture   = cmEvChannelVideoFastUpdatePicture;
    cmChanEvent.cmEvChannelVideoFastUpdateGOB       = cmEvChannelVideoFastUpdateGOB;
    cmChanEvent.cmEvChannelVideoFastUpdateMB        = cmEvChannelVideoFastUpdateMB;
    cmChanEvent.cmEvChannelHandle                   = cmEvChannelHandle;
    cmChanEvent.cmEvChannelGetRTCPAddress           = cmEvChannelGetRTCPAddress;
    cmChanEvent.cmEvChannelRequestCloseStatus       = cmEvChannelRequestCloseStatus;
    cmChanEvent.cmEvChannelTSTO                     = cmEvChannelTSTO;
    cmChanEvent.cmEvChannelMediaLoopStatus          = cmEvChannelMediaLoopStatus;
    cmChanEvent.cmEvChannelReplace                  = cmEvChannelReplace;
    cmChanEvent.cmEvChannelFlowControlToZero        = cmEvChannelFlowControlToZero;
    cmChanEvent.cmEvChannelMiscCommand              = cmEvChannelMiscCommand;
    cmChanEvent.cmEvChannelTransportCapInd          = cmEvChannelTransportCapInd;
    cmChanEvent.cmEvChannelSetNSAPAddress           = cmEvChannelSetNSAPAddress;
    cmChanEvent.cmEvChannelSetATMVC                 = cmEvChannelSetATMVC;*/
    cmSetChannelEventHandler(hApp,&cmChanEvent,sizeof(SCMCHANEVENT));

    memset (&cmControlEvent,0,sizeof(SCMCONTROLEVENT));
    cmControlEvent.cmEvCallNewChannel               = cmEvCallNewChannel;
    /*cmControlEvent.cmEvCallUserInput                = cmEvCallUserInput;*/
    cmControlEvent.cmEvCallCapabilities             = cmEvCallCapabilities;
/*    cmControlEvent.cmEvCallCapabilities             = cmEvCallCapabilities;
    cmControlEvent.cmEvCallCapabilitiesExt          = cmEvCallCapabilitiesExt;
    cmControlEvent.cmEvCallNewChannel               = cmEvCallNewChannel;
    cmControlEvent.cmEvCallCapabilitiesResponse     = cmEvCallCapabilitiesResponse;
    cmControlEvent.cmEvCallMasterSlaveStatus        = cmEvCallMasterSlaveStatus;
    cmControlEvent.cmEvCallRoundTripDelay           = cmEvCallRoundTripDelay;
    cmControlEvent.cmEvCallUserInput                = cmEvCallUserInput;
    cmControlEvent.cmEvCallRequestMode              = cmEvCallRequestMode;
    cmControlEvent.cmEvCallMiscStatus               = cmEvCallMiscStatus;
    cmControlEvent.cmEvCallControlStateChanged      = cmEvCallControlStateChanged;
    cmControlEvent.cmEvCallMasterSlave              = cmEvCallMasterSlave;
    cmControlEvent.cmEvCallControlMessage           = cmEvCallControlMessage;*/
    cmSetControlEventHandler(hApp,&cmControlEvent,sizeof(SCMCONTROLEVENT));

    memset (&cmProtocolEvent,0,sizeof(SCMPROTOCOLEVENT));
    cmProtocolEvent.hookRecvFrom    = wphookRecvFrom;
    cmProtocolEvent.hookSendTo      = wphookSendTo;
    cmSetProtocolEventHandler(hApp,&cmProtocolEvent,sizeof(SCMPROTOCOLEVENT));

    memset(&cmRasEvent, 0, sizeof(SCMRASEVENT));
    UNUSED_HANDLE(cmRasEvent.cmEvRASConfirm);
    UNUSED_HANDLE(cmRasEvent.cmEvRASReject);
    UNUSED_HANDLE(cmRasEvent.cmEvRASRequest);
    UNUSED_HANDLE(cmRasEvent.cmEvRASTimeout);
    cmRASSetEventHandler(hApp, &cmRasEvent, sizeof(SCMRASEVENT));

    memset(&cmAutoRasEvent, 0, sizeof(SCMAUTORASEVENT));
    UNUSED_HANDLE(cmAutoRasEvent.cmEvAutoRASRequest);
    cmAutoRasEvent.cmEvAutoRASConfirm   = wpcmEvAutoRASConfirm;
    cmAutoRasEvent.cmEvAutoRASReject    = wpcmEvAutoRASReject;
    cmAutoRasEvent.cmEvAutoRASTimeout   = wpcmEvAutoRASTimeout;
    cmAutoRASSetEventHandler(hApp, &cmAutoRasEvent, sizeof(SCMAUTORASEVENT));
    ReInitrvwp();/*make sure there is no msg send to protocol stack*/
    return 0;
}



int InitStack(void)
{
	int status;
	SCMEVENT                        cmEvent;
	SCMCALLEVENT                    cmCallEvent;
	SCMCHANEVENT                    cmChanEvent;
	SCMCONTROLEVENT                 cmControlEvent;
	SCMPROTOCOLEVENT                cmProtocolEvent;
	SCMRASEVENT                     cmRasEvent;
	SCMAUTORASEVENT                 cmAutoRasEvent;
	
	status = cmStartUp();
	if (status != RV_OK)
		return status;
/*taskDelay(10*100);*/
	configRv();
	wpInit();

	msFile((char*)&status);

	/*printf("begin to log...\n");*/
	msOpen();

LogInit();
/*	 Initialize the stack */
	status = cmInitialize(bufConfig,&hApp);
	if (status < 0)
	{
		switch (status)
		{
			case -2: printf("Resource problem"); break;
			case -10: printf("Memory problem"); break;
			case -11: printf("Configuration problem"); break;
			case -13: printf("Network problem"); break;
		}
		return status;
	}

/*	logtest();*/

	endConfig();

#ifdef INCLUDE_RV_RTP
	status = rtpInit();
	if (status < 0)
	{
		printf("rtpInit error:%d\n", status);
		return status;
	}
	status = rtcpInit();
	if (status < 0)
	{
		printf("rtcpInit error:%d\n", status);
		return status;
	}

	rtp_start_time = timerGetTimeInSeconds();
#endif

    /* Initialize supserv (does nothing if not h450 enabled) 
    status = H450_init((char *)CONFIG_FILE,hApp);
    if (status < 0) return status*/;

    /* Initialize OSP (does nothing if not OSP enabled)
    status = OSP_TestInit(hApp);
    if (status < 0) return status */;

    /* Initialize rtp/rtcp (does nothing if not enabled) 
    RTP_TestInit()*/;

    /* Initialize security (does nothing if not security enabled)
    SEC_init(hApp); */

    /* Initialize MIB support 
    SNMP_init();*/
 
    memset(&cmEvent, 0, sizeof(SCMEVENT));
    cmEvent.cmEvNewCall     = cmEvNewCall;
    UNUSED_HANDLE(cmEvent.cmEvRegEvent);
    cmSetGenEventHandler(hApp,&cmEvent,sizeof(SCMEVENT));

    memset (&cmCallEvent,0,sizeof(SCMCALLEVENT));
    cmCallEvent.cmCallNonStandardParam      = NULL; /*Obsolete. Stack never calls it */
    UNUSED_HANDLE(cmCallEvent.cmEvCallAdditionalAddress);
    cmCallEvent.cmEvCallFacility            = wpcmEvCallFacility;
    UNUSED_HANDLE(cmCallEvent.cmEvCallFastStart);
    /*cmCallEvent.cmEvCallFastStartSetup      = cmEvCallFastStartSetup;*/
/*#ifdef USE_H450
    cmCallEvent.cmEvCallH450SupplServ       = cmEvCallH450SupplServ;
#endif*/
    UNUSED_HANDLE(cmCallEvent.cmEvCallIncompleteAddress);
    /*cmCallEvent.cmEvCallInfo                = cmEvCallInfo;*/
    UNUSED_HANDLE(cmCallEvent.cmEvCallNewAnnexLMessage);
    UNUSED_HANDLE(cmCallEvent.cmEvCallNewAnnexMMessage);
    UNUSED_HANDLE(cmCallEvent.cmEvCallNewRate);
    /*cmCallEvent.cmEvCallNotify              = cmEvCallNotify;*/
    cmCallEvent.cmEvCallProgress            = cmEvCallProgress;
    cmCallEvent.cmEvCallRecvMessage         = cmEvCallRecvMessage;
    cmCallEvent.cmEvCallSendMessage         = cmEvCallSendMessage;
    cmCallEvent.cmEvCallStateChanged        = cmEvCallStateChanged;
   /* cmCallEvent.cmEvCallStatus              = cmEvCallStatus;
    cmCallEvent.cmEvCallTunnNewMessage      = cmEvCallTunnNewMessage;*/
    cmCallEvent.cmEvCallFastStart		= cmEvCallFastStart;
/*    cmCallEvent.cmEvCallUserInfo            = cmEvCallUserInfo;*/
    cmSetCallEventHandler(hApp,&cmCallEvent,sizeof(SCMCALLEVENT));

    memset (&cmChanEvent,0,sizeof(SCMCHANEVENT));
    cmChanEvent.cmEvChannelStateChanged             = cmEvChannelStateChanged;
	cmChanEvent.cmEvChannelSetAddress               = cmEvChannelSetAddress;
	cmChanEvent.cmEvChannelParameters               = cmEvChannelParameters;
/*	cmChanEvent.cmEvChannelReplace                  = cmEvChannelReplace;
    cmChanEvent.cmEvChannelStateChanged             = cmEvChannelStateChanged;
    cmChanEvent.cmEvChannelNewRate                  = cmEvChannelNewRate;
    cmChanEvent.cmEvChannelMaxSkew                  = cmEvChannelMaxSkew;
    cmChanEvent.cmEvChannelSetAddress               = cmEvChannelSetAddress;
    cmChanEvent.cmEvChannelSetRTCPAddress           = cmEvChannelSetRTCPAddress;
    cmChanEvent.cmEvChannelParameters               = cmEvChannelParameters;
    cmChanEvent.cmEvChannelRTPDynamicPayloadType    = cmEvChannelRTPDynamicPayloadType;
    cmChanEvent.cmEvChannelVideoFastUpdatePicture   = cmEvChannelVideoFastUpdatePicture;
    cmChanEvent.cmEvChannelVideoFastUpdateGOB       = cmEvChannelVideoFastUpdateGOB;
    cmChanEvent.cmEvChannelVideoFastUpdateMB        = cmEvChannelVideoFastUpdateMB;
    cmChanEvent.cmEvChannelHandle                   = cmEvChannelHandle;
    cmChanEvent.cmEvChannelGetRTCPAddress           = cmEvChannelGetRTCPAddress;
    cmChanEvent.cmEvChannelRequestCloseStatus       = cmEvChannelRequestCloseStatus;
    cmChanEvent.cmEvChannelTSTO                     = cmEvChannelTSTO;
    cmChanEvent.cmEvChannelMediaLoopStatus          = cmEvChannelMediaLoopStatus;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -