gpt4 book ai didi

Asterisk ARI - 在振铃前将 channel 传递给 Stasis

转载 作者:行者123 更新时间:2023-12-03 22:15:57 25 4
gpt4 key购买 nike

我的目标

将来电直接传递给 Stasis,并允许应用程序决定是向来电者播放振铃音还是忙音。

问题

对于我的 ARI 应用程序,如果我省略了 same => n,Ringing我的拨号计划中的一行,如果调用者挂断,Stasis 应用程序将返回错误。我可以在没有任何早期媒体的情况下挂断电话,直到我通过 channel.play()命令,通过 ARI。

这个解决方案有两个问题:

  • 当调用者挂断时,Stasis 应用程序会收到第二个 StasisStart,返回 Channel not found错误。
  • channel.busy 没有命令

  • 有没有人有什么建议?

    我目前能看到的唯一选择是确保 全部 用户有语音信箱,从不播放忙音。不是每个人都想要/喜欢语音邮件,而且在来电者不知道他们的电话已接通的情况下接听电话并播放忙音是不道德的。

    更新

    使用以下拨号计划,我可以让它以所需的方式工作(如果用户不可用,则向用户播放),但出现错误:

    扩展配置文件
    [public]
    exten => _.,1,NoOp()
    same => n,Stasis(myStasisApp, ${SIP_HEADER(to)})
    same => n,Busy(10)
    same => n,Hangup()

    我的应用程序
    // The user is available
    channel.ring();

    // The user is busy
    channel.continueInDialplan();

    错误

    调用方挂机时发送另一个 StasisStart,其后是:
    Unhandled rejection Error: {
    "message": "Channel not found"
    }

    最佳答案

    我们遇到了同样的问题,浪费了宝贵的时间找出原因,所以我在这里分享解决方案,也许它会有所帮助。

    extensions.conf

    [public]
    exten => _.,1,NoOp()
    same => n,Stasis(myStasisApp)
    same => n,Hangup()

    当 Asterisk 接到电话时,它会启动 stasis 应用程序。
  • 创建一座桥。
  • 添加传入channel A在这座桥上。
  • 创建新的传出 channel B从您的 ari 应用程序中使用 POST /channels/create .
  • 添加传出 channel B在那座桥上。
  • channel B 拨号目的地,其中两个 channel
    POST /channels/{channelId}/dial 在同一座桥上

  • 现在,您将能够看到带有振铃和应答的新 ARI 拨号事件。

    对于挂断,您将收到带有挂断原因代码的 channel 结束事件,而不是 17 之类的文本,表示忙

    Asterisk Hangup Cause Mappings

    发起 channel (Asterisk 版本 13)而不是创建和拨号(Asterisk 版本 14)更简单,但您不会拥有早期媒体或对该 channel 的完全控制,因为它是由 Asterisk 而不是 ARI 应用程序创建的,因此该 channel 将在调用开始时而不是之前开始将事件发送回 ARI。

    Asterisk 14 ARI: Create, Bridge, Dial.

    ARI and Channels: Manipulating Channel State

    这个线程帮助了我们很多:

    Re: ARI: add channel to bridge immediatelly after originate action

    .

    .

    .

    玩得开心 !希望这会有所帮助。
    /ohammami

    关于Asterisk ARI - 在振铃前将 channel 传递给 Stasis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50820878/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com