Version 1.7

Upgrading from 1.6.3 to 1.7.0

New features in version 1.7.0

Incoming call authorization
Now it is possible use SIP Authentication https://tools.ietf.org/html/rfc3261#section-22.2 by username and password. Before YETI allowed only authorization by origination IP address. All auth attempts logged to special table CDR->Auth Logs
Weigth based traffic balancing
Now it is possible to distribute calls between termination Gateways on weight basis. Also Static routing allows weight-based call distribution between termination providers.
Routing tag compare modes
Now it is possible to configure Routing tag matching modes at Destinations, Dialpeers and RoutingTagDetectionRules. Previously YETI use OR mode, now it is possible also choose AND.
Numberlist and Numberlist Items importing
It is possible to import such objects from CSV file.
DestinationNextRate object
DestinationNextRate allows create future rate changes for Destination. YETI will automatically apply such changes. We already have such feature for Dialpeers.
Configurable Customer/Vendor price rounding in CDRs
Now it is possible to round price of call in CDR. You can configure precision and rounding mode.
Inbound DTFM filtering
New version of SEMS allows you to filter inband DTMF signals. Our system will detect inband DTMF and replace it with silence. Such feature usable to prevent DTMF digits duplication in case when originator sends both Inband and rfc2833 DTMF.
CDR batch writing
Previously YETI wrote each CDR in dedicated SQL transaction. Now it is possible to write multiple CDRs in same transaction. Such feature greatly reduces TPS required for CDR writing. So CDR writing performance rapidly increased.
RoutingTagDetectionRules lookup by src_prefix and dst_prefix.
Now it is possible use different RoutingTagDetectionRules based on src/dst number.

Internal changes

  • Migration to Rails 5.1
  • Improve UI performance
  • Multiple tests improvements
  • Multiple bugfixes

Incompatible changes

??

Upgrade procedure

Upgrade yeti-web package to 1.7.0

root@yeti:/# apt update
root@yeti:/# apt install yeti-web=1.7.0

Apply first stage of migrations

root@yeti:/# cd /home/yeti-web
root@yeti:/home/yeti-web# RAILS_ENV=production ./bin/bundle.sh exec rake db:migrate
root@yeti:/home/yeti-web# RAILS_ENV=production ./bin/bundle.sh exec rake db:second_base:migrate
....SKIPPED...
== 20180212105355 MultipleMatchingConditions: migrated (2.0862s) ==============

IMPORTANT: Now update and restart your servers. And after that run `rake db:migrate` again.
root@yeti:/home/yeti-web#

Notification IMPORTANT: Now update and restart your servers. And after that run `rake db:migrate` again. will inform you that migration is not finished. You should apply next part of migrations after SEMS upgrade.

Switch to new routing schema

Change at /etc/yeti/system.cfg switch routing schema to switch16 from switch15 on your yeti-management server and restart yeti-management server

SEMS servers

Upgrade your SEMS nodes to new version. In new version module sctp_bus is required, so you should add it to load_plugins(/etc/sems/sems.conf) before module yeti. Also node_id should be defined at /etc/sems/sems.conf. See sems.conf and yeti.conf for details.

Apply second stage of migrations

root@yeti:/# cd /home/yeti-web
root@yeti:/home/yeti-web# RAILS_ENV=production ./bin/bundle.sh exec rake db:migrate
root@yeti:/home/yeti-web# RAILS_ENV=production ./bin/bundle.sh exec rake db:second_base:migrate

Restart all components of yeti-web

root@yeti:/# systemctl restart yeti-web
root@yeti:/# systemctl restart yeti-cdr-billing@cdr_billing
root@yeti:/# systemctl restart yeti-delayed-job