1. What is new in 1.6.4 (versus 1.6.3)
Full Changelog can be found here.
2. Migration from 1.6.3 to 1.6.4
Read the instructions for how to migrate from 1.6.3 version to 1.6.4.
2.1 Core
- new transformations available:
- added bitwise operations support for string variables. To be used with the new IP transformations in binary format
- added possibility to set destination domain and destination port from script. You can now set $dd and $dp
- new disable_503_translation global parameter do disable the 503 -> 500 reply translation. By default the disable_503_translation is off (translation is done)
- added core:timestamp new statistic to provide access to the opensips internal timestamp
- added a new pseudovariable called argv, that allows reading arguments specified with '-o' option in command line
- added a new pseudovariable called env, that provides access to environment variables.
- added a new core function construct_uri() which builds a sip uri based on the protocol, username, domain, port and extra params that it receives - more info
- added Call-Info header to the list of known opensips headers
- if next_branches() returns true, returns 1 if other branches are still pending and return 2 if no other branches are left for future processing - shortly, if 2: this is the last branch, if 1: other will follow
- Reorganizing the core SDP parser:
- sendrecv and ptime are now session attributes
- parse connection and origin IP
- sdp helper logs are now configurable
- parse rtcp attributes
- detect on hold media during sdp parsing
2.2 Tools
- opensipsdbctl : skips grants in case opensips ro and rw database user is root
- opensipsdbctl: allow b2b tables to be installed via opensipsdbctl script
2.3 AAA_RADIUS module
- if type of RADIUS AVP is IPADDR or INTEGER and value is received as string, do the proper conversion when filling in RADIUS packages
- fixed vendor ID when searching radius AVP in radius replies
- expose internal return code for authentication function - you can see in the script if the failure was because of an error or because of auth rejected.
2.4 ACC module
2.5 AUTH module
- if nonce reused, return "stale" indicater in the challenge
2.6 DIALOG module
- added a new exported function to the dialog module, fix_route_dialog(), which forces an in-dialog SIP message to contain the ruri, route headers and dst_uri, as specified by the internal data of the dialog it belongs to. The function will prevent the existence of bogus injected in-dialog requests ( like malicious BYEs )
- updated the validate_dialog() and fix_route_dialog() exported functions, so that they can now handle all types of routing ( loose to loose, loose to strict, strict to loose and strict to strict )
- instead of error, dialog variables ( $dlg_val() ) return NULL (and not error) if there is no dialog in the current context
- API: added the possibility to terminate a dialog from another module
- included the dialog vals and profiles to be printed as part of dialog context (via dlg_list_ctx MI func)
2.7 DROUTING module
- added attributes fields for rules - this value is available in script (via AVPs) when the rule is matched and used
- added a new AVP to export the ID of the matched RULE when the rule matches (EX: for accounting purposes)
- added support for NAPTR & SRV lookup (resolving) and multiple IPs when GWs are defined by names
2.8 CFGUTILS mmodule
- rand_event() may take as optional param (with vars) the probability (this param will override the global probability ,set via set_prob)
2.9 NATHELPER module
- RTP timeout detection and reporting with dialog module integration (call proper call termination on signaling level). See more http://lists.opensips.org/pipermail/users/2010-December/015883.html
- removing obsolete force_rtp_proxy() function and replaced with new rtpproxy_offer()/ rtpproxy_answer() ; obsolete flag 's' removed
- Removing restriction on forcing RTP RELAY only for INVITE type SIP requests. UPDATE is a valid SIP request that can update the SDP.
- fix_nated_contact() may take as optional param a list of URI params to be added to Contact URI
2.10 PRESENCE module
- added bla_fix_remote_target parameter that disables a BLA Polycom specific behaviour
- support for extra headers in NOTIFY: - extra headers received in PUBLISH requests can be stored and sent to the subscrber via NOTIFY requests
- fixed a BLA problem - if received a NOTIFY without any dialog received, don't send Notify to the others in the BLA group
2.11 PRESENCE_CALLINFO module (NEW)
The module enables the handling of "call-info" and "line-seize" events inside the presence module. It is used with the general event handling module: presence and it constructs and adds "Call-Info" headers to notification events. To send "call-info" notification to watchers, a third-party application must publish "call-info" events to the presence server.
Read more on http://www.opensips.org/html/docs/modules/devel/presence_callinfo.html
2.12 RR module
- Enhancement to record_route_preset functions to accept a second Record-Route header to be preset via a second argument.
- new module parameter enable_socket_mismatch_warning - When a preset record-route header is forced in OpenSIPS config and the host from the record-route header is not the same as the host server, a warning will be printed out in the logs. The 'enable_socket_mismatch_warning' parameter enables or disables the warning. When OpenSIPS is behind a NATed firewall, we don't want this warning to be printed for every bridged call.
2.13 TM module
- t_replicate can now also receive pseudo-variables as argument
- added the possibility to send a reply with body from the script with t_reply_with_body function
- added new t_add_hdrs() function to add a custom header to all internally generated requests from a transaction (cancels, acks)
2.14 B2B_LOGIC & B2B_ENTITIES modules
- new: database storage for restart persistence
- new: export API from b2b_logic to allow another controlling layer above it in the form of a module
- new: improved the bridging a party that already is in a call to a new destination so that the user can hear ringing tone until the new destination answers
- fix : reply to both the parties if they send BYE in almost the same time
- fix : include Max-Forwards header in all the requests that require it (Invite, Update, Prack)
2.15 TEXPOPS module
- new function is_audio_on_hold()