RestComm / jain-sip

Disclaimer: This repository is a git-svn mirror of the project found at http://java.net/projects/jsip whose original repository is developed collaboratively by the Advanced Networking Technologies Division at the National Institute of Standards and Technology (NIST) - an agency of the United States Department of Commerce and by a community of individual and enterprise contributors. TeleStax, Inc. will perform some productization work, new features experimentation branches, etc for its TelScale jSIP product that doesn't concern the community from the main repository hence this git repository.
http://www.restcomm.com/
141 stars 151 forks source link

processDialogTimeout not called #202

Open kingle-zhuang opened 11 months ago

kingle-zhuang commented 11 months ago

In SIPDialog.java raiseErrorEvent(SIPDialogErrorEvent.DIALOG_ACK_NOT_RECEIVED_TIMEOUT);

nextListener.dialogErrorEvent(newErrorEvent);

The listener is SIPStackImpl not provider, SIPStackImpl inherit from SIPTransactionStack

then call below code, do nothing just exit & close timer, not call provider dialogErrorEvent or our own listener's processDialogTimeout

/*
 * (non-Javadoc)
 *
 * @see
 * gov.nist.javax.sip.stack.SIPDialogEventListener#dialogErrorEvent(gov.
 * nist.javax.sip.stack.SIPDialogErrorEvent)
 */
public synchronized void dialogErrorEvent(
        SIPDialogErrorEvent dialogErrorEvent) {
    SIPDialog sipDialog = (SIPDialog) dialogErrorEvent.getSource();
    SipListener sipListener = ((SipStackImpl)this).getSipListener();
    // if the app is not implementing the SipListenerExt interface we delete
    // the dialog to avoid leaks
    if(sipDialog != null && !(sipListener instanceof SipListenerExt)) {
        sipDialog.delete();
    }
}