svn commit: r538829 - in head/net/opensips: . files
Kurt Jaeger
pi at FreeBSD.org
Sun Jun 14 20:38:06 UTC 2020
Author: pi
Date: Sun Jun 14 20:38:04 2020
New Revision: 538829
URL: https://svnweb.freebsd.org/changeset/ports/538829
Log:
net/opensips: update 2.2.6 -> 3.0.2
- a progress of almost 2.5 years of opensips development
PR: 244594
Submitted by: Talal Al Dik <tad at vif.com>
Approved by: euan at potensol.com (maintainer timeout)
Relnotes: https://opensips.org/pub/opensips/3.0.1/ChangeLog
https://www.opensips.org/About/Version-3-0-0
https://www.opensips.org/About/Version-2-4-x
https://www.opensips.org/About/Version-2-3-x
https://opensips.org/pub/opensips/2.2.7/ChangeLog
Added:
head/net/opensips/files/opensips.cfg.sample.simple (contents, props changed)
Deleted:
head/net/opensips/files/patch-Makefile
head/net/opensips/files/patch-Makefile.defs
head/net/opensips/files/patch-mem__shm_mem.h
Modified:
head/net/opensips/Makefile
head/net/opensips/distinfo
head/net/opensips/files/Makefile.conf
head/net/opensips/files/opensips.cfg.sample
head/net/opensips/files/opensips.in
head/net/opensips/pkg-message
head/net/opensips/pkg-plist
Modified: head/net/opensips/Makefile
==============================================================================
--- head/net/opensips/Makefile Sun Jun 14 20:18:32 2020 (r538828)
+++ head/net/opensips/Makefile Sun Jun 14 20:38:04 2020 (r538829)
@@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= opensips
-DISTVERSION= 2.2.6
-PORTREVISION= 7
+DISTVERSION= 3.0.2
+PORTREVISION= 0
CATEGORIES= net
MASTER_SITES= http://opensips.org/pub/opensips/${PORTVERSION}/
@@ -19,8 +19,7 @@ EXPIRATION_DATE= 2020-09-15
LIB_DEPENDS= libxml2.so:textproc/libxml2 \
libxmlrpc.so:net/xmlrpc-c \
libpcre.so:devel/pcre \
- libconfuse.so:devel/libconfuse \
- librabbitmq.so:net/rabbitmq-c-devel \
+ librabbitmq.so:net/rabbitmq-c \
libhiredis.so:databases/hiredis \
libexpat.so:textproc/expat2 \
libcurl.so:ftp/curl \
@@ -28,10 +27,16 @@ LIB_DEPENDS= libxml2.so:textproc/libxml2 \
BUILD_DEPENDS= ginstall:sysutils/coreutils \
gtar:archivers/gtar \
gm4:devel/m4 \
- redis-server:databases/redis
+ redis-server:databases/redis \
+ flex:textproc/flex
RUN_DEPENDS= ${LOCALBASE}/bin/bash:shells/bash \
${LOCALBASE}/bin/grep:textproc/gnugrep
+USES= gmake bison ncurses perl5 pkgconfig python \
+ shebangfix ssl
+USE_RC_SUBR= opensips
+USE_GCC= yes
+
GINSTALL= ginstall
WRKSRC= ${WRKDIR}/opensips-${PORTVERSION}
@@ -40,19 +45,18 @@ DOCSDIR= share/doc/opensips
USERS= opensips
GROUPS= opensips
-USES= gmake ncurses perl5 pkgconfig python:2.7 shebangfix ssl
-USE_RC_SUBR= opensips
-USE_GCC= yes
+LDFLAGS+= -pthread
NOPRECIOUSMAKEVARS= yes
OPTIONS_DEFINE= DEBUG DOCS EXAMPLES HTTP LDAP MEMCACHED MYSQL \
- PGSQL RADIUS TESTS TLS UNIXODBC SQLITE
+ PGSQL RADIUS SCTP TESTS TLS UNIXODBC SQLITE
OPTIONS_DEFAULT= HTTP LDAP MEMCACHED PGSQL RADIUS TLS
OPTIONS_SUB= yes
HTTP_DESC= Enable HTTP transport via libmicrohttpd
MEMCACHED_DESC= Build with memcached support
+SCTP_DESC= SCTP support
TESTS_DESC= Install smoke tests
LDAP_USE= OPENLDAP=client
@@ -66,93 +70,10 @@ MEMCACHED_LIB_DEPENDS= libmemcached.so:databases/libme
UNIXODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
SQLITE_LIB_DEPENDS= libsqlite3.so:databases/sqlite3
-SHEBANG_FILES= ccopts.sh \
- ccver.sh \
- examples/ctd.sh \
- modules/jabber/doc/jabberreg.pl \
- modules/seas/doc/xml2sgml.sh \
- modules/sipcapture/examples/partrotate_unixtimestamp.pl \
- packaging/debian/rules \
- packaging/freebsd/files/pkg-deinstall.in \
- packaging/freebsd/files/pkg-install.in \
- packaging/gentoo/opensips.init \
- packaging/redhat_fedora/opensips.init \
- packaging/redhat_fedora/opensips-m4cfg \
- packaging/rpm/opensips.init \
- packaging/solaris/berkeley-postinstall \
- packaging/solaris/berkeley-preinstall \
- packaging/solaris/carrierroute-postinstall \
- packaging/solaris/carrierroute-preinstall \
- packaging/solaris/identity-postinstall \
- packaging/solaris/identity-preinstall \
- packaging/solaris/ldap-postinstall \
- packaging/solaris/ldap-preinstall \
- packaging/solaris/mmgeoip-preinstall \
- packaging/solaris/mysql-postinstall \
- packaging/solaris/mysql-preinstall \
- packaging/solaris/pgsql-postinstall \
- packaging/solaris/pgsql-preinstall \
- packaging/solaris/regex-postinstall \
- packaging/solaris/regex-preinstall \
- packaging/solaris/snmp-postinstall \
- packaging/solaris/snmp-preinstall \
- packaging/solaris/xmlrpc-postinstall \
- packaging/solaris/xmlrpc-preinstall \
- scripts/dbtextdb/__init__.py \
- scripts/dbtextdb/dbtextdb.py \
- scripts/dbtextdb/dbtextdb_test.py \
- scripts/opensipsctl \
- scripts/opensipsctl.oracle \
- scripts/opensipsdbctl \
- scripts/opensipsdbctl.oracle \
- scripts/opensipsdbfunc.oracle \
- scripts/osipsconsole \
- test/1.sh \
- test/10.sh \
- test/11.sh \
- test/12.sh \
- test/13.sh \
- test/14.sh \
- test/15.sh \
- test/16.sh \
- test/17.sh \
- test/18.sh \
- test/19.sh \
- test/2.sh \
- test/20.sh \
- test/21.sh \
- test/22.sh \
- test/23.sh \
- test/24.sh \
- test/25.sh \
- test/26.sh \
- test/27.sh \
- test/28.sh \
- test/29.sh \
- test/3.sh \
- test/30.sh \
- test/31.sh \
- test/32.sh \
- test/33.sh \
- test/34.sh \
- test/35.sh \
- test/4.sh \
- test/5.sh \
- test/6.sh \
- test/7.sh \
- test/8.sh \
- test/9.sh \
- utils/fifo_relay/fifo_server.php \
- utils/profile/launch.sh
-python_CMD= ${LOCALBASE}/bin/python2.7
+SHEBANG_GLOB= *.sh *.pl *.py *.php
.include <bsd.port.options.mk>
-.if ${SSL_DEFAULT} == base
-BROKEN_FreeBSD_12= storage size of 'ctx' isn't known
-BROKEN_FreeBSD_13= storage size of 'ctx' isn't known
-.endif
-
.if ${PORT_OPTIONS:MHTTP}
EXTRA_MODULES+= httpd
.endif
@@ -181,6 +102,10 @@ EXTRA_MODULES+= aaa_radius
EXTRA_MODULES+= db_unixodbc
.endif
+.if ${PORT_OPTIONS:MSCTP}
+EXTRA_MODULES+= sctp
+.endif
+
.if ${PORT_OPTIONS:MTLS}
EXTRA_MODULES+= proto_tls proto_wss tls_mgm
.endif
@@ -189,11 +114,8 @@ EXTRA_MODULES+= proto_tls proto_wss tls_mgm
EXTRA_MODULES+= db_sqlite
.endif
-OPENSIPS_MAKE_ENV= CC="${CC}" CXX="${CXX}" CPP="${CPP}" _GCC_RUNTIME="${_GCC_RUNTIME}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" PYTHON=${PYTHON_CMD}
+OPENSIPS_MAKE_ENV= CC="${CC}" CXX="${CXX}" CPP="${CPP}" _GCC_RUNTIME="${_GCC_RUNTIME}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" PYTHON="${PYTHON_CMD}"
-post-patch:
- @${RM} ${WRKSRC}/modules/json/array_del.c
-
do-configure:
@(cp files/Makefile.conf ${WRKSRC})
@@ -213,10 +135,6 @@ do-build:
do-install:
cd ${WRKSRC} && ${OPENSIPS_MAKE_ENV} ${GMAKE} ${INSTALL_TARGET}
- @${REINPLACE_CMD} -e "s|^# MD5=.*|MD5=\"md5\"|" ${STAGEDIR}${PREFIX}/etc/opensips/opensipsctlrc.sample
- @${REINPLACE_CMD} -e "s|^# GREP=.*|GREP=\"${LOCALBASE}/bin/grep\"|" ${STAGEDIR}${PREFIX}/etc/opensips/opensipsctlrc.sample
- @${REINPLACE_CMD} -e "s|^# MD5=.*|MD5=\"md5\"|" ${STAGEDIR}${PREFIX}/etc/opensips/osipsconsolerc.sample
- @${REINPLACE_CMD} -e "s|^# GREP=.*|GREP=\"${LOCALBASE}/bin/egrep\"|" ${STAGEDIR}${PREFIX}/etc/opensips/osipsconsolerc.sample
(cp ${FILESDIR}/opensips.cfg.sample ${STAGEDIR}${ETCDIR}/opensips.cfg.sample)
do-install-TESTS-on:
@@ -226,16 +144,16 @@ do-install-EXAMPLES-on:
(cp -r ${WRKSRC}/examples ${STAGEDIR}${PREFIX}/share/examples/opensips)
post-install:
- @cd ${STAGEDIR}${PREFIX}/sbin && ${STRIP_CMD} opensips osipsconfig opensipsunix
+ @cd ${STAGEDIR}${PREFIX}/sbin && ${STRIP_CMD} opensips osipsconfig
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/opensips/modules/*.so
post-install-RADIUS-on:
- (mv ${STAGEDIR}${ETCDIR}/dictionary.opensips ${STAGEDIR}${ETCDIR}/dictionary.opensips.sample)
+ (mv ${WRKSRC}/etc/dictionary.opensips ${STAGEDIR}${ETCDIR}/dictionary.opensips.sample)
# Strip binaries in sbin
@${ECHO_CMD} "Stripping binaries in ${STAGEDIR}${PREFIX}/sbin/"
-.for i in opensipsunix opensips osipsconfig
+.for i in opensips osipsconfig
@if [ -e ${STAGEDIR}${PREFIX}/sbin/${i} ]; then \
${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/${i}; \
fi
Modified: head/net/opensips/distinfo
==============================================================================
--- head/net/opensips/distinfo Sun Jun 14 20:18:32 2020 (r538828)
+++ head/net/opensips/distinfo Sun Jun 14 20:38:04 2020 (r538829)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1520992193
-SHA256 (opensips-2.2.6.tar.gz) = a48323435e656f6e8de6ff82ef08a55665e2331fc5ad009bf3a2ddc883906e7f
-SIZE (opensips-2.2.6.tar.gz) = 9154213
+TIMESTAMP = 1583320424
+SHA256 (opensips-3.0.2.tar.gz) = b780ee14288fad9145f7943f09a0de1bb8414598a511dec826d5fad86c869dcc
+SIZE (opensips-3.0.2.tar.gz) = 10072210
Modified: head/net/opensips/files/Makefile.conf
==============================================================================
--- head/net/opensips/files/Makefile.conf Sun Jun 14 20:18:32 2020 (r538828)
+++ head/net/opensips/files/Makefile.conf Sun Jun 14 20:38:04 2020 (r538829)
@@ -1,94 +1,100 @@
-#aaa_radius= Radius implementation for the AAA API from the core | Radius client development library, tipically radiusclient-ng 0.5.0 or higher
+#aaa_radius= Radius implementation for the AAA API from the core | Radius client development library, typically radiusclient-ng 0.5.0 or higher
#b2b_logic= Logic engine of B2BUA, responsible of actually implementing the B2BUA services | xml parsing development library, typically libxml2-dev
#cachedb_cassandra= Implementation of a cache system designed to work with Cassandra servers | thrift 0.6.1
#cachedb_couchbase= Implementation of a cache system designed to work with CouchBase servers | libcouchbase >= 2.0
-#cachedb_memcached= Implementation of a cache system designed to work with a memcached server. | Memcached client library, tipically libmemcached
+#cachedb_memcached= Implementation of a cache system designed to work with a memcached server. | Memcached client library, typically libmemcached
#cachedb_mongodb= Implementation of a cache system designed to work with a MongoDB server. | libjson and the mongo-c-driver
#cachedb_redis= Implementation of a cache system designed to work with Redis servers | Redis client library, hiredis
#carrierroute= Provides routing, balancing and blacklisting capabilities. | libconfuse, a configuration file parser library
-#compression= Implements SIP message compression/decompression and base64 encoding | zlib dev library, tipically zlib1g-dev
-#cpl_c= Implements a CPL (Call Processing Language) interpreter | library for parsing XML files, tipically libxml2 and libxml2-devel
+#cgrates= Provides integration with the CGRateS billing/rating engine. | JSON library, libjson
+#compression= Implements SIP message compression/decompression and base64 encoding | zlib dev library, typically zlib1g-dev
+#cpl_c= Implements a CPL (Call Processing Language) interpreter | library for parsing XML files, typically libxml2 and libxml2-devel
#db_berkeley= Integrates the Berkeley DB into OpenSIPS | Berkeley embedded database
#db_http= Provides access to a database that is implemented as a HTTP server. | CURL library - libcurl
-#db_mysql= Provides MySQL connectivity for OpenSIPS | development libraries of mysql-client , tipically libmysqlclient-dev
-#db_oracle= Provides Oracle connectivity for OpenSIPS. | Development library of OCI, tipically instantclient-sdk-10.2.0.3
-#db_perlvdb= Provides a virtualization framework for OpenSIPS's database access. | Perl library development files, tipically libperl-dev
-#db_postgres= Provides Postgres connectivity for OpenSIPS | PostgreSQL library and development library - tipically libpq5 and libpq-dev
-#db_sqlite= Provides SQLite connectivity for OpenSIPS | SQLite library and development library - tipically libsqlite3 and libsqlite3-dev
+#db_mysql= Provides MySQL connectivity for OpenSIPS | development libraries of mysql-client , typically libmysqlclient-dev
+#db_oracle= Provides Oracle connectivity for OpenSIPS. | Development library of OCI, typically instantclient-sdk-10.2.0.3
+#db_perlvdb= Provides a virtualization framework for OpenSIPS's database access. | Perl library development files, typically libperl-dev
+#db_postgres= Provides Postgres connectivity for OpenSIPS | PostgreSQL library and development library - typically libpq5 and libpq-dev
+#db_sqlite= Provides SQLite connectivity for OpenSIPS | SQLite library and development library - typically libsqlite3 and libsqlite3-dev
#db_unixodbc= Allows to use the unixodbc package with OpenSIPS | ODBC library and ODBC development library
-#dialplan= Implements generic string translations based on matching and replacement rules | PCRE development library, tipically libpcre-dev
-#emergency= Provides emergency call treatment for OpenSIPS | CURL dev library - tipically libcurl4-openssl-dev
+#dialplan= Implements generic string translations based on matching and replacement rules | PCRE development library, typically libpcre-dev
+#emergency= Provides emergency call treatment for OpenSIPS | CURL dev library - typically libcurl4-openssl-dev
#event_rabbitmq= Provides the implementation of a RabbitMQ client for the Event Interface | RabbitMQ development library, librabbitmq-dev
-#h350= Enables access to SIP account data stored in an LDAP [RFC4510] directory containing H.350 commObjects | OpenLDAP library & development files, tipically libldap and libldap-dev
-#regex= Offers matching operations against regular expressions using the powerful PCRE library. | Development library for PCRE, tipically libpcre-dev
-#identity= Adds support for SIP Identity (see RFC 4474). | SSL library, tipically libssl
+#h350= Enables access to SIP account data stored in an LDAP [RFC4510] directory containing H.350 commObjects | OpenLDAP library & development files, typically libldap and libldap-dev
+#regex= Offers matching operations against regular expressions using the powerful PCRE library. | Development library for PCRE, typically libpcre-dev
+#identity= Adds support for SIP Identity (see RFC 4474). | SSL library, typically libssl
#jabber= Integrates XODE XML parser for parsing Jabber messages | Expat library.
#json= Introduces a new type of variable that provides both serialization and de-serialization from JSON format. | JSON library, libjson
-#ldap= Implements an LDAP search interface for OpenSIPS | OpenLDAP library & development files, tipically libldap and libldap-dev
+#ldap= Implements an LDAP search interface for OpenSIPS | OpenLDAP library & development files, typically libldap and libldap-dev
#lua= Easily implement your own OpenSIPS extensions in Lua | liblua5.1-0-dev, libmemcache-dev and libmysqlclient-dev
#httpd= Provides an HTTP transport layer implementation for OpenSIPS. | libmicrohttpd
-#mi_xmlrpc_ng= New version of the xmlrpc server that handles xmlrpc requests and generates xmlrpc responses. | parsing/building XML library, tipically libxml
+#mi_xmlrpc_ng= New version of the xmlrpc server that handles xmlrpc requests and generates xmlrpc responses. | parsing/building XML library, typically libxml
#mmgeoip= Lightweight wrapper for the MaxMind GeoIP API | libGeoIP
-#osp= Enables OpenSIPS to support secure, multi-lateral peering using the OSP standard | OSP development kit, tipically osptoolkit
-#perl= Easily implement your own OpenSIPS extensions in Perl | Perl library development files, tipically libperl-dev
-#pi_http= Provides a simple web database provisioning interface | XML parsing & building library, tipically libxml-dev
-#proto_sctp= Provides support for SCTP listeners in OpenSIPS | SCTP development library, tipically libsctp-dev
-#proto_tls= Provides support for TLS listeners in OpenSIPS | SSL development library, tipically libssl-dev
-#proto_wss= Provides support for Secure WebSocket listeners in OpenSIPS | SSL development library, tipically libssl-dev
-#presence= Handles PUBLISH and SUBSCRIBE messages and generates NOTIFY messages in a general, event independent way | XML parsing & Building library, tipically libxml-dev
-#presence_dialoginfo= Enables the handling of "Event: dialog" (as defined in RFC 4235) | XML parsing & building library, tipically libxml-dev
-#presence_mwi= Does specific handling for notify-subscribe message-summary (message waiting indication) events as specified in RFC 3842 | XML parsing & building library, tipically libxml-dev
-#presence_xml= Does specific handling for notify-subscribe events using xml bodies. | XML parsing & building library, tipically libxml-dev
-#pua= Offers the functionality of a presence user agent client, sending Subscribe and Publish messages. | XML parsing & building library, tipically libxml-dev
-#pua_bla= Enables Bridged Line Appearances support according | XML parsing & building library, tipically libxml-dev
-#pua_dialoginfo= Retrieves dialog state information from the dialog module and PUBLISHes the dialog-information using the pua module. | XML parsing & building library,tipically libxml-dev
-#pua_mi= Offers the possibility to publish presence information and subscribe to presence information via MI transports. | XML parsing & building library,tipically libxml-dev
-#pua_usrloc= Connector between usrloc and pua modules. | XML parsing & building library,tipically libxml-dev
-#pua_xmpp= Gateway for presence between SIP and XMPP. | XML parsing & building library,tipically libxml-dev
+#osp= Enables OpenSIPS to support secure, multi-lateral peering using the OSP standard | OSP development kit, typically osptoolkit
+#perl= Easily implement your own OpenSIPS extensions in Perl | Perl library development files, typically libperl-dev
+#pi_http= Provides a simple web database provisioning interface | XML parsing & building library, typically libxml-dev
+#rabbitmq= Provides functions to publish messages to a RabbitMQ server | RabbitMQ development library, librabbitmq-dev
+#rabbitmq_consumer= Receive AMQP messages which will be delivered by triggering events | RabbitMQ development library, librabbitmq-dev
+#proto_sctp= Provides support for SCTP listeners in OpenSIPS | SCTP development library, typically libsctp-dev
+#proto_tls= Provides support for TLS listeners in OpenSIPS | SSL development library, typically libssl-dev
+#proto_wss= Provides support for Secure WebSocket listeners in OpenSIPS | SSL development library, typically libssl-dev
+#presence= Handles PUBLISH and SUBSCRIBE messages and generates NOTIFY messages in a general, event independent way | XML parsing & Building library, typically libxml-dev
+#presence_dialoginfo= Enables the handling of "Event: dialog" (as defined in RFC 4235) | XML parsing & building library, typically libxml-dev
+#presence_mwi= Does specific handling for notify-subscribe message-summary (message waiting indication) events as specified in RFC 3842 | XML parsing & building library, typically libxml-dev
+#presence_xml= Does specific handling for notify-subscribe events using xml bodies. | XML parsing & building library, typically libxml-dev
+#pua= Offers the functionality of a presence user agent client, sending Subscribe and Publish messages. | XML parsing & building library, typically libxml-dev
+#pua_bla= Enables Bridged Line Appearances support according | XML parsing & building library, typically libxml-dev
+#pua_dialoginfo= Retrieves dialog state information from the dialog module and PUBLISHes the dialog-information using the pua module. | XML parsing & building library,typically libxml-dev
+#pua_mi= Offers the possibility to publish presence information and subscribe to presence information via MI transports. | XML parsing & building library,typically libxml-dev
+#pua_usrloc= Connector between usrloc and pua modules. | XML parsing & building library,typically libxml-dev
+#pua_xmpp= Gateway for presence between SIP and XMPP. | XML parsing & building library,typically libxml-dev
#python= Easily implement your own OpenSIPS extensions in Python | Shared Python runtime library, libpython
#rest_client= Simple HTTP client | CURL library - libcurl
-#rls= Resource List Server implementation following the specification in RFC 4662 and RFC 4826 | parsing/building XML library, tipically libxml-dev
+#rls= Resource List Server implementation following the specification in RFC 4662 and RFC 4826 | parsing/building XML library, typically libxml-dev
#sngtc= Voice Transcoding using the D-series Sangoma transcoding cards | libsngtc_node
+#siprec= SIP Call Recording to an external/passive recorder | uuid-dev
#snmpstats= Provides an SNMP management interface to OpenSIPS | NetSNMP v5.3
-#tls_mgm= Provides a TLS interface to manage certificates for OpenSIPS | SSL development library, tipically libssl-dev
+#tls_mgm= Provides a TLS interface to manage certificates for OpenSIPS | SSL development library, typically libssl-dev
#xcap= XCAP utility functions for OpenSIPS. | libxml-dev
#xcap_client= XCAP client for OpenSIPS.It fetches XCAP elements, either documents or part of them, by sending HTTP GET requests | libxml-dev and libcurl-dev
-#xmpp= Gateway between OpenSIPS and a jabber server. It enables the exchange of IMs between SIP clients and XMPP(jabber) clients. | parsing/building XML files, tipically libexpat1-devel
+#xml= Introduces a new type of variable that provides both serialization and de-serialization from XML format. | XML library, libxml2-dev
+#xmpp= Gateway between OpenSIPS and a jabber server. It enables the exchange of IMs between SIP clients and XMPP(jabber) clients. | parsing/building XML files, typically libexpat1-devel
-exclude_modules= aaa_radius b2b_logic cachedb_cassandra cachedb_couchbase cachedb_memcached cachedb_mongodb cachedb_redis carrierroute compression cpl_c db_berkeley db_http db_mysql db_oracle db_perlvdb db_postgres db_sqlite db_unixodbc dialplan emergency event_rabbitmq h350 regex identity jabber json ldap lua httpd mi_xmlrpc_ng mmgeoip osp perl pi_http presence presence_dialoginfo presence_mwi presence_xml proto_sctp proto_tls proto_wss pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp python rest_client rls sngtc snmpstats tls_mgm xcap xcap_client xmpp
+exclude_modules?= aaa_radius b2b_logic cachedb_cassandra cachedb_couchbase cachedb_memcached cachedb_mongodb cachedb_redis carrierroute cgrates compression cpl_c db_berkeley db_http db_mysql db_oracle db_perlvdb db_postgres db_sqlite db_unixodbc dialplan emergency event_rabbitmq h350 httpd identity jabber json ldap lua mi_xmlrpc_ng mmgeoip osp perl pi_http presence presence_dialoginfo presence_mwi presence_xml proto_sctp proto_tls proto_wss pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp python regex rabbitmq rabbitmq_consumer rest_client rls siprec sngtc snmpstats tls_mgm xcap xcap_client xml xmpp
-include_modules= b2b_logic cachedb_redis carrierroute cpl_c dialplan event_rabbitmq regex identity jabber json mi_xmlrpc_ng perl pi_http presence presence_dialoginfo presence_mwi presence_xml pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp python rest_client rls xcap xcap_client xmpp
+include_modules?=
-#DEFS_GROUP_START
-DEFS+= -DPKG_MALLOC #Uses a faster malloc
-#DEFS+= -DUSE_SHM_MEM #All PKG allocations are mapped to SHM
-#DEFS_GROUP_END
+DEFS+= -DPKG_MALLOC #Use a faster malloc
DEFS+= -DSHM_MMAP #Use mmap instead of SYSV shared memory
DEFS+= -DUSE_MCAST #Compile in support for IP Multicast
-DEFS+= -DDISABLE_NAGLE #Disabled the TCP NAgle Algorithm ( lower delay )
-DEFS+= -DSTATISTICS #Enables the statistics manager
+DEFS+= -DDISABLE_NAGLE #Disable the TCP NAgle Algorithm ( lower delay )
+DEFS+= -DSTATISTICS #Enable the statistics manager
DEFS+= -DHAVE_RESOLV_RES #Support for changing some of the resolver parameters
-#DEFS_GROUP_START
-##DEFS+= -DVQ_MALLOC #Very quick & wasteful mem allocator (currently disabled)
-#DEFS+= -DQM_MALLOC #Quality assurance memory allocator with runtime safety checks
+# Specifying exactly 1 allocator will cause it to be inlined (fastest)
DEFS+= -DF_MALLOC #Fast memory allocator with minimal runtime overhead
-#DEFS+= -DHP_MALLOC #High performance allocator with fine-grained locking
+DEFS+= -DQ_MALLOC #Quality assurance memory allocator with runtime safety checks
+DEFS+= -DHP_MALLOC #High performance allocator with fine-grained locking
+DEFS+= -DDBG_MALLOC #Include additional, debug-enabled allocator flavors
+#DEFS+= -DNO_DEBUG #Compile out all debug messages
+#DEFS+= -DNO_LOG #Compile out all logging
+#DEFS_GROUP_START
+#DEFS+= -DFAST_LOCK #Use fast architecture specific locking
+#DEFS+= -DUSE_SYSV_SEM #Use SYSV sems for locking ( slower & limited number of locks
+#DEFS+= -DUSE_PTHREAD_MUTEX #Use pthread mutexes for locking
+#DEFS+= -DUSE_UMUTEX #Use FreeBSD-specific low-level mutexes for locking
+#DEFS+= -DUSE_POSIX_SEM #Use POSIX sems for locking
#DEFS_GROUP_END
-#DEFS+= -DDBG_MALLOC #Enables debugging for memory allocators
-#DEFS+= -DF_MALLOC_OPTIMIZATIONS #Remove all safety checks in F_MALLOC
-#DEFS+= -DNO_DEBUG #Turns off all debug messages
-#DEFS+= -DNO_LOG #Completely turns off all the logging
-#DEFS+= -DFAST_LOCK #Uses fast architecture specific locking
-#DEFS+= -DUSE_FUTEX #Uses linux futexs with fast architecture specific locking
-#DEFS+= -DUSE_SYSV_SEM #Uses SYSV sems for locking ( slower & limited number of locks
-#DEFS+= -DUSE_PTHREAD_MUTEX #Uses pthread mutexes for locking
-#DEFS+= -DUSE_POSIX_SEM #Uses POSIX sems for locking
-#DEFS+= -DBUSY_WAIT #Uses busy waiting on the lock
+#DEFS+= -DUSE_FUTEX #Use linux futexes with fast architecture specific locking
+#DEFS+= -DBUSY_WAIT #Use busy waiting on the lock
#DEFS+= -DDBG_LOCK #Attach debug info to all lock structures
-#DEFS+= -DNOSMP #Do not use SMP sompliant locking. Faster but won't work on SMP machines
-#DEFS+= -DEXTRA_DEBUG #Compiles in some extra debugging code
-#DEFS+= -DORACLE_USRLOC #Uses Oracle compatible queries for USRLOC
-#DEFS+= -DSHM_EXTRA_STATS #Needed when using the mem-group core parameter
+#DEFS+= -DDBG_STRUCT_HIST #Include support for struct history logging
+#DEFS+= -DDBG_TCPCON #Attach struct history info to all TCP connections
+#DEFS+= -DNOSMP #Do not use SMP compliant locking. Faster but won't work on SMP machines
+#DEFS+= -DEXTRA_DEBUG #Compile in some extra debugging code
+#DEFS+= -DCC_O0 #Zero compiler optimizations (FAST compile, SLOW code. For devs)
+#DEFS+= -DORACLE_USRLOC #Use Oracle compatible queries for USRLOC
+#DEFS+= -DSHM_EXTRA_STATS #Provide tools to get extra statistics for the shared memory used
+#DEFS+= -DUNIT_TESTS #Include unit testing code into opensips and modules
PREFIX=_PREFIX_
BASEDIR=_STAGE_DIR_
Modified: head/net/opensips/files/opensips.cfg.sample
==============================================================================
--- head/net/opensips/files/opensips.cfg.sample Sun Jun 14 20:18:32 2020 (r538828)
+++ head/net/opensips/files/opensips.cfg.sample Sun Jun 14 20:38:04 2020 (r538829)
@@ -1,17 +1,18 @@
#
# OpenSIPS residential configuration script
+# by OpenSIPS Solutions <team at opensips-solutions.com>
#
-# This script was originally generated via
-# 'CC=gcc6 gmake menuconfig', from the "Residential" scenario.
+# This script was generated via "gmake CC=gcc8 menuconfig", from
+# the "Residential" scenario.
# You can enable / disable more features / functionalities by
-# re-generating the scenario with different options.
+# re-generating the scenario with different options.#
#
# To generate an opensips script in FreeBSD, run the following commands,
# after installing the port / package.
# $ cd /usr/ports/net/opensips
# $ make patch
# $ cd work/opensips-*/
-# $ CC=gcc6 gmake menuconfig
+# $ gmake CC=gcc8 menuconfig
# $ ls tmp/
#
# As the FreeBSD port maintainer, I have tailored it a little
@@ -21,8 +22,8 @@
# the db_url variables throughout this script.
#
# Please refer to the Core CookBook at:
-# http://www.opensips.org/Resources/DocsCookbooks
-# for an explanation of possible statements, functions and parameters.
+# http://www.opensips.org/Resources/DocsCookbooks
+# for a explanation of possible statements, functions and parameters.
#
@@ -46,10 +47,11 @@ children=4
#dns_try_ipv6=yes
/* comment the next line to enable the auto discovery of local aliases
- based on revers DNS on IPs */
+ based on reverse DNS on IPs */
auto_aliases=no
+#listen=udp:127.0.0.1:5060 # CUSTOMIZE ME
listen=udp:192.168.10.12:5060 # CUSTOMIZE ME
listen=tcp:192.168.10.12:5060 # CUSTOMIZE ME
listen=tls:192.168.10.12:5061 # CUSTOMIZE ME
@@ -94,14 +96,10 @@ loadmodule "mi_fifo.so"
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
modparam("mi_fifo", "fifo_mode", 0666)
-
#### URI module
loadmodule "uri.so"
modparam("uri", "use_uri_table", 0)
-
-
-
#### PGSQL module
loadmodule "db_postgres.so"
@@ -115,11 +113,12 @@ loadmodule "db_postgres.so"
#### USeR LOCation module
loadmodule "usrloc.so"
modparam("usrloc", "nat_bflag", "NAT")
+modparam("usrloc", "nat_bflag", "NAT")
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
#modparam("usrloc", "hash_size", 11) # increases size of userloc hash table
+#modparam("usrloc", "working_mode_preset", "single-instance-no-db")
-
#### REGISTRAR module
loadmodule "registrar.so"
modparam("registrar", "tcp_persistent_flag", "TCP_PERSISTENT")
@@ -133,13 +132,11 @@ loadmodule "acc.so"
modparam("acc", "early_media", 0)
modparam("acc", "report_cancels", 0)
/* by default we do not adjust the direct of the sequential requests.
- if you enable this parameter, be sure the enable "append_fromtag"
+ if you enable this parameter, be sure to enable "append_fromtag"
in "rr" module */
modparam("acc", "detect_direction", 0)
modparam("acc", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
-
-
#### AUTHentication modules
loadmodule "auth.so"
loadmodule "auth_db.so"
@@ -148,22 +145,16 @@ modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
modparam("auth_db", "load_credentials", "")
-
-
#### ALIAS module
loadmodule "alias_db.so"
modparam("alias_db", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
-
-
#### DOMAIN module
loadmodule "domain.so"
modparam("domain", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
modparam("domain", "db_mode", 1) # Use caching
modparam("auth_db|usrloc|uri", "use_domain", 1)
-
-
#### PRESENCE modules
loadmodule "xcap.so"
loadmodule "presence.so"
@@ -172,11 +163,10 @@ modparam("xcap|presence", "db_url", "postgres://dbuser
modparam("presence_xml", "force_active", 1)
modparam("presence", "server_address", "sip:127.0.0.1:5060") # CUSTOMIZE ME
#modparam("presence", "subs_htable_size", 11) # increases size of presence subs hash table
-#modparam("presence", "pres_htable_size", 11) # increases size of presence pres hash table
+#modparam("presence", "pres_htable_size", 11) # increases size of presence subs hash table
#modparam("presence", "max_expires_subscribe", 600)
#modparam("presence", "max_expires_publish", 600)
-
#### DIALOG module
loadmodule "dialog.so"
modparam("dialog", "dlg_match_mode", 1)
@@ -184,8 +174,6 @@ modparam("dialog", "default_timeout", 21600) # 6 hour
modparam("dialog", "db_mode", 2)
modparam("dialog", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
-
-
#### NAT modules
loadmodule "nathelper.so"
modparam("nathelper", "natping_interval", 10)
@@ -195,35 +183,27 @@ modparam("nathelper", "sipping_from", "sip:pinger at 127.
modparam("nathelper", "received_avp", "$avp(received_nh)")
loadmodule "rtpproxy.so"
-modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:12221") # CUSTOMIZE ME (make sure rtpproxy port matches server)
+modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:12221") # CUSTOMIZE ME
-
#### DIALPLAN module
loadmodule "dialplan.so"
modparam("dialplan", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
-
-
#### DYNAMMIC ROUTING module
loadmodule "drouting.so"
modparam("drouting", "db_url", "postgres://dbuser:dbpass@dbhostname/dbname") # CUSTOMIZE ME
-
-
#### MI_HTTP module
#loadmodule "mi_http.so"
-
#### UDP module
loadmodule "proto_udp.so"
-
#### TCP module
loadmodule "proto_tcp.so"
#modparam("proto_tcp", "tcp_send_timeout", 200)
#modparam("proto_tcp", "tcp_max_msg_chunks", 8)
-
#### TLS modules
loadmodule "proto_tls.so"
loadmodule "tls_mgm.so"
@@ -237,117 +217,65 @@ modparam("tls_mgm","ca_list", "/usr/local/etc/opensips
#modparam("tls_mgm", "tls_send_timeout", 200)
#modparam("tls_mgm", "tls_handshake_timeout", 119)
#modparam("proto_tls", "tls_max_msg_chunks", 8)
-
-
####### Routing Logic ########
# main request routing logic
route{
- force_rport();
- if (nat_uac_test("23")) {
- if (is_method("REGISTER")) {
- fix_nated_register();
- setbflag(NAT);
- } else {
- fix_nated_contact();
- setflag(NAT);
- }
- }
-
- if (!mf_process_maxfwd_header("10")) {
- sl_send_reply("483","Too Many Hops");
+ if (!mf_process_maxfwd_header(10)) {
+ send_reply(483,"Too Many Hops");
exit;
}
if (has_totag()) {
- # sequential request withing a dialog should
- # take the path determined by record-routing
- if (loose_route()) {
-
- # validate the sequential request against dialog
- if ( $DLG_status!=NULL && !validate_dialog() ) {
- xlog("In-Dialog $rm from $si (callid=$ci) is not valid according to dialog\n");
- ## exit;
- }
-
- if (is_method("BYE")) {
- # do accounting even if the transaction fails
- do_accounting("db","failed");
-
- } else if (is_method("INVITE")) {
- # even if in most of the cases is useless, do RR for
- # re-INVITEs alos, as some buggy clients do change route set
- # during the dialog.
- record_route();
- }
- if (check_route_param("nat=yes"))
- setflag(NAT);
+ # handle hop-by-hop ACK (no routing required)
+ if ( is_method("ACK") && t_check_trans() ) {
+ t_relay();
+ exit;
+ }
- # route it out to whatever destination was set by loose_route()
- # in $du (destination URI).
- route(relay);
- } else {
- if (is_method("SUBSCRIBE") && $rd == "127.0.0.1:5060") { # CUSTOMIZE ME
- # in-dialog subscribe requests
- route(handle_presence);
- exit;
- }
- if ( is_method("ACK") ) {
- if ( t_check_trans() ) {
- # non loose-route, but stateful ACK; must be an ACK after
- # a 487 or e.g. 404 from upstream server
- t_relay();
- exit;
- } else {
- # ACK without matching transaction ->
- # ignore and discard
- exit;
- }
- }
- sl_send_reply("404","Not here");
+ # sequential request within a dialog should
+ # take the path determined by record-routing
+ if ( !loose_route() ) {
+ # we do record-routing for all our traffic, so we should not
+ # receive any sequential requests without Route hdr.
+ send_reply(404,"Not here");
+ exit;
}
+
+ if (is_method("BYE")) {
+ # do accounting even if the transaction fails
+ do_accounting("log","failed");
+ }
+
+ # route it out to whatever destination was set by loose_route()
+ # in $du (destination URI).
+ route(relay);
exit;
}
# CANCEL processing
- if (is_method("CANCEL"))
- {
+ if (is_method("CANCEL")) {
if (t_check_trans())
t_relay();
exit;
}
+ # absorb retransmissions, but do not create transaction
t_check_trans();
- if ( !(is_method("REGISTER") || is_from_gw() ) ) {
+ if ( !(is_method("REGISTER") ) ) {
- if (is_from_local())
- {
-
- # authenticate if from local subscriber
- # authenticate all initial non-REGISTER request that pretend to be
- # generated by local subscriber (domain from FROM URI is local)
- if (!proxy_authorize("", "subscriber")) {
- proxy_challenge("", "0");
- exit;
- }
- if (!db_check_from()) {
- sl_send_reply("403","Forbidden auth ID");
- exit;
- }
-
- consume_credentials();
- # caller authenticated
-
+ if (is_myself("$fd")) {
+
} else {
# if caller is not local, then called number must be local
- if (!is_uri_host_local()) {
- send_reply("403","Rely forbidden");
+ if (!is_myself("$rd")) {
+ send_reply(403,"Relay Forbidden");
exit;
}
}
@@ -357,9 +285,9 @@ route{
# preloaded route checking
if (loose_route()) {
xlog("L_ERR",
- "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
+ "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
if (!is_method("ACK"))
- sl_send_reply("403","Preload Route denied");
+ send_reply(403,"Preload Route denied");
exit;
}
@@ -370,57 +298,25 @@ route{
# account only INVITEs
if (is_method("INVITE")) {
- # create dialog with timeout
- if ( !create_dialog("B") ) {
- send_reply("500","Internal Server Error");
- exit;
- }
-
- do_accounting("db");
-
+ do_accounting("log");
}
- if (!is_uri_host_local()) {
+ if (!is_myself("$rd")) {
append_hf("P-hint: outbound\r\n");
- # if you have some interdomain connections via TLS
- ## CUSTOMIZE IF NEEDED
- ##if ($rd=="tls_domain1.net"
- ## || $rd=="tls_domain2.net"
- ##) {
- ## force_send_socket(tls:127.0.0.1:5061); # CUSTOMIZE
- ##}
-
route(relay);
}
# requests for my domain
- if( is_method("PUBLISH|SUBSCRIBE"))
- route(handle_presence);
+ if (is_method("PUBLISH|SUBSCRIBE")) {
+ send_reply(503, "Service Unavailable");
+ exit;
+ }
- if (is_method("REGISTER"))
- {
- # authenticate the REGISTER requests
- if (!www_authorize("", "subscriber"))
- {
- www_challenge("", "0");
- exit;
- }
-
- if (!db_check_to())
- {
- sl_send_reply("403","Forbidden auth ID");
- exit;
- }
-
- if ( proto==TCP || proto==TLS || 0 ) setflag(TCP_PERSISTENT);
-
- if (isflagset(NAT)) {
- setbflag(SIP_PING_FLAG);
- }
-
+ if (is_method("REGISTER")) {
+
if (!save("location"))
sl_reply_error();
@@ -429,49 +325,18 @@ route{
if ($rU==NULL) {
# request with no Username in RURI
- sl_send_reply("484","Address Incomplete");
+ send_reply(484,"Address Incomplete");
exit;
}
-
- # apply DB based aliases
- alias_db_lookup("dbaliases");
-
-
- # apply transformations from dialplan table
- dp_translate("0","$rU/$rU");
-
-
- if ($rU=~"^\+[1-9][0-9]+$") {
-
- if (!do_routing("0")) {
- send_reply("500","No PSTN Route found");
- exit;
- }
-
- route(relay);
+ # do lookup with method filtering
+ if (!lookup("location","m")) {
+ t_reply(404, "Not Found");
exit;
}
-
- # do lookup with method filtering
- if (!lookup("location","m")) {
- if (!db_does_uri_exist()) {
- send_reply("420","Bad Extension");
- exit;
- }
-
- # redirect to a different VM system
- $du = "sip:127.0.0.2:5060"; # CUSTOMIZE ME
- route(relay);
-
- }
-
- if (isbflagset(NAT)) setflag(NAT);
-
# when routing via usrloc, log the missed calls also
- do_accounting("db","missed");
-
+ do_accounting("log","missed");
route(relay);
}
@@ -479,60 +344,26 @@ route{
route[relay] {
# for INVITEs enable some additional helper routes
if (is_method("INVITE")) {
-
- if (isflagset(NAT)) {
- rtpproxy_offer("ro");
- }
-
t_on_branch("per_branch_ops");
t_on_reply("handle_nat");
t_on_failure("missed_call");
}
- if (isflagset(NAT)) {
- add_rr_param(";nat=yes");
- }
-
if (!t_relay()) {
- send_reply("500","Internal Error");
- };
+ send_reply(500,"Internal Error");
+ }
exit;
}
-# Presence route
-route[handle_presence]
-{
- if (!t_newtran())
- {
- sl_reply_error();
- exit;
- }
- if(is_method("PUBLISH"))
- {
- handle_publish();
- }
- else
- if( is_method("SUBSCRIBE"))
- {
- handle_subscribe();
- }
- exit;
-}
-
-
branch_route[per_branch_ops] {
xlog("new branch at $ru\n");
}
onreply_route[handle_nat] {
- if (nat_uac_test("1"))
- fix_nated_contact();
- if ( isflagset(NAT) )
- rtpproxy_answer("ro");
xlog("incoming reply\n");
}
@@ -545,25 +376,12 @@ failure_route[missed_call] {
# uncomment the following lines if you want to block client
# redirect based on 3xx replies.
##if (t_check_status("3[0-9][0-9]")) {
- ##t_reply("404","Not found");
+ ##t_reply(404,"Not found");
## exit;
##}
- # redirect the failed to a different VM system
- if (t_check_status("486|408")) {
- $du = "sip:127.0.0.2:5060"; # CUSTOMIZE ME
- # do not set the missed call flag again
- route(relay);
- }
}
-local_route {
- if (is_method("BYE") && $DLG_dir=="UPSTREAM") {
-
- acc_db_request("200 Dialog Timeout", "acc");
-
- }
-}
Added: head/net/opensips/files/opensips.cfg.sample.simple
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/opensips/files/opensips.cfg.sample.simple Sun Jun 14 20:38:04 2020 (r538829)
@@ -0,0 +1,357 @@
+#
+# OpenSIPS residential configuration script
+# by OpenSIPS Solutions <team at opensips-solutions.com>
+#
+# This script was generated via "make menuconfig", from
+# the "Residential" scenario.
+# You can enable / disable more features / functionalities by
+# re-generating the scenario with different options.#
+#
+# Please refer to the Core CookBook at:
+# http://www.opensips.org/Resources/DocsCookbooks
+# for a explanation of possible statements, functions and parameters.
+#
+
+
+####### Global Parameters #########
+
+log_level=3
+log_stderror=no
+log_facility=LOG_LOCAL0
+
+udp_workers=4
+
+/* uncomment the following lines to enable debugging */
+#debug_mode=yes
+
+/* uncomment the next line to enable the auto temporary blacklisting of
+ not available destinations (default disabled) */
+#disable_dns_blacklist=no
+
+/* uncomment the next line to enable IPv6 lookup after IPv4 dns
+ lookup failures (default disabled) */
+#dns_try_ipv6=yes
+
+/* comment the next line to enable the auto discovery of local aliases
+ based on reverse DNS on IPs */
+auto_aliases=no
+
+
+listen=udp:127.0.0.1:5060 # CUSTOMIZE ME
+
+
+
+####### Modules Section ########
+
+#set module path
+mpath="/usr/local/lib/opensips/modules/"
+
+#### SIGNALING module
+loadmodule "signaling.so"
+
+#### StateLess module
+loadmodule "sl.so"
+
+#### Transaction Module
+loadmodule "tm.so"
+modparam("tm", "fr_timeout", 5)
+modparam("tm", "fr_inv_timeout", 30)
+modparam("tm", "restart_fr_on_each_reply", 0)
+modparam("tm", "onreply_avp_mode", 1)
+
+#### Record Route Module
+loadmodule "rr.so"
+/* do not append from tag to the RR (no need for this script) */
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-ports-head
mailing list