void AmSession::process(AmEvent* ev) { CALL_EVENT_H(process,ev); DBG("AmSession::process\n"); AmSipEvent* sip_ev = dynamic_cast<AmSipEvent*>(ev); if(sip_ev){ DBG("Session received SIP Event\n"); onSipEvent(sip_ev); return; } AmAudioEvent* audio_ev = dynamic_cast<AmAudioEvent*>(ev); if(audio_ev && (audio_ev->event_id == AmAudioEvent::cleared)){ setStopped(); return; } AmDtmfEvent* dtmf_ev = dynamic_cast<AmDtmfEvent*>(ev); if (dtmf_ev) { DBG("Session received DTMF, event = %d, duration = %d\n", dtmf_ev->event(), dtmf_ev->duration()); onDtmf(dtmf_ev->event(), dtmf_ev->duration()); return; } AmRtpTimeoutEvent* timeout_ev = dynamic_cast<AmRtpTimeoutEvent*>(ev); if(timeout_ev){ onRtpTimeout(); return; } }
void AmSession::process(AmEvent* ev) { CALL_EVENT_H(process,ev); DBG("AmSession processing event\n"); if (ev->event_id == E_SYSTEM) { AmSystemEvent* sys_ev = dynamic_cast<AmSystemEvent*>(ev); if(sys_ev){ DBG("Session received system Event\n"); onSystemEvent(sys_ev); return; } } AmSipEvent* sip_ev = dynamic_cast<AmSipEvent*>(ev); if(sip_ev){ (*sip_ev)(dlg); return; } AmAudioEvent* audio_ev = dynamic_cast<AmAudioEvent*>(ev); if(audio_ev){ onAudioEvent(audio_ev); return; } AmDtmfEvent* dtmf_ev = dynamic_cast<AmDtmfEvent*>(ev); if (dtmf_ev) { DBG("Session received DTMF, event = %d, duration = %d\n", dtmf_ev->event(), dtmf_ev->duration()); onDtmf(dtmf_ev->event(), dtmf_ev->duration()); return; } AmRtpTimeoutEvent* timeout_ev = dynamic_cast<AmRtpTimeoutEvent*>(ev); if(timeout_ev){ onRtpTimeout(); return; } #ifdef WITH_ZRTP AmZRTPProtocolEvent* zrtp_p_ev = dynamic_cast<AmZRTPProtocolEvent*>(ev); if(zrtp_p_ev){ onZRTPProtocolEvent((zrtp_protocol_event_t)zrtp_p_ev->event_id, zrtp_p_ev->stream_ctx); return; } AmZRTPSecurityEvent* zrtp_s_ev = dynamic_cast<AmZRTPSecurityEvent*>(ev); if(zrtp_s_ev){ onZRTPSecurityEvent((zrtp_security_event_t)zrtp_s_ev->event_id, zrtp_s_ev->stream_ctx); return; } #endif }