Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть сервер на 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 ринг-группу) - запись не работает.

Нужно починить, чтобы запись работала во всех случаях.

Также проверить исходящие звонки.

10 лет назад
VVitovt
Тицкий 
41 годУкраина
13 лет в сервисе
Был
6 месяцев назад