Date: Sun, 14 Jun 2020 20:38:04 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r538829 - in head/net/opensips: . files Message-ID: <202006142038.05EKc4fq030670@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@vif.com> Approved by: euan@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@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@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@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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202006142038.05EKc4fq030670>