📄 config.c
字号:
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 + -