Asterisk Перевод вызова на следующий добавочный номер, если предыдущий INUSE

Я пытаюсь перевести вызов на следующий добавочный номер, если предыдущий использует (INUSE) или вызов продолжается. Я попытался использовать EXTENSION_STATE(extension[@context]), чтобы найти статус следующим образом:

[sales]
exten => s,1,Dial(SIP/123)
exten => s,n,GotoIf($["${EXTENSION_STATE(123)}"="INUSE"]?passed:failed)
exten => s,n(passed),Dial(SIP/124)
exten => s,n(failed),Hangup();if other

Но не имел успеха. Как я могу это сделать?


person user3850712    schedule 24.09.2015    source источник
comment
Было бы полезно что-то большее, чем не удалось...   -  person miken32    schedule 25.09.2015


Ответы (2)


Попробуй это:

[sales]
exten => s,1,Set(GROUP()=OUTBOUND_GROUP)
exten => s,2,GotoIf($[ ${GROUP_COUNT()} > 1 ]?try1:try2)
exten => s,3(try1),Dial(SIP/124)
exten => s,4(try2),Dial(SIP/123)

Используйте GROUP_COUNT() вместо EXTENSION_STATE()

person Jibon    schedule 25.09.2015

Функция EXTENSION_STATE() работает только с расширениями с подсказками. Убедитесь, что вы добавляете подсказку для расширения в extensions.conf. Что-то типа:

[default]
exten => 123,hint,SIP/123

Подробности: http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/DeviceStates_id265377.html

person miken32    schedule 24.09.2015