Asterisk 星号表示已成功排队,但仅此而已

Asterisk 星号表示已成功排队,但仅此而已,asterisk,Asterisk,我曾经使用预先配置的星号来使用AMI进行调用。当我这样做时,来自originate的响应通常具有通道和唯一id信息。现在我正试图建立一个新的星号。一切都设置好了,但当我调用originate时,响应的唯一信息是call successfully queued 有没有像显示隐藏在某处的响应的额外信息这样的选项 你可以找到我得到的两种不同的回答 这是旧的,包括一些有价值的信息 Response: Success ActionID: 6bf11dfb-4e6c-4eb4-85cd-6c8b802601

我曾经使用预先配置的星号来使用AMI进行调用。当我这样做时,来自originate的响应通常具有通道和唯一id信息。现在我正试图建立一个新的星号。一切都设置好了,但当我调用originate时,响应的唯一信息是call successfully queued

有没有像显示隐藏在某处的响应的额外信息这样的选项

你可以找到我得到的两种不同的回答

这是旧的,包括一些有价值的信息

Response: Success
ActionID: 6bf11dfb-4e6c-4eb4-85cd-6c8b8026019f
Message: Originate successfully queued

Event: Newchannel
Privilege: call,all
Channel: SIP/1030-000058aa
State: Down
CallerIDNum: <unknown>
CallerIDName: <unknown>
Uniqueid: 1339103821.22750

Event: Newcallerid
Privilege: call,all
Channel: SIP/1030-000058aa
CallerID: 05359348602
CallerIDName: <Unknown>
Uniqueid: 1339103821.22750
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

Event: ExtensionStatus
Privilege: call,all
Exten: 1030
Context: ext-local
Status: 8

Event: Newstate
Privilege: call,all
Channel: SIP/1030-000058aa
State: Ringing
CallerID: 05359348602
CallerIDName: <unknown>
Uniqueid: 1339103821.22750

Event: Newstate
Privilege: call,all
Channel: SIP/1030-000058aa
State: Up
CallerID: 05359348602
CallerIDName: <unknown>
Uniqueid: 1339103821.22750

Event: ExtensionStatus
Privilege: call,all
Exten: 1030
Context: ext-local
Status: 1
这是新的,什么也没说

Response: Success
ActionID: 98518f9a-c7cb-4b63-8de4-e185f57508d8
Message: Originate successfully queued

谢谢。

关于发送参数的实际操作,您没有提供太多信息,但我会花很长时间吗?射击我认为您可能正在发送一个异步操作,但您确实需要同步行为

async originate操作意味着asterisk将接受该命令,但会异步地进行调用,然后会让您知道调用是否成功,以及稍后将出现的事件

因此,在您的情况下,星号只是让您知道命令已到达,并且最终将进行调用。在这种情况下,您应该侦听具有发起调用的操作的actionid的传入事件,并在那时作出反应

但是,如果您想以同步方式知道呼叫是否确实已应答,即:让星号在呼叫具有拨号状态之前不响应您的操作,请尝试将发起操作的异步参数设置为false

请参阅:。请注意async参数,这就是您要查找的

这里也描述了这一点:


希望有帮助

您没有提供太多关于发送参数的实际操作的信息,但我会花很长时间吗?射击我认为您可能正在发送一个异步操作,但您确实需要同步行为

async originate操作意味着asterisk将接受该命令,但会异步地进行调用,然后会让您知道调用是否成功,以及稍后将出现的事件

因此,在您的情况下,星号只是让您知道命令已到达,并且最终将进行调用。在这种情况下,您应该侦听具有发起调用的操作的actionid的传入事件,并在那时作出反应

但是,如果您想以同步方式知道呼叫是否确实已应答,即:让星号在呼叫具有拨号状态之前不响应您的操作,请尝试将发起操作的异步参数设置为false

请参阅:。请注意async参数,这就是您要查找的

这里也描述了这一点:


希望有帮助

我在使用Async:true时遇到了相同的问题,即没有收到原始响应,问题是manager用户帐户的权限

AMI用户帐户需要具有全部写入权限,或者写入权限调用不够。大概是这样的:

[username]
secret=hello
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=orignate,call
write=originate,command,system,call

我在使用Async:true时遇到了同样的问题,即没有收到OriginateResponse,问题是manager用户帐户的权限

AMI用户帐户需要具有全部写入权限,或者写入权限调用不够。大概是这样的:

[username]
secret=hello
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=orignate,call
write=originate,command,system,call

谢谢你的回复。我是从.net桌面应用程序的web浏览器中调用它的。比如,代码字符串url=string.formathttp://someip/asterisk/rawman?action=originate&channel=SIP/{0}&exten={1}&Callerid={2}&priority=1&Async=False&ActionID={3}&Context=from internal,。。。;你能发布发送到asterisk的结果操作吗?你的意思是操作=状态url吗?不,是发送到asterisk的操作。您可以使用tcpdump/wireshark捕获它,或者可以使用与捕获粘贴在问题中的输出相同的方式捕获它。我的第一条评论是我发送给Asterisk的操作。顺便说一句,我使用了您建议的方式,在发起后,我发送状态并获得唯一id,然后发送监视器。它现在有一个额外的动作,但它可以工作。谢谢,谢谢你的回复。我是从.net桌面应用程序的web浏览器中调用它的。比如,代码字符串url=string.formathttp://someip/asterisk/rawman?action=originate&channel=SIP/{0}&exten={1}&Callerid={2}&priority=1&Async=False&ActionID={3}&Context=from internal,。。。;你能发布发送到asterisk的结果操作吗?你的意思是操作=状态url吗?不,是发送到asterisk的操作。您可以使用tcpdump/wireshark捕获它,或者可以使用与捕获粘贴在问题中的输出相同的方式捕获它。我的第一条评论是我发送给Asterisk的操作。顺便说一句,我使用了您建议的方式,在发起后,我发送状态并获得唯一id,然后发送监视器。它现在有一个额外的动作,但它可以工作。谢谢