2

我曾经使用预先配置的星号来拨打电话(使用 AMI)。当我这样做时,来自 origin 的响应曾经有通道和唯一的 id 信息。现在我正在尝试构建一个新的 Asterisk。一切都已设置,但是当我调用时,只有响应具有的信息是“呼叫成功排队”。

是否有隐藏在某处的“显示响应的额外信息”之类的选项?

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

这个是旧的,包含一些有价值的信息。

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

谢谢。

4

2 回答 2

3

您没有提供有关您发送的实际操作(其参数)的太多信息,但我会采取(长?)拍摄。我认为您可能正在发送异步发起操作,但您确实想要同步行为。

“异步发起操作”意味着星号将接受命令,但将异步调用,然后通过稍后到达的事件通知您它是否成功。

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

但是,如果您想以同步方式了解呼叫是否真的被应答(即:获取星号以在呼叫具有拨号状态之前不响应您的操作),请尝试将发起操作的异步参数设置为 false。

请参阅:https ://wiki.asterisk.org/wiki/display/AST/ManagerAction_Originate 。请注意“异步”参数,这就是您要寻找的。

这也在这里描述:http ://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate

希望能帮助到你!

于 2012-06-08T00:55:09.840 回答
1

我在使用 Async: true 时遇到了关于没有接收到 OriginateResponse 的相同问题,问题原来是经理用户帐户的权限。

AMI 用户帐户需要具有写入权限“all”或写入权限“call”(originate 不够)。像这样的东西:

[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
于 2012-09-27T08:48:27.323 回答