void SIPIctPool::onAttachFSM(const SIPTransaction::Ptr& pTransaction) { if (!pTransaction->fsm()) { pTransaction->type() = SIPTransaction::TYPE_ICT; pTransaction->fsm() = SIPIct::Ptr(new SIPIct(_ioService, _timerProps)); pTransaction->fsm()->setOwner(new SIPTransaction::WeakPtr(pTransaction)); pTransaction->fsm()->dispatch() = dispatch(); } }