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-3.2.x [2011/10/18 22:27] miconda [Parameters] |
features:new-in-3.2.x [2011/10/19 00:15] miconda [db_sqlite] |
||
---|---|---|---|
Line 32: | Line 32: | ||
* database connector for SQLite | * database connector for SQLite | ||
+ | * good option to use for small (or embedded) SIP servers, as alternative to big DB servers such as MySQL or Postgres | ||
* README File: http:// | * README File: http:// | ||
Line 56: | Line 57: | ||
* connector to Redis no-SQL database engine | * connector to Redis no-SQL database engine | ||
+ | * uses hiredis library | ||
+ | * exports function to send commands to redis and a new pseudo-variable class to access the reply: $redis(key) | ||
* README File: http:// | * README File: http:// | ||
Line 80: | Line 83: | ||
* module to control the content of the SDP payload from configuration file | * module to control the content of the SDP payload from configuration file | ||
- | * e.g.,: remove codecs | + | * spd_remove_codecs_by_id(list) - remove the codecs by their numeric IDs given in a comma separated list as parameter |
+ | * spd_remove_codecs_by_name(list) - remove the codecs by their names given in a comma separated list as parameter | ||
+ | * spd_keep_codecs_by_id(list) - keep the codecs by their numeric IDs given in a comma separated list as parameter | ||
+ | * spd_keep_codecs_by_name(list) - keep the codecs by their names given in a comma separated list as parameter | ||
+ | * sdp_print(level) - print the parsed sdp structure to the debug ' | ||
+ | * sdp_with_media(type) - return true if the sdp has ' | ||
* README File: http:// | * README File: http:// | ||
Line 141: | Line 149: | ||
</ | </ | ||
+ | * db_insert_mode can be set to 1 in order to use INSERT DELAYED when adding the acc records to database | ||
Line 166: | Line 175: | ||
* export of inter-module API (available through Lua) | * export of inter-module API (available through Lua) | ||
+ | * option to skip checking version table | ||
+ | * new parameter ' | ||
+ | * useful when connecting to a different database to fetch the password | ||
==== auth_radius ==== | ==== auth_radius ==== | ||
Line 193: | Line 205: | ||
* dp_translate() returns -2 (instead of -1) if dp with given id does not exist. | * dp_translate() returns -2 (instead of -1) if dp with given id does not exist. | ||
+ | * added rpc commands | ||
+ | * dialplan.reload - to reload the records from database | ||
+ | * dialplan.translate - to translate a string using a specific dialplan id | ||
+ | |||
| | ||
==== dispatcher ==== | ==== dispatcher ==== | ||
Line 198: | Line 214: | ||
* export of inter-module API (available through Lua) | * export of inter-module API (available through Lua) | ||
* new event routes that are called when destinations go on/off-line | * new event routes that are called when destinations go on/off-line | ||
+ | * event_route[dispatcher: | ||
+ | * event_route[dispatcher: | ||
+ | * added RPC commands - new RPC commands to replace the MI ones | ||
+ | ==== domain ==== | ||
+ | |||
+ | * added rpc commands to reload and dump domains | ||
==== htable ==== | ==== htable ==== | ||
Line 204: | Line 226: | ||
* if dbmode=1, the content of hash table will be saved back to database table when the sip server is stopped | * if dbmode=1, the content of hash table will be saved back to database table when the sip server is stopped | ||
* default value is 0 - no sync back to database table | * default value is 0 - no sync back to database table | ||
- | | + | |
<code c> | <code c> | ||
modparam(" | modparam(" | ||
</ | </ | ||
+ | * new attribute ' | ||
+ | * initval can set init integer value for hash table keys, meaning that if the key is not set, the init value is returned by $sht(htable=> | ||
+ | * useful for hash tables holding counters - the value can default to 0, avoiding extra check for $null value | ||
+ | * added two new PVs | ||
+ | * $shtinc(htable=> | ||
+ | * $shtdec(htable=> | ||
+ | * both return the new value of the item | ||
+ | * they work only with items having integer values | ||
+ | * options to store expires value of items in database | ||
==== kex ==== | ==== kex ==== | ||
Line 215: | Line 246: | ||
* you can see how much pkg each process is eating and how much is still available | * you can see how much pkg each process is eating and how much is still available | ||
* should be useful to track pkg memory leaks and/or trigger alerts when there is no more pkg available | * should be useful to track pkg memory leaks and/or trigger alerts when there is no more pkg available | ||
+ | * added setdebug(level) - can change the debug level per process | ||
+ | * added resetdebug() - set back the debug level to the global parameter ' | ||
+ | * added mi command clear_statistics - return the values and reset the counters for statistics | ||
+ | |||
==== lcr ==== | ==== lcr ==== | ||
Line 252: | Line 287: | ||
==== presence_xml ==== | ==== presence_xml ==== | ||
* new exported functions to enable the online/ | * new exported functions to enable the online/ | ||
+ | * pres_check_basic() enables you to find out whether a users basic status matches the string you provide. | ||
+ | * pres_check_activities() enables you to find out whether any of user's listed activities matches the string you provide. | ||
+ | |||
+ | ==== pua ==== | ||
+ | |||
+ | * added new modparam check_remote_contact | ||
==== pv ==== | ==== pv ==== | ||
Line 264: | Line 305: | ||
* the value is 1 if the sip message is request | * the value is 1 if the sip message is request | ||
* the value is 2 if the sip message is reply | * the value is 2 if the sip message is reply | ||
+ | * $Tb - startup time available in a pseudo-variable (boottime) | ||
+ | * $rz - returns r-uri scheme | ||
+ | * possible values: sip, sips, tel and tels | ||
+ | * r-uri scheme parsing error should be reflected by value: none | ||
* new transformations: | * new transformations: | ||
Line 269: | Line 314: | ||
* {s.sql} - output the pvar as valid SQL value. < | * {s.sql} - output the pvar as valid SQL value. < | ||
* {s.replace,< | * {s.replace,< | ||
- | * {s.prefixes[,< | + | * {s.prefixes[,< |
+ | <code c> | ||
+ | " | ||
+ | " | ||
+ | | ||
+ | </ | ||
* new functions: | * new functions: | ||
* is_int() checks if pvar argument contains integer value. | * is_int() checks if pvar argument contains integer value. | ||
Line 291: | Line 341: | ||
* support for resource-list indices that reference other resource-list XML documents (including XPath within documents) | * support for resource-list indices that reference other resource-list XML documents (including XPath within documents) | ||
* new exported function to allow re-subscription to a list to be initiated from the configuration file | * new exported function to allow re-subscription to a list to be initiated from the configuration file | ||
+ | * added a new exported function: rls_update_subs() - this new function can be called from the Kamailio configuration file to force the RLS module to refresh its back-end subscriptions. | ||
==== rr ==== | ==== rr ==== | ||
Line 301: | Line 352: | ||
==== rtpproxy ==== | ==== rtpproxy ==== | ||
- | * force_rtp_proxy function was removed | + | * force_rtp_proxy function was removed, you can use rtpproxy_offer() and rtpproxy_answer() |
+ | * new function rtpproxy_manage() | ||
+ | * auto-pilot function to handle rtp proxy session management | ||
+ | * it can take same kind of parameters as rtpproxy_offer() | ||
+ | * embeds the functionality of rtpproxy_offer(), | ||
+ | * if INVITE with SDP, then do rtpproxy offer | ||
+ | * if INVITE with sdp, when tm is loaded, mark transaction with internal flag FL_SDP_BODY to know that the 1xx and 2xx are for rtp answer | ||
+ | * if ACK with SDP, then do rtpproxy answer | ||
+ | * if BYE or CANCEL, then do unforce rtpproxy | ||
+ | * if reply to INVITE with code >= 300 do unfrce rtp proxy | ||
+ | * if reply with SDP to INVITE having code 1xx and 2xx, then do rtpproxy answer if the request had SDP or tm is not loaded, otherwise do rtpproxy offer | ||
+ | * aliased rtpproxy_destroy() to unforce_rtp_proxy() | ||
==== sanity ==== | ==== sanity ==== | ||
Line 307: | Line 369: | ||
* new parameter autodrop to control automatic dropping of broken messages | * new parameter autodrop to control automatic dropping of broken messages | ||
* setting it to 0 is good for logging purposes in config file and exiting from there | * setting it to 0 is good for logging purposes in config file and exiting from there | ||
+ | |||
+ | ==== siptrace ==== | ||
+ | |||
+ | * trace_to_database configuration parameter - to control whether to write to database or not and just mirror traffic | ||
+ | * use x-headers to add fromip, toip, method, time and direction in the message body (using X-* headers). This allows to transmit them using duplicate_uri from one kamailio to an other. | ||
+ | * store milliseconds part of the time in database | ||
==== siputils ==== | ==== siputils ==== | ||
Line 315: | Line 383: | ||
* useful to check in sub-routes that can be executed from both request and reply routes | * useful to check in sub-routes that can be executed from both request and reply routes | ||
+ | ==== snmpstats ==== | ||
+ | |||
+ | * control exporting registrar records | ||
+ | * exporting of large location database may result in out of shared memory, as well as when the records are not pulled | ||
+ | * new parameter export_registrar was added to enable/ | ||
==== sqlops ==== | ==== sqlops ==== | ||
* xavp support. New function sql_xquery() stores the query result in an xavp. | * xavp support. New function sql_xquery() stores the query result in an xavp. | ||
* BIGINT support. Native support when sql_xquery is used, transformed to string for sql_query(). | * BIGINT support. Native support when sql_xquery is used, transformed to string for sql_query(). | ||
+ | * new PV $sqlrows(con) - return affected rows of previous query | ||
==== textops ==== | ==== textops ==== | ||
Line 328: | Line 402: | ||
* new parameter ' | * new parameter ' | ||
* the module can bind to sanity to perform parsing checks before proceeding to encoding/ | * the module can bind to sanity to perform parsing checks before proceeding to encoding/ | ||
+ | |||
+ | ==== tm ==== | ||
+ | |||
+ | * allow nested backup of avp lists when sending local requests | ||
==== tmx ==== | ==== tmx ==== | ||
Line 335: | Line 413: | ||
* $T(name) - new class of pseudo-variables for accessing transaction attributes: | * $T(name) - new class of pseudo-variables for accessing transaction attributes: | ||
* internal index, label, the branch index, reply code | * internal index, label, the branch index, reply code | ||
+ | * two helper functions to detect route block type | ||
+ | * t_is_failure_route() - return true if it is a failure_route execution | ||
+ | * t_is_branch_route() - return true if it is a branch_route execution | ||
+ | * useful to check in sub-routes executed from different points of config | ||
+ | * added t_reply_callid MI command | ||
+ | * $T(reply_type) to solve ambiguity of received or local replies | ||
+ | * it returns 1 in failure route if the reply was local generated (e.g., timeout), otherwise is 0. If there is no transaction, | ||
==== uac ==== | ==== uac ==== | ||
Line 348: | Line 433: | ||
==== xcap_server ==== | ==== xcap_server ==== | ||
- | * Support | + | * added oma user-profile and pres-content (avatar) support |
+ | * support | ||
* org.openmobilealliance.user-profile | * org.openmobilealliance.user-profile | ||
* org.openmobilealliance.pres-content | * org.openmobilealliance.pres-content | ||
* org.openmobilealliance.search | * org.openmobilealliance.search | ||
- | * Support | + | * support |
+ | * ability to insert new nodes in xcap docs | ||
+ | |||
+ | ==== xlog ==== | ||
+ | |||
+ | * new module parameter log_facility | ||
+ | * allow to specify syslog facility for messages printed by xlog module | ||
+ | * xlog messages can be diverted now to special file via syslog conf | ||
==== xhttp ==== | ==== xhttp ==== | ||
Line 361: | Line 454: | ||
===== New in Core ===== | ===== New in Core ===== | ||
+ | ==== Config Structure ==== | ||
+ | |||
+ | * request_route { ... } can be used instead of main route { ... } | ||
+ | * reply_route { ... } can be used instead of main onreply_route { ... } | ||
+ | * ' | ||
+ | * caching support for pv spec parsing | ||
==== Preprocessor directives ==== | ==== Preprocessor directives ==== | ||
Line 370: | Line 469: | ||
**#!** and **!!** can be used as start of preprocessor directives | **#!** and **!!** can be used as start of preprocessor directives | ||
- | ==== import_file | + | === import_file === |
Attempt to include a file, but if it is not found, do not throw error like **include_file**. | Attempt to include a file, but if it is not found, do not throw error like **include_file**. | ||
Line 377: | Line 476: | ||
* corelog - control the log level for non-critical core error messages | * corelog - control the log level for non-critical core error messages | ||
+ | * pv_buffer_size - size in bytes for internal PV buffer (default 1024) | ||
+ | * pv_buffer_slots - home many internal PV buffers (default 10) | ||
+ | * sql_buffer_size - set the size of SQL buffer (default 64k) | ||
+ | * auto_bind_ipv6 - auto-bind or not to IPv6 addresses (default 1 - bind to IPv6) | ||
+ | |||
+ | ==== Functions ==== | ||
+ | |||
+ | * added functions remove_branch(index) and clear_branches() | ||
==== Config Reload Framework ==== | ==== Config Reload Framework ==== | ||
Line 399: | Line 506: | ||
* core events when pkg usage changes | * core events when pkg usage changes | ||
+ | * option for short status dumping | ||
+ | * pkg mem size configurable form the cmd line | ||
+ | * The pkg mem size used can be configured by using the " | ||
+ | <code c> | ||
+ | kamailio -M 8 -f test.cfg # start with 8mb of pkg memory | ||
+ | </ | ||
+ | | ||
+ | |||
==== STUN ==== | ==== STUN ==== | ||
Line 405: | Line 520: | ||
* Removing checking/ | * Removing checking/ | ||
* Update some attribute values according to new spec | * Update some attribute values according to new spec | ||
+ | |||
+ | ==== RPC Commands ==== | ||
+ | |||
+ | * added rpc command core.psx | ||
+ | * similar to core.ps but prints the details in RPC structure along with process index, like: | ||
+ | <code c> | ||
+ | sercmd> core.psx | ||
+ | { | ||
+ | IDX: 0 | ||
+ | PID: 73408 | ||
+ | DSC: attendant | ||
+ | } | ||
+ | { | ||
+ | IDX: 1 | ||
+ | PID: 73409 | ||
+ | DSC: udp receiver child=0 sock=127.0.0.1: | ||
+ | } | ||
+ | </ | ||
===== New in Documentation ===== | ===== New in Documentation ===== |