Bladeren bron

IVR文件和语音

zhengbingbing 8 jaren geleden
bovenliggende
commit
96dd0addbf

BIN
codegit/.vs/AutobioCallCenter/v14/.suo


+ 99 - 0
ivr/IVR_Auto.xml

1
+<?xml version="1.0" encoding="utf-8"?>
2
+<ivr>
3
+	<flow Name="IVR_Auto" 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="8" 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
+		<!-- <cell Name="CELL_AUDIODTMF" Pos="12" 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="8" FailPos="24" HangupPos="24" Note="放欢迎词" /> -->
41
+		<!--欢迎词-->
42
+		
43
+		<!--节假日-->
44
+		<!--判断是否加班或节假日,是放节假日音后挂机,否转坐席-->
45
+		<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="节假日查询" />
46
+		<cell Name="CELL_RECORDSET" Pos="9" LPos="10" EPos="10" GPos="10" Note="取节假日结果">
47
+			<Map Var="HolidayVerify" />
48
+		</cell>
49
+		<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="判断节假日" />
50
+		<cell Name="CELL_AUDIODTMF" Pos="11" PlayType="2" ContentType="1" Content="D:\CTI\wav\假期提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
51
+		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="24" FailPos="24" HangupPos="24" Note="放节假日音" />
52
+		<!--节假日-->
53
+		
54
+		
55
+		<!--排队,转坐席-->
56
+		<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 '%[CallerID]','%[CalleeID]'" 
57
+		IsSaved="yes" SuccessPos="604" FailPos="24" Note="获取坐席组ID" />
58
+		<cell Name="CELL_RECORDSET" Pos="604" LPos="501" EPos="501" GPos="501" Note="获取坐席组ID结果">
59
+			<Map Var="GroupID" />
60
+		</cell>
61
+		
62
+		<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="更新排队开始时间" />
63
+		<!--坐席排队时,没有登录坐席直接转值班电话,无空闲坐席转坐席全忙放音,有空闲坐席继续播报-->
64
+		<!--Strategy:座席分配策略,1循环接听、2最大空闲接听、3最少接听接听、4指定坐席接听,指定多座席时,坐席工号之间用‘|’分隔,坐席数不要超过4个。-->
65
+		<cell Name="CELL_QUEUE" Pos="13" Strategy="2" VipLevelType="1" VipLevel="0" GroupType="2" Group="GroupID" AgentVar="AgentNo" ExtenVar="AgentExtNo" 
66
+		NoAgentPos="29" NoFreePos="14" SuccessPos="18" HangupPos="24" Note="排队节点" />
67
+		
68
+		<cell Name="CELL_AUDIODTMF" Pos="14" PlayType="1" ContentType="1" Content="D:\CTI\wav\坐席全忙.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
69
+		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="Key" SuccessPos="15" FailPos="24" HangupPos="24" Note="坐席全忙放音" />
70
+		<cell Name="CELL_BRANCH" Pos="15" Var="Key" DefaultPos="14" Note="分支节点">
71
+			<Branch Value="1" Pos="16" /><!--1.继续等待-->
72
+		</cell>		
73
+		<cell Name="CELL_CONTINUEQUEUE" Pos="16" Agent="AgentNo" Exten="AgentExtNo" Audio="D:\CTI\wav\保持音.wav" Timeout="60" SuccessPos="18" HangupPos="24" TimeoutPos="14" Note="继续排队节点" />
74
+		<cell Name="CELL_CANCELQUEUE" Pos="17" Reason="等烦了" Next="24" Note="放弃排队节点" />		
75
+		<cell Name="CELL_AUDIODTMF" Pos="18" PlayType="2" ContentType="1" Content="D:\CTI\wav\通话录音提示音.wav" TTSNumMode="1" 
76
+		TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="31" FailPos="24" HangupPos="24" Note="转接电话提示录音" />
77
+		<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="播报工号" />
78
+		<cell Name="CELL_TURNAGENT" Pos="19" Exten="AgentExtNo" SuccessPos="25" FailPos="17" HangupPos="24" Note="转座席节点">
79
+		  <BandData Var="CallID" />
80
+		</cell>
81
+		<!--排队,转坐席-->
82
+				
83
+		<!--转值班电话-->
84
+		<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="转值班电话提示音" />
85
+		<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="获取值班电话" />
86
+		<cell Name="CELL_RECORDSET" Pos="702" LPos="30" EPos="30" GPos="30" Note="获取值班电话结果">
87
+			<Map Var="zbdh" />
88
+		</cell>
89
+		<cell Name="CELL_TRANSFEROUT" Pos="30" CalleeNumType="2" CalleeNum="zbdh" Timeout="60" SuccessPos="25" FailPos="24" Note="转值班电话" />
90
+		<!--转值班电话-->
91
+		
92
+		<!---->
93
+		<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" 
94
+		SuccessPos="204" FailPos="25" Note="更新挂机时间" />
95
+		<cell Name="CELL_HANGUP" Pos="204" Next="25" Note="挂机节点" />
96
+		<cell Name="CELL_END" Pos="25" Note="结束节点" />	
97
+		<!---->
98
+	</flow>		
99
+</ivr>

+ 47 - 0
ivr/sql/sql_P_GetBlacklist.sql

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

+ 42 - 0
ivr/sql/sql_P_GetHolidays.sql

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

+ 70 - 0
ivr/sql/sql_P_GetSeatGroup.sql

1
+/****** Object:  StoredProcedure [dbo].[P_GetSeatGroup]    Script Date: 03/10/2018 09:48:37 ******/
2
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_GetSeatGroup]') AND type in (N'P', N'PC'))
3
+DROP PROCEDURE [dbo].[P_GetSeatGroup]
4
+GO
5
+
6
+/****** Object:  StoredProcedure [dbo].[P_GetSeatGroup]    Script Date: 03/10/2018 09:48:37 ******/
7
+SET ANSI_NULLS ON
8
+GO
9
+
10
+SET QUOTED_IDENTIFIER ON
11
+GO
12
+
13
+
14
+
15
+
16
+
17
+
18
+CREATE PROCEDURE [dbo].[P_GetSeatGroup] 
19
+(
20
+	@Caller NVARCHAR(50), --主叫号码
21
+	@Callee NVARCHAR(50) --被叫号码
22
+)
23
+AS
24
+BEGIN
25
+
26
+	SET NOCOUNT ON;
27
+	
28
+	declare @locationID int--主叫号码的归属地ID
29
+	declare @areacode nvarchar(50)--区号
30
+	declare @usercode nvarchar(50)--需要返回的坐席
31
+	declare @zxzid int --坐席组ID
32
+	
33
+	--根据被叫号码获取对应坐席组
34
+	if @Callee='8001'
35
+	begin
36
+		select @zxzid= F_ZXZID from T_Sys_SeatGroup where F_ZXZCode='KFZ'
37
+	end
38
+	else
39
+	begin
40
+		--处理主叫号码 获取手机号码前7位
41
+		declare @first char(5)
42
+		declare @Top7 char(10)
43
+		set @first=LEFT(@Caller, 1);
44
+		if @first='0'
45
+		begin
46
+			set @Top7=SubString(@Caller, 2,8);
47
+		end
48
+		else
49
+		begin
50
+			set @Top7=LEFT(@Caller, 1);
51
+		end
52
+		--根据前7位获取区号
53
+		select @areacode=F_ZipCode FROM T_Sys_MobileData where F_MobileNum=@Top7
54
+		--根据区号获取地区ID
55
+		select @locationID=id FROM tel_location where tel=@areacode
56
+		--根据地区ID获取对应负责的坐席组ID
57
+		select @zxzid=userid from telloc_users where tellocid=@locationID
58
+	end
59
+	
60
+	select @zxzid
61
+	
62
+END
63
+
64
+
65
+
66
+
67
+
68
+GO
69
+
70
+

+ 30 - 0
ivr/sql/sql_P_GetZBDH.sql

1
+/****** Object:  StoredProcedure [dbo].[P_GetZBDH]    Script Date: 03/10/2018 09:49:33 ******/
2
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_GetZBDH]') AND type in (N'P', N'PC'))
3
+DROP PROCEDURE [dbo].[P_GetZBDH]
4
+GO
5
+/****** Object:  StoredProcedure [dbo].[P_GetZBDH]    Script Date: 03/10/2018 09:49:33 ******/
6
+SET ANSI_NULLS ON
7
+GO
8
+
9
+SET QUOTED_IDENTIFIER ON
10
+GO
11
+
12
+
13
+CREATE PROCEDURE [dbo].[P_GetZBDH] 
14
+AS
15
+BEGIN
16
+
17
+	SET NOCOUNT ON;
18
+	declare @zbdh varchar(50)
19
+	declare @zbid int
20
+	select Top 1 @zbdh=F_ZBDH,@zbid=F_ZBID from T_Call_ZBDH order by F_CallinTime,F_ZBID
21
+	
22
+	update T_Call_ZBDH set F_CallinTime=GETDATE() where F_ZBID=@zbid
23
+
24
+    
25
+	select @zbdh
26
+END
27
+
28
+GO
29
+
30
+

+ 55 - 0
ivr/sql/sql_P_OptCallRecords.sql

1
+/****** Object:  StoredProcedure [dbo].[P_OptCallRecords]    Script Date: 03/10/2018 09:46:16 ******/
2
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_OptCallRecords]') AND type in (N'P', N'PC'))
3
+DROP PROCEDURE [dbo].[P_OptCallRecords]
4
+GO
5
+
6
+/****** Object:  StoredProcedure [dbo].[P_OptCallRecords]    Script Date: 03/10/2018 09:46:16 ******/
7
+SET ANSI_NULLS ON
8
+GO
9
+
10
+SET QUOTED_IDENTIFIER ON
11
+GO
12
+
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
+
53
+GO
54
+
55
+

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