Звездочка отвечает, что ответ успешно поставлен в очередь, но не более того
Однажды я использовал предварительно настроенную звездочку для звонков (используя 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