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-4.0.x [2013/03/09 00:16] miconda [auth_db] |
features:new-in-4.0.x [2013/03/09 14:54] miconda [pv] |
||
---|---|---|---|
Line 15: | Line 15: | ||
* C Diameter Peer - core communication engine | * C Diameter Peer - core communication engine | ||
- | * http:// | + | * http:// |
==== cdp_avp ==== | ==== cdp_avp ==== | ||
* C Diameter Peer - application extensions | * C Diameter Peer - application extensions | ||
- | * http:// | + | * http:// |
+ | |||
+ | ==== corex ==== | ||
+ | |||
+ | * new module to export more internal core API to config | ||
+ | * http:// | ||
==== dialog_ng ==== | ==== dialog_ng ==== | ||
* new module providing the NG framework for tracking SIP dialogs | * new module providing the NG framework for tracking SIP dialogs | ||
- | * http:// | + | * http:// |
==== ims_auth ==== | ==== ims_auth ==== | ||
* new module to provide authentication for IMS | * new module to provide authentication for IMS | ||
- | * http:// | + | * http:// |
==== ims_icscf ==== | ==== ims_icscf ==== | ||
* new module to provide IMS ICSCF component | * new module to provide IMS ICSCF component | ||
- | * http:// | + | * http:// |
==== ims_isc ==== | ==== ims_isc ==== | ||
* new module to provide IMS ICS component | * new module to provide IMS ICS component | ||
- | * http:// | + | * http:// |
==== ims_qos ==== | ==== ims_qos ==== | ||
* new module to provide Diameter Rx IMS interface between PCSCF and PCRF functions | * new module to provide Diameter Rx IMS interface between PCSCF and PCRF functions | ||
- | * http:// | + | * http:// |
==== ims_registrar_pcscf ==== | ==== ims_registrar_pcscf ==== | ||
* new module to provide IMS PCSCF registrar component | * new module to provide IMS PCSCF registrar component | ||
- | * http:// | + | * http:// |
==== ims_registrar_scscf ==== | ==== ims_registrar_scscf ==== | ||
* new module to provide IMS SCSCF registrar component | * new module to provide IMS SCSCF registrar component | ||
- | * http:// | + | * http:// |
==== ims_usrloc_pcscf ==== | ==== ims_usrloc_pcscf ==== | ||
* new module to provide IMS PCSCF user location component | * new module to provide IMS PCSCF user location component | ||
- | * http:// | + | * http:// |
==== ims_usrloc_scscf ==== | ==== ims_usrloc_scscf ==== | ||
* new module to IMS SCSCF user location component | * new module to IMS SCSCF user location component | ||
- | * http:// | + | * http:// |
- | + | ||
- | ==== corex ==== | + | |
- | + | ||
- | * new module to export more internal core API to config | + | |
- | * http:// | + | |
==== outbound ==== | ==== outbound ==== | ||
* new module providing SIP Outbound (RFC 5626) Edge Proxy support | * new module providing SIP Outbound (RFC 5626) Edge Proxy support | ||
- | * http:// | + | * http:// |
==== websocket ==== | ==== websocket ==== | ||
Line 82: | Line 82: | ||
* SIP over WebSocket (draft-ietf-sipcore-sip-websocket) | * SIP over WebSocket (draft-ietf-sipcore-sip-websocket) | ||
* MSRP over WebSocket (draft-pd-dispatch-msrp-websocket) | * MSRP over WebSocket (draft-pd-dispatch-msrp-websocket) | ||
- | * http:// | + | * http:// |
==== xhttp_pi ==== | ==== xhttp_pi ==== | ||
* new module - provides a web provisioning interface | * new module - provides a web provisioning interface | ||
- | * http:// | + | * http:// |
===== SER Modules ===== | ===== SER Modules ===== | ||
Line 96: | Line 96: | ||
* avp manipulation tools | * avp manipulation tools | ||
+ | * http:// | ||
==== db2_ldap ==== | ==== db2_ldap ==== | ||
* DB API v2 connector for LDAP | * DB API v2 connector for LDAP | ||
+ | * http:// | ||
==== db2_ops ==== | ==== db2_ops ==== | ||
* DB API v2 script operations | * DB API v2 script operations | ||
+ | * http:// | ||
==== malloc_test ==== | ==== malloc_test ==== | ||
* test drive module for memory managers | * test drive module for memory managers | ||
+ | * http:// | ||
==== mangler ==== | ==== mangler ==== | ||
* SIP message mangling tools | * SIP message mangling tools | ||
+ | * http:// | ||
==== print ==== | ==== print ==== | ||
* sample module (for devel) | * sample module (for devel) | ||
+ | * http:// | ||
==== print_lib ==== | ==== print_lib ==== | ||
* sample module depending on internal library (for devel) | * sample module depending on internal library (for devel) | ||
+ | * http:// | ||
==== timer ==== | ==== timer ==== | ||
* routing block execution on core timers | * routing block execution on core timers | ||
+ | * http:// | ||
==== uid_auth_db ==== | ==== uid_auth_db ==== | ||
* authentication using db structure based on unique user id | * authentication using db structure based on unique user id | ||
+ | * http:// | ||
==== uid_avp_db ==== | ==== uid_avp_db ==== | ||
* per user APV loading from db structure based on unique user id | * per user APV loading from db structure based on unique user id | ||
+ | * http:// | ||
==== uid_domain ==== | ==== uid_domain ==== | ||
* multi-domain management using db structure based on unique user id | * multi-domain management using db structure based on unique user id | ||
+ | * http:// | ||
==== uid_gflags ==== | ==== uid_gflags ==== | ||
* global flags and AVPs management using db structure based on unique user id | * global flags and AVPs management using db structure based on unique user id | ||
+ | * http:// | ||
==== uid_uri_db ==== | ==== uid_uri_db ==== | ||
* uri management using db structure based on unique user id | * uri management using db structure based on unique user id | ||
+ | * http:// | ||
==== xprint ==== | ==== xprint ==== | ||
* log messages from scrip using %xy specifiers (former SER xlog module) | * log messages from scrip using %xy specifiers (former SER xlog module) | ||
+ | * http:// | ||
===== New in Old Modules ===== | ===== New in Old Modules ===== | ||
Line 158: | Line 172: | ||
* extended the API with registrar: | * extended the API with registrar: | ||
+ | * support for URI lookup from registrar | ||
==== auth ==== | ==== auth ==== | ||
* added new variant of pv_www_authenticate() which takes method as a parameter | * added new variant of pv_www_authenticate() which takes method as a parameter | ||
+ | * new function has_credentials(realm) - returns true if an authorization header matching the realm is found | ||
+ | * new function pv_auth_check(...) | ||
+ | * equivalent of auth_check(...) from auth_db, but taking the password from a PV -- combines pv_proxy_authenticate() and pv_www_authenticate() | ||
+ | * new module parameter use_domain that controls whether the domain part of URIs should be used or not to make the identity checks upon authentication with pv_auth_check(...) | ||
==== auth_db ==== | ==== auth_db ==== | ||
* added new variant of www_authenticate() which takes method as a parameter | * added new variant of www_authenticate() which takes method as a parameter | ||
+ | * new function is_subscriber(uri, | ||
+ | * check if URI corresponds to a subscriber record in dbtable and load credentials for it | ||
==== ctl ==== | ==== ctl ==== | ||
* support of no limitation on number of message chunks | * support of no limitation on number of message chunks | ||
+ | |||
+ | ==== cpl-c ==== | ||
+ | |||
+ | * added an optional parameter to cpl_run_scritp() to provide the URI - the parameter will be used instead of taking the URI from headers or R-URI | ||
==== db_cassandra ==== | ==== db_cassandra ==== | ||
Line 177: | Line 202: | ||
* added support for row/table locking | * added support for row/table locking | ||
+ | |||
+ | ==== db_text ==== | ||
+ | |||
+ | * new rpc command ' | ||
+ | ==== dialog ==== | ||
+ | |||
+ | * added dlg_set_timeout_by_profile() route script function | ||
+ | * this function allows the same dialog timeout to be set across all the dialogs in a profile (with or without values). | ||
+ | * add contact header in REFER for dlg_bridge() | ||
+ | * bridge contact address can be set via parameter | ||
+ | ==== htbale ==== | ||
+ | |||
+ | * added RPC command for listing one item in a hash table | ||
+ | * added new RPC htable.listTables - this RPC list all defined tables and their settings | ||
==== ipops ==== | ==== ipops ==== | ||
Line 186: | Line 225: | ||
* added support for websocket transport layer | * added support for websocket transport layer | ||
+ | |||
+ | ==== maxfwd ==== | ||
+ | |||
+ | * max_limit module param can be changed at runtime | ||
==== mqueue ==== | ==== mqueue ==== | ||
Line 195: | Line 238: | ||
* added support for websocket transport layer | * added support for websocket transport layer | ||
+ | * added internal map table to track msrp connections | ||
+ | * added rpc command to list active connections | ||
+ | * new parameter use_path_addr - specify host and port for usage in Use-Path header | ||
==== nat_traversal ==== | ==== nat_traversal ==== | ||
Line 205: | Line 251: | ||
* option to remove UDP contacts that don't respond to OPTIONS keepalives | * option to remove UDP contacts that don't respond to OPTIONS keepalives | ||
* added support for websocket transport layer | * added support for websocket transport layer | ||
+ | * add_contact_alias() can now be given ip addr port, and proto as parameters | ||
+ | * added the select for rewriting the contact | ||
+ | * new test 128 to check port in contact against source port | ||
==== nat_traversal ==== | ==== nat_traversal ==== | ||
Line 226: | Line 275: | ||
* bind to outbound module (if loaded before path) to enable RFC 5626 Edge Proxy behaviour | * bind to outbound module (if loaded before path) to enable RFC 5626 Edge Proxy behaviour | ||
+ | ==== pdt ==== | ||
+ | |||
+ | * added pdt.list command to dump memory structure via rpc | ||
==== permissions ==== | ==== permissions ==== | ||
* added new cfg function allow_address_group(addr, | * added new cfg function allow_address_group(addr, | ||
* added support for websocket transport layer | * added support for websocket transport layer | ||
+ | * added RPC commands | ||
+ | |||
+ | ==== pike ==== | ||
+ | * added pike.top rpc command | ||
==== prefix_route ==== | ==== prefix_route ==== | ||
Line 244: | Line 300: | ||
* module parameter xcapauth_usedel_reason to allow admin to set the reason in Subscription-Status header when a user is deleted from contact list | * module parameter xcapauth_usedel_reason to allow admin to set the reason in Subscription-Status header when a user is deleted from contact list | ||
+ | |||
+ | ==== pipelimit ==== | ||
+ | |||
+ | * added a new set of RPC commands | ||
==== pua ==== | ==== pua ==== | ||
Line 251: | Line 311: | ||
==== pv ==== | ==== pv ==== | ||
- | * new variable | + | * new pv class - $cnt(...) |
* added support for websocket transport layer | * added support for websocket transport layer | ||
- | * new pv class $version(key) | + | * new pv class - $version(key) |
- | * return attributes of the software version | + | |
* key can be: | * key can be: | ||
* num - return version number | * num - return version number | ||
* full - return all version string | * full - return all version string | ||
* hash - return git hash code and status | * hash - return git hash code and status | ||
+ | * new pv class - $af(key) - return address family for received message | ||
+ | * key can be: | ||
+ | * id: return integer representation for IPv4 or IPv6 (value of AF_INET and AF_INET6) | ||
+ | * name: return " | ||
+ | * new pv class - $K(key) - return the value for internal constant keywords | ||
+ | * key can be: | ||
+ | * IPv4 - returns AF_INET | ||
+ | * IPv6 - returns AF_INET6 | ||
+ | * UDP - return PROTO_UDP | ||
+ | * TCP - return PROTO_TCP | ||
+ | * TLS - return PROTO_TLS | ||
+ | * SCTP - return PROTO_SCTP | ||
+ | * it can be used to compare the values from other pvs, such as $af(id), $snd(af), $snd(proto) | ||
+ | * new transformation {s.stripto, | ||
+ | * " | ||
+ | * the char can be given in a pv | ||
+ | * new function: typeof(pvar, | ||
+ | * new function: not_empty(pvar) - test if the type is string and the value not empty | ||
+ | * make individual flags accessible via $Mf(idx), $Bf(idx) and $Sf(idx) | ||
==== registrar ==== | ==== registrar ==== | ||
Line 266: | Line 344: | ||
* new modparam to control adding Flow-Timer: header to 200 OK responses to REGISTER requests | * new modparam to control adding Flow-Timer: header to 200 OK responses to REGISTER requests | ||
* new function lookup_branches(domain) - lookup the contacts for r-uri and additional branches - only branches that are clean (i.e., have only r-uri set) are used | * new function lookup_branches(domain) - lookup the contacts for r-uri and additional branches - only branches that are clean (i.e., have only r-uri set) are used | ||
+ | * $ulc(...) returns ruid, reg-id and instance | ||
+ | * execute event route when a contact expires - the name of the routing block is event_route[usrloc: | ||
==== rls ==== | ==== rls ==== | ||
Line 274: | Line 354: | ||
* bind to outbound module (if loaded before rr) to enable RFC 5626 Edge Proxy behaviour | * bind to outbound module (if loaded before rr) to enable RFC 5626 Edge Proxy behaviour | ||
+ | * added option to set custom username for Record-Route URI | ||
==== rtpproxy ==== | ==== rtpproxy ==== | ||
Line 279: | Line 360: | ||
* allow script variables in set_rtp_proxy_set(...) parameter | * allow script variables in set_rtp_proxy_set(...) parameter | ||
* possibility to add ice relay candidates to sdp streams if new module parameter ice_candidate_priority_avp has been defined | * possibility to add ice relay candidates to sdp streams if new module parameter ice_candidate_priority_avp has been defined | ||
- | * new options | + | * new flag " |
+ | * new flag ' | ||
==== sanity ==== | ==== sanity ==== | ||
Line 288: | Line 370: | ||
* new function: sdp_remove_line_by_prefix(string) | * new function: sdp_remove_line_by_prefix(string) | ||
* removes lines from SDP body that matches given prefix | * removes lines from SDP body that matches given prefix | ||
+ | * added sdp_content() - return true of there is a sdp part in the body of sip message | ||
==== seas ==== | ==== seas ==== | ||
Line 297: | Line 380: | ||
* support for storing the information to multiple sql tables | * support for storing the information to multiple sql tables | ||
* HEPv3 support | * HEPv3 support | ||
+ | * added RPC command to turn on/off or check status | ||
==== siptrace ==== | ==== siptrace ==== | ||
* added support for websocket transport layer | * added support for websocket transport layer | ||
+ | * added RPC command for turning on/off tracing | ||
+ | ==== sl ==== | ||
+ | |||
+ | * new function sl_forward_reply(...) | ||
+ | * forward the received reply fron configuration, | ||
+ | * the forwarding is statelessy, not affecting the tm states | ||
==== snmpstats ==== | ==== snmpstats ==== | ||
* added support for websocket transport layer | * added support for websocket transport layer | ||
+ | ==== statistics ==== | ||
+ | |||
+ | * update_stat(...) can get PV as value parameter | ||
+ | |||
+ | ==== textops ==== | ||
+ | |||
+ | * added functions that operate on header value | ||
==== tm ==== | ==== tm ==== | ||
Line 316: | Line 413: | ||
* enhanced t_replicate() so that if a NULL string is used, it replicates to $du | * enhanced t_replicate() so that if a NULL string is used, it replicates to $du | ||
+ | ==== tmx ==== | ||
+ | |||
+ | * added $T_reply_reason PV - useful especially for internally generated (faked) replies to get the reason phrase | ||
+ | * added t_is_reply_route() - function to determine if the top executed route block is a reply | ||
+ | * added active_transactions statistic | ||
==== uac ==== | ==== uac ==== | ||
- | * uac_replace_[from|to]() in AUTO mode can use dialog module to restore From/To - in this mode the URIs are stored as dialog | + | * uac_replace_[from|to]() in AUTO mode can use dialog module to restore From/To - in this mode the URIs are stored as dialog |
- | variables. | + | * new paramter restore_dlg |
+ | | ||
+ | * default set to 0 - otherwise all calls that have changes to From/To headers must be tracked by dialog | ||
+ | * added reg_db_table parameter to specify table name for registrations | ||
+ | * skip realm matching when realm pv for uac_auth() is empty or null | ||
+ | * uac_reg - skip realm checking if realm attribute is empty | ||
+ | * uac_reg - add reg_retry_interval parameter. The new parameter allows to retry failed registration attempts. Instead of unconditionally marking the entry as disabled, the registration will be retried after the set interval. Setting it to 0 (default) retains the old behaviour. | ||
==== usrloc ==== | ==== usrloc ==== | ||
Line 325: | Line 433: | ||
* for DB_ONLY module, run timer only when timer_interval > 0, to allow database to be cleaned up by external processes | * for DB_ONLY module, run timer only when timer_interval > 0, to allow database to be cleaned up by external processes | ||
* keep time of the last keepalive for natted UDP contacts | * keep time of the last keepalive for natted UDP contacts | ||
+ | * added +sip.instance and reg-id to mi_usrloc_show_contact | ||
+ | * option to store xavp per contact | ||
+ | * the xavp can contain a list of xavps | ||
+ | * new config parameter to specify the name of xavp | ||
+ | * store per-contact attributes in database | ||
+ | * attributes table is the name of table used for save/lookup plus suffix ' | ||
+ | * added RPC command for AOR lookup | ||
==== xcap_server ==== | ==== xcap_server ==== | ||
- | * Support | + | * support |
+ | * use a static table to keep the list of supported auids - adding new auid requires an entry in this table and define of the internal type | ||
==== xlog ==== | ==== xlog ==== | ||
Line 341: | Line 457: | ||
* -e - print colorful messages based on log level | * -e - print colorful messages based on log level | ||
+ | * command line option -v replaced with -K - -v was exposing to misuse instead of -V (version), now is aliased to it | ||
=== core parameters === | === core parameters === | ||
Line 351: | Line 468: | ||
* added Colin Plumb' | * added Colin Plumb' | ||
* update printing of socket lists to show the advertised address if set for the socket | * update printing of socket lists to show the advertised address if set for the socket | ||
+ | * added DNSSEC support for DNS queries | ||
+ | * this is available by setting the USE_DNSSEC compile flag. It requires libval-threads and libres (part of dnssec-tools dnssec-tools.org) | ||
+ | * the custom resolvers were replaced by val_gethostbyname, | ||
+ | * added instance and reg_id fields to sip_msg_t - also added set_instance and reset_instance functions | ||
+ | * extended xavp api - functions to add an avp last in a list or inserted at a specific position, to extract an avp from top of the list | ||
+ | * print advertise-port on the list of sockets at startup | ||
=== parser/uri === | === parser/uri === | ||
Line 363: | Line 486: | ||
===== Tools ===== | ===== Tools ===== | ||
+ | * sercmd is installed as kamcmd | ||
* kamctl | * kamctl | ||
* stats command can print a single group of statistics - groupid can be given as command parameter | * stats command can print a single group of statistics - groupid can be given as command parameter | ||
+ | * new command 'db showg' - uses \G at end of sql query, resulting in line-formated output (at least for mysql) | ||
+ | * added definition of tables for uid modules | ||
* Makefile | * Makefile | ||
- | * added new target ' | + | * added new target ' |
- | | + | * added uninstall target - it prints hints and commands to perform uninstall when installation is done from sources |
+ | * Makefile.defs | ||
+ | * added MEMMNG to allow selection of memory manager | ||
+ | * MEMMNG=0 => fast malloc is used (f_malloc) | ||
+ | * MEMMNG=1 => quick malloc is used (q_malloc) | ||
+ | * MEMDBG is used now to set the debug mode for each of the managers | ||
+ | * 0 - no debug info | ||
+ | * 1 - debug info enabled | ||
+ | * default memory manager set to q_malloc | ||
+ | * debug option is left unset (no DBG_QM_MALLOC) | ||
+ | * lower memory chunk overhead with faster join | ||
+ | | ||
===== kamailio.cfg ===== | ===== kamailio.cfg ===== | ||
* use add_contact_alias()/ | * use add_contact_alias()/ | ||
+ | * test if DBURL is already defined before defining it - allow to set it via command line with -A DBURL=' | ||
+ | * kamailio-local.cfg is attempted to be loaded if exists in the same folder, allowing to set defines/ | ||
+ | * add option to set pstn gw port | ||