[reSIProcate] Multiple handles for same session
Hi,
I bumped into a peculiar problem !!
Here is the scenario:
I make a call to some peer UA (let's say
A). Now A is registered with
Sipx SIP Proxy and is available. On receiving Invite, it sends back 180 Ringing. Now nobody picks up the call at
A, so after some time
Sipx Proxy
takes the chargs and sends a new 180 Ringing (the
to-tag is different in this, but the branch is same) followed by a 200 OK and the recorded message starts (IVR).
The problem is that the new handle in onNewSession does not match with the previously stored handle. But if I disconnect immediately, DUM sends two BYE for each of the dialog. However, if I disconnect after some time (say a couple of minutes), the previously stored handle is not valid at all, so I am not able to close the call to proxy ... It seems I should store the newly received handle for future actions, but what happens to the previous one, is it destroyed automatically by DUM or not. If yes, how !! ... and if no, is it a leak ??
Right now I refer DialogId to match handles, but is there something else which I can refer through handle to match these two handles of same branch but different Dialogs. This would save me storing a new handle for same session everytime !!
Thanks,
Nilay