Опускаю скрипт, потому, что сам он не важен, только части для понимания задачи.
Устанавливаю соединение с AMI
# Переменные для соединения
AMI_HOST=192.168.200.6
AMI_PORT=5038
AMI_USER=user
AMI_PASS=123
# Переменные для Вызова
CALLERID='199'
CALL_CONTEXT=phones
TARGET_CONTEXT=informer2
Посылаю LOGIN
LOGIN=$(cat <<EOFAction: Login
Username: ${AMI_USER}
Secret: ${AMI_PASS}
Events: off
EOF
)
ORIGINATE=$(cat <<EOFAction: Originate
Channel: Local/${num}@${CALL_CONTEXT}/n
CallerID: ${CALLERID}
Context: ${TARGET_CONTEXT}
Priority: 1
Async: false
Variable: File=/home/petav/test
Account: informer
EOF
)
Задача по какому критерию прервать цикл с выводом DialStatus?
Цикл логирует Event
05/18/15 23:32:37 - DEBUG - Event: Dial Privilege: call,all SubEvent: End Channel: Local/89301234567@phones-9521;2 UniqueID: 1431981137.5057 DialStatus: ANSWER
05/18/15 23:32:17 - DEBUG - Event: Newchannel Privilege: call,all Channel: Local/89301234567@phones-9521;1 ChannelState: 0 ChannelStateDesc: Down CallerIDNum: CallerIDName: AccountCode: Exten: 89301234567 Context: phones Uniqueid: 1431981137.5056