Звездочка отвечает, что ответ успешно поставлен в очередь, но не более того

Однажды я использовал предварительно настроенную звездочку для звонков (используя AMI). Когда я делаю это, в ответе от источника используется информация о канале и уникальном идентификаторе. Сейчас я пытаюсь построить новый 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

Благодарю.

2 ответа

Решение

Вы не предоставляете много информации о реальном действии, которое вы отправляете (его параметрах), но я сделаю (длинный?) Выстрел. Я думаю, что, вероятно, вы отправляете асинхронное исходное действие, но вы действительно хотите синхронизировать поведение.

"Асинхронное начало действия" означает, что звездочка примет команду, но выполнит вызов асинхронно, а затем сообщит вам, успешно ли это произошло, или нет, с событием, которое произойдет через некоторое время.

Так что, в вашем случае, звездочка просто сообщает вам, что команда прибыла, и звонок будет в конце концов сделан. В этом случае вы должны прослушивать входящие события, которые имеют actionid действия, инициировавшего вызов, и реагировать на него в это время.

Но, если вы хотите синхронно узнать, был ли на самом деле ответ на вызов или нет (то есть: получить звездочку, чтобы она не отвечала на ваше действие до тех пор, пока вызов не наберет статус вызова), попробуйте установить для параметра async аргумента исходного действия значение false.

Смотрите: https://wiki.asterisk.org/wiki/display/AST/ManagerAction_Originate. Обратите внимание на "асинхронный" аргумент, это то, что вы ищете.

Это также описано здесь: http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate

Надеюсь, поможет!

У меня возникла та же проблема, связанная с получением не OriginateResponse при использовании Async: true, и проблема оказалась в разрешениях для учетной записи администратора.

Учетная запись пользователя 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
Другие вопросы по тегам