电话客户端 客户端登录后,设置相关账号登录后拨打电话 sip客户端 - 电话软件下载 Windows SIP 客户端 软件简介 本软件是一款运行于 Windows 平台的 SIP 语音客户端, 用于连接 SIP 服务器,实现账号注册、语音呼叫及通话管理等功能。 主要功能 SIP 账号注册 呼入/呼出 通话接听与挂断 麦克风及扬声器语音通信 SIP 服务器地址及端口配置 账号注册状态显示 运行环境 Windows 10 / Windows 11 可正常访问 SIP 服务器的网络环境 麦克风及扬声器/耳机 SIP 账号配置 使用前需要配置 SIP 账号信息: SIP Server:SIP 服务器地址 Username:SIP 用户名/分机号 Password:SIP 账号密码 配置完成后进行注册,注册成功即可进行呼入和呼出。 基本使用 启动 SIP 客户端。 填写 SIP 服务器及账号信息。 确认账号注册成功。 输入被叫号码发起呼叫。 通话结束后点击挂断。 注意事项 如出现注册失败或无法通话,请检查: SIP 服务器地址及端口是否正确。 SIP 用户名和密码是否正确。 当前网络是否可以访问 SIP 服务器。 Windows 防火墙是否限制程序网络访问。 麦克风和扬声器设备是否正常。 sip客户端 - 电话接口文档 SIP 客户端前端调用接口说明 适用版本:3.22.16 1. 调用方式 前端通过 Windows 自定义 URL 协议唤起客户端,不是 HTTP 接口。 客户端 协议名称 InfinitySip infinitySip:// 网页中可使用以下方式调用: window.location.href = 'infinitySip://answer'; 返回数据 所有接口均无返回数据。调用属于“发送命令后不等待结果”的方式: 不返回 HTTP 状态码。 不返回 JSON、通话状态或错误信息。 不提供 Promise、回调函数或浏览器事件。 前端无法根据协议唤起结果判断呼叫、接听或挂机是否成功。 因此,前端调用后只能提示“已提交到客户端”,不应直接提示“呼叫成功”或“操作成功”。如需获取最终通话结果,应通过服务端通话事件、CDR 或其他业务接口查询。 2. 发起呼叫 接口地址 infinitySip://call?calleeNumber=1001&customerId=C8899&businessId=B20260925001&traceId=550e8400-e29b-41d4-a716-446655440000 参数说明 参数 必填 含义 最大长度 SIP 中的用途 calleeNumber 是 被叫号码,例如分机号或电话号码 3-16 位;仅允许数字、字母及 + * # . _ - @ 作为呼叫目标 customerId 否 客户标识,用于关联客户资料 64 个字符 写入 X-Customer-Id 请求头 businessId 否 业务标识,例如订单号、工单号 128 个字符 写入 X-Business-Id 请求头 traceId 否 本次呼叫的链路追踪标识 64 个字符 写入 X-Trace-Id 请求头 完整协议地址最多为 2048 个字符。四个参数均不允许重复,也不接受未在表中定义的参数。三个可选标识不能包含冒号、换行或控制字符。超过限制或格式不合法时,客户端不会发起呼叫,并会显示“Call request rejected”提示;自定义 URL 协议本身仍不会向网页返回错误数据。 只传必填参数的示例: infinitySip://call?calleeNumber=1001 JavaScript 示例: const LIMITS = { calleeNumber: 16, customerId: 64, businessId: 128, traceId: 64, url: 2048, }; const CALLEE_PATTERN = /^[0-9A-Za-z+*#._@-]+$/; const CALLEE_MIN_LENGTH = 3; const INVALID_HEADER_PATTERN = /[:\u0000-\u001f\u007f]/; const params = new URLSearchParams({ calleeNumber: '1001', customerId: 'C8899', businessId: 'B20260925001', traceId: crypto.randomUUID(), }); for (const [name, value] of params) { if (value.length > LIMITS[name]) throw new Error(`${name} 参数过长`); if (name === 'calleeNumber' && value.length < CALLEE_MIN_LENGTH) { throw new Error('calleeNumber 不能少于 3 位'); } if (name === 'calleeNumber' && !CALLEE_PATTERN.test(value)) { throw new Error('calleeNumber 包含不支持的字符'); } if (name !== 'calleeNumber' && INVALID_HEADER_PATTERN.test(value)) { throw new Error(`${name} 包含冒号、换行或控制字符`); } } const url = `infinitySip://call?${params.toString()}`; if (url.length > LIMITS.url) throw new Error('协议地址不能超过 2048 个字符'); window.location.href = url; 3. 接听来电 无参数。接听当前正在振铃的来电;没有来电时不会产生通话。 infinitySip://answer 4. 挂断通话 无参数。结束当前全部活动通话或正在振铃的来电。 infinitySip://hangup 5. 开启免打扰 无参数。开启并保存客户端免打扰状态,后续来电将按免打扰规则处理。 infinitySip://dnd/on 6. 关闭免打扰 无参数。关闭并保存客户端免打扰状态,客户端恢复正常接听来电。 infinitySip://dnd/off 7. 使用说明 参数值应使用 UTF-8 URL 编码,建议使用 URLSearchParams 生成查询参数。 参数名称不区分大小写,建议固定使用文档中的写法。 仅支持 calleeNumber 、 customerId 、 businessId 和 traceId ,未知或重复参数会被拒绝。 未传递的可选参数不会生成对应的 SIP 请求头。 前端应在唤起客户端前完成长度与字符校验,并向用户展示具体原因。 自定义协议没有返回值,前端调用后不能直接获得通话结果。 首次从浏览器调用时,Windows 或浏览器可能提示用户确认打开客户端。 调用前应确保对应品牌客户端已经安装并完成账号配置。