Просмотр исходного кода

IVR欢迎词语音上传功能提交

zhengbingbing лет назад: 8
Родитель
Сommit
c9f1ea4c6b

+ 59 - 24
codegit/CallCenterApi/CallCenterApi.DAL/T_Sys_IVRWords.cs

@@ -18,6 +18,7 @@ namespace CallCenterApi.DAL
18 18
         { }
19 19
         #region  BasicMethod
20 20
 
21
+
21 22
         /// <summary>
22 23
         /// 增加一条数据
23 24
         /// </summary>
@@ -25,13 +26,17 @@ namespace CallCenterApi.DAL
25 26
         {
26 27
             StringBuilder strSql = new StringBuilder();
27 28
             strSql.Append("insert into T_Sys_IVRWords(");
28
-            strSql.Append("F_Title,F_Content,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel)");
29
+            strSql.Append("F_Title,F_Content,F_Type,F_WavOldName,F_WavNewName,F_WavPath,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel)");
29 30
             strSql.Append(" values (");
30
-            strSql.Append("@F_Title,@F_Content,@F_StartDate,@F_EndDate,@F_Remark,@F_IsState,@F_CreateTime,@F_CreateUser,@F_IsDel)");
31
+            strSql.Append("@F_Title,@F_Content,@F_Type,@F_WavOldName,@F_WavNewName,@F_WavPath,@F_StartDate,@F_EndDate,@F_Remark,@F_IsState,@F_CreateTime,@F_CreateUser,@F_IsDel)");
31 32
             strSql.Append(";select @@IDENTITY");
32 33
             SqlParameter[] parameters = {
33 34
                     new SqlParameter("@F_Title", SqlDbType.NVarChar,500),
34 35
                     new SqlParameter("@F_Content", SqlDbType.NText),
36
+                    new SqlParameter("@F_Type", SqlDbType.Int,4),
37
+                    new SqlParameter("@F_WavOldName", SqlDbType.NVarChar,500),
38
+                    new SqlParameter("@F_WavNewName", SqlDbType.NVarChar,500),
39
+                    new SqlParameter("@F_WavPath", SqlDbType.NText),
35 40
                     new SqlParameter("@F_StartDate", SqlDbType.DateTime),
36 41
                     new SqlParameter("@F_EndDate", SqlDbType.DateTime),
37 42
                     new SqlParameter("@F_Remark", SqlDbType.NText),
@@ -41,13 +46,17 @@ namespace CallCenterApi.DAL
41 46
                     new SqlParameter("@F_IsDel", SqlDbType.Int,4)};
42 47
             parameters[0].Value = model.F_Title;
43 48
             parameters[1].Value = model.F_Content;
44
-            parameters[2].Value = model.F_StartDate;
45
-            parameters[3].Value = model.F_EndDate;
46
-            parameters[4].Value = model.F_Remark;
47
-            parameters[5].Value = model.F_IsState;
48
-            parameters[6].Value = model.F_CreateTime;
49
-            parameters[7].Value = model.F_CreateUser;
50
-            parameters[8].Value = model.F_IsDel;
49
+            parameters[2].Value = model.F_Type;
50
+            parameters[3].Value = model.F_WavOldName;
51
+            parameters[4].Value = model.F_WavNewName;
52
+            parameters[5].Value = model.F_WavPath;
53
+            parameters[6].Value = model.F_StartDate;
54
+            parameters[7].Value = model.F_EndDate;
55
+            parameters[8].Value = model.F_Remark;
56
+            parameters[9].Value = model.F_IsState;
57
+            parameters[10].Value = model.F_CreateTime;
58
+            parameters[11].Value = model.F_CreateUser;
59
+            parameters[12].Value = model.F_IsDel;
51 60
 
52 61
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
53 62
             if (obj == null)
@@ -68,6 +77,10 @@ namespace CallCenterApi.DAL
68 77
             strSql.Append("update T_Sys_IVRWords set ");
69 78
             strSql.Append("F_Title=@F_Title,");
70 79
             strSql.Append("F_Content=@F_Content,");
80
+            strSql.Append("F_Type=@F_Type,");
81
+            strSql.Append("F_WavOldName=@F_WavOldName,");
82
+            strSql.Append("F_WavNewName=@F_WavNewName,");
83
+            strSql.Append("F_WavPath=@F_WavPath,");
71 84
             strSql.Append("F_StartDate=@F_StartDate,");
72 85
             strSql.Append("F_EndDate=@F_EndDate,");
73 86
             strSql.Append("F_Remark=@F_Remark,");
@@ -79,6 +92,10 @@ namespace CallCenterApi.DAL
79 92
             SqlParameter[] parameters = {
80 93
                     new SqlParameter("@F_Title", SqlDbType.NVarChar,500),
81 94
                     new SqlParameter("@F_Content", SqlDbType.NText),
95
+                    new SqlParameter("@F_Type", SqlDbType.Int,4),
96
+                    new SqlParameter("@F_WavOldName", SqlDbType.NVarChar,500),
97
+                    new SqlParameter("@F_WavNewName", SqlDbType.NVarChar,500),
98
+                    new SqlParameter("@F_WavPath", SqlDbType.NText),
82 99
                     new SqlParameter("@F_StartDate", SqlDbType.DateTime),
83 100
                     new SqlParameter("@F_EndDate", SqlDbType.DateTime),
84 101
                     new SqlParameter("@F_Remark", SqlDbType.NText),
@@ -89,14 +106,18 @@ namespace CallCenterApi.DAL
89 106
                     new SqlParameter("@F_ID", SqlDbType.Int,4)};
90 107
             parameters[0].Value = model.F_Title;
91 108
             parameters[1].Value = model.F_Content;
92
-            parameters[2].Value = model.F_StartDate;
93
-            parameters[3].Value = model.F_EndDate;
94
-            parameters[4].Value = model.F_Remark;
95
-            parameters[5].Value = model.F_IsState;
96
-            parameters[6].Value = model.F_CreateTime;
97
-            parameters[7].Value = model.F_CreateUser;
98
-            parameters[8].Value = model.F_IsDel;
99
-            parameters[9].Value = model.F_ID;
109
+            parameters[2].Value = model.F_Type;
110
+            parameters[3].Value = model.F_WavOldName;
111
+            parameters[4].Value = model.F_WavNewName;
112
+            parameters[5].Value = model.F_WavPath;
113
+            parameters[6].Value = model.F_StartDate;
114
+            parameters[7].Value = model.F_EndDate;
115
+            parameters[8].Value = model.F_Remark;
116
+            parameters[9].Value = model.F_IsState;
117
+            parameters[10].Value = model.F_CreateTime;
118
+            parameters[11].Value = model.F_CreateUser;
119
+            parameters[12].Value = model.F_IsDel;
120
+            parameters[13].Value = model.F_ID;
100 121
 
101 122
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
102 123
             if (rows > 0)
@@ -116,8 +137,7 @@ namespace CallCenterApi.DAL
116 137
         {
117 138
 
118 139
             StringBuilder strSql = new StringBuilder();
119
-            //strSql.Append("delete from T_Sys_IVRWords ");
120
-            strSql.Append("update T_Sys_IVRWords set F_IsDel=1 ");
140
+            strSql.Append("delete from T_Sys_IVRWords ");
121 141
             strSql.Append(" where F_ID=@F_ID");
122 142
             SqlParameter[] parameters = {
123 143
                     new SqlParameter("@F_ID", SqlDbType.Int,4)
@@ -140,8 +160,7 @@ namespace CallCenterApi.DAL
140 160
         public bool DeleteList(string F_IDlist)
141 161
         {
142 162
             StringBuilder strSql = new StringBuilder();
143
-            //strSql.Append("delete from T_Sys_IVRWords ");
144
-            strSql.Append("update T_Sys_IVRWords set F_IsDel=1 ");
163
+            strSql.Append("delete from T_Sys_IVRWords ");
145 164
             strSql.Append(" where F_ID in (" + F_IDlist + ")  ");
146 165
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
147 166
             if (rows > 0)
@@ -162,7 +181,7 @@ namespace CallCenterApi.DAL
162 181
         {
163 182
 
164 183
             StringBuilder strSql = new StringBuilder();
165
-            strSql.Append("select  top 1 F_ID,F_Title,F_Content,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel from T_Sys_IVRWords ");
184
+            strSql.Append("select  top 1 F_ID,F_Title,F_Content,F_Type,F_WavOldName,F_WavNewName,F_WavPath,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel from T_Sys_IVRWords ");
166 185
             strSql.Append(" where F_ID=@F_ID");
167 186
             SqlParameter[] parameters = {
168 187
                     new SqlParameter("@F_ID", SqlDbType.Int,4)
@@ -202,6 +221,22 @@ namespace CallCenterApi.DAL
202 221
                 {
203 222
                     model.F_Content = row["F_Content"].ToString();
204 223
                 }
224
+                if (row["F_Type"] != null && row["F_Type"].ToString() != "")
225
+                {
226
+                    model.F_Type = int.Parse(row["F_Type"].ToString());
227
+                }
228
+                if (row["F_WavOldName"] != null)
229
+                {
230
+                    model.F_WavOldName = row["F_WavOldName"].ToString();
231
+                }
232
+                if (row["F_WavNewName"] != null)
233
+                {
234
+                    model.F_WavNewName = row["F_WavNewName"].ToString();
235
+                }
236
+                if (row["F_WavPath"] != null)
237
+                {
238
+                    model.F_WavPath = row["F_WavPath"].ToString();
239
+                }
205 240
                 if (row["F_StartDate"] != null && row["F_StartDate"].ToString() != "")
206 241
                 {
207 242
                     model.F_StartDate = DateTime.Parse(row["F_StartDate"].ToString());
@@ -240,7 +275,7 @@ namespace CallCenterApi.DAL
240 275
         public DataSet GetList(string strWhere)
241 276
         {
242 277
             StringBuilder strSql = new StringBuilder();
243
-            strSql.Append("select F_ID,F_Title,F_Content,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel ");
278
+            strSql.Append("select F_ID,F_Title,F_Content,F_Type,F_WavOldName,F_WavNewName,F_WavPath,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel ");
244 279
             strSql.Append(" FROM T_Sys_IVRWords ");
245 280
             if (strWhere.Trim() != "")
246 281
             {
@@ -260,7 +295,7 @@ namespace CallCenterApi.DAL
260 295
             {
261 296
                 strSql.Append(" top " + Top.ToString());
262 297
             }
263
-            strSql.Append(" F_ID,F_Title,F_Content,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel ");
298
+            strSql.Append(" F_ID,F_Title,F_Content,F_Type,F_WavOldName,F_WavNewName,F_WavPath,F_StartDate,F_EndDate,F_Remark,F_IsState,F_CreateTime,F_CreateUser,F_IsDel ");
264 299
             strSql.Append(" FROM T_Sys_IVRWords ");
265 300
             if (strWhere.Trim() != "")
266 301
             {

+ 36 - 0
codegit/CallCenterApi/CallCenterApi.Model/T_Sys_IVRWords.cs

@@ -18,6 +18,10 @@ namespace CallCenterApi.Model
18 18
         private int _f_id;
19 19
         private string _f_title;
20 20
         private string _f_content;
21
+        private int? _f_type;
22
+        private string _f_wavoldname;
23
+        private string _f_wavnewname;
24
+        private string _f_wavpath;
21 25
         private DateTime? _f_startdate = DateTime.Now;
22 26
         private DateTime? _f_enddate = DateTime.Now;
23 27
         private string _f_remark;
@@ -50,6 +54,38 @@ namespace CallCenterApi.Model
50 54
             get { return _f_content; }
51 55
         }
52 56
         /// <summary>
57
+        /// 类型:1文本,2语音文件
58
+        /// </summary>
59
+        public int? F_Type
60
+        {
61
+            set { _f_type = value; }
62
+            get { return _f_type; }
63
+        }
64
+        /// <summary>
65
+        /// 语音文件原名
66
+        /// </summary>
67
+        public string F_WavOldName
68
+        {
69
+            set { _f_wavoldname = value; }
70
+            get { return _f_wavoldname; }
71
+        }
72
+        /// <summary>
73
+        /// 语音文件新名
74
+        /// </summary>
75
+        public string F_WavNewName
76
+        {
77
+            set { _f_wavnewname = value; }
78
+            get { return _f_wavnewname; }
79
+        }
80
+        /// <summary>
81
+        /// 语音文件路径
82
+        /// </summary>
83
+        public string F_WavPath
84
+        {
85
+            set { _f_wavpath = value; }
86
+            get { return _f_wavpath; }
87
+        }
88
+        /// <summary>
53 89
         /// 生效时间
54 90
         /// </summary>
55 91
         public DateTime? F_StartDate

+ 131 - 0
ivr/IVR_Normal.xml

@@ -0,0 +1,131 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<ivr>
3
+	<flow Name="IVR_Normal" Type="normal" MatchedNum="." MatchedLine="|-1|" Concurrency="1">
4
+		<cell Name="CELL_START" Pos="1" Next="2" Note="开始节点" />
5
+		<!--
6
+			exec P_OptCallRecords 'tel','callid',type,bustype,mydkey,'recfile'
7
+			tel:来电号码%[CallerID]
8
+			callid:中间件定义%[CallID]
9
+			type:执行类型:1.插入通话记录;2.更新挂机时间;3.更新排队开始时间;4.插入留言;5.更新满意度
10
+			bustype:业务选择,用于需要有按键选择业务按键值
11
+			mydkey:满意度按键值,1满意,2一般,3不满意
12
+			recfile:留言的录音文件:%[CallID]_%[CallerID]_%[StartTime].wav
13
+			插入通话记录示例:exec P_OptCallRecords '%[CallerID]','%[CallID]',1,0,1,'' 
14
+		-->
15
+		<cell Name="CELL_SQL" Pos="2" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="exec P_OptCallRecords '%[CallerID]','%[CallID]',1,0,'1','' " 
16
+		IsSaved="no" SuccessPos="3" FailPos="3" Note="插入通话记录" />
17
+		<cell Name="CELL_DEFINEVAR" Pos="3" Next="4" Note="定义变量节点">
18
+			<DefVar VarType="1" VarName="AgentNo" VarVal="0" />
19
+			<DefVar VarType="1" VarName="AgentExtNo" VarVal="0" />
20
+			<DefVar VarType="1" VarName="KeyGroup" VarVal="0" /><!--坐席组按键值-->
21
+			<DefVar VarType="1" VarName="GroupID" VarVal="0" /><!--通过坐席组按键值 获取相应的坐席组ID-->
22
+			<DefVar VarType="1" VarName="Key" VarVal="0" />
23
+			<DefVar VarType="1" VarName="BlackListVerify" VarVal="0" />
24
+			<DefVar VarType="1" VarName="HolidayVerify" VarVal="0" />
25
+			<DefVar VarType="1" VarName="zbdh" VarVal="0" />
26
+		</cell>
27
+		<!--黑名单-->
28
+		<cell Name="CELL_SQL" Pos="4" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="exec P_GetBlacklist  '%[CallerID]','%[CallID]' " IsSaved="yes" SuccessPos="5" FailPos="5" Note="读取黑名单" />
29
+		<cell Name="CELL_RECORDSET" Pos="5" LPos="6" EPos="6" GPos="6" Note="取黑名单结果">
30
+			<Map Var="BlackListVerify" />
31
+		</cell>
32
+		<cell Name="CELL_COMPARE" Pos="6" Data1Type="2" Data2Type="1" Data3Type="1" Data1="BlackListVerify" Data2="0" Data3="" VarType="1" CompareType="2" TruePos="26" FalsePos="110" Note="判断黑名单" />
33
+		<!--黑名单提示音-->
34
+		<cell Name="CELL_AUDIODTMF" Pos="26" PlayType="2" ContentType="1" Content="D:\CTI\wav\黑名单提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
35
+		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="25" FailPos="24" HangupPos="24" Note="黑名单提示音" />
36
+		<!--黑名单提示音-->
37
+		<!--黑名单-->
38
+		
39
+		<!--欢迎词-->
40
+		<!--判断是否有已启动且在有效期内的文本欢迎词需要播放-->
41
+		<cell Name="CELL_SQL" Pos="110" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="EXEC P_GetIVRWelcomes" IsSaved="yes" SuccessPos="111" FailPos="12" Note="欢迎词查询" /> 
42
+		<cell   Name="CELL_RECORDSET"  Pos="111" LPos="112" EPos="112" GPos="112" Note="取欢迎词结果" > 
43
+			<Map   Var="isw" /> 
44
+			<Map   Var="words" /> 
45
+		</cell>
46
+		<cell   Name="CELL_COMPARE"  Pos="112" Data1Type="2"  Data2Type="1"  Data3Type="1"  Data1="isw" Data2="0" Data3="" VarType="1"  CompareType="2"  TruePos="113" FalsePos="12" Note="判断是否有文本欢迎词" /> 
47
+		<cell Name="CELL_AUDIODTMF" Pos="113" PlayType="2" ContentType="2" Content="  `vs40  `dig`vs30 %[words] `vs50 ." TTSNumMode="1" TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="0" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="13" FailPos="24" HangupPos="25" Note="欢迎词文本放音" />
48
+		
49
+		<cell Name="CELL_AUDIODTMF" Pos="12" PlayType="2" ContentType="1" Content="D:\CTI\wav\欢迎词.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
50
+		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="8" FailPos="24" HangupPos="24" Note="放欢迎词" />
51
+		<!--欢迎词-->
52
+		
53
+		<!--节假日-->
54
+		<!--判断是否加班或节假日,是放节假日音后挂机,否转坐席-->
55
+		<cell Name="CELL_SQL" Pos="8" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="exec P_GetHolidays" IsSaved="yes" SuccessPos="9" FailPos="603" Note="节假日查询" />
56
+		<cell Name="CELL_RECORDSET" Pos="9" LPos="10" EPos="10" GPos="10" Note="取节假日结果">
57
+			<Map Var="HolidayVerify" />
58
+		</cell>
59
+		<cell Name="CELL_COMPARE" Pos="10" Data1Type="2" Data2Type="1" Data3Type="1" Data1="HolidayVerify" Data2="0" Data3="" VarType="1" CompareType="2" TruePos="603" FalsePos="11" Note="判断节假日" />
60
+		<cell Name="CELL_AUDIODTMF" Pos="11" PlayType="2" ContentType="1" Content="D:\CTI\wav\假期提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
61
+		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="24" FailPos="24" HangupPos="24" Note="放节假日音" />
62
+		<!--节假日-->
63
+		
64
+		
65
+		<!--通过按键值 拨打相应的坐席组 暂时无用-->
66
+		<cell Name="CELL_AUDIODTMF" Pos="601" PlayType="1" ContentType="1" Content=" D:\CTI\wav\主菜单.wav" TTSNumMode="1" 
67
+		TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="KeyGroup" SuccessPos="602" FailPos="24" HangupPos="24" Note="依据按键值拨打坐席组导航语音" />
68
+		<cell   Name="CELL_BRANCH"  Pos="602" Var="KeyGroup" DefaultPos="601" Note="依据按键值拨打坐席组导航语音-比较按键值" >
69
+			<Branch   Pos="603" Value="1" /><!--1.咨询-->
70
+			<Branch   Pos="603" Value="2" /><!--2.预约-->
71
+			<Branch   Pos="603" Value="3" /><!--3.救援-->
72
+			<Branch   Pos="603" Value="4" /><!--4.投诉-->
73
+		</cell>
74
+		<!--通过按键值 拨打相应的坐席组  暂时无用-->
75
+		
76
+		<!--排队,转坐席-->
77
+		<cell Name="CELL_SQL" Pos="603" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="exec P_GetSeatGroup" 
78
+		IsSaved="yes" SuccessPos="604" FailPos="24" Note="获取坐席组ID" />
79
+		<cell Name="CELL_RECORDSET" Pos="604" LPos="501" EPos="501" GPos="501" Note="获取坐席组ID结果">
80
+			<Map Var="GroupID" />
81
+		</cell>
82
+		
83
+		<cell Name="CELL_SQL" Pos="501" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr=" exec P_OptCallRecords '%[CallerID]','%[CallID]',3,%[KeyGroup],'1','' " IsSaved="no" SuccessPos="13" FailPos="13" Note="更新排队开始时间" />
84
+		<!--坐席排队时,没有登录坐席直接转值班电话,无空闲坐席转坐席全忙放音,有空闲坐席继续播报-->
85
+		<cell Name="CELL_QUEUE" Pos="13" Strategy="1" VipLevelType="1" VipLevel="0" GroupType="2" Group="GroupID" AgentVar="AgentNo" ExtenVar="AgentExtNo" 
86
+		NoAgentPos="29" NoFreePos="14" SuccessPos="18" HangupPos="24" Note="排队节点" />
87
+		
88
+		<cell Name="CELL_AUDIODTMF" Pos="14" PlayType="1" ContentType="1" Content="D:\CTI\wav\坐席全忙.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
89
+		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="Key" SuccessPos="15" FailPos="24" HangupPos="24" Note="坐席全忙放音" />
90
+		<cell Name="CELL_BRANCH" Pos="15" Var="Key" DefaultPos="14" Note="分支节点">
91
+			<Branch Value="1" Pos="16" /><!--1.继续等待-->
92
+			<Branch Value="2" Pos="20" /><!--2.留言-->
93
+		</cell>		
94
+		<cell Name="CELL_CONTINUEQUEUE" Pos="16" Agent="AgentNo" Exten="AgentExtNo" Audio="D:\CTI\wav\保持音.wav" Timeout="60" SuccessPos="18" HangupPos="24" TimeoutPos="14" Note="继续排队节点" />
95
+		<cell Name="CELL_CANCELQUEUE" Pos="17" Reason="等烦了" Next="24" Note="放弃排队节点" />		
96
+		<cell Name="CELL_AUDIODTMF" Pos="18" PlayType="2" ContentType="1" Content="D:\CTI\wav\通话录音提示音.wav" TTSNumMode="1" 
97
+		TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="31" FailPos="24" HangupPos="24" Note="转接电话提示录音" />
98
+		<cell Name="CELL_AUDIODTMF" Pos="31" PlayType="2" ContentType="2" Content=" `vs40 您好, `dig`vs30 %[AgentNo] `vs50 号话务员为您服务." TTSNumMode="1" TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="19" FailPos="24" HangupPos="24" Note="播报工号" />
99
+		<cell Name="CELL_TURNAGENT" Pos="19" Exten="AgentExtNo" SuccessPos="25" FailPos="17" HangupPos="24" Note="转座席节点">
100
+		  <BandData Var="CallID" />
101
+		</cell>
102
+		<!--排队,转坐席-->
103
+		
104
+		<!--留言-->
105
+		<cell Name="CELL_AUDIODTMF" Pos="20" PlayType="2" ContentType="1" Content="D:\CTI\wav\留言提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
106
+		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="21" FailPos="24" HangupPos="24" Note="留言开始放音" />
107
+		<cell Name="CELL_LEAVEWORD" Pos="21" Path="%[CallID]_%[CallerID]_%[StartTime].wav" FinishKey="#" Timeout="60" TimeoutPos="22" HangupPos="23" FinishPos="22" Note="留言节点" />
108
+		<cell Name="CELL_AUDIODTMF" Pos="22" PlayType="2" ContentType="1" Content="D:\CTI\wav\留言结束提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="23" FailPos="23" HangupPos="23" Note="留言结束放音" />
109
+		<cell Name="CELL_SQL" Pos="23" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" 
110
+		SqlStr=" exec P_OptCallRecords '%[CallerID]','%[CallID]',4,0,'1','%[CallID]_%[CallerID]_%[StartTime].wav' " IsSaved="no" 
111
+		SuccessPos="24" FailPos="24" Note="留言入库" />
112
+		
113
+		<!--留言-->
114
+		
115
+		<!--转值班电话-->
116
+		<cell Name="CELL_AUDIODTMF" Pos="29" PlayType="2" ContentType="1" Content="D:\CTI\wav\转值班电话提示.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="701" FailPos="24" HangupPos="24" Note="转值班电话提示音" />
117
+		<cell Name="CELL_SQL" Pos="701" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="EXEC P_GetZBDH " IsSaved="yes" SuccessPos="702" FailPos="24" Note="获取值班电话" />
118
+		<cell Name="CELL_RECORDSET" Pos="702" LPos="30" EPos="30" GPos="30" Note="获取值班电话结果">
119
+			<Map Var="zbdh" />
120
+		</cell>
121
+		<cell Name="CELL_TRANSFEROUT" Pos="30" CalleeNumType="2" CalleeNum="zbdh" Timeout="60" SuccessPos="25" FailPos="24" Note="转值班电话" />
122
+		<!--转值班电话-->
123
+		
124
+		<!---->
125
+		<cell Name="CELL_SQL" Pos="24" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr=" exec P_OptCallRecords '%[CallerID]','%[CallID]',2,0,'1','' " IsSaved="no" 
126
+		SuccessPos="204" FailPos="204" Note="更新挂机时间" />
127
+		<cell Name="CELL_HANGUP" Pos="204" Next="25" Note="挂机节点" />
128
+		<cell Name="CELL_END" Pos="25" Note="结束节点" />	
129
+		<!---->
130
+	</flow>		
131
+</ivr>

+ 16 - 0
ivr/MYD_Normal.xml

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<ivr>
3
+	<flow Name="MYD" Type="normal" MatchedNum="" MatchedLine="" Concurrency="1">
4
+		<cell Name="CELL_START" Pos="1" Next="2" Note="满意度开始节点" />
5
+		<cell Name="CELL_DEFINEVAR" Pos="2" Next="3" Note="定义变量节点">
6
+			<DefVar VarType="1" VarName="Key" VarVal="0" />
7
+		</cell>
8
+		<cell Name="CELL_AUDIODTMF" Pos="3" PlayType="1" ContentType="1" Content="D:\midware\wav\mydstart.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
9
+		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="Key" SuccessPos="4" FailPos="19" HangupPos="19" Note="满意度调查放音" />
10
+		<cell Name="CELL_SQL" Pos="4" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter5.1;Data Source=192.168.4.18" SqlStr="exec P_OptCallRecords '','%[CallID]',1,0,'%[Key]',''" IsSaved="no" SuccessPos="5" FailPos="5" Note="满意度更新通话记录" />
11
+		<cell Name="CELL_AUDIODTMF" Pos="5" PlayType="2" ContentType="1" Content="D:\midware\wav\mydend.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
12
+		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="0" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="19" FailPos="19" HangupPos="19" Note="满意度放结束音" />
13
+		<cell Name="CELL_HANGUP" Pos="19" Next="20" Note="满意度挂机节点" />
14
+		<cell Name="CELL_END" Pos="20" Note="满意度结束节点" />
15
+  </flow>		
16
+</ivr>

BIN
ivr/wav/mydend.wav


BIN
ivr/wav/mydstart.wav


BIN
ivr/wav/保持音.wav


BIN
ivr/wav/假期提示音.wav


BIN
ivr/wav/坐席全忙.wav


BIN
ivr/wav/欢迎词.wav


BIN
ivr/wav/留言提示音.wav


BIN
ivr/wav/留言结束提示音.wav


BIN
ivr/wav/转值班电话提示.wav


BIN
ivr/wav/通话录音提示音.wav


BIN
ivr/wav/黑名单提示音.wav


+ 49 - 0
sql/sql_20180111_P_GetBlacklist.sql

@@ -0,0 +1,49 @@
1
+
2
+/****** Object:  StoredProcedure [dbo].[P_GetBlacklist]    Script Date: 01/02/2018 16:09:35 ******/
3
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_GetBlacklist]') AND type in (N'P', N'PC'))
4
+DROP PROCEDURE [dbo].[P_GetBlacklist]
5
+GO
6
+
7
+
8
+
9
+/****** Object:  StoredProcedure [dbo].[P_GetBlacklist]    Script Date: 01/02/2018 16:09:35 ******/
10
+SET ANSI_NULLS ON
11
+GO
12
+
13
+SET QUOTED_IDENTIFIER ON
14
+GO
15
+
16
+
17
+
18
+CREATE PROCEDURE [dbo].[P_GetBlacklist] 
19
+(
20
+  @Tel NVARCHAR(50),
21
+  @Callid NVARCHAR(50)
22
+)
23
+AS
24
+BEGIN
25
+
26
+	SET NOCOUNT ON;
27
+	declare @c int=0;
28
+	
29
+	select top 1 @c=COUNT(1) from T_Call_Blacklist 
30
+	where isnull(F_TelPhone,'')like '%'+@Tel+'%'  
31
+		and F_IsDelete=0 
32
+		and getdate() between F_SetTime and F_RemoveTime 
33
+	
34
+	if @c>0
35
+	begin
36
+		update T_Call_CallRecords set CallState=1,DealType=1,IsDeal=1 where CallId=@Callid
37
+		update T_Call_Blacklist set F_InterceptNum=F_InterceptNum+1
38
+	where isnull(F_TelPhone,'')like '%'+@Tel+'%'  
39
+		and F_IsDelete=0 
40
+		and getdate() between F_SetTime and F_RemoveTime 
41
+	end
42
+	
43
+	select @c as BlackListVerify
44
+END
45
+
46
+
47
+GO
48
+
49
+

+ 42 - 0
sql/sql_20180111_P_GetHolidays.sql

@@ -0,0 +1,42 @@
1
+
2
+/****** Object:  StoredProcedure [dbo].[P_GetHolidays]    Script Date: 01/11/2018 16:08:22 ******/
3
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_GetHolidays]') AND type in (N'P', N'PC'))
4
+DROP PROCEDURE [dbo].[P_GetHolidays]
5
+GO
6
+
7
+
8
+/****** Object:  StoredProcedure [dbo].[P_GetHolidays]    Script Date: 01/11/2018 16:08:22 ******/
9
+SET ANSI_NULLS ON
10
+GO
11
+
12
+SET QUOTED_IDENTIFIER ON
13
+GO
14
+
15
+
16
+
17
+
18
+CREATE PROCEDURE [dbo].[P_GetHolidays] 
19
+AS
20
+BEGIN
21
+
22
+	SET NOCOUNT ON;
23
+	
24
+	declare @count int=0;
25
+	
26
+	
27
+	SELECT @count=count(*) FROM T_Sys_WorkCalendar 
28
+		WHERE getdate() between F_DateId and DATEADD(dd,1,F_DateId) 
29
+			AND F_WorkingFlag=1 
30
+			AND Convert(varchar(20),getdate(),108)>=Convert(varchar(20),'07:30:00',108) 
31
+			AND Convert(varchar(20),getdate(),108)<=Convert(varchar(20),'18:30:00',108)
32
+	
33
+	
34
+	
35
+	select @count as HolidayVerify
36
+END
37
+
38
+
39
+
40
+GO
41
+
42
+

+ 40 - 0
sql/sql_20180111_P_GetIVRWelcomes.sql

@@ -0,0 +1,40 @@
1
+
2
+/****** Object:  StoredProcedure [dbo].[P_GetIVRWelcomes]    Script Date: 01/02/2018 16:09:35 ******/
3
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_GetIVRWelcomes]') AND type in (N'P', N'PC'))
4
+DROP PROCEDURE [dbo].[P_GetIVRWelcomes]
5
+GO
6
+
7
+
8
+
9
+/****** Object:  StoredProcedure [dbo].[P_GetIVRWelcomes]    Script Date: 01/02/2018 16:09:35 ******/
10
+SET ANSI_NULLS ON
11
+GO
12
+
13
+SET QUOTED_IDENTIFIER ON
14
+GO
15
+
16
+
17
+
18
+CREATE PROCEDURE [dbo].[P_GetIVRWelcomes] 
19
+AS
20
+BEGIN
21
+
22
+	SET NOCOUNT ON;
23
+	declare @words varchar(50);
24
+	
25
+	declare @isw int=0;
26
+	
27
+	select top 1 @words=F_Content from [12345].[dbo].[T_Sys_IVRWords] where isnull(F_IsState,0)=1  and (F_StartDate<=getdate() and F_EndDate>=getdate())
28
+	
29
+	if ISNULL(@words,'')!=''
30
+	begin
31
+	set @isw=1
32
+	end
33
+	
34
+	select @isw as isw,@words as words
35
+END
36
+
37
+
38
+GO
39
+
40
+

+ 54 - 0
sql/sql_20180111_P_OptCallRecords.sql

@@ -0,0 +1,54 @@
1
+
2
+
3
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_OptCallRecords]') AND type in (N'P', N'PC'))
4
+DROP PROCEDURE [dbo].[P_OptCallRecords]
5
+GO
6
+
7
+
8
+SET ANSI_NULLS ON
9
+GO
10
+
11
+SET QUOTED_IDENTIFIER ON
12
+GO
13
+
14
+
15
+CREATE PROCEDURE [dbo].[P_OptCallRecords] 
16
+(
17
+  @Tel NVARCHAR(50), --来电号码
18
+  @Callid NVARCHAR(50),--callid
19
+  @type int,--1.插入通话记录;2.更新挂机时间;3.更新排队开始时间;4.插入留言;5.更新满意度
20
+  @bustype int,
21
+  @mydkey NVARCHAR(5),
22
+  @recfile nvarchar(50) --留言的录音文件
23
+)
24
+AS
25
+BEGIN
26
+
27
+	SET NOCOUNT ON;
28
+	if @type=1
29
+	begin--1.插入通话记录;
30
+		INSERT INTO T_Call_CallRecords(CallId,CallNumber,CallType,CallState,DealType,BeginTime,IvrStartTime,IvrEndTime,EndTime,LongTime,IsDeal,OperateType,MYD) 
31
+		VALUES(@Callid,@Tel,0,0,0,GETDATE(),GETDATE(),GETDATE(),GETDATE(),0,0,0,@mydkey)
32
+	end
33
+	else if @type=2
34
+	begin--2.更新挂机时间;
35
+		update T_Call_CallRecords set EndTime=GETDATE() where CallId=@Callid
36
+	end
37
+	else if @type=3
38
+	begin--3.更新排队开始时间;
39
+		update T_Call_CallRecords set BusinessType=@bustype, WaitStartTime=GETDATE() where callid=@Callid
40
+	end
41
+	else if @type=4
42
+	begin--4.插入留言;
43
+		INSERT INTO T_Call_LeaveRecord(F_CallId,F_Phone,F_LeaveTime,F_Status,F_RecFileUrl) 
44
+		VALUES(@Callid,@Tel,GETDATE(),0,@recfile)
45
+	end
46
+	else if @type=5
47
+	begin--5.更新满意度
48
+		update T_Call_CallRecords set MYD=@mydkey where CallId=@Callid
49
+	end
50
+END
51
+
52
+GO
53
+
54
+

+ 84 - 0
sql/sql_20180111_T_Sys_IVRWords.sql

@@ -0,0 +1,84 @@
1
+
2
+
3
+/****** Object:  Table [dbo].[T_Sys_IVRWords]    Script Date: 12/27/2017 16:03:41 ******/
4
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[T_Sys_IVRWords]') AND type in (N'U'))
5
+DROP TABLE [dbo].[T_Sys_IVRWords]
6
+GO
7
+
8
+
9
+
10
+/****** Object:  Table [dbo].[T_Sys_IVRWords]    Script Date: 12/27/2017 16:03:41 ******/
11
+SET ANSI_NULLS ON
12
+GO
13
+
14
+SET QUOTED_IDENTIFIER ON
15
+GO
16
+
17
+CREATE TABLE [dbo].[T_Sys_IVRWords](
18
+	[F_ID] [int] NOT NULL identity(1,1),
19
+	[F_Title] [nvarchar](500) NULL,
20
+	[F_Content] [ntext] NULL,
21
+	[F_StartDate] [datetime] NULL default(getdate()),
22
+	[F_EndDate] [datetime] NULL default(getdate()),
23
+	[F_Remark] [ntext] NULL,
24
+	[F_IsState] [int] NULL default(0),
25
+	[F_CreateTime] [datetime] NULL default(getdate()),
26
+	[F_CreateUser] [nvarchar](50) NULL,
27
+	[F_IsDel] [int] NULL default(0)
28
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
29
+
30
+GO
31
+
32
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自增ID' , @level0type=N'SCHEMA',
33
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
34
+@level2name=N'F_ID'
35
+GO
36
+
37
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'标题' , @level0type=N'SCHEMA',
38
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
39
+@level2name=N'F_Title'
40
+GO
41
+
42
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'内容' , @level0type=N'SCHEMA',
43
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
44
+@level2name=N'F_Content'
45
+GO
46
+
47
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生效时间' , @level0type=N'SCHEMA',
48
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
49
+@level2name=N'F_StartDate'
50
+GO
51
+
52
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'失效时间' , @level0type=N'SCHEMA',
53
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
54
+@level2name=N'F_EndDate'
55
+GO
56
+
57
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',
58
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
59
+@level2name=N'F_Remark'
60
+GO
61
+
62
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态:1启动,0不启动' , 
63
+@level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', 
64
+@level2type=N'COLUMN',@level2name=N'F_IsState'
65
+GO
66
+
67
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'添加时间' , @level0type=N'SCHEMA',
68
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
69
+@level2name=N'F_CreateTime'
70
+GO
71
+
72
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'添加人' , @level0type=N'SCHEMA',
73
+@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', @level2type=N'COLUMN',
74
+@level2name=N'F_CreateUser'
75
+GO
76
+
77
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除:0未删除,1已删除' , 
78
+@level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords', 
79
+@level2type=N'COLUMN',@level2name=N'F_IsDel'
80
+GO
81
+
82
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'IVR语音文件表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Sys_IVRWords'
83
+GO
84
+