Hi there,
I am using AE services version 6.3.3 along with Communication Manager version 5.2 and I am working on a client application using the Avaya Java SDK.Now according to the Avaya Application Enablement Services documentation:
https://www.devconnectprogram.com/fileMedia/download/32ee3d4d-b8c8-4fa7-95cd-40d47d1dcb4d , a client application should be able to register an extension without knowing the password if the following configuration criteria is met:
1)The DeviceID contains the administered switch name associated with a valid switch connection to Communication Manager
2)The switch connection to the Communication Manager is active and talking
3) The SDB on the AE Server is enabled
4) The user has “Unrestricted Access” in the SDB
5) The extension’s class of restriction (COR) on the Communication Manager has:
“Can Be Service Observed” set to “y”
“Can Be a Service Observer” set to “y”
After having done this, I am having an issue with the Avaya client side SDK API because the client side validation code is now telling
me that the password field is required, below is a snippet of our client side code for registering the extension device with DMCC service.
//Creates the Device ID object for the extension to be registered
GetDeviceId request = new GetDeviceId();
request.setSwitchIPInterface(switchName);
request.setSwitchName(switchName);
request.setExtension(extensionID);
request.setDeviceInstance(DeviceInstance.VALUE_0);
GetDeviceIdResponse response = this.devSvcs.getDeviceID(request);
DeviceID deviceID = response.getDevice();
// Creates the LoginInfo object for the device to be registered with the DMCC service
LoginInfo login = new LoginInfo();
//this line cannot be omitted according to the java Doc for the RegisterTerminalRequest class
login.setPassword(password);
login.setDependencyMode(dependencyMode);
login.setMediaMode(mediaMode);
login.setForceLogin(true);
// Registers the extension with the DMCC service
RegisterTerminalRequest request = new RegisterTerminalRequest();
request.setDevice(deviceID);
request.setLoginInfo(login);
request.setLocalMediaInfo(mediaInfo);
RegisterTerminalResponse response = this.regSvcs.registerTerminal(request);
If I leave out the line where I set the password I get the following validation error:
Invalid Csta object session[null] com.avaya.csta.binding.RegisterTerminalRequest@18c2f34f: ValidationException: The following exception occured while validating field: _loginInfo of class: com.avaya.csta.binding.RegisterTerminalRequest: The field '_password' (whose xml name is 'password') is a required field of class 'com.avaya.csta.binding.LoginInfo;
- location of error: XPATH: RegisterTerminalRequest
The field '_password' (whose xml name is 'password') is a required field of class 'com.avaya.csta.binding.LoginInfo
at org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:288
at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validate(XMLClassDescriptorImpl.java:916)
at org.exolab.castor.xml.Validator.validate(Validator.java:127)
If I set the password to an empty String just to statisfy the XML validator, then I get access denied response as follows:
Registration failed for 6554: code=3000, reason=Registration Reject reason: securityDenial Login Denied - Access Code invalid. diagnostic string= code= 63773.
According to the java document for the RegisterTerminalRequest class:
https://downloads.avaya.com/elmodocs2/AES/4.2/javadoc/avaya-xml/com/avaya/csta/binding/RegisterTerminalRequest.html, the password field is mandatory, so then my question is how am I suppose the register the extension without a password as I would like to if the Avaya SDK won't allow my client application to register the extension without a password. Any help would be truly appreciated, thanks in advance.
Mohamed Ahmed