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