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

/// <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

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值