FSGUI-V2.5.0.1發布以及外呼機器人相關接口
2018-1-25 V2.5.0.1 更新內容:
-
增加接口用于外呼機器人呼叫
-
增加外呼機器人流程對接
-
對FreeSwitch進行部分bug的修復
在語音機器人推出的這段時間內,大量的各行業客戶均從詢到用,感謝各位的支持!
針對客戶的需求,我們也在不斷地提升我們的功能和性能,提升我們的價值。
與此同時,我們的FSGUI也升級到了 V2.5.0.1,水到渠成嘛,體驗版可以在以下位置下載:
https://pan.baidu.com/s/1bpSEcmr
有關外呼機器人的接口如下:
1 注冊獲取token接口login
curl -d '{"username": "admin", "password": "admin"}' -H "Content-Type:application/json" http://192.168.0.200:8085/api/login
2 發起呼叫的接口
curl -H "Content-Type: application/json" -d '{"Job_uuid":"feew32223dd3e32re32e32","Callernum":"18621575908", "Calleenum":"999888","A_gatewayname":"nway1","A_effective_caller_id_num":"057168686868", "A_external":"true","Cdr_url":"http://127.0.0.1:8085/fs/cdr","Event_url":"http://127.0.0.1:8085/fs/callstate","Record_file":"mytest.wav"}' -H "Authorization:Nway TOKEN" http://127.0.0.1:8085/api/originate_i
3 需要實現的三個接口,cdr接口,event接口,人機處理接口
人機處理接口是仿催收
func AsrServer(w http.ResponseWriter, req *http.Request) {
defer func() {
if err := recover(); err != nil {
fmt.Println(err)
return
}
}()
con, _ := ioutil.ReadAll(req.Body)
if req != nil {
defer req.Body.Close()
}
//fmt.Println(string(con))
var dat map[string]interface{}
fmt.Println("-------------------------------------------------------------------------------------------")
fmt.Println(string(con))
err := json.Unmarshal(con, &dat)
if err == nil {
if dat["notify"] != nil && dat["calleeid"] != nil && dat["callerid"] != nil && dat["callid"] != nil {
notify := dat["notify"].(string)
//calleeid := dat["calleeid"].(string)
//callerid := dat["callerid"].(string)
//callid := dat["callid"].(string)
errorcode := 0
if dat["errorcode"] != nil {
errorcode = int(dat["errorcode"].(float64))
}
message := ""
if dat["message"] != nil {
message = dat["message"].(string)
}
prompt := "您好!在嗎?"
if notify == "enter" {
jsonStr := `{"action":"asr","flowdata":"","params":{"prompt":"您好,我們是建設銀行信用卡中心的,您是張先生嗎?","max_waiting_ms":7000,"retry":0,"mode":1}}`
//w.WriteHeader()
w.Write([]byte(jsonStr))
} else if notify == "asr_result" {
if errorcode == 0 {
if strings.Contains(message, "不是") || strings.Contains(message, "打錯") {
prompt = "不好意思,打擾您了!"
jsonStr := `{"action":"hangup","flowdata":"","params":{"prompt":"` + prompt + `","cause":0,"usermsg":"caller request"}}`
w.Write([]byte(jsonStr))
} else if strings.Contains(message, "忙") || strings.Contains(message, "上班") || strings.Contains(message, "不方便") {
prompt = "那我下次再找您!"
jsonStr := `{"action":"hangup","flowdata":"","params":{"prompt":"` + prompt + `","cause":0,"usermsg":"caller request"}}`
w.Write([]byte(jsonStr))
} else if strings.Contains(message, "是") || strings.Contains(message, "沒錯") {
prompt = "張先生,您好,建設銀行信用卡中心,來電提醒您信用卡(尾號為9527)已經逾期,本期全額1000元,最低還款額800元,請您盡快處理。"
} else if strings.Contains(message, "處理") {
prompt = "謝謝您!再見。"
} else if strings.Contains(message, "怎么了") || strings.Contains(message, "什么事") || strings.Contains(message, "哪里") || strings.Contains(message, "啥事") {
prompt = "您好,我們是建設銀行信用卡中心的,您是張先生嗎?"
} else if strings.Contains(message, "過期") || strings.Contains(message, "沒收到") || strings.Contains(message, "賬單") {
prompt = "張先生,是這樣的我們每個月在賬單日之后都會給您寄對賬單。我先跟您核對一下您登記的通信地址。您地址是:深圳市南山區科發路6666號11棟801,您看看對不對?"
} else if strings.Contains(message, "不對") || strings.Contains(message, "錯的") {
prompt = "張先生,系統登記的地址與您剛提供的地址不符。我建議您盡快聯系95533客服熱線更改地址或要求客服重新補寄對賬單給您。但目前賬戶已經逾期,希望您盡快處理,以免影響您的信用記錄。 您本期賬單總額1000元,最低還款額800元,請您盡快處理。"
} else if strings.Contains(message, "對的") || strings.Contains(message, "是的") || strings.Contains(message, "沒問題") {
prompt = "張先生,核對地址無誤。我們是根據您登記的地址統一寄發對賬單,也許是因為郵遞的誤差導致您還沒有收到,如需重新郵寄賬單請您聯系我行95533客服熱線咨詢。但目前賬戶已經逾期,您本期賬單總額1000元,最低還款額800元,為免影響您的信用記錄,請您盡快處理。謝謝您!再見。"
} else if strings.Contains(message, "熱線") {
prompt = "95533"
} else if strings.Contains(message, "還款") || strings.Contains(message, "辦理") {
prompt = "好的,張先生,再次提醒您,您的信用卡本期賬單金額是1000元,最低還款額是800元。請您盡快還款。謝謝您!再見。"
} else if strings.Contains(message, "再見") || strings.Contains(message, "好的") {
prompt = "好的,再見!"
jsonStr := `{"action":"hangup","flowdata":"","params":{"prompt":"` + prompt + `","cause":0,"usermsg":"caller request"}}`
w.Write([]byte(jsonStr))
} else if strings.Contains(message, "轉人工") {
jsonStr := `{"action":"bridge","flowdata":"","params":{"number":"18621575908","callerid":"02112345678","gateway":"nway1","prompt":"","background":""}}`
fmt.Println(jsonStr)
w.Write([]byte(jsonStr))
} else {
fmt.Println(message)
}
} else if errorcode == -1 {
//prompt = "您在嗎?"
} else if errorcode == -2 {
prompt = ""
}
if prompt != "" {
jsonStr := `{"action":"asr","params":{"prompt":"` + prompt + `","max_waiting_ms":10000,"retry":0,"mode":1}}`
fmt.Println(jsonStr)
w.Write([]byte(jsonStr))
}
}
}
} else {
fmt.Println("unmarshal event message error:", err, " &&& message:", string(con))
}
}
4 當發起呼叫時需要指定cdr 和event接口的url
Nway_power系列:
FSGUI系列:
FSGUI路由管理:FSGUI路由管理
FSGUI賬號管理:FSGUI賬號管理
下載地址:
V2.4.0.1 ISO: https://pan.baidu.com/s/1jI5ryzc
產品部分鏈接:
呼叫中心開發培訓及服務鏈接: