voy*_*voy 3 asterisk pbx trixbox asteriskami
我想使用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()
Run Code Online (Sandbox Code Playgroud)
我需要类似的东西,但是要接听电话.在*CLI> manager show命令中找不到任何有用的命令
打瞌睡,plox
mar*_*log 11
您无法直接通过AMI接听电话.这是因为新呼叫将"到达"拨号方案中配置的给定上下文/优先级/分机(或者如果找不到适用的话,它将被拒绝).因此,无论该调用发生什么,都将从拨号方案中的给定上下文/优先级/扩展开始.
如果要通过AMI处理呼叫,请尝试使用异步AGI,如下所示:
exten => _X.,1,AGI(agi:async)
Run Code Online (Sandbox Code Playgroud)
这将通过发出您可以使用AMI客户端处理的事件(AsyncAGI)来处理对任何具有至少1位数的扩展的所有调用.
然后,从您的AMI客户端,您可以发送AGIAction,如:
Action: AGI
Channel: SIP/adevice
Command: ANSWER
CommandID: MyCommandID
Run Code Online (Sandbox Code Playgroud)
这将有效地允许您从AMI客户端运行AGI命令(并处理通常在任何AGI脚本中执行的调用).
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
6888 次 |
| 最近记录: |