=========================== Release 3.5.2 ============================== 2024-10-23 Bogdan-Andrei Iancu * [6537c63c1e] : [clusterer] Fix error handling when failing to load nodes On failing to add a node (to the cluster), continue, as time as that node is not the current node. And if giving up on whole cluster info loading, be sure we clean up and properly report this to the above layer - the last thing we should do is to report success (on load) but have partial, unconsistent data. Fixes #3473 (cherry picked from commit 784e1a4cc52be74c0a2e9706e74794c4ea5940cf) 2024-10-23 Razvan Crainea * [c8c681a860] : dialog: accurate match of outgoing legs The initial code assumes that for each transaction branch, we serially create a dialog leg - therefore, when a reply is received for a specific branch, we match the leg based on its index. This logic breaks when having a branch that has no outgoing leg/message (i.e. when push notification is used), because the dialog legs id gets offsetted by the number of "blind" branches, thus we are no longer able to properly match the reply with the leg. This fix makes sure that when creating a let, it has the same index as the transaction's branch id, hence the reply is properly matched. (cherry picked from commit 5280c86a100ad9414e9beeca620648d8388bab42) 2024-10-22 Liviu Chircu * [a70ee60c4c] : clusterer: Prevent startup delays from causing aborted syncs This patch makes it so the 'seed_fallback_interval' modparam time-counting is done in a way that *ignores* any random startup delays (e.g. mod init stuff which may take time such as loading drouting, dispatcher, rtpproxy, etc.). Previously, the effect of this issue was that some modules (e.g. usrloc) would randomly *not* sync data on startup, depending if the startup delay happened to be lesser or greater than the 'seed_fallback_interval'. (cherry picked from commit 928727410a63fa137f48aa8a77492c3c7b14b460) 2024-10-22 Liviu Chircu * [e8dc6d5054] : clusterer: Add/Improve some important logs during startup sync (cherry picked from commit 2bf1bdcf5c087f16c21c99101738ed52ad8741c1) 2024-10-22 Liviu Chircu * [3de61d3180] : clusterer: Fix potential AB/BA sync deadlock on DONOR nodes This deadlock was reproduced with usrloc, but may also affect other sync-based modules, as follows: ---- sync DONOR node ---- 1) [sync send Worker-1] grabs (A) cluster lock, then (B) usrloc hash lock while building/sending the sync packets 2) [handle SIP REGISTER Worker-2] grabs (B) usrloc hash lock, then (A) cluster lock when replicating data with cl_api.send_all() This patch converts the "A+B" sequence in 1) into a "B,A" sequence. (cherry picked from commit d89f1703f60aaaa2d6cca23aab191e5671dc0c83) 2024-10-20 OpenSIPS * [9a5af87cad] : Rebuild documentation 2024-10-18 Bogdan Andrei IANCU * [294e2d7334] : Merge pull request #3497 from sippy/pr_fix_3495 python: Validate script_name a bit more carefully. (cherry picked from commit e9f9e8e8c298f6aa1f1d6cdad2ba50c2d4827d8d) 2024-10-17 Razvan Crainea * [fb01722e19] : load_balancer: open db connection from every process This ensures that the `mi("lb_reload")` command runs properly from whatever process the job is dispatched from. Many thanks to Antonis Psaras (@apsaras on GitHub) for reporting it. Close #3488 (cherry picked from commit 3df04c7c6cc21999119a02301be316a605f06036) 2024-10-13 OpenSIPS * [5b76d2c58d] : Rebuild documentation 2024-10-09 Bogdan-Andrei Iancu * [31e4ed7862] : [ldap] fix error handling when no available conn Do not try to release/free a conn if we do not have one (cherry picked from commit 27acf2a08be0b60f5a6675c8b44fb65a4cab0a7b) 2024-10-08 Razvan Crainea * [635e5d37e9] : media_exchange: handle faked replies for re-INVITEs Fix possible crash when a faked reply is received for re-INVITEs (cherry picked from commit a70f7159773cb86dde220d4c851f49de83f73802) 2024-10-06 OpenSIPS * [93c4e1f2b5] : Rebuild documentation 2024-10-03 Liviu Chircu * [42fa1db32a] : uac_auth(): Fix corner-case with missing "algorithm=" in 401 Make sure to convert ALG_UNSPEC to ALG_MD5 before doing the bitmask conversion, as otherwise the matching will fail! 2024-10-03 Razvan Crainea * [3fa1be8e84] : dialog: update SDP on ACK as well in case of lage negotiation, we need to update the SDP in dialog as well, otherwise pinging or sending sequential messages will have no info on the callee's SDP (cherry picked from commit cacdc58e228e3c9fdd56e8107f7b528ed1c92d22) 2024-10-02 Razvan Crainea * [8636745524] : media_exchange: keep media session until dlg ends This fixes situation when a media session is both started and ended from different (MI) processes. (cherry picked from commit d70b9c063b2da3eef05980cd826fd39a1c96ee56) 2024-10-01 Razvan Crainea * [668971fa10] : db_sqlite: properly store BLOB values in DB Do not insert BLOB values as strings, as they might have non-printable characters, which breaks the value when storing. Instead, store them as a hex-string. Many thanks to Eric Tamme from Five9 for reporting this bug! (cherry picked from commit 3e89bcfa935803ee4d85ba19daf2cbe8ae2c342a) 2024-10-01 Alexandra Titoc * [c089ead755] : dialog: Fix potential copy-paste error CID #417795 (cherry picked from commit bd0989cd5d81cb06468304c07ffc5211b4307951) 2024-10-01 Alexandra Titoc * [1bd8d14b85] : compression: Add and fix null checks CID #58406, #200016, #58416 (cherry picked from commit 8cfb66b9050394b31ac53fd0b5117544f0838cae) 2024-10-01 Alexandra Titoc * [44d9eddb7f] : compression: Fix potential copy-paste error CID #58327 (cherry picked from commit 56b218bd7a065db61e02cbc9e0f759bec035dc1c) 2024-09-29 OpenSIPS * [98d324af78] : Rebuild documentation 2024-09-26 Vlad Paiu * [4916d535cb] : Populate last dst leg for internally generated sequentials (cherry picked from commit 4d6e5d572f934c11d3c721d6beec366ee57f3a9a) 2024-09-25 Liviu Chircu * [849527473c] : db_sqlite: Fix some mis-placed NULL checks during row reallocs (cherry picked from commit 1cc9f5d475fa4e68a0622357c59fa2b5ba997380) 2024-09-23 Liviu Chircu * [0cd76bd8a4] : Clustered modules: Add sections on clusterer's "seed" mechanism * b2b_entities * cachedb_local * dialog * load_balancer * presence * usrloc (cherry picked from commit 7723f0e918d0cb562a5424104eb3077bd8dd3054) 2024-09-23 Liviu Chircu * [3a1baaa499] : drouting docs: Add a section on clusterer's "seed" mechanism (cherry picked from commit 184075c4695facd370ec17e2f2184c4c255afa9e) 2024-09-23 Liviu Chircu * [549b7e00a0] : dispatcher docs: Add a section on clusterer's "seed" mechanism (cherry picked from commit d9a3c55f0c97c618034ed7be9b82aa17e6981ec4) 2024-09-22 OpenSIPS * [9e6d47a904] : Rebuild documentation 2024-09-20 Razvan Crainea * [377c11b309] : b2b_logic: prevent crash in case a bridging is in progress (cherry picked from commit c69201ebcc6cc382d1ec82f7e6756ff3fc0928ed) 2024-09-20 Bogdan-Andrei Iancu * [e982e90b4a] : Fix bogus active counting for procs terminating due to down-scaling Be sure to mark the proc as idel before actually doing "exit()", otherwise we will count it as busy for the whole time the proc is terminated by OS (we automatically clear the load stats only upon sigchild on attendant) 2024-09-17 Razvan Crainea * [f06d5ded3b] : permissions: connect to db from each process Many thanks to Wayne Davies from Five9 for reporting it! (cherry picked from commit 4d79a71ee77ae020b9f1440bff4439257bed014a) 2024-09-16 Razvan Crainea * [f84d53727f] : proto_ipsec: make 0 ctx index valid Many thanks to Eliakim Feliciano Morais for reporting it! (cherry picked from commit bb73d64b6c5969a2b61b5ff690a4b423136e2aa6) 2024-09-15 OpenSIPS * [8f8195d63a] : Rebuild documentation 2024-09-13 Razvan Crainea * [ba3a3ef96a] : b2b_entities: do not `reset_cancelled_t` As it is not exposed through the API. This completes c7780dbd. Many thanks to Norm Brandinger for reporting it! (cherry picked from commit 95767fc861e9c413c466989f3ac4b15efbd1a7d3) 2024-09-13 Razvan Crainea * [ea60e0c5dc] : dialplan: no longer use per MI child init All processes already have the database connection, so there is no need to re-create it in MI (cherry picked from commit 7022a48985be59cbc3a19e3f72cf4793415cf22b) 2024-09-13 Razvan Crainea * [a7bd9c87e2] : b2b_entitites: do not unref cancelled cell if not ours If a CANCEL is caught by the b2b_entities but it is not part of a b2b dialog, it should not unref the cell, otherwise after the script is executed, it will be unreffed again, leading to a double unref. Many thanks to Voxtronic for spotting this issue! (cherry picked from commit c7780dbd78a2192178694283da982dee84b9f80b) 2024-09-13 Razvan Crainea * [50786b4d9e] : dialplan: create DB connection from all workers This allows modules, such as mi_script, to run reload commands inline, and not through a dedicated MI process. (cherry picked from commit 9a3caeca760ec90f6bf5eaac44eff98923106f4d) 2024-09-13 Razvan Crainea * [2c1b7218b0] : dialog: never update ACK cseq with 0 value In case there is no mapping for an ACK, do not update the message with 0 Many thanks to Nick Altmann for reporting this! (cherry picked from commit a47c16ffb0f98250a4e8ea8e5cef23c5c187ab06) 2024-09-12 Liviu Chircu * [d4e692b450] : rest_client: Complete the fix in a3dd31ad6 Proper pointer/data management. Credits to Aron Podrigal (@ar45) for providing feedback and testing! (cherry picked from commit b15bc4451fc2a04d5896aa75d11d497e6366cd58) 2024-09-11 Aron Podrigal * [52deea9465] : Fixes #3464 when setting `connected_ts` set the address which is being used as value? (cherry picked from commit a3dd31ad6e0cb3728a7f0b0a3e6bbfc5e3beb79c) 2024-09-11 Aron Podrigal * [f4ba67a92f] : Fixed - rcl_release_url() was never called in some cases (cherry picked from commit 50d1efbe9753706a8891ed28be04e4986484db64) 2024-09-11 Vlad Paiu * [6b2b28b117] : Fix fetching TLS domain for a redis connection (cherry picked from commit b3e81a6472214694a4ba47e3c717281e26a04466) 2024-09-09 Razvan Crainea * [42e260ab07] : topology_hiding: remove bogus debugging (cherry picked from commit 4eda102a5398d63e9b4c45796695fa7408de14c6) 2024-09-09 Razvan Crainea * [f1cabf1cdb] : b2b_entities: alocate mem for empty str Otherwise the `reason` variable points to a volatile memory that dissapears, leading to an uninitialized variable (cherry picked from commit 550eb6b7b1e08d5ea235659038fe536ceecf398a) 2024-09-08 OpenSIPS * [aa807cf0ab] : Rebuild documentation 2024-09-06 Razvan Crainea * [35042a208c] : auth_aka: fix compile error for uninitialized var (cherry picked from commit c59bbd3da1ba9bec6ffde913a0c442dee1980de1) 2024-09-05 Razvan Crainea * [4198421fe2] : clusterer: fix possible inconsistent list handling The tags `active_msgs_sent` list might become inconsistent due to the fact that the `ni->next` is being populated outside locks. (cherry picked from commit 3092ec2d07419f64dc3152e770cfdbdd186b9f1d) 2024-09-03 Shkiperon * [1a0f3288d3] : Fix HP_MALLOC build flag - DBG_MALLOC is not necessary for it Style fix (cherry picked from commit ed632d43fbebb7867457984a7a287c7e0d46edcd) 2024-09-03 Razvan Crainea * [2ca4ab1932] : topology_hiding: do not mark the contacts parts as HDR_CONTACT_T This ensures that when a fixed contact is restored from a shm lump, it does not overlap to contact parts, as topology hiding builds them. Many thanks to David Trihy from Genesys for reporting and helping us troubleshoot. (cherry picked from commit e65173fc9737a0023e23799a330e852404605548) 2024-09-03 Razvan Crainea * [68b60524ac] : Revert "tm: fix bogus contact built without domain" This reverts commit de50249961a25fdf3defbe77601c45c2dd2f0399. (cherry picked from commit 307a9862edf60e8c394bb9c0e9062f645d3e3978) 2024-09-01 OpenSIPS * [6cc6123b6a] : Rebuild documentation 2024-08-28 Vlad Paiu * [46ac3f5c01] : NULL check received connections (cherry picked from commit 2b566e67ad207bf05cd1f5768e4482d21b7059f3) 2024-08-28 Liviu Chircu * [b9e5c39224] : SIP PN: Prevent overlapping modifications of pn_ebr_filters template The @pn_ebr_filters templates are actually allocated in shared memory and can be modified by multiple SIP workers concurrently, leading to occasional strange routing of INVITEs. The fix is to simply allocate the objects in private memory instead. Credits to Ondrej Jirman for documenting, troubleshooting and providing an initial fix! Related to #3394 (cherry picked from commit 078e65b98909f477c819b57e79de0b8e18dccdb4) 2024-08-25 OpenSIPS * [bb4156286d] : Rebuild documentation 2024-08-22 Vlad Paiu * [af86be2d21] : Fix comparision of SIP URIs, add GR and PN related params checks (cherry picked from commit 8fa7bcb9ce4550c978f99bc7aaed21fdf7e28e7e) 2024-08-21 Razvan Crainea * [c62900e9db] : tm: fix bogus contact built without domain When fixing headers for fake messages (`fix_fake_req_headers` func), the function was looking for lumps that were removing the contact, because it would assume they will be the same that would add a new one (i.e. `fix_nated_contact`). However, the `toppology_hiding("U")` function, would create a del lump, but then adding 3 lumps over it. This would make the fixing bogusly learning the contact as "sip:$user" instead of hole URI. The fix for this was to make sure that there is only one ADD lump, otherwise it would point to a shorter (broken) URI. Credits go to David Trihy from Genesys for reporting and helping us troubleshoot. (cherry picked from commit de50249961a25fdf3defbe77601c45c2dd2f0399) =========================== Release 3.5.1 ============================== 2024-08-21 Liviu Chircu * [f336b11a22] : tm docs: Expand $T_fr_inv_timeout section (cherry picked from commit b71cf95b3ed0c32d3ddaf33b5d382b298ebf3ac0) 2024-08-20 MonkeyTester <57145271+Integration-IT@users.noreply.github.com> * [9e05168dfb] : Update stir_shaken.c - enforce verifier pvar error reason - more explicit SET_VERIFY_ERR_VARS. - stir_shaken_verify generic err_reason pvar is now more explicit to easily reflect the real reason. - replace verifier generic "Internal Server Error" by dedicated internal error like "Failed to parse headers", "Failed to parse identity header", "Failed to get current time", "Failed to get UNIX time from Date header", "Failed to load certificate", "Error validating certificate", "Error while verifying signature". (cherry picked from commit 2f5be1642b6e8ddf0e1f851f6be2777c87a54198) 2024-08-20 MonkeyTester <57145271+Integration-IT@users.noreply.github.com> * [ad9dcf493a] : Update stir_shaken.h - define new internal server error scopes. (cherry picked from commit 85f9250131bd44b080efbb92a875d84609a36ed7) 2024-08-19 Razvan Crainea * [7c7c71c6da] : redhat: replace deprecated radiuslient with radcli (cherry picked from commit b36a2479c6433d09e7d560c1e466dc5b87735f4e) 2024-08-18 OpenSIPS * [95ec6df6d7] : Rebuild documentation 2024-08-12 Bogdan-Andrei Iancu * [6068ff8198] : [TCP] fix OOM error logs (pkg versus shm) Part of 50650b7ab64b1cc6e81c051d30e55a6d57e2b173 (cherry picked from commit c76a542480921ba9fd23085738268156a97e4c17) 2024-08-12 Bogdan-Andrei Iancu * [54954f9b9f] : [TCP] fix pkg versus shm for the TCP workers array Due to the process auto-scaling, this array may visible not only to TCP Main, but also to attendet and TCP workers procs. See the comments in the code for more details (cherry picked from commit 50650b7ab64b1cc6e81c051d30e55a6d57e2b173) 2024-08-12 Razvan Crainea * [956845ac84] : b2b_logic: fix error logging when bridging existing entities (cherry picked from commit 35d7e1f53d2a3433a71ec154e935fcc5cd9481e0) 2024-08-11 OpenSIPS * [8758248e8b] : Rebuild documentation 2024-08-08 Razvan Crainea * [81afaa12b0] : rtp_relay: fix debugging in prev commit (cherry picked from commit 5b87766f6504588bbbba3f62f90ba024f912005b) 2024-08-08 Razvan Crainea * [3a5f07af70] : rtp_relay: add enhanced leg debugging (cherry picked from commit 28129a177ac1d7c44e498ee21371fc9d04897b64) 2024-08-08 Razvan Crainea * [6c0421fcd0] : rtp_relay: try first to match by tag, and only fallback to index (cherry picked from commit c689ec3a40938c59e49a51ddd02ae0dbbe08902d) 2024-08-07 Razvan Crainea * [284ab21ada] : rtp_relay: sync leg tag on late (cherry picked from commit 2b80f1a04c2e1c75726429e9e6a09011a089efde) 2024-08-06 Razvan Crainea * [5414d8a691] : rtp_relay: fix leg detection on newer branches (cherry picked from commit 33f42743bb4942cab02b448572bc7d14b3fbc123) 2024-08-06 Liviu Chircu * [c9dc0908dc] : mi_script: Avoid race condition in async(mi()) Make sure to read & clean @job->req before dispatching @job to a different OpenSIPS worker, which may do a quick free() on it. Credits to Suchi Sahoo from Five9 for reporting! (cherry picked from commit c7a9f68d12da814e25c4c7b0398aeccf2fdbcb95) 2024-08-04 OpenSIPS * [e4a3c7acbb] : Rebuild documentation 2024-08-02 Razvan Crainea * [a2de9f6bb8] : topology_hiding: store the appropriate routes in headers for indialog Credits go to Bence Szigeti for reporting and troubleshooting! (cherry picked from commit 46e3d05de1455eaf1797d313352f2daab7912b9b) 2024-08-02 Razvan Crainea * [67dd93f7bf] : tm: clean receive_info for replicated packages (cherry picked from commit 2cdda849040118e621967dfcfbd6483a99cf44d6) 2024-07-31 Razvan Crainea * [9e465f0e8c] : rtp_relay: prevent patch on abnormal traffic (cherry picked from commit 6edaba2281e16c7fd6fa044c9a28d33067fb3f28) 2024-07-31 Razvan Crainea * [988619dbb9] : rtpengine: respect disable state when choosing a node (cherry picked from commit 454b71312040bd3ac893c3d3c2433be11c37d1cc) 2024-07-30 Razvan Crainea * [db0bda2f64] : media_exchange: sync SDPs when offering/answering (cherry picked from commit a30ded6bee2fa63b764686b88f561c0cb1a910e3) 2024-07-30 Razvan Crainea * [002962a735] : rtp_relay: update $rtp_relay doc on branch route It provisiones the flags for the callee, rather than caller (cherry picked from commit cb9c8c94804cea080ad00f90103f5dc1e32e8e5c) 2024-07-28 OpenSIPS * [7d7a4b6a68] : Rebuild documentation 2024-07-26 Razvan Crainea * [5b3f1a575c] : media_exchange: register index on pre_init this avoids overlapping with other modules that register the pointer and start storing in it immedately, without allowing to register other indexes (cherry picked from commit 267205d77c06795c40cbf6df8a37ed77b2610069) 2024-07-25 Liviu Chircu * [0967f2801f] : media_exchange: Fix bad free in MI `media_exchange_from_call_to_uri` (cherry picked from commit 19add7c5bb71e7fa93ff5c96783cd4349001a66a) =========================== Release 3.5.0 ============================== 2024-07-25 Razvan Crainea * [f4dc14693a] : Makefile: always link against pthread (cherry picked from commit 7bb3b8aad7392fd3a757566a42681d72bad517a5) 2024-07-25 Razvan Crainea * [488a21a104] : redhat: order changelog chronologically 2024-07-25 Nick Altmann * [d9ec61e8d4] : RPM Packaging: new modules support (cherry picked from commit 5d0ae4be4c68e35f4451bec55e72b1b37d81fd07) 2024-07-25 Razvan Crainea * [3763aef963] : auth_aka: replace C11 timespec_get with clock_gettime (cherry picked from commit f16b47814480d5e25e4e8a7dc2c7d7b4478f16ec) 2024-07-25 Razvan Crainea * [39ca298f5a] : proto_ipsec: fix static_assert on older OSes (cherry picked from commit 07896e13f9fde5a0dbaf0c8fd5ec8f45dabde118) 2024-07-24 Razvan Crainea * [3b773aee98] : io_wait: fix declaration according to c89 standard This fixes compile on older compilers i.e. Redhat 7 (cherry picked from commit 07a0c059bda1465cd6d2834862723765338c1638) 2024-07-24 Razvan Crainea * [b1dcbe89c6] : event_kafka: fix xml admin doc file (cherry picked from commit ea1f23eb3d7e1bf6ce639e2c9d3d112db272a9d1) 2024-07-23 Liviu Chircu * [c3c151e8df] : [I/O reactor] Small improvements to c15bd04aa4 * add @idx check against upper bounds of h->fd_array (avoid overflow) * recover @idx even when it's out-of-bounds (e.g. idx == -10) * simplify backtrace call (cherry picked from commit 46e2085b60bbd2784511cb31ec6a0a213e8cb081) 2024-07-23 Bogdan-Andrei Iancu * [4f548390c9] : [IO reactor] added an enhanced logging when detecting a reactor data corruption Use a basic/simple array to store logs to be eventually dump later if a corruption of the reactor data is detected after an io_wait_del() operation. This is debugging only, with the intention of helping the troubleshooting some ongoing investigations. (cherry picked from commit a28e500a0bffa9fcdf1a6223d94bbfe465135228) 2024-07-23 Bogdan-Andrei Iancu * [6500022ed8] : [I/O reactor] do sanity check on the provided fd index On del operation, if an index (in the fd_array) is provided, check its consistency, to avoid corrupting the reactor's data. Upon corruption, do a backtrace and force recovery by resetting the index to -1 IMPORTANT: this is not a fix, but a detection and recovery, hoping to help identifing bad ops over the reactor's fds. (cherry picked from commit c15bd04aa47843147427fd56f427152addda8e93) 2024-07-23 Bogdan-Andrei Iancu * [324c47d83b] : Fixed test over the IO flags when removing a fd from reactor ignore the internal flags during the test (cherry picked from commit 5e11c80de870f22bca3aae85e88ef8b8b57c0f93) 2024-07-22 Liviu Chircu * [91f41107b7] : presence: Fix subtle race condition in update_db_subs() While walking the list and collecting expired subscriptions, it is incorrect to temporarily release, then re-acquire the lock and still make use of the @s or @prev_s pointers afterwards, as the list may have changed in the meantime! The fix is to detach and collect any expired subs, then walk & handle them in a separate iteration. (cherry picked from commit b8e0250bc957bb408f23317012716524129f1fa9) 2024-07-22 Liviu Chircu * [f5f927bbf5] : TCP debugging: Fine-tune TCP conn history settings * reduce logline buffer from 100 -> 80 * only keep the last 300 events per connection (down from 2000) * avoid auto-logging (flushing) of all TCP conn histories to syslog These changes should reduce the default TCP conn debugging footprint from ~2GB to ~0.3GB of shared memory, as well as clean up the logs. (cherry picked from commit e496cfc28aa6e88259dd17054912f88859087534) 2024-07-22 Liviu Chircu * [8f8dc5da73] : TCP: Fix race condition in "proto_tcp.tcp_parallel_handling" During F_TCPCONN handling by a TCP worker, the @con pointer must *not* be de-referenced if the READ was successful and connection already returned to TCP Main. This patch adds a new retcode to the tcp.read API function in order to achieve this. Credits to Yury Kirsanov and Bogdan Iancu for helping troubleshoot this issue! (cherry picked from commit 6108ee296fe372cb59719acde9499d0cbe8fbdc8) 2024-07-22 Razvan Crainea * [b393519196] : sql_cacher: remove test key from cache Since this key is stored in a non-base64 format, when the hash is being iterated, this value breaks the convesion - and when trying to `base64_decode("cdb_test_val")`, this results in a larger value than the expected integer, resulting in a stack crash. Removing the key from the hash fixes this crash, as all keys remain are properly base64 encoded. Moreover, if the key is not properly encoded, we should make sure that its decode does not overwrite the stack frame. (cherry picked from commit dc38cf3a19819bc010489e0f88a663a4f35f9aca) 2024-07-19 Razvan Crainea * [1169b7700b] : b2b_sdp_demux: reset successful legs for in-dialog The number of successful legs should be reset after completing the initial setup, so that if sequential legs are being rejected, we should not assume they are successful. Many thanks to Eric Tamme (@etamme) for reporting the issue and for providing testing scenarios. (cherry picked from commit fd37fa5ea54f67093dd014297ca8451bdeffccf3) 2024-07-16 Liviu Chircu * [cb6cc1e478] : db_mysql: Add the 'tls_opts=' optional DB URL parameter With some DBaaS, the TLS connections only require a CA setting on the client side -- no need to explicitly set the "cert=" or "private_key=", as they might not even be available. (cherry picked from commit 616ddd660a3444e937a5080e18432d5a404dc5a3) 2024-07-15 Liviu Chircu * [2484af0acd] : TCP: Add more connection debug logs from TCP workers (cherry picked from commit 4074f8723d938070f720cc16c664e3146c92172a) 2024-07-10 Bogdan-Andrei Iancu * [f2a3af0e57] : [tracer] remove useless line, pron to crashes Setting the tracing info into the processing context here is useless as none of the following funcions are using /accessing this context. Even more, there are cases (like tracing an UAC b2b transaction triggered by a b2b timeout) where there is not processing context set (so crashing). (cherry picked from commit 759d08f9168052005eea88742abcb3577f745247) 2024-07-09 Liviu Chircu * [5cd89d1754] : TCP Main: Make connection frees easier to troubleshoot By rewriting _tcpconn_rm() as a macro, the built-in shared memory debugging support (see `shm_memlog_size` core parameter) will record the TCP connection free() operations more accurately (file/func/line). (cherry picked from commit 42ebe1dbc46f7ea850c80b011b00dd76b022a512) 2024-07-08 Bogdan Andrei IANCU * [3353f3695a] : Merge pull request #3429 from okhowang/uac-expires uac_registrant: using Expires header if expires is absent in contact (cherry picked from commit 3e592b60f4a4883b203fade4f1404c12d4bec2a0) 2024-07-08 Liviu Chircu * [2c66190c97] : backtrace.h: Make code more usage-friendly * avoid having to define -DEXTRA_DEBUG for backtrace logging * now you can define -DDBG_NO_BACKTRACE in order to disable all traces * default logging level changed from DBG to CRIT * fix issue with log level always being INFO; fix bad include (cherry picked from commit bbe8f809d119695577792a5438d97d51a4eb420d) 2024-07-08 Razvan Crainea * [dad2fb818d] : siprec: fix failover crash When a failover happens, the initial_sdp is no longer available, hence the module crashes when trying to use it. This fix makes sure that the initial_sdp is not released, so that sequential failover can catch and use them. Many thanks to Farzaneh Soltanzadeh (@Fr-Soltanzadeh on GitHub) for reporting it in #3421 and trying to fix it in #3425. Fix #3421 Close #3425 (cherry picked from commit a970903c113b47c152c0077689c70faa2a1816cf) 2024-07-05 Bogdan-Andrei Iancu * [2400d85c26] : [stir_shaken] updated docs... ...to reflex the fix in a2560af0f7e0180589228267553fbe37d5885140 (cherry picked from commit 005aa2e5be85920f5cda82e8b0f89760b8d678b8) 2024-07-05 Bogdan-Andrei Iancu * [8428924e57] : [stir_shaken] fix agressive test on Identity hdr. This will fail in a scenario like: INCITE with Identity received, remove the Identity hdr, call stir_shaken_verify again to add a new Identity hdr. (cherry picked from commit a2560af0f7e0180589228267553fbe37d5885140) 2024-07-04 Liviu Chircu * [35e65236e8] : fraud_detection: Fix possible SHM allocation bug w/ prefixless rules During the check_fraud() call, in case dr_binds.match_number() finds a prefixless route, the output @matched_len is un-initialized, potentially leading to a bogus map.get_map() call and arbitrary-sized shm_malloc(). Many thanks to @okhowang for spotting the bug! Closes #3413 (cherry picked from commit e8344e88fed2ac2ef9f3737e619f38361d949fc3) 2024-07-02 Norm Brandinger * [40206eeefa] : Update README (cherry picked from commit 2f0940a6cec5e2e7378411e5856821478b52561b) 2024-07-01 Razvan Crainea * [7aa2617fba] : siprec: proper handling recording resuming (cherry picked from commit 79fced4aa5f28354f004e1e9ed5cfefd903b56b6) 2024-06-25 Bogdan-Andrei Iancu * [c741ad77a3] : [rabbitmq_consumer] fix wrong IPC advertising in rabbitMQ aux process (cherry picked from commit 50006eae756edb075ebe15b7582cd0bfdbc57492) (cherry picked from commit 26e9a75d264f15df24de10f8bfb62a5beddbb02a) 2024-06-21 Razvan Crainea * [563c58f87b] : domain: init db connection in all processes If the db_mode says we should cache the dialog table and only reload it in MI proceeses, the module would not initialize the db connection for SIP workers/timers. This would prevent the mi_script from running the mi() commands. This fix initializes the db connection in all proceses, thus enabling the reload behavior from any process. (cherry picked from commit e0d0f6b8fbfdabb8c7fd6e0a9307fb8df0caefe5) =========================== Release 3.5.0-rc1 ============================== 2024-06-19 Bogdan-Andrei Iancu * [fa9bfb7c8b] : [event_kafka] remove bogus example in docs (cherry picked from commit ccc346b8e3c85fb07de0f05c8cde0123857382f2) 2024-06-18 Bogdan-Andrei Iancu * [9721229535] : [tcp] check if the history list exists when doing unref There are cases where the tcp conn may fail right at the beginning (like a failed connect/accept) and maybe the hist list is not yet attached to the conn. (cherry picked from commit 2d8ea8ef28b4efbcde658ece5a65ec4e440e35ba) 2024-06-17 Razvan Crainea * [7a50f884c3] : rtpengine: fix uninitialized tmp warning (cherry picked from commit 675db4c00019f7e782afcc4dbdc2c0860a710362) 2024-06-17 Bogdan-Andrei Iancu * [496c6ab0ca] : [net/tcp] log the unref BEFORE destroying the conn (cherry picked from commit 3bb0d23d9aba03e2ea674563c88aa5ba18ca8ae7) 2024-06-16 OpenSIPS * [1c700613d6] : Rebuild documentation 2024-06-14 Razvan Crainea * [4fb9a817ec] : rtpproxy: fix structure copying (cherry picked from commit 80bee9b8c26efd1f3a5cd4b7df4c1a7c27a2dde3) 2024-06-14 Razvan Crainea * [02333ad6e2] : rtpengine: fix unitialized warning (cherry picked from commit 1c3139ae28ed815749e84c7289c50703d16f9191) 2024-06-14 Razvan Crainea * [b385ba5ad0] : rtp_relay: ignore correct branch index Many thanks to Liviu Chircu for spotting the issue (cherry picked from commit 90c9b78fb3330231129d49ab32ce4593654e7408) 2024-06-13 Razvan Crainea * [3800b74b0c] : packaging/debian: do not run berkeley stubs if not built If the berkeley package is not build, we should not run its stubs, as they result in errors. Thanks go to Richard Revels (@rrevels-bw on GitHub) for reporting it. Close #3389 (cherry picked from commit 2fba04ae731a519b8eb3a033e7a491aa3c7e8f66) 2024-06-13 Razvan Crainea * [93cfbcbe7e] : tracer: use own flag for B2B tracing This fix prevents crashes generated when the B2B module is loaded, but tracing is done at the transaction layer - since the transaction layer was setting the same flag, B2B tracing was also engaged, but without the necessary structures, leading to crashes. (cherry picked from commit efc25521b294f61955b8a181234278dc8313ccf4) 2024-06-13 Razvan Crainea * [1bdadb5c23] : siprec: properly handle paused recording (cherry picked from commit 0091ab4751164b77a1ea928f04899101ea51c3fe) 2024-06-13 Razvan Crainea * [ed76583176] : siprec: expose streams in xml Close #3287 and #3293 (cherry picked from commit fb4402da3969eea64ecdd79b1233325d45346651) 2024-06-13 Liviu Chircu * [b3964047cc] : db_sqlite raw queries: Fix unnecessary lowercase restriction The code was searching for the " from " string chunk in the query but in a case-sensitive manner (??), causing formatted queries (e.g. " FROM ") to fail. Credits to Eric Tamme (@etamme) for spotting and reporting the issue Fixes #3409 (cherry picked from commit 388d4faa99e1d1842d9510947020c3d11157aa2b) 2024-06-11 Bogdan Andrei IANCU * [5e22a91cbe] : Merge pull request #3407 from jes/jes/force-rereg uac_registrant: make force_register run force_register instead of disable (cherry picked from commit fda7385b454469fc8ebb5caea9aec5b7b537ea50) 2024-06-11 Liviu Chircu * [b82b4e12d9] : Update opensips.vim syntax file (v3.5) 2024-06-11 Liviu Chircu * [6bcc35cc8b] : menuconfig templates: Fix nat_uac_test() flags; Load a TLS module (cherry picked from commit 1768d6543ebd927081e27e78035c27472dc045d2) 2024-06-11 Bogdan-Andrei Iancu * [ed120f8afd] : Remove b2b_logic_xml from exclude list The module does not exist anymore (cherry picked from commit 4896e5cc25282ba99eca6a10c8304ff63ebb525b) 2024-06-10 Bogdan-Andrei Iancu * [f742a8d97d] : [nathelper] do proper URI enclosing for FROM and TO URIs Reported by @InnovateAsterisk Closes #3405 (cherry picked from commit 9308abc20f177fdd49c1be770dccb100a696e524) 2024-06-09 OpenSIPS * [ddcb651930] : Rebuild documentation 2024-06-06 Liviu Chircu * [9f94984846] : Fix shutdown crash when 'event_shm_threshold' is enabled The SHM lock is NULL at that point, so use shm_free_unsafe() instead. (cherry picked from commit d076141e4fa3f5c4ef9a67a72e0c0b23dcd37e7c) 2024-06-03 Bogdan Andrei IANCU * [f444eaf974] : Merge pull request #3400 from NormB/NormB-patch-4 Update b2b_logic_admin.xml (cherry picked from commit 909ac1b8896b9d7b76b840cf24e3b900a929a504) 2024-06-03 Bogdan Andrei IANCU * [52a0829f04] : Merge pull request #3399 from NormB/NormB-patch-3 Update b2b_logic_admin.xml (cherry picked from commit e22e9c51a0562f453431610fc5c201ff9dbed13e) 2024-06-03 Aaron Meriwether * [b2d0d2fefc] : Fix `perl_exec_simple` memory leak (cherry picked from commit 1c40610737ab3ffe240a1bb5a4fa7405b3a856cc) 2024-06-02 OpenSIPS * [08e3c99953] : Rebuild documentation 2024-05-28 Liviu Chircu * [8683734a72] : db_mysql: Drop usage of MYSQL_OPT_RECONNECT in 8.0.35+ The auto-reconnect feature of libmysqlclient has been deprecated starting with version 8.0.34 and is subject to future removal. Moreover, OpenSIPS was explicitly disabling it anyway on startup, in favour of the "max_db_queries" application-level query retrying loop. (cherry picked from commit 39f056b617c2997daa0fc7f49e7570b5ed94ca6f) 2024-05-26 OpenSIPS * [a6ca42e03f] : Rebuild documentation 2024-05-23 Razvan Crainea * [20c98c9d1e] : b2b_entities: logic_key should always be printable Many thanks to Voxtronic for spotting this issue! (cherry picked from commit f96335091d82a15c0a2d2e70f3a03fd7adfb1868) 2024-05-23 Razvan Crainea * [f13eb815ff] : redhat: fix diameter exclude list (cherry picked from commit 8878491ad5921c23a62195d6cc5df5df979624f6) 2024-05-23 Razvan Crainea * [db73169923] : proto_ipsec: fix redhat README (cherry picked from commit d9543650d069200dee9a1fb41999fd5ff8ec2229) 2024-05-23 Razvan Crainea * [1f0ef9804e] : proto_ipsec: add packaging (cherry picked from commit adc2612b76f144454e3c10a5908e007779dbc829) 2024-05-22 Liviu Chircu * [315b7c3558] : cfg parser: Avoid unnecessary strlen on error case When getline() returns -1, the @lineptr argument is never safe to read, nor is this recommended. So when both rc == -1 and EOF conditions occur, it is safe to assume we read 0 bytes, without doing the strlen(). Many thanks to Dhiraj Mishra (@RandomDhiraj) for detecting, documenting and reporting the potential risk of a heap buffer overflow here! (cherry picked from commit 50b651c230eec5daaf52f8742a9c3dd92123f3d2) 2024-05-19 OpenSIPS * [b5bad0f983] : Rebuild documentation 2024-05-16 Liviu Chircu * [d506b1bae8] : http2d: Fix syntax in examples; Improve logs (cherry picked from commit 099e771b39712df0a03a632cb12d5ec99ba1a66e) 2024-05-12 Liviu Chircu * [65344f8e71] : proto_ipsec: Correct fix for struct ordering issue in 45272908 Original error, on (clang-arm32-qemu-cross, ubuntu-22.04): ipsec.c:384:19: error: field 'algo' with variable sized type 'struct xfrm_algo' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end] 384 | struct xfrm_algo algo; | ^ Credits to Răzvan Crainea for spotting the bug! (cherry picked from commit a5890980ebd848eded8df9a3b9fd18d8b938f62e) 2024-05-12 Liviu Chircu * [08498b8f2a] : proto_ipsec: Fix various compile warnings (cherry picked from commit 4527290889db8e79c059a4183e561724ce26283c) 2024-05-12 Liviu Chircu * [ee2b7ef81d] : Tests build: Add 'libmnl-dev' to DEB list (cherry picked from commit a9813063d5d27d15b81247d7ca9643bba4ab3e17) 2024-05-10 Liviu Chircu * [0255849652] : status_report: Avoid return 0 in sr_set_status() (cherry picked from commit 64c0042b4258eeaf1c52d6f37bda5b2d7d7a1ff7) 2024-05-10 Liviu Chircu * [2c6b4120b7] : status_report: Fix bad 3rd parameter to sr_set_status() (cherry picked from commit 7f12c44813f080a3a2177c8d89a5c160b80139c9) 2024-05-10 Liviu Chircu * [38795b913b] : sqlops docs: Fix JSON syntax in examples (cherry picked from commit ca385b4580b319bea42336dcbfea10176aa851ba) 2024-05-09 Liviu Chircu * [3061451e48] : Contributors: Update project-level stats Note: the numbers were last updated on Feb 2020. (cherry picked from commit 8fb00939cf12fbfcf5473ed4df8d718ed5323e4a) =========================== Release 3.5.0-beta ============================== 2024-05-09 Liviu Chircu * [9c8b8b740] : Bump version to 3.5.0-beta 2024-05-09 Liviu Chircu * [816b58e6b] : Update MySQL DB migration scripts for "3.4 to 3.5" 2024-05-09 Liviu Chircu * [5f3baea39] : Remove references to README-MODULES; Remove svn '$Id$' tags Reason: this file was slowly becoming more and more outdated and was ultimately removed in 8292659d5, in favour of the opensips.org listing. Fixes #3375 2024-05-09 Razvan Crainea * [3cf643015] : proto_ipsec: proper initialize allowed algorithms 2024-05-09 Razvan Crainea * [14466ccdd] : proto_ipsec: allow empty allowed_algorithms 2024-05-09 Razvan Crainea * [da8ae0751] : proto_ipsec: add allowed_algorithms to ipsec_create() 2024-05-09 Razvan Crainea * [0b135352d] : proto_ipsec: add ik and ck to $ipsec pvar 2024-05-09 Razvan Crainea * [64ffb9ad4] : proto_ipsec: add documentation 2024-05-09 Razvan Crainea * [c26b314f1] : proto_ipsec: handle send command logic 2024-05-09 Razvan Crainea * [1af4a6898] : rtpengine: explicit name when registring for rtp_relay Otherwise the module might use a different `exports` structure 2024-05-09 Razvan Crainea * [a7f070a9a] : core_cmds: fix set_via_handling crash 2024-05-09 Razvan Crainea * [991a41092] : socket_info: provide send callback for internal listeners When a proto hooks on top of another proto to operate (such as proto_ipsec is using proto_udp and proto_tcp listners), we need a hook before sending a message out. 2024-05-09 Razvan Crainea * [018e9be03] : aaa_diameter: unlock cond after signaling This avoids a deadlock on the main condition 2024-05-09 Razvan Crainea * [fabd1732b] : proto_ipsec: fix allowed_algorithms parsing 2024-05-09 Razvan Crainea * [4ed21bf69] : proto_ipsec: provide persistency for SAs 2024-05-09 Razvan Crainea * [7b61d7f08] : proto_ipsec: change free spi management 2024-05-09 Razvan Crainea * [fc7626e07] : proto_ipsec: store ck and ik in ctx This helps us store in the usrloc kv store 2024-05-09 Razvan Crainea * [8c1b5851f] : proto_ipsec: granular management of re-registration 2024-05-09 Razvan Crainea * [fc6b10430] : ipsec: complete ipsec SA/policy removal 2024-05-09 Razvan Crainea * [2430e1019] : ipsec: enhanced REGISTER handling 2024-05-09 Razvan Crainea * [56a5b7c64] : auth_aka: refactor hash to reverse impu vs impi 2024-05-09 Razvan Crainea * [2a9192011] : ipsec: add proto_ipsec module + proto parsing 2024-05-09 Razvan Crainea * [0be8ad991] : socket_info: expose listeners interface 2024-05-09 Razvan Crainea * [1bb45295f] : net: add support for internal listeners 2024-05-09 Razvan Crainea * [4e06e87d5] : parser/authenticate: extract ik and ck parameters 2024-05-09 Razvan Crainea * [d38333b3d] : parser: add parser for Security-{Client,Server,Verify} headers 2024-05-09 Bogdan-Andrei Iancu * [60f352e05] : [PI] remove duplicates for `usr_preferences` table The duplicate was a side effect of renaming avpops to sqlops 2024-05-09 Bogdan-Andrei Iancu * [b99d7c62a] : [dbschema] updated according to the latest `dispatcher` format 2024-05-08 Liviu Chircu * [115faea9a] : httpd: Add a new 'conn_timeout' (seconds) modparam 2024-05-08 Bogdan-Andrei Iancu * [afbdbdcf4] : [core] fix raising E_CORE_PROC_AUTO_SCALE The event is raised by the attendent process, which is not properly init for all event backends. So better dispatch the event to the regular workers to be raised. 2024-05-08 Bogdan-Andrei Iancu * [9f9e4649b] : [sipmsgops] fixed section IDs in docs 2024-05-08 Bogdan Andrei IANCU * [043b7e095] : Merge pull request #3311 from vladpaiu/sip2json Add sip2json pvar 2024-05-08 Bogdan-Andrei Iancu * [fa93ebbe6] : [tm] Changes on the new `local_reply/request_route` mod params Improve the names of the variables. Improve docs with more details. Make `local_reply_route` a generic route, not a onreply route (as it taints the concept of onreply routes) Related to #3329 Complets 57b122f29e0872b221e40fba6f9e900362f8c2ce 2024-05-08 Carsten Bock * [1248f80b9] : tm: Add functionality to execute a route, whenever TM creates a request or reply 2024-05-08 Liviu Chircu * [43477da50] : tm: Avoid running hop-by-hop ACK callbacks before reply callbacks Commit aaa6b6867 mitigated the effects of a poor HEP connection affecting the OpenSIPS's responsiveness by delaying the reply callbacks until after the hop-by-hop ACK is sent out. However, a side-effect in doing so is that the reply/ACK HEP packets on un-established calls became swapped. This patch aims to address the issue. Related to #3255 2024-05-08 vladpaiu * [15537c25d] : Merge branch 'OpenSIPS:master' into sip2json 2024-05-08 Vlad Paiu * [67f890117] : Move implementation to sipmsgops 2024-05-08 Bogdan-Andrei Iancu * [07e4febb3] : [proto_hep] avoid hard dependency to `tls_mgm` Load the tls_mgm module ONLY if a TLS HEP socket is defined 2024-05-07 Liviu Chircu * [9c27ae414] : Revert "Optimize str_strstr()" Partial revert of commit 418922f1452b5637efa Reason: premature optimization :) new implementation was actually slower 2024-05-07 Liviu Chircu * [486e96118] : parser: Reuse add_last() macro when possible 2024-05-07 Liviu Chircu * [418922f14] : Optimize str_strstr(); Add some basic tests 2024-05-07 Liviu Chircu * [7a9912602] : mid_registrar: Improve robustness vs. bad traffic in mode 2 In case the main registrar returns extra contacts, make sure to correctly match the mid-registrar's *single* contact within the list, then strip all Contacts from the 200 OK, effectively fixing it. Thanks go to Slava Bendersky for reporting and helping troubleshoot. 2024-05-07 Liviu Chircu * [5e7be5626] : Merge branch 'pr_ct_refresh_event' of https://github.com/sippy/opensips into sippy-pr_ct_refresh_event 2024-05-07 Bogdan-Andrei Iancu * [ca98f5778] : [uac_registrant] added new reg_force_register MI command to force the (re-)registration of a record (before its normal timeout/retry interval) 2024-05-07 Bogdan-Andrei Iancu * [da52437b0] : [uac_registrant] add `failure_retry_interval` to docs Completes #3270 Related to 570c853beb2b8fa24f65cf29d81917833d45acf 2024-05-07 Bogdan-Andrei Iancu * [46db9d93a] : [uac_registrant] tune the calculation of the timeout in error cases Use the "expires" if the "failure_retry_interval" is not set Completes #3270 Related to 570c853beb2b8fa24f65cf29d81917833d45acf8 2024-05-07 Bogdan Andrei IANCU * [570c853be] : Merge pull request #3270 from jes/jes/failure-retry-interval uac_registrant: add "failure_retry_interval" modparam 2024-05-07 Bogdan Andrei IANCU * [7ea63f394] : Merge pull request #3384 from NormB/NormB-patch-2 Update notify.c to reduce noisy logs 2024-05-07 Răzvan Crainea * [34520687b] : Merge pull request #3310 from OpenSIPS/prometheus_custom_route Add support for publishing custom prometheus data ( not stat driven ) 2024-05-05 OpenSIPS * [ca319630e] : Rebuild documentation 2024-05-02 Vlad Paiu * [cf5048535] : Add script route ref support 2024-05-02 Norm Brandinger * [6f6bb1af4] : Update notify.c to reduce noisy logs 2024-05-02 Razvan Crainea * [dd9c5144a] : auth_aka: make auth-int defaut qop 2024-05-02 Liviu Chircu * [ea93e4350] : freeswitch: Fix off-by-one comparison bug; Add safety checks Many thanks to Five9 (https://www.five9.com) for reporting this issue! 2024-05-02 Razvan Crainea * [99ea7e857] : tracer: proper detection of dummy messages Complete commit 6fcfc70 2024-05-02 Razvan Crainea * [e3eb2e153] : parser: log_event_level_filter should be signed int This allow setting the filter to more severe levels, i.e. ERROR and upper 2024-05-02 Liviu Chircu * [7e4213298] : Exclude "snmpstats" from multi-arch build It seems LTO is not possible with clang on the below arch, since LLVMgold.so is not available, yet snmpstat's `net-snmp-config` program includes the -ffat-lto-objects CFLAGS, which activates LTO. build_multiarch (clang-arm64-qemu-cross, ubuntu-22.04) /usr/bin/ld: /usr/lib/llvm-18/bin/../lib/LLVMgold.so: error loading plugin: /usr/lib/llvm-18/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation) 2024-05-01 Liviu Chircu * [251078369] : Fix various ARM32 time_t warnings (Ubuntu 22.04) 2024-05-01 Liviu Chircu * [52f21088b] : usrloc: Fix a data packing bug 2024-05-01 Liviu Chircu * [077072d9a] : snmpstats: Fix clang warnings on ARM32/QEMU/Ubuntu-22.04 clang: warning: argument unused during compilation: '-fno-stack-clash-protection' [-Wunused-command-line-argument] 2024-05-01 Liviu Chircu * [4250ccd78] : python build: Ensure "setuptools" is available 2024-04-30 Liviu Chircu * [61ba2cc98] : b2b_entities: Fix ARM32 time_t warnings (Ubuntu 22.04) 2024-04-30 Liviu Chircu * [1e0ea18a6] : github/workflows: Avoid fancy bash syntax 2024-04-30 Liviu Chircu * [a09e75e86] : github/workflows: Fix bash multi-line error 2024-04-30 Razvan Crainea * [1ad6753da] : github/workflows: continue on error on job 2024-04-30 Razvan Crainea * [567652f39] : github/workflows: continue on fail to notify 2024-04-30 Razvan Crainea * [6daabe7d0] : github/workflows: aggregate multiarch and unittests 2024-04-30 Razvan Crainea * [39fdc9833] : Reapply "github/workflows: don't fail fast - allow other platforms to run" This reverts commit ecbb1e2de9f6703e8654228a3ed32fe63b8535e9. 2024-04-30 Razvan Crainea * [d82ab0cd8] : github/workflows: aggregate status of matrix jobs 2024-04-30 Liviu Chircu * [3ab5a1cfb] : github/workflows: Move auto-detection post apt-update 2024-04-30 Liviu Chircu * [63c9eb230] : github/workflows: Auto-detect available libodbc packages 2024-04-30 Liviu Chircu * [41a20d6de] : Complete b8fdce475d (ARM32 warnings) 2024-04-30 Liviu Chircu * [761b844e6] : github/workflows: Add exception for multi-arch Ubuntu 22.04 2024-04-30 Bogdan-Andrei Iancu * [9a2fc7ffa] : [dialog] relaxed the name of the dialog profiles '-' and '_' are allowed (besides alphanum) in dialog profiles 2024-04-30 Liviu Chircu * [ecbb1e2de] : Revert "github/workflows: don't fail fast - allow other platforms to run" This reverts commit 70b805ed21929cdce904e4b9ebe23d03a21c2bb5. 2024-04-30 Liviu Chircu * [44c995aae] : Fix package typo 2024-04-30 Liviu Chircu * [d7fcd9043] : Attempt #2 to fix GitHub Workflow Previous commit fixed 22.04 but broke 20.04, so this commit should make both work. 2024-04-30 Liviu Chircu * [b8fdce475] : Fix a bunch of ARM32 printf() warnings (Ubuntu 22.04) 2024-04-30 Liviu Chircu * [dbf794dcc] : Attempt to fix GitHub Workflow On newer 22.04 Ubuntu, it seems the ODBC package has been bumped to "2". Related commits: - fa652e8 - 6bfd7d2 2024-04-30 Liviu Chircu * [b38b06aa7] : Fix the E_CORE_SHM_THRESHOLD event For some time now, this event has not been functional, due to init_shm_mallocs() being called *before* parsing the opensips.cfg, leading to un-initialized event holders and a quick-exit at runtime, including times when the event actually needs to be raised. Credits to Bogdan Iancu for reporting this issue! 2024-04-30 Bogdan-Andrei Iancu * [2b0c809a8] : [sql_cacher] fix README format (on the bigint_to_str param) 2024-04-30 Bogdan Andrei IANCU * [320ef54c5] : Merge pull request #3381 from ovidiusas/master sql_cacher: adding support for returning bigint in string format 2024-04-29 Liviu Chircu * [812a3962a] : Merge pull request #3382 from NormB/patch-1 Correct syntax 2024-04-29 Norm Brandinger * [163f2fe3e] : Correct syntax 2024-04-29 Ovidiu Sas * [43673c282] : sql_cacher: README: document bigint_to_str module parameter 2024-04-29 Ovidiu Sas * [b70249a94] : sql_cacher: README: remove trailling empty spaces 2024-04-29 Ovidiu Sas * [15f522938] : sql_cacher: new module parameter: bigint_to_str to control bigint output - allow bigint to be returned as string 2024-04-29 Bogdan Andrei IANCU * [faeb93261] : Merge pull request #3376 from ovidiusas/master sqlops: adding support for returning bigint in string format 2024-04-29 Bogdan-Andrei Iancu * [92b0dcfbd] : [pua] properly insert sh_tag into pua table Credits go to @NormB Fixes #3377 2024-04-29 Ovidiu Sas * [304729cfc] : sqlops: README: document bigint_to_str module parameter 2024-04-29 Ovidiu Sas * [8f680ac33] : sqlops: new module parameter: bigint_to_str to control bigint output - allow bigint to be returned as string 2024-04-29 Ovidiu Sas * [43dfdc8f6] : core: add bigint2str helper function - convert bigint to string 2024-04-28 OpenSIPS * [65fdb1af1] : Rebuild documentation 2024-04-26 Razvan Crainea * [999b8ac5d] : event_route: fix int interpretation in $param Treat the integer as signed when building the $param value Many thanks to Norm Brandinger (@NormB on GitHub) for reporting it in #3367 2024-04-26 Bogdan-Andrei Iancu * [6af903981] : [presence] fix evaluating shtag when cluster disabled Avoid evaluating sharing tags when the clustering support in presence module is disabled. Related to #3359 2024-04-26 Bogdan Andrei IANCU * [7930e8541] : Merge pull request #3371 from ovidiusas/master db/schema: fix dbtext dispatcher definition 2024-04-25 Liviu Chircu * [a86b7e2cd] : auth_aaa: Fix bad Digest-Qop AVP name with libfreeDiameter RADIUS and Diameter have different names for the QoP AVP, as they use "Digest-Qop" and "Digest-QoP", respectively. This patch fixes an issue where the libfreeDiameter cannot locate "Digest-Qop" in its dict. Credits to Ionuț Boangiu (ITSysCom) for reporting this issue! 2024-04-25 Razvan Crainea * [2a7c0c69a] : cfg.y: fix socket specification without port Complete b1ae0ec4f55873cd4f05cf0ae65182fced126e47 Close #3365 2024-04-25 Ovidiu Sas * [b8d57e003] : db/schema: fix dbtext dispatcher definition - allow null/empty values for priority and description fields 2024-04-25 Bogdan-Andrei Iancu * [a80ff8665] : [presence_callinfo] fix non-optional params for sca_set_xxx_line() funcs The line parameter is supposed to be optional Reported by @NormB Closes #3361 2024-04-25 Bogdan-Andrei Iancu * [b7a804071] : [registrar] fix mem bug and mem leak in UA-regexp filter The compiled RE (for UA) is to be freed by the fixup-free function and not by the script function. Reported by @feiyingcheung Closes #3356 2024-04-25 Bogdan-Andrei Iancu * [887f17b6e] : [registrar] removed old obsolete fixup function 2024-04-25 Bogdan-Andrei Iancu * [7fce69b44] : [registrar] address issues on #3318 (bflag filtering for remove()) On top of 43726f8c1a5d70be3346433e95c214e679b4342a * be clear the param holds a single Branch Flag * use fixup to resolve the flag only once (suggested by @liviuchircu) 2024-04-25 Bogdan Andrei IANCU * [43726f8c1] : Merge pull request #3318 from vladpaiu/usrloc_remove_branch_filtering Add remove() filtering by bflags 2024-04-24 Bogdan-Andrei Iancu * [6a847364b] : [proto_ws] fix mem leak when hdr parsing fails Even if the hdr parsing failed (due to a bogus hdr), you still have to free whatever hdrs were already parsed ;) Reported by @11qeq11 Closes #3353 2024-04-24 Bogdan-Andrei Iancu * [09a7eafd1] : [sql_cacher] fix computing the useful value size ...as the initial value may be overestimated if DOUBLE's are present Credits for reporting go to @ovidiusas 2024-04-23 Razvan Crainea * [6fcfc7060] : tracer: do not trace dummy messages If a message is dummy, it should not be traced, as it is never actually sent to any participants. This fixes the errors dumped by the module when trying to trace a dummy (such as a locally generated BYE due to timeout) message that does not have a bind socket, erroneously logging `CRITICAL:tracer:proto2str: unsupported proto 0` 2024-04-22 Bogdan-Andrei Iancu * [8b96b7032] : [presence] fix federation with local HA combination Added a sharing tag to control which node (from the HA combination) is active in the federated cluster. See all the details here https://github.com/OpenSIPS/opensips/issues/2960 (this is fully backward compatible) Closes #2960 2024-04-21 OpenSIPS * [9de45e002] : Rebuild documentation 2024-04-19 Bogdan Andrei IANCU * [0b9916c1b] : Merge pull request #3364 from ovidiusas/master tracer: set proper IP instead of FQDN for locally generated requests and outgoing replies 2024-04-18 Bogdan-Andrei Iancu * [6beb906e5] : [pua/presence_reginfo] more in doc formating 2024-04-18 Bogdan-Andrei Iancu * [58c88e7cb] : [presence_reginfo] fixed docs syntax 2024-04-18 Bogdan-Andrei Iancu * [0b03b771d] : [pua_reginfo] Fix docs syntax 2024-04-18 Bogdan-Andrei Iancu * [098835cdc] : Added presence_reginfo & pua_reginfo modules to the list 2024-04-18 Liviu Chircu * [7eee4aa1b] : pua_reginfo: Avoid clearing LIBS= flags during build This breaks CI by clearing "-flto", which leads to unrecognizable ".o" files which the linker assumes to be bytecode (hint, hint: they are not). Thanks to Răzvan Crainea for helping troubleshoot this! 2024-04-18 Razvan Crainea * [70b805ed2] : github/workflows: don't fail fast - allow other platforms to run 2024-04-18 Bogdan Andrei IANCU * [0d1a6d08a] : Merge pull request #3333 from carstenbock/presence_add_pua_reginfo Presence add pua reginfo 2024-04-18 Bogdan Andrei IANCU * [8ef1bf449] : Merge pull request #3332 from carstenbock/presence_add_reginfo_module Presence: add "reginfo" module 2024-04-18 Bogdan-Andrei Iancu * [ecb954378] : Merge branch 'carstenbock-presence_add_reginfo' 2024-04-18 Bogdan-Andrei Iancu * [fbf5e0bd6] : Fix identation 2024-04-18 Bogdan-Andrei Iancu * [e3b2c34fb] : [presence] refine uandd_to_uri() changes Be sure we have at least one URI part (domain or user). Make more clear the TEL versus SIP handling 2024-04-18 Bogdan-Andrei Iancu * [5ca41364b] : Revert "tm: If "reply_to_via" is set, send reply to IP/Port indicated in "Via"" This reverts commit 7d9227b732fce6216f0eb7c0a371c4430a259e2b. 2024-04-18 Bogdan-Andrei Iancu * [8df20faf0] : Revert "sl: If "reply_to_via" is set, send reply to IP/Port indicated in "Via"" This reverts commit 68f55e1d3a3084f09f1a8d1ec896ed74a35f8e41. 2024-04-18 Bogdan-Andrei Iancu * [a33b204d8] : Revert "[Core] Add core-option "reply_to_via"" This reverts commit d843fa68a0a0f1aa64b3127c52e6309435dc9aae. 2024-04-18 OpenSIPS * [6df118b12] : Rebuild documentation 2024-04-18 Shanee Vanstone * [1e9d124ec] : [clusterer] Added enable_rerouting parameter When "enable_rerouting" is set to 0, packet will never be rerouted via other nodes. This is useful for situations where network issues are unlikely (LAN) or when only two nodes are present. 2024-04-18 Bogdan-Andrei Iancu * [fa61e9b64] : [drouting] fixed weight based selection if the last element has weight 1, it will never be selected. This was instroduced with 48c051fc16f4d83bf176d1eefe1df642882b6b88. The fix is to actually follow the initial PR approach, which was correct. My attempt to improve the original PR actually broke stuff there :( 2024-04-18 Razvan Crainea * [ee3af6bcf] : cfg: provide support for port range in sockets 2024-04-18 Razvan Crainea * [9c394e56a] : event_rabbitmq: add timeout support Add RPC timeout support for any command sent to the rabbitmq server 2024-04-18 Razvan Crainea * [73c6e9279] : rabbitmq: don't block indefinitely on connect ported from fec5b51 2024-04-18 Razvan Crainea * [b530aa607] : event_rabbitmq: add timeout support Add RPC timeout support for any command sent to the rabbitmq server 2024-04-18 Liviu Chircu * [273e6043f] : registrar docs: Clarify that save/lookup flags are CSVs 2024-04-18 Liviu Chircu * [a6c0bf35f] : http2d: Skip on Unit Tests build and DEB/RPM builds 2024-04-18 Liviu Chircu * [2cddb6ebd] : http2d: Add to "exclude_modules" 2024-04-18 Liviu Chircu * [b9762b918] : http2d: Convert fprintf() logs; Measure IPC wait time 2024-04-18 Liviu Chircu * [225fd1d5b] : http2d: Convert errx/warnx to LM_ functions 2024-04-18 Liviu Chircu * [1ef17b2c2] : http2d: Adjust indentation & coding style 2024-04-18 Liviu Chircu * [22de14d13] : http2d: Add documentation, contributors; Adjust modparams 2024-04-18 Liviu Chircu * [b54a6d89d] : http2d: Add support for HTTP/2 responses in opensips.cfg ... via the new http2_send_response(code, [hdrs], [body]) function. 2024-04-18 Liviu Chircu * [53a126404] : http2d: Collect headers & body using cbs; Raise event 2024-04-18 Liviu Chircu * [4e69c8c34] : http2d: Initial version New "http2d" module, providing an RFC 7540/9113 HTTP/2 server implementation, based on "nghttp2" library (https://nghttp2.org/). 2024-04-18 OpenSIPS * [dc0d6584d] : Rebuild documentation 2024-04-18 Razvan Crainea * [ed18d57e2] : stir_shaken: return -2 if ppt Identity header is not found 2024-04-18 Razvan Crainea * [b5968bf83] : aaa_diameter: remove log Thank you Liviu Chircu for spotting it :) 2024-04-18 Razvan Crainea * [144cabdb3] : aka: add contributors file 2024-04-18 Bogdan-Andrei Iancu * [c25ffda74] : [stir_shaken] fix using the right Identity hdr... Iterate all present Identity hdrs and pick the one with passport type "shaken". This allows the usage of Identity hdrs for both Stir-Shaken and Rich Call Data 2024-04-18 Razvan Crainea * [b0256505a] : aka_av_diameter: fix uninitilized variable 2024-04-18 Razvan Crainea * [502d894b8] : aka_av_diameter: do not fail for more AVs 2024-04-18 Razvan Crainea * [628c056ee] : auth_aka: do not wait for more AVs than needed 2024-04-18 Liviu Chircu * [36157501d] : aaa_diameter: Fix locking issues when sending requests - avoid READ ops on the @msg pointer, after it's queued for sending (subject to race condition with the Diameter Peer process, which can free the memory before we read it) - lock the "reply_cond" variable *before* queueing the msg for sending (avoids race condition where the reply signal arrives *before* we even call pthread_cond_timedwait()) - rename "req" to "msg", as _dm_send_message() also originates Answers - normalize return code 1 (req sent, ignoring reply) to 0 (success) 2024-04-18 Razvan Crainea * [5ac5e301e] : auth_aka: drop unused function 2024-04-18 Razvan Crainea * [f64592ef4] : auth_aka: fix uninitilized variable 2024-04-18 Razvan Crainea * [f9d38d1ed] : auth_aka: properly manage AV timestamps Properly store the timestamps when the AV is created, and also store the value in case the AV is not used and it needs to be reverted. 2024-04-18 Razvan Crainea * [6f4fd4ff2] : aka_av_diameter: fix AAA dependency to aaa_diameter 2024-04-18 Razvan Crainea * [cf03b0201] : auth_aka: release identity when there are no more AVs 2024-04-18 Razvan Crainea * [1effb0ffb] : auth_aka: add authentication vectors expire 2024-04-18 Razvan Crainea * [d2fce6a52] : aka_av_diameter: add new module 2024-04-18 Razvan Crainea * [663e5193f] : aaa_diameter: add parameter to reply callback 2024-04-18 Razvan Crainea * [079a1dc82] : auth_aka: prevent ref leaking during timeout 2024-04-18 Razvan Crainea * [f79497c0e] : auth_aka: add support for marking an AV as failure 2024-04-18 Razvan Crainea * [e4b02414d] : aaa_diameter: provide internal API for diameter commands 2024-04-18 Razvan Crainea * [c526ee3f9] : auth_aka: fix default QOP resolve 2024-04-18 Razvan Crainea * [764b5baa3] : auth_aka: provide API for AV management 2024-04-18 Razvan Crainea * [f7fb3c8bc] : auth_aka: fix algmask filtering 2024-04-18 Razvan Crainea * [78cbbd2f4] : aaa_diameter: properly pass reply return code 2024-04-18 Razvan Crainea * [ac6eed586] : aaa_diameter: fix locking on transactions hash 2024-04-18 Razvan Crainea * [290700204] : auth_aka: make count per algorithm, rather than for all 2024-04-18 Razvan Crainea * [aaa49accb] : auth_aka: add support for timing out async queries 2024-04-18 Razvan Crainea * [d9ef79d53] : auth_aka: add new AKA auth module 2024-04-18 Razvan Crainea * [18ca2935a] : lib: add pthread cond implementation 2024-04-18 Razvan Crainea * [dcc6bf063] : digest_auth: add functions for AKA digest 2024-04-18 Razvan Crainea * [de16dda94] : digest_auth: name parameters in headers Avoid compiler warnings 2024-04-18 Razvan Crainea * [d5b8122f7] : ut: add hex2string decoding 2024-04-18 Razvan Crainea * [cf1753005] : csv: add support for printing a csv_record 2024-04-18 Razvan Crainea * [bc6db7a68] : str_list: provie support for adding str to list 2024-04-18 Razvan Crainea * [24e26ca39] : digest: print algorithm value 2024-04-18 Razvan Crainea * [639a4f18a] : digest: add auts parameter parsing 2024-04-18 Razvan Crainea * [46355f367] : auth: make qop parameter build available 2024-04-18 Razvan Crainea * [ff74448d5] : auth: expose send_resp function in API 2024-04-18 Razvan Crainea * [523568073] : auth: allow pre_auth to skip aditional checks 2024-04-18 Razvan Crainea * [4cb787cf0] : digest: add AKAv1 and AKAv2 parsers 2024-04-18 Razvan Crainea * [78bdec9eb] : auth: make fixup_qop reusable 2024-04-18 Bogdan-Andrei Iancu * [6bf4b7fca] : [db] fix wrong size for mangled_from/to_uri columns in dialog table They are URIs, so let's use the URI len, not USER len :) 2024-04-18 Razvan Crainea * [6089b74f7] : rtp_relay: do not check for pending when late Many thanks to Voxtronic for spotting this issue! 2024-04-18 OpenSIPS * [58759feaf] : Rebuild documentation 2024-04-18 Liviu Chircu * [63de77b9b] : Fix several mod_destroy() prototypes 2024-04-18 Liviu Chircu * [540944236] : Contributors: Provision recent module renames 2024-04-18 Bogdan-Andrei Iancu * [d79c4635c] : [sqlops] improve the prepared statements support II Use the new DB_CAP_PREPARED_STMT capability to test if the backend support statements and build the query ID only if so. 2024-04-18 Bogdan-Andrei Iancu * [6b2dbbc31] : [db] added new DB_CAP_PREPARED_STMT capability to identify the db backends able to provide prepared statements. DB_MYSQL is for now the only condidate 2024-04-18 Bogdan-Andrei Iancu * [183b41d90] : [sqlops] improve prepare statements support Log warning when the buffer for building query ID is not large enaugh; Also point to the modparam to adjust the buffer size For "select", take the "order by" col into consideration too, when building the query ID 2024-04-18 Bogdan-Andrei Iancu * [13cf206bc] : [sqlops] migrate name from dbops to sqlops 2024-04-18 Bogdan-Andrei Iancu * [935b70b64] : [sqlops] migrate DB stuff from DBops to SQLops 2024-04-18 Bogdan-Andrei Iancu * [6bb1a90f6] : [sqlops] renaming from DBops to SQLops After all the module does only SQL ops, no noSQL ones 2024-04-18 Bogdan-Andrei Iancu * [a478acdae] : [dbops] renamed to sqlops 2024-04-18 Bogdan-Andrei Iancu * [76c3d03e3] : [dbops] fixed bogus condition on JSON handling Reported by CI 2024-04-18 Bogdan-Andrei Iancu * [b9cc1687e] : [dbops] fix +1 overreading during memcmp Reported by CI 2024-04-18 Bogdan-Andrei Iancu * [452a33bcf] : [dbops] added prepared statements support for the newly added db_select|update|insert|replace|delete() functions 2024-04-18 Bogdan-Andrei Iancu * [005985e8c] : [dbops] fix bad usage of non-static variable Use the cols pointer (which is static) and not the str_cols which are valid only during a mem realloc 2024-04-18 Bogdan-Andrei Iancu * [a5e487b77] : [dbops] swap cols and table as args for INSERT and REPLACE.. ...just to follow order int the SQL syntax :) 2024-04-18 Bogdan-Andrei Iancu * [4bdd0c91b] : [dbops] docs update with the latest functions 2024-04-18 Bogdan-Andrei Iancu * [497ad60ff] : [dbops] Add SQL structured query functions These are functions performing structured (not raw) queries via the internal DB SQL API. They provide full standard INSERT/UPDATE/SELECT/REPLACE/DELETE support. 2024-04-18 Bogdan-Andrei Iancu * [853906d91] : [dbops] remove obsolete flags from docs 2024-04-18 OpenSIPS * [9e806b091] : Rebuild documentation 2024-04-18 Razvan Crainea * [db0e3dcf1] : rtpengine: proper count of the exported processes This should fix a memory corruption generated by reloading a process that was not initially counted. Moreover, an overflow is no longer possible, as the commit checks on it and triggers a BUG in case it happens 2024-04-18 Razvan Crainea * [52f3cdf37] : dialog: call DLGCB_PROCESS_VARS under dlg lock Avoid taking the var logs, as this might lead to a deadlock if one of the callbacks are setting the variable. Credits go to Norman Brandinger (@NormB on GitHub) for reporting it! 2024-04-18 Liviu Chircu * [99d853b57] : rest_client: Fix RHEL 7.9 build regression in commit 7e85fddb6 RHEL 7.9 is using libcurl 7.29 (from 11 years ago), so the CURLINFO_CONNECT_TIME_T easyinfo option is not available. So let's use the CURLINFO_CONNECT_TIME info instead, which returns the exact same data (i.e. the `data->progress.t_connect` handle info), but divided as (double)seconds instead of being returned as (long)useconds. Credits to Răzvan Crainea for reporting this issue! 2024-04-15 Razvan Crainea * [b7f471f7b] : tracer: avoid crash in case bind_address is not present Introduced in a13e034 2024-04-14 OpenSIPS * [38a848a5f] : Rebuild documentation 2024-04-12 Ovidiu Sas * [2f7973a94] : tracer: set proper IP instead of FQDN for outgoing replies 2024-04-11 Ovidiu Sas * [433218a22] : tracer: set proper IP instead of FQDN for locally generated requests 2024-04-11 Bogdan-Andrei Iancu * [744874732] : Removed the useless FL_FORCE_ACTIVE msg flag 2024-04-11 Bogdan-Andrei Iancu * [1ab78f836] : [core] adds back the ability to reply to VIA (and not to network src) This is a rework of #3327 (credits go to @carstenbock). Even more, we merged: * force_rport() * this new reply_to_via PR * add_local_rport() * force_tcp_alias() as a single VIA related function: set_via_handling("force-rport|add-local-rport|reply-to-via|force-tcp-alias") Closes #3327 2024-04-11 Bogdan Andrei IANCU * [90891064e] : Merge pull request #3352 from ovidiusas/master db_text: new parameter: buffer_size 2024-04-10 Liviu Chircu * [0f6b4116b] : Merge pull request #3328 from carstenbock/usrloc_kv_store Usrloc kv store 2024-04-10 Liviu Chircu * [c84110403] : usrloc: Small improvements to (add/del/get)_key() * fix list markup in docbook XML files; remove whitespace * add_key(): avoid returning success on OOM * release locks before any logging * normalize coding style with rest of the file 2024-04-10 Carsten Bock * [2e485d51b] : usrloc: Expose functions to store/retrieve/delete values from the Key/Value-Store 2024-04-09 Liviu Chircu * [1a50d6647] : usrloc: Avoid firing DELETE and EXPIRE for same ct This patch fixes a usrloc callbacks API issue where both the UL_CONTACT_DELETE and UL_CONTACT_EXPIRE events would often be fired for the same contact, when the "write-back" SQL mode is in use. The following modules should notice improved behavior: mid_registrar, pua_bla, pua_usrloc, snmpstats 2024-03-31 OpenSIPS * [03f3f0c7f] : Rebuild documentation 2024-03-29 Liviu Chircu * [7428704fd] : Merge pull request #3341 from Ellipsis753/master [clusterer] Added enable_rerouting parameter 2024-03-29 Bogdan-Andrei Iancu * [cdd84307a] : [drouting] fixed weight based selection if the last element has weight 1, it will never be selected. This was instroduced with 48c051fc16f4d83bf176d1eefe1df642882b6b88. The fix is to actually follow the initial PR approach, which was correct. My attempt to improve the original PR actually broke stuff there :( 2024-03-29 Razvan Crainea * [b1ae0ec4f] : cfg: provide support for port range in sockets 2024-03-29 Ovidiu Sas * [3d880e0d9] : db_text: new parameter: buffer_size 2024-03-28 Razvan Crainea * [4b23a80bd] : event_rabbitmq: add timeout support Add RPC timeout support for any command sent to the rabbitmq server 2024-03-28 Razvan Crainea * [a889ac915] : rabbitmq: don't block indefinitely on connect ported from fec5b51 2024-03-28 Razvan Crainea * [16fb12e06] : event_rabbitmq: add timeout support Add RPC timeout support for any command sent to the rabbitmq server 2024-03-27 Liviu Chircu * [9357cd438] : registrar docs: Clarify that save/lookup flags are CSVs 2024-03-27 Liviu Chircu * [37555f8c9] : http2d: Skip on Unit Tests build and DEB/RPM builds 2024-03-27 Liviu Chircu * [e939f09b6] : http2d: Add to "exclude_modules" 2024-03-27 Liviu Chircu * [72728e9c7] : http2d: Convert fprintf() logs; Measure IPC wait time 2024-03-27 Liviu Chircu * [61561c763] : http2d: Convert errx/warnx to LM_ functions 2024-03-27 Liviu Chircu * [2e57bb5b9] : http2d: Adjust indentation & coding style 2024-03-27 Liviu Chircu * [f2d17683c] : http2d: Add documentation, contributors; Adjust modparams 2024-03-27 Liviu Chircu * [accdcc7f3] : http2d: Add support for HTTP/2 responses in opensips.cfg ... via the new http2_send_response(code, [hdrs], [body]) function. 2024-03-27 Liviu Chircu * [e69f32504] : http2d: Collect headers & body using cbs; Raise event 2024-03-27 Liviu Chircu * [c740b1ab2] : http2d: Initial version New "http2d" module, providing an RFC 7540/9113 HTTP/2 server implementation, based on "nghttp2" library (https://nghttp2.org/). 2024-03-24 OpenSIPS * [51be49f03] : Rebuild documentation 2024-03-22 Razvan Crainea * [7f23d8d98] : stir_shaken: return -2 if ppt Identity header is not found 2024-03-22 Razvan Crainea * [760932ecd] : aaa_diameter: remove log Thank you Liviu Chircu for spotting it :) 2024-03-20 Razvan Crainea * [ad418ff74] : aka: add contributors file 2024-03-20 Bogdan-Andrei Iancu * [7b24df60b] : [stir_shaken] fix using the right Identity hdr... Iterate all present Identity hdrs and pick the one with passport type "shaken". This allows the usage of Identity hdrs for both Stir-Shaken and Rich Call Data 2024-03-19 Razvan Crainea * [ae77d5274] : aka_av_diameter: fix uninitilized variable 2024-03-19 Razvan Crainea * [f494aac3e] : aka_av_diameter: do not fail for more AVs 2024-03-19 Razvan Crainea * [9b87a8687] : auth_aka: do not wait for more AVs than needed 2024-03-19 Liviu Chircu * [00c4cbeaf] : aaa_diameter: Fix locking issues when sending requests - avoid READ ops on the @msg pointer, after it's queued for sending (subject to race condition with the Diameter Peer process, which can free the memory before we read it) - lock the "reply_cond" variable *before* queueing the msg for sending (avoids race condition where the reply signal arrives *before* we even call pthread_cond_timedwait()) - rename "req" to "msg", as _dm_send_message() also originates Answers - normalize return code 1 (req sent, ignoring reply) to 0 (success) 2024-03-19 Razvan Crainea * [9a06143c8] : auth_aka: drop unused function 2024-03-19 Razvan Crainea * [72a1b2536] : auth_aka: fix uninitilized variable 2024-03-19 Razvan Crainea * [794f3c042] : auth_aka: properly manage AV timestamps Properly store the timestamps when the AV is created, and also store the value in case the AV is not used and it needs to be reverted. 2024-03-19 Razvan Crainea * [8977732d5] : aka_av_diameter: fix AAA dependency to aaa_diameter 2024-03-19 Razvan Crainea * [04c685e87] : auth_aka: release identity when there are no more AVs 2024-03-19 Razvan Crainea * [a3f4b82dd] : auth_aka: add authentication vectors expire 2024-03-19 Razvan Crainea * [306e3bc7a] : aka_av_diameter: add new module 2024-03-19 Razvan Crainea * [3b1f6268e] : aaa_diameter: add parameter to reply callback 2024-03-19 Razvan Crainea * [ef83f8ce0] : auth_aka: prevent ref leaking during timeout 2024-03-19 Razvan Crainea * [623c37184] : auth_aka: add support for marking an AV as failure 2024-03-19 Razvan Crainea * [e8b354860] : aaa_diameter: provide internal API for diameter commands 2024-03-19 Razvan Crainea * [b97eb0ee9] : auth_aka: fix default QOP resolve 2024-03-19 Razvan Crainea * [d5ddb255b] : auth_aka: provide API for AV management 2024-03-19 Razvan Crainea * [5f21b6c14] : auth_aka: fix algmask filtering 2024-03-19 Razvan Crainea * [f190be114] : aaa_diameter: properly pass reply return code 2024-03-19 Razvan Crainea * [052b3a844] : aaa_diameter: fix locking on transactions hash 2024-03-19 Razvan Crainea * [cb658ab47] : auth_aka: make count per algorithm, rather than for all 2024-03-19 Razvan Crainea * [f3ded66f9] : auth_aka: add support for timing out async queries 2024-03-19 Razvan Crainea * [948989571] : auth_aka: add new AKA auth module 2024-03-19 Razvan Crainea * [096cea00f] : lib: add pthread cond implementation 2024-03-19 Razvan Crainea * [77773e572] : digest_auth: add functions for AKA digest 2024-03-19 Razvan Crainea * [ecac8076b] : digest_auth: name parameters in headers Avoid compiler warnings 2024-03-19 Razvan Crainea * [55a587de2] : ut: add hex2string decoding 2024-03-19 Razvan Crainea * [904078b02] : csv: add support for printing a csv_record 2024-03-19 Razvan Crainea * [1e94ebfca] : str_list: provie support for adding str to list 2024-03-19 Razvan Crainea * [5cfbf1a63] : digest: print algorithm value 2024-03-19 Razvan Crainea * [cea69f861] : digest: add auts parameter parsing 2024-03-19 Razvan Crainea * [dfb129d7f] : auth: make qop parameter build available 2024-03-19 Razvan Crainea * [0625eadfd] : auth: expose send_resp function in API 2024-03-19 Razvan Crainea * [c25af6c3b] : auth: allow pre_auth to skip aditional checks 2024-03-19 Razvan Crainea * [4786fc342] : digest: add AKAv1 and AKAv2 parsers 2024-03-19 Razvan Crainea * [4a6c26c0b] : auth: make fixup_qop reusable 2024-03-19 Bogdan-Andrei Iancu * [18e7d8dbb] : [db] fix wrong size for mangled_from/to_uri columns in dialog table They are URIs, so let's use the URI len, not USER len :) 2024-03-18 Razvan Crainea * [471dab313] : rtp_relay: do not check for pending when late Many thanks to Voxtronic for spotting this issue! 2024-03-17 OpenSIPS * [1dd05c946] : Rebuild documentation 2024-03-14 Liviu Chircu * [b067f8cc1] : Fix several mod_destroy() prototypes 2024-03-14 Shanee Vanstone * [017b57feb] : [clusterer] Added enable_rerouting parameter When "enable_rerouting" is set to 0, packet will never be rerouted via other nodes. This is useful for situations where network issues are unlikely (LAN) or when only two nodes are present. 2024-03-13 Liviu Chircu * [f277fa881] : Contributors: Provision recent module renames 2024-03-13 Bogdan-Andrei Iancu * [9ec3a02e3] : [sqlops] improve the prepared statements support II Use the new DB_CAP_PREPARED_STMT capability to test if the backend support statements and build the query ID only if so. 2024-03-13 Bogdan-Andrei Iancu * [de922d293] : [db] added new DB_CAP_PREPARED_STMT capability to identify the db backends able to provide prepared statements. DB_MYSQL is for now the only condidate 2024-03-13 Bogdan-Andrei Iancu * [0793d7187] : [sqlops] improve prepare statements support Log warning when the buffer for building query ID is not large enaugh; Also point to the modparam to adjust the buffer size For "select", take the "order by" col into consideration too, when building the query ID 2024-03-13 Bogdan-Andrei Iancu * [71fd974fe] : [sqlops] migrate name from dbops to sqlops 2024-03-13 Bogdan-Andrei Iancu * [5053c580b] : [sqlops] migrate DB stuff from DBops to SQLops 2024-03-13 Bogdan-Andrei Iancu * [5d0141497] : [sqlops] renaming from DBops to SQLops After all the module does only SQL ops, no noSQL ones 2024-03-13 Bogdan-Andrei Iancu * [3a7cc6a12] : [dbops] renamed to sqlops 2024-03-12 Bogdan-Andrei Iancu * [d15a7d8a8] : [dbops] fixed bogus condition on JSON handling Reported by CI 2024-03-12 Bogdan-Andrei Iancu * [254fa4b96] : [dbops] fix +1 overreading during memcmp Reported by CI 2024-03-12 Bogdan-Andrei Iancu * [5efa82fcd] : [dbops] added prepared statements support for the newly added db_select|update|insert|replace|delete() functions 2024-03-12 Bogdan-Andrei Iancu * [5b7d83d43] : [dbops] fix bad usage of non-static variable Use the cols pointer (which is static) and not the str_cols which are valid only during a mem realloc 2024-03-12 Bogdan-Andrei Iancu * [12b9ba4a8] : [dbops] swap cols and table as args for INSERT and REPLACE.. ...just to follow order int the SQL syntax :) 2024-03-12 Bogdan-Andrei Iancu * [518c4f94d] : [dbops] docs update with the latest functions 2024-03-12 Bogdan-Andrei Iancu * [80c2ee12d] : [dbops] Add SQL structured query functions These are functions performing structured (not raw) queries via the internal DB SQL API. They provide full standard INSERT/UPDATE/SELECT/REPLACE/DELETE support. 2024-03-12 Bogdan-Andrei Iancu * [4befbb436] : [dbops] remove obsolete flags from docs 2024-03-10 OpenSIPS * [64fd8c7e9] : Rebuild documentation 2024-03-08 Razvan Crainea * [831cdd5ac] : rtpengine: proper count of the exported processes This should fix a memory corruption generated by reloading a process that was not initially counted. Moreover, an overflow is no longer possible, as the commit checks on it and triggers a BUG in case it happens 2024-03-08 Razvan Crainea * [75810c554] : dialog: call DLGCB_PROCESS_VARS under dlg lock Avoid taking the var logs, as this might lead to a deadlock if one of the callbacks are setting the variable. Credits go to Norman Brandinger (@NormB on GitHub) for reporting it! 2024-03-08 Liviu Chircu * [975f5d13e] : rest_client: Fix RHEL 7.9 build regression in commit 7e85fddb6 RHEL 7.9 is using libcurl 7.29 (from 11 years ago), so the CURLINFO_CONNECT_TIME_T easyinfo option is not available. So let's use the CURLINFO_CONNECT_TIME info instead, which returns the exact same data (i.e. the `data->progress.t_connect` handle info), but divided as (double)seconds instead of being returned as (long)useconds. Credits to Răzvan Crainea for reporting this issue! 2024-03-08 Carsten Bock * [9f0de9efe] : pua: Add Events for reginfo 2024-03-08 Carsten Bock * [02d01aa2e] : pua_reginfo: New module for processing SUBSCRIBE for REG-Info messages, for remotely SUBSCRIBE regarding registration status and for sending PUBLISH upon updates. 2024-03-08 Carsten Bock * [d7af8575d] : presence_reginfo: Adding module for handling "reg" events with "presence" 2024-03-08 Carsten Bock * [bce04b3dc] : presence: Ensure, Event-List is initialized 2024-03-08 Carsten Bock * [30ce63958] : presence: Add support for "tel"-URIs 2024-03-08 Carsten Bock * [1fba62cc4] : parser: Add support for "reg" event 2024-03-08 carstenbock * [0626e2911] : Merge branch 'OpenSIPS:master' into master 2024-03-08 Răzvan Crainea * [fcfacae75] : Merge pull request #3330 from NormB/master Update rtp_relay_ctx.c to avoid segfault 2024-03-07 Norm Brandinger * [058e9bc5f] : Merge pull request #1 from NormB/rtp_relay_ctx Update rtp_relay_ctx.c to avoid segfault 2024-03-07 Norm Brandinger * [3e7113b0b] : Update rtp_relay_ctx.c to avoid segfault rtp_relay_release_tmp(ctmp, 0) is called before the variable ctmp has been allocated. 2024-03-07 Carsten Bock * [7d9227b73] : tm: If "reply_to_via" is set, send reply to IP/Port indicated in "Via" 2024-03-07 Carsten Bock * [68f55e1d3] : sl: If "reply_to_via" is set, send reply to IP/Port indicated in "Via" 2024-03-07 Carsten Bock * [d843fa68a] : [Core] Add core-option "reply_to_via" 2024-03-03 OpenSIPS * [48e0a4cde] : Rebuild documentation 2024-03-01 Bogdan-Andrei Iancu * [d5a7f5d49] : [dbops] add db_query_one() function that returns only the first row, may store in any kind of variable and set out var to NULL upon DB NULL 2024-03-01 Bogdan-Andrei Iancu * [257190486] : [db] regenerated schema with DBops instead of AVPops 2024-02-29 Liviu Chircu * [3d386f4e2] : aaa_diameter docs: Fix missing default 'answer_timeout' 2024-02-29 Liviu Chircu * [a82b8181f] : aaa_diameter: Add the possibility to set the 'E' (error) bit on replies 2024-02-29 Liviu Chircu * [37fec531e] : aaa_diameter docs: Add a notice regarding E_DM_REQUEST usage 2024-02-29 Liviu Chircu * [dd56be4db] : aaa_diameter: Reply to requests when E_DM_REQUEST not used At the end of the day, we are a Diameter peer, so we should also reply to requests even if the opensips.cfg script does not require any server-side support (e.g. perhaps it's only pushing Diameter requests). 2024-02-29 Bogdan-Andrei Iancu * [1083c0efd] : [dispatcher] move destination into PROBING if sending the probe failed Fixes 3285 2024-02-28 Razvan Crainea * [ff2923cc4] : proto_hep: clear context in case of error Thanks go to Jonathan Hulme from ConnexCS for reporting and providing valuable troubleshooting information 2024-02-28 Bogdan Andrei IANCU * [6d6fb2b74] : Merge pull request #3309 from bogdan-iancu/master [db_postgres] fix the SSL control over the "use_tls" parameter 2024-02-28 Bogdan Andrei IANCU * [c87a90351] : Merge pull request #3313 from vladpaiu/drouting_data_hashing Add generate_data_md5 param 2024-02-28 Vlad Paiu * [97a1c98ac] : Change param name to generate_data_checksum 2024-02-27 Liviu Chircu * [ca0006b10] : aaa_diameter: Code + filename improvements; Improve docs 2024-02-27 Liviu Chircu * [b43964f67] : aaa_diameter: Add management for "unreplied requests" This becomes necessary both when the event_route is not defined, as well as in various error cases, e.g. script writer omits to invoke dm_send_answer() or an internal error occurs before the answer is built. Finally, make sure to protect the requests list, since it is actually managed by multiple threads part of the "Diameter peer" OpenSIPS worker: * dm_update_unreplied_req() - called by the peer's Server Thread (i.e. "put a freshly received request on hold") * dm_remove_unreplied_req() - called by the peer's Main Thread (i.e. "the script writer just built a new reply, msg can be freed") 2024-02-27 Liviu Chircu * [223a7e32d] : aaa_diameter docs: Add new "Client" and "Server" sections 2024-02-27 Liviu Chircu * [4da1a3014] : aaa_diameter: Add docs for the new function / event Also, rename `dm_send_reply()` to `dm_send_answer()`, to better match the Diameter terminology. 2024-02-27 Bogdan Andrei IANCU * [b29396566] : Merge pull request #3316 from vladpaiu/cachedb_local_bulk_mi_fetch Add MI fetching of keys based on glob 2024-02-27 Bogdan-Andrei Iancu * [b65930612] : Merge branch 'ovidiusas-master' 2024-02-27 Bogdan-Andrei Iancu * [8ed21bf18] : [sql_cacher] be more consistent when calculating the size required by DOUBLE Keep all the "size" estimation inside get_cdb_val_size() 2024-02-27 Bogdan-Andrei Iancu * [063403bdd] : [avpops] remove old avpops module Replaced by dbops 2024-02-27 Liviu Chircu * [cdcc6ee77] : aaa_diameter: Add Diameter server support * add the E_DM_REQUEST event, for receiving arbitrary Diameter requests * add the dm_send_reply() function, in order to reply back to the sender 2024-02-27 Liviu Chircu * [a5515f2a4] : aaa_diameter: Fix some AVP typos; Add a few notices 2024-02-27 Bogdan-Andrei Iancu * [53983b13b] : [dbops] fixed names of script functions they were renamed from avp_db_query() to db_query() during module migration from avpops to dbops 2024-02-27 Bogdan-Andrei Iancu * [f6400d396] : [avpops] remove old avpops module Replaced by dbops 2024-02-26 Liviu Chircu * [06ffb7a7e] : aaa_diameter: Add Diameter server support * add the E_DM_REQUEST event, for receiving arbitrary Diameter requests * add the dm_send_reply() function, in order to reply back to the sender 2024-02-26 Liviu Chircu * [4da5b7317] : aaa_diameter: Fix some AVP typos; Add a few notices 2024-02-26 Ovidiu Sas * [a3d83c2ca] : sql_cacher: handle double as str (just live avp_db_query) 2024-02-26 Dudu Ben Moshe * [0a24c258b] : Add remove() filtering by bflags 2024-02-26 Vlad Paiu * [df24836d3] : Add MI fetching of keys based on glob 2024-02-26 Bogdan-Andrei Iancu * [4881b95e5] : [dbops] migrate name from avpops to dbops 2024-02-26 Bogdan-Andrei Iancu * [61dc79eb2] : [dbops] migrate name from avpops to dbops 2024-02-26 Bogdan-Andrei Iancu * [1378ab1c9] : [dbops] migrate name from avpops to dbops 2024-02-26 Bogdan-Andrei Iancu * [1185ccbd4] : [dbops] migrate name from avpops to dbops 2024-02-26 Bogdan-Andrei Iancu * [3e9a52ecd] : [avpops] renamed as DBops Also rename some params and script functions to align to the purpose of the module 2024-02-25 OpenSIPS * [861ec3879] : Rebuild documentation 2024-02-23 Bogdan Andrei IANCU * [be64db138] : Merge pull request #3306 from jes/getsockopt-warnings Getsockopt warnings 2024-02-23 Razvan Crainea * [4bf32ad2e] : dialog: do not try to replicate values if cluster not available Many thanks go to Rob Moore from Dubber for reporting this! 2024-02-23 Vlad Paiu * [ee6ff9527] : Add generate_data_md5 param 2024-02-23 Dudu Ben Moshe * [7a879ab8a] : Add sip2json pvar 2024-02-23 Dudu Ben Moshe * [c85cce33b] : Add support for publishing custom prometheus data ( not stat driven ) 2024-02-22 Razvan Crainea * [d0f238ca8] : msg_translator: avoid mem leak when via params are present Many thanks to Nick Altmann for spotting the issue and fixing it! 2024-02-22 Bogdan Andrei IANCU * [358afd073] : Merge pull request #3308 from ovidiusas/master core: consistent usage of int2str_buf 2024-02-22 Bogdan-Andrei Iancu * [75b6cc542] : [db_postgres] fix the SSL control over the "use_tls" parameter 2024-02-22 Razvan Crainea * [4bf072d63] : rtpengine: always provide flags for any subcommand 2024-02-22 Razvan Crainea * [364a459f2] : rtp_relay: proper cleanup of a copy context When a copy context was deleted, a dangling pointer would have remained in the session - this would lead to a crash, since it would access invalid memory. Thanks go to Rob Moore from Dubber for reporting this! 2024-02-21 Ovidiu Sas * [09d2fdc09] : core: fix old-style function definition error 2024-02-21 Ovidiu Sas * [efab99599] : core: consistent usage of int2str_buf 2024-02-21 James Stanley * [f241f98c1] : Warn about getsockopt() errors 2024-02-21 Liviu Chircu * [036d02961] : rest_client: Fix ARM32 compiler warning Apparently, `curl_off_t` is `long long` there, instead of just `long`. 2024-02-21 Liviu Chircu * [7e85fddb6] : rest_client: Improve cURL compatibility when using async() This patch aims to fix a regression in 1ecb32491f, breaking the "SUCCESS" async download test case. Mitigation as follows: * improved detection for the "Request Sent" state, before putting the download on async hold. It seems that whenever both the CURLINFO_CONNECT_TIME_T and CURLINFO_REQUEST_SIZE become available, the file descriptor can be safely polled on, awaiting the reply. Note: there is no official cURL library mechanism to detect this state. * make the async() statement timeout accessible to modules. This fixes a bug where a GET on a dead HTTP server would time out after `curl_timeout` seconds, instead of `async()` seconds (lower). Fixes #3286 2024-02-21 Razvan Crainea * [57b28d8f2] : dialog: do not replicate value if already received replicated 2024-02-20 Bogdan-Andrei Iancu * [fd19fbaf3] : [avpops] code cleanup after removing old script functions 2024-02-20 Bogdan-Andrei Iancu * [bcdffb9df] : [docs] replace old avp functions in docs 2024-02-20 Razvan Crainea * [cca6f15a2] : rtp_relay: handle NULL resetting the rtp_relay_ctx value Thanks go to Rob Moore from Dubber for reporting this! 2024-02-20 Razvan Crainea * [8c16de4c8] : b2b_entities: handle case where callback is not yet registered 2024-02-20 Razvan Crainea * [1bea6e19e] : siprec: handle replication case for late sessions When the call is answered by the SRS before the call is actually answered, the dialog callbacks were no loger registered. This commit aims to fix this situation. Depends on 0b19546f8ca66c24f9c795b691488ec65896578a 2024-02-20 Razvan Crainea * [107d83790] : dialog: replicate dialog values 2024-02-20 Razvan Crainea * [355a126b9] : dialog: unify replication return code 2024-02-20 Razvan Crainea * [4161b5232] : docs: drop is_avp_set from xml and m4 2024-02-18 OpenSIPS * [fadcd3803] : Rebuild documentation 2024-02-17 Bogdan-Andrei Iancu * [a981f0b3c] : fix typos and syntax errors Related to c33aea7b5ae291cb83ade9c163d56e027608d0a1 2024-02-17 Bogdan-Andrei Iancu * [83d693785] : [avpsops & cfgutils] move avp_suffle to cfgutils as suffle_avps() 2024-02-17 Bogdan-Andrei Iancu * [0972ad7bd] : [avpops] removed the old is_avp_set() function it can be replaced with NULL testing in script 2024-02-17 Bogdan-Andrei Iancu * [e84eb59ed] : [avpops] remove old avp_subst() function It can replaced with the more generic {re.subst} transformation 2024-02-17 Bogdan-Andrei Iancu * [04f42d958] : [avpops] remove old avp_delete() function can be replaced with: $avp(foo) = NULL; # delete latest avp $avp(foo) := NULL; # delete all avps 2024-02-17 Bogdan-Andrei Iancu * [ec96a3778] : [avpops] removed old avp_op() function its functionality may be achieved by scripting 2024-02-17 Bogdan-Andrei Iancu * [c52c9c782] : [avpops] removed avp_copy() old function its functinality may be achieved by scripting 2024-02-17 Bogdan-Andrei Iancu * [61a5e2bdc] : [avpops] remove old avp_check() and avp_pushto() functions their functionality can be achieved by simple scripting 2024-02-17 Bogdan-Andrei Iancu * [c33aea7b5] : [avpops] moved avp_print() in core 2024-02-14 Razvan Crainea * [fa3471e12] : siprec: register callbacks even though skip_failover_codes is not used 2024-02-13 Bogdan Andrei IANCU * [da20b2259] : Merge pull request #3262 from jes/jes/topology-hiding-fix topology_hiding: fix encoded Contact length calculation 2024-02-12 Liviu Chircu * [edf21b1b9] : Status/Report: Improve function prototype 2024-02-12 Liviu Chircu * [3e7231cff] : freeswitch: Several improvements to socket management * add exponential backoff behavior when reconnecting to a FreeSWITCH which is down (1/5/10/30/90 second retries, counting x20 each) * add monitoring for the ESL command activity of sockets. Specifically, the module now remembers the last ESL command and will reap sockets which both do not have event subscriptions and have not run an ESL command in the last 86400 seconds. * freeswitch_esl() will now return faster in case the connection is down (the lock might still be grabbed by the timer, reconnecting...), thus minimizing the risk of a service outage. * improved handling for connect error cases (fd management) 2024-02-12 Liviu Chircu * [01b5fdd55] : freeswitch: Add socket flags; Avoid re-learning user/pass for DB sockets While re-learning the user/pass for sockets learned through MI makes sense (same host/port), the same is not valid for DB-provisioned sockets. In that case, just update the table & reload. 2024-02-12 Liviu Chircu * [6e6c60bd6] : freeswitch: Avoid failed "unref" operations during mod init This fixes a bug where if a FreeSWITCH socket were defined in both modparam and DB, it would get a +2 ref instead of +1, thus after a DB removal + reload operation it would remain in a dangling state. Many thanks to Five9 (https://www.five9.com) for reporting this issue! 2024-02-12 Razvan Crainea * [93e90a5ac] : dialog: advertise dst_leg in callbacks This is particularly useful for in-dialog requests that come before the dialog is established, such as a PRACK - this patch makes sure that the correct leg is chosen by the topology hiding in such situations. 2024-02-11 OpenSIPS * [439bb9728] : Rebuild documentation 2024-02-09 Razvan Crainea * [4efc482fc] : rtp_relay: proper cleanup of a copy context When a copy context was deleted, a dangling pointer would have remained in the session - this would lead to a crash, since it would access invalid memory. Thanks go to Rob Moore from Dubber for reporting this! 2024-02-09 Razvan Crainea * [9600ae72d] : rtp_relay: clear established when sess is deleted This avoids crashes when ctx->established pointer remains dangling Many thanks to Voxtronic for spotting this issue! 2024-02-09 Razvan Crainea * [28ea0565c] : siprec: avoid double unref for failed transaction Many thanks to Voxtronic for reporting this! 2024-02-07 Ovidiu Sas * [1a38989d2] : mqueue: fix debug level for debug logs 2024-02-04 OpenSIPS * [5ff1df948] : Rebuild documentation 2024-02-02 Liviu Chircu * [dec380907] : b2b_logic: Fix a logical bug which could cause crashes ... in b2b_init_request(). Completes c84fe372c. Neither @e1 or @e2 can be NULL after the "if" guard, otherwise there is a good chance of a crash shortly afterwards. 2024-02-02 Bogdan-Andrei Iancu * [e5f0b5a2c] : [b2b_logic] fix bogus documented prototype for b2b_init_request 2024-02-01 Ovidiu Sas * [ac5810b87] : mqueue: new module 2024-01-31 Bogdan-Andrei Iancu * [9527f7b07] : [launch_darkly] skip it from github CI and deb/rpm builds 2024-01-31 Bogdan-Andrei Iancu * [55c0b2e7d] : Force "os_" prefix for all cJSON functions from OpenSIPS core This is needed to avoid any symbol colision with the CJSON public library - this library may end up linked by some OpenSIPS modules (like launch_darkly) and such conflict may raise when using such modules. 2024-01-31 Bogdan-Andrei Iancu * [5ffd3bb41] : Add new launch_darkly module This module implements support for the "Launch Darkly" feature management cloud. The module provide the conectivity to the cloud and the ability to query for feature flags. The development of this module was sponsored by Five9 https://www.five9.com/ 2024-01-30 Razvan Crainea * [b8bbf1440] : dialog: get ACK cseq from src leg, rather than dst 2024-01-29 Liviu Chircu * [f8205d1f2] : RADIUS/Diameter: Fix AVP type for Sip-From-Tag, Sip-To-Tag This patch fixes a copy/paste error in commit a2c6c62ba1. 2024-01-29 Razvan Crainea * [b9ebc83fe] : siprec: add from_uri and to_uri settings to $siprec 2024-01-28 OpenSIPS * [247ae6f63] : Rebuild documentation 2024-01-23 Bogdan-Andrei Iancu * [32539ef8b] : [sql_cacher] fix proper update on status/report upon quick exit Be sure the SR info is properly updated (on the reload result) even when doing a quick return upon no records loaded 2024-01-23 Bogdan Andrei IANCU * [3bef4afe6] : Merge pull request #3289 from purecloudlabs/hotfix/sql-cacher_load_entire_table_memory_leak sql_cacher: fix SQL result leak when insert_in_cachedb fails 2024-01-23 Bogdan-Andrei Iancu * [d3cc59ba6] : [sql_cacher] promote DBG to ERR to report failures Similar to 4ddb507f19bb48654a1dd1f279d4092b301d17f2 2024-01-23 Bogdan Andrei IANCU * [4ddb507f1] : Merge pull request #3288 from purecloudlabs/hotfix/sql_cacher_mi_reload_error_loglevel sql_cacher: MI/timer initiated table reload error logged on different log level 2024-01-23 Razvan Crainea * [8ff603fe1] : b2b_logic: provite delay for terminated bridge entity When a message is bridged in another call, a flag (`late_bye`) may be used to the `b2b_bridge_request` command to delay the BYE message until the new entity establishes the call. Worked sponsored by NG-Voice/Carsten Bock 2024-01-23 Bence Szigeti * [d373ab65f] : sql_cacher: fix SQL result leak when insert_in_cachedb fails 2024-01-23 Razvan Crainea * [ce9fccc7f] : b2b_logic: document adv_contact param for b2b_bridge_request Complete 726fca1523 2024-01-22 Bence Szigeti * [01442d4c2] : sql_cacher: MI/timer initiated table reload error logged on different log level 2024-01-21 OpenSIPS * [10b639672] : Rebuild documentation 2024-01-19 Bogdan-Andrei Iancu * [012587e22] : [presence_dfks] fix XML namespace URL 2024-01-17 Liviu Chircu * [1d6d2e4b5] : for-each statement: Fix iteration when context is used Make sure to interpret the variable's context, if any, e.g.: for ($var(ct) in $(ct[*])) xlog("300 Redirect Contact: $var(ct)\n"); 2024-01-16 Razvan Crainea * [1339b7acb] : rtp_relay: match reply leg by index, if tag not present 2024-01-16 Bogdan-Andrei Iancu * [1a11c03a3] : Fix printing all values of branch(subfield) The [*] range was printing all the time the URI subfield of the branches, instead of the requested one. 2024-01-15 Razvan Crainea * [224a3236c] : dialog: do not populate dst_leg on unmatched dlg Avoid chaning the dst_leg on unmatched dialogs, as this might lead to inconsistent states. A common pattern is to match a dialog in state 5, which would set a dst_leg, but then "invalidate" the dialog due to the bad state - proceeding to a next dialog would not set the dst_leg (as it was set by the previous match), leading to an invalid access in the second dialog. Credits go to NFON for reporting and providing valuable troubleshooting information 2024-01-14 OpenSIPS * [195a186e5] : Rebuild documentation 2024-01-11 Liviu Chircu * [337791836] : RW locking: Add a pair of re-entrant functions for readers In some cases, the same lock_start_read() function could be reached multiple times in a nested fashion, e.g. after running a callback which returns the control flow to the same module through an API call done by the module which installed the callback. 2024-01-11 Liviu Chircu * [fd894705f] : tracer: Fix mixing between "src_ip" and "dst_ip" Completes a13e03420c Credits to James Seer for reporting this issue! 2024-01-11 Bogdan-Andrei Iancu * [f3657e486] : [presence_dfks] updated link to DFKS specs 2024-01-09 Liviu Chircu * [b7c4f2a3b] : transformations: Fix edge-cases with {param.value} and {uri.param} For inputs containing only the parameter part, these transformations would return a bogus {NULL, 0} value (flagged as PV_VAL_STR), which cannot be used in assignments or conditional checks: Credits to Bogdan-Andrei Iancu for finding this issue! 2024-01-08 Liviu Chircu * [0fb0094b2] : nathelper: Improve nat_uac_test() docs The function involves neither trying nor guessing, it's quite precise. 2024-01-07 OpenSIPS * [52f2be167] : Rebuild documentation 2024-01-05 Răzvan Crainea * [953d138c0] : Merge pull request #3277 from smititelu/master dialog: add one more param to dlg_send_sequential mi function 2024-01-05 Stefan-Cristian Mititelu * [48bbd3150] : dialog: add one more param to dlg_send_sequential mi function 2024-01-04 Liviu Chircu * [1d712c17c] : Merge pull request #3275 from lemenkov/guard_versiontype Ensure VERSIONTYPE is always defined 2024-01-04 Razvan Crainea * [aae8b39b5] : rtp_relay: fix broken ref taken with lock This caused a deadlock when DLG registers were not able to be setup. 2023-12-24 Peter Lemenkov * [22ef73ed1] : Ensure VERSIONTYPE is always defined Signed-off-by: Peter Lemenkov 2023-12-24 OpenSIPS * [b49ed50a1] : Rebuild documentation 2023-12-23 James Stanley * [c3b1356a1] : uac_registrant: add "failure_retry_interval" modparam 2023-12-21 Ovidiu Sas * [a796a4962] : parser/parse_uri.c: fix compare_uris() 2023-12-21 Ovidiu Sas * [54b5a353a] : uac_registrant: fix uri comparison for bindings 2023-12-21 Razvan Crainea * [353fb73d3] : aaa_diameter: add dm_send_request async command 2023-12-20 Razvan Crainea * [3a891b908] : cJSON: provide support for adding header to functions This avoids conflicts between overlapping libs that use different cJSON implementations. Many thanks to He Huang from Five9 for reporting and providing tests 2023-12-19 Razvan Crainea * [f2f68d56e] : siprec: add replication over B2B support This enables replication of the siprec structures over multiple nodes, allowing them to failover in case the main instance dissapears. Many thanks to Voxtronic for sponsoring this work! 2023-12-18 Liviu Chircu * [d836f4a26] : aaa_diameter: Fix compile errors w/ gcc 9.x * missing function param names * labels may not point to declarations 2023-12-18 Liviu Chircu * [26a9e3a26] : freeswitch: Avoid dangling socket structs in reactor Should reactor_del_reader() ever fail, retry it using index "-1" in order to guarantee removal of the file descriptor from the EPOLL controller. Also fix several occurences of bad 3rd parameter (IO_WATCH_READ instead of IO_FD_CLOSING, which was probably the intended argument). 2023-12-18 Liviu Chircu * [0c9aa6fff] : cfgutils: Fix "lock" operations during MI listing * fix missing lock check, causing too many unlocks * always lock the shv during MI listing, to avoid reading garbage (e.g. partial data), as a WRITE is taking place in parallel 2023-12-17 OpenSIPS * [e87b6dbdc] : Rebuild documentation 2023-12-14 Liviu Chircu * [1ecb32491] : rest_client: Improve previous commit (async timeouts) * fix corner-case causing module timeout to be discarded * change logging level on transfer timeout from INFO -> ERR 2023-12-13 Razvan Crainea * [212f1f8c2] : aaa_diameter: add support for ip and hex strings 2023-12-13 Razvan Crainea * [a5373b7b2] : aaa_diameter/app_opensips: improve ERROR reporting 2023-12-12 Liviu Chircu * [fd5066a04] : drouting: Allow rule fallback across multiple prefixless rules ('') Mostly affects the "do_routing() + use_next_gw()" scripting logic. 2023-12-12 Bogdan-Andrei Iancu * [ac364c169] : [tm] remove unappropriated RW locks and use standard ones In the timer list implementation, all the ops over the list are like writer, so it makes no sense to use the RW locks which overall are a bit slower than the standard simple locks 2023-12-12 Vlad Paiu * [5dfc2768b] : Negative return code from dispatcher algo route will cause the entry to be automatically skipped 2023-12-11 Vlad Paiu * [a13e03420] : If we are receiving/sending from/to an interface with advertised address, replicate to HEP using the advertised address 2023-12-11 Liviu Chircu * [1ea1852ed] : rest_client: Fix handling for async timeouts This patch improves all rest_client async operations such that they now correctly time out after the minimum between: * the "rest_client.curl_timeout" modparam (seconds) * the async() statement timeout, if any (seconds) Credits to Bence Szigeti for helping diagnose and fix the issue 2023-12-11 Liviu Chircu * [03db3688a] : async: Add support for module-injected timeouts In some cases, the module may have its own timeout for the async operation which it would prefer to force into the reactor wait loop, possibly even have it combined with the async(..., X) statement timeout as well, with the minimum of the two timeouts to win out. 2023-12-11 Liviu Chircu * [42f1eb7ae] : acc: Fix possible crash if 'aaa' module not loaded If do_accounting("aaa") is used without a backend module loaded, OpenSIPS would actually start, then crash when generating an acc record. Credits to Simon Gajski and Bogdan Iancu for reporting and diagnosing the issue here. 2023-12-10 OpenSIPS * [894d9bb47] : Rebuild documentation 2023-12-08 Bogdan-Andrei Iancu * [13bd2b877] : [tm] fix missing Route hdrs in locally generated ACK/CANCEL Even if those requests are hop-to-hop (and they do not need Route hdrs), this is valid only for stateful SIP servers. Yes, woow, we need to take care of stateless SIP server :P. As various module may add lumps with Route hdrs, let's mark this, so we will know later if we should re-parse and check for such Route hdrs (in the outbound buffer) Closes #3131 2023-12-08 Razvan Crainea * [58adeca99] : blacklists: initialize backlist net structure Thanks go to Jonathan Hulme from ConnexCS for spotting it. 2023-12-07 Bogdan Andrei IANCU * [2cb54ee86] : Merge pull request #3266 from jes/jes/proto_tls-rlen proto_tls: report error with correct variable 2023-12-07 Razvan Crainea * [5d90a34b4] : b2b_logic: Fix pkg_str_dup ret code check Fix bug while checking the return of pkg_str_dup - due to the bad return check, we were no longer terminating dangling entities with BYE. Many thanks to David Escartin from Sonoc for reporting and help in troubleshooting this issue! 2023-12-05 James Stanley * [d397608b0] : proto_tls: report error with correct variable Assigning to `len` at this point has no effect, and comparing with the code not far above, with the same comment, and the code under `con_release` ending with `return rlen;` it is obvious that the intention was to assign to `rlen` instead of `len`. 2023-12-05 Razvan Crainea * [ec6b5c4e0] : siprec: handle SRS in-dialog UPDATE and re-INVITEs 2023-12-05 Razvan Crainea * [937e1340c] : rtp_relay: fix creating caller's tag in branch route 2023-12-04 Bogdan-Andrei Iancu * [d3e3ad118] : [b2b_logic] fix TO hdr setting in UAC entities Keep the original idea (<=3.1) to have TO and RURI set to the same URI. Starting 3.2 this was accidentally changed, TO hdr being preserved from the UAS entity. Fixes #3176 2023-12-04 Liviu Chircu * [f635a63a7] : acc: Code improvements * make the is_xxx_on() macros more practical, by returning `int` instead of `unsigned long long`, to avoid integer overflows during result check * fix strange 1-byte extra offset for the DO_ACC_EVI constant * add more unit tests 2023-12-04 Liviu Chircu * [0f0de89f6] : acc: Fix drop_accounting() regression (211a63c9b2) Commit 211a63c9 changed drop_accounting() from doing too little dropping (the "backend bit" would never get reset) into doing too much dropping (the "backend bit" would always be reset, despite some of the flags still remaining enabled after the drop operation). This commit fixes the code and also adds some unit tests for the set/reset bitmask operations, to lock in the correct behavior. 2023-12-03 Maksym Sobolyev * [04cb08e70] : usrloc: simplify processing of the refresh events Do not abuse "struct socket_info" just to pass sock_str over. Instead, add str to the refresh event data and pass that alone. Not only it reduces amount of data to pass, but also makes code much easier to read and understand. 2023-12-03 OpenSIPS * [e4c37c2a9] : Rebuild documentation 2023-12-02 Maksym Sobolyev * [42d83f4bf] : core: make str_cpy() work with the str_const as well. 2023-12-01 Maksym Sobolyev * [bb300aeb9] : core: make sockaddr_union* and socket_info* arguments, vars and members const Make the said pointers const in most places where appropriate. This basically ensures that code in modules cannot mess with them intentionally or by a mistake. It should also have some positive effect on the performance of the code, as with those being const * the optimizer would have more room to speculate about what code might and might not do. There might be also some improvement of static analysis front. Most of the change is pretty mechanical, the only functional change is the allocation of the socket_info.last_real_port, since those are expected to be updated by the underlying protos/modules. Work around that by making a separate smaller struct last_real_ports and co-allocate it along with the socket_info main backing storage, exposing the non-const pointer to that instead. Move the prev / next into the semi-private part of the struct. Rework net/api_proto_net.h to not require casting handler functions to a generic type. Next step would be make str members of socket_info into str_const. Tested with voiptests. 2023-12-01 Maksym Sobolyev * [5dc91d374] : core: make working on the system with just a cc or clang and no gcc 2023-12-01 Maksym Sobolyev * [a4b1263a9] : emergency,presence,siprec: also look for includes and libs in ${LOCALBASE} 2023-12-01 James Stanley * [ac1e2f3d8] : topology_hiding: fix encoded Contact length calculation This leads to segfaults (and probable vulnerabilities) when the allocated buffer is not long enough to contain its contents. This bug was introduced in https://github.com/OpenSIPS/opensips/commit/e23be5d19a4865083971d17dc719a4d4d3436a24 presumably as a copy-and-paste mistake. 2023-12-01 Maksym Sobolyev * [034fa7861] : cgrates: fix cgr_conn_schedule() -> nop() workaround 2023-12-01 Maksym Sobolyev * [f66b96596] : proto_msrp: include timer.h to get get_ticks() prototype 2023-12-01 Maksym Sobolyev * [38ec51c7e] : core: GC unused function 2023-11-29 Razvan Crainea * [d8323704b] : rtpengine: avoid serializing if rtpengine ctx was not created 2023-11-28 Bogdan-Andrei Iancu * [ae9e51ec1] : [tm] fix the visibility of $T_branch_idx in failure route The bavp's are already available in failure route and they are using the same internal variable for the branch index. So, to keep consistency, the branch index should be visible also in failure route via $T_branch_idx 2023-11-28 Bogdan-Andrei Iancu * [43590e93f] : [tm] fix setting _tm_branch_index in case of internal timeout Be sure the _tm_branch_index variable is properly set for internal timeout and not only for received replies 2023-11-28 Bogdan-Andrei Iancu * [5bab986c7] : [cfg] fix bogus constraint on ':=' operator It is actually implemented by BAVP also (not only AVPs), but the script does not allow its usage :(. Removing the check is safe as all the other variables will treat the ':=' as '=' - they do not test the operator during "set", assuming '=' all the time. 2023-11-28 Razvan Crainea * [2b5392d53] : rtpproxy: handle timeouts for stats command Fixes a crash when OpenSIPS was timing out when fetching statistics 2023-11-27 Razvan Crainea * [51b8a2bc8] : cgrates: return 1 while setting a non-object return Comply with documentation with functions that always return 1 if success Reported by MonkeyTester (@Integration-IT on GitHub) for reporting this. Close #3256 2023-11-27 Razvan Crainea * [6d38787c1] : rtpengine: make oom error logs more verbose 2023-11-27 Răzvan Crainea * [aabc81730] : Merge pull request #3148 from Sda79/master #1923 - New option flag for global advertised address 2023-11-26 Sylvain Daste * [b579acb08] : #1923 - New option flag 2023-11-26 OpenSIPS * [737aafc28] : Rebuild documentation 2023-11-22 Răzvan Crainea * [b26490e91] : Merge pull request #3252 from BSVN/Feature/1-siprec-add-xml-custom-extension Add xml group and session custom extensions in metadata for siprec module. 2023-11-22 Seyed Mehran Siadati * [490575cf3] : Add siprec doc. 2023-11-21 Razvan Crainea * [2a70e6116] : dispatcher: fix partition parsing ending 2023-11-21 Bogdan-Andrei Iancu * [492df453d] : [tm] fix NULL on out of index for bavp() vars 2023-11-20 Răzvan Crainea * [d2a41690c] : Merge pull request #3250 from dunst0/fix/b2b_logic_deadlock b2b_logic: fix deadlock on error case 2023-11-20 Razvan Crainea * [ae098f7d8] : b2b_logic: unlink entity in the tuple before destroying This prevents a crash generated while trying to iterate through the tuple bridging_entities in the local route - since the entity has been destroyed, but not removed from the tuple, accessing it may cause in invalid memory access and crashes. Thanks go to @BTa7BxrHYn on GitHub for reporting it Close #3240 2023-11-19 Seyed Mehran Siadati * [da4bd48d7] : Add xml group and session custom extensions in metadata for siprec module. 2023-11-19 OpenSIPS * [bf9661108] : Rebuild documentation 2023-11-17 Rick Barenthin * [bed93f801] : b2b_logic: fix deadlock on error case 2023-11-16 Razvan Crainea * [e8aaca713] : rtpproxy: fix rtpproxy_enable setid docs 2023-11-16 Liviu Chircu * [64b41b5b0] : dialog: Fix bad test in prev commit 2023-11-15 Maksym Sobolyev * [86270b3a3] : core: make _pv_export.name str_const This ensures that name is truly constant, stored in the read-only data segment. Use str_const_init() to initialize it consistently. 2023-11-15 Maksym Sobolyev * [f89780854] : core: reduce code duplication Define pv_true and pv_false constants and use them each time we need to return true or false instead of constructing those in-line 2023-11-15 James Stanley * [bffcf0035] : net_tcp_proc: close a socket received for writing when there is an error 2023-11-15 Liviu Chircu * [8f328428c] : usrloc: Clarify docs for MI 'ul_cluster_sync' 2023-11-15 Liviu Chircu * [34dc02bf8] : dialog: Mitigate 'dlg_list' PKG fragmentation; Fix dlg_list_ctx memleak By using pkg_str_extend() instead of pkg_realloc(), we avoid a constant creation of PKG fragments (the buffer will eventually stop growing), which seems to gradually fragment the private memory pool, as the MI 'dlg_list' is continuously polled by various monitoring software. As a bonus, this patch also fixes a 'dlg_list_ctx' PKG memory leak introduced in 543a40c8ff and only present on OpenSIPS 3.4+. Related to #3235 2023-11-15 Liviu Chircu * [be764a16f] : Fix PKG memory leak on {s.eval} corner-case Make sure to correctly free the transformation data structures even when parsed by {s.eval} at runtime, as opposed to one-time parsing during startup, which would never highlight the leak: $var(proxy) = "$(du{nameaddr.uri}{re.subst,/scscf-int-/scscf-/})"; $var(proxy) = $(var(proxy){s.eval}); Fixes #3233 2023-11-13 Vlad Paiu * [1a3ff9b66] : Increase the static buffer size where the dialog info gets printed to Since we also have the SDP going there, that can grow pretty large ( in webrtc context ) 2023-11-13 Răzvan Crainea * [6ec8840f0] : Merge pull request #3243 from purecloudlabs/hotfix/json-array-del-element json: fix array element deletion 2023-11-12 OpenSIPS * [5cb0df80e] : Rebuild documentation 2023-11-10 Bence Szigeti * [d53e6f32e] : json: fix array element deletion OpenSIPS incorrectly calls the JSON-C array element deletion function by passing the size of the array instead of the desired count of elements to delete. When attempting to delete from index `0`, it results in the deletion of all elements, while specifying an index greater than `0` leads to no deletion due to overindexing. ### Example 1: ``` $json(obj) := "[ 1, 2, 3 ]"; $json(obj[0]) = NULL; xlog("$json(obj)\n"); ``` Result: `[]` Expected: `[ 2, 3 ]` ### Example 2: ``` $json(obj) := "[ 1, 2, 3 ]"; $json(obj[1]) = NULL; xlog("$json(obj)\n"); ``` Result: `[ 1, 2, 3 ]` Expected: `[ 1, 3 ]` 2023-11-08 tcresson * [b56acffb4] : Adapt the Makefiles that don't use Makefile.openssl 2023-11-08 tcresson * [216909f68] : Makefile.openssl can now search and link with either only libcrypto or both libcrypto and libssl 2023-11-07 Liviu Chircu * [f0488b5fa] : mid_registrar/usrloc: Small doc improvements Many thanks to Conrad de Wet and Devang Dhandhalya for the hints! 2023-11-05 OpenSIPS * [f547a7c07] : Rebuild documentation 2023-11-02 Liviu Chircu * [1df9afd38] : CacheDB: Allow "@" in URL passwords 2023-10-31 Ovidiu Sas * [cc0ac0074] : core: enhace error log for unexpected replies 2023-10-31 Razvan Crainea * [267b93842] : proto_hep: fix type in hep_async_local_write_timeout param name 2023-10-31 Razvan Crainea * [d6bcd2d49] : call_center: fix usage of parameter passed to cc_handle_call 2023-10-31 Liviu Chircu * [82876a790] : tls_wolfssl: Fix tarball generation Since ".patch" files are explicitly excluded during tarball packing, let's just rename the patch file to ".diff" instead so it gets included, thus allowing the tarball module code to compile once again. 2023-10-31 vladpaiu * [139b158a6] : Merge pull request #3237 from OpenSIPS/ws_support_via_headers_in_http Support overlapping SIP&HTTP headers in WS HTTP initial requests 2023-10-30 Vlad Paiu * [e30a35539] : Support overlapping SIP&HTTP headers in WS HTTP initial requests 2023-10-29 OpenSIPS * [c442ae6f5] : Rebuild documentation 2023-10-25 Razvan Crainea * [c0f5b1241] : call_center: passthrough in-dialog requests, except BYE 2023-10-25 Razvan Crainea * [7c9661cdb] : Revert "call_center: passthrough re-INVITEs" This reverts commit f971fa17310c654c54305608855cfc28c1477bd0. 2023-10-25 Razvan Crainea * [f971fa173] : call_center: passthrough re-INVITEs 2023-10-22 OpenSIPS * [1de3b680c] : Rebuild documentation 2023-10-17 Razvan Crainea * [8a6e78dde] : dialog: only publish cseq mappings for INVITEs 2023-10-15 OpenSIPS * [fd50b7210] : Rebuild documentation 2023-10-13 Razvan Crainea * [9bc202432] : b2b_entities: reject overlapping BYE when uac is pending 2023-10-12 Razvan Crainea * [5449d944e] : prometheus: fix labels documentation Many thanks to Norman Brandinger (@NormB on GitHub) for spotting it. 2023-10-12 Razvan Crainea * [761e8800a] : b2b_entities: proper handling of overlapping BYE Although in normal circumstances we should reply with a 500 reply code, in case a BYE is received, we should process it accordingly, and as soon as the overlapping transaction completes, we should terminate the other leg as well. Completes c4032f94f3993d1b62a0483eaae3ac0bd6c7c358 2023-10-11 Liviu Chircu * [b524764ae] : fix_nated_sdp(): Fix crash due to mis-managed flags Fixes #3226 2023-10-11 Liviu Chircu * [ad8814bb7] : str.h: Parenthesize str initialization macros This should help avoid compiler warnings similar to: error: too many arguments provided to function-like macro invocation ok(str_match(&kvf_values[0], &str_init("X")), "test-fixup-flags-3.1"); 2023-10-11 Liviu Chircu * [6eedadb68] : fixup_named_flags(): Add a few unit tests It's easy to lose track of how this function works, given there are 3 different ways of invoking it. So write a few tests to "lock in" its behavior and also make it available for double-checking on demand. 2023-10-11 Bogdan-Andrei Iancu * [b3990ad41] : [parser] parse_min_expires() returns FALSE if hdr no found Alternative to #3165 2023-10-11 Bogdan Andrei IANCU * [7673c2e26] : Merge pull request #3158 from purecloudlabs/hotfix/upstream/proto-hep-tls-connection-reuse proto_hep: Fix TLS connection reuse 2023-10-11 Bogdan Andrei IANCU * [a1b2c3c1c] : Merge pull request #3223 from purecloudlabs/hotfix/wolfssl-client-cert-verify `tls_wolfssl`: Fix certificate verification in client mode 2023-10-11 Liviu Chircu * [8565a7296] : Merge pull request #3166 from nphantom/master-fix-cluster-nodes cachedb_redis_dbase: Fix the type of port with unsigned short. 2023-10-11 Liviu Chircu * [3532746c1] : cachedb_redis: Fix a bug with parsing custom ports This patch fixes an issue where custom Redis ports (i.e. not 6379) in simple URLs with just 1 host were always being parsed as 6379. Most likely, the issue dates back to the "circular failover hosts" feature (69179289). Many thanks to Artiom Druz (@Shkiperion) for a full report + PR attempt! Fixes #3168 Closes #3169 2023-10-11 Bence Szigeti * [7c1369922] : `tls_wolfssl`: Fix certificate verification in client mode 2023-10-10 Bogdan-Andrei Iancu * [14df28478] : [load_balancer & dispatcher] FS stats do not depend on probing Enabling the stats collection (via timer) from FS boxes must not be conditioned by the activation of probing - there is not relation / dependency between the two. Closes #3216 Reported by @spacetourist 2023-10-09 Bogdan-Andrei Iancu * [47f56e040] : [async] fix async launching without report route Handle the case where no report route is provided. Closes #3188 (cherry picked from commit 26d6d95ffde2bfcdcc67f134c3056dc893c0aad9) 2023-10-09 Bogdan-Andrei Iancu * [fd0657602] : [evi] do not raise event from TCP MAIN The TCP MAIN process does not have script capabilities, so we should NOT raise event here (as they may translate into scripting due to the event_route module). So, if we have an event to be raised from TCP MAIN (as E_CORE_TCP_DISCONNECT) we better use the newly added evi_dispatch_event() function which does IPC dispatching (into a different process) and raise for the event. Closes #3212 2023-10-08 OpenSIPS * [c905e10c4] : Rebuild documentation 2023-10-06 Razvan Crainea * [fc144da23] : dialog: proper update contact of callee on seq fixes bug introduced in a76af3f Close #3218 2023-10-06 Razvan Crainea * [e393d4cd2] : tls_wolfssl: amend patch with Fix RNG with writedup Amend patch with wolfSSL/wolfssl#6843 2023-10-05 Razvan Crainea * [faafd70f4] : rtpengine: allow passing flags for subscribe answer cmds 2023-10-05 Bogdan-Andrei Iancu * [942509835] : Fix persistency of the globally set log_level The globally set log_level (via MI cmd) must impact the future forked processes (due to auto scalling). Closes #3146 2023-10-04 Bogdan-Andrei Iancu * [caa78d967] : [b2b_entities] proper handling of B2B requests without active dialogs If we have a requests that is 100% looking as a B2B related request, but it's not matching any active/ongoing b2b dialog, better reject with 481 and drop instead of pushing it into the script (where may be proxyed). Closes #3205 2023-10-04 Razvan Crainea * [e7f887d35] : statistics: do not allow duplicate stats in different groups The statistic's name should be unique, whether it is located in a different group or not. Completes 4640465, Fixes #3136 2023-10-02 Razvan Crainea * [483ee0be1] : drouting: allow usage of goes_to_gw in LOCAL_ROUTE 2023-10-01 OpenSIPS * [366d6be7a] : Rebuild documentation 2023-09-27 Liviu Chircu * [e2977a4f4] : stir_shaken VS: Improve several return codes * on bad client-side signature length, return "438 Invalid Identity Header (bad signature)" vs. "500 Internal Server Error" (??) * on encountering expired certificates advertised by clients, return "438 Invalid Identity Header (cert validity)" vs. "403 Stale Date" (?!) * fix abs() related compiler warnings introduced earlier 2023-09-27 Liviu Chircu * [75a168a9f] : stir_shaken: Fix detection for invalid "future Date/iat" This patch fixes a bug where both the Date hf and the "iat" PASSporT claim could be filled in with a random timestamp value "in the future" and still bypass the OpenSIPS "freshness" integrity checks. Issue discovered during OpenSIPIt'03, thanks to Pavel Bussel & Maksym Sobolyev (Sippy Software) 2023-09-27 Razvan Crainea * [464046521] : [WIP] statistics: fix crash when creating a series stat Under normal circumstances, when a statistic is updated, we first search whether it exists, and if not, we add it to the statistics hash. However, due to the way it is implemented, searching and adding a statistic is not atomic, hence, with high concurrency, when adding a new statistic, we might already find an existing one there. In this case, the code tries to return that statistic in the `pvar` parameter - however, that parameter might be a (r/o) function, hence a crash happens. This commit fixes the crash. Close #3136 However, it returns 0, as if the statistic was properly added - the problem with this approach is that from the caller's perspective, we do not know whether the statistic was already there or not, to free the existing structure - hence this might result into a leak. We are still working on a solution for this. 2023-09-27 Razvan Crainea * [41aa549a5] : main: avoid 'for' loop initial declarations in C98 This would break rpm build on CentOS 7 due to old compiler/standard 2023-09-27 Razvan Crainea * [1dde47b52] : siprec: fix memory leaking while setting the same field of siprec var Credits go to Rob Moore, Daniel Bryars and Steven Ayre from Dubber, as well as Liviu Chircu from the OpenSIPS team for working together to spot this leak. 2023-09-26 Razvan Crainea * [75605d539] : add move_branch() and swap_branches() core functions 2023-09-26 Bogdan Andrei IANCU * [d82ddd85d] : Merge pull request #3189 from Keyyo-Private/fix_ldap_memleak ldap: Fix memory leak 2023-09-26 Razvan Crainea * [7bafee1f9] : dialog: increment last_gen_cseq only if initialized Many thanks to Denys Pozniak (@denyspozniak on GitHub) for reporting and providing troubleshooting information. Close #3206 2023-09-25 Liviu Chircu * [2e6623573] : stir_shaken: Add the `e164_max_length` parameter This parameter allows the 15-digit number length restriction of the E.164 format to be bypassed. Especially useful in scenarios where various telephony number prefixes are in use, causing some numbers to exceed the standard maximum length. Credits to @Integration-IT for watching over the core issue and helping work towards the current solution! Fixes #3202 Fixes #3182 Fixes #3181 2023-09-24 OpenSIPS * [e0ef3850e] : Rebuild documentation 2023-09-21 Razvan Crainea * [2548f4755] : tls_wolfssl: adapt patch with upstream Grabbed from wolfSSL/wolfssl/#6785 As soon as the patch gets in a released version, we shall bump our version as well. 2023-09-21 Razvan Crainea * [8fccc49c7] : digest_auth: fix Makefile flags escaping 2023-09-21 Razvan Crainea * [d1c8a4751] : digest_auth: fix # escaping in Makefile Fix bogus parsing of makefile; completes d92607f 2023-09-21 Razvan Crainea * [d92607f2d] : digest_auth: avoid dash escaping in Makefile Replace dash's builin printf with the echo binary impelmentation. Many thanks to Liviu Chircu for brainstorming and testing! 2023-09-21 Razvan Crainea * [3c11d3c0f] : digest_auth: restore support openssl for 1.0.2 This completes commit f566fb which used a new interface of openssl, one that is not available in 1.0.2. Many thanks to Oleksandr Kozmenko (@11qeq11 on GitHub) for reporting it. Close #3183 2023-09-21 Razvan Crainea * [3b4beb2c4] : proto_ws: enclose IPv6 Host IPs with square brackets Many thanks to @alekseiZh on GitHub for reporting it Close #3198 2023-09-18 Razvan Crainea * [9d61465fe] : b2b_entities: fix Notify buffer timeout build Complete 312cdd4 Related to bug in #3195 2023-09-17 OpenSIPS * [34c9c3be2] : Rebuild documentation 2023-09-15 Razvan Crainea * [66493ce7e] : b2b_logic: do not abort bridging if re-INVITE is rejected with 491 If the SDP negociation gets rejected with 491, we should not abort negociation, since most likely it is an indication that the remote UAS is trying to lock its codecs, hence do the same thing we are trying to do, but in the other direction. If however, the other participant does not send itself a re-INVITE, we arm a timer to re-try the bridging according to the RFC 3261, section 14.1: If a UAC receives a 491 response to a re-INVITE, it SHOULD start a timer with a value T chosen as follows: 1. If the UAC is the owner of the Call-ID of the dialog ID (meaning it generated the value), T has a randomly chosen value between 2.1 and 4 seconds in units of 10 ms. Fix #3137 2023-09-15 Razvan Crainea * [01a3568ef] : b2b_logic: properly initialize socket for topo hiding Fix possible crash when no socket is forced in topology hiding scenario 2023-09-15 Liviu Chircu * [e2bfeda4e] : dialog: Fix $dlg_val memleak Fixed #3135 2023-09-15 Bogdan-Andrei Iancu * [4244c286e] : [b2b_entities/logic] use the newly added pref_socket When creating a new B2B client, avoid using the UAS side incoming socket as a forced socket. By doing that we override the proto given by the UAC RURI (and forcing to use the same proto as the UAS side - of course, unless we do not do a force send socket from script to manually indicate a new socket/proto). Shortly, th dynamic selection of the correct UAC socket is broken. With this change, we do: * if the UAS/msg side has a forced socket (from script), we will push it as forced socket to the UAC too (as before this change). * if there is no forcing, the current UAS/msg incoming socket is passed as "preferred" socket to the UAC - like use it as time as it fits the RURI proto. This helps in preserving (during the whole b2b logic) the same socket when having multiple sockets serving the same protocol. Fixes #3138 2023-09-15 Bogdan-Andrei Iancu * [2824a3818] : [tm] t_uac() gets a preferred socket too The function already receives a send_socket (a forced socket) which overrides the protocol given by the destination URI. But are cases were we need a milder approach, like a preffered socket to be used if not conflicting with the protocol given by the RURI. What we have now: * send_socket - it is a forced socket, overrides the proto given by RURI, it will be used for sure * pref_socket - a preferred socket, to be used if no send_socket is given and if there is no conflict with the proto given by RURI (in case of a conflict, the pref_socket is discarded and a new socket is looked up based on the RURI info). First part fix for #3138 2023-09-14 Razvan Crainea * [4fe2fb6f5] : b2b_entities: prevent hop-by-hop ACK to change the status of dialog 2023-09-14 Razvan Crainea * [1bf83d61b] : tm: simplify API interface for t_relay and t_check_trans 2023-09-14 tcresson * [4612a7f77] : Fix memory leak in LDAP module. The subst_expr* that is allocated for the methods ldap_write_result and ldap_result_check is never freed. In order to fix it, we declare the fixup_free_substre function that is used in the definition of the "free_fixup" function for the subst_expr parameter of these two functions. 2023-09-14 Bogdan-Andrei Iancu * [c4032f94f] : [b2b_entities] Proper handling of overlaping transactions As per RFC3261, Section 14.2 : A UAS that receives a second INVITE before it sends the final response to a first INVITE with a lower CSeq sequence number on the same dialog MUST return a 500 (Server Internal Error) response to the second INVITE and MUST include a Retry-After header field with a randomly chosen value of between 0 and 10 seconds. A UAS that receives an INVITE on a dialog while an INVITE it had sent on that dialog is in progress MUST return a 491 (Request Pending) response to the received INVITE. Changes: * 491 is now generated when receiving a request while already having an outbound one - the old code was generating 491 upon receiving a request while having another INCOMING one :-/ * generate the 500 reply when receiving a new request while handing another incoming one. 2023-09-12 Razvan Crainea * [1af376b71] : rtp_relay: remove context from the list on repicated deletes 2023-09-11 Liviu Chircu * [1d4d5a6ba] : Merge pull request #3171 from Integration-IT/master-1 STIR SHAKEN Documentation 2023-09-10 OpenSIPS * [20e540d00] : Rebuild documentation 2023-09-08 Razvan Crainea * [9e8793473] : build: add patch as requirement 2023-09-08 Razvan Crainea * [716f1d633] : tls_wolfssl: patch wolfssl lib to fix memory leak More information about the leak can be found on the wolfssl issue tracker: wolfSSL/wolfssl#6760 2023-09-08 Razvan Crainea * [3e6a0fcb0] : tls_wolfssl: refactor makefile to use dependencies 2023-09-08 Bogdan-Andrei Iancu * [3b04f2185] : Revert ERR back to DBG log Introduced by mistake via e0fe732e9c9d28c24ed6860fbd3531940978b8f9 Reported by Bence Szigeti. 2023-09-04 Razvan Crainea * [d6ef279f6] : rtp_relay: fix invalid contexts leaked in list When a session would have been established on a provisional reply with body (i.e. 183), the rtp contexts would have been stored in the list. However, if the call would not establish (with a 200 OK), there would be no one removing it from the list, even though the context was released - this resulted in unexpected and almost impossible to track down invalid memory usage. The current patch makes sure that the context is removed from the list if the call does not establish. Many thanks to Rob Moore, Daniel Bryars and Steven Ayre from Dubber for pushing an enormous amount of time into troubleshooting and debugging this, as well as to Liviu Chircu for guiding the troubleshooting! 2023-09-03 OpenSIPS * [af6f1576b] : Rebuild documentation 2023-08-31 Razvan Crainea * [d86668889] : route: fix previous commit 2023-08-31 Razvan Crainea * [242598f70] : route: fix another crash related to f07048c 2023-08-31 Razvan Crainea * [f07048c58] : route: do not unref if route not initialized Prevents crash when init fails and routes have not yet been initialized 2023-08-31 Liviu Chircu * [9996f9fd1] : siprec: Fix invalid READ operation on freed memory Also tidy up the cleanup phase Thanks to Rob Moore, Daniel Bryars and Steven Ayre from Dubber for reporting it and providing valuable information for troubleshooting! 2023-08-29 Razvan Crainea * [7962c754d] : uac: add uac_inc_cseq function 2023-08-29 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [ace6d4003] : STIR SHAKEN Documentation fix "Exported MI Functions" indent 2023-08-28 Razvan Crainea * [bc239b1f8] : dst_blacklists: append _rule check_blacklist func This avoids collision with the userblacklist's module check_blacklist function. Many thanks to Bence Szigeti from Genesys for reporting it! 2023-08-28 Razvan Crainea * [6678bae93] : b2b_sdp_demux: fix client key concurrency case Thanks to Suchi Sahoo from Five9 for reporting! 2023-08-27 OpenSIPS * [020d704e9] : Rebuild documentation 2023-08-24 Liviu Chircu * [c42efece9] : Merge pull request #3157 from Integration-IT/master-1 STIR SHAKEN CA/CRL reload - disengagement token 2023-08-24 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [8ad0d8e0d] : Update stir_shaken_admin.xml dev still under construction and testing for this function, next step is to add control, sanitization and filtering to validate the token. 2023-08-24 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [2f3d51a74] : STIR SHAKEN remove token global var since token is not used as exported param, no need to keep this glabal var. 2023-08-24 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [57f3f3cde] : STIR SHAKEN remove unused exported token param token used for w_stir_disengagement function, not used to configure the module. 2023-08-24 zhengsh * [59b076048] : cachedb_redis_dbase: Fix the type of port with unsigned short. 2023-08-24 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [c9d2515a4] : STIR-SHAKEN Update documentation module - add stir_shaken_disengagement exported function. - add mi_stir_shaken_ca_reload exported function. - add mi_stir_shaken_crl_reload exported function. 2023-08-24 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [25d9b2fbe] : STIR-SHAKEN Disengagement token feature for FFT/APNF regulation requirement - add w_stir_disengagement script function. - add w_stir_disengagement cmd function. - add token exported param. - add add_disengagement_token function to push P-Identity-Bypass header at the end of lump anchor. POC feature for request route: ``` if ( is_method("INVITE") && !has_totag()) { stir_shaken_disengagement("OSIP99-1234567890ABCDEF"); xlog("STIR-SHAKEN: stir_shaken_disengagement retcode: <$rc>\n"); } ``` 2023-08-24 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [4bb566917] : STIR SHAKEN CA/CRL reload - add init_cert_ca_reload function (derivative init_cert_validation) - add init_cert_crl_reload function (derivative init_cert_validation) - export stir_shaken_ca_reload to opensips-cli - export stir_shaken_crl_reload to opensips-cli 2023-08-20 OpenSIPS * [6ce670dc1] : Rebuild documentation 2023-08-18 Bogdan Andrei IANCU * [b1628508b] : Merge pull request #3156 from purecloudlabs/hotfix/sipcapture-relay-over-tls sipcapture: Fix HEP relay over TLS 2023-08-18 Bence Szigeti * [42ba430bb] : proto_hep: Fix TLS connection reuse 2023-08-17 Bence Szigeti * [7c68fff8c] : sipcapture: Fix HEP relay over TLS 2023-08-17 Razvan Crainea * [5afeb6ac1] : regex: fix previous commit 2023-08-17 Răzvan Crainea * [0e5ad6d39] : Merge pull request #3147 from Integration-IT/master REGEX add pcres_match and pcres_match_group to opensips-cli 2023-08-17 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [41ebb3ed8] : REGEX Update documentation - add doc mi_regex_match - add doc mi_regex_match_group 2023-08-17 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [ede29b2b8] : Update regex_mod.c - add mi_pcres_match_group brief comment. - revert misleading error tabulation. 2023-08-17 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [b5050f1cd] : Merge branch 'OpenSIPS:master' into master 2023-08-17 Razvan Crainea * [3aeeee431] : rtp_relay: fix missing ref for legs in session This missing ref would (almost all the time) lead to possible invalid memory accesses and possilbe double free. Thanks to Rob Moore and Steven Ayre from Dubber for reporting it and providing valuable information for troubleshooting 2023-08-16 Bogdan-Andrei Iancu * [c29007168] : Switch default xlog level from ERR to NOTICE ERR is too scary for a default value :) 2023-08-16 Razvan Crainea * [45aa9a947] : db_sqlite: fix possible crash when the values is relocated When the query does not manage to count the rows in a first shot, the values buffer might be reallocated, which can result in a relocation of the buffer - if that's the case, we should repoint all the old values to the new location, otherwise they will point to an invalid value. Many thanks to Rob Moore and Steven Ayre from Dubber for reporting and helping us testing and troubleshooting this corner case. 2023-08-16 Razvan Crainea * [8b2ac9279] : db_perlvdb: fix valdata inline Thanks go to @varghesepaul for reporting it Close #3152 2023-08-16 Razvan Crainea * [90018c21a] : rtpproxy/rtpengine: document socket type if protocol is missing Close #3154 2023-08-13 OpenSIPS * [62aeebb9a] : Rebuild documentation 2023-08-12 MonkeyTester <57145271+Integration-IT at users.noreply.github dot com> * [e0c957254] : Update regex_mod.c - mi_pcres_match (exported from pcre_match) - mi_pcres_match_group (exported from pcre_match_group) 2023-08-09 Razvan Crainea * [9376d60c7] : tls_wolfssl: complete 80a96be0 commit 2023-08-09 Razvan Crainea * [243e0e3ab] : ipc: initialize job structure before dispatching it 2023-08-09 Razvan Crainea * [bc1a9ceab] : prometheus: properly initiate local stats val 2023-08-09 Razvan Crainea * [80a96be06] : tls_wolfssl: complete WOLFSSL_DEBUG_MEMORY commit 2023-08-08 Bogdan Andrei IANCU * [bd7791d5e] : Merge pull request #3132 from purecloudlabs/feature/hep-tls-master `proto_hep`: Add TLS transport 2023-08-08 Razvan Crainea * [4cb0d83da] : tls_wolfssl: add support for WOLFSSL_DEBUG_MEMORY 2023-08-08 Razvan Crainea * [93e88f28e] : dprint: fix compile time printf checking 2023-08-07 Razvan Crainea * [3cdc8f1eb] : action/params: do not run route if params were not properly built Thanks go to Nick Altmann for reporting it Close #3141 2023-08-06 OpenSIPS * [53d2730ff] : Rebuild documentation 2023-08-05 Razvan Crainea * [11f613622] : dialog: fix warning without proper variables provided 2023-08-05 Razvan Crainea * [a76af3f49] : dialog: complete cseq maps implementation Do not limit the number of maps, update existing in case the same cseq is incremented multiple times (due to authentication), optimize the number of maps and remove them when the transction is deleted. Complete and close #1071 2023-08-04 Razvan Crainea * [b417951b6] : rtp_relay: suppress warning if session is established 2023-08-03 Razvan Crainea * [b1f3aa5c2] : add support for setting mpath multiple times 2023-07-31 Razvan Crainea * [c49ba7007] : proto_*: move TCP request in shm, not pkg This is because TCP connection might get re-balanced on different nodes Thanks go to ConnexCS for reporting this! 2023-07-31 Razvan Crainea * [7c93e59cb] : context: return 0 if pushing context fails 1 otherwise 2023-07-31 Vlad Paiu * [6786b8e69] : Added str flag to out pvar (cherry picked from commit f6377ca7a8246253563b464e5a1dd103bd0e2cd9) 2023-07-30 OpenSIPS * [88587a496] : Rebuild documentation 2023-07-27 Razvan Crainea * [695f66684] : dispatcher: provide ping_from and ping_method per partition 2023-07-27 Razvan Crainea * [7e866d5b4] : dispatcher: provide persistent_state per partition 2023-07-26 Razvan Crainea * [0a0a0d65a] : b2b_entities: make sure we don't "leak" transaction when canceling it 2023-07-26 Razvan Crainea * [5339179b0] : tm: add set_t in API 2023-07-26 Razvan Crainea * [7c618fb23] : rtp_relay: do not unsubscribe from terminated sessions 2023-07-26 Razvan Crainea * [73351da02] : rtpengine: use rtp_relay api only if loaded Thanks go to ConnexCS for reporting this 2023-07-26 Bence Szigeti * [95ab93fb6] : `proto_hep`: Add TLS transport 2023-07-25 Razvan Crainea * [9d77b6def] : rtp_relay: mark session as successful if we have callee's SDP 2023-07-24 Bogdan-Andrei Iancu * [227852ce8] : [sipmsgops] added append_body_to_reply() function ...to add a body to any reply generated by OpenSIPS for the current reply, disregarding if you are using a stateless, statefull or generic send_reply() wrapper for that. 2023-07-24 Bogdan-Andrei Iancu * [4de0a549e] : [tm] avoid incoming request matching against UAC transactions (cherry picked from commit e6c733595eeeaa74fec18a5911fc45592f45e737) 2023-07-24 Razvan Crainea * [2a0990d08] : siprec: do not require SDP for a 200 OK This should be OK if the SDP was completed on the 183. 2023-07-23 OpenSIPS * [1d47e7a7b] : Rebuild documentation 2023-07-19 Vlad Paiu * [2ff495526] : Added async timeout support in db_mysql & integrated that into avpops avp_db_query 2023-07-17 Vlad Paiu * [cfcd9a65e] : set async ctx to 0 prevent crash in timeout_f not being set but reactor still somehow timing out fds 2023-07-16 OpenSIPS * [d952c6f83] : Rebuild documentation 2023-07-13 Vlad Patrascu * [0b2cc8b62] : clusterer: fix restoring "cap:" status/report IDs after reload Thanks to Suchi Sahoo from Five9 for reporting! 2023-07-13 Bogdan-Andrei Iancu * [c4407c4d0] : [tm] fix accessing free'd reference to script route When setting the T->failure reference to NULL, the previously set script reference is automatically free'ed, so be sure you do not use if afterwards. Closes #3115 Credits to @Integration-IT for helping with the troubleshooting and testing (cherry picked from commit 30f6c2aa070f58897e3f3fb651012189a5adff1e) 2023-07-12 Vlad Patrascu * [b7845d238] : b2b_logic: fix deadlocks due to calling API functions from callbacks Related to #3117 (cherry picked from commit 69a573922296f5eff0a2688a409c87c44aa8f06e) 2023-07-12 Razvan Crainea * [58863fc92] : rtpengine: search through rtp_relay calldis when terminating Reported as part of the #3121 ticket 2023-07-12 Razvan Crainea * [2ff9c5903] : rtp_relay: provide more precise dialog matching based on ids 2023-07-12 Razvan Crainea * [8d6cfba71] : dialog: indicate if dialog was not found when terminating 2023-07-12 Razvan Crainea * [f73a2b4ab] : dialog: provide means to fetch dialog by h_entry and h_id 2023-07-11 Vlad Patrascu * [004f46565] : Remove obsolete tests from test/ dir 2023-07-11 Vlad Paiu * [c4c376484] : Generate correct OPTIONS pings for NATed devices 2023-07-10 Razvan Crainea * [bfff7dee0] : tm: add T_branch_last_reply_code variable The variable retrievs the last reply code received for a specific branch 2023-07-09 OpenSIPS * [1e2e2f257] : Rebuild documentation 2023-07-06 Razvan Crainea * [24ec4ebd9] : tm: proper cleanup for anycast CANCEL transactions Thanks go to Rizwan Syed and Jonathan Hulme from ConnexCS for reporting, providing testing environment and support the troubleshooting and fix! Close #3111 2023-07-05 Vlad Patrascu * [a1cd6230f] : logging: fix crashes when some main initializations fail The shm allocated consumer structures could still be accessed after the shm was destroyed. 2023-07-05 Razvan Crainea * [ae09c986c] : rtp_relay: engage indialog callbacks when session is established This allows the module to run callbacks on UPDATEs even if the dialog was not estabhished yet 2023-07-04 Vlad Patrascu * [aa8e5ff0a] : clusterer: fix deadlock when receiving clusterer_reload via cluster Running cluster_send_mi or cluster_broadcast_mi with clusterer_reload as the command to dispatch would cause a deadlock on the receiving nodes. 2023-07-04 Bogdan-Andrei Iancu * [9eb13bf2c] : [tracer] properly do per-request traceing in local route As in local route we have only outbound (callee) leg, we cannot the typical incoming request tracing here. We need to "fake" it a bit to look as an outbound tracing. Funny enough, this problem poped only when doing per-request/message tracing in local route; otherwise the per-transaction tracing was doing the correct job. Credits for reporting go to @ovidiusas Closes #3066 2023-07-04 Vlad Patrascu * [3f602fece] : b2b_logic: fix compile error (cherry picked from commit 61401ea40f0394cbd589e3c3b301fa00e2aa05f6) 2023-07-04 Vlad Patrascu * [5c51a8ea3] : b2b_logic: properly reset the current tuple in all cases The global variable used to identify the current tuple in the local_route was not properly reset in all cases (when retrying a birdge action for example). This could lead to a failure to identify the current tuple when acessing the $b2b_logic variables, the b2b logic context etc., even when we're not in the context of a local_route. (cherry picked from commit 92772e69f36dcc70b2418374d83bf3274b13f104) 2023-07-04 Vlad Patrascu * [98919c976] : b2b_logic: fix some locking issues Properly access the b2b logic context of the current tuple under lock. Also, protect the access to the tuple when using the b2bl_get_entity_info() API function. Related to #3117 (cherry picked from commit ebf40c91f9d62f367cddd722f05a1b53b6d30b6a) 2023-07-04 Vlad Patrascu * [848bb1c01] : b2b_logic: don't crash when searching inexistent tuple by key Searching the current tuple by key for accessing the logic context should not cause a crash. As the hash is not locked or the structure ref counted, there is a distinct possibility that the tuple cannot be found anymore. Related to #3117 (cherry picked from commit d05d408b0bf2346769d580d04b413f7d4a277e13) 2023-07-04 Bogdan-Andrei Iancu * [03788691a] : [ratelimit] Fix accuracy on the ratelimit timer The computation perform by the ratelimit module is very time sensitive - any deviation of the interval between the runs of the timer handler may lead to false positive detection of CPS thresholds. So, let's move the timer handler from regular timer (1s sensitivity) to utimer (100ms sensitivity) -> 10 times more accurate. Still, the number of triggerings is the same, only the precision is 10 times better. Credits go to @ovidiusas Closes #2797 2023-07-04 Bogdan-Andrei Iancu * [88a0622fd] : Fixed CacheDB URL escaping. The ability to escape/encode DB URLs using %xy became a must with the auto generated user and passwords in the cloud envs. Cloned from 5b0bc1e Closes #2412 2023-07-04 Bogdan-Andrei Iancu * [4c16207a5] : Fix advertising IPv6 IP addresses Enclose the IPv6 advertised address when using it as string Fixes #2774 2023-07-03 Bogdan-Andrei Iancu * [e455d0094] : Small code beautification Related to 1d83a0c 2023-07-03 Bogdan-Andrei Iancu * [daaef52c1] : Merge branch 'warning_delay_timer' 2023-07-03 Ovidiu Sas * [1d83a0c77] : core: fix bogus "delay in execution" warnings - time ijiffies are adjusted by the time_keeper process - when the trigger time for a time job is set right before adjusting the ijiffies and the processing of the timer job is done right after the ijiffies adjustment, there's an artificial delay (the ijiffies adjutment) that triggers a bogus "delay in execution" warning - by taking into consideration the ijiffies adjutment we avoid printing the bogus "delay in execution" warning Closes #2812 2023-07-03 Vlad Patrascu * [b0f98ef84] : clusterer: fix crash after MI reload The crash was caused by accessing a dangling pointer to the capability structure after it was freed. Thanks to Suchi Sahoo from Five9 for reporting! (cherry picked from commit cb8d63193b84909e1c238418dc3e80825ebb746e) 2023-07-02 OpenSIPS * [c41da6bc7] : Rebuild documentation 2023-07-01 Vlad Paiu * [d2601f358] : Properly populate out decoded JWT Closes #3098 2023-06-30 Razvan Crainea * [e5185e114] : siprec: fix pvar definition 2023-06-30 Vlad Patrascu * [44f4ae6ee] : b2b_entities: fix crashes due to races when deleting entity An entity might have been deleted and freed while the lock has been released when running the entity storage callbacks. Related to #3110 (cherry picked from commit 22bd8184e6c1cbd52ce3be79fbe0c52306226f37) 2023-06-30 Razvan Crainea * [02869583b] : tracer: fix refs for multiple transactions in b2b scenarios Many thanks to @vtzan for reporting and intensive testing 2023-06-30 Bogdan-Andrei Iancu * [e0fe732e9] : Fix resuming partial msg reading on TCP When conn rebalancing or parallel processing is enabled for TCP, a read operation may start (partial reading) in one process and be completed in a different one. So the con_req (buffer for partial reading) must be in shm mem and also it must survive a conn release (passing the conn back to MAIN). Many thanks to @liviuchircu for reporting and helping with the troubleshooting This issue was found during the TCP performance tests done for the 3.4 release 2023-06-30 Bogdan-Andrei Iancu * [44c25dba4] : [uac_registrant] avoid code duplicate Use common/shared functions for pushing / poping new processing context A follow up on 3705209d524b7f61b193df8b56310fe9600e14b1 2023-06-30 Bogdan-Andrei Iancu * [3705209d5] : [b2b_logic] fix crash on tracing expired b2b tuples When a tuple expires via timer, be sure to provide a processing context, otherwise the tracer (if enabled) will simply crash. As part of the fix, two new helper functions were added for pushing and poping new processing contexts - these are to be reused by some prev similar fix on uac_registrant. Related to #3110 Many thanks to @vtzan for helping with the troubleshooting and testing (cherry picked from commit 2a3eb1e2a8e609b6b7b37074c1d1fd4dffc76f5e) 2023-06-30 Vlad Paiu * [ebc3edd78] : Added support for rtx RFC 4588 when deleting a codec that has RTX attached to it 2023-06-28 Vlad Patrascu * [bfb048af6] : dialog: fix matching dialog by integer dialog value This fixes the matching of dialogs when using the get_dialogs_by_val() and get_dialog_info() functions. (cherry picked from commit 57c2a8d91b6934a74c088a733753a3968479302d) 2023-06-27 Bogdan-Andrei Iancu * [397ef8fe1] : Fix computing the size to clone for a body part Take the optional header len into account also when cloning a body part struct. This particular bug occured when using add_body_part() with extra hdr parameter in conjunction with an async() operation (or failure route) Credits for reporting and helping with repoducing this go to @thuroc Fixes #3067 (cherry picked from commit a042588e322c5acf997313773cbc5ff6e007c956) 2023-06-27 Bogdan-Andrei Iancu * [e24668131] : [dialog] fix dropping empty string dlg vals Upon DB recovery (after an OpenSIPS restart) do not drop emtpy string dlg vals - as we do allow creation of such vals via cfg and api and have them saved to DB, it makes all the sense to also restore them This triggers some startup warnings when using in-dialog re-INVITE probing. Closes #3108 2023-06-26 Liviu Chircu * [ad6aef029] : dialog: Change dlg->vals locking to be independent By making the dlg->vals locking independent from the dialog hash lock, working with the dialog API will become less prone to AB/BA deadlocks. Sample possible AB/BA deadlock which is now naturally avoided: * module "X" timer grabs lock-A, then gets stuck trying to grab lock-B(dialog bucket) through some innocent .store_dlg_val() dialog API call * dialog DB timer had grabbed lock-B(dialog bucket), and is now stuck grabbing lock-A while running a DLGCB_DESTROYED callback installed by module "X" 2023-06-25 OpenSIPS * [3fb2c356a] : Rebuild documentation 2023-06-23 Maksym Sobolyev * [ccb913f82] : Add missing include. Shame on @sobomax for having it broken for so long! 2023-06-23 Maksym Sobolyev * [0bbc0fd6e] : Make sure CC is set. 2023-06-23 Maksym Sobolyev * [f3e060008] : Remove packages that are auto-installed by GitHub and create a version conflict later when we install our version. This is the reason the build were failing in the past few days. 2023-06-23 Maksym Sobolyev * [f4e90f3d6] : Reset sources.lst to default ubuntu's. 2023-06-23 Maksym Sobolyev * [6bfd7d22f] : Move list of required packages into plain text file and GC .travis.yml which "serves no purpose anymore". 2023-06-23 Liviu Chircu * [a2d72ba56] : Get rid of outdated sched_yield.h temporary wrapper The main utility of "sched_yield.h" was to provide sched_yield() on OS'ed which didn't have it back in 2007, such as OpenBSD and NetBSD. Nowadays, the landscape is different, with the issue having been fixed in both above OS'es. Moreover, by getting rid of the wrapper, we avoid "missing -DHAVE_SCHED_YIELD" problems on architectures such as ARM (see commit f8ad265a70f, where the issue was caused by this wrapper header exclusively). 2023-06-22 Vlad Patrascu * [f69b150c8] : Also register a custom event from subscribe_event() fixup This will permit raising an event from MI with an event subscribtion done in startup_route without the need to define an event_route for this event or using a raise() in the script. 2023-06-22 Vlad Patrascu * [aa9f3e2bc] : lua: fix previous commit Remove unused variable 2023-06-22 Vlad Patrascu * [949422a93] : lua: fix duplicate logs to syslog 2023-06-22 Vlad Patrascu * [5e4d10cff] : lua: don't register functions under a name This fixes issues with running the "opensips" table functions on Lua library version 5.1. This essentially reverts commit ab964d9. 2023-06-21 Vlad Patrascu * [d950d65a9] : lua: fix opensips lua API docs (cherry picked from commit a53ba3d0d696ef56684a03b7bbf4a4e8474c3e33) 2023-06-20 Maksym Sobolyev * [f8ad265a7] : Add missing include. Shame on @sobomax for having it broken for so long! 2023-06-20 Liviu Chircu * [47fbe3627] : drouting: Fix 'inherit_reload' related errors on MI reloads Related to e871882cb6. Be silent about "MI param not found" errors, in case the function was _meant_ to be called without those parameters. 2023-06-20 Vlad Patrascu * [ce177c133] : cachedb_mongodb: fix regression in commit 69ed4f7 Loading the cachedb_mongodb module alongside the tls_openssl module, but before tls_mgm would cause a crash. This is a result of the OpenSIPS versus mongoc library openssl initialization issues (initially fixed in commit 298bf6b). Commit 69ed4f7 split all the openssl related code from the tls_mgm module into a new tls_openssl module but some openssl initialization bypasses from the cachedb_mongodb module were left to depend on loading the tls_mgm module (instead of the new tls_openssl module). Fixes #3072 2023-06-20 Liviu Chircu * [e6b4de512] : F_MALLOC: Optimize the free() operation Commit bdaaf60b2c introduced a side-effect of gradually moving the fragment "action" towards the exponential, non-optimized hash table buckets (i.e. buckets 2049 ... 2100). Here, the fragments were inserted in a sorted fashion, with the sorted-insert algorithm costing a O(N) iteration on each free operation instead of a simple O(1). Consequently, the user experience of this effect is that "dr_reload" operations were stalling for 12 minutes (coming up from 24 seconds!), when working with large rule sets (millions of rules). Interestingly enough, the stalling was not due to the caching phase -- malloc() -- rather due to the cleanup phase, when clearing the old rules -- free()! To address this issue: * we drop the sorted insertion completely for buckets 2049 ... 2100, and simply do a list prepend operation: O(1), as with the others * we make all allocation requests from these buckets return the next bucket (!!), thus guarantee'ing our requested fragment. Examples: malloc(18K) -> now you always get a 32K+ frag, but instantly! malloc(37K) -> now you always get a 64K+ frag, but instantly! * this does not make F_MALLOC more wasteful, since the extra frag space gets split anyway into a new fragment, with the two eventually coalescing together again thanks to commit bdaaf60b2c 2023-06-20 Bogdan-Andrei Iancu * [18ccdbe0e] : [tracer] fix bogus multiple tracing When calling the trace() function multiple times from script (to do tracing via different backends), be sure and install all the tracing callbacks (in TM, dialog) only first time. Reported by @gmaruzz Closes #3082 2023-06-19 Bogdan-Andrei Iancu * [63fe8ce89] : [uac_registrant] fix passing wrong context to authenticated REGISTER When sending the authenticating REGISTER, be sure a new context is provided. This will avoid the usage of the context belonging to the first (challenged) REGISTER. This mixup of the context was breaking the tracing of these REGISTER requests via local route. (cherry picked from commit c64766a8526c3953bd5adf45030a29a9aacb4550) 2023-06-18 OpenSIPS * [19ae25f28] : Rebuild documentation 2023-06-16 Vlad Patrascu * [8c0a9e0ae] : b2b_logic: prevent initializing B2B session on non-INVITEs This prevents crashes when the b2b_init_request() function is used on methods other than INVITE or from other routes than request routes where the INVITE SIP message is visible. Related to #3102 2023-06-16 Vlad Pătrașcu * [1e8efb7d8] : Merge pull request #3103 from Giedriusj1/master Improve passthru_prack behaviour so it actually passes through PRACKs 2023-06-15 Maksym Sobolyev * [b32313650] : Script out running of setup routine in the main process. 2023-06-15 Maksym Sobolyev * [c67898594] : Add handy howmany() macro. 2023-06-15 Maksym Sobolyev * [af8028bec] : Add support for post-fork handlers. This is to perform various cleanups after forking is done (i.e. close unused pipes etc). 2023-06-15 Maksym Sobolyev * [1839528a7] : Fix build on non-linux systems. The HOST_NAME_MAX is not portable, POSIX way to find it out is to use sysconf(_SC_HOST_NAME_MAX), but for now just fix it with ifndef. 2023-06-14 Bogdan-Andrei Iancu * [a5f85013e] : [dialog] fix too strict restrictions for get_profile_size() The function does not require any existing dialog context, so it can be used from any route 2023-06-11 OpenSIPS * [ba9586193] : Rebuild documentation 2023-06-09 Vlad Patrascu * [1e5fbeca5] : logging: complete fix in commit a4bf044 2023-06-09 Vlad Patrascu * [91c264abd] : logging: improve the format of the logging interface's own errors Align the format of the error logs from the consumers printing functions with the rest of the plain stderror logs. For the event consumer, the error logs can be sent as normally to the rest of the consumers (stderror and syslog). 2023-06-09 Vlad Patrascu * [c84fe372c] : b2b_logic: fix issues when new entities are unused New entities created with b2b_server_new() or b2b_client_new() functions would leak if they were not eventually used by a b2b_init_request() call. This would lead to pkg memory leaks and bogus errors from successive calls to b2b_init_request(). Also, fix an entity memory leak when using the b2b_bridge_retry() function for a tuple that is in a non-initial bridging state (eg. triggered by b2b_bridge_request()). 2023-06-09 Răzvan Crainea * [14e1eab55] : Merge pull request #3104 from purecloudlabs/hotfix/sipmsgops-allowed-routes sipmsgops: fix allowed routes for exported functions 2023-06-07 Ovidiu Sas * [155995b2b] : dialog/uac: fix in-dialog authentication - closes #3041 2023-06-06 Vlad Patrascu * [d148232fe] : logging: fix print buffers length check for JSON CEE format 2023-06-06 Vlad Patrascu * [e18662aa9] : logging: print log level in xlog() messages 2023-06-06 Vlad Patrascu * [a4bf04426] : logging: improve E_CORE_LOG suppression mechanism Do not stop all logs, to any logging consumer, from being printed when handling the E_CORE_LOG event in the event consumers. Only suppress the triggering of the event itself. This also fixes the blocking of OpenSIPS when xlog() is used from the event_route. 2023-06-04 OpenSIPS * [91e40b58c] : Rebuild documentation 2023-06-02 Razvan Crainea * [e767b8712] : topology_hiding: properly quote contact hdr params Thanks go to @manojmth for reporting this on GitHub Close #3090 2023-05-31 Vlad Patrascu * [6bab367f0] : Use the fixup_named_flags() function consistently Always let the fixup_named_flags() function internally set the values to NULL for unused key-value flags. 2023-05-31 Vlad Patrascu * [a050cc581] : Update the -h help message regarding the -E option deprecation 2023-05-31 Vlad Patrascu * [61ecc1047] : logging: revise the JSON CEE format * Add the "@cee:" prefix only for the syslog consumer. * Add the "hostname" and "pname" CEE mandatory fields. * Use nested objects for the function and PID fields instead of the "proc!id" and "native!function" notation. * Change the PID field to string instead of number data type. * Add the "log_prefix" field. 2023-05-31 Vlad Patrascu * [fb5b35866] : b2b_entities: trigger the E_UA_SESSION event for initial INVITEs Add ability to trigger the E_UA_SESSION event, with the 'NEW' event type, for initial INVITES handled with the ua_session_server_init(). This can also be suppressed with the 'n' flag. 2023-05-31 Vlad Patrascu * [310231822] : b2b_entities: rename ua_session_start to ua_session_client_start Rename the ua_session_start MI command as originally inteded. 2023-05-31 Vlad Patrascu * [19b6d3e94] : b2b_entities: make 'reason' param mandatory for ua_session_reply Omiting the 'reason' parameter for the ua_session_reply MI command would cause a crash in the tm module. 2023-05-31 Vlad Patrascu * [28471600b] : b2b_logic: remove leftover debugging log 2023-05-31 Vlad Patrascu * [a2f2ec645] : msrp_relay: fix check for running the socket_route 2023-05-30 Maksym Sobolyev * [c5d47538a] : Restore -E option, which has became core(5) implementation after incomplete removal in b3644964573d7. Instead of dumping core, print error message directing user to the "stderror_enabled=yes" at the script level. 2023-05-29 Razvan Crainea * [e00300c46] : rtp_relay: avoid crash when dialog/b2b not loaded 2023-05-29 Razvan Crainea * [96eac0be3] : rtpengine: add docs for via-branch-param 2023-05-25 Bence Szigeti * [2274f80b8] : sipmsgops: fix allowed routes for functions 2023-05-25 Giedrius * [d6d4c9f86] : Improve passthru_prack behaviour so it actually passes through PRACKs 2023-05-24 Razvan Crainea * [dbceae2d2] : sdp: fix crash in SDP parsing Introduced in commit 7743524 2023-05-23 Bogdan-Andrei Iancu * [397e1daa1] : Improved error logging on parsing KV flags for lookup() 2023-05-23 Bogdan-Andrei Iancu * [f9cade9d7] : Improved error logging on parsing KV flags for save() 2023-05-23 Bogdan-Andrei Iancu * [1668bc3f0] : fix uninitalized returned list of KV flags closes #3100 2023-05-21 OpenSIPS * [8264616e3] : Rebuild documentation 2023-05-19 Vlad Patrascu * [89f947b69] : [mid_]registrar: fix default flag values for lookup() and save() The default values for unset flags were not properly set if any other flags were provided to the save()/lookup() functions. Fixes #3097 2023-05-19 Vlad Patrascu * [168808757] : b2b_entities: fix incorrect entity key after loading from DB Do not generate a new random part for the entity key when loading from DB. 2023-05-19 Vlad Patrascu * [a9401510f] : logging: expose missing level filter param for event consumer 2023-05-18 Vlad Patrascu * [94acb11f5] : b2b_logic: fix crash if no B2B routes are set This fixes a crash when the 'script_req_route'/'script_reply_route' module parameters are not set and b2b_init_request() is called with no route parameters. 2023-05-18 Nick Altmann * [6c0203b7b] : Set version number for apt and yum builds 2023-05-17 Liviu Chircu * [42de07939] : Bump development version