Починить запись звонков в Elastix (Asterisk)
Есть сервер на Elastix
Раньше был такой кастомный контекст:
[from-gsm]
exten => s,1,Set(CALLERID(all)=${CALLERID(num):3}) ;
exten => s,n,goto(from-trunk,${DONGLEIMEI},1)
Запись звонков работала.
Доделали следующюю фичу:
[from-gsm]
exten => s,1,Set(CALLERID(all)=${CALLERID(num):3}) ;
same => n,GotoIf(${DB_EXISTS(vipclient/${CALLERID(num)})}?nashel) ; Поиск по базе
same => n,NoOp(== Номер не найден ==)
same => n,Goto(ne-nashel)
same => n(nashel),Set(vnutr-nomer=${DB(vipclient/${CALLERID(num)})}) ; Получаем внутренний номер
same => n,NoOp(== ${vnutr-nomer} ==)
same => n,Dial(IAX2/${vnutr-nomer},14,Tt,g)
same => n,Goto(ext-group,602,1)
same => n(ne-nashel),goto(from-trunk,${DONGLEIMEI},1)
(проверяет есть ли номер звонившего в базе и если да, то перебрасывает сразу на нужного человека)
Но, теперь запись звонков не работает :((((
Методом подбора попробовал так:
[from-gsm]
exten => s,1,Set(CALLERID(all)=${CALLERID(num):3}) ;
same => n,GotoIf(${DB_EXISTS(vipclient/${CALLERID(num)})}?nashel) ; Поиск по базе
same => n,NoOp(== Номер не найден ==)
same => n,Goto(ne-nashel)
same => n(nashel),Set(vnutr-nomer=${DB(vipclient/${CALLERID(num)})}) ; Получаем внутренний номер
same => n,NoOp(== ${vnutr-nomer} ==)
same => n,Dial(IAX2/${vnutr-nomer},14,Tt,g)
same => n,Goto(ext-group,602,1)
exten => s,n(ne-nashel),goto(from-trunk,${DONGLEIMEI},1)
(заменил последнюю строчку)
Вот в таком случае, когда номера в базе нет (ne-nashel) - запись работает.
В остальных двух случаях (номер в базе есть) и (номер в базе есть и не дождался 14 сек. перебросила на 602 ринг-группу) - запись не работает.
Нужно починить, чтобы запись работала во всех случаях.
Также проверить исходящие звонки.