This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
features:new-in-devel [2019/07/06 21:36] henningw |
features:new-in-devel [2019/08/24 13:01] henningw [uac] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Kamailio SIP Server | + | ====== Kamailio SIP Server - New Features in Devel Version ====== |
- | **Current devel version will be numbered 5.3.0 and it is planned to be released | + | **Current devel version will be numbered 5.3.0 and it is planned to be released |
<fc #0000FF> | <fc #0000FF> | ||
Line 18: | Line 18: | ||
* https:// | * https:// | ||
- | ==== xhttp_prom | + | ==== lost ==== |
- | Generates suitable metrics for a Prometheus monitoring platform, answering to Prometheus pull requests | + | HELD (RFC6155) and LOST (RFC5222) location-based routing. |
- | * https:// | + | * https:// |
==== kemix ==== | ==== kemix ==== | ||
Line 32: | Line 32: | ||
==== rtp_media_server ==== | ==== rtp_media_server ==== | ||
- | Embedded RTP and media processing functionalities for Kamailio | + | Embedded RTP and media processing functionalities for Kamailio, like playing media or bridging in a B2BUA manner. Includes support for different codecs (including Opus). |
* https:// | * https:// | ||
Line 41: | Line 41: | ||
* https:// | * https:// | ||
+ | |||
+ | ==== xhttp_prom ==== | ||
+ | |||
+ | Generates suitable metrics for a Prometheus monitoring platform, answering to Prometheus pull requests (HTTP requests to /metrics URL). | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | |||
===== New in existing Modules ===== | ===== New in existing Modules ===== | ||
+ | |||
+ | ==== acc_json ==== | ||
+ | |||
+ | Add support for leg_info fields to the acc_json module | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== async ==== | ||
+ | |||
+ | New functionality to sleep for milli-seconds and also schedule a asynchronous route execution with milli-seconds delay | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
==== cnxcc ==== | ==== cnxcc ==== | ||
Line 49: | Line 70: | ||
* https:// | * https:// | ||
- | ==== dispatcher | + | ==== dialog |
- | Add a new rpc function | + | Add new rpc commands dlg.list_match and dlg.list_match_ctx |
- | * https:// | + | |
+ | * https:// | ||
+ | |||
+ | Add new parameter keep_proxy_rr to loop BYE through proxy. When in use, sending locally generated in-dialog requests will loop back to the proxy with a proper Record-Route header, including any parameters. | ||
+ | |||
+ | * https:// | ||
+ | ==== dispatcher ==== | ||
+ | |||
+ | * Add new rpc functions, to add and remove destinations to the in-memory dispatcher list. | ||
+ | | ||
+ | * https:// | ||
+ | * Add a new flag 16 (1<< | ||
+ | * https:// | ||
+ | * Add a new parameter reload_delta to limit the frequency of rpc reload commands to try to avoid races of parallel reload operations. | ||
+ | * https:// | ||
==== dialplan ==== | ==== dialplan ==== | ||
- | Add reload_delta parameter to the dialplan module. Make the rate limit of maximum allowed dialplan reload configurable. | + | Add reload_delta parameter to make the rate limit of maximum allowed dialplan reload configurable. |
* https:// | * https:// | ||
- | ==== uac ==== | + | ==== evrexec |
- | New modparam reg_gc_interval, | + | Added rpc command evrexec.run |
- | * https:// | + | * https:// |
- | The uac_replace_from/ | + | ==== imc ==== |
- | The uac_replace_from/ | + | Extend module functionality significantly, |
- | ==== registrar | + | ==== ims_ipsec_pcscf |
- | New parameter lookup_filter_mode for the registrar | + | * Add IPv6 support to the ims_ipsec_pcscf |
+ | * Additional initial TCP support and support for multiple TCP connections were added. | ||
+ | * https://www.kamailio.org/ | ||
- | * https:// | + | ==== ims_registrar_pcscf ==== |
- | ==== presence ==== | + | Add support for multiple TCP connections to the ims_registrar_pcscf module. |
- | A new rpc command updateWatchers were added to the presence module. | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== ims_usrloc_pcscf ==== |
- | ==== siptrace ==== | + | Add support for multiple TCP connections to the ims_usrloc_pcscf module. |
- | Add transaction and dialog level tracing to the siptrace module function sip_trace. | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== ims_isc ==== |
- | ==== sdpops ==== | + | Add functionality to a add-on to third party registration in S-CSCF. The feature assumes two new flags in HSS database, where additional to the " |
- | Added new sdp_get_ddress_family() function to the sdpops module to extract the IP address family from the SDP body | + | * https:// |
- | * https:// | + | ==== ims_usrloc_scscf ==== |
- | ==== rr ==== | + | Add-on to third party registration in S-CSCF to the ims_usrloc_scscf module. |
- | Add new return value for preloaded route set to loose_route() in rr module. Now it is possible to detect from the script if a preloaded Route header was removed that pointed at the local proxy. | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== ims_registrar_scscf ==== |
- | ==== janssonrpcc ==== | + | Add-on to third party registration in S-CSCF to the ims_registrar_scscf module. |
- | Add new parameter " | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== mqueue ==== |
- | ==== tls ==== | + | Add a new rpc command mqueue.fetch |
- | Add support for unique identifier PVs and select to the TLS module: $tls_peer_subject_uid and $tls_my_subject_uid, | + | * https:// |
- | | + | ==== pv ==== |
- | * https:// | + | |
+ | * New pseudo-variable $rcv(key), available inside event_route[core: | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | ==== janssonrpcc ==== | ||
+ | |||
+ | Add new parameter " | ||
+ | |||
+ | * https:// | ||
==== kex ==== | ==== kex ==== | ||
- | New rpc command mod.mem_statsx | + | New rpc command mod.mem_statsx, |
* https:// | * https:// | ||
- | ==== pv ==== | + | ==== presence |
- | New pseudo-variable $rcv(key), available inside event_route[core: | + | A new rpc command presence.updateWatchers |
- | * https:// | + | * https:// |
- | ==== ims_ipsec_pcscf | + | ==== registrar |
- | Add IPv6 support | + | New parameter lookup_filter_mode |
- | Additional support for multiple TCP connections was added. | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== rr ==== |
- | ==== ims_registrar_pcscf ==== | + | Add new return value for preloaded route set to loose_route(). Now it is possible to detect from the script if a preloaded Route header was removed that pointed at the local proxy. |
- | Add support for multiple TCP connections to the ims_registrar_pcscf module. | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== rls ==== |
- | ==== ims_usrloc_pcscf ==== | + | Add a new rpc command rls.update_subs. |
- | Add support for multiple TCP connections to the ims_usrloc_pcscf module. | + | * https://www.kamailio.org/ |
- | * https:// | + | ==== rtpengine ==== |
- | ==== ims_isc ==== | + | * Introduce additional hashing algorithm SHA1 over callid for better distribution among nodes. |
+ | * https:// | ||
+ | * Add play_media() and stop_media() functions, also includes addition of the $media_duration pseudo-variable, | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Add start_forwarding() and stop_forwarding() functions. | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Add support for trickle ICE SDP fragments, add support for explicit load balancing options and add support for via-branch=extra option. | ||
- | Add functionality to a add-on to third party registration in S-CSCF. The feature assumes two new flags in HSS database, where additional to the " | + | ==== sdpops ==== |
- | * https:// | + | Added new sdp_get_ddress_family() function to extract the IP address family from the SDP body |
- | ==== ims_usrloc_scscf ==== | + | * https:// |
- | Add-on to third party registration in S-CSCF to the ims_usrloc_scscf module. | + | ==== siptrace ==== |
- | * https:// | + | Add transaction and dialog level tracing to the module function sip_trace |
- | ==== ims_registrar_scscf ==== | + | * https:// |
- | Add-on to third party registration in S-CSCF to the ims_registrar_scscf module. | + | ==== sl ==== |
- | * https:// | + | |
+ | * https:// | ||
+ | * Add configuration parameter to add path and flags to redirected contacts. | ||
+ | | ||
+ | ==== sqlops ==== | ||
+ | |||
+ | Add a new parameter connect_mode, | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== textops ==== | ||
+ | |||
+ | Add a new function regex_substring(itext, | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== tls ==== | ||
+ | |||
+ | * Add support for unique identifier PVs and select: $tls_peer_subject_uid and $tls_my_subject_uid, | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Add workaround for new OpenSSL 1.1, preloaded library. This is a workaround for OpenSSL >= 1.1 which uses internal locking and doesn' | ||
+ | |||
+ | ==== tm ==== | ||
+ | |||
+ | * Added t_get_status_code() function to return the status code of the transaction - the sip response code. | ||
+ | * https:// | ||
+ | * Add configuration parameter to add path and flags to redirected contacts. | ||
+ | * https:// | ||
+ | * Removal of obselete delete_timer parameter - it was not used since a long time | ||
+ | |||
+ | ==== tmx ==== | ||
+ | |||
+ | Add a new function t_drop([rcode]) | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== uac ==== | ||
+ | |||
+ | * New modparam reg_gc_interval, | ||
+ | * https:// | ||
+ | * New modparam default_socket, | ||
+ | * https:// | ||
+ | * Extension in uacreg table, to specify a socket per table entry | ||
+ | * https:// | ||
+ | * The uac_replace_from/ | ||
+ | * The uac_replace_from/ | ||
+ | |||
+ | ==== websocket ==== | ||
+ | |||
+ | Added check mechanism based on tcp connection - type 3 (KEEPALIVE_MECHANISM_CONCHECK) | ||
+ | |||
+ | * https:// | ||
===== New in Core ===== | ===== New in Core ===== | ||
Line 179: | Line 287: | ||
==== Interpreter ==== | ==== Interpreter ==== | ||
+ | |||
+ | Many extensions to the KEMI scripting language support in core and modules were added. | ||
==== Parameters ==== | ==== Parameters ==== | ||
- | New global parameter bind_ipv6_link_local. If set to 1, try to bind also IPv6 link local addresses by discovering the scope of the interface. This apply for UDP socket for now, to be added for the other protocols. | + | * New global parameter bind_ipv6_link_local. If set to 1, try to bind also IPv6 link local addresses by discovering the scope of the interface. This apply for UDP socket for now, to be added for the other protocols. |
- | * https:// | + | * https:// |
- | + | | |
- | Introduce new configuration parameter tcp_accept_haproxy parameter. When active, inbound TCP connections are expected to behave according to the HA PROXY protocol. Both the v1 (human-readable) and v2 (binary) versions of the protocol are supported. | + | * https:// |
- | * https:// | + | * Added latency_limit_cfg global parameter to print execution time for configuration script only if it exceeds this value. It is printed to latency_cfg_log level, another added parameter. |
+ | * https:// | ||
+ | * https:// | ||
==== Functions ==== | ==== Functions ==== | ||
Line 194: | Line 306: | ||
==== Memory Managers ==== | ==== Memory Managers ==== | ||
- | Refactoring and unification of memory allocation error logging infrastructure. Completed in the core, major modules were migrated as well. | + | Refactoring and unification of memory allocation error logging infrastructure. Completed in the core, major modules were migrated as well. The #define are called PKG_MEM_ERROR, |
==== Architecture ==== | ==== Architecture ==== | ||
- | * Extend internal IPv4 and IPv6 parsing functions in the core | + | * Extend internal IPv4 and IPv6 parsing functions in the core. |
+ | * Create Contacts header with path vector as Route header. When Kamailio is functioning as a registrar sends a 302 redirect, the registered contacts are sent inside the Contact header. If a contact as a path vector, that path should become a Route header in the INVITE (rfc 3327). This patch adds the path vector as a Route header parameter to the Contacts in the redirect so the receiving entity of the 302 can add the proper Route headers. This is a standard way to specify headers to be added to a request, see rfc3261 section 19.1.1. | ||
+ | * Add DB_TABLE_VERSION_ERROR(table) error helper #define to DB1 API and migrate (almost) all modules that use version tables to it. This unify the logging and error behavior of the relevant modules that uses a database. | ||
==== kamailio.cfg ==== | ==== kamailio.cfg ==== | ||
+ | |||
+ | Changes to the default kamailio.cfg | ||
+ | |||
+ | * detect sipvicious as scanner | ||
+ | * do sanity check for sip responses | ||
+ | * no connect for forwarding requests withing dialog | ||
+ | * set no connect flags for replies and natted messages | ||
+ | * explicitely set the tcp/tls connections upper limits | ||
===== Tools ===== | ===== Tools ===== | ||
+ | |||
+ | Added tool to generate code for KEMI modules to misc/ | ||
==== kamcmd ==== | ==== kamcmd ==== | ||
==== kamctl ==== | ==== kamctl ==== | ||
+ | |||
+ | * Added subcommand to print the server version using rpc command: kamctl srv version | ||
+ | * Added subcommand to delete older expired records from database table: kamctl ul dbclean [< | ||
+ | * Added acc initdb command to add additional columns needed with default kamailio.cfg and defined WITH_ACCDB for acc and missed_calls table. | ||
+ | |||
+ | ==== kamdbctl ==== | ||
+ | |||
+ | * Added verification before database reinit | ||
+ | * Warn that drop command will indeed drop the database. | ||
| | ||
==== kamcli ==== | ==== kamcli ==== | ||