Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-SS7 Roadmap-Fix
New issue 126 by [email protected]: ss7/cap not possible to get correct
dialog state in CAPServiceCircuitSwitchedCallListener.onCAPMessage
http://code.google.com/p/jss7/issues/detail?id=126
ss7/cap version 2.0.0.BETA1
It is not possible to get what type of TCAP message was received
(TC_Continue or TC_End) inside
CAPServiceCircuitSwitchedCallListener.onCAPMessage listener method.
I tried using capDialogImpl.getState() to get the dialog state, but that
gives the CAPDialogState.Active on TC_End which is incorrect in my opinion,
because doing any actions with this dialog will result in error. getState()
is not visible in the interface, so I had to cast the object to
CapDialogImpl. May be it is intended for internal use only and should not
be used externally? In that case what is the correct way of getting the
dialog state?
It would be good to have one of these 2 features/fixes (the 1st one is
preferred):
1. I think it would be very useful if you could provide an access to other
protocol layers in onCAPMessage(CAPMessage capMessage). For example,
CAPMessage could have a getter:
DialogIndication getDialogIndication()
which would return the last received TCAP message. It is important to know
what type of TCAP message was received (TC_Continue or TC_End) in some use
cases.
2. Another option would be to add CapDialog.getState() method to the
interface so you do not need to cast it to CapDialogImpl. Also modify the
CAPProviderImpl.onTCEnd(516)
and move the
capDialogImpl.setState(CAPDialogState.Expunged);
before the
processComponents(capDialogImpl, comps);
because that gives incorrect dialog state in the onCAPMessage(CAPMessage
capMessage) listener method.