Подправил скрипт:
Код:
import bitel.billing.server.radius.*;
if (request.getIntAttribute(RadiusStandartAttributes.Acct_Status_Type) == 2) {
// Устанавливаем Calling-Station-Id = Asterisk-Src
CallingStationId = request.getStringAttribute(22736, 102, null);
request.setStringAttribute(RadiusStandartAttributes.Calling_Station_Id, CallingStationId);
// Проверяем наличие Asterisk-Acc-Code, и если он существует,
// то устанавливаем User-Name = Asterisk-Acc-Code, если не существует,
// то устанавливаем User-Name = Calling-Station-Id
UserName = request.getStringAttribute(22736, 101, null);
/* if (UserName != null)
request.setStringAttribute(RadiusStandartAttributes.User_Name, UserName);
else */
request.setStringAttribute(RadiusStandartAttributes.User_Name, CallingStationId);
// Устанавливаем Called-Station-Id = Asterisk-Dst
request.setStringAttribute(RadiusStandartAttributes.Called_Station_Id, request.getStringAttribute(22736, 103, null));
// Проверяем наличие Asterisk-User-Field, и если такой существует,
// то на основании его значения устанавливаем h323-call-origin
CallType = request.getStringAttribute(22736, 118, null);
if (CallType != null && CallType.equals("answer")) {
request.setStringAttribute(9, 26, "answer");
request.setFlag(2);
}
else {
request.setStringAttribute(9, 26, "originate");
request.setFlag(1);
}
// Устанавливаем h323-call-type = VOIP
request.setStringAttribute(9, 27, "VOIP");
// Устанавливаем Acct-Session-Time = Asterisk-Bill-Sec
request.setIntAttribute( RadiusStandartAttributes.Acct_Session_Time, request.getIntAttribute(22736, 114, null));
// Устанавливаем h323-setup-time = Asterisk-Start-Time
request.setStringAttribute(9, 25, request.getStringAttribute(22736, 110, null));
// Устанавливаем h323-connect-time = Asterisk-Answer-Time
request.setStringAttribute(9, 28, request.getStringAttribute(22736, 111, null));
// Устанавливаем h323-disconnect-time = Asterisk-End-Time
request.setStringAttribute(9, 29, request.getStringAttribute(22736, 112, null));
// Устанавливаем h323-disconnect-cause на основании Asterisk-Disposition
AsteriskDisposition = request.getStringAttribute(22736, 115, null);
if (AsteriskDisposition.equals("ANSWERED"))
request.setStringAttribute(9, 30, "0");
else if (AsteriskDisposition.equals("NO ANSWER"))
request.setStringAttribute(9, 30, "5");
else if (AsteriskDisposition.equals("BUSY"))
request.setStringAttribute(9, 30, "17");
else
request.setStringAttribute(9, 30, "22");
// Устанавливаем h323-conf-id = Acct-Session-Id
request.setStringAttribute(9, 24, request.getStringAttribute(-1, RadiusStandartAttributes.Acct_Session_Id, null));
} // Конец if (Acct_Status_Type == 2)