ENDPT_410_VrgDispatcherTaskMain

while( 1 )
	semStatus = bosSemTake( &vrgDispSem );	//获取信号量等待
	
	//从事件队列中获取事件
	status = VrgQueueGet(vrgEventQ, &evt, sizeof(evt));
	if ( status == EPSTATUS_SUCCESS )
		VrgEventProcess( &evt );
			switch ( vrgEvt->type )
			case ( VRG_EVT_TYPE_CAS        ) :
				//SLIC、DAA相关事件处理,详见文档《CasEventProcess》中介绍
				CasEventProcess( &vrgEvt->evt.cas         ); break;
			case ( VRG_EVT_TYPE_HAPI_RM    ) :
				//这个是在vrgEndptInit执行函数中执行hdspInit初始化DSP模块时
				//设置的资源管理回调函数,HapiRmEventPostProcess中仅只有各事
				//件的打印信息,没有实际功能处理,这个就不单独介绍了。
				HapiRmEventPostProcess( &vrgEvt->evt.hapi ); break;
			case ( VRG_EVT_TYPE_HAPI_ENDPT ) :
				//endpt类型的VHD对象(DSP针对话机侧)相关事件处理,详见
				//文档《HapiEndptEventProcess》中介绍
				HapiEndptEventProcess( &vrgEvt->evt.hapi  ); break;
			case ( VRG_EVT_TYPE_HAPI_CNX   ) :
				//gateway或conference类型VHD对象(DSP针对媒体资源侧)相关事
//件处理,详见《HapiCnxEventProcess》中介绍
				HapiCnxEventProcess(&vrgEvt->evt.hapi     ); break;
			case ( VRG_EVT_TYPE_NTE        ) :
				//上面没有NTE事件会放在队列,这个就不单独介绍了
				NteEventProcess( &vrgEvt->evt.nte         ); break;
			case ( VRG_EVT_TYPE_PSTN       ) :
				//FXO口事件处理,详见《ENDPT_410_PstnEventProcess》
				PstnEventProcess( &vrgEvt->evt.pstn       ); break;
			case ( VRG_EVT_TYPE_MLT        ) :
				//线路测试结果事件处理,详见《ENDPT_410_MltEventProcess》
				MltEventProcess( &vrgEvt->evt.mlt); break;
		continue;
	
	//从用户接口中获取操作命令
	status = VrgQueueGet(vrgEptCmdQ, (void*)&cmd, sizeof(VRG_EPT_CMD*));
	if ( status == EPSTATUS_SUCCESS )
		VrgEptCmdProcess( cmd );
			switch ( vrgEptCmd->command )
			case ( VRG_EPT_CREATE ):
				//ENDPT创建命令处理,详见《ProcessVrgEndptCreate》
				ProcessVrgEndptCreate
			case ( VRG_EPT_DESTROY ):
				//ENDPT销毁命令处理,详见《ProcessVrgEndptDestroy》
				ProcessVrgEndptDestroy
			case ( VRG_EPT_CREATE_CNX ):
				//创建连接命令处理,详见《ProcessVrgEndptCreateConnection》
				ProcessVrgEndptCreateConnection
			case ( VRG_EPT_DELETE_CNX )
				//连接删除命令处理,详见《ProcessVrgEndptDeleteConnection》
				ProcessVrgEndptDeleteConnection
			case ( VRG_EPT_MODIFY_CNX )
				//连接参数修改命令处理,详见《ProcessVrgEndptModifyConnection》
				ProcessVrgEndptModifyConnection
			case ( VRG_EPT_MUTE_CNX )
				//连接静音命令处理,详见《ProcessVrgEndptMuteConnection》
				ProcessVrgEndptMuteConnection
			case ( VRG_EPT_LINK_INT )
				//控制两个ENDPT连接或断开命令处理,
//详见《ProcessVrgEndptLinkInternal》
				ProcessVrgEndptLinkInternal
			case ( VRG_EPT_CAPABILITIES )
				//获取DSP能力命令处理,详见《ProcessVrgEndptCapabilities》
				ProcessVrgEndptCapabilities
			case ( VRG_EPT_SIGNAL ):
				//放信令音等命令相关处理,详见《ProcessVrgEndptSignal》
				ProcessVrgEndptSignal
			case ( VRG_EPT_GET_RTP_STATS ):
				//获取语音RTP及RTCP统计信息,详见《ProcessVrgEndptGetRtpStats》
				ProcessVrgEndptGetRtpStats
			case ( VRG_EPT_GET_T38_STATS ):
				//获取T38统计信息,详见《ProcessVrgEndptGetT38Stats》
				ProcessVrgEndptGetT38Stats
			case ( VRG_EPT_CONSOLE_CMD ):
				//控制命令处理,详见《ProcessVrgEndptConsoleCmd》
				ProcessVrgEndptConsoleCmd
		
		//应答
		bosSemGive( ( vrgEptCmd->command == VRG_EPT_CONSOLE_CMD ) ? &vrgEptConsoleCmdSem : &vrgEptCmdSem );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值