< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] dum behavior on call stale timeout


Hi all,

I am using DUM to implement a simple user agent and I have noticed some strange behaviors exposed by DUM itself.

According to the DUM documentation (http://www.estacado.net/resip/sip/resiprocate/doxygen/html/classresip_1_1Profile.html#a18) a call is stale if UAC gets no final response within the stale call timeout whose default value is 3 minutes. Therefore when a call becomes stale, according to RFC 3261 a CANCEL request should be issued (no final response has been received, only one or more provisional).

I have no idea of what DUM is able and what it is not able to manage but as I know it is able to automatically handle registration refreshes, the first time I faced the call stale condition I was expecting a CANCEL request automatically issued by DUM. And in fact DUM, after having notified the InviteSessionHandler about stale call timeout (with the onStaleCallTimeout() callback) automatically generated a request but with my big surprice I saw it was a BYE request! :-|

Then I decided to modify the code of my (dummy) user agent in such a way that on stale call timeout event a CANCEL request was generated (using the end() method of the associated AppDialogSet object) hoping that DUM layer after having sent this message avoided to send a BYE request. But again with my big surprice I saw that after the transmission of the CANCEL request DUM issued a BYE request! :-/ I have attached a log, generated with DEBUG level, which shows the behavior just described, maybe this is a bug in DUM... however if it is not a bug, my question is: what should I do to correctly generate a CANCEL request? (when I say "correctly" I mean "without having DUM to send a BYE request")

Thank you.

Gianluca