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
}
}
<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
}
}
相关文章推荐
- C#实现IVR(基于东进的语音卡)-4
- C#实现IVR(基于东进的语音卡)-5
- C#实现IVR(基于东进的语音卡)-1
- C#实现IVR(基于东进的语音卡)-3
- C#实现IVR(基于东进的语音卡)-4
- C#实现IVR(基于东进的语音卡)-1
- C#实现IVR(基于东进的语音卡)-5
- C#实现IVR(基于东进的语音卡)-2
- C#实现IVR(基于东进的语音卡)-3
- c#基于udp实现的p2p语音聊天工具
- C#实现语音视频录制 【基于MCapture + MFile】
- C#基于UDP实现的P2P语音聊天工具
- C#基于UDP实现的P2P语音聊天工具
- c#基于udp实现的p2p语音聊天工具
- 基于C#实现XML文件读取工具类
- 基于C#的波形显示控件的实现
- 基于C#实现的木马程序实例详解
- 用C#实现基于TCP协议的网络通讯
- 设计模式-基于C#的工程化实现及扩展 (目录)
- 基于C#的UDP协议的异步实现