Hello,
I am unable to use the system.twilio.sendPhoneCall, when doing so i get the following error :
java.lang.ClassCastException: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')
Here is the full stack trace :
Java Traceback:
Traceback (most recent call last):
File "<input>", line 7, in <module>
at com.digitalpetri.ignition.twilio.common.rpc.TwilioRpc$1.encode(TwilioRpc.java:40)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeRpcMessage(ProtoRpcSerializer.java:85)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.writeParameters(ProtoRpcSerializer.java:374)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.lambda$invoke$5(GatewayInterface.java:345)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:379)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:342)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)
at jdk.proxy2/jdk.proxy2.$Proxy83.sendPhoneCall(Unknown Source)
at com.digitalpetri.ignition.twilio.client.scripting.ScriptModule.onSendPhoneCall(ScriptModule.java:61)
at com.digitalpetri.ignition.twilio.common.scripting.AbstractTwilioScriptModule.sendPhoneCall(AbstractTwilioScriptModule.java:174)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
java.lang.ClassCastException: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')
at org.python.core.Py.JavaError(Py.java:545)
at org.python.core.Py.JavaError(Py.java:536)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:192)
at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.__call__(ScriptManager.java:563)
at org.python.core.PyObject.__call__(PyObject.java:512)
at org.python.core.PyObject.__call__(PyObject.java:517)
at org.python.pycode._pyx24.f$0(<input>:7)
at org.python.pycode._pyx24.call_function(<input>)
at org.python.core.PyTableCode.call(PyTableCode.java:173)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1703)
at org.python.core.Py.exec(Py.java:1747)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:277)
at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:130)
at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:628)
at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:616)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')
at com.digitalpetri.ignition.twilio.common.rpc.TwilioRpc$1.encode(TwilioRpc.java:40)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeRpcMessage(ProtoRpcSerializer.java:85)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.writeParameters(ProtoRpcSerializer.java:374)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.lambda$invoke$5(GatewayInterface.java:345)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:379)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:342)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)
at jdk.proxy2/jdk.proxy2.$Proxy83.sendPhoneCall(Unknown Source)
at com.digitalpetri.ignition.twilio.client.scripting.ScriptModule.onSendPhoneCall(ScriptModule.java:61)
at com.digitalpetri.ignition.twilio.common.scripting.AbstractTwilioScriptModule.sendPhoneCall(AbstractTwilioScriptModule.java:174)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
... 19 more
Traceback (most recent call last):
File "<input>", line 7, in <module>
at com.digitalpetri.ignition.twilio.common.rpc.TwilioRpc$1.encode(TwilioRpc.java:40)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeRpcMessage(ProtoRpcSerializer.java:85)
at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.writeParameters(ProtoRpcSerializer.java:374)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.lambda$invoke$5(GatewayInterface.java:345)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:379)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:342)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)
at jdk.proxy2/jdk.proxy2.$Proxy83.sendPhoneCall(Unknown Source)
at com.digitalpetri.ignition.twilio.client.scripting.ScriptModule.onSendPhoneCall(ScriptModule.java:61)
at com.digitalpetri.ignition.twilio.common.scripting.AbstractTwilioScriptModule.sendPhoneCall(AbstractTwilioScriptModule.java:174)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
java.lang.ClassCastException: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')
I’m calling this function from the script console, the communication with the gateway is in read/write.
I’ve tried it both with Ignition 8.3.0 / Twilio 4.3.0 and Ignition 8.3.1 / Twilio 4.3.1, and got the same result.
I think it’s related to the function itself and not to how Twilio is configured on the gateway because it’s working perfectly if I send an SMS using system.twilio.sendSms.
Any ideas on how to fix it ?