Страницы

среда, 9 октября 2013 г.

Ошибки в логах Астериска


rc_avpair_new: unknown attribute 1490026597

Выгрузить модуль cdr_radius.so

Elastix: один транк объединяющий несколько транков для исходящих вызово

Нужен был транк для исходящих вызовов который каждый новый вызов пускал через разные транки. Идея в распределении нагрузки по транкам.

В примере названия сущствующих реальных транков начинается с mp1... и kostr3...



[SuperTrunk]
; Vibor trunk'a po ocheredi dlya ravnomernogo raspredeleniya vizovov
exten => _X.,1,NoOp(super trunk)
exten => _X.,n,GotoIf( $[ "${DB_EXISTS(SUPERTRUNKS/TRUNKSNAME)}" != "0" ]?begindial)
;Poluchenie spiska imen trunkov
exten => _X.,n,MYSQL(Connect connid localhost asteriskuser <password> asterisk)
exten => _X.,n,MYSQL(Query resulid ${connid} select name from trunks where disabled='off' and name like 'mp1%' or name like 'kostr3%')
exten => _X.,n(nextname),MYSQL(Fetch foundResult ${resulid} trunk)
exten => _X.,n,GotoIf($[ "${TRUNKDOUBLE}" = "${trunk}" ]?end)
exten => _X.,n,Set(TRUNKDOUBLE=${trunk})
exten => _X.,n,Set(TRUNKSNAME=${TRUNKSNAME}-${trunk})
exten => _X.,n,GotoIf($[ "${foundResult}" = "1" ]?nextname)
exten => _X.,n(end),MYSQL(Clear ${resulid})
exten => _X.,n,MYSQL(Disconnect ${connid})
exten => _X.,n,Set(DB(SUPERTRUNKS/TRUNKSNAME)=${TRUNKSNAME:1})
;Berem imya pervogo v spiske
exten => _X.,n(begindial),Set(StopTrunk=${CUT(DB(SUPERTRUNKS/TRUNKSNAME),-,1)})
exten => _X.,n(trunkbusy),Set(CurrentTrunk=${CUT(DB(SUPERTRUNKS/TRUNKSNAME),-,1)})
exten => _X.,n,Set(DB(SUPERTRUNKS/TRUNKSNAME)=${CUT(DB(SUPERTRUNKS/TRUNKSNAME),-,2-)}-${CurrentTrunk})
;Proveryaem dostupnost (call-limit=1) and delaem vizov
exten => _X.,n,ChanIsAvail(SIP/${CurrentTrunk},s)
exten => _X.,n,NoOp(STATUS=${AVAILSTATUS})
exten => _X.,n,GotoIf($[ "${AVAILSTATUS}" != "1" ]?trunkbusy)
exten => _X.,n,MYSQL(Connect connid localhost asteriskuser <password> asterisk)
exten => _X.,n,MYSQL(Query resulid ${connid} SELECT trunkid from trunks where name like '${CurrentTrunk}')
exten => _X.,n,MYSQL(Fetch foundResult ${resulid} trunk)
exten => _X.,n,MYSQL(Clear ${resulid})
exten => _X.,n,MYSQL(Disconnect ${connid})
exten => _X.,n,Macro(dialout-trunk,${trunk},${EXTEN},)
exten => _X.,n,Hangup()


Далее нужно создать Custom trunk вида: Local/$OUTNUM$@SuperTrunk/n

Заметка: всё делалось в сжатые сроки и скорее всего требует оптимизации, и не плохо было бы сделать интеграцию с веб-интерфейсом. Но пока это понадобилось только одному клиенту и не имеет актуальности.

Elastix: создание группы с полным доступом к записям разговоров и статистике


Elastix: user non-admin with Full-Access Group

You can do the following;

1) Create a new group called: Reports
2) Assign monitoring and report permissions for that group
3) Create an user and associate it with the Reports group, don't choose any extension
4) Edit /var/www/html/libs/paloSantoACL.class.php
And leave it like:
function isUserAdministratorGroup($username)
{
$is=false;
$idUser = $this->getIdUser($username);
if($idUser){
$arrGroup = $this->getMembership($idUser);
//$is = array_key_exists('administrator',$arrGroup);
$is = array_search('1', $arrGroup);

if(isset($arrGroup['Reports'])){
$is=true;}

}
return $is;
}

That will allow any user on that group to have full access of all records on the monitoring and reports modules