C#实现IVR(基于东进的语音卡)-3
2011-11-24 09:54
393 查看
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Runtime.InteropServices;
5
6
namespace 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 extern
int 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 extern
void DJSys_DisableCard();
30
31
/**////
<summary>
32
/// 得到系统内中继通道总数;
33
/// </summary>
34
/// <returns></returns>
35
[DllImport("Tce1_32.dll",
CharSet = CharSet.Auto)]
36
public
static extern
int 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 extern
void 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 extern
int 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 extern
bool 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 extern
bool 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 extern
int 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 extern
int 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 extern
bool 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 extern
bool 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 extern
void 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 extern
bool 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 extern
bool 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 extern
int 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
int 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 extern
int 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
void 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 extern
bool 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 extern
int 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 extern
void 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 extern
bool 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 extern
bool 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 extern
void 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 extern
bool DJVoc_CheckIndexPlayEnd(int trunkID);
320
}
321
}
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Runtime.InteropServices;
5
6
namespace 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 extern
int 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 extern
void DJSys_DisableCard();
30
31
/**////
<summary>
32
/// 得到系统内中继通道总数;
33
/// </summary>
34
/// <returns></returns>
35
[DllImport("Tce1_32.dll",
CharSet = CharSet.Auto)]
36
public
static extern
int 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 extern
void 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 extern
int 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 extern
bool 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 extern
bool 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 extern
int 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 extern
int 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 extern
bool 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 extern
bool 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 extern
void 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 extern
bool 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 extern
bool 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 extern
int 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
int 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 extern
int 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 extern
bool 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 extern
bool 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 extern
bool 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 extern
void 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 extern
bool 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 extern
int 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 extern
void 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 extern
bool 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 extern
bool 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 extern
void 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 extern
bool DJVoc_CheckIndexPlayEnd(int trunkID);
320
}
321
}
相关文章推荐
- C#实现IVR(基于东进的语音卡)-4
- C#实现IVR(基于东进的语音卡)-5
- C#实现IVR(基于东进的语音卡)-1
- C#实现IVR(基于东进的语音卡)-2
- 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协议的异步实现