1. FSGUI-V2.5.0.1發布以及外呼機器人相關接口-V2:
  2. 寧衛通信
  3. 新聞動態
  4. 寧衛新聞
  5. FSGUI-V2.5.0.1發布以及外呼機器人相關接口-V2

FSGUI-V2.5.0.1發布以及外呼機器人相關接口-V2

在語音機器人推出的這段時間內,大量的各行業客戶均從詢到用,感謝各位的支持!針對客戶的需求,我們也在不斷地提升我們的功能和性能,提升我們的價值。

與此同時,我們的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接口,人機處理接口 人機處理接口是仿催收


3.1 notify定義

 enter : 表明有電話剛進入,則我們需要進行開場白了,呼入的為:您好,有什么能幫您?    呼出的為:您好,我是xx公司,做xx的!

      asr_result:是由nway_power通過采集數據后送給識別引擎后識別結果送過來了

      vad_short_sentence_file:在mode2時,進行放音時采集,用于更精準的打斷功能 

3.2 action定義

 asr:用于播放tts合成語音或放a.wav等預錄制的語音

      hangup:用于放音后掛機

      bridge:轉到某個座席,可為內線也可為外線

      stop_asr:用于在播放一個長語音時,由于識別引擎識別到人工部分說語音而中止當前的流程 

3.3 params定義

 prompt:用于將交互時的要合成的tts或預錄的語音文件傳給系統

      cause:用于標明掛機原因

      usermsg:用戶定義參數 number:用于標明要呼轉的號碼

      callerid:用于標明呼出的號碼,即外顯號碼

       gateway:用于標明是通過哪個網關呼出,如果為空,則是呼轉給內線號碼

       max_waiting_ms:最長等待時長

       retry:嘗試次數 mode0為只要有響動就打斷,1為不打斷一直到放音結束,2為做實時采集用戶人工語音,并識別后送給業務層處理,按用戶命令來走一下步 

3.4 golang業務處理示例

 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系列: PPT和簡介:http://www.6fok.com/topics/105

下載地址:


V2.4.0.1 ISO: https://pan.baidu.com/s/1jI5ryzc


產品部分鏈接:

SIP錄音系統正式上線V1.0: http://mp.weixin.qq.com/s/-OfSZGpPnhwv-AdTHTJarQ

模擬一個簡單的智能客服系統:http://mp.weixin.qq.com/s/bpvApLKQEpg9w36-WhPatQ

使用FSGUI進行快速話務呼叫和處理:http://mp.weixin.qq.com/s/strqQoHJ2mOOErl_AyGvyw


呼叫中心開發培訓及服務鏈接:

FreeSwitch企業培訓PPT:https://mp.weixin.qq.com/s/7Qa1voUhS2Rn5PHJ5J6RNw

FreeSwitch簡要使用教程:http://mp.weixin.qq.com/s/PnWb9RAC4eVjiKUuexLfIg

VoIP負載均衡方案:http://mp.weixin.qq.com/s/LtMJyG3GQUTVsDSroAuPsw

ag真人视讯腾讯微博 pk10人工大小单双计划 皇冠体育中心羽毛球馆电话 武汉麻将赖子怎么用 双色球蓝球复式兑奖 网赌急速赛车 五分彩怎么玩 竞彩篮球比分推荐 比特币行情app 南昌麻将照镜子打法 重庆时时彩2期计划网页 Ebet娱乐城官方网站-Welcome 北单胜负过关比分 云南11选5技巧 彩票平台注册送体验金 pk10前三单式大底万能码 辽宁快乐12胆拖玩法