This is only called after the dialog has already been removed from the active dialogs, so we dont have to check the dialog state, all we have to check is there is nothing pointing to it that would cause a crash if genuinely deleted.
| 806 | // so we dont have to check the dialog state, all we have to check is there is nothing pointing to it |
| 807 | // that would cause a crash if genuinely deleted. |
| 808 | bool SipDialog::dgIsDeletable() const |
| 809 | { |
| 810 | ScopedLock lock(mDialogLock,__FILE__,__LINE__); |
| 811 | switch (mDialogType) { |
| 812 | case SIPDTMOC: |
| 813 | case SIPDTMTC: |
| 814 | case SIPDTMOSMS: |
| 815 | case SIPDTMTSMS: |
| 816 | case SIPDTMOUssd: |
| 817 | return gNewTransactionTable.ttIsDialogReleased(this->mTranId); |
| 818 | // We never expire the dialog associated with REGISTER. |
| 819 | case SIPDTRegister: |
| 820 | case SIPDTUnregister: |
| 821 | case SIPDTUndefined: |
| 822 | return false; // We never delete the Register dialog. |
| 823 | default: |
| 824 | assert(0); |
| 825 | } |
| 826 | } |
| 827 | |
| 828 | // Called periodicially to check for SIP timer expiration. |
| 829 | bool SipDialog::dialogPeriodicService() |
no test coverage detected