Всех приветствую!
Проинсталлирована система Фонекс Про версия 4.0.2.267 MultiSite, в 2003 году. Подключена по RS-232 к АТС Нортел Меридиан-1 Опция 11С версия ПО 5.50. Входящие вызова идут через автоинформатор на добавочный номер, но А-номер звонящего в логе присутствует. Проинсталлирован драйвер Alcatel.pbx. Формат выдачи CDR - OLD.
При формировании протокола по входящим вызовам информация по звонящему номеру (А-номеру) не отображается. Думаю, что проблема в некорректной работе драйвера.
Коллеги, какой драйверов Фонекс Про наиболее оптимален для отображения входящих А-номеров при формирования отчетов и какой при этом лучше использовать формат CDR (OLD или NEW)?
Благодарю.
1 - если Подключена по RS-232 к АТС Нортел Меридиан-1 Опция 11С версия ПО 5.50 то почему Проинсталлирован драйвер Alcatel.pbx.
2 - насколько я помню разработчики допиливали драйвер для конкретной АТС по CDR-записям в течение 2-3 дней при обращении покупателя к ним.
Почему Alcatel.pbx, наверное потому что наиболее подошел...Странно не думал, что формат CDR у каждой АТС настолько различается, что необходимо еще драйвер допиливать 2-3 дня...
А как вы определили, что он "наиболее подошел" ?
Почему Alcatel.pbx, наверное потому что наиболее подошел...Странно не думал, что формат CDR у каждой АТС настолько различается, что необходимо еще драйвер допиливать 2-3 дня...
У меридиана формат CDR вообще настраивается довольно гибко.
Барсум, например, даже инструкцию в документацию кладет как самому драйвер править.
настраивал Мерина и Фонекс Про не я, но т.к. стоит этот драйвер, значит посчитали, что он наиболее подходящий...драйвер меня полностью устраивает, кроме одного момента с входящими вызовами.
Барсум, например, даже инструкцию в документацию кладет как самому драйвер править.
насколько я помню в Фонексе есть 4 или 5 драйверов для Меридиана.. и инструкция тоже есть как писать сам драйвер...
а 2-3 дня - это крайний срок, в течение которого поправят драйвер для конкретной АТС.. обычно на это уходит часа 3-4...
и уж совсем неправильно ставить драйвер от другой станции
насколько я помню в Фонексе есть 4 или 5 драйверов для Меридиана..
там моих только штук 6 было :)
//Meridian1 NEW CDR (BELTEL)
//(c) TURASOFT 1999.
//for Phonex Pro 4.0
//Definition of temporary lexemes
isConference :=;
TempDialed:=;
RecordType :=;
isTrunk :=;
AC1:=;
Rt1:=;
Rt2:=;
Route1:=;
Acod1:=;
Route2:=;
Acod2:=;
Route3:=;
Acod3:=;
Route4:=;
Acod4:=;
//Definition of access codes
Accesscodes:=
AC1="9"
Route1=3 //Route number
Acod1="7909" //Access code
Route2=12 //Route number
Acod2="796" //Access code
Route3=3 //Route number
Acod3="790" //Access code
Route4=24 //Route number
Acod4="724" //Access code
;
//Definition of functions-lexemes
LineChar :=
if ( @ >= '0' && @ <= '9' ) then Line = Line * 10 + @ - '0'
if ( @ == 'T' ) then isTrunk = 1 //Txxxxxx or Txxx.xxx
if ( @ == 'A' ) then isTrunk = 1 //Axxxxxx or Axxx.xxx
if ( @ == 'C' ) then //CFxxxyy (conference)
{
isTrunk = 0
isConference = 1
}
if ( @ == 'N' ) then isTrunk = 0 //DNxxxx or ATTNxx
NEXT
if ( @ == '\x00' ) then NEXT
;
Line := //decoding line-number and line-type
Line = 0
isTrunk = 0
LineChar
LineChar
LineChar
LineChar
LineChar
LineChar
LineChar
LineChar
;
GETCLID:=
NEXT
if (@ == '&') then
{
NEXT
if(@ != '\r') then
{
if(@ != '\n') then
{
if(@ != ' ') then
{
TempDialed=Dialed
format"ppppppppppppppXX"
CallerId=Dialed
Dialed=TempDialed
}
spaces
if(@ != '\n') then TempDialed=strchk(instruntil("\n"),"Z")
}
}
}
;
GETRDUR:=
NEXT
if (@ == '&') then
{
NEXT
if(@ != '\r') then
{
if(@ != '\n') then
{
if(@ != ' ') then
{
format"RR:rr"
}
spaces
if(@ != '\n') then TempDialed=strchk(instruntil("\n"),"Z")
}
}
}
;
RECORD := //Record line decoding
CallerId=""
Accesscodes
isConference = 0
Account = 0
RecordType = @ //Save record type
format "? ??? 00 " //"N 106 00 "
Input = Line() InputTrunk = isTrunk //Decoding originator
if (isConference==1) then Input = 9999
Output = Line() OutputTrunk = isTrunk //Decoding terminator
format "MM/DD HH:NN:SS" //"07/08 11:09:02 "
if (@ == ' ') then NEXT
if (RecordType=='X')||(RecordType=='E') then //Transfer detection
{
Transferred=1
EndHour=StartHour
EndMinute=StartMinute
EndSecond=StartSecond
}
Dialed = ""
//type "A" - account (authcode)
//aaaaaa - account (length = 6 symbols)
if (RecordType == 'A') then format "????????????aaaaaa"
else
{
if (RecordType == 'B') then
{
Unanswered=1
Dialed=strchk(instruntil("\n"),"Z")
}
else
{
format "hh:mm:ss"
NEXT
Dialed=strchk(instruntil(" \n"),"Z")
Dialed = Dialed+strchk(instruntil("\n"),"0123456789")
if(OutputTrunk==1) then
{
Rt1=Output/1000
if(Rt1==Route1) then
{
if(strcmp(substr(Dialed,1,strlen(AC1)),AC1)==0) then Dialed=substr(Dialed,strlen(AC1)+1,-1)
if(strcmp(substr(Dialed,1,strlen(Acod1)),Acod1)==0 ) then Dialed=substr(Dialed,strlen(Acod1)+1,-1)
}
if(Rt1==Route2) then
{
if(strcmp(substr(Dialed,1,strlen(AC1)),AC1)==0) then Dialed=substr(Dialed,strlen(AC1)+1,-1)
if(strcmp(substr(Dialed,1,strlen(Acod2)),Acod2)==0 ) then Dialed=substr(Dialed,strlen(Acod2)+1,-1)
}
if(Rt1==Route3) then
{
if(strcmp(substr(Dialed,1,strlen(AC1)),AC1)==0) then Dialed=substr(Dialed,strlen(AC1)+1,-1)
if(strcmp(substr(Dialed,1,strlen(Acod3)),Acod3)==0 ) then Dialed=substr(Dialed,strlen(Acod3)+1,-1)
}
if(Rt1==Route4) then
{
if(strcmp(substr(Dialed,1,strlen(AC1)),AC1)==0) then Dialed=substr(Dialed,strlen(AC1)+1,-1)
if(strcmp(substr(Dialed,1,strlen(Acod4)),Acod4)==0 ) then Dialed=substr(Dialed,strlen(Acod4)+1,-1)
}
}
}
}
if (@=='\r') then NEXT
if (@=='\n') then NEXT
if (@=='\r') then NEXT
if (@=='\n') then NEXT
if (@ == ' ') then GETCLID
if (@=='\r') then NEXT
if (@=='\n') then NEXT
if (@=='\r') then NEXT
if (@=='\n') then NEXT
if (@ == ' ') then GETRDUR
if (@=='\r') then NEXT
if (@=='\n') then NEXT
if (@=='\r') then NEXT
if (@=='\n') then NEXT
WRITE; //Write record to main base
HEADER := //Skip empty strings
if (@=='\r') then NEXT
format "\n"
SKIP;
//Definition of main lexeme
goal := RECORD || HEADER;
Благодарю всех за свое мнение, тему закрываю.
там моих только штук 6 было :)
А может быть многоуважаемый Gluker писал Меридиановскую библиотечку для atslog? А то у меня руки не доходят.