voip呼叫app,并放音

    //来电呼入事件
    if(evtType==XMS_EVT_CALLIN)
    {
        //激发:外线呼入、空闲内线(未振铃时)摘机  主体:chn,不是voc   放音文件要在驱动机目录
        if(iDevMain==XMS_DEVMAIN_VOIP)
        {
                Acs_CallControl_Data * pCallEvt = (Acs_CallControl_Data *)FetchEventData(evt);
        VoIPCallPrivate_t *paramVoIPCall = (VoIPCallPrivate_t *)&(pCallEvt->m_PrivData);

        int ivoipchn = evt->m_DeviceID.m_s16ChannelID;

        DSP[iDspID].Voip[ivoipchn].iProtocol = paramVoIPCall->m_s32Protocol;

        strcpy(DSP[iDspID].Voip[ivoipchn].addrCaller.tszTelNo, pCallEvt->m_s8CallingNum);
        strcpy(DSP[iDspID].Voip[ivoipchn].addrCaller.tszAddr, paramVoIPCall->m_s8CallerAddress);
        DSP[iDspID].Voip[ivoipchn].addrCaller.port = (USHORT)paramVoIPCall->m_s32CallerPort;
        strcpy(DSP[iDspID].Voip[ivoipchn].addrCaller.tszUserID, paramVoIPCall->m_s8CallerUserID);

        strcpy(DSP[iDspID].Voip[ivoipchn].addrCallee.tszTelNo, pCallEvt->m_s8CalledNum);
        strcpy(DSP[iDspID].Voip[ivoipchn].addrCallee.tszAddr, paramVoIPCall->m_s8CalleeAddress);
        DSP[iDspID].Voip[ivoipchn].addrCallee.port = (USHORT)paramVoIPCall->m_s32CalleePort;
        strcpy(DSP[iDspID].Voip[ivoipchn].addrCallee.tszUserID, paramVoIPCall->m_s8CalleeUserID);

                tVoip* voipchn=&DSP[iDspID].Voip[ivoipchn];
                voipchn->itm->SubItems->Strings[5]=(voipchn->addrCaller.tszTelNo);
                tVoc* voc=&DSP[iDspID].Voc[0];
                
                //1.呼叫应答
                XMS_ctsAnswerCallIn (g_acsHandle,&voipchn->deviceID, NULL );  //如不回应,会直接挂外线

                //2.连接通道。!!!要在设置voip通道参数前面,否则听不到放音
                My_Link(&voc->deviceID,&voipchn->deviceID);

                //3.设置voip通道参数,听到欢迎语音
                MixerControlParam_t paramMixer = {0};
                paramMixer.m_u8SRC1_Ctrl = XMS_MIXER_FROM_PLAY;
                paramMixer.m_u16SRC_ChID1 = voc->deviceID.m_s16ChannelID;     //!!voc的设备ID
                RetCode_t ret = XMS_ctsSetParam(g_acsHandle, &voipchn->deviceID,
                        VOIP_PARAM_RTPMIXER, sizeof(paramMixer), &paramMixer);                
                //获取语音资源 (初始绑定式)
                //int iFreeVocChn=0;//outchn->ivoc_join;//GetOneFreeVocChn_ByCfg(iDspID);
                //4.放音
                My_PlayFile(&voc->deviceID,String(VocPath + "\\welcome.wav").c_str(),false);    //outvocchn->deviceID
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值