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

Reply via email to