如何使用Java调用Voicent API拨打电话?连接拒绝报错解决方法
报错核心原因
java.net.ConnectException: Connection refused 本质是SDK发起HTTP请求时,无法连接到目标地址的Voicent Gateway服务。Voicent Java SDK本身不直接实现电话呼叫逻辑,所有外呼请求都要发送给运行中的Voicent网关服务处理,默认无参构造的Voicent实例会请求本机127.0.0.1的8155端口,只要该端口没有正常监听的网关服务,就会抛出这个连接拒绝错误。
排查解决步骤
- 安装并启动Voicent Gateway服务:这是调用API的前置依赖,服务启动后可以直接在本机浏览器访问
http://localhost:8155,能正常打开网关管理后台才说明服务启动成功。 - 核对API访问配置:进入网关管理后台的设置页面,确认已开启本地HTTP API访问权限,且没有修改默认API监听端口;如果自定义过API端口,SDK初始化时不能用无参构造,需要传入正确的端口参数。
- 排查端口拦截/占用问题:如果网关已启动仍无法连接,检查本机防火墙是否拦截了8155端口的入站请求,同时排查是否有其他程序占用8155端口导致网关没有正常完成监听。
正确调用示例
如果网关部署在本地、使用默认8155端口,可以直接用无参构造初始化;如果网关部署在其他服务器、或者修改过默认端口,需要传入网关对应的IP和端口参数初始化实例。
public class CallTest { public static void main(String[] args) { try { // 本地默认端口初始化 Voicent v = new Voicent(); // 跨机器/自定义端口初始化写法 // Voicent v = new Voicent("网关部署服务器IP", 自定义端口号); // callAudio参数:被叫号码、TTS文本/音频文件绝对路径、呼叫结束后是否自动删除记录 String requestId = v.callAudio("1234567", "你好,这是Voicent测试呼叫", true); System.out.println("呼叫请求提交成功,请求ID:" + requestId); } catch (Exception e) { e.printStackTrace(); } } }
注意:callAudio方法第二个参数如果传入纯文本,需要提前在网关中配置好TTS语音合成能力;如果传入音频文件路径,需要填写网关服务可访问到的绝对路径,否则会出现呼叫接通后无声音的问题。
内容的提问来源于stack exchange,提问作者Enzo Sebastian
相关产品推荐
相关产品推荐

