# Gurux C Server CTI
```Gurux C Server CTI
// CTI example (03-Mar-2017)
Identification = {
// The name of the manufacturer exactly as registered with the DLMS UA
Manufacturer = "\Gurux"
// FLAG id registered for that manufacturer.
FLAGId = "\ABC"
// Identifier of the meter type
Type = "\Type1"
// The firmware identifier, OBIS code 0-b:0.2.0.255.
//FirmwareID = "UnverifiedFirmwareId"
// The firmware version, OBIS code 0-b:0.2.1.255
//FirmwareVersion = "CTI.Identification.UnverifiedFirmwareVersion"
// Could be held by one of the device IDs
//ConfigurationID = "\GRX123456"
// The serial number of the IUT, specify a real value.
SerialNr = "123456"
// Any additional information about the IUT. Delete if not used.
//Comment = "\comment 1"
// ...
//Comment = "\comment N"
}
TestOptions = {
// Choose the profile used for testing
CommunicationProfile = TCP
ReferencingMethod = LONG_NAMES
}
DoNotTestCOSEM = TRUE // override to FALSE in one of the AAs
// HDLCProfile, if needed
HDLCProfile = {
PhysicalLayer = {
HDLCBaud = 19200
OpeningMode = Direct_HDLC
}
DataLinkLayer = {
AddressingSchemes = [ONE_BYTE_ADDRESSING, TWO_BYTES_ADDRESSING]
ServerLowerMacAddress = 0x10
InformationFieldLength = 1024
InactivityTimeout = 30000
InterFrameTimeout = 1000
ResponseTimeout = 4000
DISCToNDMTimeout = 2000
}
}
// TCP profile, if needed
TCPProfile= {
ServerTCPPort = 4063
ResponseTimeout = 10000
ConnectTimeout = 5000
DisconnectToConnectDelay = 500
}
ServerMaxReceivePduSize = 1024
MediaIdentifiers = [ABSTRACT, ELECTRICITY]
//IUTSystemTitle = "\AMCEM31001060529" //AMC 0x01039679 0x0B 414D4300E4E1DD0B
IUTSystemTitle = "4142434445464748" //AMC 0x01039679 0x0B 414D4300E4E1DD0B
// The keys shall be declared unless the default keys are used. See the file DefaultKeys.txt
// Specific test object, used for testing the ACCESS service and the security suites.
STO1 = {
LogicalName = "0000600101FF" // Could be any valid OBIS code.
ClassId = 1 // Could be any class.
AttributeId = 2 // Could be any attribute with data type octet-string.
}
// Push setup object- Push is tested only if CommunicationProfile = TCP,
InstanceExtraInfo = {
LogicalName = "0-0:25.9.0.255" // Specify the real OBIS code.
ClassId = 40
CanPush = TRUE
SecuritySetupInstanceIdForPush = "0-0:43.0.1.255" // Specify the real OBIS code.
}
// Conformance block, valid for all Associations
//complete green book Table 67
ConformanceBlock = [
//GENERAL_PROTECTION,
//GENERAL_BLOCK_TRANSFER,
//ATTRIBUTE0_SUPPORTED_WITH_SET,
//PRIORITY_MGMT_SUPPORTED,
//ATTRIBUTE0_SUPPORTED_WITH_GET,
BLOCK_TRANSFER_WITH_GET_OR_READ,
BLOCK_TRANSFER_WITH_SET_OR_WRITE,
BLOCK_TRANSFER_WITH_ACTION,
MULTIPLE_REFERENCES,
//DATA_NOTIFICATION,
//ACCESS,
GET,
SET,
SELECTIVE_ACCESS,
//EVENT_NOTIFICATION,
ACTION
]
LogicalDevice[0] = {
ServerSAP = 0x1
// Public association
Association [0] = {
Enabled = TRUE
ClientSAP = 0x10
ApplicationContextName = LONG_NAMES
AuthenticationMechanismName = NO_SECURITY
DoNotTestCOSEM = FALSE // test COSEM in this AA
Secret = "\Gurux"
ConformanceBlock = [
//SELECTIVE_ACCESS,
GET,
SET,
BLOCK_TRANSFER_WITH_GET_OR_READ,
//ACTION,
//GENERAL_PROTECTION,
//BLOCK_TRANSFER_WITH_SET_OR_WRITE,
//BLOCK_TRANSFER_WITH_ACTION,
//MULTIPLE_REFERENCES
]
}
Association [1] = {
Enabled = TRUE
ClientSAP = 0x11
ApplicationContextName = LONG_NAMES
//ClientUser = 1
AuthenticationMechanismName = LOW_LEVEL_SECURITY
DoNotTestCOSEM = FALSE // test COSEM in this AA
Secret = "\Gurux"
ConformanceBlock = [
SELECTIVE_ACCESS,
GET,
SET,
BLOCK_TRANSFER_WITH_GET_OR_READ,
ACTION,
//GENERAL_PROTECTION,
BLOCK_TRANSFER_WITH_SET_OR_WRITE,
BLOCK_TRANSFER_WITH_ACTION,
MULTIPLE_REFERENCES]
}
Association [2] = {
Enabled = TRUE
ClientSAP = 0x1
ApplicationContextName = LONG_NAMES_WITH_CIPHERING
//ClientUser = 1
AuthenticationMechanismName = HIGH_LEVEL_SECURITY_GMAC
DoNotTestCOSEM = FALSE // test COSEM in this AA
SecuritySuite = 0
ConformanceBlock = [
SELECTIVE_ACCESS,
GET,
SET,
BLOCK_TRANSFER_WITH_GET_OR_READ,
ACTION,
//GENERAL_PROTECTION,
BLOCK_TRANSFER_WITH_SET_OR_WRITE,
BLOCK_TRANSFER_WITH_ACTION,
MULTIPLE_REFERENCES
//GENERAL_BLOCK_TRANSFER
]
//ClientSystemTitle = "\CTT00000"
GUEK = "000102030405060708090A0B0C0D0E0F"
GAK = "D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF"
KEK = "31313131313131313131313131313131"
// Protection layers
// Ciphered with third party S, client A+E, and with GUEK and GAK
ProtectionLayer [0] = {
Kind = CIPHERING
Style = SERVICE_GLO
Pmin = [AUTHENTICATION]
Pmax = [AUTHENTICATION, ENCRYPTION]
}
}
}
// end CTI
```