h1. Release 9.2 *Release date*: 2024-05-16 {{>toc}} h2. New features: #3682: Route classes -> Rules: implement support for moving rules with arrows when several rules has the same priority #3677: Route classes -> Rules: in case if several rules have the same priority, need to use old rules hen determining which of them has higher priority #3685: Add max. concurrent calls for a user #3686: Implement ping rapid #3169: Rename Reconciliation report to SOA #3556: Reconciliation report: display data regarding mutual balance #3688: Invoices: add filter by destination #3689: Assertion should contain valid line numbers #3675: Messaging over HTTP: add variables to support SMS concatenation #3690: Call handlers -> Bill element: need to support diferent directions #3691: Optimize the operarion of large number pools #3693: SMPP: by default use message size 140 bytes #3700: ICE API: dynamically create connections to the database #3710: Remove support of obsolete libraries mysql++ #3709: Supervisor application: decrease memory consumption #3718: ASAN: need to generate coredump on crash #3725: Eliminate code duplication in CountdownContainer and its derivatives #3758: Enable rtp protection by default #3759: HTTP API: supervisor user should be able to generate calls to other users of their group #3764: User SMS web-cabinet: add more options #3767: Asterisk: give a name to each process #3769: A-number replace profiles should not activate on calls to users #3784: Transit to new wt4 web framework #3797: Optimize AMI performance for webphone #3803: Add possibility to specify multiple same numbers in Forwarding menu #3791: Extend queue options: add "leave-when-empty" and "join-empty" #3800: Add SIP register expiry option per gateway #3809: Add SIP proxy settings to Originators #3811: Pcap report: show progress when rendering selection form #3813: Need to backup views, not only tables #3785: Add an option to disable segmented sms #3824: DTMF features: generate table dynamically #3842: Companies: filtering by responsible user #3840: SMPP: Check profit when there is different number of segments in and out #3756: Add price in details of Check routing #3863: Dialpeers -> call handler: change from combo-box to suggestion-popup #3849: Add call duration limitation for a company #3860: Implement hangup code replacement on users #3872: E164 -> E212 map: make e164 code unique #3875: allow originator to SMS bind as BIND_RX #3887: Don't allow calls to establish on local IP addresses in SDP #3888: Make Peer selected on 1 Node working when combined with authorization by prefix #3889: Don't allow to Redo billing if there are no CDR for the start day of recalculation #3841: Remove the ability to do billing re-calculation in a browser tab #3879: Don't allow to save a SIP password containing ":" #3885: Call generation: support millions of numbers #3712: Remove Swipe payment aggregator support - this company was closed a few years ago #3903: Speed-up the Code Detail Report #3912: Redo billing: remove dependency on views #3921: Make product build on freebsd-13.3 #3922: Move from obsoleted QtWebKit to QtWebEngine #3929: Show mutual balance in the upper right corner h2. Fixes: #3681: SMPP store and forward: Smartswitch::AsteriskPrx::sendMessage() is stuck #3687: Configuring call handler = "none" doesn't work #3696: mutex lockup when loading SIP realtime #3694: Statistics report: when filtering by zone the routing table is not shown #3697: AMI -> Change -> command: make enabled by default #3703: Unable to refill via Qiwi #3705: Assertion in load_features_config() #3706: Assertion in code_detail_report.cxx:452 #3707: E164 codes: SQL error: 1146 (42S02): Table 'tmp.user_summaries' doesn't exist #3708: Check routing: duplicate route #3713: Exceptions with HTML content are displayed incorrectly #3716: Error when adding a new Call generator or a new Call generation task #3719: SQL error: Table 'config.terminator_oh323_acl' doesn't exist #3720: Incorrect translation on import #3724: System live -> SIP peers: SQL error #3729: Assertion Column "caller name" is not supported: Unreachable code assertion failed #3730: Financial report is empty when certain Display settings are used #3735: Assertion "Wt::WApplication hasn't been bound to Progress thread: Assertion 'Wt::WApplication::instance()'" #3736: Call generation tasks: pcap for terminators is not activated #3737: Sometimes a double payment is added #3738: Unable to close access to "Delete all" #3739: E164 code detail report -> Export: unable to hide the menu #3740: E164 code report: always shows "No data" #3743: Replacement classes: problem when changing priorities #3741: Users: endless recursion protection when saving user settings doesn't work #3744: Long deletion of billing packs #3745: Long prices by email sending #3742: Settlement of accounts: perform proper rounding #3746: MySQL uses wrong index for the "number_pool_numbers" table #3747: RTP engine is vulnerable when malformed RCTP is sent #3748: PDD timeout from the first route is used on subsequent routes #3749: Test SMS is not getting sent #3751: PriceByEmailExportClass::exportRow: Assertion \'\!m_is_null\' failed #3753: Call detail report detail: Assertion !m_is_null failed #3757: Assertion in AcceptanceCertificateGenerator::get_total_amount() #3762: Memory leak when exporting large CDR volume through csv #3761: Unable to delete payment in which "company" is NULL #3760: Strict RTP protection doesn't work with RTP playback #3754: Sniffer: doesn't catch RTP after SIP INVITE was > 1500 bytes long #3765: Asterisk-16: configuration change is not applied #3770: Priorities are not set when file is imported #3772: Recording report sometimes gets stuck in the Loading state #3773: SQL error: tmp.possible_routes_t issue #3774: Eavesdropping: a call of an eavesdropped is not linked with the call which is being eavesdropped #3775: Eavesdropping: an outbound call to an eavesdropper is not saved into CDR #3776: Inbound call from an eavesdropper to the number 920: CDR has answer time = 0 #3778: Sometimes db::Connection doesn't have the "m_id" field initialized #3777: Call Detail Report: Running several ProgressDialog at a time #3779: DLR statistics report: running several dialogs at a time #3780: Log rotation issue #3782: gcore: Asterisk is stuck and not killable #3783: After terminator was cloned, it is not observed in the Asterisk CLI "sip show peers" #3786: Webphone: when "call handler" = none is set, the call enters into an endless recursion #3787: Suggestion popup stopped working #3788: Compare CDR: fixed error "We're unable to run several progress dialogs at a time" #3790: Fixed assertion: 'object_id' failed in file '/mnt/ssd/PROJECTS/smartswitch-ast11/gui/admin_portal/dial_peers.cxx' line 143 #3792: Settlements of accounts: fixed several progress dialogs at a time #3795: mp3_converter might fail due to Executor exception #3796: Route group -> Members -> "sort by name" doesn't work #3799: Bad look of webrtc phone in Firefox #3794: Fail2ban log rotation doesn't work #3798: Fixed WebRTC RTP payload handling error in Asterisk: RTP Read error: Unspecified. Hanging up. #3805: Wt4: crash on listing recording report #3802: Issue when trying to delete all recordings calls #3806: Wt4: crash on logout #3804: Proxy port doesn't work #3815: Test email sending freezes #3814: Company -> Summary report: shows fields that are not shown in the Financial report #3816: pcap_deleter doesn't work when the folder is named "igb0.2497" #3817: Wt4 migration: "tools" exception #3819: FreeBSD-13 SQL error: Incorrect integer value: '' for column 'audio_match_profile_id' #3702: OH323: after gateway was removed from the web-interface, it is stuck in the OH323 configuration in Asterisk #3821: PJSIP: unable to set "UDP bind port" for single-noded config #3825: wt4 + firefox 91.8.0esr: CallHandler editor is endlessly expanding to the right #3737: Sometimes a duplicating payment is added #3826: Exim doesn't rotate log files #3830: FreeBSD-12.2 + exim: Tainted (file or directory name for local_delivery transport) not permitted #3831: Fail2ban sometimes silently dies - need to detect this and restart it #3835: ProgressDialog shouldn't be passed as argument inside WebApplication #3837: Index access permissions don't work #3838: Temporary mounted disks, like ISOs, are kept forever in RRD db (System Live -> Graphs) #3839: SQL error: 1364 (HY000): Field 'lrn_url' doesn't have a default value: insert into terminator_http_parameters #3848: Periodic write-offs: Assertion 'res >= 0' failed #3850: mp3_converter stopped working #3847: Mail detail report: the values of the filter are not remembered #3851: mail resender: Lost connection to MYSQL server #3852: finance.yahoo.com started to block currency rate requests #3853: Asterik SMPP crash on malformed DLR #3854: Configuration changes are applied after 1-2 minutes #3857: Invoices are sometimes not created #3858: When using custom call handlers and dialing by registered contact, "s" is displayed as callee ID #3859: Call Detail Report SQL error: storage.users doesn't exist #3864: SQL error: Incorrect integer value: '' for column 'base_role_id' #3861: Menu shift #3867: SQL query: boost: mutex lock failed in pthread_mutex_lock #3866: Web-interface sometimes stops responding #3869: Removing a host from Network -> Firewall tables doesn't remove a host from Network -> Fail2ban -> Hosts #3870: Profit not acceptable when routing 160 byte GSM SMS #3871: SMS: Assertion boost::regex_search #3874: Call detail report takes way too long to open #3877: Role access options doesn't seem to work as expected #3876: Unable to merge pcaps when a source number contains '&' #3873: Check routing: SQL error on the "Next page" button press #3880: CDR is not saved due to large CDR id > 2^32 #3882: SQL error: Month number is out of range 1..12 #3883: SMPP: Asterisk crash on handling DLR #3878: Wt::WSignal handling: lazy creation of SuggestionPopup #3878: Fixed Asterisk crash #3886: Invoice generator sometimes doesn't work #3890: Access -> Changes: duplication of folders #3891: Wt4: Changes -> F5 -> crash #3897: Wrong ISDN cause on user busy #3899: Error when opening Call Detail Report #3900: Call details: wrong display margin #3898: E164 code detail report: originator is not shown in the list #3901: E164 code detail report: routing info overwrites main info #3902: Clang doesn't print an unhandled exception on exit #3906: Disabling "HTTP for Messaging/HLR/LNP/MNP" while parameters were not removed causes Asterisk restart every 3 minutes #3907: SMPP channels are stuck #3909: Currency updater + fresh mysql/mariadb: SQL exception: 1364 (HY000): Field '_user_id' doesn't have a default value #3910: Currency updater: /bin/sh: python3.7: not found #3913: Redo billing: restarts and never ends #3914: Actual prices: SQL error: No field named object_name in result set #3915: lsof: shows port name instead of port number #3919: SQL error: Table 'config.redo_billing_timetable' doesn't exist #3918: Companies: filter doesn't work sometimes #3923: /usr/local/bin/smartswitch/currency_updater. Exit code: 255 #3928: Crash on Companies -> Invoices -> Add acceptance certificate -> Export #3925: Message detail report -> Check routing: assert #3926: Call handler -> SendMessage: bad look #3927: Periodic invoices: it's possible to add hour > 24 #3931: Call generators -> Numbers -> import - SQL error #3932: Asterisk crash on logging chained SMS [[Релиз_92|Русский перевод]]