You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Grand Stream呼叫中心API拨打电话:本地正常IIS发布后无响应问题

问题描述

在Asp.Net Web Forms应用中,使用Grand Stream UCM6301呼叫中心的API实现拨打电话功能,本地运行完全正常,但发布到IIS后,API调用返回成功,却没有实际触发拨号操作。

调用代码如下:

WebClient wc = new WebClient();
var parameters = new NameValueCollection();
byte[] response;
string responseString;
dynamic data;

parameters.Add("action", "dialOutbound");
parameters.Add("outbound", phoneNumber);
parameters.Add("caller", internalNumber);
parameters.Add("cookie", Globals.Instance.CallCenterCookie);

response = wc.UploadValues(Constants.URLs.CALL_CENTER_URL, parameters);
responseString = System.Text.Encoding.UTF8.GetString(response);
data = JObject.Parse(responseString);
排查与解决方案
  • 检查IIS应用程序池权限与UCM白名单
    本地调试时应用使用当前登录用户权限运行,而IIS默认用ApplicationPoolIdentity或Network Service账号,这类账号可能未被UCM6301的防火墙/IP白名单允许。
    解决:将服务器的内网/公网IP添加到UCM的信任IP列表;临时切换应用程序池为本地系统账号测试,确认是否是权限问题。

  • 重新获取有效Cookie
    本地生成的CallCenterCookie可能绑定了本地客户端IP,服务器IP与本地不同会导致Cookie失效,即使API返回成功,UCM也会拒绝执行操作。
    解决:不要复用本地Cookie,在服务器端代码中先调用UCM的登录接口获取服务器环境下的有效Cookie,再用于拨号请求。

  • 核对请求参数与编码
    本地与IIS的运行环境编码可能存在差异,或者参数格式(如号码是否带前缀、特殊字符)不符合UCM要求。
    解决:在服务器端输出请求参数的原始值,与本地调试时的参数对比;用Postman模拟服务器IP发起相同请求,验证参数是否正确。

  • 查看UCM6301的后台日志
    API返回成功不代表UCM实际执行了拨号操作,登录UCM管理后台,检查系统日志和呼叫日志,查看拨号请求的记录及可能的失败原因(如分机不可用、线路异常)。

  • 配置WebClient的代理设置
    若服务器处于企业内网,需要通过代理才能访问UCM,WebClient默认不会自动使用系统代理,导致请求看似成功但未到达UCM。
    解决:根据网络情况设置代理,示例:

    // 若需要代理
    wc.Proxy = new WebProxy("http://your-proxy-ip:port", false);
    // 若不需要代理,禁用自动代理检测
    wc.Proxy = null;
    

内容的提问来源于stack exchange,提问作者Behnam Faghih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:07:50