Столкнулся с ошибочным поведением. Скорее всего это конкретно моя ситуация, но все же. Все входящие у нас попадают в приложение диалплана (2200104) для проверки нерабочего времени (не хватает возможностей основного меню). Если создать конференцию (777) и набрать ее с внутреннего номера - все ок - попадешь в комнату. Если же позвонить снаружи и во время приветствия (2200103) набрать внутренний номер конференции - попадаю на на очередь (2200102) - как и должно при обычном внешнем звонке.
В логе видно срабатывание условия и перевызова диалплана IVR:
- Executing [777@ivr-2200103:1] ExecIf("Local/2200104@internal-incoming-00000014;2", "0?Goto(i,1)") in new stack
-- Executing [777@ivr-2200103:2] ExecIf("Local/2200104@internal-incoming-00000014;2", "1?Goto(i,1)") in new stack
Goto (ivr-2200103,i,1)
-- Executing [i@ivr-2200103:1] Goto("Local/2200104@internal-incoming-00000014;2", "s,6") in new stack
-- Goto (ivr-2200103,s,6)
-- Executing [s@ivr-2200103:6] Set("Local/2200104@internal-incoming-00000014;2", "try_count=2") in new stack
-- Executing [s@ivr-2200103:7] GotoIf("Local/2200104@internal-incoming-00000014;2", "1?internal,2200102,1") in new stack
-- Goto (internal,2200102,1)
-- Executing [2200102@internal:1] NoOp("Local/2200104@internal-incoming-00000014;2", "--- Start Queue ---") in new stack
В конфигурационном файле за эту проверку отвечает этот кусок кода в [ivr-2200103]:
exten => _XXX,1,ExecIf($["${DIALPLAN_EXISTS(internal,${EXTEN},1)}" == "0"]?Goto(i,1))
same => n,ExecIf($["${PJSIP_ENDPOINT(${EXTEN},auth)}x" == "x"]?Goto(i,1))
Т.е. как я понимаю - нет поля auth на экстейшене моего кастомного диалпалана, и я не попадаю в конференцию. А его и реально нет.
Пока обошел эту проблему созданием сотрудника с номером 777 с маршрутизацией на конференцию.