From 08432ee219579b5435df0c276bdfd45e8fab2864 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Mon, 11 Sep 2006 15:21:51 +0000 Subject: [PATCH] API for creating a new call. This can be used e.g. to use SEMS as load generator/test tool. git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@72 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- core/AmUAC.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ core/AmUAC.h | 47 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 core/AmUAC.cpp create mode 100644 core/AmUAC.h diff --git a/core/AmUAC.cpp b/core/AmUAC.cpp new file mode 100644 index 00000000..178ccd74 --- /dev/null +++ b/core/AmUAC.cpp @@ -0,0 +1,57 @@ +/* + * $Id: AmSession.cpp,v 1.42.2.10 2005/09/02 13:47:46 rco Exp $ + * + * Copyright (C) 2006 Stefan Sayer + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "AmUAC.h" +#include "AmSipRequest.h" +#include "AmSession.h" +#include "AmSessionContainer.h" +#include "AmConfig.h" + +AmSession* AmUAC::dialout(const string& user, + const string& app_name, + const string& r_uri, + const string& from, + const string& from_uri, + const string& to) { + + AmSipRequest req; + + req.cmd = app_name; + req.user = user; + req.method = "INVITE"; + req.dstip = AmConfig::LocalIP; + req.r_uri = r_uri; + req.from = from; + req.from_uri = from_uri; + req.from_tag = AmSession::getNewId(); + req.to = to; + req.to_tag = ""; + req.callid = AmSession::getNewId() + "@" + AmConfig::LocalIP; + + return AmSessionContainer::instance()->startSessionUAC(req); +} + diff --git a/core/AmUAC.h b/core/AmUAC.h new file mode 100644 index 00000000..a4c0fb46 --- /dev/null +++ b/core/AmUAC.h @@ -0,0 +1,47 @@ +/* + * $Id: AmSession.cpp,v 1.42.2.10 2005/09/02 13:47:46 rco Exp $ + * + * Copyright (C) 2006 Stefan Sayer + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef AmUAC_H +#define AmUAC_H + +#include "AmThread.h" +#include "AmSession.h" + +#include +using std::string; + +class AmUAC { + public: + static AmSession* dialout(const string& user, + const string& app_name, + const string& r_uri, + const string& from, + const string& from_uri, + const string& to); +}; + +#endif