View | Details | Raw Unified | Return to bug 240048
Collapse All | Expand All

(-)net/sems/Makefile (+44 lines)
Line 0 Link Here
1
# Created by: Nathan Whitehorn <nwhitehorn@freebsd.org>
2
# $FreeBSD$
3
4
PORTNAME=	sems
5
DISTVERSION=	g20190822
6
7
CATEGORIES=	net
8
USE_GITHUB=	yes
9
GH_ACCOUNT=	sems-server
10
GH_TAGNAME=	7400051
11
12
MAINTAINER=	nwhitehorn@FreeBSD.org
13
COMMENT=	SIP Express Media Server
14
15
LICENSE=	GPLv2
16
17
LIB_DEPENDS=	libopus.so:audio/opus \
18
		libcodec2.so:audio/codec2 \
19
		libev.so:devel/libev \
20
		librtmp.so:multimedia/librtmp \
21
		libilbc.so:net/ilbc \
22
		libgsm.so:audio/gsm \
23
		libsamplerate.so:audio/libsamplerate \
24
		libspeex.so:audio/speex \
25
		libspandsp.so:comms/spandsp
26
27
USES=		cmake 
28
29
WRKSRC=		${WRKDIR}/${PORTNAME}-${GH_TAGNAME}
30
CFLAGS+=	-Wno-reorder
31
CMAKE_ARGS=	-DSEMS_CFG_PREFIX=${PREFIX} -DSEMS_AUDIO_PREFIX=${PREFIX}/lib \
32
                -DSEMS_EXEC_PREFIX=${PREFIX} -DSEMS_DOC_PREFIX=${PREFIX}/share/doc
33
CMAKE_ON=	SEMS_USE_SPANDSP SEMS_USE_LIBSAMPLERATE SEMS_USE_OPUS
34
35
USE_RC_SUBR=	sems
36
37
USERS=		sems
38
GROUPS=		sems
39
40
post-install:
41
	cd ${STAGEDIR}${ETCDIR} && ${FIND} . \
42
	    -type f -exec ${MV} {} {}.sample \;
43
44
.include <bsd.port.mk>
(-)net/sems/distinfo (+3 lines)
Line 0 Link Here
1
TIMESTAMP = 1566495841
2
SHA256 (sems-server-sems-g20190822-7400051_GH0.tar.gz) = 0648e863c79363985e59174728f29a7b6c431fc76343fb004ed7c548aef7fcf0
3
SIZE (sems-server-sems-g20190822-7400051_GH0.tar.gz) = 5200119
(-)net/sems/files/patch-core-CMakeLists.txt (+21 lines)
Line 0 Link Here
1
--- core/CMakeLists.txt.orig	2019-08-22 14:04:22.265669000 -0700
2
+++ core/CMakeLists.txt	2019-08-22 14:05:02.760870000 -0700
3
@@ -12,15 +12,12 @@
4
 INCLUDE_DIRECTORIES (ampi)
5
 INCLUDE_DIRECTORIES (amci)
6
 
7
-ADD_LIBRARY (sems_core STATIC ${sems_core_SRCS})
8
-ADD_LIBRARY (sems_sip STATIC ${sems_sip_SRCS})
9
+ADD_EXECUTABLE (sems sems.cpp ${sems_core_SRCS} ${sems_sip_SRCS})
10
+ADD_EXECUTABLE(sems_tests ${sems_tests_SRCS} ${sems_core_SRCS} ${sems_sip_SRCS})
11
 
12
-ADD_EXECUTABLE (sems sems.cpp)
13
-ADD_EXECUTABLE(sems_tests ${sems_tests_SRCS})
14
-
15
 FOREACH (EXE_TARGET sems sems_tests)
16
 
17
-	TARGET_LINK_LIBRARIES(${EXE_TARGET} ${CMAKE_DL_LIBS} sems_core sems_sip event event_pthreads -rdynamic)
18
+	TARGET_LINK_LIBRARIES(${EXE_TARGET} ${CMAKE_DL_LIBS} event event_pthreads -rdynamic)
19
 
20
 	IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
21
 		TARGET_LINK_LIBRARIES(${EXE_TARGET} execinfo)
(-)net/sems/files/patch-mwi-57 (+265 lines)
Line 0 Link Here
1
diff --git a/apps/mwi/etc/mwi.conf b/apps/mwi/etc/mwi.conf
2
index 13fcce62c..ef7e5182b 100644
3
--- apps/mwi/etc/mwi.conf
4
+++ apps/mwi/etc/mwi.conf
5
@@ -1,2 +1,13 @@
6
-# Presence Server:
7
-presence_server=127.0.0.1
8
\ No newline at end of file
9
+# use domain instead of presence_server
10
+use_domain=yes
11
+
12
+# Presence Server, not used if use_domain is true
13
+#presence_server=127.0.0.1
14
+
15
+# the from user for publish requests, not used if empty
16
+from_user=mwi-publisher
17
+# the to user for publish requests, not used if empty
18
+#to_user=
19
+
20
+# give a preset route set, not used if empty
21
+#route_set="sip:127.0.0.1"
22
diff --git a/apps/mwi/mwi.cpp b/apps/mwi/mwi.cpp
23
index 4e7035011..47b808be0 100644
24
--- apps/mwi/mwi.cpp
25
+++ apps/mwi/mwi.cpp
26
@@ -1,12 +1,13 @@
27
 /*
28
   Copyright (C) Anton Zagorskiy amberovsky@gmail.com
29
   Oyster-Telecom Laboratory
30
-        
31
+
32
   Published under BSD License
33
 */
34
-            
35
+
36
 #include "AmPlugIn.h"
37
 #include "AmSession.h"
38
+#include "AmConfig.h"
39
 #include "AmConfigReader.h"
40
 #include "AmUtils.h"
41
 #include "log.h"
42
@@ -18,9 +19,9 @@ AmDynInvoke* MWI::MessageStorage = 0;
43
 
44
 EXPORT_PLUGIN_CLASS_FACTORY(MWI, MOD_NAME);
45
 
46
-MWI::MWI(const string& name)
47
-  : AmDynInvokeFactory(name) { 
48
-  _instance = this; 
49
+MWI::MWI(const string& name) : AmDynInvokeFactory(name)
50
+{
51
+  _instance = this;
52
 };
53
 
54
 MWI::~MWI() { };
55
@@ -28,10 +29,10 @@ MWI::~MWI() { };
56
 
57
 int MWI::onLoad()
58
 {
59
-  AmDynInvokeFactory* ms_fact = 
60
+  AmDynInvokeFactory* ms_fact =
61
     AmPlugIn::instance()->getFactory4Di("msg_storage");
62
 
63
-  if(!ms_fact || !(MessageStorage = ms_fact->getInstance())) {
64
+  if (!ms_fact || !(MessageStorage = ms_fact->getInstance())) {
65
     ERROR("could not load msg_storage. Load a msg_storage implementation module.\n");
66
     return -1;
67
   };
68
@@ -41,21 +42,38 @@ int MWI::onLoad()
69
   es_args.push(this);
70
   es_args.push("publish");
71
   MessageStorage->invoke("events_subscribe",es_args,ret);
72
-  
73
+
74
   AmConfigReader cfg;
75
-  if(cfg.loadFile(AmConfig::ModConfigPath + "mwi.conf")) {
76
-    ERROR("can not load configuration file\n");
77
-    return -1;
78
+
79
+  use_domain = true;
80
+  from_user = "mwi-publisher";
81
+  to_user = "";
82
+  route_set = "";
83
+  presence_server = "";
84
+
85
+  if(cfg.loadFile(AmConfig::ModConfigPath + string(MOD_NAME ".conf"))) {
86
+    INFO(MOD_NAME "configuration file (%s) not found, "
87
+      "assuming default configuration is fine\n",
88
+      (AmConfig::ModConfigPath + string(MOD_NAME ".conf")).c_str());
89
+
90
+    return 0;
91
   };
92
-  
93
-  presence_server = cfg.getParameter("presence_server");
94
-  if (presence_server.length())
95
-    DBG("set presence server '%s'\n", presence_server.c_str());
96
-  else {
97
-    ERROR("parameter 'presence_server' did not found in the configuration file\n");
98
-    return -1;
99
-  }                
100
-  
101
+
102
+  use_domain = cfg.getParameter("use_domain", "yes") == "yes";
103
+  from_user  = cfg.getParameter("from_user", from_user);
104
+  to_user  = cfg.getParameter("to_user", to_user);
105
+  route_set  = cfg.getParameter("route_set", route_set);
106
+
107
+  if (!use_domain) {
108
+      presence_server = cfg.getParameter("presence_server", presence_server);
109
+      if (presence_server.length() == 0) {
110
+        ERROR("use domain set to false, but parameter 'presence_server' not found in the configuration file\n");
111
+        return -1;
112
+      }
113
+
114
+      DBG("set presence server '%s'\n", presence_server.c_str());
115
+  }
116
+
117
   DBG("MWI module loaded.\n");
118
   return 0;
119
 };
120
@@ -66,54 +84,80 @@ void MWI::publish(const string& user, const string& domain)
121
   int new_msgs = 0;
122
   int all_msgs = 0;
123
   string headers, body;
124
-                                            
125
+
126
   AmArg di_args, ret;
127
   di_args.push(domain.c_str());
128
   di_args.push(user.c_str());
129
-    
130
+
131
   MessageStorage->invoke("userdir_open",di_args,ret);
132
-    
133
+
134
   if (!ret.size() || !isArgInt(ret.get(0))) {
135
     ERROR("userdir_open for user '%s' domain '%s' returned no (valid) result.\n", user.c_str(), domain.c_str());
136
     return;
137
   };
138
-    
139
+
140
   all_msgs = ret.get(1).size();
141
   for (size_t i = 0; i < ret.get(1).size(); i++) {
142
     AmArg& elem = ret.get(1).get(i);
143
-    
144
-    if (elem.get(2).asInt()) // skip empty messages
145
+
146
+    if (elem.get(2).asInt()) { // skip empty messages
147
       new_msgs += elem.get(1).asInt();
148
-    else
149
+    }
150
+    else {
151
       all_msgs--;
152
+    }
153
   };
154
-                                                  
155
+
156
   DBG("Found %d new and %d old messages\n", new_msgs, all_msgs - new_msgs);
157
   string vm_buf = int2str(new_msgs) + "/" + int2str(all_msgs - new_msgs);
158
 
159
   headers = "Event: message-summary\r\n";
160
   headers += "Subscription-State: active\r\n";
161
-    
162
-  if (new_msgs > 0)
163
+
164
+  if (new_msgs > 0) {
165
     body = "Messages-Waiting: yes\r\n";
166
-  else
167
+  }
168
+  else {
169
     body = "Messages-Waiting: no\r\n";
170
+  }
171
 
172
   body += "Message-Account: sip:" + user + "@" + domain + "\r\n";
173
   body += "Voice-Message: " + vm_buf + " (" + vm_buf + ")\r\n";
174
 
175
   AmMimeBody sms_body;
176
   sms_body.addPart("application/simple-message-summary");
177
-  sms_body.setPayload((const unsigned char*)body.c_str(),body.length());
178
+  sms_body.setPayload((const unsigned char*) body.c_str(), body.length());
179
+
180
+  string from_uri = "sip:";
181
+  string to_uri   = "sip:";
182
+
183
+  if (from_user.length() != 0) {
184
+    from_uri += from_user + "@";
185
+  }
186
+
187
+  if (to_user.length() != 0) {
188
+      to_uri += to_user + "@";
189
+  }
190
+
191
+  if (use_domain) {
192
+      from_uri += domain;
193
+      to_uri   += domain;
194
+  }
195
+  else {
196
+      from_uri += presence_server;
197
+      to_uri   += presence_server;
198
+  }
199
 
200
   AmSipDialog tmp_d(NULL);
201
-  tmp_d.setLocalParty(string("<sip:mwi-publisher@") + presence_server + ">");
202
-  tmp_d.setRemoteParty(domain.c_str());
203
-  tmp_d.setRouteSet("sip:" + presence_server);
204
   tmp_d.setRemoteUri("sip:" + user + "@" + domain);
205
-  tmp_d.setCallid(AmSession::getNewId() + "@" + presence_server);
206
+  tmp_d.setLocalParty("<" + from_uri + ">");
207
+  tmp_d.setRemoteParty("<" + to_uri + ">");
208
+  if (route_set.length() != 0) {
209
+      tmp_d.setRouteSet(route_set);
210
+  }
211
+  tmp_d.setCallid(AmSession::getNewId() + "@" + AmConfig::SIP_Ifs[tmp_d.getOutboundIf()].getIP());
212
   tmp_d.setLocalTag(AmSession::getNewId());
213
-  tmp_d.sendRequest(SIP_METH_NOTIFY, &sms_body, headers);     
214
+  tmp_d.sendRequest(SIP_METH_PUBLISH, &sms_body, headers);
215
 };
216
 
217
 void MWI::invoke(const string& method, const AmArg& args, AmArg& ret)
218
@@ -125,6 +169,7 @@ void MWI::invoke(const string& method, const AmArg& args, AmArg& ret)
219
     publish(user, domain);
220
     ret.push(0);
221
   }
222
-  else
223
-    throw AmDynInvoke::NotImplemented(method); 
224
+  else {
225
+    throw AmDynInvoke::NotImplemented(method);
226
+  }
227
 };
228
diff --git a/apps/mwi/mwi.h b/apps/mwi/mwi.h
229
index c1d7f1d65..0ec8ca46e 100644
230
--- apps/mwi/mwi.h
231
+++ apps/mwi/mwi.h
232
@@ -1,7 +1,7 @@
233
 /*
234
     Copyright (C) Anton Zagorskiy amberovsky@gmail.com
235
     Oyster-Telecom Laboratory
236
-    
237
+
238
     Published under BSD License
239
 */
240
 
241
@@ -16,15 +16,21 @@ class MWI : public AmDynInvokeFactory, public AmDynInvoke
242
 private:
243
     static MWI* _instance;
244
     static AmDynInvoke* MessageStorage;
245
-    
246
+
247
+    bool use_domain;
248
+
249
+    string from_user;
250
+    string to_user;
251
+
252
+    string route_set;
253
     string presence_server;
254
-    
255
+
256
     typedef struct
257
     {
258
 	unsigned int new_msgs;
259
 	unsigned int saved_msgs;
260
     } msg_info_struct;
261
-    
262
+
263
     void getMsgInfo (const string& name, const string& domain, msg_info_struct& msg_info);
264
     void publish (const string& name, const string& domain);
265
 
(-)net/sems/files/sems.in (+35 lines)
Line 0 Link Here
1
#!/bin/sh
2
#
3
# $FreeBSD: net/sems/files/sems.in $
4
#
5
# PROVIDE: sems 
6
# REQUIRE: LOGIN
7
# KEYWORD: shutdown
8
#
9
# Add the following line to /etc/rc.conf to enable this service
10
# at system startup:
11
#
12
# sems_enable (bool): Set to NO by default.
13
# 		      Set it to YES to enable sems.
14
#
15
16
. /etc/rc.subr
17
18
name=sems
19
rcvar=sems_enable
20
21
load_rc_config ${name}
22
23
: ${sems_enable:=NO}
24
: ${sems_config:=%%PREFIX%%/etc/sems/sems.conf}
25
26
command="%%PREFIX%%/sbin/sems"
27
pidfile=/var/run/sems/sems.pid
28
start_precmd="sems_precmd"
29
sems_precmd()
30
{
31
	install -d -o sems /var/run/sems
32
}
33
command_args="-P $pidfile -f $sems_config -u sems -g sems"
34
35
run_rc_command $1
(-)net/sems/pkg-descr (+5 lines)
Line 0 Link Here
1
SEMS is an open-source SIP media server, implementing a B2BUA,
2
voicemail, IVRs, announcements, etc. It is designed to be
3
complementary to SIP proxy-only tools like Kamailio, OpenSIPS, etc.
4
5
WWW: https://github.com/sems-server
(-)net/sems/pkg-plist (+304 lines)
Line 0 Link Here
1
@sample %%ETCDIR%%/default.template.sample
2
@sample %%ETCDIR%%/etc/ann_b2b.conf.sample
3
@sample %%ETCDIR%%/etc/announce_transfer.conf.sample
4
@sample %%ETCDIR%%/etc/announcement.conf.sample
5
@sample %%ETCDIR%%/etc/annrecorder.conf.sample
6
@sample %%ETCDIR%%/etc/app_mapping.conf.sample
7
@sample %%ETCDIR%%/etc/auth_b2b.sbcprofile.conf.sample
8
@sample %%ETCDIR%%/etc/call_timer.sbcprofile.conf.sample
9
@sample %%ETCDIR%%/etc/callback.conf.sample
10
@sample %%ETCDIR%%/etc/cc_call_timer.conf.sample
11
@sample %%ETCDIR%%/etc/cc_pcalls.conf.sample
12
@sample %%ETCDIR%%/etc/click2dial.conf.sample
13
@sample %%ETCDIR%%/etc/codecfilter.sbcprofile.conf.sample
14
@sample %%ETCDIR%%/etc/conference.conf.sample
15
@sample %%ETCDIR%%/etc/dsm.conf.sample
16
@sample %%ETCDIR%%/etc/dsm_in_prompts.conf.sample
17
@sample %%ETCDIR%%/etc/dsm_out_prompts.conf.sample
18
@sample %%ETCDIR%%/etc/early_announce.conf.sample
19
@sample %%ETCDIR%%/etc/echo.conf.sample
20
@sample %%ETCDIR%%/etc/jsonrpc.conf.sample
21
@sample %%ETCDIR%%/etc/mod_regex.conf.sample
22
@sample %%ETCDIR%%/etc/monitoring.conf.sample
23
@sample %%ETCDIR%%/etc/msg_storage.conf.sample
24
@sample %%ETCDIR%%/etc/mwi.conf.sample
25
@sample %%ETCDIR%%/etc/precoded_announce.conf.sample
26
@sample %%ETCDIR%%/etc/prepaid.sbcprofile.conf.sample
27
@sample %%ETCDIR%%/etc/refuse.sbcprofile.conf.sample
28
@sample %%ETCDIR%%/etc/reg_agent.conf.sample
29
@sample %%ETCDIR%%/etc/replytranslate.sbcprofile.conf.sample
30
@sample %%ETCDIR%%/etc/rtmp.conf.sample
31
@sample %%ETCDIR%%/etc/sbc.conf.sample
32
@sample %%ETCDIR%%/etc/src_ipmap.conf.sample
33
@sample %%ETCDIR%%/etc/sst_b2b.sbcprofile.conf.sample
34
@sample %%ETCDIR%%/etc/stats.conf.sample
35
@sample %%ETCDIR%%/etc/symmetricrtp.sbcprofile.conf.sample
36
@sample %%ETCDIR%%/etc/transparent.sbcprofile.conf.sample
37
@sample %%ETCDIR%%/etc/voicebox.conf.sample
38
@sample %%ETCDIR%%/etc/voicemail.conf.sample
39
@sample %%ETCDIR%%/etc/webconference.conf.sample
40
@sample %%ETCDIR%%/sems.conf.sample
41
lib/sems/audio/annrecorder/beep.wav
42
lib/sems/audio/annrecorder/bye.wav
43
lib/sems/audio/annrecorder/confirm.wav
44
lib/sems/audio/annrecorder/greeting_set.wav
45
lib/sems/audio/annrecorder/to_record.wav
46
lib/sems/audio/annrecorder/welcome.wav
47
lib/sems/audio/annrecorder/your_prompt.wav
48
lib/sems/audio/beep.wav
49
lib/sems/audio/conference/beep.wav
50
lib/sems/audio/conference/first_participant.wav
51
lib/sems/audio/default_en.wav
52
lib/sems/audio/precoded_announce/test.predef
53
lib/sems/audio/voicebox/0.wav
54
lib/sems/audio/voicebox/1.wav
55
lib/sems/audio/voicebox/10.wav
56
lib/sems/audio/voicebox/11.wav
57
lib/sems/audio/voicebox/12.wav
58
lib/sems/audio/voicebox/13.wav
59
lib/sems/audio/voicebox/14.wav
60
lib/sems/audio/voicebox/15.wav
61
lib/sems/audio/voicebox/16.wav
62
lib/sems/audio/voicebox/17.wav
63
lib/sems/audio/voicebox/18.wav
64
lib/sems/audio/voicebox/19.wav
65
lib/sems/audio/voicebox/2.wav
66
lib/sems/audio/voicebox/20.wav
67
lib/sems/audio/voicebox/3.wav
68
lib/sems/audio/voicebox/30.wav
69
lib/sems/audio/voicebox/4.wav
70
lib/sems/audio/voicebox/40.wav
71
lib/sems/audio/voicebox/5.wav
72
lib/sems/audio/voicebox/50.wav
73
lib/sems/audio/voicebox/6.wav
74
lib/sems/audio/voicebox/60.wav
75
lib/sems/audio/voicebox/7.wav
76
lib/sems/audio/voicebox/70.wav
77
lib/sems/audio/voicebox/8.wav
78
lib/sems/audio/voicebox/80.wav
79
lib/sems/audio/voicebox/9.wav
80
lib/sems/audio/voicebox/90.wav
81
lib/sems/audio/voicebox/and.wav
82
lib/sems/audio/voicebox/bye.wav
83
lib/sems/audio/voicebox/first_new_msg.wav
84
lib/sems/audio/voicebox/first_saved_msg.wav
85
lib/sems/audio/voicebox/in_your_voicebox.wav
86
lib/sems/audio/voicebox/msg_deleted.wav
87
lib/sems/audio/voicebox/msg_end_menu.wav
88
lib/sems/audio/voicebox/msg_menu.wav
89
lib/sems/audio/voicebox/msg_saved.wav
90
lib/sems/audio/voicebox/new_msg.wav
91
lib/sems/audio/voicebox/new_msgs.wav
92
lib/sems/audio/voicebox/next_new_msg.wav
93
lib/sems/audio/voicebox/next_saved_msg.wav
94
lib/sems/audio/voicebox/no_more_msg.wav
95
lib/sems/audio/voicebox/no_msg.wav
96
lib/sems/audio/voicebox/pin_prompt.wav
97
lib/sems/audio/voicebox/saved_msg.wav
98
lib/sems/audio/voicebox/saved_msgs.wav
99
lib/sems/audio/voicebox/x1.wav
100
lib/sems/audio/voicebox/x2.wav
101
lib/sems/audio/voicebox/x3.wav
102
lib/sems/audio/voicebox/x4.wav
103
lib/sems/audio/voicebox/x5.wav
104
lib/sems/audio/voicebox/x6.wav
105
lib/sems/audio/voicebox/x7.wav
106
lib/sems/audio/voicebox/x8.wav
107
lib/sems/audio/voicebox/x9.wav
108
lib/sems/audio/voicebox/you_have.wav
109
lib/sems/audio/voicemail/beep.wav
110
lib/sems/audio/voicemail/default_en.wav
111
lib/sems/audio/webconference/0.wav
112
lib/sems/audio/webconference/1.wav
113
lib/sems/audio/webconference/2.wav
114
lib/sems/audio/webconference/3.wav
115
lib/sems/audio/webconference/4.wav
116
lib/sems/audio/webconference/5.wav
117
lib/sems/audio/webconference/6.wav
118
lib/sems/audio/webconference/7.wav
119
lib/sems/audio/webconference/8.wav
120
lib/sems/audio/webconference/9.wav
121
lib/sems/audio/webconference/beep.wav
122
lib/sems/audio/webconference/entering_conference.wav
123
lib/sems/audio/webconference/first_participant.wav
124
lib/sems/audio/webconference/pin_prompt.wav
125
lib/sems/audio/webconference/wrong_pin.wav
126
lib/sems/dsm/early_dbprompt.dsm
127
lib/sems/dsm/inbound_call.dsm
128
lib/sems/dsm/mobile_push.dsm
129
lib/sems/dsm/mod_conference.so
130
lib/sems/dsm/mod_dlg.so
131
lib/sems/dsm/mod_groups.so
132
lib/sems/dsm/mod_regex.so
133
lib/sems/dsm/mod_subscription.so
134
lib/sems/dsm/mod_sys.so
135
lib/sems/dsm/mod_uri.so
136
lib/sems/dsm/mod_utils.so
137
lib/sems/dsm/outbound_call.dsm
138
lib/sems/plug-in/adpcm.so
139
lib/sems/plug-in/ann_b2b.so
140
lib/sems/plug-in/announce_transfer.so
141
lib/sems/plug-in/announcement.so
142
lib/sems/plug-in/annrecorder.so
143
lib/sems/plug-in/callback.so
144
lib/sems/plug-in/cc_call_timer.so
145
lib/sems/plug-in/cc_pcalls.so
146
lib/sems/plug-in/click2dial.so
147
lib/sems/plug-in/codec2.so
148
lib/sems/plug-in/conference.so
149
lib/sems/plug-in/dsm.so
150
lib/sems/plug-in/early_announce.so
151
lib/sems/plug-in/echo.so
152
lib/sems/plug-in/g722.so
153
lib/sems/plug-in/gsm.so
154
lib/sems/plug-in/ilbc.so
155
lib/sems/plug-in/jsonrpc.so
156
lib/sems/plug-in/l16.so
157
lib/sems/plug-in/monitoring.so
158
lib/sems/plug-in/msg_storage.so
159
lib/sems/plug-in/mwi.so
160
lib/sems/plug-in/opus.so
161
lib/sems/plug-in/precoded_announce.so
162
lib/sems/plug-in/reg_agent.so
163
lib/sems/plug-in/registrar_client.so
164
lib/sems/plug-in/rtmp.so
165
lib/sems/plug-in/sbc.so
166
lib/sems/plug-in/session_timer.so
167
lib/sems/plug-in/speex.so
168
lib/sems/plug-in/stats.so
169
lib/sems/plug-in/uac_auth.so
170
lib/sems/plug-in/voicebox.so
171
lib/sems/plug-in/voicemail.so
172
lib/sems/plug-in/wav.so
173
lib/sems/plug-in/webconference.so
174
sbin/sems
175
sbin/sems-get-callproperties
176
sbin/sems-list-active-calls
177
sbin/sems-list-calls
178
sbin/sems-list-finished-calls
179
sbin/sems-logfile-callextract
180
sbin/sems-sbc-get-activeprofile
181
sbin/sems-sbc-get-regex-map-names
182
sbin/sems-sbc-list-profiles
183
sbin/sems-sbc-load-profile
184
sbin/sems-sbc-reload-profile
185
sbin/sems-sbc-reload-profiles
186
sbin/sems-sbc-set-activeprofile
187
sbin/sems-sbc-set-regex-map
188
sbin/sems-stats
189
%%DOCSDIR%%-1.7.0/Applications.txt
190
%%DOCSDIR%%-1.7.0/CHANGELOG
191
%%DOCSDIR%%-1.7.0/COPYING
192
%%DOCSDIR%%-1.7.0/Howtostart_noproxy.txt
193
%%DOCSDIR%%-1.7.0/Howtostart_simpleproxy.txt
194
%%DOCSDIR%%-1.7.0/Howtostart_voicemail.txt
195
%%DOCSDIR%%-1.7.0/Readme.ann_b2b.txt
196
%%DOCSDIR%%-1.7.0/Readme.announce_transfer.txt
197
%%DOCSDIR%%-1.7.0/Readme.announcement.txt
198
%%DOCSDIR%%-1.7.0/Readme.annrecorder.txt
199
%%DOCSDIR%%-1.7.0/Readme.callback.txt
200
%%DOCSDIR%%-1.7.0/Readme.click2dial.txt
201
%%DOCSDIR%%-1.7.0/Readme.conference.txt
202
%%DOCSDIR%%-1.7.0/Readme.early_announce.txt
203
%%DOCSDIR%%-1.7.0/Readme.echo.txt
204
%%DOCSDIR%%-1.7.0/Readme.monitoring.txt
205
%%DOCSDIR%%-1.7.0/Readme.msg_storage.txt
206
%%DOCSDIR%%-1.7.0/Readme.reg_agent.txt
207
%%DOCSDIR%%-1.7.0/Readme.registrar_client.txt
208
%%DOCSDIR%%-1.7.0/Readme.sbc.txt
209
%%DOCSDIR%%-1.7.0/Readme.uac_auth.txt
210
%%DOCSDIR%%-1.7.0/Readme.voicebox.txt
211
%%DOCSDIR%%-1.7.0/Readme.voicemail.txt
212
%%DOCSDIR%%-1.7.0/Readme.webconference.txt
213
%%DOCSDIR%%-1.7.0/Tuning.txt
214
%%DOCSDIR%%-1.7.0/dsm/Readme.dsm.txt
215
%%DOCSDIR%%-1.7.0/dsm/dsm_errorhandling.txt
216
%%DOCSDIR%%-1.7.0/dsm/dsm_sbc_syntax.txt
217
%%DOCSDIR%%-1.7.0/dsm/dsm_syntax.txt
218
%%DOCSDIR%%-1.7.0/dsm/dsm_todo.txt
219
%%DOCSDIR%%-1.7.0/dsm/examples/183_early_establish.dsm
220
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_audio/aas_callee.dsm
221
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_audio/aas_caller.dsm
222
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_extension/connect_extension.dsm
223
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_extension/wav/Makefile
224
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_extension/wav/connecting.txt
225
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_extension/wav/enter_extension.txt
226
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_extension/wav/failed_enter_extension.txt
227
%%DOCSDIR%%-1.7.0/dsm/examples/b2b_connect_extension/wav/sorry_problems.txt
228
%%DOCSDIR%%-1.7.0/dsm/examples/call/callsub.dsm
229
%%DOCSDIR%%-1.7.0/dsm/examples/call/calltest.dsm
230
%%DOCSDIR%%-1.7.0/dsm/examples/dsm_di_monit/Readme_ddm.txt
231
%%DOCSDIR%%-1.7.0/dsm/examples/dsm_di_monit/dsm_di_monitoring.dsm
232
%%DOCSDIR%%-1.7.0/dsm/examples/dsm_di_monit/wav/change.wav
233
%%DOCSDIR%%-1.7.0/dsm/examples/dsm_di_monit/wav/taken.wav
234
%%DOCSDIR%%-1.7.0/dsm/examples/dsm_di_monit/wav/welcome.wav
235
%%DOCSDIR%%-1.7.0/dsm/examples/early_media.dsm
236
%%DOCSDIR%%-1.7.0/dsm/examples/handle_cancel.dsm
237
%%DOCSDIR%%-1.7.0/dsm/examples/late_reply.dsm
238
%%DOCSDIR%%-1.7.0/dsm/examples/moddlg_late_early.dsm
239
%%DOCSDIR%%-1.7.0/dsm/examples/pin/main.dsm
240
%%DOCSDIR%%-1.7.0/dsm/examples/pin/ok_pin.dsm
241
%%DOCSDIR%%-1.7.0/dsm/examples/play_file.dsm
242
%%DOCSDIR%%-1.7.0/dsm/examples/sbc/sbc_test_app/howto.txt
243
%%DOCSDIR%%-1.7.0/dsm/examples/sbc/sbc_test_app/profile/sbc_test_app_profile.sbcprofile.conf
244
%%DOCSDIR%%-1.7.0/dsm/examples/sbc/sbc_test_app/sbc_test_app.conf
245
%%DOCSDIR%%-1.7.0/dsm/examples/sbc/sbc_test_app/test_sbc.dsm
246
%%DOCSDIR%%-1.7.0/dsm/examples/test.dsm
247
%%DOCSDIR%%-1.7.0/dsm/examples/test_b2b.dsm
248
%%DOCSDIR%%-1.7.0/dsm/examples/test_byehdr.dsm
249
%%DOCSDIR%%-1.7.0/dsm/examples/test_conference.dsm
250
%%DOCSDIR%%-1.7.0/dsm/examples/test_conference_mute.dsm
251
%%DOCSDIR%%-1.7.0/dsm/examples/test_dbfile.dsm
252
%%DOCSDIR%%-1.7.0/dsm/examples/test_exception.dsm
253
%%DOCSDIR%%-1.7.0/dsm/examples/test_popen.dsm
254
%%DOCSDIR%%-1.7.0/dsm/examples/test_remoteunreachable.dsm
255
%%DOCSDIR%%-1.7.0/dsm/examples/test_request_events.dsm
256
%%DOCSDIR%%-1.7.0/dsm/examples/test_rtptimeout.dsm
257
%%DOCSDIR%%-1.7.0/dsm/examples/test_system_dsm.dsm
258
%%DOCSDIR%%-1.7.0/dsm/examples/test_systemevents.dsm
259
%%DOCSDIR%%-1.7.0/dsm/examples/test_teeconf.dsm
260
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_aws.txt
261
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_conference.txt
262
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_curl.txt
263
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_dlg.txt
264
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_groups.txt
265
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_monitoring.txt
266
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_mysql.txt
267
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_py.txt
268
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_redis
269
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_regex.txt
270
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_subscription.txt
271
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_sys.txt
272
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_uri.txt
273
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_utils.txt
274
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_xml.txt
275
%%DOCSDIR%%-1.7.0/dsm/mods/Readme.mod_zrtp.txt
276
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/Readme.quizconnect_tutorial.txt
277
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/Makefile
278
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/sorry_pin_wrong.txt
279
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/sorry_pin_wrong.wav
280
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/welcome_callee.txt
281
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/welcome_callee.wav
282
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/welcome_caller.txt
283
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/prompts/welcome_caller.wav
284
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/quizconnect.conf
285
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/quizconnect_callee.dsm
286
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/quizconnect_caller.dsm
287
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/quizconnect_tutorial.pdf
288
%%DOCSDIR%%-1.7.0/dsm/tutorials/quizconnect/quizconnect_tutorial.txt
289
%%DOCSDIR%%-1.7.0/figures/conference.dia
290
%%DOCSDIR%%-1.7.0/figures/png/conference.png
291
%%DOCSDIR%%-1.7.0/figures/png/service_invocation.png
292
%%DOCSDIR%%-1.7.0/figures/png/singleinstance.png
293
%%DOCSDIR%%-1.7.0/figures/png/two_instances_app_fixed.png
294
%%DOCSDIR%%-1.7.0/figures/png/two_instances_app_param.png
295
%%DOCSDIR%%-1.7.0/figures/png/voicemail.png
296
%%DOCSDIR%%-1.7.0/figures/png/webconference.png
297
%%DOCSDIR%%-1.7.0/figures/png/webconference_dialout.png
298
%%DOCSDIR%%-1.7.0/figures/service_invocation.dia
299
%%DOCSDIR%%-1.7.0/figures/singleinstance.dia
300
%%DOCSDIR%%-1.7.0/figures/two_instances_app_fixed.dia
301
%%DOCSDIR%%-1.7.0/figures/two_instances_app_param.dia
302
%%DOCSDIR%%-1.7.0/figures/voicemail.dia
303
%%DOCSDIR%%-1.7.0/figures/webconference.dia
304
%%DOCSDIR%%-1.7.0/figures/webconference_dialout.dia
(-)GIDs (-1 / +1 lines)
Lines 190-196 Link Here
190
fcron:*:247:
190
fcron:*:247:
191
# free: 248
191
# free: 248
192
# free: 249
192
# free: 249
193
# free: 250
193
sems:*:250:
194
# free: 251
194
# free: 251
195
# free: 252
195
# free: 252
196
_adsuck:*:253:
196
_adsuck:*:253:
(-)UIDs (-1 / +1 lines)
Lines 195-201 Link Here
195
fcron:*:247:247::0:0:fcron pseudo-user:/nonexistent:/usr/sbin/nologin
195
fcron:*:247:247::0:0:fcron pseudo-user:/nonexistent:/usr/sbin/nologin
196
# free: 248
196
# free: 248
197
# free: 249
197
# free: 249
198
# free: 250
198
sems:*:250:250::0:0:SEMS pseudo-user:/nonexistent:/usr/sbin/nologin
199
# free: 251
199
# free: 251
200
# free: 252
200
# free: 252
201
_adsuck:*:253:253::0:0:Adsuck ad blocking user:/nonexistent:/usr/sbin/nologin
201
_adsuck:*:253:253::0:0:Adsuck ad blocking user:/nonexistent:/usr/sbin/nologin

Return to bug 240048