Как переадресовать звонок если один из двух абонентов занят?

День добрый!
Уже несколько дней не могу решить задачу с тем как переадресовать звонок если один из двух абонентов занят.

Есть звонок:
exten => s,1,Dial(DAHDI/g1/100&DAHDI/g1/101)

Нужно сделать так, что бы если хотя бы один из этих номеров занят, звонок уходил в другой контекст\экстеншен.
Как решить не знаю. Прошу помочь!
  • Вопрос задан
  • 270 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Предварительно проверять занятость линий через ChanIsAvail()
Ответ написан
chumayu
@chumayu
Если в башне по*бень. То что еб*нь, что не еб*нь.
Follow Me - нет?

И не заеМало воротить все ручками для стандартных процедур почему вебморду не использовать, коль на таких мелочах в ступор входите?
Ответ написан
Попробовать так:
exten => s,1,NoOp(IF Busy (100 OR 101) Goto)
    same => n,NoOp(STATE 100: ${DEVICE_STATE(DAHDI/g1/100)})
    same => n,GotoIf($[ ${REGEX("INUSE|BUSY|RINGING|RINGINUSE|ONHOLD" ${DEVICE_STATE(DAHDI/g1/100)})} ]?context,extension,1)
    same => n,NoOp(STATE 101: ${DEVICE_STATE(DAHDI/g1/101)})
    same => n,GotoIf($[ ${REGEX("INUSE|BUSY|RINGING|RINGINUSE|ONHOLD" ${DEVICE_STATE(DAHDI/g1/101)})} ]?context,extension,1)
    same => n,Dial(DAHDI/g1/100&DAHDI/g1/101)
    same => n,Hangup
Ответ написан
@GUW
exten => 100,1,Dial(SIP/100,25,tr);Приходит звонок на 100, ждем 25 секунд.
exten => 100,2,Dial(SIP/101);По не ответу за 25 секунд или по недоступности, переводим звонок на номер 101.

exten => 101,1,Dial(SIP/101,25,tr);Приходит звонок на 101, ждем 25 секунд.
exten => 101,2,Dial(SIP/100);По не ответу за 25 секунд или по недоступности, переводим звонок на номер 100.

;т.е. при звонке на номер 100 или 101 в случае недоступности сразу будет переадресация, если номер доступен то ждем 25 секунд ответа и если ответа нет то делаем переадресацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы