您的位置:首页 > 编程语言 > C#

C#实现IVR(基于东进的语音卡)-2

2011-11-24 09:54 393 查看
///
<summary>



/// ulong



/// </summary>



/// <param name="iTrunkID"></param>



/// <param name="CalleeNum"></param>



/// <param name="CallerNum"></param>



/// <returns></returns>



public
static bool bCallOut(int iTrunkID,
ulong CalleeNum,
ulong CallerNum)






{



unsafe






{



if (iTrunkID
!= -1)






{



return ISUP_Lib.DJISUP_Callout(iTrunkID
/ 30, iTrunkID
% 30,
ref CalleeNum,
ref CallerNum);


}



else






{



return
false;


}


}


}







/**////
<summary>



/// 初始化索引通道



/// </summary>



/// <param name="TrunkID"></param>



public
static void PlayFileInit(int TrunkID)






{


DJFunction.DJVoc_InitIndexPlayFile(TrunkID);


}







/**////
<summary>



/// 添加索引文件



/// </summary>



/// <param name="TrunkID"></param>



/// <param name="FileName"></param>



/// <returns></returns>



public
static bool AddIndexFile(int TrunkID,
byte[] FileName)






{



return DJFunction.DJVoc_AddIndexPlayFile(TrunkID, FileName);


}







/**////
<summary>



/// 开始播放索引文件



/// </summary>



/// <param name="TrunkID"></param>



/// <returns></returns>



public
static bool PlayFileStart(int TrunkID)






{



return DJFunction.DJVoc_StartIndexPlayFile(TrunkID);


}







/**////
<summary>



/// 停止播放索引文件



/// </summary>



/// <param name="TrunkID"></param>



/// <returns></returns>



public
static void PlayFileEnd(int TrunkID)






{


DJFunction.DJVoc_StopIndexPlayFile(TrunkID);


}







/**////
<summary>



/// 检查是否索引播放结束



/// </summary>



/// <param name="TrunkID"></param>



/// <returns></returns>



public
static bool PlayFileEndCHK(int TrunkID)






{



return DJFunction.DJVoc_CheckIndexPlayEnd(TrunkID);


}





#endregion







获取空闲中继信道#region
获取空闲中继信道







/**////
<summary>



/// 获取空闲中继信道



/// </summary>



/// <returns></returns>



public
static int iFreePCM()






{



byte mo_NO
= 0, dt_NO
= 0;



if (ISUP_Lib.DJISUP_GetCalloutChnNew(ref mo_NO,
ref dt_NO))






{



return (int)(mo_NO
* 30
+ dt_NO);


}



return
-1;


}





#endregion







用户#region
用户







/**////
<summary>



/// 用户通道总数



/// </summary>



/// <returns></returns>



public
static int iUserTotal()






{



return DJFunction.DJUser_GetTotalUserNum();


}









/**////
<summary>



/// 呼出状态



/// </summary>



/// <param name="iPCMID"></param>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static int iCallOutStates(int iPCMID,
int iTrunkID)






{



return ISUP_Lib.DJISUP_GetCalloutState(iPCMID, iTrunkID);


}







/**////
<summary>



/// 获取路径



/// </summary>



/// <returns></returns>



//public static byte[] appDIR()



//{



// return DJFunction.DJSys_GetInstallDir();



//}





/**////
<summary>



/// 获取路径



/// </summary>



/// <returns></returns>



public
static StringBuilder appDIRStr()






{



return DJFunction.DJSys_GetInstallDir();


}







/**////
<summary>



/// 播放语音



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static bool bISplayVoice(int iTrunkID,
byte[] sVoiceFile)






{



int iISFree
= DJFunction.DJVoc_SFVC_ForPlay_New(iTrunkID,
true);



if (iISFree
== -1)






{



return
false;


}



//if()



bool bISPlayFile
= DJFunction.DJVoc_PlayFile(iTrunkID, sVoiceFile);



//bool bISLink =DJFunction.DJExg_SetLinkPlayVoiceToTrunk(iTrunkID, iISFree);



if (!bISPlayFile)






{



return
false;


}



//if (!bISLink)



//{



// return false;



//}





return
true;


}





public
static int iPlayVoice(int iVoiceChn)






{



return DJFunction.DJVoc_VoiceStart(iVoiceChn);


}







/**////
<summary>



/// 断开语音通道链接



///



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static bool ClearCHN(int iTrunkID)






{



return DJFunction.DJExg_ClearLinkTrunkAndUserByTrunk(iTrunkID);


}







/**////
<summary>



/// 初始化用户馈电



/// </summary>



/// <param name="iUserCHNID"></param>



public
static void UserPowerOn(int iUserCHNID)






{


DJFunction.DJUser_SetPowerON(iUserCHNID);


}







/**////
<summary>



/// 允许用户通道在摘机时自动送拨号音,这是系统的缺省工作方式。



/// </summary>



/// <param name="iUserCHNID"></param>



/// <returns></returns>



public
static bool UserEnableDailSound(int iUserCHNID)






{



return DJFunction.DJUser_EnableDialSound(iUserCHNID);


}







/**////
<summary>



/// 对给定的语音通道循环播放系统提示音。



/// </summary>



/// <param name="voiceCHNID"></param>



/// <param name="voiceFileName"></param>



/// <returns></returns>



public
static bool LoopVoiceM(int voiceCHNID, StringBuilder voiceFileName)






{



return DJFunction.DJVoc_LoopPlayPromptFile(voiceCHNID, voiceFileName);


}







/**////
<summary>



/// 空闲语音通道



/// </summary>



/// <returns></returns>



public
static int iFreeVoiceCHNID()






{



return DJFunction.DJVoc_SearchFreeVoiceChannelForPlay();


}







/**////
<summary>



/// 检查是否正在对用户模块振铃



/// </summary>



/// <param name="iUserID"></param>



/// <returns></returns>



public
static bool bIsRingDerctor(int iUserCHNID)






{



return DJFunction.DJUser_RingDetect(iUserCHNID);


}







/**////
<summary>



/// 停止用户通道振铃



/// </summary>



/// <param name="iUserCHNID"></param>



/// <returns></returns>



public
static bool bIsStopRing(int iUserCHNID)






{



return DJFunction.DJUser_StopRing(iUserCHNID);


}







/**////
<summary>



/// 断开放音语音通道和用户通道之间的联接



/// </summary>



/// <param name="iUserCHNID"></param>



/// <returns></returns>



public
static bool bClearVoiceFromUser(int iUserCHNID)






{



return DJFunction.DJExg_ClearLinkPlayVoiceFromUser(iUserCHNID);


}







/**////
<summary>



/// 复位用户DTMF拨号信息,拨号位数置 0,DTMF缓冲区清空



/// </summary>



/// <param name="iUserCHNID"></param>



/// <returns></returns>



public
static bool bIsInitDailBuf(int iUserCHNID)






{



return DJFunction.DJUser_InitDialBuf(iUserCHNID);


}







/**////
<summary>



/// 得用LINK方式联接在本通道上的用户通道号。



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static int iLinkUserCHNID(int iTrunkID)






{



return DJFunction.DJTrk_GetConnectUserID(iTrunkID);


}







/**////
<summary>



/// 取得给本通道放音的语音通道号,如果没有放音通道与本中继通道相连,返回-1



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static int iVoicePlayForTrunk(int iTrunkID)






{



return DJFunction.DJTrk_GetTrunkPlayID(iTrunkID);


}







/**////
<summary>



/// 断开中继通道和放音语音通道的连通。



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static bool bIsClearTrunkVoiceLink(int iTrunkID)






{



return DJFunction.DJExg_ClearLinkPlayVoiceFromTrunk(iTrunkID);


}









/**////
<summary>



/// 清空系统的DTMF缓冲区,如果在缓冲区中有DTMF按键的值,将会丢失



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static bool bIsInitDtmfByTrunkID(int iTrunkID)






{



return DJFunction.DJTrk_InitDtmfBuf(iTrunkID);


}







/**////
<summary>



/// 获取CPG返回



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static int iCPGReval(int iTrunkID)






{



return ISUP_Lib.DJISUP_GetEventInfo(iTrunkID
/ 30, iTrunkID
% 30);


}







/**////
<summary>



/// 获取ISUP返回



/// </summary>



/// <param name="iTrunkID"></param>



/// <returns></returns>



public
static int ISUPReVal(int iTrunkID)






{



return ISUP_Lib.DJISUP_GetRecvCauseValue(iTrunkID
/ 30, iTrunkID
% 30);


}







/**////
<summary>



/// 检查该语音通道的语音操作是否结束,即录放音是否到达指定的大小。



/// </summary>



/// <param name="iVocCHNID"></param>



/// <returns></returns>



public
static bool bIsVocPlayEnd(int iVocCHNID)






{



return DJFunction.DJVoc_CheckVoiceEnd(iVocCHNID);


}









/**////
<summary>



/// 停止文件放音。多次调用本函数没有影响



/// </summary>



/// <param name="iTrunkID"></param>



public
static void StopPlayVocInTrunk(int iTrunkID)






{


DJFunction.DJVoc_StopPlayFile(iTrunkID);


}





#endregion


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: