carrierroute

cdp

added RPC cmd to list diameter information, including peers and their details

added loadbalancing across diameter peers within the same realm and with the same metric

corex

corex.shm_status and corex.shm_summary rpc commands

new function send_data(uri, data)

send arbitrary formated data to uri

uri param has to be a valid sip uri

both parameters can include pseudo-variables

functions for management of msg internal flags

msg_iflag_set(“flagname”)

msg_iflag_reset(“flagname”)

msg_iflag_is_set(“flagname”)

flagname can be: USE_UAC_FROM, USE_UAC_TO or UAC_AUTH

these functions should not be used in configuration file for (re)setting the flags, those are done by various functions internally, however, in very particular cases they might be useful (e.g., changing From/To via textops functions)

cmd can be add (insert a remote profile) and rm (remove a remote profile)

allow '_' in dlg profile names

replicate profiles to other nodes via dmq module

add option to increment cseq upon local authentication to next hop

feature has to be enabled via module parameter track_cseq_updates

it does it only for downstream direction (requests from caller and callee, as it is the typical use case of calling via a provider, after authenticating the caller locally, provider asks for another 'trunk' authentication

diff of cseq value is stored in dialog var named 'cseq_diff', therefore be sure it is not overwritten from config

dialog_ng

added DB support for dialog_ng

dispatcher

expand attrs while running rpc command dispatcher.list

ds_select_dst/domain can take args as string (not only int) - internal conversion of string→int (if possible)

new variant - ds_is_from_list(groupid, mode, uri)

can match against records in dispatcher groups

if groupid==1 - will match against all groups

if uri is empty, then will match against source address (ip, port, proto). Otherwise it has to be a full SIP URI value. The matching is not taking in consideration any parameter apart of transport

mode is a bitmask to tell the matching rules

if it is 0, will match everything: ip, port and protocol

if bit one is set, will skip matching the port

if bit two is set, will skip matching the protocol

dmq

added function to broadcast message from config file

added RPC interface to query the nodes in the cluster

new function: dmq_t_replicate() - replicates current SIP message to all active DMQ nodes. Includes built-in loop detection which can be skipped with optional parameter

new function: dmq_is_from_node() - Checks whether current message has come from another node, based on source IP

htable

new config function sht_reset(“tname”) - remove all items in the hash table

iterator implementation for hash tables

new functions:

sht_iterator_start(iname, hname)

sht_iterator_next(iname)

sht_iterator_end(iname)

the current item in the iterator is accessible via:

$shtitkey(iname)

$shtitval(iname)

ims_auth

ims_www_challenge() allows specification of auth algorithm from cfg

ims_charging

allow E164 to be used as subscription-type in CCR requests

new capability to add dialog data to contact when charging session is created

ims_registrar_pcscf

new features to support P-CSCF subscription and publishing reg event

new modparam hashing_type - hash storage based on IP:PORT

new exported function pcscf_assert_called_identity() - used to assert the identity for SIP responses

function retrieves Called-Party-ID AVP from SIP request and adds to SIP response as P-Asserted-Identity as per TS 24.229 section 5.2.6.4.4

new param ue_unsubscribe_on_dereg: for UEs that do no send UNSUBSCRIBE for reg event when de-registering

option to disable the “received check” upon lookup

new module parameter ignore_contact_rxport_check to ignore check on received port

new module parameter force_icscf_uri - if set we use it as the ICSCF next hop - if not set (default) we use DNS SRV to find ICSCF next hop

new module function lookup_transport() - this allows terminating P-CSCF to check(and possibly) change the transport for the request before relaying/fwding to terminating UE

option to ignore “REGISTERED STATE”, when checking for a registered client

ims_registrar_scscf

new features to fully support subscription to reg_event

ims_qos

use p_asserted_identity as default subscription-id for AAR requests

allow E164 to be used as subscription type for AAR requests

store AAR flow descriptions in CDP session

new parameter: authorize_video_flows - a flag that specifies whether or not to authorize video flows

ims_usrloc_pcscf

added DB support for persistent storage

added storage for security data (IPSEC/TLS)

ims_usrloc_scscf

new features to fully support subscription to reg_event

add dialog data to contact and tear down dialog when contact is removed

new match mode CONTACT_PORT_IP_ONLY allows to match contact based only on port and IP - ignoring user part

added ability to do AKA resync of auth vectors

ipops

new pv to get hostname details:

$HN(n) - hostname

$HN(d) - domain

$HN(f) - fullname

$HN(i) - ip address

based on gethsontname and resolving it

kex

rpc commands for statistics

lcr

added capability to inactive a faulty gateway and re-activate it automatically by successful response to OPTIONS ping

maxfwd

max_limit default value set to 70 - recommended value by RFC

memcached

new parameter 'stringify' to the memcached module to force the module to evaluate all returned values as strings. This is useful if other parts of the memcached infrastructure are not able to set the correct value flags

mqueue

new psuedo-variable to return mqueue size

mtree

added 'multi' param to mtree definition

new 'multi' param makes it possible to store both integer and string typed mtrees into single db table

tls

execute event_route[tls:connection-out] - done when a new outgoing tls connection is opened

tm

t_replicate() without outbound proxy address

rebuild local Via when force socket is changed in event_route[tm:local-request] - new forced socket is also set for sending out

rebuild the local request if uri was changed in event route

new api function t_append_branches()

tmx

t_cancel_callid() can set the Reason header in generated CANCEL

new function t_reuse_branch()

new variable: $T_branch(flags)

t_precheck_tran() - lightweight filtering of retransmissions - keep track of processed messages per process to catch retransmissions in early phase, to avoid simultaneous processing until transaction is created