%bcond_without geoip # GeoIP
%bcond_without json # json support
%bcond_without memcached # memcached support
+%bcond_without microhttpd # httpd support
+%bcond_without redis # Redis support
+%bcond_with couchbase # couchbase support
+%bcond_with mongodb # mongodb support
+%bcond_with sngtc # Sangoma transcoding module support
Summary: SIP proxy, redirect and registrar server
-Summary(pl.UTF-8): Serwer SIP rejestrujący, przekierowujący i robiący proxy
+Summary(pl.UTF-8): Serwer SIP przekazujący (proxy), przekierowujący i rejestrujący
Name: opensips
-Version: 1.6.4
-%define _upstreamrel 2
-Release: 12
+Version: 2.1.2
+Release: 3
License: GPL v2
Group: Networking/Daemons
-Source0: http://opensips.org/pub/opensips/%{version}/src/%{name}-%{version}-%{_upstreamrel}-tls_src.tar.gz
-# Source0-md5: e9869d9a726d70f83de4a1e77cd24d40
+Source0: http://opensips.org/pub/opensips/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: f7590fde5d99fffe05659442073d750c
Source1: %{name}.init
Source2: %{name}.sysconfig
-Patch0: %{name}-libs.patch
+Source3: %{name}.service
+Patch0: x32.patch
+Patch1: make.patch
URL: http://www.opensips.org/
+%{?with_sngtc:BuildRequires: TODO-SNGTC-BRs}
%{?with_geoip:BuildRequires: GeoIP-devel}
%{?with_osp:BuildRequires: OSPToolkit}
BuildRequires: bison
BuildRequires: curl-devel
BuildRequires: expat-devel
BuildRequires: flex
+%{?with_redis:BuildRequires: hiredis-devel}
%{?with_json:BuildRequires: json-c-devel}
+%{?with_couchbase:BuildRequires: libcouchbase-devel}
%{?with_carrierroute:BuildRequires: libconfuse-devel}
%{?with_memcached:BuildRequires: libmemcached-devel}
+%{?with_microhttpd:BuildRequires: libmicrohttpd-devel}
+%{?with_mongodb:BuildRequires: libmongo-client-devel}
%{?with_pgsql:BuildRequires: libpqxx-devel}
+BuildRequires: libsctp-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-progs
#BuildRequires: lynx
BuildRequires: perl-tools-devel
%{?with_radius:BuildRequires: radiusclient-ng-devel}
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpmbuild(macros) >= 1.671
#BuildRequires: subversion
%{?with_odbc:BuildRequires: unixODBC-devel}
BuildRequires: which
BuildRequires: zlib-devel
Requires(post,preun): /sbin/chkconfig
Requires: rc-scripts
+Requires: systemd-units >= 38
Suggests: python-modules
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# mi_xmlrpc requires xmlrpc-c-devel in version 1.9 only
-%define exclude_modules mi_xmlrpc db_oracle
+# event_rabbitmq requires 'amqp.h'
+# cachedb_cassandra requires 'protocol/TBinaryProtocol.h'
+# lua: lua.h
+%define exclude_modules mi_xmlrpc db_oracle event_rabbitmq cachedb_cassandra lua
%description
OpenSIPS (Open SIP Server) is a mature Open Source implementation of a
and presence services in a highly efficient way, thanks to its
scalable (modular) design.
+%description -l pl.UTF-8
+OpenSIPS (Open SIP Server) to dojrzała, mająca otwarte źródła
+implementacja serwera SIP. OpenSIPS to więcej niż proxy/router SIP,
+jako że zawiera funkcje na poziomie aplikacji. OpenSIPS, jako serwer
+SIP, jest głównym składnikiem dowolnego rozwiązania VoIP opartego na
+SIP. Z bardzo elastycznym i konfigurowalnym silnikiem trasującym,
+łączy usługi głosowe, wideo, komunikatorów oraz obecności w bardzo
+wydajny sposób, dzięki skalowalnej, modularnej budowie.
+
%package mysql
Summary: openSIPS MySQL module
Summary(pl.UTF-8): Moduł MySQL do openSIPS
%description -n mibs-%{name} -l pl.UTF-8
MIB-y dla openSIPS.
+%package redis
+Summary: Redis interface for openSIPS
+Summary(pl.UTF-8): Moduł Redis do openSIPS
+Group: Networking/Daemons
+Requires: %{name} = %{version}-%{release}
+
+%description redis
+Redis interface for openSIPS.
+
+%description redis -l pl.UTF-8
+Moduł Redis do openSIPS.
+
+%package httpd
+Summary: HTTP interface to openSIPS
+Summary(pl.UTF-8): Interfejs HTTP do openSIPS
+Group: Networking/Daemons
+Requires: %{name} = %{version}-%{release}
+
+%description httpd
+HTTP interface to openSIPS.
+
+%description httpd -l pl.UTF-8
+Interfejs HTTP do openSIPS.
+
%prep
-%setup -q -n %{name}-%{version}-%{_upstreamrel}-tls
+%setup -q
%patch0 -p1
-
-find -type d -name CVS | xargs rm -rf
+%patch1 -p1
%build
exclude_modules="%{exclude_modules}"
+%if %{without redis}
+exclude_modules="$exclude_modules cachedb_redis"
+%endif
%if %{without ldap}
exclude_modules="$exclude_modules h350 ldap"
%endif
%if %{without osp}
exclude_modules="$exclude_modules osp"
%endif
+%if %{without microhttpd}
+exclude_modules="$exclude_modules httpd"
+%endif
%if %{without mysql}
exclude_modules="$exclude_modules db_mysql"
%endif
exclude_modules="$exclude_modules json"
%endif
%if %{without memcached}
-exclude_modules="$exclude_modules memcached"
+exclude_modules="$exclude_modules cachedb_memcached"
+%endif
+%if %{without couchbase}
+exclude_modules="$exclude_modules cachedb_couchbase"
+%endif
+%if %{without mongodb}
+exclude_modules="$exclude_modules cachedb_mongodb"
+%endif
+%if %{without sngtc}
+exclude_modules="$exclude_modules sngtc"
%endif
echo "$exclude_modules" > exclude_modules
+LDFLAGS="%{rpmldflags}" \
%{__make} all \
+ Q= \
exclude_modules="$exclude_modules" \
- prefix="%{_prefix}" \
+ prefix=%{_prefix} \
+ PREFIX=%{_prefix} \
+ LIBDIR=%{_lib} \
cfg-prefix=$RPM_BUILD_ROOT \
cfg-target=/etc/opensips/ \
CC="%{__cc}" \
- PREFIX="%{_prefix}" \
- CFLAGS="%{rpmcflags} -Wcast-align -fPIC" \
- TLS=1
+ CC_EXTRA_OPTS="-I/usr/include/ncurses" \
+ CFLAGS="%{rpmcflags} -Wcast-align"
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/{ser,sysconfig,rc.d/init.d}
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/{ser,sysconfig,rc.d/init.d} \
+ -d $RPM_BUILD_ROOT%{systemdunitdir}
exclude_modules="$(cat exclude_modules)"
-%{__make} install \
+%{__make} install -j1 \
+ Q= \
exclude_modules="$exclude_modules" \
- prefix="%{_prefix}" \
- basedir=$RPM_BUILD_ROOT \
+ prefix=%{_prefix} \
+ PREFIX=%{_prefix} \
+ LIBDIR=%{_lib} \
+ BASEDIR=$RPM_BUILD_ROOT \
cfg-prefix=$RPM_BUILD_ROOT \
cfg-target=/etc/opensips/ \
INSTALLMIBDIR=$RPM_BUILD_ROOT%{_datadir}/mibs
[ -f modules/$i/README ] && cp -f modules/$i/README README.$i; \
done
-install -d $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-install $RPM_BUILD_ROOT%{_docdir}/%{name}/* \
- $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}
+# contains the same files we install in %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
#cd doc/serdev
#docbook2html serdev.sgml
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/opensips
install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/opensips
+install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/opensips.service
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add opensips
%service opensips restart "SIP Daemon"
+%systemd_post opensips.service
%preun
+%systemd_preun opensips.service
if [ "$1" = "0" ]; then
%service opensips stop
/sbin/chkconfig --del opensips
fi
+%postun
+%systemd_reload
+
+%triggerpostun -- %{name} < 2.1.0-0.2
+%systemd_trigger opensips.service
+
%files
%defattr(644,root,root,755)
%doc README* AUTHORS CREDITS ChangeLog INSTALL NEWS scripts examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/opensips.cfg
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/opensipsctlrc
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/osipsconsolerc
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/README
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/ca.conf
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/request.conf
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user.conf
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/rootCA
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/cacert.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/index.txt
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/serial
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/rootCA/certs
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/certs/01.pem
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/rootCA/private
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/private/cakey.pem
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/user
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-calist.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-cert.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-cert_req.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-privkey.pem
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/opensips
%attr(754,root,root) /etc/rc.d/init.d/opensips
+%{systemdunitdir}/opensips.service
%dir %{_libdir}/opensips
%dir %{_libdir}/opensips/opensipsctl
%{_libdir}/opensips/opensipsctl/*.*
%attr(755,root,root) %{_libdir}/opensips/modules/auth.so
%attr(755,root,root) %{_libdir}/opensips/modules/auth_aaa.so
%attr(755,root,root) %{_libdir}/opensips/modules/auth_db.so
-%attr(755,root,root) %{_libdir}/opensips/modules/auth_diameter.so
%attr(755,root,root) %{_libdir}/opensips/modules/avpops.so
%attr(755,root,root) %{_libdir}/opensips/modules/b2b_entities.so
%attr(755,root,root) %{_libdir}/opensips/modules/b2b_logic.so
+%attr(755,root,root) %{_libdir}/opensips/modules/b2b_sca.so
%attr(755,root,root) %{_libdir}/opensips/modules/benchmark.so
+%attr(755,root,root) %{_libdir}/opensips/modules/cachedb_local.so
+%attr(755,root,root) %{_libdir}/opensips/modules/cachedb_sql.so
+%attr(755,root,root) %{_libdir}/opensips/modules/call_center.so
%attr(755,root,root) %{_libdir}/opensips/modules/call_control.so
+%attr(755,root,root) %{_libdir}/opensips/modules/compression.so
%attr(755,root,root) %{_libdir}/opensips/modules/cfgutils.so
-%attr(755,root,root) %{_libdir}/opensips/modules/closeddial.so
%attr(755,root,root) %{_libdir}/opensips/modules/cpl-c.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_berkeley.so
+%attr(755,root,root) %{_libdir}/opensips/modules/db_cachedb.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_flatstore.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_http.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_text.so
%attr(755,root,root) %{_libdir}/opensips/modules/dialplan.so
%attr(755,root,root) %{_libdir}/opensips/modules/dispatcher.so
%attr(755,root,root) %{_libdir}/opensips/modules/diversion.so
+%attr(755,root,root) %{_libdir}/opensips/modules/dns_cache.so
%attr(755,root,root) %{_libdir}/opensips/modules/domain.so
%attr(755,root,root) %{_libdir}/opensips/modules/domainpolicy.so
%attr(755,root,root) %{_libdir}/opensips/modules/drouting.so
+%attr(755,root,root) %{_libdir}/opensips/modules/emergency.so
%attr(755,root,root) %{_libdir}/opensips/modules/enum.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_datagram.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_route.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_xmlrpc.so
%attr(755,root,root) %{_libdir}/opensips/modules/exec.so
%attr(755,root,root) %{_libdir}/opensips/modules/gflags.so
%attr(755,root,root) %{_libdir}/opensips/modules/group.so
+%attr(755,root,root) %{_libdir}/opensips/modules/fraud_detection.so
%attr(755,root,root) %{_libdir}/opensips/modules/identity.so
%attr(755,root,root) %{_libdir}/opensips/modules/imc.so
-%attr(755,root,root) %{_libdir}/opensips/modules/lcr.so
%attr(755,root,root) %{_libdir}/opensips/modules/load_balancer.so
-%attr(755,root,root) %{_libdir}/opensips/modules/localcache.so
%attr(755,root,root) %{_libdir}/opensips/modules/mangler.so
+%attr(755,root,root) %{_libdir}/opensips/modules/mathops.so
%attr(755,root,root) %{_libdir}/opensips/modules/maxfwd.so
%attr(755,root,root) %{_libdir}/opensips/modules/mediaproxy.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_datagram.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_fifo.so
+%attr(755,root,root) %{_libdir}/opensips/modules/mi_json.so
+%attr(755,root,root) %{_libdir}/opensips/modules/mi_xmlrpc_ng.so
%attr(755,root,root) %{_libdir}/opensips/modules/msilo.so
%attr(755,root,root) %{_libdir}/opensips/modules/nat_traversal.so
%attr(755,root,root) %{_libdir}/opensips/modules/nathelper.so
%attr(755,root,root) %{_libdir}/opensips/modules/peering.so
%attr(755,root,root) %{_libdir}/opensips/modules/permissions.so
%attr(755,root,root) %{_libdir}/opensips/modules/pike.so
+%attr(755,root,root) %{_libdir}/opensips/modules/pi_http.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_callinfo.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_dialoginfo.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_mwi.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_xcapdiff.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_xml.so
+%attr(755,root,root) %{_libdir}/opensips/modules/proto_sctp.so
+%attr(755,root,root) %{_libdir}/opensips/modules/proto_tls.so
+%attr(755,root,root) %{_libdir}/opensips/modules/proto_ws.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_bla.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_dialoginfo.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_mi.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_usrloc.so
+%attr(755,root,root) %{_libdir}/opensips/modules/python.so
%attr(755,root,root) %{_libdir}/opensips/modules/qos.so
%attr(755,root,root) %{_libdir}/opensips/modules/ratelimit.so
%attr(755,root,root) %{_libdir}/opensips/modules/regex.so
%attr(755,root,root) %{_libdir}/opensips/modules/registrar.so
+%attr(755,root,root) %{_libdir}/opensips/modules/rest_client.so
%attr(755,root,root) %{_libdir}/opensips/modules/rls.so
%attr(755,root,root) %{_libdir}/opensips/modules/rr.so
+%attr(755,root,root) %{_libdir}/opensips/modules/rtpengine.so
+%attr(755,root,root) %{_libdir}/opensips/modules/rtpproxy.so
%attr(755,root,root) %{_libdir}/opensips/modules/seas.so
+%attr(755,root,root) %{_libdir}/opensips/modules/script_helper.so
%attr(755,root,root) %{_libdir}/opensips/modules/signaling.so
+%attr(755,root,root) %{_libdir}/opensips/modules/sipcapture.so
+%attr(755,root,root) %{_libdir}/opensips/modules/sipmsgops.so
%attr(755,root,root) %{_libdir}/opensips/modules/siptrace.so
%attr(755,root,root) %{_libdir}/opensips/modules/sl.so
%attr(755,root,root) %{_libdir}/opensips/modules/sms.so
%attr(755,root,root) %{_libdir}/opensips/modules/statistics.so
%attr(755,root,root) %{_libdir}/opensips/modules/stun.so
%attr(755,root,root) %{_libdir}/opensips/modules/textops.so
-%attr(755,root,root) %{_libdir}/opensips/modules/tlsops.so
%attr(755,root,root) %{_libdir}/opensips/modules/tm.so
+%attr(755,root,root) %{_libdir}/opensips/modules/topology_hiding.so
%attr(755,root,root) %{_libdir}/opensips/modules/uac.so
+%attr(755,root,root) %{_libdir}/opensips/modules/uac_auth.so
%attr(755,root,root) %{_libdir}/opensips/modules/uac_redirect.so
+%attr(755,root,root) %{_libdir}/opensips/modules/uac_registrant.so
%attr(755,root,root) %{_libdir}/opensips/modules/uri.so
%attr(755,root,root) %{_libdir}/opensips/modules/userblacklist.so
%attr(755,root,root) %{_libdir}/opensips/modules/usrloc.so
+%attr(755,root,root) %{_libdir}/opensips/modules/xcap.so
%attr(755,root,root) %{_libdir}/opensips/modules/xcap_client.so
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/db_berkeley
%{_datadir}/%{name}/dbtext
+%{_datadir}/%{name}/menuconfig_templates
+%{_datadir}/%{name}/pi_http
%{_mandir}/man*/*
%files xmpp
%if %{with memcached}
%files memcached
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/opensips/modules/memcached.so
+%attr(755,root,root) %{_libdir}/opensips/modules/cachedb_memcached.so
%endif
%if %{with radius}
%files perl
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/opensips/modules/db_perlvdb.so
%attr(755,root,root) %{_libdir}/opensips/modules/perl.so
-%attr(755,root,root) %{_libdir}/opensips/modules/perlvdb.so
+%{_libdir}/opensips/perl
%files -n mibs-%{name}
%defattr(644,root,root,755)
%{_datadir}/mibs/*
+
+%if %{with redis}
+%files redis
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/opensips/modules/cachedb_redis.so
+%endif
+
+%if %{with microhttpd}
+%files httpd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/opensips/modules/httpd.so
+%attr(755,root,root) %{_libdir}/opensips/modules/mi_http.so
+%endif