| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.mail.Multipart; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | |
| | | |
| | | @Value("${phoneIP}") |
| | | private String phoneIP; |
| | | |
| | | @Value("${phonePort}") |
| | | private String phonePort; |
| | | |
| | | /** |
| | | * 添加分机add_user |
| | |
| | | public String getAgentState(String name) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("name", name); |
| | | return sendReq(map, "/tel/ai_api/set_agent_state"); |
| | | return sendReq(map, "/tel/ai_api/get_agent_state"); |
| | | } |
| | | |
| | | /** |
| | |
| | | map.put("dnis", dnis); |
| | | map.put("force_call", force_call); |
| | | if (force_call == null) map.put("force_call", true); |
| | | return sendReq(map, "/tel/ai_api/set_agent_state"); |
| | | return sendReq(map, "/tel/ai_api/manual_outbound"); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public String ttsPlayback(String fileText, String uuid) { |
| | | System.out.println("=====================问题内容:" + fileText + "UUID ; " + uuid); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("text", fileText); |
| | | map.put("uuid", uuid); |
| | | |
| | | return sendReq(map, "/tel/ai_api/set_agent_state"); |
| | | return sendReq(map, "/tel/ai_api/tts_playback"); |
| | | } |
| | | |
| | | /** |
| | |
| | | map.put("wav_file", wav_file); |
| | | map.put("uuid", uuid); |
| | | |
| | | return sendReq(map, "/tel/ai_api/set_agent_state"); |
| | | return sendReq(map, "/tel/ai_api/playback"); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @return |
| | | */ |
| | | public String ob(String kg_uuid, String kg_file, String data, String app_id, String ani, String special_ch, String sign, String extension, String dnis, Boolean call_uuid, Boolean force_call) { |
| | | public String ob(String kg_uuid, String kg_file, String data, String app_id, String ani, String special_ch, String sign, String dnis, String call_uuid, Boolean force_call) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("kg_uuid", kg_uuid); |
| | | map.put("kg_file", kg_file); |
| | |
| | | map.put("ani", ani); |
| | | map.put("special_ch", special_ch); |
| | | map.put("sign", sign); |
| | | map.put("extension", extension); |
| | | map.put("dnis", dnis); |
| | | map.put("call_uuid", call_uuid); |
| | | map.put("force_call", force_call); |
| | | map.put("fs_node_id", 8021); |
| | | if (force_call == null) map.put("force_call", true); |
| | | return sendReq(map, "/tel/ai_api/set_agent_state"); |
| | | return sendReq(map, "/tel/ai_api/outbound"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 挂断通话 |
| | | * |
| | | * @return |
| | | */ |
| | | public String hangup(String kg_uuid, String dnis, String data, String app_id, String ani, String special_ch, String sign, Boolean call_uuid) { |
| | | public String hangup(String kg_uuid, String dnis, String data, String app_id, String ani, String special_ch, String sign, String call_uuid) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("kg_uuid", kg_uuid); |
| | | map.put("kg_file", kg_uuid); |
| | | map.put("dnis", dnis); |
| | | map.put("data", data); |
| | | map.put("app_id", app_id); |
| | | map.put("ani", ani); |
| | | map.put("special_ch", special_ch); |
| | | map.put("sign", sign); |
| | | map.put("dnis", dnis); |
| | | map.put("call_uuid", call_uuid); |
| | | return sendReq(map, "/tel/ai_api/set_agent_state"); |
| | | map.put("fs_node_id", ""); |
| | | |
| | | |
| | | // map.put("app_id", app_id); |
| | | // map.put("kg_uuid", kg_uuid); |
| | | // map.put("ani", ani); |
| | | // map.put("dnis", dnis); |
| | | // map.put("call_direction", call_direction_str); |
| | | // map.put("hangup_cause", hangup_cause); |
| | | // map.put("endpoint_disposition", endpoint_disposition); |
| | | // map.put("wait_msec", wait_msec); |
| | | // map.put("duration_msec", duration_msec); |
| | | // map.put("answer_msec", answer_msec); |
| | | // map.put("bill_msec", bill_msec); |
| | | // map.put("start_stamp", start_stamp); |
| | | // map.put("answered_stamp", answered_stamp); |
| | | // map.put("end_stamp", end_stamp); |
| | | // map.put("vad_total_talk_time_msec", vad_total_talk_time_msec); |
| | | // map.put("time_stamp", time_stamp); |
| | | return sendReq(map, "/tel/ai_api/hangup"); |
| | | } |
| | | |
| | | private String sendReq(Map<String, Object> map, String path) { |
| | | HttpEntity<Map<String, Object>> req = new HttpEntity<>(getHead(), map); |
| | | HttpEntity<String> stringHttpEntity = HttpUtil.postJsonRequestV2(phoneIP + path, req, String.class); |
| | | return stringHttpEntity.getBody(); |
| | | if (StringUtils.isEmpty(phoneIP)) { |
| | | phoneIP = "http://124.220.50.51"; |
| | | phonePort = "8001"; |
| | | } |
| | | HttpEntity<String> stringHttpEntity = HttpUtil.postJsonRequestV2(phoneIP + ":" + phonePort + path, req, String.class); |
| | | String responseBody = null; |
| | | try { |
| | | responseBody = new String(stringHttpEntity.getBody().getBytes("ISO-8859-1"), "UTF-8"); |
| | | System.out.println(responseBody); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return new String(stringHttpEntity.getBody().getBytes(StandardCharsets.UTF_8)); |
| | | } |
| | | |
| | | private Map<String, String> getHead() { |