message = new CallMessage();
<BUG>((CallMessage)message).setAction(array.getString(INDEX_CALL_ACTION));
</BUG>
message.setPayload(array.get(INDEX_CALL_PAYLOAD).toString());
<BUG>} else if (array.getInt(INDEX_MESSAGEID) == TYPENUMBER_CALLRESULT) {
</BUG>
message = new CallResultMessage();
message.setPayload(array.get(INDEX_CALLRESULT_PAYLOAD).toString());
<BUG>} else if (array.getInt(INDEX_MESSAGEID) == TYPENUMBER_CALLERROR) {
</BUG>
message = new CallErrorMessage();

message = new CallMessage();
((CallMessage) message).setAction(array.get(INDEX_CALL_ACTION).getAsString());
message.setPayload(array.get(INDEX_CALL_PAYLOAD).toString());
} else if (array.get(INDEX_MESSAGEID).getAsInt() == TYPENUMBER_CALLRESULT) {
message = new CallResultMessage();
message.setPayload(array.get(INDEX_CALLRESULT_PAYLOAD).toString());
} else if (array.get(INDEX_MESSAGEID).getAsInt() == TYPENUMBER_CALLERROR) {
