Я пытаюсь перевести вызов на удержание в звездочку, используя сценарий python AGI, функция проверит, доступен ли человек, когда он помечается звездочкой, он наберет этого человека, если сценарий не будет ждать 10.секунд, прежде чем проверять доступность снова и наберите, когда человек доступен.Однако я столкнулся с небольшой проблемой: использование функции time.sleep(10)
вешает вызов, когда человек недоступен, я ожидаю, что это связано с тем, что поток, в котором выполняется сценарий, будет спать, а звездочка считает, что сценарий завершен, и зависает.вызов.Удаление time.sleep()
дает мне то, что я хочу без временного интервала.
agi = AGI()
agi.verbose("python agi started")
place_call_on_hold("SIP/6001")
def place_call_on_hold(s):
agi.verbose("entered place_call_on_hold function")
while True:
status = agi.get_variable('DEVICE_STATE(%(redirect)s)'%{'redirect':s})
agi.verbose(status)
if status == 'NOT_INUSE':
agi.verbose("Info: place_call_on_hold: calling the number")
agi.appexec("Dial",s)
else:
agi.verbose("Info: place_call_on_hold: sleeping for 10 sec")
time.sleep(10)
Можно ли подождать 10 секунд без использования функции sleep()
или как убедиться, что вызов не будетконец до того, как time.sleep
проснется?