C#实现IVR(基于东进的语音卡)-3
来源:互联网 发布:下象棋的软件 编辑:程序博客网 时间:2024/05/04 18:42
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Runtime.InteropServices;
5
6namespace DJVoiceCard.Lib
7{
8 public class DJFunction
9 {
10 /**////<summary>
11 /// 初始化东进七号信令中继语音卡的硬件
12 /// </summary>
13 /// <param name="sIncFileName">INI系统配置文件名</param>
14 /// <param name="sVoiceIncFileName">提示音对照表文件名,一般使用PROMPT.INI</param>
15 /// <returns>0,成功;其他:-12,在读取INI文件时错误;
16 /// -17,打开驱动程序的设备文件时错误[驱动程序名为:DJPCI-东进七号信令中继语音卡,NT;DJPCI2K 东进七号信令中继语音卡,2000];
17 /// -18,检查硬件失败;
18 /// -19,读取提示音文件时失败;
19 /// </returns>
20 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
21 public static externint DJSys_EnableCard(StringBuilder sIncFileName, StringBuilder sVoiceIncFileName);
22
23 /**////<summary>
24 /// 结束所有中继语音卡的操作, 释放API所占用的资源, 复位中继语音卡的状态, 应该在程序结束前调用。
25 /// 由于同DJSys_EnableCard类似的原因,当调用本函数之后,你就不能再调用其他的有关数字中继卡的函数。
26 /// 只有DJSys_EnableCard函数成功后,才能调用本函数,并且要求成对出现。
27 /// </summary>
28 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
29 public static externvoid DJSys_DisableCard();
30
31 /**////<summary>
32 /// 得到系统内中继通道总数;
33 /// </summary>
34 /// <returns></returns>
35 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
36 public static externint DJTrk_GetTotalTrunkNum();
37
38
39 /**////<summary>
40 /// 维持文件录音和文件放音连续的函数。
41 /// 要求应用程序必须在小于4秒钟内调用本函数一次(允许多次)。
42 /// 在数字中继卡的底层驱动程序中,对每个语音通道开辟了64K的缓冲区。
43 /// 当进行文件方式的录音或放音时,不断的调用函数DJSys_PushPlay可以保证缓冲区的更新。
44 /// </summary>
45 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
46 public static externvoid DJSys_PushPlay();
47
48 /**////<summary>
49 /// 获得PCM中继ID
50 /// </summary>
51 /// <param name="trunkID">中继通道号;</param>
52 /// <returns></returns>
53 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
54 public static externint DJTrk_GetPcmID(int trunkID);
55
56
57 /**////<summary>
58 /// 根据中继通道号,来断开本中继通道与用户通道之间的双向连通,对应DJExg_SetLinkTrunkAndUser
59 /// </summary>
60 /// <param name="trunkID"></param>
61 /// <returns></returns>
62 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
63 public static externbool DJExg_ClearLinkTrunkAndUserByTrunk(int trunkID);
64
65 /**////<summary>
66 /// 使能发送DTMF的功能。
67 /// </summary>
68 /// <returns></returns>
69 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
70 public static externbool DJSys_EnableDtmfSend();
71
72 /**////<summary>
73 /// 取用户通道总数。如果是一片D161A/D081A卡,本函数返回16/8,依次类推。
74 /// 函数返回:● 系统内的用户通道数
75 /// </summary>
76 /// <returns> 系统内的用户通道数</returns>
77 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
78 public static externint DJUser_GetTotalUserNum();
79
80 /**////<summary>
81 /// 搜索一个空闲的语音通道
82 /// </summary>
83 /// <param name="trunkID"></param>
84 /// <param name="IsForTrunk"></param>
85 /// <returns></returns>
86 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
87 public static externint DJVoc_SFVC_ForPlay_New(int trunkID,bool IsForTrunk);
88
89 /**////<summary>
90 /// 播放语音文件
91 /// </summary>
92 /// <param name="voiceID"></param>
93 /// <param name="voiceName"></param>
94 /// <returns></returns>
95 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
96 public static externbool DJVoc_PlayPromptFile(int voiceID,byte[] voiceName);
97
98 /**////<summary>
99 /// 建立放音语音通道到中继通道的连通。本函数在本质上是一个中继通道去听语音通道。
100 /// 当中继通道处于准备好状态,语音通道已经开始操作(直接或间接调用过DJVoc_VoiceStart 函数),
101 /// 则可通过此函数将语音通道中的语音放给中继通道上的电话用户听。
102 /// </summary>
103 /// <param name="trunkID"></param>
104 /// <param name="voiceID"></param>
105 /// <returns></returns>
106 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
107 public static externbool DJExg_SetLinkPlayVoiceToTrunk(int trunkID,int voiceID);
108
109 /**////<summary>
110 /// 对用户模块馈电,这是系统的初始状态,当userID越界时,调用DJSYS_GetErrCode得到_ERR_InvalidID。
111 /// 只有在直流电源正常工作状态下,用户通道才能正常操作,系统启动后缺省为开电源。
112 /// 如果你正常的接入电源,则调用完本函数后,与该userID相连的电话机将会处于有馈电的状态,拿起话机听筒,在电话机上按键,会听到按键的声音。
113 /// 当该用户通道插入的是中继模块,用来接入模拟电话线时,调用本函数,相当于电话机摘机。
114 /// 由于这是系统的缺省状态,所以,如果是中继模块,在初始化时,需要将所有的中继模块挂机,这可以通过调用函数DJUser_SetPowerOFF来完成。
115 /// </summary>
116 /// <param name="userID">用户通道号</param>
117 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
118 public static externvoid DJUser_SetPowerON(int userID);
119
120 /**////<summary>
121 /// 允许用户通道在摘机时自动送拨号音,这是系统的缺省工作方式。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID.
122 /// 当处于使能方式时,用户通道所连接的电话机摘机后,系统自动送拨号音,如果按下电话机上的按键,会自动停止拨号音;
123 /// 电话机挂机,也自动停止拨号音。
124 /// </summary>
125 /// <param name="userID"></param>
126 /// <returns></returns>
127 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
128 public static externbool DJUser_EnableDialSound(int userID);
129 /**////<summary>
130 /// 对给定的语音通道循环播放系统提示音
131 /// 函数返回:1● 操作成功;0 ● 操作失败,调用DJSys_GetErrCode函数将返回失败原因;
132 /// </summary>
133 /// <param name="voiceID">语音通道号</param>
134 /// <param name="voiceName">系统提示音名字</param>
135 /// <returns></returns>
136 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
137 public static externbool DJVoc_LoopPlayPromptFile(int voiceID, StringBuilder voiceName);
138
139 /**////<summary>
140 /// 搜索返回一个空闲的用于放音的语音通道
141 /// </summary>
142 /// <returns></returns>
143 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
144 public static externint DJVoc_SearchFreeVoiceChannelForPlay();
145
146 /**////<summary>
147 /// 检查是否正在对用户模块振铃。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID
148 /// 函数返回:
149 /// 1● 正在振铃
150 /// 0● 非振铃
151 /// </summary>
152 /// <param name="userID"> 用户通道号</param>
153 /// <returns></returns>
154 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
155 public static externbool DJUser_RingDetect(int userID);
156
157 /**////<summary>
158 /// 使用户通道开始振铃。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID。
159 /// 调用本函数,将会对用户模块所连接的电话机振铃,该振铃是断续的振铃声,由底层驱动程序来控制振铃的时间间隔.
160 /// 函数返回
161 /// 1● 操作成功
162 /// 0● 操作失败,调用DJSys_GetErrCode()将返回失败原因
163 /// 如果要使电话机振铃,必须正确的接入外接电源和铃流源。
164 /// </summary>
165 /// <param name="userID"> 用户通道号</param>
166 /// <returns></returns>
167 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
168 public static externbool DJUser_StartRing(int userID);
169
170 /**////<summary>
171 /// 停止用户模块的振铃。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID。
172 /// 函数返回:
173 /// 1● 操作成功
174 /// 0● 操作失败,调用DJSys_GetErrCode()将返回失败原因
175 /// </summary>
176 /// <param name="userID">用户通道号</param>
177 /// <returns></returns>
178 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
179 public static externbool DJUser_StopRing(int userID);
180
181 /**////<summary>
182 /// 断开放音语音通道和用户通道之间的联接
183 /// </summary>
184 /// <param name="userID"></param>
185 /// <returns></returns>
186 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
187 public static externbool DJExg_ClearLinkPlayVoiceFromUser(int userID);
188
189 /**////<summary>
190 /// 复位用户DTMF拨号信息,拨号位数置 0,DTMF缓冲区清空。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID。
191 /// 参考函数DJUser_GetDialCode的功能描述。
192 /// 函数返回:
193 /// 1● 操作成功
194 /// 0● 操作失败,调用DJSys_GetErrCode()将返回失败原因
195 /// </summary>
196 /// <param name="userID">用户通道号</param>
197 /// <returns></returns>
198 ///
199 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
200 public static externbool DJUser_InitDialBuf(int userID);
201
202
203 /**////<summary>
204 /// 得用LINK方式联接在本通道上的用户通道号。
205 /// </summary>
206 /// <param name="trunkID"></param>
207 /// <returns></returns>
208 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
209 public static externint DJTrk_GetConnectUserID(int trunkID);
210
211 /**////<summary>
212 /// 取得给本通道放音的语音通道号,如果没有放音通道与本中继通道相连,返回-1
213 /// </summary>
214 /// <param name="trunkID"></param>
215 /// <returns></returns>
216 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
217 public static externint DJTrk_GetTrunkPlayID(int trunkID);
218
219
220 /**////<summary>
221 /// 断开中继通道和放音语音通道的连通。
222 /// </summary>
223 /// <param name="trunkID"></param>
224 /// <returns></returns>
225 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
226 public static externbool DJExg_ClearLinkPlayVoiceFromTrunk(int trunkID);
227
228 /**////<summary>
229 /// 清空系统的DTMF缓冲区,如果在缓冲区中有DTMF按键的值,将会丢失
230 /// </summary>
231 /// <param name="trunkID"></param>
232 /// <returns></returns>
233 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
234 public static externbool DJTrk_InitDtmfBuf(int trunkID);
235
236 /**////<summary>
237 /// 检查该语音通道的语音操作是否结束,即录放音是否到达指定的大小。
238 /// </summary>
239 /// <param name="voiceChannelID"></param>
240 /// <returns></returns>
241 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
242 public static externbool DJVoc_CheckVoiceEnd(int voiceChannelID);
243
244 /**////<summary>
245 /// 停止文件放音。多次调用本函数没有影响
246 /// </summary>
247 /// <param name="trunkID"></param>
248 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
249 public static externvoid DJVoc_StopPlayFile(int trunkID);
250
251 /**////<summary>
252 /// 得到当前软件开发系统的安装目录。该目录等于INI配置文件中的InstallDir的设置。
253 /// </summary>
254 /// <returns></returns>
255 //[DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
256 //public static extern byte[] DJSys_GetInstallDir();
257 /**////<summary>
258 /// 得到当前软件开发系统的安装目录。该目录等于INI配置文件中的InstallDir的设置。
259 /// </summary>
260 /// <returns></returns>
261 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
262 public static extern StringBuilder DJSys_GetInstallDir();
263
264 /**////<summary>
265 /// 放音
266 /// </summary>
267 /// <param name="trunkID"></param>
268 /// <param name="FileName"></param>
269 /// <returns></returns>
270 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
271 public static externbool DJVoc_PlayFile(int trunkID,byte[] FileName);
272 /**////<summary>
273 /// 开始放音
274 /// </summary>
275 /// <param name="voiceChannelID"></param>
276 /// <returns></returns>
277 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
278 public static externint DJVoc_VoiceStart(int voiceChannelID);
279 /**////<summary>
280 /// 初始化中继通道索引放音
281 /// </summary>
282 /// <param name="trunkID">中继通道</param>
283 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
284 public static externvoid DJVoc_InitIndexPlayFile(int trunkID);
285
286 /**////<summary>
287 /// 增加索引放音文件。失败的可能原因有文件不存在,或者文件索引数组已满(最多100个)。
288 /// </summary>
289 /// <param name="trunkID">中继通道</param>
290 /// <param name="FileName">文件路径</param>
291 /// <returns></returns>
292 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
293 public static externbool DJVoc_AddIndexPlayFile(int trunkID,byte[] FileName);
294
295
296 /**////<summary>
297 /// 开始一次文件索引放音。
298 /// </summary>
299 /// <param name="trunkID">中继通道</param>
300 /// <returns></returns>
301 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
302 public static externbool DJVoc_StartIndexPlayFile(int trunkID);
303
304
305 /**////<summary>
306 /// 停止索引文件放音。该函数停止指定中继通道的索引文件放音,使用DJVoc_StartIndexPlayFile函数进行多文件放音结束,一定要调用该函数来停止放音
307 ///
308 /// </summary>
309 /// <param name="trinkID"></param>
310 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
311 public static externvoid DJVoc_StopIndexPlayFile(int trinkID);
312
313 /**////<summary>
314 /// 检查索引文件放音是否结束,并维护索引文件放音的持续。当进行索引文件放音时,必须调用该函数,以保证索引文件放音的连续性
315 /// </summary>
316 /// <param name="trunkID"></param>
317 /// <returns></returns>
318 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
319 public static externbool DJVoc_CheckIndexPlayEnd(int trunkID);
320 }
321}
2using System.Collections.Generic;
3using System.Text;
4using System.Runtime.InteropServices;
5
6namespace DJVoiceCard.Lib
7{
8 public class DJFunction
9 {
10 /**////<summary>
11 /// 初始化东进七号信令中继语音卡的硬件
12 /// </summary>
13 /// <param name="sIncFileName">INI系统配置文件名</param>
14 /// <param name="sVoiceIncFileName">提示音对照表文件名,一般使用PROMPT.INI</param>
15 /// <returns>0,成功;其他:-12,在读取INI文件时错误;
16 /// -17,打开驱动程序的设备文件时错误[驱动程序名为:DJPCI-东进七号信令中继语音卡,NT;DJPCI2K 东进七号信令中继语音卡,2000];
17 /// -18,检查硬件失败;
18 /// -19,读取提示音文件时失败;
19 /// </returns>
20 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
21 public static externint DJSys_EnableCard(StringBuilder sIncFileName, StringBuilder sVoiceIncFileName);
22
23 /**////<summary>
24 /// 结束所有中继语音卡的操作, 释放API所占用的资源, 复位中继语音卡的状态, 应该在程序结束前调用。
25 /// 由于同DJSys_EnableCard类似的原因,当调用本函数之后,你就不能再调用其他的有关数字中继卡的函数。
26 /// 只有DJSys_EnableCard函数成功后,才能调用本函数,并且要求成对出现。
27 /// </summary>
28 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
29 public static externvoid DJSys_DisableCard();
30
31 /**////<summary>
32 /// 得到系统内中继通道总数;
33 /// </summary>
34 /// <returns></returns>
35 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
36 public static externint DJTrk_GetTotalTrunkNum();
37
38
39 /**////<summary>
40 /// 维持文件录音和文件放音连续的函数。
41 /// 要求应用程序必须在小于4秒钟内调用本函数一次(允许多次)。
42 /// 在数字中继卡的底层驱动程序中,对每个语音通道开辟了64K的缓冲区。
43 /// 当进行文件方式的录音或放音时,不断的调用函数DJSys_PushPlay可以保证缓冲区的更新。
44 /// </summary>
45 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
46 public static externvoid DJSys_PushPlay();
47
48 /**////<summary>
49 /// 获得PCM中继ID
50 /// </summary>
51 /// <param name="trunkID">中继通道号;</param>
52 /// <returns></returns>
53 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
54 public static externint DJTrk_GetPcmID(int trunkID);
55
56
57 /**////<summary>
58 /// 根据中继通道号,来断开本中继通道与用户通道之间的双向连通,对应DJExg_SetLinkTrunkAndUser
59 /// </summary>
60 /// <param name="trunkID"></param>
61 /// <returns></returns>
62 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
63 public static externbool DJExg_ClearLinkTrunkAndUserByTrunk(int trunkID);
64
65 /**////<summary>
66 /// 使能发送DTMF的功能。
67 /// </summary>
68 /// <returns></returns>
69 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
70 public static externbool DJSys_EnableDtmfSend();
71
72 /**////<summary>
73 /// 取用户通道总数。如果是一片D161A/D081A卡,本函数返回16/8,依次类推。
74 /// 函数返回:● 系统内的用户通道数
75 /// </summary>
76 /// <returns> 系统内的用户通道数</returns>
77 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
78 public static externint DJUser_GetTotalUserNum();
79
80 /**////<summary>
81 /// 搜索一个空闲的语音通道
82 /// </summary>
83 /// <param name="trunkID"></param>
84 /// <param name="IsForTrunk"></param>
85 /// <returns></returns>
86 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
87 public static externint DJVoc_SFVC_ForPlay_New(int trunkID,bool IsForTrunk);
88
89 /**////<summary>
90 /// 播放语音文件
91 /// </summary>
92 /// <param name="voiceID"></param>
93 /// <param name="voiceName"></param>
94 /// <returns></returns>
95 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
96 public static externbool DJVoc_PlayPromptFile(int voiceID,byte[] voiceName);
97
98 /**////<summary>
99 /// 建立放音语音通道到中继通道的连通。本函数在本质上是一个中继通道去听语音通道。
100 /// 当中继通道处于准备好状态,语音通道已经开始操作(直接或间接调用过DJVoc_VoiceStart 函数),
101 /// 则可通过此函数将语音通道中的语音放给中继通道上的电话用户听。
102 /// </summary>
103 /// <param name="trunkID"></param>
104 /// <param name="voiceID"></param>
105 /// <returns></returns>
106 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
107 public static externbool DJExg_SetLinkPlayVoiceToTrunk(int trunkID,int voiceID);
108
109 /**////<summary>
110 /// 对用户模块馈电,这是系统的初始状态,当userID越界时,调用DJSYS_GetErrCode得到_ERR_InvalidID。
111 /// 只有在直流电源正常工作状态下,用户通道才能正常操作,系统启动后缺省为开电源。
112 /// 如果你正常的接入电源,则调用完本函数后,与该userID相连的电话机将会处于有馈电的状态,拿起话机听筒,在电话机上按键,会听到按键的声音。
113 /// 当该用户通道插入的是中继模块,用来接入模拟电话线时,调用本函数,相当于电话机摘机。
114 /// 由于这是系统的缺省状态,所以,如果是中继模块,在初始化时,需要将所有的中继模块挂机,这可以通过调用函数DJUser_SetPowerOFF来完成。
115 /// </summary>
116 /// <param name="userID">用户通道号</param>
117 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
118 public static externvoid DJUser_SetPowerON(int userID);
119
120 /**////<summary>
121 /// 允许用户通道在摘机时自动送拨号音,这是系统的缺省工作方式。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID.
122 /// 当处于使能方式时,用户通道所连接的电话机摘机后,系统自动送拨号音,如果按下电话机上的按键,会自动停止拨号音;
123 /// 电话机挂机,也自动停止拨号音。
124 /// </summary>
125 /// <param name="userID"></param>
126 /// <returns></returns>
127 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
128 public static externbool DJUser_EnableDialSound(int userID);
129 /**////<summary>
130 /// 对给定的语音通道循环播放系统提示音
131 /// 函数返回:1● 操作成功;0 ● 操作失败,调用DJSys_GetErrCode函数将返回失败原因;
132 /// </summary>
133 /// <param name="voiceID">语音通道号</param>
134 /// <param name="voiceName">系统提示音名字</param>
135 /// <returns></returns>
136 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
137 public static externbool DJVoc_LoopPlayPromptFile(int voiceID, StringBuilder voiceName);
138
139 /**////<summary>
140 /// 搜索返回一个空闲的用于放音的语音通道
141 /// </summary>
142 /// <returns></returns>
143 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
144 public static externint DJVoc_SearchFreeVoiceChannelForPlay();
145
146 /**////<summary>
147 /// 检查是否正在对用户模块振铃。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID
148 /// 函数返回:
149 /// 1● 正在振铃
150 /// 0● 非振铃
151 /// </summary>
152 /// <param name="userID"> 用户通道号</param>
153 /// <returns></returns>
154 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
155 public static externbool DJUser_RingDetect(int userID);
156
157 /**////<summary>
158 /// 使用户通道开始振铃。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID。
159 /// 调用本函数,将会对用户模块所连接的电话机振铃,该振铃是断续的振铃声,由底层驱动程序来控制振铃的时间间隔.
160 /// 函数返回
161 /// 1● 操作成功
162 /// 0● 操作失败,调用DJSys_GetErrCode()将返回失败原因
163 /// 如果要使电话机振铃,必须正确的接入外接电源和铃流源。
164 /// </summary>
165 /// <param name="userID"> 用户通道号</param>
166 /// <returns></returns>
167 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
168 public static externbool DJUser_StartRing(int userID);
169
170 /**////<summary>
171 /// 停止用户模块的振铃。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID。
172 /// 函数返回:
173 /// 1● 操作成功
174 /// 0● 操作失败,调用DJSys_GetErrCode()将返回失败原因
175 /// </summary>
176 /// <param name="userID">用户通道号</param>
177 /// <returns></returns>
178 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
179 public static externbool DJUser_StopRing(int userID);
180
181 /**////<summary>
182 /// 断开放音语音通道和用户通道之间的联接
183 /// </summary>
184 /// <param name="userID"></param>
185 /// <returns></returns>
186 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
187 public static externbool DJExg_ClearLinkPlayVoiceFromUser(int userID);
188
189 /**////<summary>
190 /// 复位用户DTMF拨号信息,拨号位数置 0,DTMF缓冲区清空。当userID越界时,返回 0,同时置ErrCode=_ERR_InvalidID。
191 /// 参考函数DJUser_GetDialCode的功能描述。
192 /// 函数返回:
193 /// 1● 操作成功
194 /// 0● 操作失败,调用DJSys_GetErrCode()将返回失败原因
195 /// </summary>
196 /// <param name="userID">用户通道号</param>
197 /// <returns></returns>
198 ///
199 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
200 public static externbool DJUser_InitDialBuf(int userID);
201
202
203 /**////<summary>
204 /// 得用LINK方式联接在本通道上的用户通道号。
205 /// </summary>
206 /// <param name="trunkID"></param>
207 /// <returns></returns>
208 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
209 public static externint DJTrk_GetConnectUserID(int trunkID);
210
211 /**////<summary>
212 /// 取得给本通道放音的语音通道号,如果没有放音通道与本中继通道相连,返回-1
213 /// </summary>
214 /// <param name="trunkID"></param>
215 /// <returns></returns>
216 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
217 public static externint DJTrk_GetTrunkPlayID(int trunkID);
218
219
220 /**////<summary>
221 /// 断开中继通道和放音语音通道的连通。
222 /// </summary>
223 /// <param name="trunkID"></param>
224 /// <returns></returns>
225 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
226 public static externbool DJExg_ClearLinkPlayVoiceFromTrunk(int trunkID);
227
228 /**////<summary>
229 /// 清空系统的DTMF缓冲区,如果在缓冲区中有DTMF按键的值,将会丢失
230 /// </summary>
231 /// <param name="trunkID"></param>
232 /// <returns></returns>
233 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
234 public static externbool DJTrk_InitDtmfBuf(int trunkID);
235
236 /**////<summary>
237 /// 检查该语音通道的语音操作是否结束,即录放音是否到达指定的大小。
238 /// </summary>
239 /// <param name="voiceChannelID"></param>
240 /// <returns></returns>
241 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
242 public static externbool DJVoc_CheckVoiceEnd(int voiceChannelID);
243
244 /**////<summary>
245 /// 停止文件放音。多次调用本函数没有影响
246 /// </summary>
247 /// <param name="trunkID"></param>
248 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
249 public static externvoid DJVoc_StopPlayFile(int trunkID);
250
251 /**////<summary>
252 /// 得到当前软件开发系统的安装目录。该目录等于INI配置文件中的InstallDir的设置。
253 /// </summary>
254 /// <returns></returns>
255 //[DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
256 //public static extern byte[] DJSys_GetInstallDir();
257 /**////<summary>
258 /// 得到当前软件开发系统的安装目录。该目录等于INI配置文件中的InstallDir的设置。
259 /// </summary>
260 /// <returns></returns>
261 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
262 public static extern StringBuilder DJSys_GetInstallDir();
263
264 /**////<summary>
265 /// 放音
266 /// </summary>
267 /// <param name="trunkID"></param>
268 /// <param name="FileName"></param>
269 /// <returns></returns>
270 [DllImport("Tce1_32.dll", CharSet = CharSet.Ansi)]
271 public static externbool DJVoc_PlayFile(int trunkID,byte[] FileName);
272 /**////<summary>
273 /// 开始放音
274 /// </summary>
275 /// <param name="voiceChannelID"></param>
276 /// <returns></returns>
277 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
278 public static externint DJVoc_VoiceStart(int voiceChannelID);
279 /**////<summary>
280 /// 初始化中继通道索引放音
281 /// </summary>
282 /// <param name="trunkID">中继通道</param>
283 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
284 public static externvoid DJVoc_InitIndexPlayFile(int trunkID);
285
286 /**////<summary>
287 /// 增加索引放音文件。失败的可能原因有文件不存在,或者文件索引数组已满(最多100个)。
288 /// </summary>
289 /// <param name="trunkID">中继通道</param>
290 /// <param name="FileName">文件路径</param>
291 /// <returns></returns>
292 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
293 public static externbool DJVoc_AddIndexPlayFile(int trunkID,byte[] FileName);
294
295
296 /**////<summary>
297 /// 开始一次文件索引放音。
298 /// </summary>
299 /// <param name="trunkID">中继通道</param>
300 /// <returns></returns>
301 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
302 public static externbool DJVoc_StartIndexPlayFile(int trunkID);
303
304
305 /**////<summary>
306 /// 停止索引文件放音。该函数停止指定中继通道的索引文件放音,使用DJVoc_StartIndexPlayFile函数进行多文件放音结束,一定要调用该函数来停止放音
307 ///
308 /// </summary>
309 /// <param name="trinkID"></param>
310 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
311 public static externvoid DJVoc_StopIndexPlayFile(int trinkID);
312
313 /**////<summary>
314 /// 检查索引文件放音是否结束,并维护索引文件放音的持续。当进行索引文件放音时,必须调用该函数,以保证索引文件放音的连续性
315 /// </summary>
316 /// <param name="trunkID"></param>
317 /// <returns></returns>
318 [DllImport("Tce1_32.dll", CharSet = CharSet.Auto)]
319 public static externbool DJVoc_CheckIndexPlayEnd(int trunkID);
320 }
321}
- C#实现IVR(基于东进的语音卡)-3
- C#实现IVR(基于东进的语音卡)-3
- C#实现IVR(基于东进的语音卡)-1
- C#实现IVR(基于东进的语音卡)-2
- C#实现IVR(基于东进的语音卡)-4
- C#实现IVR(基于东进的语音卡)-5
- C#实现IVR(基于东进的语音卡)-1
- C#实现IVR(基于东进的语音卡)-2
- C#实现IVR(基于东进的语音卡)-4
- C#实现IVR(基于东进的语音卡)-5
- c# 语音卡控制--语音卡实现电话录音
- c# 语音卡控制--语音卡实现电话录音
- 东进的语音卡编程:最简单的电话外呼程序
- Delphi之东进模拟语音卡(D160A)可复用源码
- (转)Delphi之东进模拟语音卡(D160A)可复用源码
- (转)Delphi之东进模拟语音卡(D160A)可复用源码
- Delphi之东进数字语音卡(SS1)可复用源码
- Delphi之东进模拟语音卡(D160A)可复用源码
- 消息机制学习笔记
- 在linux中安装Beyond Compare破解版
- C#实现IVR(基于东进的语音卡)-1
- C#实现IVR(基于东进的语音卡)-2
- struct hibernate spring 经典框架 搭建 入门实例
- C#实现IVR(基于东进的语音卡)-3
- 快速上手Ubuntu 11.04
- IPD与CMMI的区别
- JavaScript:全面解析Ajax跨站数据传输和iframe跨域名js调用(6种方法)
- sencha-touch-1.1制作ipad图表游览界面
- C#实现IVR(基于东进的语音卡)-4
- 安装了 Ubuntu 后要做的事情
- STL容器的适用情况
- C#实现IVR(基于东进的语音卡)-5