Author Message
leonroy
Joined: May 22, 2014
Messages: 52
Offline
Environment: The Avaya BDE is 6.0, and the dmcc api is 5.2.3
I'd like to use DMCC api to switch off a ringing phone. I found 'RINGER_OFF' and tried it with sample code which works for otgher buttons. Is there some cofiguration that needs to be done on the AES for this to work?

ButtonPress bpRequest = new ButtonPress();
bpRequest.setDevice(deviceID);

GetButtonInformation biRequest = new GetButtonInformation();
biRequest.setDevice(deviceID);
GetButtonInformationResponse biResponse = physSvcs.getButtonInformation(biRequest);
ButtonList buttonList = biResponse.getButtonList();

for (Enumeration e = buttonList.enumerateButtonItem(); e.hasMoreElements();) {
ButtonItem buttonItem = ((ButtonItem) e.nextElement());
if (buttonFnConstant.equals(buttonItem.getButtonFunction())) {
bpRequest.setButton(buttonItem.getButton());
}
}

ButtonPressResponse bpr = physSvcs.pressButton(bpRequest);

I get the following error:

INFO: SERVICE PROVIDER = com.avaya.mvap.svcproxy.prov.RemoteServiceProvider
Mar 20, 2015 6:08:19 PM com.avaya.mvcs.proxy.CstaMarshaller marshal
WARNING: Invalid Csta object session[null] ch.ecma.csta.binding.ButtonPress@535e7829
ValidationException: The field '_button' (whose xml name is 'button') is a required field of class 'ch.ecma.csta.binding.ButtonPress;

location of error: XPATH: ButtonPress
at org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:208)
at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validate(XMLClassDescriptorImpl.java:916)
at org.exolab.castor.xml.Validator.validate(Validator.java:127)
at org.exolab.castor.xml.Marshaller.validate(Unknown Source)
at org.exolab.castor.xml.Marshaller.marshal(Unknown Source)
at com.avaya.mvcs.proxy.CstaMarshaller.marshal(CstaMarshaller.java:156)
at com.avaya.mvcs.proxy.CstaMarshallerNode$CstaMarshallerThread.run(CstaMarshallerNode.java:176)
at com.avaya.mvcs.proxy.CstaMarshallerNode.processPacket(CstaMarshallerNode.java:104)
at com.avaya.mvcs.proxy.AbstractPipelineNode.process(AbstractPipelineNode.java:130)
at com.avaya.mvcs.proxy.Pipeline$PipelineSubscriber.inform(Pipeline.java:427)
at com.avaya.common.eventservice.UnfilteredSubscription.notify(UnfilteredSubscription.java:70)
at com.avaya.common.multicaster.Multicaster.notify(Multicaster.java:386)
at com.avaya.common.channel.Channel.publish(Channel.java:115)
at com.avaya.common.eventservice.EventService.publish(EventService.java:123)
at com.avaya.common.eventservice.EventServiceManager.publish(EventServiceManager.java:156)
at com.avaya.common.eventservice.Publisher.publish(Publisher.java:110)
at com.avaya.mvcs.proxy.XmlGatewayClient.handleRequest(XmlGatewayClient.java:175)
at com.avaya.mvcs.proxy.Pipeline.handleRequest(Pipeline.java:346)
at com.avaya.mvcs.proxy.ClientProxy.routeRequest(ClientProxy.java:607)
at com.avaya.mvap.svcproxy.ServiceProxy.marshallRequest(ServiceProxy.java:106)
at com.avaya.mvap.svcproxy.PhysicalDeviceServicesProxy.pressButton(PhysicalDeviceServicesProxy.java:162)
JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline
pretty much any button you want to push will need provisioned on the associated station (extension) in Communication Manager. Access the SAT, then do a 'change station XXXXX', then page to the BUTTON ASSIGNMENTS section of the form (extension 32120 is on page 4 fo 5 of the form). Add a "ringer-off" button, and submit the form.

Your logic, has no 'failed to find' logic, and the provisioning is what I think is wrong here.
leonroy
Joined: May 22, 2014
Messages: 52
Offline
Thanks for the confirmation John
Go to:   
Mobile view