From 14970958901eaed2ceca09f7d787f3e651adc120 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Tue, 13 Oct 2009 17:14:29 +0000 Subject: [PATCH] running invite event for outgoing calls as well (does not respect connect session yet) git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1535 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- apps/dsm/DSMDialog.cpp | 24 ++++++++++++++++++++++++ apps/dsm/DSMDialog.h | 1 + 2 files changed, 25 insertions(+) diff --git a/apps/dsm/DSMDialog.cpp b/apps/dsm/DSMDialog.cpp index 5519dbcf..466a6718 100644 --- a/apps/dsm/DSMDialog.cpp +++ b/apps/dsm/DSMDialog.cpp @@ -99,6 +99,30 @@ void DSMDialog::onInvite(const AmSipRequest& req) { AmB2BCallerSession::onInvite(req); } +void DSMDialog::onOutgoingInvite(const string& headers) { + if (!process_invite) { + // re-INVITE sent out + return; + } + process_invite = false; + + // TODO: construct correct request of outgoing INVITE + AmSipRequest req; + req.hdrs = headers; + bool run_session_invite = engine.onInvite(req, this); + + if (DSMFactory::RunInviteEvent) { + if (!engine.init(this, startDiagName, DSMCondition::Invite)) + run_session_invite =false; + + if (checkVar(DSM_CONNECT_SESSION, DSM_CONNECT_SESSION_FALSE)) { + DBG("session choose to not connect media\n"); + // TODO: set flag to not connect RTP on session start + run_session_invite = false; // don't accept audio + } + } +} + void DSMDialog::onSessionStart(const AmSipRequest& req) { if (process_sessionstart) { diff --git a/apps/dsm/DSMDialog.h b/apps/dsm/DSMDialog.h index 871bf4c0..b7c49df9 100644 --- a/apps/dsm/DSMDialog.h +++ b/apps/dsm/DSMDialog.h @@ -70,6 +70,7 @@ public: ~DSMDialog(); void onInvite(const AmSipRequest& req); + void onOutgoingInvite(const string& headers); void onSessionStart(const AmSipRequest& req); void onSessionStart(const AmSipReply& rep); void startSession();