Author: sayer Date: 2009-02-17 20:43:32 +0100 (Tue, 17 Feb 2009) New Revision: 1283
Added: trunk/apps/urlcatcher/ trunk/apps/urlcatcher/Makefile trunk/apps/urlcatcher/UrlCatcher.cpp trunk/apps/urlcatcher/UrlCatcher.h trunk/apps/urlcatcher/etc/ trunk/apps/urlcatcher/etc/urlcatcher.conf trunk/doc/Readme.urlcatcher Log: urlcatcher application that illustrates the use of embedded URL to display a call control web page Added: trunk/apps/urlcatcher/Makefile =================================================================== --- trunk/apps/urlcatcher/Makefile 2009-02-17 17:22:28 UTC (rev 1282) +++ trunk/apps/urlcatcher/Makefile 2009-02-17 19:43:32 UTC (rev 1283) @@ -0,0 +1,7 @@ +plug_in_name = urlcatcher + +module_ldflags = +module_cflags = + +COREPATH ?=../../core +include $(COREPATH)/plug-in/Makefile.app_module Property changes on: trunk/apps/urlcatcher/Makefile ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/apps/urlcatcher/UrlCatcher.cpp =================================================================== --- trunk/apps/urlcatcher/UrlCatcher.cpp 2009-02-17 17:22:28 UTC (rev 1282) +++ trunk/apps/urlcatcher/UrlCatcher.cpp 2009-02-17 19:43:32 UTC (rev 1283) @@ -0,0 +1,82 @@ +/* + * $Id$ + * + * Copyright (C) 2009 IPTEGO GmbH + * + * 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 SEMS 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: + * [email protected] + * + * 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 "UrlCatcher.h" +#include "AmConfig.h" +#include "AmUtils.h" +#include "AmPlugIn.h" + +#include "sems.h" +#include "log.h" + +#include <stdlib.h> + +#define MOD_NAME "urlcatcher" +#define DEFAULT_EXEC_CMD "firefox" + +EXPORT_SESSION_FACTORY(UrlCatcherFactory,MOD_NAME); + +string UrlCatcherFactory::ExecCmd; + +UrlCatcherFactory::UrlCatcherFactory(const string& _app_name) + : AmSessionFactory(_app_name) +{ +} + +int UrlCatcherFactory::onLoad() +{ + + AmConfigReader cfg; + if(cfg.loadFile(AmConfig::ModConfigPath + string(MOD_NAME ".conf"))) { + ExecCmd = DEFAULT_EXEC_CMD; + return 0; + } + + ExecCmd = cfg.getParameter("url_exec_cmd", DEFAULT_EXEC_CMD); + INFO("UrlCatcher loaded.Exec cmd = '%s'\n", ExecCmd.c_str()); + return 0; +} + + +AmSession* UrlCatcherFactory::onInvite(const AmSipRequest& req) +{ + AmSdp sdp; + sdp.setBody(req.body.c_str()); + if (sdp.parse()) { + ERROR("SDP parsing error\n"); + throw AmSession::Exception(404, "Not Found Here (SDP parse error)"); + } + + INFO("SDP URI= '%s'\n", sdp.uri.c_str()); + if (sdp.uri.empty()) + throw AmSession::Exception(404, "Not Found Here (No Call URI found)"); + + system((UrlCatcherFactory::ExecCmd + " \""+sdp.uri+"\"").c_str()); + + throw AmSession::Exception(404, "Not Found Here (but I got your URL)"); +} + Property changes on: trunk/apps/urlcatcher/UrlCatcher.cpp ___________________________________________________________________ Name: svn:keywords + Id Name: svn:eol-style + native Added: trunk/apps/urlcatcher/UrlCatcher.h =================================================================== --- trunk/apps/urlcatcher/UrlCatcher.h 2009-02-17 17:22:28 UTC (rev 1282) +++ trunk/apps/urlcatcher/UrlCatcher.h 2009-02-17 19:43:32 UTC (rev 1283) @@ -0,0 +1,54 @@ +/* + * $Id$ + * + * Copyright (C) 2009 IPTEGO GmbH + * + * 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 SEMS 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: + * [email protected] + * + * 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 _URLCATCHER_H_ +#define _URLCATCHER_H_ + +#include "AmSession.h" +#include "AmConfigReader.h" + +#include <string> +using std::string; + +#include <memory> + +class UrlCatcherFactory: public AmSessionFactory +{ +public: + static string ExecCmd; + + UrlCatcherFactory(const string& _app_name); + + int onLoad(); + AmSession* onInvite(const AmSipRequest& req); +}; + +#endif +// Local Variables: +// mode:C++ +// End: + Property changes on: trunk/apps/urlcatcher/UrlCatcher.h ___________________________________________________________________ Name: svn:keywords + Id Name: svn:eol-style + native Added: trunk/apps/urlcatcher/etc/urlcatcher.conf =================================================================== --- trunk/apps/urlcatcher/etc/urlcatcher.conf 2009-02-17 17:22:28 UTC (rev 1282) +++ trunk/apps/urlcatcher/etc/urlcatcher.conf 2009-02-17 19:43:32 UTC (rev 1283) @@ -0,0 +1,8 @@ +# execute this command when an invite with URL comes in +# +# default: firefox +# +# e.g. firefox +# kfmclient exec +# +url_exec_cmd="firefox" Added: trunk/doc/Readme.urlcatcher =================================================================== --- trunk/doc/Readme.urlcatcher 2009-02-17 17:22:28 UTC (rev 1282) +++ trunk/doc/Readme.urlcatcher 2009-02-17 19:43:32 UTC (rev 1283) @@ -0,0 +1,14 @@ +urlcatcher +---------- + +The urlcatcher demonstrates how to open a URL embedded in SDP +when a call comes in, like the webconference application does. +This way, e.g. a conference control web page can be shown which +allows to list participants, dial in further users etc. + +How to use it: + +o register your SEMS at some registrar with reg_agent +o direct calls to urlcatcher (application=urlcatcher) +o call yourself from https://webconference.iptel.org or your + own web interface _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
