Example #1
0
    int  Refer2InviteCore::completeTransfer ( Event *e)
    {
        MAND_LOG(DBG_SIP,  "state:completeTransfer: event: %s", e->toString());
        switch (e->m_type)
        {
            case EVT_ENTER:
            {
                Request notify;
                notify.create(SIP_REQ_NOTIFY, m_dialogs[SERV2]);
                notify.AddBody("SIP/2.0 200 OK", "message/sipfrag");
                notify.addHeader("Subscription-State", "terminated;reason=noresource");
//                Transaction::startClient(notify, this);
                return 0;
            }
            case EVT_2XX_RCVD:
            {
                //closeDialog(m_dialogs[SERV2]);
                //closeDialog(m_dialogs[SERV3]);
                m_dialogs[SERV2]->close(this);
                m_dialogs[SERV3]->close(this);


                FSM_TRAN(&Refer2InviteCore::idle);
                return 0;
            }

            case EVT_EXIT : return 0;
            default       : return 1;
        }
    }