void JingleSessionManager::handleIncomingSession(const JID& from, IncomingJingleSession::ref session) {
	incomingSessions.insert(std::make_pair(JIDSession(from, session->getID()), session));
	foreach (IncomingJingleSessionHandler* handler, incomingSessionHandlers) {
		if (handler->handleIncomingJingleSession(session)) {
			return;
		}
	}
	// TODO: Finish session
}
void JingleSessionManager::handleIncomingSession(const JID& initiator, const JID& recipient, JingleSessionImpl::ref session, const std::vector<JingleContentPayload::ref>& contents) {
	sessions.insert(std::make_pair(JIDSession(initiator, session->getID()), session));
	foreach (IncomingJingleSessionHandler* handler, incomingSessionHandlers) {
		if (handler->handleIncomingJingleSession(session, contents, recipient)) {
			return;
		}
	}
	// TODO: Finish session
}
JingleSession::ref JingleSessionManager::getSession(const JID& jid, const std::string& id) const {
	SessionMap::const_iterator i = incomingSessions.find(JIDSession(jid, id));
	return i != incomingSessions.end() ? i->second : JingleSession::ref();
}
void JingleSessionManager::registerOutgoingSession(const JID& initiator, JingleSessionImpl::ref session) {
	sessions.insert(std::make_pair(JIDSession(initiator, session->getID()), session));
	SWIFT_LOG(debug) << "Added session " << session->getID() << " for initiator " << initiator.toString() << std::endl;
}