From bcc608a58000f23aace963000e5d6b375c24ee02 Mon Sep 17 00:00:00 2001 From: JungJun Date: Wed, 24 Aug 2022 12:49:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=88=EC=99=B8=20=EB=B6=84=EA=B8=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- icshttp/handler.go | 202 ++++++++++++++++++++++----------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/icshttp/handler.go b/icshttp/handler.go index 36f07ec..183e439 100644 --- a/icshttp/handler.go +++ b/icshttp/handler.go @@ -201,110 +201,110 @@ func (s *ScenarioSession) BOTPFunc(w http.ResponseWriter, r *http.Request) { // case "space": // case "null": // } - } - - //////////////////////////////////// - //////// SCENARIO MAPPING/////////// - //////////////////////////////////// - - // 현재 들어온 method로 분기 - // next 시나리오로 넘겨주기 - fmt.Printf("response %+v", request) - if request.Method == "HANGUP" { - response.ResultCode = 200 - response.Token = request.Token - response.Action = "" - response.AnounceMents = "" - response.Data.BargeIn = "" - response.Data.RecodingFile = "" - response.Data.SttMaxTime = 10 - } else if request.Method != "INIT" && request.TalkText == "" { - response.ResultCode = 200 - response.Token = request.Token - if s.session[request.Token].NotUnderstand == 3 { - response.AnounceMents = "잘 이해하지 못했습니다. 정확한 상담을 위해 매장으로 연결해드릴게요." - response.Action = "END" - } else { - response.AnounceMents = "잘 이해하지 못했습니다. 다시 말씀해주세요." - response.Action = "STT" - s.session[request.Token] = ResStatus{Count: 1, Status: scnarioConf.Order[0], NotUnderstand: s.session[request.Token].NotUnderstand + 1} - } - response.Data.BargeIn = "" - response.Data.RecodingFile = "" - response.Data.SttMaxTime = 10 } else { + //////////////////////////////////// + //////// SCENARIO MAPPING/////////// + //////////////////////////////////// + + // 현재 들어온 method로 분기 + // next 시나리오로 넘겨주기 + fmt.Printf("response %+v", request) if request.Method == "HANGUP" { - s.ByeCheck(request.Method, request.Token) - } else { - switch request.Method { - case "INIT": - token := createToken(request.CallId) - response.ResultCode = 200 - response.Token = token - response.Action = scnarioConf.Order[1] - response.AnounceMents = scnarioConf.Value[0] - response.Data.BargeIn = scnarioConf.BargeIn[0] - response.Data.RecodingFile = "Y" - response.Data.SttMaxTime = scnarioConf.SttMaxTime[0] - - s.m.Lock() - s.session[token] = ResStatus{Count: 1, Status: scnarioConf.Order[0], NotUnderstand: 0} - s.m.Unlock() - case "STT": - response.ResultCode = 200 - response.Token = request.Token - response.Action = scnarioConf.Order[s.session[request.Token].Count+1] - response.AnounceMents = scnarioConf.Value[s.session[request.Token].Count] - response.Data.BargeIn = scnarioConf.BargeIn[s.session[request.Token].Count] - response.Data.RecodingFile = "Y" - response.Data.SttMaxTime = scnarioConf.SttMaxTime[s.session[request.Token].Count] - - s.m.Lock() - s.session[request.Token] = ResStatus{Count: s.session[request.Token].Count + 1, Status: scnarioConf.Order[s.session[request.Token].Count+1]} - s.m.Unlock() - case "DTMF": - response.ResultCode = 200 - response.Token = request.Token - response.Action = scnarioConf.Order[s.session[request.Token].Count+1] - response.AnounceMents = scnarioConf.Value[s.session[request.Token].Count] - response.Data.BargeIn = "N" - response.Data.RecodingFile = "Y" - response.Data.SttMaxTime = 3 - - s.m.Lock() - s.session[request.Token] = ResStatus{Count: s.session[request.Token].Count + 1, Status: scnarioConf.Order[s.session[request.Token].Count+1]} - s.m.Unlock() - case "REFER": - response.ResultCode = 200 - response.Token = request.Token + response.ResultCode = 200 + response.Token = request.Token + response.Action = "" + response.AnounceMents = "" + response.Data.BargeIn = "" + response.Data.RecodingFile = "" + response.Data.SttMaxTime = 10 + } else if request.Method != "INIT" && request.TalkText == "" { + response.ResultCode = 200 + response.Token = request.Token + if s.session[request.Token].NotUnderstand == 3 { + response.AnounceMents = "잘 이해하지 못했습니다. 정확한 상담을 위해 매장으로 연결해드릴게요." response.Action = "END" - response.AnounceMents = "네. 매장으로 연결해드릴게요." - response.Data.BargeIn = "" - response.Data.RecodingFile = "" - response.Data.SttMaxTime = 0 - response.Data.TelNo = request.TelNo - - s.m.Lock() - s.session[request.Token] = ResStatus{Count: s.session[request.Token].Count + 1, Status: scnarioConf.Order[s.session[request.Token].Count+1]} - s.m.Unlock() - case "BYE": // 전화 종료 요청 - response.ResultCode = 200 - response.Token = request.Token - response.Action = "END" - response.AnounceMents = "접수가 완료되었습니다." - response.Data.BargeIn = "Y" - response.Data.RecodingFile = "Y" - response.Data.SttMaxTime = 0 - // case "HANGUP": - // response.ResultCode = 200 - // response.Token = request.Token - // response.Action = "" - // response.AnounceMents = "" - // response.Data.BargeIn = "" - // response.Data.RecodingFile = "" - // response.Data.SttMaxTime = 0 - // if ByeCheck(request.Method, request.Token) { - // } + } else { + response.AnounceMents = "잘 이해하지 못했습니다. 다시 말씀해주세요." + response.Action = "STT" + s.session[request.Token] = ResStatus{Count: 1, Status: scnarioConf.Order[0], NotUnderstand: s.session[request.Token].NotUnderstand + 1} + } + response.Data.BargeIn = "" + response.Data.RecodingFile = "" + response.Data.SttMaxTime = 10 + } else { + if request.Method == "HANGUP" { + s.ByeCheck(request.Method, request.Token) + } else { + switch request.Method { + case "INIT": + token := createToken(request.CallId) + response.ResultCode = 200 + response.Token = token + response.Action = scnarioConf.Order[1] + response.AnounceMents = scnarioConf.Value[0] + response.Data.BargeIn = scnarioConf.BargeIn[0] + response.Data.RecodingFile = "Y" + response.Data.SttMaxTime = scnarioConf.SttMaxTime[0] + + s.m.Lock() + s.session[token] = ResStatus{Count: 1, Status: scnarioConf.Order[0], NotUnderstand: 0} + s.m.Unlock() + case "STT": + response.ResultCode = 200 + response.Token = request.Token + response.Action = scnarioConf.Order[s.session[request.Token].Count+1] + response.AnounceMents = scnarioConf.Value[s.session[request.Token].Count] + response.Data.BargeIn = scnarioConf.BargeIn[s.session[request.Token].Count] + response.Data.RecodingFile = "Y" + response.Data.SttMaxTime = scnarioConf.SttMaxTime[s.session[request.Token].Count] + + s.m.Lock() + s.session[request.Token] = ResStatus{Count: s.session[request.Token].Count + 1, Status: scnarioConf.Order[s.session[request.Token].Count+1]} + s.m.Unlock() + case "DTMF": + response.ResultCode = 200 + response.Token = request.Token + response.Action = scnarioConf.Order[s.session[request.Token].Count+1] + response.AnounceMents = scnarioConf.Value[s.session[request.Token].Count] + response.Data.BargeIn = "N" + response.Data.RecodingFile = "Y" + response.Data.SttMaxTime = 3 + + s.m.Lock() + s.session[request.Token] = ResStatus{Count: s.session[request.Token].Count + 1, Status: scnarioConf.Order[s.session[request.Token].Count+1]} + s.m.Unlock() + case "REFER": + response.ResultCode = 200 + response.Token = request.Token + response.Action = "END" + response.AnounceMents = "네. 매장으로 연결해드릴게요." + response.Data.BargeIn = "" + response.Data.RecodingFile = "" + response.Data.SttMaxTime = 0 + response.Data.TelNo = request.TelNo + + s.m.Lock() + s.session[request.Token] = ResStatus{Count: s.session[request.Token].Count + 1, Status: scnarioConf.Order[s.session[request.Token].Count+1]} + s.m.Unlock() + case "BYE": // 전화 종료 요청 + response.ResultCode = 200 + response.Token = request.Token + response.Action = "END" + response.AnounceMents = "접수가 완료되었습니다." + response.Data.BargeIn = "Y" + response.Data.RecodingFile = "Y" + response.Data.SttMaxTime = 0 + // case "HANGUP": + // response.ResultCode = 200 + // response.Token = request.Token + // response.Action = "" + // response.AnounceMents = "" + // response.Data.BargeIn = "" + // response.Data.RecodingFile = "" + // response.Data.SttMaxTime = 0 + // if ByeCheck(request.Method, request.Token) { + // } + } } } }