gpt4 book ai didi

Asterisk AMI - 代答调用

转载 作者:行者123 更新时间:2023-12-04 22:23:16 28 4
gpt4 key购买 nike

我想使用 AMI 在 Asterisk 中接听电话。我可以发起调用,但完全不知道,如何接听电话...
调用脚本:

#login
sock = socket.socket(af, socktype, proto)
sock.connect(sockaddr)
sock.send('Action: login\r\n')
sock.send('Events: off\r\n')
sock.send('Username: '+str(ast_server.login)+'\r\n')
sock.send('Secret: '+str(ast_server.password)+'\r\n\r\n')

#originate call
sock.send('Action: originate\r\n')
sock.send('Channel: ' + str(user.asterisk_chan_type) + '/' + str(user.internal_number)+'\r\n')
sock.send('Timeout: '+str(ast_server.wait_time*1000)+'\r\n')
sock.send('CallerId: '+str(user.callerid)+'\r\n')
sock.send('Exten: '+str(ast_number)+'\r\n')
sock.send('Context: '+str(ast_server.context)+'\r\n')
if ast_server.alert_info and user.asterisk_chan_type == 'SIP':
sock.send('Variable: SIPAddHeader=Alert-Info: '+str(ast_server.alert_info)+'\r\n')
sock.send('Priority: '+str(ast_server.extension_priority)+'\r\n\r\n')

#logout
sock.send('Action: Logoff\r\n\r\n')
time.sleep(1)
sock.close()

我需要类似的东西,但用于接听电话。
在 *CLI> manager show 命令中找不到任何有用的命令

阻止我,plox

最佳答案

您无法直接通过 AMI 接听电话。这是因为新调用将“到达”在拨号计划中配置的给定上下文/优先级/分机(或者如果找不到适用的将被拒绝)。因此,无论该调用发生什么,都将从拨号计划中的给定上下文/优先级/扩展名开始。

如果您想通过 AMI 处理调用,请尝试使用异步 AGI,如下所示:

exten => _X.,1,AGI(agi:async)

这将通过发出一个您可以用您的 AMI 客户端处理的事件 (AsyncAGI) 来处理对任何至少有 1 位数字的分机的所有调用。

然后,从您的 AMI 客户端,您可以发送 AGIAction,例如:
Action: AGI
Channel: SIP/adevice
Command: ANSWER
CommandID: MyCommandID

这将有效地允许您从 AMI 客户端运行 AGI 命令(并像通常在任何 AGI 脚本中一样处理调用)。

希望能帮助到你!

关于Asterisk AMI - 代答调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836466/

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