package ami // import ( // "fmt" // "pms-api-go/pkg/configs" // "pms-api-go/pkg/httpclient" // "pms-api-go/pkg/lfshook" // "strings" // "gopkg.in/ini.v1" // ) // func phoneCalls(event map[string]string) { // fmt.Println("=========================================== ") // fmt.Println("event[] = ", event) // fmt.Println("event = ", event["Event"]) // fmt.Println("AMIPushUrl = ", configs.PushConfigValue.AMIPushUrl) // fmt.Println("Channel = ", event["Channel"]) // var callDest string // if event["Channel"] != "" { // callDest = strings.Split(strings.Split(event["Channel"], "/")[1], "-")[0] // fmt.Println("callDest = ", callDest) // } // // /* 20241128 vtiger crm 对应 ============================================================ // // if configs.PushConfigValue.AMIPushUrl != "" { // // for _, eventName := range configs.PushConfigValue.AMIEvents { // // if eventName == event["Event"] { // // go httpclient.Post(event, configs.PushConfigValue.AMIPushUrl) // // break // // } // // } // // } // // var callId string // var callId = "10000007" // 测试用,每次测试 +1 // recordingUrl := "https%3A%2F%2Fs3.amazonaws.com%2Frecordings_2013%2F8e522852-72aa-11e5-ab5f-842b2b021118.mp3" // 测试用 // event["Exten"] = "123456789" // 测试用 // fmt.Println("Exten = ", event["Exten"]) // // 读取vtiger配置文件 // confPath := "/etc/asterisk/pms_api.conf" // cfg, err := ini.Load(confPath) // if err != nil { // lfshook.NewLogger().Error(err) // return // } // VTIGER_URL := cfg.Section("general").Key("vtigerUrl").String() // if VTIGER_URL == "" { // lfshook.NewLogger().Error("/etc/asterisk/pms_api.conf not set vtigerUrl") // return // } // var getURL string // // 呼叫发起事件 // if event["Event"] == "DialBegin" { // "DialBegin" "Newchannel" // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?from=147258369&to=12300001&event=call_initiated&call_id=12345678&direction=inbound // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?from=86147258369&event=call_initiated&call_id=12345678 // 可以省去部分参数 // // getURL := fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?from=%s&event=call_initiated&call_id=%s", VTIGER_URL, event["Exten"], callId) // if callDest == "" { // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?from=%s&event=call_initiated&call_id=%s&direction=inbound", VTIGER_URL, event["Exten"], callId) // 20241212 省去参数 to // } else { // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?from=%s&to=%s&event=call_initiated&call_id=%s&direction=inbound", VTIGER_URL, event["Exten"], callDest, callId) // 20241212 不省参数 // } // // fmt.Println("getURL = ", getURL) // // go httpclient.Get(getURL) // go httpclient.ApiKeyGet(getURL) // 后面要不要把用户密码给传过去 // /* // resp := httpclient.ApiKeyGet(getURL) // // 读取请求后的响应 // data, err := ioutil.ReadAll(resp.Body) // if err != nil { // fmt.Println("读取请求后的响应时发生错误:", err) // return // } // // 打印请求后的响应 // fmt.Printf("data = %+v\n", string(data)) // */ // // 呼叫已连接事件 // } else if event["Event"] == "BridgeEnter" { // "Newstate" "BridgeEnter" // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?from=86147258369&to=12300001&event=call_connected&call_id=12345678 // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?event=call_connected&call_id=12345678 // 可以省去部分参数 // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?event=call_connected&call_id=%s", VTIGER_URL, callId) // // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?", VTIGER_URL) // if event["Exten"] != "" { // getURL = fmt.Sprintf("%sfrom=%s", getURL, event["Exten"]) // } // if callDest != "" { // getURL = fmt.Sprintf("%s&to=%s", getURL, callDest) // } // getURL = fmt.Sprintf("%s&event=call_connected&call_id=%s", getURL, callId) // // fmt.Println("getURL = ", getURL) // go httpclient.ApiKeyGet(getURL) // // 通话录音事件 // } else if event["Event"] == "Cdr" { // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?call_id=12345678&event=call_recording&recordingurl=https%3A%2F%2Fs3.amazonaws.com%2Frecordings_2013%2F8e522852-72aa-11e5-ab5f-842b2b021118.mp3 // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?call_id=%s&event=call_recording&recordingurl=%s", VTIGER_URL, callId, recordingUrl) // // fmt.Println("getURL = ", getURL) // go httpclient.ApiKeyGet(getURL) // // 呼叫转移事件 // // Command:SET VARIABLE FORWARD_TYPE "busy" Command:SET VARIABLE FORWARD_DEST "136" // // Command:SET VARIABLE FORWARD_TYPE "always" Command:SET VARIABLE FORWARD_DEST "136" // // Command:SET VARIABLE FORWARD_TYPE "noan_busy" Command:SET VARIABLE FORWARD_DEST "136" // // Command:SET VARIABLE FORWARD_TYPE "noan_unav" Command:SET VARIABLE FORWARD_DEST "136" // // Command:SET VARIABLE FORWARD_TYPE "unavailable" Command:SET VARIABLE FORWARD_DEST "136" // } else if strings.Contains(event["Command"], "FORWARD_DEST") { // // transferredNumber := strings.Split(event["Command"], "\"")[1] // 正式用 // transferredNumber := "147258369" // 测试用 // // fmt.Println("Command = ", event["Command"]) // // fmt.Println("transferredNumber = ", transferredNumber) // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?call_id=12345678&event=call_transfer&transferred_number=147258369 // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?call_id=%s&event=call_transfer&transferred_number=%s", VTIGER_URL, callId, transferredNumber) // // fmt.Println("getURL = ", getURL) // go httpclient.ApiKeyGet(getURL) // // 呼叫挂断事件 // } else if event["Event"] == "HangupRequest" { // "HangupRequest" "Hangup" // // https://zycoo1.od2.vtiger.com/modules/PhoneCalls/callbacks/Generic.php?call_id=12345678&event=call_hangup // getURL = fmt.Sprintf("%s/modules/PhoneCalls/callbacks/Generic.php?call_id=%s&event=call_hangup", VTIGER_URL, callId) // // fmt.Println("getURL = ", getURL) // go httpclient.ApiKeyGet(getURL) // } // fmt.Println("getURL = ", getURL) // // 按编号搜索API 暂时用的以下接口 // // group.GET("/vtiger/lookup", contactsInfo) // 按编号搜索 // }