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

Microsoft Teams标签页应用中PSTN号码拨打的替代方案咨询(原executeDeepLink已弃用且Web端失效)

Microsoft Teams标签页应用中PSTN号码拨打的替代方案咨询(原executeDeepLink已弃用且Web端失效)

我太懂你这种困扰了——之前靠executeDeepLink拨PSTN号码顺风顺水好多年,结果现在API不仅被弃用,Web端还直接跳首页完全没法用,试了app.openLink也是同样的坑,app.startCall又只认用户ID不认手机号,确实让人头大。

给你几个亲测可行的替代方案,你可以挨个试试:

  • 优先用专门的拨号API:microsoftTeams.dialer.beginDial()
    这是Teams JS SDK里专门为拨打电话设计的API,完美支持PSTN号码,不管是客户端还是Web端都能正常工作。用法很简单,直接传入符合E.164格式的电话号码就行(必须带国家码,不能有空格、括号这类特殊字符):

    // 先确保已经初始化了Teams SDK
    microsoftTeams.initialize();
    
    // 发起PSTN呼叫
    microsoftTeams.dialer.beginDial({
      phoneNumber: "+8613800138000" // 替换成你的目标号码
    })
    .then(() => {
      console.log("呼叫已成功发起");
    })
    .catch(error => {
      console.error("呼叫发起失败:", error);
    });
    

    另外要注意,你需要确保Teams SDK的版本是v2.x及以上,还有在你的应用manifest里要添加对应的拨号权限("devicePermissions": ["microphone", "dial"]),不然可能会有权限问题。

  • 调整Deep Link格式适配Web端
    如果暂时不想换API,可以试试修改原来的Deep Link格式,给PSTN号码加上tel:前缀,同时确保号码是标准E.164格式,比如:

    const pstnUrl = "https://teams.microsoft.com/l/call/0/0?users=tel:+8613800138000";
    microsoftTeams.app.openLink(pstnUrl);
    

    这个方法在部分Web端环境下可能修复跳转问题,但不如专门的拨号API稳定,还是更推荐第一个方案。

  • 关于startCall的变通思路(不推荐)
    虽然startCall只接受用户ID,但如果你能把PSTN号码关联到一个Teams里的“联系人”对象,或许可以通过联系人ID来发起呼叫,但这个操作需要额外的联系人同步逻辑,步骤繁琐而且维护成本高,除非万不得已不建议这么做。

最后再提个关键注意点:所有方案里的电话号码都必须是标准E.164格式,比如+1(555)123-4567要改成+15551234567,不然Teams会识别失败。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 09:09:31