diff --git a/ChangeLog b/ChangeLog index 7c73dc00a..b064bc30c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1423 @@ +===================== 2023-02-27 Version 5.6.4 Released ===================== + +===================== Changes Since Version 5.6.3 =========================== + +commit 383bc71cd4f3b2d5d0290f11a6c3975a58c7949e +Author: Daniel-Constantin Mierla +Date: Mon Feb 27 10:04:04 2023 +0100 + + Makefile.defs: version set to 5.6.4 + +commit c04c950deee4a421d6a978adf977a8d856da9ebc +Author: Daniel-Constantin Mierla +Date: Mon Feb 27 10:02:48 2023 +0100 + + pkg: deb specs updated for v5.6.4 + +commit 93aaf27bb49f65c42f78ecbd9942f272d79a4b10 +Author: Daniel-Constantin Mierla +Date: Mon Feb 27 09:56:17 2023 +0100 + + pkg: version set to 5.6.4 for rpms and alpine specs + +commit b27ddcd40250201ac9d9051308daa48797e8071c +Author: Kamailio Dev +Date: Fri Feb 24 14:17:07 2023 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit 614071020f123263b6e0c0cace652f88ac40f470 +Author: POIROTTE Francois +Date: Fri Feb 17 15:43:22 2023 +0100 + + kamctl: hide errors raised by "which" + + Hide error messages from "which" to avoid polluting kamctl's output + (e.g. when a JSON document is returned) in environments where STDOUT + and STDERR may be combined into a single stream (e.g. containers) + + (cherry picked from commit a229d230bca5e785670edc3901f849e93989f9fe) + +commit 74416f1fe93dad9ce62c1f31daeb6385d92c3f74 +Author: Daniel-Constantin Mierla +Date: Mon Feb 13 13:25:28 2023 +0100 + + topos: use proper field for datetime value + + (cherry picked from commit 446892331900c2303e531da55bcb494ccb2d8bce) + +commit a914333bbac7b52943dc8d9d58bf15614b6497d5 +Author: Daniel-Constantin Mierla +Date: Fri Feb 10 17:53:42 2023 +0100 + + ctl: doc - binrpc_buffer_size can get only integer value + + (cherry picked from commit 44381746e0e826e8db04597942fa4cee6cbf9175) + +commit 89a65b849a392fea8a46b1e6ae8309c764cdf81e +Author: Daniel-Constantin Mierla +Date: Wed Feb 8 15:51:37 2023 +0100 + + async: catch up on possible skipped slots due to slow tasks + + (cherry picked from commit 0a3c15239a620474bbbc7f4d2f57dda0e9aa0f58) + +commit 6796e7faeef7c0af9805b07e4f29c6924d8f3edc +Author: Daniel-Constantin Mierla +Date: Tue Feb 7 12:57:04 2023 +0100 + + lib/ims: check return of strtok(...) + + (cherry picked from commit 63095ef1bef36a35952ed265f41d87ccbc1bba70) + +commit 1107423f6af0df4d788216324d6547247fa22224 +Author: Daniel-Constantin Mierla +Date: Fri Feb 3 09:38:26 2023 +0100 + + rr: doc - fixed typos and use the proper param name add_username instead of enable_username + + (cherry picked from commit 022fa0cfc75d150fde219b8ae4f9a99b3fa2f132) + +commit b2e872799d8a694bd433193ec8157ab1d329edaa +Author: Daniel-Constantin Mierla +Date: Fri Feb 3 09:28:58 2023 +0100 + + core: typos in comments and EoL after log when parse msg fails + + - GH #3348 + + (cherry picked from commit 51fa3da96c1eacd4d679598a3305180c9e818cfb) + +commit 6f3a48124cedc04332e45e9f38f54ed5acb1027d +Author: Daniel-Constantin Mierla +Date: Thu Jan 26 09:20:31 2023 +0100 + + ims_dialog: fix module name in modparam examples + + (cherry picked from commit a4150741748779bba8e14bed286c6d64b1df7f17) + +commit ee7d314422003fc6edfbc364015499e38e18ae62 +Author: Sandro Gauci +Date: Mon Jan 23 13:38:17 2023 +0100 + + exec: docs - added security warning + + - Added warning about potential for OS Command Injection + - Updated invalid examples + + previous example gives the following error: + pv_parse_spec2(): error searching pvar "rU.txt" + + (cherry picked from commit f81f0e77c5ab67431af1f62f0e027379a3445951) + +commit d59c64514f032a73a1f6aa65051f81b8784a5713 +Author: Daniel-Constantin Mierla +Date: Mon Jan 16 12:54:48 2023 +0100 + + websocket: ignore keepalive in state WS_S_REMOVING + + - GH #3331 + + (cherry picked from commit 34c3c42b7fe44dbe88110415ec78400a7defde61) + +commit ea782be2cc29589f4dd55f0d91c11049b5280fe0 +Author: Richard Fuchs +Date: Tue Feb 14 15:01:22 2023 -0500 + + rtpengine: avoid repeated queries to same node + + If we know which node handles a particular call from the hash table, + only query that node once and then return error if it's dead, instead of + going into a pointless loop looking for other nodes to query which don't + exist. + + closes #3370 + + (cherry picked from commit bd0ce126109f40f5217053f20e687b93b2268164) + +commit 07fc4d54e1c00a155dc17c25998ab2cbf75d0862 +Author: Daniel-Constantin Mierla +Date: Fri Jan 13 12:41:12 2023 +0100 + + app_python3: use Py_SET_TYPE() from python 3.9 + + (cherry picked from commit fc75b4c3f8f9bdba320f74ddf942686c09316b56) + +commit 82caa486216930ff634e4b9eeee8184eabaf504c +Author: Daniel-Constantin Mierla +Date: Fri Jan 13 12:33:20 2023 +0100 + + app_python3: proper check of PY_VERSION_HEX for python 3.11 + + (cherry picked from commit 8546fb87e3277b675bd47eba9435f739cf3bb69d) + +commit 92f15de3d026405c749ce10fb4b11200c9b365b1 +Author: Daniel-Constantin Mierla +Date: Thu Jul 21 20:15:29 2022 +0200 + + app_python3: use new Python 3.10+ API functions for tracking execution + + - GH #3187 + + (cherry picked from commit b8bf86eb11a17c853450e5c7f81d2446cf719fbc) + +commit baa91762aa9f5ee6ede385148c6302c14537cd15 +Author: Victor Seva +Date: Thu Feb 9 11:45:29 2023 +0100 + + usrloc: correct AOR value on usrloc:contact-expired + + previously $ulc(x=>aor) had only the user part even with use_domain set + + fix #3365 + + (cherry picked from commit f3d00c91a7919207dac23ada58e59a13b9f334d8) + +commit b7f8c5a44b0f4d3e09e6cad1eaeeae7e9330cffe +Author: Sergey Safarov +Date: Fri Feb 10 16:46:04 2023 +0300 + + pkg/kamailio: fixed rpm packging for CentOS 6 + + (cherry picked from commit db634e7fb3e5913238561afb4381363bbfe58882) + +commit dafb657950f97e7431770be6d0e9f2f04634fc21 +Author: Victor Seva +Date: Fri Jan 27 08:30:30 2023 +0100 + + pkg/kamailio/deb: remove warning build-depends-on-obsolete-package [skip ci] + + > W: kamailio source: build-depends-on-obsolete-package Build-Depends: libncurses5-dev => libncurses-dev + + (cherry picked from commit 387a8ca53f179437ae173b0bd5cb8d2d4922b60d) + +commit a45f4ca901f76dae023e390d11e71873cb7e73ff +Author: Victor Seva +Date: Fri Jan 27 08:23:45 2023 +0100 + + pkg/kamailio/deb: remove lsb-base dependency [skip ci] + + * on newer version, there's no need to add it + + > E: kamailio: depends-on-obsolete-package Depends: lsb-base + + (cherry picked from commit 03755f93f98608d85591ba8aa184733e3871b92c) + +commit 3cc09ff6045c35feef5902e3cea6b313c49e8a77 +Author: Henning Westerholt +Date: Wed Jan 25 07:59:39 2023 +0000 + + core: fix memory leak related to Require header parsing, this header also need to be freed + + (cherry picked from commit 6c372bf644e1c9afa867433e5992e347c8fc4ff6) + +commit fe0c4d5efdff79f76a20b3519f41388782fae710 +Author: Sergey Safarov +Date: Thu Jan 19 11:56:18 2023 +0300 + + pkg/kamailio/obs: used mariadb connector instead of mysql + + (cherry picked from commit ea99c8fc235334d4dd48868f74ab5c62662942e6) + + +===================== 2023-01-11 Version 5.6.3 Released ===================== + +===================== Changes Since Version 5.6.2 =========================== + + +commit ef69c4b47257204d9bcac31ec11c4873042c3787 +Author: Daniel-Constantin Mierla +Date: Wed Jan 11 09:10:19 2023 +0100 + + Makefile.defs: version set to 5.6.3 + +commit f656d8c6f423b75110b47b83ffee4ed2f9cc509b +Author: Daniel-Constantin Mierla +Date: Wed Jan 11 09:09:45 2023 +0100 + + pkg: version set to 5.6.3 for rpms and alpine specs + +commit 76c2caf7d3bce664e978a18ce3eaa8385d4b4bd9 +Author: Daniel-Constantin Mierla +Date: Wed Jan 11 09:09:27 2023 +0100 + + pkg: deb specs updated for v5.6.3 + +commit 904cd586eff82c6a844cf028cb00652bc0470a0c +Author: Kamailio Dev +Date: Mon Jan 9 09:02:11 2023 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit af7d9413385cd03da918777072e7246863849dbb +Author: Henning Westerholt +Date: Mon Jan 9 07:57:26 2023 +0000 + + p_usrloc: fix default transaction isolation level (gh #3324) + + (cherry picked from commit ff647697724decb7440dfe3758857a06ab008979) + +commit efd90dc303221208a714ecc69daf744c39d47f0d +Author: Kamailio Dev +Date: Fri Jan 6 12:47:01 2023 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit 4cea7dc033e34d019a7018d5b0eef39c0be508cd +Author: Daniel-Constantin Mierla +Date: Tue Jan 3 11:06:00 2023 +0100 + + core: rpc - removed old todo, whitespacing and define guards coherence + + (cherry picked from commit 7a3573002fddffd74999c4cd5a859a4019d0227a) + +commit 6178db33a2df671133eba654b856c0d8136462c4 +Author: Daniel-Constantin Mierla +Date: Wed Dec 28 10:37:04 2022 +0100 + + xmlrpc: coherent check of RET_ARRAY as a flag + + (cherry picked from commit 7364a8a67e19960d51a632108f39d7d2d289f8ce) + +commit 1f3ad963636e62431d7ec8c113c90e67440437c7 +Author: Daniel-Constantin Mierla +Date: Tue Dec 20 11:17:07 2022 +0100 + + core: utils/tmrec - removed unused function + + (cherry picked from commit a33c9bb24f01195c5654e9699079eb3d4548692e) + +commit 74fdd2e61043df0961bb19f46a56a525bf58dd0b +Author: Daniel-Constantin Mierla +Date: Tue Dec 20 11:15:30 2022 +0100 + + cplc: removed unused function + + (cherry picked from commit 0f3ce4029ee1f52804566dc945c7e0914f01405d) + +commit 0ba02031953029c3e4820264503400cbd9e14924 +Author: Daniel-Constantin Mierla +Date: Fri Dec 9 10:29:37 2022 +0100 + + core: tcp - debug message on no connect + + (cherry picked from commit 5fee7d818f18afcab4d2e17231d2e4eab79b7b48) + +commit 7e12f4f5951ebcd40bc7779b6c7bf71081c38481 +Author: Rick Barenthin +Date: Tue Dec 6 10:39:18 2022 +0100 + + tm: cleanup parsed body at the end t_continue_helper + + - if t_suspend and t_continue are used for replies + and in the called route in t_continue the body of + the sip message is parsed the pkg memory of the + parsed body is leaked + + (cherry picked from commit f409a8c9f6fde33eaf8b428887e219b56740b0a5) + +commit 3bddd542cdd7a6f56e6dee9a7db526a09e60271c +Author: Daniel-Constantin Mierla +Date: Wed Nov 23 10:51:04 2022 +0100 + + core: safety check for freeaddrinfo() param on log_init() + + - GH #3281 + + (cherry picked from commit 6438573ce2d138d83cc1fa7cd88834c48d623ac6) + +commit caf8465d6f56c5891b8398814d3e66ad4996b386 +Author: Daniel-Constantin Mierla +Date: Mon Nov 21 11:28:32 2022 +0100 + + sipcapture: debug message with header offset and address family + + (cherry picked from commit 7f258d97431a9a4bccf8155def52c9e9070c9f1d) + +commit 645f3ed8dbb6260aae870629e026d31ce5aa433b +Author: Daniel-Constantin Mierla +Date: Tue Nov 15 17:24:23 2022 +0100 + + app_python3: docs - added note about how Python modules used in script can be reloaded + + (cherry picked from commit 34d60608bea449ab7258a5d88894651303b80adf) + +commit af3a249364b20e46cc80a6ae6ea8c04c9d10513b +Author: Daniel-Constantin Mierla +Date: Mon Nov 7 21:11:56 2022 +0100 + + websocket: more details on debig messages + + (cherry picked from commit e7bd1570e3788e9d04047b4d1d00cb8bd8b172d3) + +commit a2c4e0efdb03ba31ddb295fbfd2d95a393480906 +Author: Daniel-Constantin Mierla +Date: Fri Nov 4 09:55:22 2022 +0100 + + secsipid: ensure headers are parsed + + (cherry picked from commit a0d9deb9f852f887bed7c0809f3056b5f75379c8) + +commit bea811e2a6e8b12f8491b7e46bcc58ad66c9e225 +Author: Daniel-Constantin Mierla +Date: Fri Nov 4 09:28:23 2022 +0100 + + secsipid: debug message if identity header is not found + + (cherry picked from commit 0920aa1a27565bc52fd1ff9f4b9fc31dbd0d2a75) + +commit a0e89d8fad7e764478b0ff69e1fe335fcd7104a9 +Author: Daniel-Constantin Mierla +Date: Thu Nov 3 10:20:10 2022 +0100 + + secsipid: iterate through all Identity headers + + (cherry picked from commit cd3b776649e652b5d27b2718c22f08736b1e9e84) + +commit 72a09f0fc3912e07d2d624079945d7894c7916d3 +Author: Daniel-Constantin Mierla +Date: Thu Oct 27 10:07:36 2022 +0200 + + app_python3: note about kemi symbols and python reserved words + + (cherry picked from commit 0d6d434a92ae69cf1e503f07ffa6f46a9948593e) + +commit c0f29178edac11519650f55236cf3d5f0235ec71 +Author: Daniel-Constantin Mierla +Date: Wed Oct 26 16:11:42 2022 +0200 + + siputils: export add_uri_param() to kemi + + (cherry picked from commit ad4faf03628db45d30f27358b81afd8e0bee03c0) + +commit eb661123481af272e5854e5f0ce0a09f1f6a4d37 +Author: Daniel-Constantin Mierla +Date: Tue Oct 25 18:45:33 2022 +0200 + + rtp_media_server: init global variables + + (cherry picked from commit 3bcef382b810b4cd2a5a03b079086fee3bbbe187) + +commit 2d8be55fec53d08b384896b0d380ccfd8b3de650 +Author: Daniel-Constantin Mierla +Date: Tue Oct 25 10:16:07 2022 +0200 + + nats: formatted module exports structures + + (cherry picked from commit d5afbf0fb2f006d38fdfe32f6d2094638ad938b0) + +commit 373c53ea9d28d3af9af051cc36a3d6f3fdcb2c58 +Author: Daniel-Constantin Mierla +Date: Tue Oct 25 10:08:42 2022 +0200 + + nats: init global variables + + (cherry picked from commit 619ff95d760c9b98df515ddccc5aa1e39275beeb) + +commit 85c7085068bf6ea602b0553874030ee738c4d9dc +Author: Daniel-Constantin Mierla +Date: Tue Oct 25 10:06:06 2022 +0200 + + nats: safety check for nats_workers and nats_pub_workers on mod destroy + + (cherry picked from commit 51d2f707562f70749dd02727a34dc5e4fa20712e) + +commit e48730f897ec66aad1d87b75ef419f3d34baa41b +Author: Daniel-Constantin Mierla +Date: Mon Oct 24 18:52:35 2022 +0200 + + pv: set str type for $hfl() + + (cherry picked from commit 51fc76737319f9b06ee4aa86e8c15c3fd5b62248) + +commit 53f6395131ed53bf2d019dfb784d4cfb1be12395 +Author: Daniel-Constantin Mierla +Date: Wed Oct 19 17:24:17 2022 +0200 + + rtp_media_server: removed lib bcunit linking + + - not required for the code + - tested on debian 11 + + (cherry picked from commit 38f17e622e8539883a7213acce3aed0635b11aff) + +commit b78a813f0409cec8c58420f0bd43058b07327739 +Author: Daniel-Constantin Mierla +Date: Mon Oct 17 22:45:23 2022 +0200 + + pv: check for contact address in pv_get_hfl() + + (cherry picked from commit b411303502282b2f4d32ad299ed5bcfd0852e902) + +commit f625473cceabd94fcc12df387d71399831af2d5a +Author: Daniel-Constantin Mierla +Date: Fri Oct 14 11:17:25 2022 +0200 + + acc: init to 0 the arrays allocated for accounting + + (cherry picked from commit 721ec276f2bfcc18236e0b9de1f5552f505f0cda) + +commit 6d19964651f72715eb643775f97db801edc86cd7 +Author: Daniel-Constantin Mierla +Date: Fri Oct 14 11:15:38 2022 +0200 + + acc: free core attributes for cdrs sent to log file + + (cherry picked from commit 932062fc84048eaa38144cf0bbfa7a2cae95a258) + +commit 46cd2b6732a1bcd49c31a4a4a1173d0b27ce39a1 +Author: Daniel-Constantin Mierla +Date: Thu Oct 13 11:59:53 2022 +0200 + + kex: added fixup free functions to module exports + + (cherry picked from commit c8bd10f791ef7aa48a16104472b039a8ca1a53c5) + +commit ace6ec13df233c5d6c55b5e627118883f4433efc +Author: Daniel-Constantin Mierla +Date: Thu Oct 13 09:40:44 2022 +0200 + + nats: safety check on nats_workers inside mod destroy + + (cherry picked from commit bc97b7adf77406dfc08b57b4a7df912a76d324e5) + +commit 0ead35429a85800105178f7a8427d94ad390da33 +Author: Daniel-Constantin Mierla +Date: Tue Oct 11 10:17:34 2022 +0200 + + keepalive: removed redundant checks + + (cherry picked from commit cbe6cef58da8de7efa18c4e34458a81176d23e42) + +commit fc2f1b72781e3782b020978e9c188a8e664251ae +Author: Daniel-Constantin Mierla +Date: Tue Oct 11 09:40:56 2022 +0200 + + core: dns cache - check pointer and small formatting + + (cherry picked from commit 611cfede181f4cd61f576068708975efe5f66ffc) + +commit fecfac448f594283c5d5a9470359cb8aa46f04d6 +Author: Daniel-Constantin Mierla +Date: Mon Oct 10 13:01:21 2022 +0200 + + ims_registrar_pcscf: go to error to free variables on failure cases + + (cherry picked from commit 609962b49a79dc5650f72470f4b03746d2e6db46) + +commit b2f0545ec4b596767aad280ee07fd6a027c9d119 +Author: Daniel-Constantin Mierla +Date: Mon Oct 10 11:44:57 2022 +0200 + + cdp: use empty string for debug messages when value is not set + + (cherry picked from commit d39f12ced4c79f3b7d60b5477f5065d9589547e8) + +commit 0637f42a63b79053fb7114690e2163719ee6bfe1 +Author: Henning Westerholt +Date: Mon Oct 10 07:39:56 2022 +0000 + + app_python: add a note that python2 is deprecated and app_python3 should be used + + (cherry picked from commit 7306e7683fd50420e93b44ec5593705194bf3616) + +commit e292ba270c9a924e0849ef1ad90af6df0272640b +Author: Kamailio Dev +Date: Sun Dec 18 09:16:58 2022 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit a3f5abb0852d8c7d4006724639605cc26e74806b +Author: Дилян Палаузов +Date: Sat Dec 17 12:54:30 2022 +0200 + + registrar: typo + + (cherry picked from commit c738a65c2fd0a40c3cdc236a3d3b48b0d18add21) + +commit b3b066b9f4164bdb7e502b42f522b42d3b6cce66 +Author: Дилян Палаузов +Date: Sat Dec 17 12:54:52 2022 +0200 + + core: typo instaNces + + (cherry picked from commit 9cff22564db3664faa7b4b5bef86f5f71ff87bc8) + +commit 3d0efce20275e7db08d7727a02e58c694097f0d6 +Author: Kamailio Dev +Date: Sat Dec 17 10:32:37 2022 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit 85860f834294d472d5e1fdfd8a23b27ef83997d3 +Author: Дилян Палаузов +Date: Fri Dec 16 16:36:04 2022 +0200 + + app_lua: Document that Lua versions 5.2, 5.3 and 5.4 can also be used. + + since commits 2e85bb541ff19e4b007 and 673dab16593d9a70b . + + (cherry picked from commit 3baa075469d4c349b31c558692137318c0533921) + +commit 1c8aa0d993bdd62b66a32853b81e1240ad459949 +Author: Дилян Палаузов +Date: Mon Dec 12 19:29:35 2022 +0200 + + xmlrpc: typos an → and + + (cherry picked from commit 5e7c0dfc626117f9069846cc791bacb5371c0346) + +commit 32472814294689b41591a889e06223ec669dfd08 +Author: Дилян Палаузов +Date: Mon Dec 12 19:45:49 2022 +0200 + + xcap_client: typos a/an + + (cherry picked from commit 4a11beabb586f8615e3518456642088cf398de29) + +commit 94050e45beefe31af9565cf48e72581cfee7354f +Author: Дилян Палаузов +Date: Mon Dec 12 19:41:25 2022 +0200 + + usrloc: typos a/an + + (cherry picked from commit aeb5d17914d8674bd6d4769b8c695fd775ceeea5) + +commit 8b41427ea19c10676d061fc5f270e41d525a5a24 +Author: Дилян Палаузов +Date: Mon Dec 12 20:00:16 2022 +0200 + + userblocklist: typos a/an allowlist + + (cherry picked from commit 3559be38f361ce58330d9f20248774200248362f) + +commit 05c2c059513fc45be3a777b660066632d898e580 +Author: Дилян Палаузов +Date: Mon Dec 12 21:22:51 2022 +0200 + + uid_uri_db: typo a/an backwards incompatible + + (cherry picked from commit 435f39330bc1534cde53501df3e87cfd21f00899) + +commit a676080c8d0d5f16642ddb071d7f7ec8049b677c +Author: Дилян Палаузов +Date: Mon Dec 12 21:23:08 2022 +0200 + + uri_db: typo a/an backwards incompatible + + (cherry picked from commit 74dbc074740b3173ac74c8a3a4b97272ff97c7ba) + +commit 689865fbd6750d3c656947e7ab63141708eec3c0 +Author: Дилян Палаузов +Date: Mon Dec 12 21:22:27 2022 +0200 + + uid_domain: typo a/an backwards incompatible + + (cherry picked from commit b2ead7fc6356e0d4479217ddc713cbcb9edfebc2) + +commit 26a7a05af607fd49f288aa18ed10a76b6c5a3498 +Author: Дилян Палаузов +Date: Mon Dec 12 21:22:05 2022 +0200 + + uid_avp_db: typos a/an extra + + (cherry picked from commit 4639db37a599e31cdabadcca29a28345d01e4109) + +commit 5d28856d79dc172dde7531cfdbc98a45e734fc0c +Author: Дилян Палаузов +Date: Mon Dec 12 21:21:43 2022 +0200 + + uac: typos a/an PV; is send → sent + + (cherry picked from commit 793da45e083713f958b8ca33f99fad67f82b3a5a) + +commit 99d675345b963c0173574a0c5fba5310c55178dc +Author: Дилян Палаузов +Date: Mon Dec 12 19:46:21 2022 +0200 + + tm: typos a/an + + (cherry picked from commit 861ba0a277f276c577d3d3234c75265b548e09e0) + +commit ea72045d0e04a3d80f8c614adc33b0dbc99628ac +Author: Дилян Палаузов +Date: Mon Dec 12 20:07:18 2022 +0200 + + tls: typos a/an + + (cherry picked from commit 6d8acd1632156f733bff2c7b7ef94789dfcf8a17) + +commit 31224d0789dea31b046e9f01ed72ffc5f3b60f97 +Author: Дилян Палаузов +Date: Mon Dec 12 20:07:42 2022 +0200 + + sst: typos a/an + + (cherry picked from commit cabb462bfbc6a1fc9c5dc59c882b6199217be1a7) + +commit 6b959e52a9b74122cce73d2436e5f439448a97fb +Author: Дилян Палаузов +Date: Mon Dec 12 20:05:20 2022 +0200 + + snmpstats: typos a/an + + (cherry picked from commit 14aeceffebd5f093ae9f23287b7b74b34c2936ca) + +commit bf69f8222a9f60f7f8ed048e45386d0713f3591f +Author: Дилян Палаузов +Date: Mon Dec 12 20:13:35 2022 +0200 + + siputils: typos a/an + + (cherry picked from commit 18cbc0fa0a1839b01b3d0134bd593372ab95818e) + +commit 52a1cb7b72ea969b67326da57b93533452c45fea +Author: Дилян Палаузов +Date: Mon Dec 12 21:21:18 2022 +0200 + + sipt: typos a/an ISUP + + (cherry picked from commit 3b31fbe6090e46cf87cb27039589d7774a94939e) + +commit 7e5872ef5d07324d9f475910b5b0cbb8fa365f22 +Author: Дилян Палаузов +Date: Mon Dec 12 21:21:03 2022 +0200 + + sipcapture: typos a/an listen + + (cherry picked from commit dcd357649571d32e2d2689ab332ffe9590b3f44f) + +commit 55a650b7966c67b4d528b9ffd72642bdd4f3aba7 +Author: Дилян Палаузов +Date: Mon Dec 12 20:29:07 2022 +0200 + + seas: typos a/an + + (cherry picked from commit 48f9b1f6cb57096a1d6c1a9d6bebd8275fd00a97) + +commit 505820834c9dbc9dc965e052a260137851a3cfa6 +Author: Дилян Палаузов +Date: Mon Dec 12 20:32:40 2022 +0200 + + rtpproxy: typos a/an + + (cherry picked from commit d9bdb46f98f4ff047e05e0dbebb5b8099c37aaec) + +commit cb47ca453027b24e106c5b4fa8f17a8df5a34bff +Author: Дилян Палаузов +Date: Mon Dec 12 20:32:14 2022 +0200 + + rtpengine: typos a/an + + (cherry picked from commit 550a46a6bd432cd15307fd50e027ce153252be70) + +commit 2911bc5faae3557ecc2a457622ce353616344dcb +Author: Дилян Палаузов +Date: Mon Dec 12 21:20:38 2022 +0200 + + rls: typos a/an + + (cherry picked from commit bcf5f74e3358ac525eff0be41f3f8a6cef76fc6a) + +commit 26028b6d4a4d13750424e1fa69ec38b86aa0c709 +Author: Дилян Палаузов +Date: Mon Dec 12 21:20:17 2022 +0200 + + registrar: typo double a + + (cherry picked from commit 78a60f39c74d89f84abccad23aa4fe5dbd3f5dd4) + +commit 5a7219387ae6a55edc7544a6c114964878b943d9 +Author: Дилян Палаузов +Date: Mon Dec 12 21:16:42 2022 +0200 + + ratelimit: typo a/an Kamailio + + (cherry picked from commit 04fa3a2e6a8c5c45e1ebb7d6b9c14b61e55448b4) + +commit 7d7a5a3bdcedf72f550bc58a910aee9ad52d8ff7 +Author: Дилян Палаузов +Date: Mon Dec 12 21:18:56 2022 +0200 + + rabbitmq: typo a/an new + + (cherry picked from commit 063d06b78c88eb3d7727cba369089481847bb7de) + +commit 1a47cf3e78a7cbc2197fd75fc6e490595db0d27b +Author: Дилян Палаузов +Date: Mon Dec 12 21:18:34 2022 +0200 + + pv: typo a/an parameters string + + (cherry picked from commit 64a0f0d99c0de9a60b73010cbc87e4a81b655f3e) + +commit 27100a4b982272618f62a756bf18343c6aefd549 +Author: Дилян Палаузов +Date: Mon Dec 12 21:18:03 2022 +0200 + + pua_dialoginfo: typo a/an dialog-info + + (cherry picked from commit 4756758b30faf5e106f8b9cfe7f762a27e2e1ff9) + +commit 46d4a8c9283448727474e252754b8ba805daee05 +Author: Дилян Палаузов +Date: Mon Dec 12 21:17:38 2022 +0200 + + pua: typo a/an transaction + + (cherry picked from commit 10a7e7735b2f85cd0fce6fb4a305222fcf980f21) + +commit 8975b41b0d58995f06bfc131408032bc3a4ef0f5 +Author: Дилян Палаузов +Date: Mon Dec 12 21:17:15 2022 +0200 + + presence_dialoginfo: typo a/an signed + + (cherry picked from commit 3cff94c3d5fd2d93e466207182023c42b0945cec) + +commit 7755d186732bd65091d2d07681b59ea6d78e170c +Author: Дилян Палаузов +Date: Mon Dec 12 21:15:39 2022 +0200 + + presence: typos a/an + + (cherry picked from commit 069b7bde2ba133c4cab4dc976dc064c77f66239d) + +commit e7735db0b269927ea1b29719c5123a16c8b74401 +Author: Дилян Палаузов +Date: Mon Dec 12 21:14:12 2022 +0200 + + pike: typo a/an IP node + + (cherry picked from commit 3e4e735cb78e3d0ed5aeb4da64bdb01a54e36a28) + +commit 71ae6613e0783b2b05797c041856f3d1979b8740 +Author: Дилян Палаузов +Date: Mon Dec 12 20:30:04 2022 +0200 + + permissions: typos a/an + + (cherry picked from commit e2dda4d4e4d3201080d0a94e534aa320d8e80a95) + +commit 8682d69573144a47283420e5ebaf072c6b17590e +Author: Дилян Палаузов +Date: Mon Dec 12 20:35:00 2022 +0200 + + peering: typos a/an + + (cherry picked from commit 29b3f25fa63ef3de9c2b0c8e571e9a1b37a64f93) + +commit 0aa296365d131f6c2d2ec04d3452e845e1cc1961 +Author: Дилян Палаузов +Date: Mon Dec 12 21:13:50 2022 +0200 + + pdt: typo a/an entry + + (cherry picked from commit dd02862266a42fd22ef93f2788648c3a3c78ae95) + +commit 0378446680f60d02cf551fc249740061c8c6237d +Author: Дилян Палаузов +Date: Mon Dec 12 21:12:51 2022 +0200 + + pdb: typo a/an pseudo-variable + + (cherry picked from commit a93b757ea092db2e6e6b1cc89a3e7ddb2fb5c757) + +commit 306a5b1c43211206ca134c96be76bb8c201ac5ef +Author: Дилян Палаузов +Date: Mon Dec 12 21:12:24 2022 +0200 + + p_usrloc: typos a/an + + (cherry picked from commit 69a72618ceb6438c36301f58868dd7e80022355c) + +commit b28b6664361e380be3ed666f485227f1a08e75d0 +Author: Дилян Палаузов +Date: Mon Dec 12 21:11:37 2022 +0200 + + osp: typo be send → sent + + (cherry picked from commit c5d73f86e19172c2fc1293e6e10fa2903032e7c5) + +commit eb49f0ff9a7cb78a50a5b6d2e8b597d2833b6bb7 +Author: Дилян Палаузов +Date: Mon Dec 12 21:10:54 2022 +0200 + + ndb_cassandra: typo a/an integer + + (cherry picked from commit b208f915df8b7b5f83bbf95ab622f3773f76c839) + +commit f66c15c9019348a31e19d9c66f6128f8d50a1130 +Author: Дилян Палаузов +Date: Mon Dec 12 21:10:29 2022 +0200 + + nats: typo a/an event + + (cherry picked from commit 5357ffdd0111554967876e34befa14fee2240815) + +commit 59120fdf3da8e19f6253e946797a7ec44e88837d +Author: Дилян Палаузов +Date: Mon Dec 12 21:10:13 2022 +0200 + + nathelper: typo a/an IPv6 reference + + (cherry picked from commit 942a8a89e53a3a77109acdc2bc3c34468faa1b75) + +commit 7823a618c7358da9bf157d5cde0ec9ae135f0d36 +Author: Дилян Палаузов +Date: Mon Dec 12 21:08:57 2022 +0200 + + nat_traversal: typos a/an + + (cherry picked from commit e69a729fba3ed2b527f66ccf5640156eeb9ae36d) + +commit 866d72af08022c18314f3d6de7829652a8229955 +Author: Дилян Палаузов +Date: Mon Dec 12 21:04:39 2022 +0200 + + mqtt: typos a/an + + (cherry picked from commit 0367dab157f5b755bf9bd2cc0452bae6eaea71e2) + +commit e8a76b9def95bb4d8a2cd986bbedff6e38cfd476 +Author: Дилян Палаузов +Date: Mon Dec 12 21:03:39 2022 +0200 + + matrix: typo a/an pseudo-variable; spelling is send → sent + + (cherry picked from commit 7a595ea7acb43149476bf033ac67e7fdd27e06d2) + +commit 9b747286db23ac59eae3e70ef30b6e9c6450099f +Author: Дилян Палаузов +Date: Mon Dec 12 21:03:09 2022 +0200 + + mangler: typo a/an filter + + (cherry picked from commit 01a70ae52aef6926098feac64ca79605e16fa058) + +commit 9c22e7c41d781d28cf78e91c1b5bf086a1aefc3e +Author: Дилян Палаузов +Date: Mon Dec 12 21:02:43 2022 +0200 + + lcr: typos double a + + (cherry picked from commit 3c36f8577404aa0751d1804746e1b84f58534a78) + +commit 58361306239d4bf0bb56d817ed9bdf783576dfd1 +Author: Дилян Палаузов +Date: Mon Dec 12 21:01:55 2022 +0200 + + kafka: spellig atTribute + + (cherry picked from commit 648a1b7f4bdf9d0a99815dc6a3b3bd8f3450884c) + +commit 45d16fcfc292120b5008db1e58ea47d5389697ca +Author: Дилян Палаузов +Date: Mon Dec 12 20:57:23 2022 +0200 + + ims_usrloc_scscf: typos a/an IMPU + + (cherry picked from commit 8165d77587106d17f11785299dabd8fc10d58f87) + +commit 55e2cd2a8024e3bed4e1ada74923bc16280e3970 +Author: Дилян Палаузов +Date: Mon Dec 12 20:54:38 2022 +0200 + + ims_registrar_scscf: typos a/an + + (cherry picked from commit b648b2cb2ef77b4ab1ff42a5cc16db1f059b1e0b) + +commit 9b60dc8070c6b9d887a8468e7c4712c89e0bab19 +Author: Дилян Палаузов +Date: Mon Dec 12 20:56:37 2022 +0200 + + ims_registrar_pcscf: typo a/an IMPU + + (cherry picked from commit 58ba041e536c0f667e4bae8c4e1be48add0c0815) + +commit 56e2ae99f443b30e2ad9bc931192aed51a774728 +Author: Дилян Палаузов +Date: Mon Dec 12 20:56:11 2022 +0200 + + ims_qos: typos a/an + + (cherry picked from commit 6804318f811833167989d4d9f7bc4e19baa211c8) + +commit be0cdd0c39c51288ceca842b1ed1efa6cc8cc87f +Author: Дилян Палаузов +Date: Mon Dec 12 20:55:04 2022 +0200 + + ims_icscf: typos a/an + + (cherry picked from commit f5c0ee927c4b61a623b9c93e476f68ac0a050558) + +commit 5c19f106aadd80b61314e7bd18a3f2532d749d0c +Author: Дилян Палаузов +Date: Mon Dec 12 20:55:37 2022 +0200 + + ims_isc: typos a/an + + (cherry picked from commit e1a8136fdad06bce8bedaca58ad38e0e8d8b1c51) + +commit 0af00e49fc67b82e25a3fde75fada9258d697f2f +Author: Дилян Палаузов +Date: Mon Dec 12 20:53:56 2022 +0200 + + ims_dialog: typos a/an + + (cherry picked from commit dc5df5d917e9443ef4daa47e60d673fe0e547f85) + +commit 6aee80d57e8350525fb59017fc7e817ba332e08a +Author: Дилян Палаузов +Date: Mon Dec 12 20:51:06 2022 +0200 + + ims_charging_mod: typos a/an + + (cherry picked from commit dc499e21823a676f96fa43137d4eaa58b89de444) + +commit 844c92770f7fe4e36b7500e0d1b4b5513e96cd1d +Author: Дилян Палаузов +Date: Mon Dec 12 20:50:34 2022 +0200 + + ims_auth: typos a/an + + (cherry picked from commit 3846d9fdb24be2e3aeb2e3199a91c66661820423) + +commit 6903199f300db89b0d7dc027acf6238b318cf3b7 +Author: Дилян Палаузов +Date: Mon Dec 12 20:49:37 2022 +0200 + + imc: typo a/an user + + (cherry picked from commit 6f06537d0e5b661c91d413a1d3a48d2203dd749a) + +commit 177f3e19fe0e99eb717bef5eb178af685a6c85db +Author: Дилян Палаузов +Date: Mon Dec 12 20:49:20 2022 +0200 + + http_client: typo a/an value + + (cherry picked from commit 830b136f202913887c25ef46968351741d17fda2) + +commit 3ef572bbec9900a4f2fef0e9edc911729c33a873 +Author: Дилян Палаузов +Date: Mon Dec 12 20:47:49 2022 +0200 + + h350: typo a/an Kamailio + + (cherry picked from commit 14d4a2203212020df9a8338504636cc9aeb817ed) + +commit 7e8e3dde3f6bee81b6fa80e7deb5fe22137d43f3 +Author: Дилян Палаузов +Date: Mon Dec 12 20:29:40 2022 +0200 + + gzcompress: typos a/an + + (cherry picked from commit fc00785e67797b43b0d3029891d107766a9e20fe) + +commit 6c4cdc67be3eeccb96dde1149d77500649e9811e +Author: Дилян Палаузов +Date: Mon Dec 12 20:46:28 2022 +0200 + + erlang: typo a/an name + + (cherry picked from commit a4839ae4102d9df742b4c6b7077ab080364563b1) + +commit 30274cfe1f4a68e0101de726875f2229a1de2fbf +Author: Дилян Палаузов +Date: Mon Dec 12 20:27:43 2022 +0200 + + drouting: typos a/an + + (cherry picked from commit 895f7339474bfe9d947afe8980234ba7a345bc9b) + +commit 925b254cf995a3bd1422fc72bfad1d1cff5fc1b3 +Author: Дилян Палаузов +Date: Mon Dec 12 20:45:46 2022 +0200 + + domainpolicy: typo a/an backwards + + (cherry picked from commit 2d246fb8f4768df2c25d18c47ad1f43a0e698e4c) + +commit eb1e8338324493cd9fa60c199a2c6c46d93022ca +Author: Дилян Палаузов +Date: Mon Dec 12 20:45:17 2022 +0200 + + domain: typo a/an backwards + + (cherry picked from commit 772e74a5b036974ba856aba0689af21ceefa27c6) + +commit 3e9883c34a647a166f82c89e3690a070ea726f4b +Author: Дилян Палаузов +Date: Mon Dec 12 20:44:37 2022 +0200 + + dispatcher: spelling be send → sent + + (cherry picked from commit e8fd436486e69c04a791c29196f353896f85d772) + +commit 12063efa4a1c368092c5a63cc0a8ee9a29819cb3 +Author: Дилян Палаузов +Date: Mon Dec 12 20:42:50 2022 +0200 + + dialplan: typo a/an script + + (cherry picked from commit ea6ba98b9a018a07e894100b0ede662648d88edf) + +commit 9713e3925b7e59e678ab50307f14853cfd76703d +Author: Дилян Палаузов +Date: Mon Dec 12 20:42:05 2022 +0200 + + debugger: typos a/an breakpoint + + (cherry picked from commit e663654fdea87e1be6b30da355f8bf5020ad4507) + +commit 5edc748a388b79b9b8b5d978ee472fab6818010e +Author: Дилян Палаузов +Date: Mon Dec 12 20:41:18 2022 +0200 + + db_postgres: typos a/an + + (cherry picked from commit 137680b9ce564bed5c6a40a448feb1bd6f9ff0ce) + +commit 626af6bb548206476de52167abe7f15ceb08644f +Author: Дилян Палаузов +Date: Mon Dec 12 20:40:29 2022 +0200 + + db_mysql: typo a/an connection + + (cherry picked from commit 6bf0eb63f9c3db33e2fa70a2207e3da3bcf74051) + +commit d2ac4093bd80461f52efb5c998ea8fec9fad2b68 +Author: Дилян Палаузов +Date: Mon Dec 12 20:37:13 2022 +0200 + + db_cassandra: typos a/an + + (cherry picked from commit 918b73c92ed86599e67adda2b1f7a864c500efb5) + +commit 251a38d689d952d6ac089be1e2cb50d1a82eebff +Author: Дилян Палаузов +Date: Mon Dec 12 20:31:31 2022 +0200 + + dialog: typos a/an + + (cherry picked from commit c5e128fec48d5572bbad898c879c4376f141e619) + +commit 11d16a3746ed6f680120db38168e8928fe528f37 +Author: Дилян Палаузов +Date: Mon Dec 12 20:28:24 2022 +0200 + + ctl: typos a/an + + (cherry picked from commit 21ce96a931e578be8e9a6897b406af63f18451e5) + +commit 04dbe1a1c3a08e93bcf766a2fa2cab1474b6434f +Author: Дилян Палаузов +Date: Mon Dec 12 20:36:25 2022 +0200 + + crypto: spelling + + (cherry picked from commit ab8f951917609f373bc62b6bc93baa33559e336c) + +commit fb14da427cd26db731243b5208827217572aca9e +Author: Дилян Палаузов +Date: Mon Dec 12 20:35:52 2022 +0200 + + cplc: typos a/an + + (cherry picked from commit 3ac5a9f78f4c8e1b5b6f660d442b15a72336d80d) + +commit 9f47746ca3606e0129c011fed1fa1a5eff449153 +Author: Дилян Палаузов +Date: Mon Dec 12 20:35:30 2022 +0200 + + cfgutils: typos a/an + + (cherry picked from commit 0e3ad10aba2d82d7eccebbe608fda15e4f49ef20) + +commit a7cca608ad1d82df78cef69d2dc089c5af7818b3 +Author: Дилян Палаузов +Date: Mon Dec 12 20:14:25 2022 +0200 + + cdp: typos a/an + + (cherry picked from commit 96d720c7c7c495ac3cf556700c76b20fedec8ec3) + +commit 11c158cc88b8d67d6ea1dca9c917319742e9a367 +Author: Дилян Палаузов +Date: Mon Dec 12 20:26:08 2022 +0200 + + carrierroute: typos a/an + + (cherry picked from commit f5986119f9a55c3c91f61788ad3b3f00f2399585) + +commit 917da580ddee5557aa85c2d35df1c1efba0c4dc9 +Author: Дилян Палаузов +Date: Mon Dec 12 19:51:24 2022 +0200 + + call_obj: typos a/an increasing + + (cherry picked from commit 3f827af3e834d603f72a64b7d2142aa94b83cf52) + +commit ea41c8b587228bf5324669941dd05af09792503a +Author: Дилян Палаузов +Date: Mon Dec 12 19:50:46 2022 +0200 + + avp: typos a/an string + + (cherry picked from commit 2e86db5adf67b4d30989055bd960c2a8632f64d3) + +commit 0a6493ccd11f2d7503a848fb02fa82670c81ca14 +Author: Дилян Палаузов +Date: Mon Dec 12 19:50:20 2022 +0200 + + auth_radius: typos a/an + + (cherry picked from commit f15ef784f9abddabd8b97eb4ca6e89054250b418) + +commit 322f59b7086c3c5a95026f905e8ca419b7c37370 +Author: Дилян Палаузов +Date: Mon Dec 12 19:49:09 2022 +0200 + + auth_identity: typos an other → another + + (cherry picked from commit 5836706a63368d8424dc2bed8426bf1ac4bdc097) + +commit b2b0ed65b1e23aaf0fdc7adc7e6e6cfd93c59878 +Author: Дилян Палаузов +Date: Mon Dec 12 19:48:44 2022 +0200 + + auth_diameter: typos a/an + + (cherry picked from commit 4a4dfb6e92c1abf5c37e65ac571cc88e0ec13025) + +commit 5fa694c15612bcbecaf1608e7d02eac9f2bfeddf +Author: Дилян Палаузов +Date: Mon Dec 12 19:48:16 2022 +0200 + + auth_db: typos a/an + + (cherry picked from commit c92c396b886f9808935d5103710652a2c365639e) + +commit b647c42a2b43d4ece1f51a41a705e9b5df71e3c6 +Author: Дилян Палаузов +Date: Mon Dec 12 19:59:34 2022 +0200 + + auth: typos a/an opaque + + (cherry picked from commit 0be9582347182271a0a4f1a3bb2c93080d172a03) + +commit d13a569d879c96c3c8196aee240c97e8208511be +Author: Дилян Палаузов +Date: Mon Dec 12 19:28:55 2022 +0200 + + async: typos a/an + + (cherry picked from commit 10721533c1b81a840a88178130ca71fe1fe6ddef) + +commit 1e3f7100b421923c43be95aeb108e64cbcfea1cc +Author: Дилян Палаузов +Date: Mon Dec 12 19:46:48 2022 +0200 + + app_sqlang: typos a/an + + (cherry picked from commit 5591a7dae08bb85f077ab0efa7b2876f9673b8cb) + +commit 13b91640b13e1313864c71c310a851cb4329a675 +Author: Дилян Палаузов +Date: Mon Dec 12 19:44:58 2022 +0200 + + app_perl: typos a/an + + (cherry picked from commit 09b657ad9a646b255e7b69aa402352a83172bad2) + +commit ddf46d61ac9a6ceae6d28915ba614c9f2c6c2f1c +Author: Дилян Палаузов +Date: Mon Dec 12 19:43:08 2022 +0200 + + app_jsdt: typos a/an + + (cherry picked from commit 99201809d08f0d10957860a6fc33ba81cd4ca0d5) + +commit 32ed7b1bdb497880c29a3eebdaf45a5b4d3c6208 +Author: Дилян Палаузов +Date: Mon Dec 12 19:28:26 2022 +0200 + + acc_diameter: typos a/an + + (cherry picked from commit 932058b9eacb934a75279ab26ce57e53a75c5c79) + +commit f4a828949feabdc67f70d2a1bf76860a19a75c9e +Author: Дилян Палаузов +Date: Mon Dec 12 19:27:44 2022 +0200 + + acc: typos a/an + + (cherry picked from commit 55c77f09660cb4fc54338ad09138df74a53c9205) + +commit 17fe8fb7d586cbf4b3f1e4d4b6cc191cbb26c4ad +Author: Дилян Палаузов +Date: Mon Dec 12 19:26:33 2022 +0200 + + misc/examples: typos + + (cherry picked from commit d5881bad81146b7e3aae7b7866158155df76cf16) + +commit ea6e9a3453fb28d37b0ba521586133b6b1560238 +Author: Дилян Палаузов +Date: Mon Dec 12 19:24:25 2022 +0200 + + src/Makefile{,.utils}: typos a/an + + (cherry picked from commit 59f4690cbdabe80966d71172b455572dfe9e0314) + +commit bcaf87e313ad912e303951bf28935a7218fb53e3 +Author: Дилян Палаузов +Date: Mon Dec 12 19:23:09 2022 +0200 + + doc/: typos a/an + + (cherry picked from commit a254a91c79449adf8b744e2b093028d0c3c90093) + +commit e3661028080df0baf0323180995b48829457dcd7 +Author: Дилян Палаузов +Date: Mon Dec 12 19:21:02 2022 +0200 + + lib/: typos a/an + + (cherry picked from commit 039686530730bf4b0a75eca626266255f3932cca) + +commit 1706532eed9cfe243f4035ccb66365ed42f0044b +Author: Дилян Палаузов +Date: Mon Dec 12 19:20:21 2022 +0200 + + utils/: typos a/an + + (cherry picked from commit 664e9d1677b5802b08fa26d885f4ec89ddef1ac5) + +commit 3f04422e62c204c88dccc7b8d0099c6e7aec4ec7 +Author: Дилян Палаузов +Date: Mon Dec 12 19:19:30 2022 +0200 + + test/: typos a/an + + (cherry picked from commit e24de6868030747438e7c9c33bbd953f4f687474) + +commit 2f83a4d5a61c10e7dcb7f27992619a5c1284bbaf +Author: Дилян Палаузов +Date: Mon Dec 12 19:18:35 2022 +0200 + + core: typos a/an + + (cherry picked from commit 521bf3d52fcb56198386bd4fc23f85693bc3d5f9) + +commit 14fcaef65b1b7c1f6ef42e85d8a3a3819a32b620 +Author: Kamailio Dev +Date: Thu Dec 15 14:32:12 2022 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit 78e181d82e5802e5b96b05cf9f1d9e54dbd1546d +Author: Henning Westerholt +Date: Thu Dec 15 13:22:06 2022 +0000 + + sanity: also add Contact URI check to documentation + + (cherry picked from commit b96848689837277d9bc0ec9c1b5524de0f1321e1) + +commit ee9cbc7585fb645bfa7117f8cd5122f3ae260d57 +Author: Bastian Triller +Date: Thu Dec 15 10:48:40 2022 +0100 + + sanity: Prevent segfault + + For star Contacts, there are no URIs that can be checked. + + (cherry picked from commit f1bac3433c61b0a5b4be08e7738a3a1aa0defe73) + +commit 6ca691df40134abf53feb5d785c90618dcfa5c05 +Author: Henning Westerholt +Date: Wed Dec 14 08:38:12 2022 +0000 + + utils/kamcmd: add missing USE_READLINE define for pkg-config build, related to #3284 + + (cherry picked from commit a70b6bf09c73d961ebea1947216757fafb951c24) + +commit 7bb9cadb1cec146cc6f0b5dafb2d50920dc40bcf +Author: Trevor Peirce +Date: Wed Nov 30 13:28:01 2022 -0800 + + stirshaken: Properly handle intermediary/chain certificates when caching certificates + + - requires patch to libstirshaken (PR 124) to do anything + - if patched version of libstirshaken detected, uses new methods to store all intermediary certs + - unrelated minor logging tweaks + + (cherry picked from commit 043ce0e75eae04f356cd539f2146df6846a169e2) + +commit 0b52ac67fe12fab9127f30711313470257d32eaa +Author: Victor Seva +Date: Mon Dec 5 12:43:11 2022 +0100 + + pv_headers: fix t_resume scenario + + (cherry picked from commit af1d9c156e0a69c9e3f39a063f7dd97d1c0a7bf1) + +commit a7ded9247f5a3f0a6c133dea41dfd61e4b7d4682 +Author: Victor Seva +Date: Wed Nov 30 08:46:15 2022 +0100 + + pkg/kamailio/deb: refresh files [skip ci] + +commit a7de8d08a46ace83b79b6c1a14646aa9cb4d57a2 +Author: Victor Seva +Date: Wed Nov 30 08:44:00 2022 +0100 + + pkg/kamailio/deb: fix jammy build, take two [skip ci] + + * rules are different in master + +commit 2b5b3a7fb5a26dc467a60e5e70c8b3515f57bc85 +Author: Henning Westerholt +Date: Fri Aug 19 13:17:46 2022 +0000 + + tm: backup and restore X/AVP values from initial transaction in DNS failover processing + + - restore X/AVP values from initial transaction in DNS failover processing + - the X/AVP context gets lost, so we need to re-create it from the transaction + - otherwise modules that depends on the X/AVPs, e.g. topology hiding will not work + - tested with one load-balancer and two proxy servers + - previous fix d6b1c20d3ad94 was reverted, we now properly backup and restore + + (cherry picked from commit 399b34c6bd4e5cbfcf4dcb699755c393229fcb99) + +commit e8494799a86a0487c013ca457cac88fac4ce6501 +Author: Victor Seva +Date: Mon Nov 28 10:05:40 2022 +0100 + + pkg/kamailio/deb: fix jammy build + +commit 5db7f5fec945e8e7b49461a6e88d0efe2fef2c1e +Author: Victor Seva +Date: Sun Nov 27 21:56:28 2022 +0100 + + pkg/kamailio/deb: refresh files after 6d55d9f903238479b6026b1d8feb8901d064e92c + +commit 91192066d9b019b21d671e6ffc00ff0cf6c9e747 +Author: Victor Seva +Date: Thu Jun 30 07:46:48 2022 +0200 + + pkg/kamailio/deb: add initial support for jammy [skip ci] + + (cherry picked from commit ecbe90524165cf2fd8081ec5fe81d674f7a3334a) + +commit 1e0830433e46827ed9424a6d9cc01e95546c04f0 +Author: Henning Westerholt +Date: Wed Nov 16 16:02:09 2022 +0000 + + dialog: remove dialog variable debugging function, it might cause race conditions + + ===================== 2022-10-06 Version 5.6.2 Released ===================== ===================== Changes Since Version 5.6.1 =========================== diff --git a/doc/doxygen/ser.doxygen b/doc/doxygen/ser.doxygen index 9072e100b..218434d26 100644 --- a/doc/doxygen/ser.doxygen +++ b/doc/doxygen/ser.doxygen @@ -1157,7 +1157,7 @@ PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# generate an inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more diff --git a/doc/man/kamailio.8 b/doc/man/kamailio.8 index a97b43f3c..f4fc69ade 100644 --- a/doc/man/kamailio.8 +++ b/doc/man/kamailio.8 @@ -166,11 +166,6 @@ Specifies the number of children processes forked to handle tcp incoming connect .BI \-n ). .TP -.BI \-P " pid\-file" -Creates a file containing the pid of the main -.B kamailio -process. -.TP .BI \-O " optimization\-level" Script optimization level (debugging option). .TP @@ -231,8 +226,8 @@ Specify internal manager for shared memory (shm) can be: fm, qm or tlsf .BI \-X " name" Specify internal manager for private memory (pkg) if omitted, the one for shm is used .TP - .BI \-Y " dir" - Runtime dir path +.BI \-Y " dir" +Runtime dir path .TP .BI \-w " working\-dir" Specifies the working directory. In the very improbable event that diff --git a/doc/misc/HISTORY b/doc/misc/HISTORY index 62ee14674..464aceba7 100644 --- a/doc/misc/HISTORY +++ b/doc/misc/HISTORY @@ -23,7 +23,7 @@ A short time after this Jiri began testing the code and requesting new features. In Octomber 2001 I made some changes to ser routing language bringing it to what we still use today. In the next months I've created the module interface, the first two modules (print and textops) and I've added the shared memory support (this involved the creation of ser's own malloc library which proved to be much faster for ser's memory usage patterns than standards malloc implementations). During the same period Bogdan and Jan joined me and Jiri also began writing code. -In December 2001 Bogdan announced that tm was up an running (after a sleepless night). +In December 2001 Bogdan announced that tm was up and running (after a sleepless night). At the beginning of 2002 we were joined by Daniel. Jan introduced the mysql, usrloc and auth modules. Ser first public appearance was at the April 2002 Sipit. We ran it on a pda an still managed to be faster than the testing tools that were used against us :-) diff --git a/doc/misc/NEWS b/doc/misc/NEWS index 09b63a72b..ff1cc47f4 100644 --- a/doc/misc/NEWS +++ b/doc/misc/NEWS @@ -924,7 +924,7 @@ core: Only a limited number of commands are allowed (drop, if + all the checks, msg flag manipulations, send(), log(), textops::search()). In this route the final destination - of the message is available an can be checked (with + of the message is available and can be checked (with snd_ip, snd_port, to_ip, to_port, snd_proto, snd_af). This route is executed only when forwarding requests. It's not executed for replies, retransmissions, or diff --git a/doc/tutorials/rpc_list/docbook/rpc_usrloc.xml b/doc/tutorials/rpc_list/docbook/rpc_usrloc.xml index 23510f566..63a19f707 100644 --- a/doc/tutorials/rpc_list/docbook/rpc_usrloc.xml +++ b/doc/tutorials/rpc_list/docbook/rpc_usrloc.xml @@ -26,7 +26,7 @@ RPC Exports for usrloc
ul.rm - Delete a address of record including its contacts + Delete an address of record including its contacts diff --git a/doc/tutorials/serdev/msg_parser.xml b/doc/tutorials/serdev/msg_parser.xml index 9dc29f68b..259e517c8 100644 --- a/doc/tutorials/serdev/msg_parser.xml +++ b/doc/tutorials/serdev/msg_parser.xml @@ -40,7 +40,7 @@ A SIP message consists of message header and optional message body. The header is separated from the body with - a empty line (containing CRLF only). + an empty line (containing CRLF only). Message header consists of the first line and one or more header diff --git a/doc/tutorials/serdev/sip_msg.xml b/doc/tutorials/serdev/sip_msg.xml index 9cc16c6f0..a7a32a4b5 100644 --- a/doc/tutorials/serdev/sip_msg.xml +++ b/doc/tutorials/serdev/sip_msg.xml @@ -339,7 +339,7 @@ struct sip_msg { REQUEST before it will be forwarded. The list will be processed when the request is being converted to character array (i.e. immediately before - the request will be send out). + the request will be sent out). @@ -349,7 +349,7 @@ struct sip_msg { REPLY before it will be forwarded. the list will be processed when the reply is being converted to character array (i.e. immediately before the request will - be send out). + be sent out). diff --git a/doc/tutorials/timers.txt b/doc/tutorials/timers.txt index c50c73683..ed949ca66 100644 --- a/doc/tutorials/timers.txt +++ b/doc/tutorials/timers.txt @@ -100,7 +100,7 @@ A "fast" timer is a timer that does very little work in its timer handler (it al 4.2 timer handlers ------------------ -The timer handler can be periodic, one shot or it can change from call to call. It all depends on what value you return from it. If you always return (ticks_t)(-1) or timer_ln->initial_timeout you have a periodic timer. If you return 0 you have an one shot timer (the timer will be removed when your timer handler function exits). For any other value v, your timer will be automatically re-added with the next expire set to v (expressed in ticks). +The timer handler can be periodic, one shot or it can change from call to call. It all depends on what value you return from it. If you always return (ticks_t)(-1) or timer_ln->initial_timeout you have a periodic timer. If you return 0 you have a one shot timer (the timer will be removed when your timer handler function exits). For any other value v, your timer will be automatically re-added with the next expire set to v (expressed in ticks). 4.3 timer_add ------------- @@ -118,7 +118,7 @@ To remove a timer from the active timer list call timer_del(struct timer_ln*). timer_del is the slowest of all the timer functions. If you are trying to delete a timer whose timer is executing. timer_del will wait until it finishes. timer_del returns 0 on success and a negative number on error (for now -1 if an attempt to delete and already removed or expired timer is made and -2 if timer_del is called from the timer handle it is supposed to delete). WARNING: - avoid deleting your own timer from its timer handle (if you try it, you'll get a BUG message in the log). If you _must_ have this, you have a broken design. If you still want it, look at timer_allow_del(). - - if you have an one shot timer that frees its memory before exiting, make sure you don't call timer_del afterwards (e.g. use some reference counters and free the memory only if the counter is 0). + - if you have a one shot timer that frees its memory before exiting, make sure you don't call timer_del afterwards (e.g. use some reference counters and free the memory only if the counter is 0). Race example (using the struct foo defined above): diff --git a/misc/examples/kamailio/acc-mysql.cfg b/misc/examples/kamailio/acc-mysql.cfg index fa187ddf4..f9fae0428 100644 --- a/misc/examples/kamailio/acc-mysql.cfg +++ b/misc/examples/kamailio/acc-mysql.cfg @@ -117,7 +117,7 @@ modparam("usrloc", "db_mode", 2) # #modparam("auth_db", "calculate_ha1", yes) # -# If you set "calculate_ha1" parameter to yes (which true in this config), +# If you set "calculate_ha1" parameter to yes (which is true in this config), # uncomment also the following parameter) # #modparam("auth_db", "password_column", "password") diff --git a/misc/examples/kamailio/nathelper.cfg b/misc/examples/kamailio/nathelper.cfg index 56c0caec4..b866140c7 100644 --- a/misc/examples/kamailio/nathelper.cfg +++ b/misc/examples/kamailio/nathelper.cfg @@ -113,8 +113,8 @@ route{ # Special handling for NATed clients; first, NAT test is # executed: it looks for via!=received and RFC1918 addresses # in Contact (may fail if line-folding is used); also, - # the received test should, if completed, should check all - # vias for rpesence of received + # the received test, if completed, should check all + # vias for presence of received if (nat_uac_test("3")) { # Allow RR-ed requests, as these may indicate that # a NAT-enabled proxy takes care of it; unless it is diff --git a/misc/examples/mixed/nathelper.cfg b/misc/examples/mixed/nathelper.cfg index 4179effab..549a47fc8 100644 --- a/misc/examples/mixed/nathelper.cfg +++ b/misc/examples/mixed/nathelper.cfg @@ -107,7 +107,7 @@ route{ # executed: it looks for via!=received and RFC1918 addresses # in Contact (may fail if line-folding is used); also, # the received test should, if completed, should check all - # vias for rpesence of received + # vias for presence of received if (nat_uac_test("3")) { # Allow RR-ed requests, as these may indicate that # a NAT-enabled proxy takes care of it; unless it is diff --git a/misc/examples/pkg/sip-router-oob.cfg b/misc/examples/pkg/sip-router-oob.cfg index 34ee21048..b37aae4cc 100644 --- a/misc/examples/pkg/sip-router-oob.cfg +++ b/misc/examples/pkg/sip-router-oob.cfg @@ -683,7 +683,7 @@ route[FORWARD] } # Activate the RTP proxy as the second last step because it modifies the - # body but also sets an dialog AVP cookie. + # body but also sets a dialog AVP cookie. route(RTPPROXY); # Insert a Record-Route header into all requests. diff --git a/misc/examples/scripts/serresponse b/misc/examples/scripts/serresponse index cb9e43c49..490fd98e7 100755 --- a/misc/examples/scripts/serresponse +++ b/misc/examples/scripts/serresponse @@ -128,7 +128,7 @@ if [ ! -e $LOCKF ] ; then echo " Please configure it to your local settings first." echo echo "If you do not press CTRL-C within 2 seconds an informational message" - echo "with your hostname will be send to the ser developers." + echo "with your hostname will be sent to the ser developers." sleep 2 $MAILCOMMAND -s "serresponse executed on ${HOSTN}" $NOTIFY < $TMP rm -f $TMP diff --git a/pkg/kamailio/alpine/APKBUILD b/pkg/kamailio/alpine/APKBUILD index 4af2cebd8..bd3a5e53d 100644 --- a/pkg/kamailio/alpine/APKBUILD +++ b/pkg/kamailio/alpine/APKBUILD @@ -4,7 +4,7 @@ # Maintainer: Nathan Angelacos pkgname=kamailio -pkgver=5.6.2 +pkgver=5.6.4 pkgrel=0 # If building from a git snapshot, specify the gitcommit diff --git a/pkg/kamailio/deb/bionic/changelog b/pkg/kamailio/deb/bionic/changelog index ce63ec3e7..e8a981071 100644 --- a/pkg/kamailio/deb/bionic/changelog +++ b/pkg/kamailio/deb/bionic/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/bookworm/changelog b/pkg/kamailio/deb/bookworm/changelog index ce63ec3e7..e8a981071 100644 --- a/pkg/kamailio/deb/bookworm/changelog +++ b/pkg/kamailio/deb/bookworm/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/bookworm/control b/pkg/kamailio/deb/bookworm/control index 1c7ef64aa..c22e5409d 100644 --- a/pkg/kamailio/deb/bookworm/control +++ b/pkg/kamailio/deb/bookworm/control @@ -30,7 +30,7 @@ Build-Depends: libmono-2.0-dev [amd64 armel armhf i386 mipsel kfreebsd-amd64 kfreebsd-i386 ppc64 ppc64el s390x], libmosquitto-dev, libnats-dev, - libncurses5-dev, + libncurses-dev, libpcre3-dev, libperl-dev, libphonenumber-dev (>= 7), @@ -70,7 +70,6 @@ Pre-Depends: ${misc:Pre-Depends}, Depends: adduser, - lsb-base, python3, ${misc:Depends}, ${shlibs:Depends}, diff --git a/pkg/kamailio/deb/bookworm/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/bookworm/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/bookworm/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/bookworm/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/bullseye/changelog b/pkg/kamailio/deb/bullseye/changelog index ce63ec3e7..e8a981071 100644 --- a/pkg/kamailio/deb/bullseye/changelog +++ b/pkg/kamailio/deb/bullseye/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/bullseye/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/bullseye/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/bullseye/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/bullseye/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/buster/changelog b/pkg/kamailio/deb/buster/changelog index ce63ec3e7..e8a981071 100644 --- a/pkg/kamailio/deb/buster/changelog +++ b/pkg/kamailio/deb/buster/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/buster/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/buster/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/buster/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/buster/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/debian/backports/bookworm b/pkg/kamailio/deb/debian/backports/bookworm index 1d39bd650..4f97bd618 100755 --- a/pkg/kamailio/deb/debian/backports/bookworm +++ b/pkg/kamailio/deb/debian/backports/bookworm @@ -35,6 +35,12 @@ sed -i -e '/^ python,/d' -e '/python-dev/d' \ sed -i -e 's/ python [ ,$]*//' ${DIST}/rules sed -i -e '/^EXCLUDED_MODULES=/s/$/ python/' ${DIST}/rules +# no lsb-base +sed -i -e '/lsb-base/d' ${DIST}/control + +# libncurses +sed -i -e 's/libncurses5-dev/libncurses-dev/g' ${DIST}/control + wrap-and-sort -sat -d ${DIST} # clean backports scripts diff --git a/pkg/kamailio/deb/debian/backports/jammy b/pkg/kamailio/deb/debian/backports/jammy new file mode 100755 index 000000000..ec4724ff0 --- /dev/null +++ b/pkg/kamailio/deb/debian/backports/jammy @@ -0,0 +1,42 @@ +#!/bin/bash +# +# Target dist: Ubuntu Jammy +DIST=jammy + +rm -rf ${DIST} +cp -r debian ${DIST} + +# No mi_xmlrpc module +sed -i -e '/libxmlrpc-c3-dev/d' -e '/^Package: kamailio-xmlrpc-modules/,/^$/d' \ + ${DIST}/control +sed -i -e 's/ mi_xmlrpc[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mi_xmlrpc/' ${DIST}/rules + +# No dnssec module: +sed -i -e '/libval-dev/d' -e '/^Package: kamailio-dnssec-modules/,/^$/d' \ + ${DIST}/control +sed -i -e 's/ dnssec[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ dnssec/' ${DIST}/rules + +# No app_java due lack of gcj-jdk +sed -i -e '/gcj-jdk/d' -e '/^Package: kamailio-java-modules/,/^$/d' \ + ${DIST}/control +sed -i -e '/^export JAVA_HOME/d' ${DIST}/rules +sed -i -e 's/ java[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXCLUDED_MODULES=/s/$/ java/' ${DIST}/rules + +# no dh-systemd +sed -i -e '/dh-systemd/d' ${DIST}/control + +# no python2 +sed -i -e '/^ python,/d' -e '/python-dev/d' \ + -e '/^Package: kamailio-python-modules/,/^$/d' \ + ${DIST}/control +sed -i -e 's/ python [ ,$]*//' ${DIST}/rules +sed -i -e '/^EXCLUDED_MODULES=/s/$/ python/' ${DIST}/rules + +wrap-and-sort -sat -d ${DIST} + +# clean backports scripts +rm -rf ${DIST}/backports +exit 0 diff --git a/pkg/kamailio/deb/debian/backports/sid b/pkg/kamailio/deb/debian/backports/sid index 367b53bef..deb134222 100755 --- a/pkg/kamailio/deb/debian/backports/sid +++ b/pkg/kamailio/deb/debian/backports/sid @@ -35,6 +35,12 @@ sed -i -e '/^ python,/d' -e '/python-dev/d' \ sed -i -e 's/ python [ ,$]*//' ${DIST}/rules sed -i -e '/^EXCLUDED_MODULES=/s/$/ python/' ${DIST}/rules +# no lsb-base +sed -i -e '/lsb-base/d' ${DIST}/control + +# libncurses +sed -i -e 's/libncurses5-dev/libncurses-dev/g' ${DIST}/control + wrap-and-sort -sat -d ${DIST} # clean backports scripts diff --git a/pkg/kamailio/deb/debian/changelog b/pkg/kamailio/deb/debian/changelog index ce63ec3e7..e8a981071 100644 --- a/pkg/kamailio/deb/debian/changelog +++ b/pkg/kamailio/deb/debian/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/focal/changelog b/pkg/kamailio/deb/focal/changelog index ce63ec3e7..e8a981071 100644 --- a/pkg/kamailio/deb/focal/changelog +++ b/pkg/kamailio/deb/focal/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/focal/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/focal/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/focal/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/focal/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/jammy/changelog b/pkg/kamailio/deb/jammy/changelog new file mode 100644 index 000000000..e8a981071 --- /dev/null +++ b/pkg/kamailio/deb/jammy/changelog @@ -0,0 +1,77 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:12 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + +kamailio (5.6.2) unstable; urgency=medium + + * version set 5.6.2 + + -- Victor Seva Thu, 06 Oct 2022 10:35:53 +0200 + +kamailio (5.6.1) unstable; urgency=medium + + * version set 5.6.1 + + -- Victor Seva Wed, 06 Jul 2022 09:59:31 +0200 + +kamailio (5.6.0) unstable; urgency=medium + + * version set 5.6.0 + + -- Victor Seva Mon, 23 May 2022 09:28:48 +0200 + +kamailio (5.6.0~rc1) unstable; urgency=medium + + * version set 5.6.0-rc1 + + -- Victor Seva Mon, 16 May 2022 15:08:07 +0200 + +kamailio (5.6.0~rc0) unstable; urgency=medium + + * version set 5.6.0-rc0 + + -- Victor Seva Thu, 05 May 2022 12:51:49 +0200 + +kamailio (5.6.0~pre1) unstable; urgency=medium + + * version set 5.6.0-pre1 + + -- Victor Seva Thu, 28 Apr 2022 09:45:55 +0200 + +kamailio (5.6.0~pre0) unstable; urgency=medium + + * version set 5.6.0-pre0 + + -- Victor Seva Fri, 15 Apr 2022 09:03:42 +0200 + +kamailio (5.6.0~dev3) unstable; urgency=medium + + * version set 5.6.0-dev3 + + -- Victor Seva Tue, 11 Jan 2022 09:29:18 +0100 + +kamailio (5.6.0~dev2) unstable; urgency=medium + + * version set 5.6.0-dev2 + + -- Victor Seva Thu, 04 Nov 2021 11:30:21 +0100 + +kamailio (5.6.0~dev1) unstable; urgency=medium + + * version set 5.6.0-dev1 + + -- Victor Seva Fri, 27 Aug 2021 12:33:08 +0200 + +kamailio (5.6.0~dev0) unstable; urgency=medium + + * version set 5.6.0-dev0 + + -- Victor Seva Fri, 23 Apr 2021 11:27:18 +0200 diff --git a/pkg/kamailio/deb/jammy/compat b/pkg/kamailio/deb/jammy/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/pkg/kamailio/deb/jammy/compat @@ -0,0 +1 @@ +9 diff --git a/pkg/kamailio/deb/jammy/control b/pkg/kamailio/deb/jammy/control new file mode 100644 index 000000000..1c7ef64aa --- /dev/null +++ b/pkg/kamailio/deb/jammy/control @@ -0,0 +1,908 @@ +Source: kamailio +Section: net +Priority: optional +Maintainer: Kamailio Admin Group +Uploaders: + Victor Seva , +Build-Depends: + bison, + debhelper (>= 9), + default-libmysqlclient-dev, + docbook-xml, + dpkg-dev (>= 1.16.1.1), + erlang-dev, + flex, + libcurl4-openssl-dev, + libdb-dev (>= 4.6.19), + libev-dev, + libevent-dev, + libexpat1-dev, + libgeoip-dev (>= 1.4.5), + libhiredis-dev (>= 0.10.0), + libjansson-dev, + libjson-c-dev, + libldap2-dev, + liblua5.1-0-dev, + libmaxminddb-dev, + libmemcached-dev, + libmnl-dev, + libmongoc-dev, + libmono-2.0-dev [amd64 armel armhf i386 mipsel kfreebsd-amd64 kfreebsd-i386 ppc64 ppc64el s390x], + libmosquitto-dev, + libnats-dev, + libncurses5-dev, + libpcre3-dev, + libperl-dev, + libphonenumber-dev (>= 7), + libpq-dev, + librabbitmq-dev, + libradcli-dev, + libreadline-dev, + libsasl2-dev, + libsctp-dev [any], + libsecsipid-dev [amd64 arm64 armel armhf hurd-i386 i386 powerpc ppc64 ppc64el riscv64 s390x], + libsnmp-dev, + libsqlite3-dev, + libssl-dev, + libsystemd-dev, + libunistring-dev, + libwebsockets-dev, + libxml2-dev, + openssl, + pkg-config, + python3, + python3-dev, + ruby-dev, + unixodbc-dev, + uuid-dev, + xsltproc, + zlib1g-dev, +Standards-Version: 4.6.0.1 +Homepage: http://www.kamailio.org/ +Vcs-Git: https://github.com/kamailio/kamailio.git +Vcs-Browser: https://github.com/kamailio/kamailio/ +Rules-Requires-Root: no + +Package: kamailio +Architecture: any +Multi-Arch: foreign +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + adduser, + lsb-base, + python3, + ${misc:Depends}, + ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, +Suggests: + kamailio-berkeley-modules, + kamailio-cpl-modules, + kamailio-dbg, + kamailio-ldap-modules, + kamailio-lua-modules, + kamailio-mysql-modules, + kamailio-perl-modules, + kamailio-postgres-modules, + kamailio-presence-modules, + kamailio-python-modules, + kamailio-radius-modules, + kamailio-snmpstats-modules, + kamailio-tls-modules, + kamailio-unixodbc-modules, + kamailio-xml-modules, + kamailio-xmpp-modules, + stun-server | turn-server, +Provides: + sip-router, +Description: very fast, dynamic and configurable SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, kamailio can handle thousands requests + per second even on low-budget hardware. It can be configured to act + as a SIP proxy, application server, session border controller, + or call load balancer to handle a set of media servers. + . + A C Shell like scripting language provides full control over the server's + behaviour. It's easy to integrate Kamailio with 3rd party API's and applications + using HTTP, AMQP, database drivers, LDAP, Radius and many other solutions. + In addition there is support for scripting using Lua, Python, Perl, Java and + a set of other languages using Mono. + . + Kamailio's modular architecture allows only required functionality to be loaded. + There are over 100 modules available: WebSockets for WebRTC, authentication, + multiple databases - both traditional SQL databases as well as no-SQL, + message bus systems like Rabbit MQ, instant messaging, a presence agent, + integration with REST-ful APIs using HTTP and JSON or XML, + radius authentication, record routing, an SMS gateway, a XMPP/jabber gateway, a + transaction and dialog module, OSP module, statistics support, + registrar and user location services, SNMP, SIMPLE Presence and much more. + . + This package contains the main Kamailio binary along with the principal modules + and support binaries. + +Package: kamailio-dbg +Priority: extra +Section: debug +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, +Description: very fast and configurable SIP server [debug symbols] + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains the debugging symbols for the Kamailio binaries and + modules. You only need to install it if you need to debug Kamailio. + +Package: kamailio-geoip-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: The geoip module for the Kamailio SIP Server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the geoip module, an extension enabling + usage of the GeoIP API within the Kamailio configuration file. + +Package: kamailio-geoip2-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: The geoip2 module for the Kamailio SIP Server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the geoip2 module, an extension enabling + real-time queries against the Max Mind GeoIP2 database within the Kamailio + configuration file. + +Package: kamailio-sqlite-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Recommends: + sqlite3, +Description: SQLite database connectivity module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the SQLite database driver for Kamailio. + +Package: kamailio-json-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Json parser and Json-RPC modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides a JSON parser for use in the Kamailio + configuration file and the JSON-RPC client over netstrings. + +Package: kamailio-memcached-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Replaces: + kamailio-memcached-module, +Description: interface to the memcached server, for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the memcached module, an interface to the memcached + server, a high-performance, distributed memory object caching system. + +Package: kamailio-lua-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: The app_lua module for Kamailio Lua support + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the app_lua module, an extension allowing to + execute embedded Lua applications within the configuration file as + well as writing the entire configuration file in Lua. + +Package: kamailio-mono-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: The app_mono module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the app_mono module, an extension allowing to + execute embedded Mono applications within the Kamailio SIP routing script. + +Package: kamailio-python3-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: The app_python3 module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the app_python3 module, an extension allowing to + execute embedded Python applications within the Kamailio SIP routing script. + +Package: kamailio-ruby-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: The app_ruby module for Kamailio Ruby support + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the app_ruby module, an extension allowing to + execute embedded Ruby applications within the Kamailio SIP routing script. + +Package: kamailio-redis-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Redis database connectivity module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the Redis NOSQL database driver for Kamailio. + +Package: kamailio-mysql-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + default-mysql-client | virtual-mysql-client, + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: MySQL database connectivity module for Kamailio + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the MySQL database driver for Kamailio. + +Package: kamailio-postgres-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + postgresql-client, + ${misc:Depends}, + ${shlibs:Depends}, +Description: PostgreSQL database connectivity module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the PostgreSQL database driver for Kamailio. + +Package: kamailio-cpl-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: CPL module (CPL interpreter engine) for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides a CPL (Call Processing Language) interpreter for + Kamailio, turning Kamailio into a CPL server (storage and interpreter). + +Package: kamailio-radius-modules +Architecture: any +Multi-Arch: same +Breaks: + kamailio (<<5.1), +Replaces: + kamailio (<<5.1), +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: RADIUS modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides a set of RADIUS modules for Kamailio, for + authentication, peering, group membership and messages URIs checking against a + RADIUS server. + +Package: kamailio-unixodbc-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: unixODBC database connectivity module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the unixODBC database driver for Kamailio. + +Package: kamailio-presence-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: SIP presence modules for Kamailio + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides several Kamailio modules for implementing a presence + server and presence user agent for rich presence, registrar-based presence, + external triggered presence with SIMPLE and XCAP support, as well as a + set of other SIP event packages.. + +Package: kamailio-perl-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Perl extensions and database driver for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides an interface for Kamailio to write Perl extensions and + the perlvdb database driver for Kamailio. + +Package: kamailio-snmpstats-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + snmpd, + ${misc:Depends}, + ${shlibs:Depends}, +Description: SNMP AgentX subagent module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the snmpstats module for Kamailio. This module acts + as an AgentX subagent which connects to a master agent. The Kamailio MIBS are + included. + +Package: kamailio-xmpp-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: XMPP gateway module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the SIP to XMPP IM translator module for Kamailio. + +Package: kamailio-xml-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Replaces: + kamailio-xml-module, + kamailio-xmlrpc-module, +Provides: + kamailio-xmlrpc-modules, +Description: XML based extensions for Kamailio's Management Interface + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides: + - the XMLRPC transport implementations for Kamailio's + Management and Control Interface. + - xmlops module for XPath operations in configuration file + +Package: kamailio-berkeley-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + db-util (>= 4.6.19), + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Berkeley database module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the Berkeley database module for Kamailio, a + high-performance embedded database. All database tables are stored + in files, no additional server is necessary. + +Package: kamailio-berkeley-bin +Architecture: any +Multi-Arch: foreign +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + ${misc:Depends}, + ${shlibs:Depends}, +Description: Berkeley database module for Kamailio - helper program + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides helper modules for the Berkeley database module for + Kamailio, a high-performance embedded DB kernel. You should normally + install kamailio-berkeley-modules and not this package directly. + +Package: kamailio-ldap-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: LDAP modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the ldap and h350 modules for Kamailio, enabling LDAP + queries from the Kamailio routing scripts and storage of SIP account data in an LDAP + directory. + +Package: kamailio-ims-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: IMS module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains various Diameter interfaces and modules for Kamailio + to run as an IMS core. + +Package: kamailio-utils-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Utility functions for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides a set of utility functions for Kamailio, as well + as modules for restful HTTP API access using the CURL library in the + http_client module. + +Package: kamailio-sctp-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: SCTP SIP transport module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the SCTP SIP transport module for Kamailio. + +Package: kamailio-tls-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: TLS support for the Kamailio SIP server (authentication, transport) + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides TLS support for encrypted and authenticated + SIP connections as well as generic TLS support for many Kamailio modules. + +Package: kamailio-outbound-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: SIP Outbound module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains the "outbound" module implementing SIP outbound extension. + +Package: kamailio-websocket-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: WebSocket module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains the module implementing WebSocket transport layer + for use in SIP over WebSockets, in combination with WebRTC media sessions.. + +Package: kamailio-autheph-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: authentication using ephemeral credentials for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the ephemeral authentication module for Kamailio, + enabling authentication using a Restful HTTP API. + +Package: kamailio-kazoo-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: kazoo modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the Kazoo application server integration module for Kamailio. + +Package: kamailio-rabbitmq-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: RabbitMQ and AMQP integration modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the RabbitMQ module for Kamailio, enabling AMQP + integration into the SIP routing scripts for third party service + support. + +Package: kamailio-cnxcc-modules +Architecture: any +Multi-Arch: same +Breaks: + kamailio (<<5.1), +Replaces: + kamailio (<<5.1), +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: cnxcc modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the cnxcc call charging control module for Kamailio. + +Package: kamailio-erlang-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Erlang modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This Kamailio module provides interaction with the Erlang node from the Kamailio + SIP routing scripts. The module allows sending, receiving Erlang messages + and RPC calls between each other. + +Package: kamailio-systemd-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: systemd logging modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides logging to systemd journal directly from the + Kamailio configuration and routing scripts. + +Package: kamailio-phonenum-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: phonenum modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides real-time queries against the libphonenumber to be + performed directly from the Kamailio configuration and routing scripts. + +Package: kamailio-mongodb-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: mongodb modules for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides the mongodb database driver and non-db connector for + Kamailio. + +Package: kamailio-mqtt-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: MQTT modules for the Kamailio SIP Server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + MQTT module allows bidirectional publish/subscribe communication by + connecting Kamailio to a MQTT Broker. + . + Messages can be published from any point in the routing script. Also + the subscriptions can be fully controlled by scripting commands. + +Package: kamailio-secsipid-modules +Architecture: amd64 arm64 armel armhf hurd-i386 i386 powerpc ppc64 ppc64el riscv64 s390x +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: contains the secsipid module + Kamailio is a very fast and flexible SIP (RFC3261) + proxy server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains the secsipid Module. + +Package: kamailio-lwsc-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Libwebsockets module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains the lwcs module, which provides a client-side WebSockets + API through libwebsockets. + +Package: kamailio-nats-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Nats module for the Kamailio SIP server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package contains the nats module, which provides a NATS consumer for Kamailio. + NATS is a real time distributed messaging platform, more details about it can be + found at nats.io. + +Package: kamailio-extra-modules +Architecture: any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Extra modules for the Kamailio SIP Server + Kamailio is a very fast and flexible SIP (RFC3261) + server. Written entirely in C, Kamailio can handle thousands calls + per second even on low-budget hardware. + . + This package provides a set of modules for compression of SIP attachments, + UUID usage, JSON data structure support, HTTP restful API asynchronous + access and a few more functions: gzcompress uuid evapi jansson janssonrpcc http_async_client + +Package: kamailio-nth +Architecture: any +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + binutils, + bison, + bvi, + flex, + gcc, + gdb, + iftop, + less | most, + lsof, + mc, + ngrep, + psmisc, + screen, + sipsak, + tcpdump, + vim, + ${misc:Depends}, +Description: Kamailio SIP server - package for "nice to have" utilities + This is a metapackage for easy installation various useful tools that may be + handy on server with Kamailio installed. diff --git a/pkg/kamailio/deb/jammy/copyright b/pkg/kamailio/deb/jammy/copyright new file mode 100644 index 000000000..f4d721786 --- /dev/null +++ b/pkg/kamailio/deb/jammy/copyright @@ -0,0 +1,309 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Kamailio +Upstream-Contact: sr-dev@lists.kamailio.org +Source: http://www.kamailio.org/pub/kamailio/ + +Files: * +Copyright: + 2001-2003 FhG Fokus + 2006-2010 iptelorg GmbH + Various others (see AUTHORS file) +License: GPL-2.0+ + On Debian systems, the full text of the GNU General Public + License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. + +Files: debian/* +Copyright: 2012, 2013, 2014 Victor Seva + 2009, 2010, 2011, Daniel-Constantin Mierla + 2010, Jon Bonilla + 2009, Jonas Bergler + 2009, Henning Westerholt + 2007, Julien BLACHE +License: GPL-2+ + On Debian systems, the full text of the GNU General Public + License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. + + +Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c + src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.* + src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.* + src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.* + src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* src/modules/tm/rpc_uac.* + src/modules/counters/counters.c src/modules/tls/sbufq.h + src/modules/tls/tls_bio.* src/modules/tls/tls_cfg.* src/modules/tls/tls_cfg.h + src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.* + src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.* + src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c + src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h + src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_* + src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h + src/core/shm_init.* src/core/sip_msg_clone.* src/core/sock_ut.* + src/core/sr_compat.* src/core/str_hash.h src/core/switch.* + src/core/tcp_ev.h src/core/tcp_int_send.h src/core/tcp_options.* + src/core/tcp_read.h src/core/tcp_stats.* src/core/timer_proc.* + src/core/tls_hooks.* src/core/tls_hooks_init.h src/core/ver.* +Copyright: 2006-2010 iptelorg GmbH +License: ISC + +Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.* +Copyright: 2005-2010 iptelorg GmbH +License: GPL-2 + OpenSSL exception + +Files: src/modules/websocket/* src/modules/outbound/* src/modules/auth_ephemeral/* +Copyright: 2012-2013 Crocodile RCS Ltd +License: GPL-2 + OpenSSL exception + +Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h + src/core/mem/mem.* src/core/mem/f_malloc.h + src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c + src/core/mem/q_malloc.* src/core/mem/shm_mem.h + src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.* +Copyright: 2001-2003 FhG Fokus +License: ISC + +Files: src/core/events.* src/modules/topoh/* +Copyright: 2009 SIP-Router.org +License: ISC + +Files: src/modules/pv/pv_xavp.* src/modules/usrloc/ul_rpc.* + src/core/ppcfg.* src/core/xavp.* +Copyright: 2009-2010 Daniel-Constantin Mierla (asipto.com) +License: ISC + +Files: src/modules/xmpp/xsnprintf.c +Copyright: 1995-1998, The Apache Group +License: Apache-1.0 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the Apache Group + for use in the Apache HTTP server project (http://www.apache.org/)." + . + 4. The names "Apache Server" and "Apache Group" must not be used to + endorse or promote products derived from this software without + prior written permission. + . + 5. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the Apache Group + for use in the Apache HTTP server project (http://www.apache.org/)." + . + THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: src/code/list.h +Copyright: 1991, 1993 The Regents of the University of California +License: BSD-3-clause + +Files: src/modules/tm/t_serial.* +Copyright: 2008 Juha Heinanen +License: BSD-2-clause + +Files: src/core/parser/sdp/sdp.* src/core/parser/sdp/sdp_helpr_funcs.* + src/core/parser/sdp/sdp_cloner.h +Copyright: + 2008-2009 SOMA Networks, INC. + 2010 VoIP Embedded, Inc +License: BSD-2-clause + +Files: src/modules/tls/fixed_c_zlib.h +Copyright:1998-2005 The OpenSSL Project +Comment: file copied from OpenSSL 0.9.8, refers to OpenSSL License. Note that + this code will not build by default in the Debian packaging. +License: OpenSSL + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + . + 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + . + 5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + . + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + . + THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: src/core/crypto/md5.* src/core/crypto/md5utils.c +Copyright: 1991-2, RSA Data Security, Inc +Comment: Note that md5.c and md5.h have been replaced in the patches + plum_md5*.patch . + . + As for md5utils.c, according to a mail from Upstream (Daniel-Constantin + Mierla): while the initial commit log for it states that it is derived + from mddriver.c of RFC 1321, it seems that it was, in fact, written from + scratch by Jiri Kuthan (a core developer of SER at that time, working for + FhG Fokus Institute). As you can see it's rather trivial and uses a data + type of SER ("str"). I didn't reimplement it as it's too trivial and + looks like there's no other way to implement it. +License: RSA-MD5 + License to copy and use this software is granted provided that it + is identified as the "RSA Data Security, Inc. MD5 Message-Digest + Algorithm" in all material mentioning or referencing this software + or this function. + . + License is also granted to make and use derivative works provided + that such works are identified as "derived from the RSA Data + Security, Inc. MD5 Message-Digest Algorithm" in all material + mentioning or referencing the derived work. + . + RSA Data Security, Inc. makes no representations concerning either + the merchantability of this software or the suitability of this + software for any particular purpose. It is provided "as is" + without express or implied warranty of any kind. + . + These notices must be retained in any copies of any part of this + documentation and/or software. + +Files: src/core/mem/dl_* +Copyright: n/a +License: public-domain + This is a version (aka dlmalloc) of malloc/free/realloc written by + Doug Lea and released to the public domain, as explained at + http://creativecommons.org/licenses/publicdomain. Send questions, + comments, complaints, performance data, etc to dl@cs.oswego.edu + +Files: src/core/rand/isaac/* +Copyright: n/a +License: public-domain + By Bob Jenkins. My random number generator, ISAAC. Public Domain. + +License: ISC + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Files: src/lib/srutils/srjson.* +Copyright: 2009 Dave Gamble +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + , + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: GPL-2 + OpenSSL exception + On Debian systems, the full text of the GNU General Public + License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. + * Exception: permission to copy, modify, propagate, and distribute a work + * formed by combining OpenSSL toolkit software and the code in this file, + * such as linking with software components and libraries released under + * OpenSSL project license. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pkg/kamailio/deb/jammy/kamailio-autheph-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-autheph-modules.lintian-overrides new file mode 100644 index 000000000..dcb3d18c6 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-autheph-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-autheph-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/jammy/kamailio-berkeley-bin.dirs b/pkg/kamailio/deb/jammy/kamailio-berkeley-bin.dirs new file mode 100644 index 000000000..236670a2d --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-berkeley-bin.dirs @@ -0,0 +1 @@ +usr/sbin diff --git a/pkg/kamailio/deb/jammy/kamailio-dnssec-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-dnssec-modules.lintian-overrides new file mode 100644 index 000000000..10165fec9 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-dnssec-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-dnssec-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/jammy/kamailio-outbound-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-outbound-modules.lintian-overrides new file mode 100644 index 000000000..3050cfeb4 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-outbound-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-outbound-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/jammy/kamailio-secsipid-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-secsipid-modules.lintian-overrides new file mode 100644 index 000000000..d89729e2e --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-secsipid-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-secsipid-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/jammy/kamailio-systemd-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-systemd-modules.lintian-overrides new file mode 100644 index 000000000..9f41b5486 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-systemd-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-systemd-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/jammy/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-tls-modules.lintian-overrides new file mode 100644 index 000000000..d1e84e682 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-tls-modules.lintian-overrides @@ -0,0 +1,2 @@ +kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/jammy/kamailio-websocket-modules.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio-websocket-modules.lintian-overrides new file mode 100644 index 000000000..8f384fbc3 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio-websocket-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-websocket-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/jammy/kamailio.README.Debian b/pkg/kamailio/deb/jammy/kamailio.README.Debian new file mode 100644 index 000000000..d25769a96 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.README.Debian @@ -0,0 +1,39 @@ +Kamailio for Debian +------------------- + +* init script check for fork=no +------------------------------- + +The Kamailio init script will not start Kamailio on boot if fork=no is +specified in the config file. The check in the initscript will match +any occurrence of fork=no in the file, even inside C-style comments. + +You can disable this check in the init script if you wish; just comment +out the calls to the check_fork function in the script. Your changes to +the init script will be preserved upon upgrade, as the file is tagged +as a conffile. + + +* Kamailio setup +---------------- + +To setup Kamailio, you need to: + - configure Kamailio properly to suit your needs + - edit /etc/default/kamailio, adjust the MEMORY parameter and set + RUN_KAMAILIO to "yes" + +If you are building an HA cluster using heartbeat or similar, you'll want +to disable the init script by running: + + update-rc.d kamailio remove + +so that Kamailio will not be launched at system startup. You still need +to set RUN_KAMAILIO to "yes" if you want to use the /etc/init.d/kamailio init +script. + +Set the DUMP_CORE parameter in /etc/default/kamailio to "yes" if you want to +get a core dump in case Kamailio crashes. The debug symbols for Kamailio are +provided by the kamailio-dbg package. + + + -- Victor Seva Wed, 11 Dec 2013 16:07:11 +0100 diff --git a/pkg/kamailio/deb/jammy/kamailio.default b/pkg/kamailio/deb/jammy/kamailio.default new file mode 100644 index 000000000..81c89258d --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.default @@ -0,0 +1,36 @@ +# +# Kamailio startup options +# + +# Set to yes to enable kamailio, once configured properly. +#RUN_KAMAILIO=yes + +# User to run as +#USER=kamailio + +# Group to run as +#GROUP=kamailio + +# On systemd, to change username or group please create drop-in +# /etc/systemd/system/kamailio.service.d/10-user_group.conf file, like +# ``` +# [Service] +# User=kamuser +# Group=kamgroup +# ``` + +# Amount of shared and private memory to allocate +# for the running Kamailio server (in Mb) +#SHM_MEMORY=64 +#PKG_MEMORY=8 + +# Config file +#CFGFILE=/etc/kamailio/kamailio.cfg + +# Enable the server to leave a core file when it crashes. +# Set this to 'yes' to enable Kamailio to leave a core file when it crashes +# or 'no' to disable this feature. This option is case sensitive and only +# accepts 'yes' and 'no' and only in lowercase letters. +# On some systems it is necessary to specify a directory for the core files +# to get a dump. Look into the kamailio init file for an example configuration. +#DUMP_CORE=yes diff --git a/pkg/kamailio/deb/jammy/kamailio.examples b/pkg/kamailio/deb/jammy/kamailio.examples new file mode 100644 index 000000000..e39721e20 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.examples @@ -0,0 +1 @@ +examples/* diff --git a/pkg/kamailio/deb/jammy/kamailio.init b/pkg/kamailio/deb/jammy/kamailio.init new file mode 100644 index 000000000..7e5469dd3 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.init @@ -0,0 +1,162 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: kamailio +# Required-Start: $syslog $network $local_fs $remote_fs $time +# Should-Start: $named slapd mysql postgresql snmpd radiusd +# Should-Stop: $named slapd mysql postgresql snmpd radiusd +# Required-Stop: $syslog $network $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start the Kamailio SIP proxy server +# Description: Start the Kamailio SIP proxy server +### END INIT INFO + +. /lib/lsb/init-functions + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/kamailio +NAME=`basename "$0"` +DESC="Kamailio SIP Server" +HOMEDIR=/run/$NAME +PIDFILE=$HOMEDIR/$NAME.pid +DEFAULTS=/etc/default/$NAME +CFGFILE=/etc/$NAME/kamailio.cfg +RUN_KAMAILIO=no +USER=kamailio +GROUP=kamailio +# Amount of shared and private memory to allocate +# for the running Kamailio server (in Mb) +SHM_MEMORY=64 +PKG_MEMORY=8 +DUMP_CORE=no + +# Do not start kamailio if fork=no is set in the config file +# otherwise the boot process will just stop +check_fork () +{ + if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFGFILE; then + log_failure_msg "Not starting $DESC: fork=no specified in config file; run /etc/init.d/kamailio debug instead" + exit 0 + fi +} + +check_kamailio_config () +{ + # Check if kamailio configuration is valid before starting the server + set +e + out=$($DAEMON -f $CFGFILE -M $PKG_MEMORY -c 2>&1 > /dev/null) + retcode=$? + set -e + if [ "$retcode" != '0' ]; then + log_failure_msg "Not starting $DESC: invalid configuration file!" + log_failure_msg + log_failure_msg "$out" + log_failure_msg + exit 1 + fi +} + +create_radius_seqfile () +{ + # Create a radius sequence file to be used by the radius client if + # radius accounting is enabled. This is needed to avoid any issue + # with the file not being writable if kamailio first starts as user + # root because DUMP_CORE is enabled and creates this file as user + # root and then later it switches back to user kamailio and cannot + # write to the file. If the file exists before kamailio starts, it + # won't change it's ownership and will be writable for both root + # and kamailio, no matter what options are chosen at install time + RADIUS_SEQ_FILE="$HOMEDIR/kamailio_radius.seq" + if [ -d $HOMEDIR ]; then + chown ${USER}:${GROUP} $HOMEDIR + + if [ ! -f $RADIUS_SEQ_FILE ]; then + touch $RADIUS_SEQ_FILE + fi + + chown ${USER}:${GROUP} $RADIUS_SEQ_FILE + chmod 660 $RADIUS_SEQ_FILE + fi +} + +test -f $DAEMON || exit 0 + +# Load startup options if available +if [ -f $DEFAULTS ]; then + . $DEFAULTS || true +fi + +if [ "$RUN_KAMAILIO" != "yes" ]; then + log_failure_msg "Kamailio not yet configured. Edit /etc/default/$NAME first." + exit 0 +fi + +set -e + +SHM_MEMORY=$((`echo $SHM_MEMORY | sed -e 's/[^0-9]//g'`)) +PKG_MEMORY=$((`echo $PKG_MEMORY | sed -e 's/[^0-9]//g'`)) +[ -z "$USER" ] && USER=kamailio +[ -z "$GROUP" ] && GROUP=kamailio +[ $SHM_MEMORY -le 0 ] && SHM_MEMORY=64 +[ $PKG_MEMORY -le 0 ] && PKG_MEMORY=4 + +if test "$DUMP_CORE" = "yes" ; then + # set proper ulimit + ulimit -c unlimited + + # directory for the core dump files + # COREDIR=/home/corefiles + # [ -d $COREDIR ] || mkdir $COREDIR + # chmod 777 $COREDIR + # echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern +fi + +# $HOMEDIR can be a tmpfs +if [ ! -d $HOMEDIR ]; then + mkdir -p $HOMEDIR + chown ${USER}:${GROUP} $HOMEDIR +fi + +OPTIONS="-f $CFGFILE -P $PIDFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP --atexit=no" + +case "$1" in + start|debug) + check_kamailio_config + create_radius_seqfile + + if [ "$1" != "debug" ]; then + check_fork + fi + + log_daemon_msg "Starting $DESC: $NAME" + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $OPTIONS || log_failure_msg " already running" + log_end_msg 0 + ;; + stop) + log_daemon_msg "Stopping $DESC: $NAME" + start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE \ + --exec $DAEMON --retry 5 + log_end_msg 0 + ;; + restart|force-reload) + check_kamailio_config + create_radius_seqfile + + $0 stop + $0 start + ;; + status) + log_daemon_msg "Status of $DESC: " + + status_of_proc -p"$PIDFILE" $NAME $NAME + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload|status|debug}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/pkg/kamailio/deb/jammy/kamailio.lintian-overrides b/pkg/kamailio/deb/jammy/kamailio.lintian-overrides new file mode 100644 index 000000000..18152ed17 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.lintian-overrides @@ -0,0 +1,2 @@ +kamailio binary: example-interpreter-not-absolute usr/share/doc/kamailio/examples/outbound/edge.cfg #!KAMAILIO +kamailio binary: example-interpreter-not-absolute usr/share/doc/kamailio/examples/outbound/registrar.cfg #!KAMAILIO diff --git a/pkg/kamailio/deb/jammy/kamailio.postinst b/pkg/kamailio/deb/jammy/kamailio.postinst new file mode 100644 index 000000000..e2777808b --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.postinst @@ -0,0 +1,24 @@ +#! /bin/sh + +set -e + +case "$1" in + configure) + adduser --quiet --system --group --disabled-password \ + --shell /bin/false --gecos "Kamailio SIP Server" \ + --home /run/kamailio kamailio || true + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + diff --git a/pkg/kamailio/deb/jammy/kamailio.service b/pkg/kamailio/deb/jammy/kamailio.service new file mode 100644 index 000000000..8f9c93dd9 --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio.service @@ -0,0 +1,27 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio +EnvironmentFile=-/etc/default/kamailio.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY --atexit=no +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0770 +# necessary for chown of control files e.g. for jsonrpcs and ctl modules +AmbientCapabilities=CAP_CHOWN + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/jammy/rules b/pkg/kamailio/deb/jammy/rules new file mode 100755 index 000000000..52bc98a96 --- /dev/null +++ b/pkg/kamailio/deb/jammy/rules @@ -0,0 +1,228 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +DEBVERSION:=$(shell head -n 1 debian/changelog \ + | sed -e 's/^[^(]*(\([^)]*\)).*/\1/') +UPVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/^Version: \(\([0-9]\+\):\)\?\(.*\)-.*/\3/p') + +FILENAME := kamailio_$(UPVERSION).orig.tar.gz +URL := http://www.kamailio.org/pub/kamailio/$(UPVERSION)/src/kamailio-$(UPVERSION)_src.tar.gz + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +export RADCLI=1 + +# modules not in the "main" kamailio package +EXCLUDED_MODULES= java python + +# extra modules to skip, because they are not compilable now +# - regardless if they go to the main kamailio package or to some module package, +# they will be excluded from compile and install of all +EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc dnssec + +# module groups that are packaged in separate packages +# (with the name kamailio-$(group_name)-modules) +# Note: the order is important (should be in dependency order, the one +# on which other depend first) +PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ + ldap xml perl utils lua memcached \ + snmpstats carrierroute xmpp cpl redisgeoip geoip2 \ + sqlite json mono ruby ims sctp \ + tls outbound websocket autheph kazoo cnxcc \ + erlang systemd phonenum mongodb rabbitmq python3 mqtt secsipid lwsc nats + +# module groups to be packaged onto kamailio-extra-modules +EXTRA_GROUPS=gzcompress uuid ev jansson http_async + +# name of libdir in the path for libraries (e.g., lib for 32b, lib64 for 64b) +export LIBDIR ?= lib/$(DEB_HOST_MULTIARCH) + +# directories with possible duplicate libraries (that should be deleted +# from current module* packages) +DUP_LIBS_DIRS=$(CURDIR)/debian/kamailio/usr/$(LIBDIR)/kamailio \ + $(CURDIR)/debian/kamailio-db-modules/usr/$(LIBDIR)/kamailio + +# "function" to get package short name out of a dir/module_name +# it also transforms db_foo into foo +mod_name=$(subst db_,,$(lastword $(subst /, ,$(1)))) + +define PACKAGE_GRP_BUILD_template + # package all the modules in PACKAGE_GROUPS in separate packages + $(foreach grp,$(PACKAGE_GROUPS),\ + $(MAKE) every-module group_include="k$(grp)" quiet=verbose + ) +endef + +define PACKAGE_GRP_INSTALL_template + $(foreach grp,$(PACKAGE_GROUPS),\ + $(MAKE) install-modules-all LIBDIR=$(LIBDIR) group_include="k$(grp)" \ + BASEDIR=$(CURDIR)/debian/kamailio-$(grp)-modules \ + cfg_prefix=$(CURDIR)/debian/kamailio-$(grp)-modules \ + doc-dir=share/doc/kamailio-$(grp)-modules quiet=verbose + # eliminate duplicate libs + -for d in $(DUP_LIBS_DIRS); do \ + test "$$d" != "$(CURDIR)/debian/kamailio-$(grp)-modules/usr/$(LIBDIR)/kamailio" &&\ + for r in `find $$d -name 'lib*'|xargs`; do \ + echo "removing $(grp) lib `basename $$r` present also in $$d";\ + rm -f $(CURDIR)/debian/kamailio-$(grp)-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \ + done ; \ + done + find $(CURDIR)/debian/kamailio-$(grp)-modules -depth -empty -type d -exec rmdir {} \; + ) +endef + +define PACKAGE_EXTRA_BUILD_template + # package all the modules in EXTRA_GROUPS in separate packages + $(foreach grp,$(EXTRA_GROUPS),\ + $(MAKE) every-module group_include="k$(grp)" quiet=verbose + ) +endef + +define PACKAGE_EXTRA_INSTALL_template + $(foreach grp,$(EXTRA_GROUPS),\ + $(MAKE) install-modules-all LIBDIR=$(LIBDIR) group_include="k$(grp)" \ + BASEDIR=$(CURDIR)/debian/kamailio-extra-modules \ + cfg_prefix=$(CURDIR)/debian/kamailio-extra-modules \ + doc-dir=share/doc/kamailio-extra-modules quiet=verbose + ) + # eliminate duplicate libs + -for d in $(DUP_LIBS_DIRS); do \ + test "$$d" != "$(CURDIR)/debian/kamailio-extra-modules/usr/$(LIBDIR)/kamailio" &&\ + for r in `find $$d -name 'lib*'|xargs`; do \ + echo "removing extra lib `basename $$r` present also in $$d";\ + rm -f $(CURDIR)/debian/kamailio-extra-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \ + done ; \ + done + find $(CURDIR)/debian/kamailio-extra-modules -depth -empty -type d -exec rmdir {} \; +endef + +# CFLAGS + CPPFLAGS -> CC_EXTRA_OPTS +CC_EXTRA_OPTS := $(shell dpkg-buildflags --get CPPFLAGS) +CC_EXTRA_OPTS += $(shell DEB_CFLAGS_MAINT_STRIP=-O2 dpkg-buildflags --get CFLAGS) +CXXFLAGS := $(shell DEB_CXXFLAGS_MAINT_STRIP=-O2 dpkg-buildflags --get CXXFLAGS) +# LDFLAGS -> LD_EXTRA_OPTS +LD_EXTRA_OPTS := $(shell dpkg-buildflags --get LDFLAGS) + +# https://wiki.debian.org/ReproducibleBuilds/ +CC_EXTRA_OPTS += -DVERSION_NODATE + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + $(MAKE) FLAVOUR=kamailio cfg prefix=/usr cfg_prefix=$(CURDIR)/debian/kamailio \ + cfg_target=/etc/kamailio/ \ + BASEDIR=$(CURDIR)/debian/kamailio \ + skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ + CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ + LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ + group_include="kstandard" quiet=verbose + + touch configure-stamp + + +build: build-stamp +build-arch: build-stamp +build-indep: build-stamp +build-stamp: configure-stamp + dh_testdir + # Add here commands to compile the package. + $(MAKE) all quiet=verbose + # make groups + $(call PACKAGE_GRP_BUILD_template) + $(call PACKAGE_EXTRA_BUILD_template) + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + # Add here commands to clean up after the build process. + $(MAKE) maintainer-clean + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + # Add here commands to install the package into debian/kamailio + $(MAKE) install group_include="kstandard" + # make group packages + $(call PACKAGE_GRP_INSTALL_template) + $(call PACKAGE_EXTRA_INSTALL_template) + mv $(CURDIR)/debian/kamailio-berkeley-modules/usr/sbin/kambdb_recover \ + $(CURDIR)/debian/kamailio-berkeley-bin/usr/sbin/kambdb_recover + # install /etc/default/kamailio file + mkdir -p $(CURDIR)/debian/kamailio/etc/default + cp -f debian/kamailio.default $(CURDIR)/debian/kamailio/etc/default/kamailio + # delete /run/kamailio dir + rm -rf $(CURDIR)/debian/kamailio/usr/local + + +# This single target is used to build all the packages, all at once, or +# one at a time. So keep in mind: any options passed to commands here will +# affect _all_ packages. Anything you want to only affect one package +# should be put in another target, such as the install target. +binary-common: + dh_testdir + dh_testroot + dh_installdebconf + dh_installdocs + dh_installexamples -Xobsoleted -Xsr + dh_installmenu + dh_systemd_enable -pkamailio + dh_installinit -pkamailio -- defaults 23 + dh_systemd_start -pkamailio + dh_installcron + dh_installman + dh_installinfo + dh_lintian + dh_installchangelogs ChangeLog + dh_link + dh_strip --dbg-package=kamailio-dbg + dh_compress + dh_fixperms + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture-independent packages using the common target +binary-indep: build install +# (Uncomment this next line if you have such packages.) +# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common +# We have nothing to do by default. + + +# Build architecture-dependent packages using the common target +binary-arch: build install + $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common + +# Any other binary targets build just one binary package at a time. +binary-%: build install + $(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$* + +print-version: + @@echo "Debian version: $(DEBVERSION)" + @@echo "Upstream version: $(UPVERSION)" + +get-orig-source: + @@dh_testdir + @@[ -d ../tarballs/. ]||mkdir -p ../tarballs + @@echo Downloading $(FILENAME) from $(URL) ... + @@wget -nv -T10 -t3 -O ../tarballs/$(FILENAME) $(URL) + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure + diff --git a/pkg/kamailio/deb/jammy/source.lintian-overrides b/pkg/kamailio/deb/jammy/source.lintian-overrides new file mode 100644 index 000000000..620d9ffdd --- /dev/null +++ b/pkg/kamailio/deb/jammy/source.lintian-overrides @@ -0,0 +1 @@ +kamailio source: debian-watch-file-in-native-package diff --git a/pkg/kamailio/deb/jammy/source/format b/pkg/kamailio/deb/jammy/source/format new file mode 100644 index 000000000..89ae9db8f --- /dev/null +++ b/pkg/kamailio/deb/jammy/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/pkg/kamailio/deb/jammy/watch b/pkg/kamailio/deb/jammy/watch new file mode 100644 index 000000000..c50f31fd6 --- /dev/null +++ b/pkg/kamailio/deb/jammy/watch @@ -0,0 +1,3 @@ +version=3 +opts=dversionmangle=s/\~svn([\d]+)//; \ +http://www.kamailio.org/pub/kamailio/([\d.]+)/src/kamailio-([\d.]+)_src\.tar\.gz diff --git a/pkg/kamailio/deb/jessie/changelog b/pkg/kamailio/deb/jessie/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/jessie/changelog +++ b/pkg/kamailio/deb/jessie/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/jessie/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/jessie/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/jessie/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/jessie/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/precise/changelog b/pkg/kamailio/deb/precise/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/precise/changelog +++ b/pkg/kamailio/deb/precise/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/precise/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/precise/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/precise/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/precise/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/sid/changelog b/pkg/kamailio/deb/sid/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/sid/changelog +++ b/pkg/kamailio/deb/sid/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/sid/control b/pkg/kamailio/deb/sid/control index 1c7ef64aa..c22e5409d 100644 --- a/pkg/kamailio/deb/sid/control +++ b/pkg/kamailio/deb/sid/control @@ -30,7 +30,7 @@ Build-Depends: libmono-2.0-dev [amd64 armel armhf i386 mipsel kfreebsd-amd64 kfreebsd-i386 ppc64 ppc64el s390x], libmosquitto-dev, libnats-dev, - libncurses5-dev, + libncurses-dev, libpcre3-dev, libperl-dev, libphonenumber-dev (>= 7), @@ -70,7 +70,6 @@ Pre-Depends: ${misc:Pre-Depends}, Depends: adduser, - lsb-base, python3, ${misc:Depends}, ${shlibs:Depends}, diff --git a/pkg/kamailio/deb/sid/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/sid/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/sid/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/sid/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/stretch/changelog b/pkg/kamailio/deb/stretch/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/stretch/changelog +++ b/pkg/kamailio/deb/stretch/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/stretch/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/stretch/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/stretch/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/stretch/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/trusty/changelog b/pkg/kamailio/deb/trusty/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/trusty/changelog +++ b/pkg/kamailio/deb/trusty/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/trusty/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/trusty/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/trusty/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/trusty/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/wheezy/changelog b/pkg/kamailio/deb/wheezy/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/wheezy/changelog +++ b/pkg/kamailio/deb/wheezy/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/wheezy/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/wheezy/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/wheezy/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/wheezy/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/deb/xenial/changelog b/pkg/kamailio/deb/xenial/changelog index ce63ec3e7..10409f4f9 100644 --- a/pkg/kamailio/deb/xenial/changelog +++ b/pkg/kamailio/deb/xenial/changelog @@ -1,3 +1,15 @@ +kamailio (5.6.4) unstable; urgency=medium + + * version set 5.6.4 + + -- Victor Seva Mon, 27 Feb 2023 10:00:13 +0100 + +kamailio (5.6.3) unstable; urgency=medium + + * version set 5.6.3 + + -- Victor Seva Wed, 11 Jan 2023 09:06:01 +0100 + kamailio (5.6.2) unstable; urgency=medium * version set 5.6.2 diff --git a/pkg/kamailio/deb/xenial/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/xenial/kamailio-tls-modules.lintian-overrides index 5bd22e00a..d1e84e682 100644 --- a/pkg/kamailio/deb/xenial/kamailio-tls-modules.lintian-overrides +++ b/pkg/kamailio/deb/xenial/kamailio-tls-modules.lintian-overrides @@ -1,2 +1,2 @@ kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl -kamailio-tls-modules binary: library-not-linked-against-libc usr/lib/*/kamailio/openssl_mutex_shared/openssl_mutex_shared.so +kamailio-tls-modules binary: library-not-linked-against-libc diff --git a/pkg/kamailio/obs/kamailio.spec b/pkg/kamailio/obs/kamailio.spec index 472cb4460..d24176a38 100644 --- a/pkg/kamailio/obs/kamailio.spec +++ b/pkg/kamailio/obs/kamailio.spec @@ -1,5 +1,5 @@ %define name kamailio -%define ver 5.6.2 +%define ver 5.6.4 %define rel dev1.0%{dist} %if 0%{?fedora} @@ -736,8 +736,11 @@ BuildRequires: zlib-devel Requires: libmysqlclient18 BuildRequires: libmysqlclient-devel %else -Requires: mysql-libs +%if 0%{?rhel} == 6 BuildRequires: mysql-devel +%else +BuildRequires: mariadb-devel +%endif %endif %description mysql diff --git a/src/Makefile b/src/Makefile index a6380c228..b5f7192cd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -28,7 +28,7 @@ include Makefile.sources include Makefile.targets # whether or not the entire build process should fail if building a module or -# an utility fails +# a utility fails err_fail?=1 # whether or not to install $(MAIN_NAME).cfg or just $(MAIN_NAME).cfg.default diff --git a/src/Makefile.defs b/src/Makefile.defs index 2697e5c19..99eae5cdb 100644 --- a/src/Makefile.defs +++ b/src/Makefile.defs @@ -106,7 +106,7 @@ INSTALL_FLAVOUR=$(FLAVOUR) # version number VERSION = 5 PATCHLEVEL = 6 -SUBLEVEL = 2 +SUBLEVEL = 4 EXTRAVERSION = # memory manager switcher diff --git a/src/Makefile.utils b/src/Makefile.utils index e8a8b8a1a..d4be3f088 100644 --- a/src/Makefile.utils +++ b/src/Makefile.utils @@ -30,7 +30,7 @@ COREPATH ?=../../src ALLDEP=Makefile $(COREPATH)/Makefile.sources $(COREPATH)/Makefile.rules \ $(COREPATH)/Makefile.utils $(COREPATH)/Makefile.dirs $(COREPATH)/config.mak -#override modules value, an util cannot have submodules +#override modules value, a util cannot have submodules override modules= override static_modules= override static_modules_path= diff --git a/src/core/action.c b/src/core/action.c index 48b150dd7..a402eb804 100644 --- a/src/core/action.c +++ b/src/core/action.c @@ -918,7 +918,7 @@ int do_action(struct run_act_ctx* h, struct action* a, struct sip_msg* msg) if (len){ if(crt+len>end) goto error_uri; memcpy(crt,tmp,len);crt+=len; - user=1; /* we have an user field so mark it */ + user=1; /* we have a user field so mark it */ } if (a->type==SET_USERPASS_T) tmp=0; diff --git a/src/core/autover.h b/src/core/autover.h index b78c89b09..70b3b593f 100644 --- a/src/core/autover.h +++ b/src/core/autover.h @@ -2,6 +2,6 @@ * DO NOT EDIT IT */ -#define REPO_VER "54a9c1" -#define REPO_HASH "54a9c1" +#define REPO_VER "a004cf" +#define REPO_HASH "a004cf" #define REPO_STATE "" diff --git a/src/core/bit_scan.h b/src/core/bit_scan.h index 3e690b5e0..249a1354a 100644 --- a/src/core/bit_scan.h +++ b/src/core/bit_scan.h @@ -79,7 +79,7 @@ #elif defined __CPU_x86 || defined __CPU_x86_64 /* no asm (e.g. no CC_GCC_LIKE_ASM) => debruijn for bit_scan_forward and * br for bit_scan_reverse */ -/* make sure debruijn an branch version are enabled */ +/* make sure debruijn and branch version are enabled */ #ifndef BIT_SCAN_DEBRUIJN #define BIT_SCAN_DEBRUIJN #endif @@ -117,7 +117,7 @@ #else /* __CPU_XXX */ /* default - like x86 no asm */ -/* make sure debruijn an branch version are enabled */ +/* make sure debruijn and branch version are enabled */ #ifndef BIT_SCAN_DEBRUIJN #define BIT_SCAN_DEBRUIJN #endif diff --git a/src/core/cfg/cfg_struct.c b/src/core/cfg/cfg_struct.c index 49a885d8a..94e5b2a5b 100644 --- a/src/core/cfg/cfg_struct.c +++ b/src/core/cfg/cfg_struct.c @@ -1099,7 +1099,7 @@ error: * Both parameters can be NULL meaning that the src/dst config is the default, * not an additional group instance. * The function executes all the per-child process callbacks which are different - * in the two instaces. + * in the two instances. */ void cfg_move_handle(cfg_group_t *group, cfg_group_inst_t *src_ginst, cfg_group_inst_t *dst_ginst) { diff --git a/src/core/cfg/cfg_struct.h b/src/core/cfg/cfg_struct.h index 03f38f322..e789cf802 100644 --- a/src/core/cfg/cfg_struct.h +++ b/src/core/cfg/cfg_struct.h @@ -299,7 +299,7 @@ static inline void cfg_child_cb_free_item(cfg_child_cb_t *cb) * Both parameters can be NULL meaning that the src/dst config is the default, * not an additional group instance. * The function executes all the per-child process callbacks which are different - * in the two instaces. + * in the two instances. */ void cfg_move_handle(cfg_group_t *group, cfg_group_inst_t *src_ginst, cfg_group_inst_t *dst_ginst); diff --git a/src/core/daemonize.c b/src/core/daemonize.c index 3982c4cdc..50a0b4ed5 100644 --- a/src/core/daemonize.c +++ b/src/core/daemonize.c @@ -111,7 +111,7 @@ retry: -/** wait for an exit status to be send by daemon_status_send(). +/** wait for an exit status to be sent by daemon_status_send(). * @param status - filled with the sent status (a char). * @return 0 on success, -1 on error (e.g. process died before sending * status, not initialized a.s.o.). diff --git a/src/core/dns_cache.c b/src/core/dns_cache.c index e5e1b473b..1999ca7a8 100644 --- a/src/core/dns_cache.c +++ b/src/core/dns_cache.c @@ -786,7 +786,7 @@ inline static struct dns_hash_entry* dns_cache_mk_bad_entry(str* name, -/* create a a/aaaa hash entry from a name and ip address +/* create an a/aaaa hash entry from a name and ip address * returns 0 on error */ inline static struct dns_hash_entry* dns_cache_mk_ip_entry(str* name, struct ip_addr* ip) @@ -4399,8 +4399,8 @@ int dns_cache_add_record(unsigned short type, } if (!rr_p) { - for ( rr_p = rr_iter; - *rr_p && (*rr_p != new_rr); + for (rr_p = rr_iter; + rr_p && *rr_p && (*rr_p != new_rr); rr_p = &((*rr_p)->next) ); } diff --git a/src/core/dprint.c b/src/core/dprint.c index f4780bb4d..27bdbce8c 100644 --- a/src/core/dprint.c +++ b/src/core/dprint.c @@ -480,7 +480,9 @@ void log_init(void) log_fqdn = strdup (info->ai_canonname); } - freeaddrinfo (info); + if(info!=NULL) { + freeaddrinfo (info); + } dprint_init_colors(); } diff --git a/src/core/io_wait.h b/src/core/io_wait.h index 5e823fb76..dec960ca7 100644 --- a/src/core/io_wait.h +++ b/src/core/io_wait.h @@ -257,7 +257,7 @@ again: BUG("kq_ev_change: kevent flush changes failed" " (unexpected error): %s [%d]\n", strerror(errno), errno); - /* ignore error even if it's not a EBADF/ENOENT */ + /* ignore error even if it's not an EBADF/ENOENT */ /* one of the file descriptors is bad, probably already closed => try to apply changes one-by-one */ for (r = 0; r < h->kq_nchanges; r++) { diff --git a/src/core/mem/dl_malloc.c b/src/core/mem/dl_malloc.c index 8752e5d9d..1bc0d0e16 100644 --- a/src/core/mem/dl_malloc.c +++ b/src/core/mem/dl_malloc.c @@ -1260,7 +1260,7 @@ extern void* sbrk(ptrdiff_t); /* The bit mask value corresponding to MALLOC_ALIGNMENT */ #define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE) -/* True if address a has acceptable alignment */ +/* True if address A has acceptable alignment */ #define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) /* the number of bytes to offset an address to align it */ diff --git a/src/core/msg_translator.c b/src/core/msg_translator.c index bc1b9736d..3ab6fae47 100644 --- a/src/core/msg_translator.c +++ b/src/core/msg_translator.c @@ -53,7 +53,7 @@ * lookup is performed on the host part and the reply is sent to the * resulting ip. If a port is present or the host part is an ip address * the dns lookup will be a "normal" one (A or AAAA). - * - if rport is present, it's value will be used as the destination port + * - if rport is present, its value will be used as the destination port * (and this will also disable srv lookups) * - if no port is present the destination port will be taken from the srv * lookup. If the srv lookup fails or is not performed (e.g. ip address @@ -1459,7 +1459,7 @@ skip_nop_before: /* skip len bytes from orig msg */ s_offset+=t->len; } else if (t->op==LUMP_DEL && flag == FLAG_MSG_LUMPS_ONLY) { - /* copy lump value and indent as necessarely */ + /* copy lump value and indent as necessarily */ memcpy(new_buf+offset, orig + t->u.offset, t->len); offset+=t->len; if (new_buf[offset-1] != '\n') { @@ -1592,7 +1592,7 @@ static inline int adjust_clen(struct sip_msg* msg, int body_delta, int proto) /* The body has been changed, try to find * existing Content-Length */ - /* no need for Content-Length if it's and UDP packet and + /* no need for Content-Length if it's an UDP packet and * it hasn't Content-Length already */ if (msg->content_length==0){ /* content-length doesn't exist, append it */ @@ -1938,7 +1938,7 @@ clean: /** builds a request in memory from another sip request. * * Side-effects: - it adds lumps to the msg which are _not_ cleaned. - * The added lumps are HDR_VIA_T (almost always added), HDR_CONTENLENGTH_T + * The added lumps are HDR_VIA_T (almost always added), HDR_CONTENTLENGTH_T * and HDR_ROUTE_T (when a Route: header is added as a result of a non-null * msg->path_vec). * - it might change send_info->proto and send_info->send_socket @@ -2109,7 +2109,7 @@ after_local_via: } received_buf = NULL; } - /* if rport needs to be updated, delete it if present and add it's value */ + /* if rport needs to be updated, delete it if present and add its value */ if (rport_buf){ if (msg->via1->rport){ /* rport already present */ via_insert_param=del_lump(msg, @@ -3075,7 +3075,7 @@ char* create_via_hf(unsigned int *len, /* builds a char* buffer from message headers without body * first line is excluded in case of skip_first_line=1 - * error is set -1 if the memory allocation failes + * error is set -1 if the memory allocation fails */ char * build_only_headers( struct sip_msg* msg, int skip_first_line, unsigned int *returned_len, @@ -3127,7 +3127,7 @@ char * build_only_headers( struct sip_msg* msg, int skip_first_line, } /* builds a char* buffer from message body - * error is set -1 if the memory allocation failes + * error is set -1 if the memory allocation fails */ char * build_body( struct sip_msg* msg, unsigned int *returned_len, @@ -3253,7 +3253,7 @@ int build_sip_msg_from_buf(struct sip_msg *msg, char *buf, int len, msg->buf = buf; msg->len = len; if (parse_msg(buf, len, msg)!=0) { - LM_ERR("parsing failed"); + LM_ERR("parsing failed\n"); return -1; } msg->set_global_address=default_global_address; diff --git a/src/core/parser/digest/digest.c b/src/core/parser/digest/digest.c index 83cce621f..999442171 100644 --- a/src/core/parser/digest/digest.c +++ b/src/core/parser/digest/digest.c @@ -61,7 +61,7 @@ static inline int new_credentials(struct hdr_field* _h) * Return value -1 means that the function was unable to allocate * memory and therefore the server should return Internal Server Error, * not Bad Request in this case ! - * Bad Request should be send when return value != -1 + * Bad Request should be sent when return value != -1 */ int parse_credentials(struct hdr_field* _h) { diff --git a/src/core/parser/hf.h b/src/core/parser/hf.h index 8b5dfc979..6a2d9fdae 100644 --- a/src/core/parser/hf.h +++ b/src/core/parser/hf.h @@ -231,6 +231,7 @@ static inline int hdr_allocs_parse(struct hdr_field* hdr) case HDR_PROXYAUTH_T: case HDR_RECORDROUTE_T: case HDR_REFER_TO_T: + case HDR_REQUIRE_T: case HDR_ROUTE_T: case HDR_RPID_T: case HDR_SESSIONEXPIRES_T: diff --git a/src/core/parser/parse_content.h b/src/core/parser/parse_content.h index 16fb79a56..f6bb8de7b 100644 --- a/src/core/parser/parse_content.h +++ b/src/core/parser/parse_content.h @@ -91,7 +91,7 @@ struct mime_type { /*! \brief - * returns the accept values of a sip_msg as an null-terminated array + * returns the accept values of a sip_msg as a null-terminated array * of integer */ #define get_accept(_msg_) ((int*)((_msg_)->accept->parsed)) @@ -109,7 +109,7 @@ int parse_accept_body(struct hdr_field* const hdr); /*! \brief * parse the body of the Accept header. It's values are also converted - * as an null-terminated array of ints. + * as a null-terminated array of ints. * Returns: 1 : OK * 0 : hdr not found * -1 : error (parse error) @@ -119,7 +119,7 @@ int parse_accept_hdr(struct sip_msg* const msg); /*! \brief * parse the body of a Content_-Length header. Also tries to recognize the - * type specified by this header (see th above defines). + * type specified by this header (see the above defines). * Returns the first chr after the end of the header. */ char* parse_content_length(char* const buffer, const char* const end, int* const length); diff --git a/src/core/parser/sdp/sdp.c b/src/core/parser/sdp/sdp.c index 404a20fee..d0fbd0a3e 100644 --- a/src/core/parser/sdp/sdp.c +++ b/src/core/parser/sdp/sdp.c @@ -550,7 +550,7 @@ static int parse_sdp_session(str *sdp_body, int session_num, str *cnt_disp, sdp_ } payload_attr = 0; - /* Let's figure out the atributes */ + /* Let's figure out the attributes */ a1p = find_sdp_line(m1p, m2p, 'a'); a2p = a1p; for (;;) { diff --git a/src/core/route.c b/src/core/route.c index f52080431..ae60a7d81 100644 --- a/src/core/route.c +++ b/src/core/route.c @@ -232,7 +232,7 @@ int route_get(struct route_list* rt, char* name) int i; len=strlen(name); - /* check if exists an non empty*/ + /* check if exists and non empty*/ e=str_hash_get(&rt->names, name, len); if (e){ i=e->u.n; @@ -261,7 +261,7 @@ int route_lookup(struct route_list* rt, char* name) struct str_hash_entry* e; len=strlen(name); - /* check if exists an non empty*/ + /* check if exists and non empty*/ e=str_hash_get(&rt->names, name, len); if (e){ return e->u.n; diff --git a/src/core/rpc.h b/src/core/rpc.h index 0eefc99a9..30f17fb1f 100644 --- a/src/core/rpc.h +++ b/src/core/rpc.h @@ -1,4 +1,4 @@ -/* +/* * Kamailio Remote Procedure Call Interface * * Copyright (C) 2005 iptelorg GmbH @@ -15,8 +15,8 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -27,12 +27,8 @@ * Module: \ref core */ -#ifndef _RPC_H -#define _RPC_H - -/* - * TODO: Add the possibility to add printf-like formatted string to fault - */ +#ifndef _RPC_H_ +#define _RPC_H_ enum rpc_flags { RET_ARRAY = (1 << 0), @@ -120,5 +116,4 @@ typedef struct rpc_export { unsigned int flags; /*!< Various flags, reserved for future use */ } rpc_export_t; - -#endif /* _RPC_H */ +#endif /* _RPC_H_ */ diff --git a/src/core/rpc_lookup.c b/src/core/rpc_lookup.c index 55fddc688..5203609db 100644 --- a/src/core/rpc_lookup.c +++ b/src/core/rpc_lookup.c @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2009 iptelorg GmbH * * Permission to use, copy, modify, and distribute this software for any @@ -40,8 +40,8 @@ int rpc_sarray_crt_size; /* used */ static int rpc_sarray_max_size; /* number of entries alloc'ed */ /** init the rpc hash table. - * @return 0 on success, -1 on error - */ + * @return 0 on success, -1 on error + */ int init_rpcs(void) { if (str_hash_alloc(&rpc_hash_table, RPC_HASH_SIZE)<0) @@ -91,12 +91,12 @@ static int rpc_hash_add(struct rpc_export* rpc) int doc0_len, doc1_len; struct rpc_export* n_rpc; struct rpc_export** r; - + name_len=strlen(rpc->name); doc0_len=rpc->doc_str[0]?strlen(rpc->doc_str[0]):0; doc1_len=rpc->doc_str[1]?strlen(rpc->doc_str[1]):0; /* alloc everything into one block */ - + #ifdef RPC_COPY_EXPORT e=pkg_malloc(ROUND_POINTER(sizeof(struct str_hash_entry)) +ROUND_POINTER(sizeof(*rpc))+2*sizeof(char*)+ @@ -106,7 +106,7 @@ static int rpc_hash_add(struct rpc_export* rpc) #else /* RPC_COPY_EXPORT */ e=pkg_malloc(ROUND_POINTER(sizeof(struct str_hash_entry))); #endif /* RPC_COPY_EXPORT */ - + if (e==0){ PKG_MEM_ERROR; goto error; @@ -138,13 +138,13 @@ static int rpc_hash_add(struct rpc_export* rpc) #else /* RPC_COPY_EXPORT */ n_rpc=rpc; #endif /* RPC_COPY_EXPORT */ - + e->key.s=(char*)n_rpc->name; e->key.len=name_len; e->flags=0; e->u.p=n_rpc; str_hash_add(&rpc_hash_table, e); - + /* insert it into the sorted array */ if (rpc_sarray_max_size<=rpc_sarray_crt_size){ /* array must be increased */ @@ -179,7 +179,7 @@ error: rpc_export_t* rpc_lookup(const char* name, int len) { struct str_hash_entry* e; - + e=str_hash_get(&rpc_hash_table, (char*)name, len); return e?(rpc_export_t*)e->u.p:0; } @@ -191,7 +191,7 @@ rpc_export_t* rpc_lookup(const char* name, int len) */ int rpc_register(rpc_export_t* rpc) { - + /* check if the entry is already registered */ if (rpc_lookup(rpc->name, strlen(rpc->name))){ WARN("duplicate rpc \"%s\"\n", rpc->name); @@ -204,14 +204,14 @@ int rpc_register(rpc_export_t* rpc) /** register all the rpc in a null-terminated array. - * @return 0 on success, >0 if duplicates were found (number of - * duplicates), -1 on error - */ + * @return 0 on success, >0 if duplicates were found (number of + * duplicates), -1 on error + */ int rpc_register_array(rpc_export_t* rpc_array) { rpc_export_t* rpc; int ret,i; - + ret=0; for (rpc=rpc_array; rpc && rpc->name; rpc++){ i=rpc_register(rpc); diff --git a/src/core/rpc_lookup.h b/src/core/rpc_lookup.h index fb199af82..f29aa063f 100644 --- a/src/core/rpc_lookup.h +++ b/src/core/rpc_lookup.h @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2009 iptelorg GmbH * * Permission to use, copy, modify, and distribute this software for any @@ -21,8 +21,8 @@ * \author andrei */ -#ifndef __rpc_lookup_h -#define __rpc_lookup_h +#ifndef _RPC_LOOKUP_H_ +#define _RPC_LOOKUP_H_ #include "rpc.h" /* must be exported for listing the rpcs */ @@ -36,8 +36,6 @@ rpc_export_t* rpc_lookup(const char* name, int len); int rpc_register(rpc_export_t* rpc); int rpc_register_array(rpc_export_t* rpc_array); - - -#endif /*__rpc_lookup_h*/ +#endif /*_RPC_LOOKUP_H_*/ /* vi: set ts=4 sw=4 tw=79:ai:cindent: */ diff --git a/src/core/rvalue.c b/src/core/rvalue.c index 902f3c2c6..0cd1608bc 100644 --- a/src/core/rvalue.c +++ b/src/core/rvalue.c @@ -2690,7 +2690,7 @@ struct rval_expr* mk_rval_expr_v(enum rval_type rv_type, void* val, /** - * @brief Create a unary op. rval_expr + * @brief Create an unary op. rval_expr * ret= op rve1 * @param op - rval expr. unary operator * @param rve1 - rval expr. on which the operator will act. @@ -3652,7 +3652,7 @@ static int rve_optimize(struct rval_expr* rve) if (rve_replace_with_ct_rv(rve->right.rve, rv)<0) goto error; rve->op=RVE_IPLUS_OP; - LM_DBG("FIXUP RVE (%d,%d-%d,%d): optimized $v - a into " + LM_DBG("FIXUP RVE (%d,%d-%d,%d): optimized $v - an into " "$v + (%d)\n", rve->fpos.s_line, rve->fpos.s_col, rve->fpos.e_line, rve->fpos.e_col, diff --git a/src/core/rvalue.h b/src/core/rvalue.h index f8591872d..48ef9f444 100644 --- a/src/core/rvalue.h +++ b/src/core/rvalue.h @@ -296,7 +296,7 @@ struct rval_expr* mk_rval_expr_v(enum rval_type rv_type, void* val, struct cfg_pos* pos); /** - * @brief Create a unary op. rval_expr + * @brief Create an unary op. rval_expr * ret= op rve1 * @param op - rval expr. unary operator * @param rve1 - rval expr. on which the operator will act. diff --git a/src/core/socket_info.c b/src/core/socket_info.c index e3ae29bc1..bbc8840ab 100644 --- a/src/core/socket_info.c +++ b/src/core/socket_info.c @@ -1714,7 +1714,7 @@ static int fix_hostname(str* name, struct ip_addr* address, str* address_str, } #ifdef USE_MCAST - /* Check if it is an multicast address and + /* Check if it is a multicast address and * set the flag if so */ if (is_mcast(address)){ diff --git a/src/core/tcp_main.c b/src/core/tcp_main.c index c60ce7f2b..160ff65dd 100644 --- a/src/core/tcp_main.c +++ b/src/core/tcp_main.c @@ -2043,8 +2043,10 @@ int tcp_send(struct dest_info* dst, union sockaddr_union* from, } /* check if connect() is disabled */ if (unlikely((dst->send_flags.f & SND_F_FORCE_CON_REUSE) || - cfg_get(tcp, tcp_cfg, no_connect))) + cfg_get(tcp, tcp_cfg, no_connect))) { + LM_DBG("no connect set and no active connection\n"); return -1; + } LM_DBG("no open tcp connection found, opening new one\n"); /* create tcp connection */ if (likely(from==0)){ diff --git a/src/core/ut.h b/src/core/ut.h index 7792a865e..220d7ecd2 100644 --- a/src/core/ut.h +++ b/src/core/ut.h @@ -659,7 +659,7 @@ static inline void strlower(str* _s) /* - * Convert an str to unsigned long + * Convert a str to unsigned long */ static inline int str2ulong(str* _s, unsigned long* _r) { @@ -667,7 +667,7 @@ static inline int str2ulong(str* _s, unsigned long* _r) } /* - * Convert an str to unsigned integer + * Convert a str to unsigned integer */ static inline int str2int(str* _s, unsigned int* _r) { diff --git a/src/core/utils/tmrec.c b/src/core/utils/tmrec.c index 609aa78b4..1b468acc4 100644 --- a/src/core/utils/tmrec.c +++ b/src/core/utils/tmrec.c @@ -57,33 +57,6 @@ static inline int tr_strz_to_int(char *_bp) } -static inline char* tr_trim(char* _s) -{ - int len; - char* end; - - /* Null pointer, there is nothing to do */ - if (!_s) return _s; - - /* Remove spaces and tabs from the beginning of string */ - while ((*_s == ' ') || (*_s == '\t')) _s++; - - len = strlen(_s); - - end = _s + len - 1; - - /* Remove trailing spaces and tabs */ - while ((*end == ' ') || (*end == '\t')) end--; - if (end != (_s + len - 1)) { - *(end+1) = '\0'; - } - - return _s; -} - - - - /** * ===== imported from "ac_tm.c" */ diff --git a/src/lib/binrpc/binrpc_api.c b/src/lib/binrpc/binrpc_api.c index 29d17fccc..02a529720 100644 --- a/src/lib/binrpc/binrpc_api.c +++ b/src/lib/binrpc/binrpc_api.c @@ -698,7 +698,7 @@ int binrpc_get_response_type(struct binrpc_response_handle *resp_handle) * and stops at each %v, returning a pointer after the %v, setting *size * to the string length (not including %v) and *type to the corresponding * BINRPC type (for now only BINRPC_T_ALL). - * To escape a '%', use "%%", and check for type==-1 (which means skip an call + * To escape a '%', use "%%", and check for type==-1 (which means skip a call * again parse_fmt). * Usage: * n="test: %v,%v,%v\n"; diff --git a/src/lib/ims/ims_getters.c b/src/lib/ims/ims_getters.c index 26fdbb8c4..56816be42 100644 --- a/src/lib/ims/ims_getters.c +++ b/src/lib/ims/ims_getters.c @@ -1247,12 +1247,13 @@ int cscf_get_p_charging_vector(struct sip_msg *msg, str * icid, str * orig_ioi, LM_DBG("p_charging_vector body is %.*s\n", header_body.len, header_body.s); p = strtok(header_body.s, " ;:\r\t\n\"="); - loop: if (p > (header_body.s + header_body.len)) +loop: + if (p == NULL || p > (header_body.s + header_body.len)) return 1; if (strncmp(p, "icid-value", 10) == 0) { p = strtok(NULL, " ;:\r\t\n\"="); - if (p > (header_body.s + header_body.len)) { + if (p == NULL || p > (header_body.s + header_body.len)) { LM_ERR("cscf_get_p_charging_vector: no value for icid\n"); return 0; } @@ -1272,7 +1273,7 @@ int cscf_get_p_charging_vector(struct sip_msg *msg, str * icid, str * orig_ioi, } else if (strncmp(p, "orig-ioi", 8) == 0) { p = strtok(NULL, " ;:\r\t\n\"="); - if (p > (header_body.s + header_body.len)) { + if (p == NULL || p > (header_body.s + header_body.len)) { LM_ERR("cscf_get_p_charging_vector: no value for icid\n"); return 0; } @@ -1292,7 +1293,7 @@ int cscf_get_p_charging_vector(struct sip_msg *msg, str * icid, str * orig_ioi, } else if (strncmp(p, "term-ioi", 8) == 0) { p = strtok(NULL, " ;:\r\t\n\"="); - if (p > (header_body.s + header_body.len)) { + if (p == NULL || p > (header_body.s + header_body.len)) { LM_ERR("cscf_get_p_charging_vector: no value for icid\n"); return 0; } @@ -1314,7 +1315,7 @@ int cscf_get_p_charging_vector(struct sip_msg *msg, str * icid, str * orig_ioi, LM_DBG("end\n"); str_free(header_body, pkg); return 1; - out_of_memory: +out_of_memory: PKG_MEM_ERROR; return 0; } diff --git a/src/lib/srdb1/db_op.h b/src/lib/srdb1/db_op.h index 31dbe4426..fa341fe49 100644 --- a/src/lib/srdb1/db_op.h +++ b/src/lib/srdb1/db_op.h @@ -21,7 +21,7 @@ /** * \file lib/srdb1/db_op.h - * \brief Type that represents a expression operator. + * \brief Type that represents an expression operator. * \ingroup db1 */ diff --git a/src/lib/srdb1/schema/globalblocklist.xml b/src/lib/srdb1/schema/globalblocklist.xml index afd2aad36..e77263e59 100644 --- a/src/lib/srdb1/schema/globalblocklist.xml +++ b/src/lib/srdb1/schema/globalblocklist.xml @@ -45,7 +45,7 @@ char 1 0 - Specify if this a blocklist (0) or a allowlist (1) entry. + Specify if this is a blocklist (0) or an allowlist (1) entry. diff --git a/src/lib/srdb1/schema/userblocklist.xml b/src/lib/srdb1/schema/userblocklist.xml index 31af9c664..cbf604c1e 100644 --- a/src/lib/srdb1/schema/userblocklist.xml +++ b/src/lib/srdb1/schema/userblocklist.xml @@ -62,7 +62,7 @@ char 1 0 - Specify if this a blocklist (0) or a allowlist (1) entry. + Specify if this is a blocklist (0) or an allowlist (1) entry. diff --git a/src/modules/acc/README b/src/modules/acc/README index 1ea4e6f98..d4063ccc0 100644 --- a/src/modules/acc/README +++ b/src/modules/acc/README @@ -582,8 +582,8 @@ Note it is necessary to store the caller and callee for each leg. All this helps to identify the involved phone partners and forwarding chain. When you route such calls multiple times to the same Proxy, you could - store the caller and callee within an transaction based avp and write - it into the dialog based dlg_var pv during a 200 INVITE. + store the caller and callee within a transaction based avp and write it + into the dialog based dlg_var pv during a 200 INVITE. 4.3.2.1. Example for a spiraled Proxy diff --git a/src/modules/acc/acc.c b/src/modules/acc/acc.c index dce7ee0a8..1c1b07f6a 100644 --- a/src/modules/acc/acc.c +++ b/src/modules/acc/acc.c @@ -633,32 +633,32 @@ void acc_api_set_arrays(acc_info_t *inf) } int acc_arrays_alloc(void) { - if ((val_arr = pkg_malloc((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(str))) == NULL) { + if ((val_arr = pkg_mallocxz((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(str))) == NULL) { LM_ERR("failed to alloc val_arr\n"); return -1; } - if ((int_arr = pkg_malloc((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(int))) == NULL) { + if ((int_arr = pkg_mallocxz((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(int))) == NULL) { LM_ERR("failed to alloc int_arr\n"); return -1; } - if ((type_arr = pkg_malloc((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(char))) == NULL) { + if ((type_arr = pkg_mallocxz((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(char))) == NULL) { LM_ERR("failed to alloc type_arr\n"); return -1; } - if ((log_attrs = pkg_malloc((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(str))) == NULL) { + if ((log_attrs = pkg_mallocxz((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(str))) == NULL) { LM_ERR("failed to alloc log_attrs\n"); return -1; } - if ((db_keys = pkg_malloc((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(db_key_t))) == NULL) { + if ((db_keys = pkg_mallocxz((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(db_key_t))) == NULL) { LM_ERR("failed to alloc db_keys\n"); return -1; } - if ((db_vals = pkg_malloc((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(db_val_t))) == NULL) { + if ((db_vals = pkg_mallocxz((ACC_CORE_LEN + acc_extra_size + MAX_ACC_LEG + 3) * sizeof(db_val_t))) == NULL) { LM_ERR("failed to alloc db_vals\n"); return -1; } diff --git a/src/modules/acc/acc_cdr.c b/src/modules/acc/acc_cdr.c index ab1938a9f..d15340b34 100644 --- a/src/modules/acc/acc_cdr.c +++ b/src/modules/acc/acc_cdr.c @@ -314,40 +314,43 @@ static int log_write_cdr( struct dlg_cell* dialog, MAX_SYSLOG_SIZE - 2;// -2 because of the string ending '\n\0' char* message_position = NULL; - int message_index = 0; - int extra_index = 0; int counter = 0; + int attr_cnt = 0; + int core_cnt = 0; + int extra_cnt = 0; if(cdr_log_enable==0) return 0; /* get default values */ - message_index = cdr_core2strar( dialog, + core_cnt = cdr_core2strar( dialog, cdr_value_array, cdr_int_array, cdr_type_array); + attr_cnt += core_cnt; /* get extra values */ if (message) { - extra_index += extra2strar( cdr_extra, + extra_cnt += extra2strar(cdr_extra, message, - cdr_value_array + message_index, - cdr_int_array + message_index, - cdr_type_array + message_index); + cdr_value_array + attr_cnt, + cdr_int_array + attr_cnt, + cdr_type_array + attr_cnt); + attr_cnt += extra_cnt;; } else if (cdr_expired_dlg_enable){ LM_DBG("fallback to dlg_only search because of message does not exist.\n"); - extra_index += extra2strar_dlg_only( cdr_extra, + extra_cnt += extra2strar_dlg_only(cdr_extra, dialog, - cdr_value_array + message_index, - cdr_int_array + message_index, - cdr_type_array + message_index, + cdr_value_array + attr_cnt, + cdr_int_array + attr_cnt, + cdr_type_array + attr_cnt, &dlgb); + attr_cnt += extra_cnt;; } - message_index += extra_index; for( counter = 0, message_position = cdr_message; - counter < message_index ; + counter < attr_cnt ; counter++ ) { const char* const next_message_end = message_position + @@ -391,9 +394,9 @@ static int log_write_cdr( struct dlg_cell* dialog, LM_GEN2( cdr_facility, log_level, "%s", cdr_message); - /* free memory allocated by extra2strar, nothing is done in case no extra strings were found by extra2strar */ - free_strar_mem( &(cdr_type_array[message_index-extra_index]), &(cdr_value_array[message_index-extra_index]), - extra_index, message_index); + /* Free memory allocated by core+extra attrs */ + free_strar_mem( &(cdr_type_array[0]), &(cdr_value_array[0]), + attr_cnt, attr_cnt); return 0; } @@ -930,7 +933,7 @@ int set_cdr_extra( char* cdr_extra_value) return 0; } -/* convert the facility-name string into a id and store it */ +/* convert the facility-name string into an id and store it */ int set_cdr_facility( char* cdr_facility_str) { int facility_id = -1; @@ -978,7 +981,7 @@ int init_cdr_generation( void) return 0; } -/* convert the facility-name string into a id and store it */ +/* convert the facility-name string into an id and store it */ void destroy_cdr_generation( void) { if( !cdr_extra) diff --git a/src/modules/acc/doc/acc_admin.xml b/src/modules/acc/doc/acc_admin.xml index 42f4b88bd..cfe69dff2 100644 --- a/src/modules/acc/doc/acc_admin.xml +++ b/src/modules/acc/doc/acc_admin.xml @@ -390,7 +390,7 @@ if (uri=~"sip:+40") /* calls to Romania */ { (e.g. chain=B;cfa;C|C;cfnr;D). Additionally it is necessary to store the caller and callee for each leg. All this helps to identify the involved phone partners and forwarding chain. When you route such calls multiple times - to the same Proxy, you could store the caller and callee within an transaction + to the same Proxy, you could store the caller and callee within a transaction based avp and write it into the dialog based dlg_var pv during a 200 INVITE.
diff --git a/src/modules/acc_diameter/diam_message.c b/src/modules/acc_diameter/diam_message.c index f4f65e701..07b941304 100644 --- a/src/modules/acc_diameter/diam_message.c +++ b/src/modules/acc_diameter/diam_message.c @@ -54,7 +54,7 @@ ( (_len_)+(((_len_)&3)?4-((_len_)&3):0) ) -/*! \brief from a AAAMessage structure, a buffer to be send is build +/*! \brief from an AAAMessage structure, a buffer to be sent is build */ AAAReturnCode AAABuildMsgBuffer( AAAMessage *msg ) { diff --git a/src/modules/acc_diameter/diam_tcp.c b/src/modules/acc_diameter/diam_tcp.c index b73483b8e..19cf2c76e 100644 --- a/src/modules/acc_diameter/diam_tcp.c +++ b/src/modules/acc_diameter/diam_tcp.c @@ -134,7 +134,7 @@ int tcp_send_recv(int sfd, char* buf, int len, rd_buf_t* rb, LM_ERR("no response received\n"); // return AAA_ERROR; } - */ /* Data arriving on a already-connected socket. */ + */ /* Data arriving on an already-connected socket. */ reset_read_buffer(rb); switch( do_read(sfd, rb) ) { diff --git a/src/modules/app_jsdt/duktape.c b/src/modules/app_jsdt/duktape.c index 573e70c2b..03283dabd 100644 --- a/src/modules/app_jsdt/duktape.c +++ b/src/modules/app_jsdt/duktape.c @@ -20780,7 +20780,7 @@ DUK_EXTERNAL void *duk_require_buffer(duk_hthread *thr, duk_idx_t idx, duk_size_ } /* Get the active buffer data area for a plain buffer or a buffer object. - * Return NULL if the the value is not a buffer. Note that a buffer may + * Return NULL if the value is not a buffer. Note that a buffer may * have a NULL data pointer when its size is zero, the optional 'out_isbuffer' * argument allows caller to detect this reliably. */ @@ -26797,7 +26797,7 @@ DUK_LOCAL duk_small_int_t duk__array_sort_compare(duk_hthread *thr, duk_int_t id /* Fast exit if indices are identical. This is valid for a non-existent property, * for an undefined value, and almost always for ToString() coerced comparison of - * arbitrary values (corner cases where this is not the case include e.g. a an + * arbitrary values (corner cases where this is not the case include e.g. an * object with varying ToString() coercion). * * The specification does not prohibit "caching" of values read from the array, so @@ -29848,7 +29848,7 @@ DUK_INTERNAL duk_ret_t duk_bi_buffer_slice_shared(duk_hthread *thr) { * * Node.js Buffers have special handling: they're Uint8Arrays as far * as the internal class is concerned, so the new Buffer should also - * be an Uint8Array but inherit from Buffer.prototype. + * be a Uint8Array but inherit from Buffer.prototype. */ res_class_num = DUK_HOBJECT_GET_CLASS_NUMBER((duk_hobject *) h_this); DUK_ASSERT(res_class_num >= DUK_HOBJECT_CLASS_BUFOBJ_MIN); /* type check guarantees */ @@ -51923,7 +51923,7 @@ DUK_INTERNAL void duk_heap_process_finalize_list(duk_heap *heap) { } /* - * Run an duk_hobject finalizer. Must never throw an uncaught error + * Run a duk_hobject finalizer. Must never throw an uncaught error * (but may throw caught errors). * * There is no return value. Any return value or error thrown by @@ -56663,7 +56663,7 @@ DUK_LOCAL void *duk__hobject_alloc_init(duk_hthread *thr, duk_uint_t hobject_fla } /* - * Allocate an duk_hobject. + * Allocate a duk_hobject. * * The allocated object has no allocation for properties; the caller may * want to force a resize if a desired size is known. @@ -58052,7 +58052,7 @@ DUK_INTERNAL duk_uint_fast32_t duk_hobject_pc2line_query(duk_hthread *thr, duk_i * duk_tval copies is not problematic with respect to side effects; * care must be taken when holding and using argument duk_tval pointers. * - * - If a finalizer is executed, it may operate on the the same object + * - If a finalizer is executed, it may operate on the same object * we're currently dealing with. For instance, the finalizer might * delete a certain property which has already been looked up and * confirmed to exist. Ideally finalizers would be disabled if GC @@ -71261,7 +71261,7 @@ DUK_LOCAL duk_bool_t duk__const_needs_refcount(duk_compiler_ctx *comp_ctx, duk_r #endif } -/* Get the value represented by an duk_ispec to a register or constant. +/* Get the value represented by a duk_ispec to a register or constant. * The caller can control the result by indicating whether or not: * * (1) a constant is allowed (sometimes the caller needs the result to @@ -71453,7 +71453,7 @@ DUK_LOCAL void duk__ispec_toforcedreg(duk_compiler_ctx *comp_ctx, duk_ispec *x, (void) duk__ispec_toregconst_raw(comp_ctx, x, forced_reg, 0 /*flags*/); } -/* Coerce an duk_ivalue to a 'plain' value by generating the necessary +/* Coerce a duk_ivalue to a 'plain' value by generating the necessary * arithmetic operations, property access, or variable access bytecode. * The duk_ivalue argument ('x') is converted into a plain value as a * side effect. @@ -71677,7 +71677,7 @@ DUK_LOCAL void duk__ivalue_toplain_ignore(duk_compiler_ctx *comp_ctx, duk_ivalue DUK__SETTEMP(comp_ctx, temp); } -/* Coerce an duk_ivalue to a register or constant; result register may +/* Coerce a duk_ivalue to a register or constant; result register may * be a temp or a bound register. * * The duk_ivalue argument ('x') is converted into a regconst as a @@ -73818,7 +73818,7 @@ assign: /* At this point 'res' holds the potential expression value. * It can be basically any ivalue here, including a reg-bound - * identifier (if code above deems it safe) or a unary/binary + * identifier (if code above deems it safe) or an unary/binary * operation. Operations must be resolved to a side effect free * plain value, and the side effects must happen exactly once. */ @@ -81657,7 +81657,7 @@ restart_execution: is_func_decl = ((a & DUK_BC_DECLVAR_FLAG_FUNC_DECL) != 0); - /* XXX: declvar takes an duk_tval pointer, which is awkward and + /* XXX: declvar takes a duk_tval pointer, which is awkward and * should be reworked. */ @@ -82638,12 +82638,12 @@ internal_error: * the operation: * * - If an operation is simple and stateless, and has no side - * effects, it won't take an duk_hthread argument and its + * effects, it won't take a duk_hthread argument and its * arguments may be duk_tval pointers (which are safe as long * as no side effects take place). * * - If complex coercions are required (e.g. a "ToNumber" coercion) - * or errors may be thrown, the operation takes an duk_hthread + * or errors may be thrown, the operation takes a duk_hthread * argument. This also implies that the operation may have * arbitrary side effects, invalidating any duk_tval pointers. * @@ -85060,7 +85060,7 @@ duk_bool_t duk__get_identifier_reference(duk_hthread *thr, * * Identifiers can never be stored in ancestors and are * always plain values, so we can use an internal helper - * and access the value directly with an duk_tval ptr. + * and access the value directly with a duk_tval ptr. * * A closed environment is only indicated by it missing * the "book-keeping" properties required for accessing @@ -85877,7 +85877,7 @@ duk_bool_t duk_js_declvar_activation(duk_hthread *thr, * Lexer for source files, ToNumber() string conversions, RegExp expressions, * and JSON. * - * Provides a stream of ECMAScript tokens from an UTF-8/CESU-8 buffer. The + * Provides a stream of ECMAScript tokens from a UTF-8/CESU-8 buffer. The * caller can also rewind the token stream into a certain position which is * needed by the compiler part for multi-pass scanning. Tokens are * represented as duk_token structures, and contain line number information. @@ -86844,12 +86844,12 @@ DUK_LOCAL void duk__lexer_skip_to_endofline(duk_lexer_ctx *lex_ctx) { * * White space is automatically skipped from the current position (but * not after the input element). If input has already ended, returns - * DUK_TOK_EOF indefinitely. If a parse error occurs, uses an DUK_ERROR() + * DUK_TOK_EOF indefinitely. If a parse error occurs, uses a DUK_ERROR() * macro call (and hence a longjmp through current heap longjmp context). * Comments and line terminator tokens are automatically skipped. * * The input element being matched is determined by regexp_mode; if set, - * parses a InputElementRegExp, otherwise a InputElementDiv. The + * parses an InputElementRegExp, otherwise an InputElementDiv. The * difference between these are handling of productions starting with a * forward slash. * diff --git a/src/modules/app_lua/README b/src/modules/app_lua/README index 545fb78f1..ad0c89c46 100644 --- a/src/modules/app_lua/README +++ b/src/modules/app_lua/README @@ -124,7 +124,8 @@ Chapter 1. Admin Guide The following libraries or applications must be installed before running Kamailio with this module loaded: - * liblua5.1-dev - Lua devel library. + * liblua5.1-dev - Lua devel library. Versions 5.2, 5.3 and 5.4 also + work. This module can be compiled against LuaJIT compiler (instead of standard Lua). Then this library is needed: diff --git a/src/modules/app_lua/doc/app_lua_admin.xml b/src/modules/app_lua/doc/app_lua_admin.xml index de6567135..29b331344 100644 --- a/src/modules/app_lua/doc/app_lua_admin.xml +++ b/src/modules/app_lua/doc/app_lua_admin.xml @@ -85,7 +85,7 @@ - liblua5.1-dev - Lua devel library. + liblua5.1-dev - Lua devel library. Versions 5.2, 5.3 and 5.4 also work. diff --git a/src/modules/app_perl/README b/src/modules/app_perl/README index c6f42f585..52bd0ef81 100644 --- a/src/modules/app_perl/README +++ b/src/modules/app_perl/README @@ -649,9 +649,9 @@ Kamailio::log(L_INFO, "foobar"); 2.19. append_branch(branch,qval) 2.20. getParsedRURI() - This package provides access functions for an Kamailio sip_msg - structure and its sub-components. Through its means it is possible to - fully configure alternative routing decisions. + This package provides access functions for a Kamailio sip_msg structure + and its sub-components. Through its means it is possible to fully + configure alternative routing decisions. 2.1. getType() @@ -890,7 +890,7 @@ if ($m->getRURI() =~ m/\@somedomain.net/) { 2.20. getParsedRURI() - Returns the current destination URI as an Kamailio::URI object. + Returns the current destination URI as a Kamailio::URI object. 3. Kamailio::URI @@ -1015,7 +1015,7 @@ if ($m->getRURI() =~ m/\@somedomain.net/) { Add an AVP. - Add an Kamailio AVP to its environment. name and val may both be + Add a Kamailio AVP to its environment. name and val may both be integers or strings; this function will try to guess what is correct. Please note that Kamailio::AVP::add("10", "10") @@ -1030,7 +1030,7 @@ Kamailio::AVP::add(10, 10) 4.2. get(name) - get an Kamailio AVP: + get a Kamailio AVP: my $numavp = Kamailio::AVP::get(5); my $stravp = Kamailio::AVP::get("foo"); diff --git a/src/modules/app_perl/doc/app_perl_pod.xml b/src/modules/app_perl/doc/app_perl_pod.xml index 00b215e2a..579263596 100644 --- a/src/modules/app_perl/doc/app_perl_pod.xml +++ b/src/modules/app_perl/doc/app_perl_pod.xml @@ -47,7 +47,7 @@
Kamailio::Message - This package provides access functions for an Kamailio structure and its sub-components. Through its means it is possible to fully configure alternative routing decisions. @@ -335,7 +335,7 @@ $m->xlog("L_INFO", "foo");]]>
getParsedRURI() - Returns the current destination URI as an Kamailio::URI object. + Returns the current destination URI as a Kamailio::URI object.
@@ -460,7 +460,7 @@ $m->xlog("L_INFO", "foo");]]> Add an AVP. - Add an Kamailio AVP to its environment. name and val may both be + Add a Kamailio AVP to its environment. name and val may both be integers or strings; this function will try to guess what is correct. Please note that @@ -479,7 +479,7 @@ $m->xlog("L_INFO", "foo");]]>
get(name) - get an Kamailio AVP: + get a Kamailio AVP: diff --git a/src/modules/app_perl/kamailioxs.xs b/src/modules/app_perl/kamailioxs.xs index 8feec95b2..6e12dacc6 100644 --- a/src/modules/app_perl/kamailioxs.xs +++ b/src/modules/app_perl/kamailioxs.xs @@ -499,7 +499,7 @@ PROTOTYPES: ENABLE =head1 Kamailio::Message -This package provides access functions for an Kamailio C structure and +This package provides access functions for a Kamailio C structure and its sub-components. Through its means it is possible to fully configure alternative routing decisions. @@ -1231,7 +1231,7 @@ append_branch(self, branch = NULL, qval = NULL) =head2 getParsedRURI() -Returns the current destination URI as an Kamailio::URI object. +Returns the current destination URI as a Kamailio::URI object. =cut @@ -1557,7 +1557,7 @@ MODULE = Kamailio PACKAGE = Kamailio::AVP Add an AVP. -Add an Kamailio AVP to its environment. name and val may both be integers or +Add a Kamailio AVP to its environment. name and val may both be integers or strings; this function will try to guess what is correct. Please note that Kamailio::AVP::add("10", "10") @@ -1604,7 +1604,7 @@ add(p_name, p_val) =head2 get(name) -get an Kamailio AVP: +get a Kamailio AVP: my $numavp = Kamailio::AVP::get(5); my $stravp = Kamailio::AVP::get("foo"); diff --git a/src/modules/app_python/README b/src/modules/app_python/README index a1269d14f..a9d0b0289 100644 --- a/src/modules/app_python/README +++ b/src/modules/app_python/README @@ -77,6 +77,10 @@ Chapter 1. Admin Guide module, look at the files inside source tree located at 'modules/app_python/python_examples/'. + As python2 is deprecated in Debian and other distributions, please use + the “app_python3” module instead. This module will be removed future + releases. + 2. Dependencies 2.1. Kamailio Modules diff --git a/src/modules/app_python/doc/app_python_admin.xml b/src/modules/app_python/doc/app_python_admin.xml index f9a39a836..f428bed6d 100644 --- a/src/modules/app_python/doc/app_python_admin.xml +++ b/src/modules/app_python/doc/app_python_admin.xml @@ -25,6 +25,11 @@ this module, look at the files inside source tree located at 'modules/app_python/python_examples/'. + + As python2 is deprecated in Debian and other distributions, please + use the app_python3 module instead. This module will + be removed future releases. +
Dependencies diff --git a/src/modules/app_python3/README b/src/modules/app_python3/README index 49bc57744..914350572 100644 --- a/src/modules/app_python3/README +++ b/src/modules/app_python3/README @@ -87,6 +87,11 @@ Chapter 1. Admin Guide module, look at the files inside the source tree located at 'modules/app_python3/python_examples/'. + Note: if symbols exported to KEMI (module or function names) conflict + with Python's reserved keywords, use the 'getattr()' function or the + '__dict__' attribute for 'KSR' (e.g., + 'KSR.__dict__["async"].task_route("myroute")'). + 2. Dependencies 2.1. Kamailio Modules @@ -190,9 +195,9 @@ python_exec("my_python_function", "$rU"); in each worker when it next invokes a Python method. The module uses a worker process lock to prevent recursive reloads. - This function only reloads the user script and creates a new script - object. It does not reinitialize the interpreter. E.g., references in - the old module remain if not redefined by the new version. + This function only reloads (re-executes) the user script and creates a + new script object. It does not reinitialize the interpreter (references + in the old module remain if not redefined by the new version). Name: app_python.reload @@ -203,6 +208,24 @@ python_exec("my_python_function", "$rU"); kamcmd app_python.reload ... + Note that reload is done for the Python script provided as parameter to + this Kamailio module. To reload the Python libraries imported in this + script, use something like: +... +import mod1 +... +import modN +from importlib import reload + +def mod_init(): + reload(mod1) + ... + reload(modN) + return kamailio() +... + + Where "modX" are the modules imported at the top. + 5.2. app_python.api_list List the functions available via Kemi framework. diff --git a/src/modules/app_python3/apy_kemi.c b/src/modules/app_python3/apy_kemi.c index 421db19b7..09d0560b3 100644 --- a/src/modules/app_python3/apy_kemi.c +++ b/src/modules/app_python3/apy_kemi.c @@ -1810,6 +1810,9 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) PyObject *ret = NULL; PyThreadState *pstate = NULL; PyFrameObject *pframe = NULL; +#if PY_VERSION_HEX >= 0x030B0000 + PyCodeObject *pcode = NULL; +#endif struct timeval tvb = {0}, tve = {0}; struct timezone tz; unsigned int tdiff; @@ -1832,10 +1835,27 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) + (tve.tv_usec - tvb.tv_usec); if(tdiff >= cfg_get(core, core_cfg, latency_limit_action)) { pstate = PyThreadState_GET(); - if (pstate != NULL && pstate->frame != NULL) { + if (pstate != NULL) { +#if PY_VERSION_HEX >= 0x030B0000 + pframe = PyThreadState_GetFrame(pstate); + if(pframe != NULL) { + pcode = PyFrame_GetCode(pframe); + } +#else pframe = pstate->frame; +#endif } +#if PY_VERSION_HEX >= 0x030B0000 + LOG(cfg_get(core, core_cfg, latency_log), + "alert - action KSR.%s%s%s(...)" + " took too long [%u ms] (file:%s func:%s line:%d)\n", + (ket->mname.len>0)?ket->mname.s:"", + (ket->mname.len>0)?".":"", ket->fname.s, tdiff, + (pcode)?PyBytes_AsString(pcode->co_filename):"", + (pcode)?PyBytes_AsString(pcode->co_name):"", + (pframe)?PyFrame_GetLineNumber(pframe):0); +#else LOG(cfg_get(core, core_cfg, latency_log), "alert - action KSR.%s%s%s(...)" " took too long [%u ms] (file:%s func:%s line:%d)\n", @@ -1844,6 +1864,7 @@ PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx) (pframe && pframe->f_code)?PyBytes_AsString(pframe->f_code->co_filename):"", (pframe && pframe->f_code)?PyBytes_AsString(pframe->f_code->co_name):"", (pframe && pframe->f_code)?PyCode_Addr2Line(pframe->f_code, pframe->f_lasti):0); +#endif } } diff --git a/src/modules/app_python3/doc/app_python3_admin.xml b/src/modules/app_python3/doc/app_python3_admin.xml index c2648c48c..67f605802 100644 --- a/src/modules/app_python3/doc/app_python3_admin.xml +++ b/src/modules/app_python3/doc/app_python3_admin.xml @@ -34,6 +34,11 @@ this module, look at the files inside the source tree located at 'modules/app_python3/python_examples/'. + + Note: if symbols exported to KEMI (module or function names) conflict + with Python's reserved keywords, use the 'getattr()' function or the + '__dict__' attribute for 'KSR' (e.g., 'KSR.__dict__["async"].task_route("myroute")'). +
Dependencies @@ -198,12 +203,12 @@ python_exec("my_python_function", "$rU"); Marks the need to reload the Python script. The actual reload is done in each worker when it next invokes a Python method. - The module uses a worker process lock to prevent recursive reloads. + The module uses a worker process lock to prevent recursive reloads. - This function only reloads the user script and creates a new script object. - It does not reinitialize the interpreter. - E.g., references in the old module remain if not redefined by the new version. + This function only reloads (re-executes) the user script and creates + a new script object. It does not reinitialize the interpreter (references + in the old module remain if not redefined by the new version). Name: app_python.reload @@ -217,6 +222,28 @@ python_exec("my_python_function", "$rU"); &kamcmd; app_python.reload ... + + Note that reload is done for the Python script provided as parameter + to this &kamailio; module. To reload the Python libraries imported + in this script, use something like: + + +... +import mod1 +... +import modN +from importlib import reload + +def mod_init(): + reload(mod1) + ... + reload(modN) + return kamailio() +... + + + Where "modX" are the modules imported at the top. +
diff --git a/src/modules/app_python3/python_msgobj.c b/src/modules/app_python3/python_msgobj.c index db6da6a07..22aebd540 100644 --- a/src/modules/app_python3/python_msgobj.c +++ b/src/modules/app_python3/python_msgobj.c @@ -507,7 +507,11 @@ static PyTypeObject MSGtype = { int python_msgobj_init(void) { +#if PY_VERSION_HEX >= 0x03090000 + Py_SET_TYPE(&MSGtype, &PyType_Type); +#else Py_TYPE(&MSGtype) = &PyType_Type; +#endif if (PyType_Ready(&MSGtype) < 0) return -1; return 0; diff --git a/src/modules/app_sqlang/squirrel/squirrel/sqbaselib.cpp b/src/modules/app_sqlang/squirrel/squirrel/sqbaselib.cpp index 5055f18af..eb56491e6 100644 --- a/src/modules/app_sqlang/squirrel/squirrel/sqbaselib.cpp +++ b/src/modules/app_sqlang/squirrel/squirrel/sqbaselib.cpp @@ -599,7 +599,7 @@ static SQInteger array_top(HSQUIRRELVM v) v->Push(_array(o)->Top()); return 1; } - else return sq_throwerror(v,_SC("top() on a empty array")); + else return sq_throwerror(v,_SC("top() on an empty array")); } static SQInteger array_insert(HSQUIRRELVM v) @@ -1173,7 +1173,7 @@ static SQInteger thread_wakeup(HSQUIRRELVM v) if(state != SQ_VMSTATE_SUSPENDED) { switch(state) { case SQ_VMSTATE_IDLE: - return sq_throwerror(v,_SC("cannot wakeup a idle thread")); + return sq_throwerror(v,_SC("cannot wakeup an idle thread")); break; case SQ_VMSTATE_RUNNING: return sq_throwerror(v,_SC("cannot wakeup a running thread")); @@ -1209,7 +1209,7 @@ static SQInteger thread_wakeupthrow(HSQUIRRELVM v) if(state != SQ_VMSTATE_SUSPENDED) { switch(state) { case SQ_VMSTATE_IDLE: - return sq_throwerror(v,_SC("cannot wakeup a idle thread")); + return sq_throwerror(v,_SC("cannot wakeup an idle thread")); break; case SQ_VMSTATE_RUNNING: return sq_throwerror(v,_SC("cannot wakeup a running thread")); diff --git a/src/modules/app_sqlang/squirrel/squirrel/sqcompiler.cpp b/src/modules/app_sqlang/squirrel/squirrel/sqcompiler.cpp index 0b1770576..5e891b260 100644 --- a/src/modules/app_sqlang/squirrel/squirrel/sqcompiler.cpp +++ b/src/modules/app_sqlang/squirrel/squirrel/sqcompiler.cpp @@ -1273,7 +1273,7 @@ public: SQInteger eqtarget = trg; bool local = _fs->IsLocal(trg); if(local) { - eqtarget = _fs->PushTarget(); //we need to allocate a extra reg + eqtarget = _fs->PushTarget(); //we need to allocate an extra reg } _fs->AddInstruction(_OP_EQ, eqtarget, trg, expr); _fs->AddInstruction(_OP_JZ, eqtarget, 0); diff --git a/src/modules/async/README b/src/modules/async/README index baaceafec..fb6bde972 100644 --- a/src/modules/async/README +++ b/src/modules/async/README @@ -363,7 +363,7 @@ route[RESUME] { 4.7. async_task_data(routename, data) - Send the data to a asynchronous task process (in the first group) that + Send the data to an asynchronous task process (in the first group) that executes the route[rountename] and makes the data available via $async(data). diff --git a/src/modules/async/async_sleep.c b/src/modules/async/async_sleep.c index 02c3b8d48..d6dd41d3f 100644 --- a/src/modules/async/async_sleep.c +++ b/src/modules/async/async_sleep.c @@ -271,9 +271,12 @@ int async_sleep(sip_msg_t *msg, int seconds, cfg_action_t *act, str *cbname) return 0; } +static unsigned int _async_timer_exec_last_slot = -1; + void async_timer_exec(unsigned int ticks, void *param) { - int slot; + unsigned int idx; + unsigned int slot; async_item_t *ai; sr_kemi_eng_t *keng = NULL; str cbname = STR_NULL; @@ -282,33 +285,55 @@ void async_timer_exec(unsigned int ticks, void *param) if(_async_list_head == NULL) return; - slot = ticks % ASYNC_RING_SIZE; + idx = ticks % ASYNC_RING_SIZE; - while(1) { - lock_get(&_async_list_head->ring[slot].lock); - ai = _async_list_head->ring[slot].lstart; - if(ai != NULL) - _async_list_head->ring[slot].lstart = ai->next; - lock_release(&_async_list_head->ring[slot].lock); + if(idx == _async_timer_exec_last_slot) { + /* timer faster than 1sec */ + return; + } - if(ai == NULL) - break; - if(ai->ract != NULL) { - tmb.t_continue(ai->tindex, ai->tlabel, ai->ract); - ksr_msg_env_reset(); - } else { - keng = sr_kemi_eng_get(); - if(keng != NULL && ai->cbname_len>0) { - cbname.s = ai->cbname; - cbname.len = ai->cbname_len; - tmb.t_continue_cb(ai->tindex, ai->tlabel, &cbname, &evname); + if(_async_timer_exec_last_slot < 0) { + _async_timer_exec_last_slot = idx; + } + slot = (_async_timer_exec_last_slot + 1) % ASYNC_RING_SIZE; + if(slot != idx) { + LM_DBG("need to catch up from slot %u to %u (slots: %u)\n", slot, idx, + ASYNC_RING_SIZE); + } + + do { + while(1) { + lock_get(&_async_list_head->ring[slot].lock); + ai = _async_list_head->ring[slot].lstart; + if(ai != NULL) + _async_list_head->ring[slot].lstart = ai->next; + lock_release(&_async_list_head->ring[slot].lock); + + if(ai == NULL) + break; + if(ai->ract != NULL) { + tmb.t_continue(ai->tindex, ai->tlabel, ai->ract); ksr_msg_env_reset(); } else { - LM_WARN("no callback to be executed\n"); + keng = sr_kemi_eng_get(); + if(keng != NULL && ai->cbname_len>0) { + cbname.s = ai->cbname; + cbname.len = ai->cbname_len; + tmb.t_continue_cb(ai->tindex, ai->tlabel, &cbname, &evname); + ksr_msg_env_reset(); + } else { + LM_WARN("no callback to be executed\n"); + } } + shm_free(ai); } - shm_free(ai); - } + if(slot == idx) { + break; + } + slot = (slot + 1) % ASYNC_RING_SIZE; + } while(1); + + _async_timer_exec_last_slot = idx; } void async_mstimer_exec(unsigned int ticks, void *param) diff --git a/src/modules/async/doc/async_admin.xml b/src/modules/async/doc/async_admin.xml index 126da999e..c4b9169b0 100644 --- a/src/modules/async/doc/async_admin.xml +++ b/src/modules/async/doc/async_admin.xml @@ -399,7 +399,7 @@ route[RESUME] { <function moreinfo="none">async_task_data(routename, data)</function> - Send the data to a asynchronous task process (in the first group) that + Send the data to an asynchronous task process (in the first group) that executes the route[rountename] and makes the data available via $async(data). diff --git a/src/modules/auth/README b/src/modules/auth/README index 25c448901..a816495b3 100644 --- a/src/modules/auth/README +++ b/src/modules/auth/README @@ -728,9 +728,9 @@ if (has_credentials("myrealm")) { parameter force_stateless_reply regarding sending of the reply. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. - Usually this is domain of the host the server is running on. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. Usually this is domain of the host the server is running on. It must not be empty string “”. In case of REGISTER requests, the To header field domain (e.g., variable $td) can be used (because this header field represents the user being registered), for all @@ -820,9 +820,9 @@ if (!auth_check("$fd", "subscriber", "1")) { a previous request Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. - Usually this is domain of the host the server is running on. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. Usually this is domain of the host the server is running on. It must not be empty string “”. In case of REGISTER requests To header field domain (e.g., variable $td) can be used (because this header field represents a user being registered), for all other diff --git a/src/modules/auth/doc/auth_functions.xml b/src/modules/auth/doc/auth_functions.xml index 7d3dc6390..5b396ef07 100644 --- a/src/modules/auth/doc/auth_functions.xml +++ b/src/modules/auth/doc/auth_functions.xml @@ -72,7 +72,7 @@ if (has_credentials("myrealm")) { Meaning of the parameters is as follows: - realm - Realm is a opaque string that + realm - Realm is an opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the server is running on. @@ -229,7 +229,7 @@ if (!auth_check("$fd", "subscriber", "1")) { Meaning of the parameters is as follows: - realm - Realm is a opaque string that + realm - Realm is an opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the server is running on. diff --git a/src/modules/auth_db/README b/src/modules/auth_db/README index 2825c58d2..c679d9654 100644 --- a/src/modules/auth_db/README +++ b/src/modules/auth_db/README @@ -345,14 +345,14 @@ modparam("auth_db", "force_generate_avps", 1) header with the correct realm. * -6 (nonce reused) - the nonce has already been used to authenticate a previous request - * -8 (authuser mismatch) - depending on the method, th From/To/RURI + * -8 (authuser mismatch) - depending on the method, the From/To/RURI user does not match the authentication user (see auth_check() function). Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. - Usually this is domain of the host the server is running on. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. Usually this is domain of the host the server is running on. It must not be empty string “”. In case of REGISTER requests To header field domain (e.g., variable $td) can be used (because this header field represents the user being registered), for all other @@ -392,9 +392,9 @@ if (!www_authorize("kamailio.org", "subscriber")) { Negative return codes have the same meaning as for www_authenticate(). Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. - Usually this is domain of the host the server is running on. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. Usually this is domain of the host the server is running on. It must not be empty string “”. Apart of a static string, typical value is From header field domain (e.g., variable $fd). If an empty string “” is used then the server will generate it from @@ -431,9 +431,9 @@ if (!proxy_authorize("$fd", "subscriber)) { Negative return codes have the same meaning as for www_authenticate(). Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. - Usually this is domain of the host the server is running on. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. Usually this is domain of the host the server is running on. It must not be empty string “”. Apart of a static string, typical value is From header field domain (e.g., variable $fd). The string may contain pseudo variables. @@ -472,7 +472,7 @@ if (!auth_check("$fd", "subscriber", "1")) { authentication functions. In addition, if the subscriber record is found, then the - load_credentials attributes are loaded. An use case can be loading the + load_credentials attributes are loaded. A use case can be loading the credential attributes for callee. Meaning of the parameters is as follows: diff --git a/src/modules/auth_db/doc/auth_db_admin.xml b/src/modules/auth_db/doc/auth_db_admin.xml index e112332b4..1994619ec 100644 --- a/src/modules/auth_db/doc/auth_db_admin.xml +++ b/src/modules/auth_db/doc/auth_db_admin.xml @@ -365,14 +365,14 @@ modparam("auth_db", "force_generate_avps", 1) used to authenticate a previous request - -8 (authuser mismatch) - depending on the method, th + -8 (authuser mismatch) - depending on the method, the From/To/RURI user does not match the authentication user (see auth_check() function). Meaning of the parameters is as follows: - realm - Realm is a opaque string that + realm - Realm is an opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the server is running on. @@ -448,7 +448,7 @@ if (!www_authorize("kamailio.org", "subscriber")) { Meaning of the parameters is as follows: - realm - Realm is a opaque string that + realm - Realm is an opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the server is running on. @@ -518,7 +518,7 @@ if (!proxy_authorize("$fd", "subscriber)) { Meaning of the parameters is as follows: - realm - Realm is a opaque string that + realm - Realm is an opaque string that the user agent should present to the user so he can decide what username and password to use. Usually this is domain of the host the server is running on. @@ -587,7 +587,7 @@ if (!auth_check("$fd", "subscriber", "1")) { In addition, if the subscriber record is found, then the load_credentials - attributes are loaded. An use case can be loading the credential attributes + attributes are loaded. A use case can be loading the credential attributes for callee. Meaning of the parameters is as follows: diff --git a/src/modules/auth_diameter/authorize.c b/src/modules/auth_diameter/authorize.c index 77b9f47c2..b53fed84f 100644 --- a/src/modules/auth_diameter/authorize.c +++ b/src/modules/auth_diameter/authorize.c @@ -531,7 +531,7 @@ int diameter_authorize(struct hdr_field* hdr, str* p_method, sip_uri_t *uri, AAAPrintMessage(req); #endif - /* build a AAA message buffer */ + /* build an AAA message buffer */ if(AAABuildMsgBuffer(req) != AAA_ERR_SUCCESS) { LM_ERR(" message buffer not created\n"); diff --git a/src/modules/auth_diameter/message.c b/src/modules/auth_diameter/message.c index 2dcb80de1..ccc08818b 100644 --- a/src/modules/auth_diameter/message.c +++ b/src/modules/auth_diameter/message.c @@ -49,7 +49,7 @@ ( (_len_)+(((_len_)&3)?4-((_len_)&3):0) ) -/* from a AAAMessage structure, a buffer to be send is build +/* from an AAAMessage structure, a buffer to be sent is build */ AAAReturnCode AAABuildMsgBuffer( AAAMessage *msg ) { diff --git a/src/modules/auth_diameter/tcp_comm.c b/src/modules/auth_diameter/tcp_comm.c index 628382988..c12bd1f13 100644 --- a/src/modules/auth_diameter/tcp_comm.c +++ b/src/modules/auth_diameter/tcp_comm.c @@ -233,7 +233,7 @@ int tcp_send_recv(int sockfd, char* buf, int len, rd_buf_t* rb, // return AAA_ERROR; } */ - /* Data arriving on a already-connected socket. */ + /* Data arriving on an already-connected socket. */ reset_read_buffer(rb); switch( do_read(sockfd, rb) ) { diff --git a/src/modules/auth_diameter/user_in.c b/src/modules/auth_diameter/user_in.c index b9bc53354..53c455df4 100644 --- a/src/modules/auth_diameter/user_in.c +++ b/src/modules/auth_diameter/user_in.c @@ -275,7 +275,7 @@ int diameter_is_user_in(struct sip_msg* _m, char* _hf, char* _group) AAAPrintMessage(req); #endif - /* build a AAA message buffer */ + /* build an AAA message buffer */ if(AAABuildMsgBuffer(req) != AAA_ERR_SUCCESS) { LM_ERR("message buffer not created\n"); diff --git a/src/modules/auth_identity/auth_tables.c b/src/modules/auth_identity/auth_tables.c index 1bba5cae2..bf52d171a 100644 --- a/src/modules/auth_identity/auth_tables.c +++ b/src/modules/auth_identity/auth_tables.c @@ -351,7 +351,7 @@ void cert_item_init() glb_tnow=time(0); } -/* we remove a certificate if expired or if accessed less than an other */ +/* we remove a certificate if expired or if accessed less than another */ int cert_item_least(const void *s1, const void *s2) { if (((tcert_item *)s1)->ivalidbefore < glb_tnow) @@ -447,7 +447,7 @@ void cid_item_init() glb_tnow=time(0); } -/* we remove a call-id if older than an other */ +/* we remove a call-id if older than another */ int cid_item_least(const void *s1, const void *s2) { if (((tcid_item *)s1)->ivalidbefore < glb_tnow) diff --git a/src/modules/auth_radius/README b/src/modules/auth_radius/README index 4640043e9..b19ad0b22 100644 --- a/src/modules/auth_radius/README +++ b/src/modules/auth_radius/README @@ -276,9 +276,9 @@ modparam("auth_radius", "append_realm_to_username", 0) credentials and return whether they are valid or not. Meaning of the parameter is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. In - case of REGISTER requests it is usually hostpart of To URI. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. In case of REGISTER requests it is usually hostpart of To URI. The string may contain pseudo variables. * uri_user - Uri_user is an optional pseudo variable parameter whose value, if present, will be given to Radius server as value of @@ -327,10 +327,10 @@ modparam("auth_radius", "append_realm_to_username", 0) credentials and return whether they are valid or not. Meaning of the parameters is as follows: - * realm - Realm is a opaque string that the user agent should present - to the user so he can decide what username and password to use. In - case of non-REGISTER requests it is usually hostpart of From or - P-Preferred-Identity URI. + * realm - Realm is an opaque string that the user agent should + present to the user so he can decide what username and password to + use. In case of non-REGISTER requests it is usually hostpart of + From or P-Preferred-Identity URI. The string may contain pseudo variables. * uri_user - Uri_user is an optional pseudo variable parameter whose value, if present, will be given to Radius server as value of diff --git a/src/modules/auth_radius/doc/auth_radius_admin.xml b/src/modules/auth_radius/doc/auth_radius_admin.xml index b82e54e6a..0ca1f68bc 100644 --- a/src/modules/auth_radius/doc/auth_radius_admin.xml +++ b/src/modules/auth_radius/doc/auth_radius_admin.xml @@ -288,7 +288,7 @@ modparam("auth_radius", "append_realm_to_username", 0) Meaning of the parameter is as follows: - realm - Realm is a + realm - Realm is an opaque string that the user agent should present to the user so he can decide what @@ -366,7 +366,7 @@ modparam("auth_radius", "append_realm_to_username", 0) Meaning of the parameters is as follows: - realm - Realm is a opaque string that + realm - Realm is an opaque string that the user agent should present to the user so he can decide what username and password to use. In case of non-REGISTER requests it is usually hostpart of From or diff --git a/src/modules/avp/avp.xml b/src/modules/avp/avp.xml index fa47e88cb..3fbbc32c4 100644 --- a/src/modules/avp/avp.xml +++ b/src/modules/avp/avp.xml @@ -150,7 +150,7 @@ argument attribute. - If the destination URI is set, the request will be send to the + If the destination URI is set, the request will be sent to the address determined from that URI instead of the Request-URI. It will carried over into branches together with the Request-URI when a call to append_branch is made. @@ -379,7 +379,7 @@ Like set_sattr, it is identical to - assinging an string using the assignment operator and is + assinging a string using the assignment operator and is deprecated. @@ -421,7 +421,7 @@ attribute does not yet exist, it is created. - This function is identical to assinging an string using the + This function is identical to assinging a string using the assignment operator and is only kept to retain compatibility with earlier versions of SER. It therefore is deprecated and may be removed in the future. diff --git a/src/modules/call_obj/README b/src/modules/call_obj/README index 4a54fe00f..4424e971f 100644 --- a/src/modules/call_obj/README +++ b/src/modules/call_obj/README @@ -84,7 +84,7 @@ Chapter 1. Admin Guide 1. Overview - This module provides a way to identify calls using a increasing + This module provides a way to identify calls using an increasing sequence of integers. It starts assigning an integer to a call. Next call gets next free diff --git a/src/modules/call_obj/doc/call_obj_admin.xml b/src/modules/call_obj/doc/call_obj_admin.xml index a08314456..c3ac6df61 100644 --- a/src/modules/call_obj/doc/call_obj_admin.xml +++ b/src/modules/call_obj/doc/call_obj_admin.xml @@ -16,7 +16,7 @@
Overview - This module provides a way to identify calls using a increasing sequence + This module provides a way to identify calls using an increasing sequence of integers. diff --git a/src/modules/carrierroute/README b/src/modules/carrierroute/README index ad924c1ca..a92a6f786 100644 --- a/src/modules/carrierroute/README +++ b/src/modules/carrierroute/README @@ -219,7 +219,7 @@ Chapter 1. Admin Guide The module provides routing, balancing and blocklisting capabilities. It reads routing entries from a database source or from a config file - at Kamailio startup. It can uses one routing tree (for one carrier), or + at Kamailio startup. It can use one routing tree (for one carrier), or if needed for every user a different routing tree (unique for each carrier) for number prefix based routing. It supports several route tree domains, e.g. for fallback routes or different routing rules for @@ -243,7 +243,7 @@ Chapter 1. Admin Guide Routing tables can be reloaded and edited (in config file mode) with the RPC interface, the config file is updated according the changes. This is not implemented for the db interface, because its easier to do - the changes directly on the db. But the reload and dump functions works + the changes directly on the db. But the reload and dump functions work of course here too. Some module functionality is not fully available in the config file @@ -262,7 +262,7 @@ Chapter 1. Admin Guide data structures. So from a performance point of view it is better to pass only IDs in AVPs to the routing functions. - Basically this module could be used as an replacement for the lcr and + Basically this module could be used as a replacement for the lcr and the dispatcher module, if you have certain flexibility, integration and/or performance requirements that can't be satisfied with these modules. But for smaller installations it probably make more sense to @@ -824,15 +824,14 @@ failure_route[1] { Example 1.16. Configuration example - module configuration The following config file specifies within the default carrier two - domains, each with an prefix that contains two hosts. It is not - possible to specify another carrier if you use the config file as data - source. + domains, each with a prefix that contains two hosts. It is not possible + to specify another carrier if you use the config file as data source. All traffic will be equally distributed between the hosts, both are active. The hash algorithm will working over the [1,2] set, messages hashed to one will go to the first host, the other to the second one. Don't use a hash index value of zero. If you omit the hash completely, - the module gives them a autogenerated value, starting from one. + the module gives them an autogenerated value, starting from one. Use the “NULL” prefix to specify an empty prefix in the config file. Please note that the prefix is matched against the request URI (or to @@ -929,7 +928,7 @@ domain register { and a default route for other prefixes over carrier 2 and carrier 1. The gateways for the default carrier will be used for functions that don't support the user specific carrier lookup. The routing rules for - carrier 1 and carrier 2 for the “49” prefix contains a additional rule + carrier 1 and carrier 2 for the “49” prefix contains an additional rule with the domain 2, that can be used for example as fallback if the gateways in domain 1 are not reachable. Two more fallback rules (domain 3 and 4) for carrier 1 are also supplied to support the functionality diff --git a/src/modules/carrierroute/carrierroute.c b/src/modules/carrierroute/carrierroute.c index 74705caa2..05b5516bc 100644 --- a/src/modules/carrierroute/carrierroute.c +++ b/src/modules/carrierroute/carrierroute.c @@ -29,7 +29,7 @@ * \defgroup carrierroute CARRIERROUTE :: The Kamailio carrierroute Module * The module provides routing, balancing and blocklisting capabilities. * It reads routing entries from a database source or from a config file - * at Kamailio startup. It can uses one routing tree (for one carrier), + * at Kamailio startup. It can use one routing tree (for one carrier), * or if needed for every user a different routing tree (unique for each carrier) * for number prefix based routing. It supports several routing domains, e.g. * for failback routes or different routing rules for VoIP and PSTN targets. diff --git a/src/modules/carrierroute/cr_fixup.c b/src/modules/carrierroute/cr_fixup.c index 92c751047..407dde1bd 100644 --- a/src/modules/carrierroute/cr_fixup.c +++ b/src/modules/carrierroute/cr_fixup.c @@ -126,7 +126,7 @@ static int carrier_fixup(void ** param) { } if (((gparam_p)(*param))->type == GPARAM_TYPE_STR) { - /* This is a name string, convert to a int */ + /* This is a name string, convert to an int */ ((gparam_p)(*param))->type=GPARAM_TYPE_INT; /* get carrier id */ if ((id = carrier_name_2_id(&((gparam_p)(*param))->v.str)) < 0) { @@ -157,7 +157,7 @@ static int domain_fixup(void ** param) { } if (((gparam_p)(*param))->type == GPARAM_TYPE_STR) { - /* This is a name string, convert to a int */ + /* This is a name string, convert to an int */ ((gparam_p)(*param))->type=GPARAM_TYPE_INT; /* get domain id */ if ((id = domain_name_2_id(&(((gparam_p)(*param))->v.str))) < 0) { diff --git a/src/modules/carrierroute/cr_rule.c b/src/modules/carrierroute/cr_rule.c index 143cedcf6..856a35d01 100644 --- a/src/modules/carrierroute/cr_rule.c +++ b/src/modules/carrierroute/cr_rule.c @@ -46,7 +46,7 @@ * @param backup indicates if the route is backed up by another. only useful if status==0, if set, it is the hash value of another rule - * @param backed_up an NULL-termintated array of hash indices of the route + * @param backed_up a NULL-termintated array of hash indices of the route for which this route is backup * @param comment a comment for the route rule * diff --git a/src/modules/carrierroute/cr_rule.h b/src/modules/carrierroute/cr_rule.h index 52ccf4f19..a80c05329 100644 --- a/src/modules/carrierroute/cr_rule.h +++ b/src/modules/carrierroute/cr_rule.h @@ -111,7 +111,7 @@ struct failure_route_rule { * @param backup indicates if the route is backed up by another. only useful if status==0, if set, it is the hash value of another rule - * @param backed_up an NULL-termintated array of hash indices of the route + * @param backed_up a NULL-termintated array of hash indices of the route for which this route is backup * @param comment a comment for the route rule * diff --git a/src/modules/carrierroute/doc/carrierroute_admin.xml b/src/modules/carrierroute/doc/carrierroute_admin.xml index 3b883d751..90ec9cc6a 100644 --- a/src/modules/carrierroute/doc/carrierroute_admin.xml +++ b/src/modules/carrierroute/doc/carrierroute_admin.xml @@ -17,7 +17,7 @@ The module provides routing, balancing and blocklisting capabilities. It reads routing entries from a database source or from a config file at &kamailio; - startup. It can uses one routing tree (for one carrier), or if needed for every user + startup. It can use one routing tree (for one carrier), or if needed for every user a different routing tree (unique for each carrier) for number prefix based routing. It supports several route tree domains, e.g. for fallback routes or different routing rules for VoIP and PSTN targets. @@ -41,7 +41,7 @@ Routing tables can be reloaded and edited (in config file mode) with the RPC interface, the config file is updated according the changes. This is not implemented for the db interface, because its easier to do the changes - directly on the db. But the reload and dump functions works of course here + directly on the db. But the reload and dump functions work of course here too. @@ -61,7 +61,7 @@ AVPs to the routing functions. - Basically this module could be used as an replacement for the lcr and the + Basically this module could be used as a replacement for the lcr and the dispatcher module, if you have certain flexibility, integration and/or performance requirements that can't be satisfied with these modules. But for smaller installations it probably make more sense to use the lcr and dispatcher module. @@ -744,7 +744,7 @@ failure_route[1] { Configuration example - module configuration The following config file specifies within the default carrier two - domains, each with an prefix that contains two hosts. It is not possible + domains, each with a prefix that contains two hosts. It is not possible to specify another carrier if you use the config file as data source. @@ -752,7 +752,7 @@ failure_route[1] { active. The hash algorithm will working over the [1,2] set, messages hashed to one will go to the first host, the other to the second one. Don't use a hash index value of zero. If you omit the hash completely, - the module gives them a autogenerated value, starting from one. + the module gives them an autogenerated value, starting from one. Use the NULL prefix to specify an empty prefix in the config file. @@ -860,7 +860,7 @@ domain register { and a default route for other prefixes over carrier 2 and carrier 1. The gateways for the default carrier will be used for functions that don't support the user specific carrier lookup. The routing rules for carrier 1 - and carrier 2 for the 49 prefix contains a additional rule + and carrier 2 for the 49 prefix contains an additional rule with the domain 2, that can be used for example as fallback if the gateways in domain 1 are not reachable. Two more fallback rules (domain 3 and 4) for carrier 1 are also supplied to support the functionality of the carrierfailureroute diff --git a/src/modules/cdp/README b/src/modules/cdp/README index ed9cd3b12..ba016e162 100644 --- a/src/modules/cdp/README +++ b/src/modules/cdp/README @@ -799,7 +799,7 @@ is_statefull,AAASessionCallback_f *cb,void *generic_data) 1.18. AAADropAuthSession(AAASession *s) - Deallocates the memory taken by a Authorisation session + Deallocates the memory taken by an Authorisation session Meaning of the parameters is as follows: * AAASession *s - Session to drop and deallocate memory for @@ -814,7 +814,7 @@ is_statefull,AAASessionCallback_f *cb,void *generic_data) 1.20. AAATransaction* AAACreateTransaction(AAAApplicationId app_id,AAACommandCode cmd_code) - Create a AAATransaction for the given request + Create an AAATransaction for the given request Meaning of the parameters is as follows: * AAAApplicationId app_id - ID of the request's application diff --git a/src/modules/cdp/diameter_comm.c b/src/modules/cdp/diameter_comm.c index d5b689f43..3c3ff713a 100644 --- a/src/modules/cdp/diameter_comm.c +++ b/src/modules/cdp/diameter_comm.c @@ -116,7 +116,7 @@ int AAAAddResponseHandler(AAAResponseHandler_f *f,void *param) /* MESSAGE SENDING */ /** - * Send a AAAMessage asynchronously. + * Send an AAAMessage asynchronously. * When the response is received, the callback_f(callback_param,...) is called. * @param message - the request to be sent * @param peer_id - FQDN of the peer to send @@ -166,7 +166,7 @@ error: } /** - * Send a AAAMessage asynchronously. + * Send an AAAMessage asynchronously. * When the response is received, the callback_f(callback_param,...) is called. * @param message - the request to be sent * @param peer_id - FQDN of the peer to send @@ -213,7 +213,7 @@ error: /** * Generic callback used by AAASendRecvMessage() to block until a transactional response * is received. - * The AAASendRecvMessage() is basically a AAASendMessage() that has a callback + * The AAASendRecvMessage() is basically an AAASendMessage() that has a callback * (this function) that blocks until a transactional response or timeout is received and * then it returns that. * @@ -228,7 +228,7 @@ void sendrecv_cb(int is_timeout,void *param,AAAMessage *ans, long elapsed_msecs) } /** - * Send a AAAMessage synchronously. + * Send an AAAMessage synchronously. * This blocks until a response is received or a transactional time-out happens. * @param message - the request to be sent * @param peer_id - FQDN of the peer to send @@ -299,7 +299,7 @@ out_of_memory: } /** - * Send a AAAMessage synchronously. + * Send an AAAMessage synchronously. * This blocks until a response is received or a transactional time-out happens. * @param message - the request to be sent * @param peer_id - FQDN of the peer to send diff --git a/src/modules/cdp/diameter_msg.c b/src/modules/cdp/diameter_msg.c index 605109ae4..b9ac88954 100644 --- a/src/modules/cdp/diameter_msg.c +++ b/src/modules/cdp/diameter_msg.c @@ -60,8 +60,8 @@ extern dp_config *config; /**< Configuration for this diameter peer */ /** - * This function encodes a AAAMessage to its network representation (encoder). - * From a AAAMessage structure, a buffer to be send is built. + * This function encodes an AAAMessage to its network representation (encoder). + * From an AAAMessage structure, a buffer to be sent is built. * @param msg - the message to encode * @returns 1 on success, -1 on error * \note This function is taken from DISC http://developer.berlios.de/projects/disc/ @@ -380,7 +380,7 @@ AAAMessage *AAACreateResponse(AAAMessage *request) /** - * Frees a AVP List and all the members + * Frees an AVP List and all the members * @param avpList - list to be freed * @returns AAA_ERR_SUCCESS */ diff --git a/src/modules/cdp/doc/cdp_devel.xml b/src/modules/cdp/doc/cdp_devel.xml index a05edf404..4c299de24 100644 --- a/src/modules/cdp/doc/cdp_devel.xml +++ b/src/modules/cdp/doc/cdp_devel.xml @@ -365,7 +365,7 @@ <function moreinfo="none">AAADropAuthSession(AAASession *s)</function> - Deallocates the memory taken by a Authorisation session + Deallocates the memory taken by an Authorisation session Meaning of the parameters is as follows: @@ -398,7 +398,7 @@ AAACreateTransaction(AAAApplicationId app_id,AAACommandCode cmd_code) - Create a AAATransaction for the given request + Create an AAATransaction for the given request Meaning of the parameters is as follows: diff --git a/src/modules/cdp/receiver.c b/src/modules/cdp/receiver.c index 692cc363a..333b22c5c 100644 --- a/src/modules/cdp/receiver.c +++ b/src/modules/cdp/receiver.c @@ -709,7 +709,7 @@ int receive_loop(peer *original_peer) LM_DBG("select_recv(): fd exchange pipe says fd [%d] for peer %p:[%.*s]\n",fd, p, p?p->fqdn.len:0, - p?p->fqdn.s:0); + p?p->fqdn.s:""); if (p){ sp2=0; for(sp=serviced_peers;sp;sp=sp->next) @@ -748,7 +748,7 @@ int receive_loop(peer *original_peer) if (sp->tcp_socket>=0 && FD_ISSET(sp->tcp_socket,&efds)) { LM_INFO("select_recv(): [%.*s] Peer socket [%d] found on the exception list... dropping\n", sp->p?sp->p->fqdn.len:0, - sp->p?sp->p->fqdn.s:0, + sp->p?sp->p->fqdn.s:"", sp->tcp_socket); goto drop_peer; } @@ -776,7 +776,7 @@ int receive_loop(peer *original_peer) continue; LM_ERR("select_recv(): [%.*s] write on socket [%d] returned error> %s... dropping\n", sp->p?sp->p->fqdn.len:0, - sp->p?sp->p->fqdn.s:0, + sp->p?sp->p->fqdn.s:"", sp->tcp_socket, strerror(errno)); AAAFreeMessage(&msg); @@ -787,7 +787,7 @@ int receive_loop(peer *original_peer) if (cnt!=msg->buf.len){ LM_ERR("select_recv(): [%.*s] write on socket [%d] only wrote %d/%d bytes... dropping\n", sp->p?sp->p->fqdn.len:0, - sp->p?sp->p->fqdn.s:0, + sp->p?sp->p->fqdn.s:"", sp->tcp_socket, cnt, msg->buf.len); @@ -807,7 +807,7 @@ receive: if (cnt<=0) { LM_INFO("select_recv(): [%.*s] read on socket [%d] returned %d > %s... dropping\n", sp->p?sp->p->fqdn.len:0, - sp->p?sp->p->fqdn.s:0, + sp->p?sp->p->fqdn.s:"", sp->tcp_socket, cnt, errno?strerror(errno):""); diff --git a/src/modules/cdp/session.c b/src/modules/cdp/session.c index 91f1a8461..01ce86144 100644 --- a/src/modules/cdp/session.c +++ b/src/modules/cdp/session.c @@ -623,7 +623,7 @@ AAASession* cdp_new_cc_acc_session(str id, int is_statefull) } /** - * Creates a Authorization Session for the Client. + * Creates an Authorization Session for the Client. * It generates a new id and adds the session to the cdp list of sessions * \note Returns with a lock on AAASession->hash. Unlock when done working with the result * @returns the new AAASession or null on error @@ -645,7 +645,7 @@ AAASession* AAACreateClientAuthSession(int is_statefull,AAASessionCallback_f *cb return s; } /** - * Creates a Authorization Session for the Server, from the application specific Session starting request + * Creates an Authorization Session for the Server, from the application specific Session starting request * It generates a new id and adds the session to the cdp list of sessions * \note Returns with a lock on AAASession->hash. Unlock when done working with the result * @returns the new AAASession or null on error @@ -725,7 +725,7 @@ void AAATerminateAuthSession(AAASession *s) } /** - * Deallocates the memory taken by a Authorization Session + * Deallocates the memory taken by an Authorization Session * \note Must be called with a lock on the s->hash - will unlock it, so don't use the session after this */ void AAADropAuthSession(AAASession *s) @@ -742,7 +742,7 @@ AAASession* AAACreateAccSession(void *generic_data) } /** - * Deallocates the memory taken by a Accounting Session + * Deallocates the memory taken by an Accounting Session */ void AAADropAccSession(AAASession *s) { @@ -788,7 +788,7 @@ int AAAStartChargingCCAccSession(AAASession *s) return 0; } /** - * Deallocates the memory taken by a Accounting Session (Credit Control - RFC 4006) + * Deallocates the memory taken by an Accounting Session (Credit Control - RFC 4006) */ void AAADropCCAccSession(AAASession *s) { diff --git a/src/modules/cdp/transaction.c b/src/modules/cdp/transaction.c index 29df28298..279c950de 100644 --- a/src/modules/cdp/transaction.c +++ b/src/modules/cdp/transaction.c @@ -223,7 +223,7 @@ int cdp_trans_timer(time_t now, void* ptr) /* TRANSACTIONS */ /** - * Create a AAATransaction for the given request. + * Create an AAATransaction for the given request. * @param app_id - id of the request's application * @param cmd_code - request's code * @returns the AAATransaction* diff --git a/src/modules/cdp/worker.h b/src/modules/cdp/worker.h index 82ac48abf..ecc973128 100644 --- a/src/modules/cdp/worker.h +++ b/src/modules/cdp/worker.h @@ -65,7 +65,7 @@ typedef struct { int max; /**< size of the queue array */ task_t *queue; /**< array holding the tasks */ gen_sem_t *empty; /**< id of semaphore for signaling an empty queue */ - gen_sem_t *full; /**< id of semaphore for signaling an full queue */ + gen_sem_t *full; /**< id of semaphore for signaling a full queue */ } task_queue_t; /** callback function to be called on message processing */ diff --git a/src/modules/cfgutils/README b/src/modules/cfgutils/README index 890952c7c..b2700058a 100644 --- a/src/modules/cfgutils/README +++ b/src/modules/cfgutils/README @@ -199,7 +199,7 @@ Chapter 1. Admin Guide “set_prob”, “reset_prob” and “get_prob”. This module can be used for simple load-shedding, e.g. reply 5% of the - Invites with a 503 error and a adequate random Retry-After value. + Invites with a 503 error and an adequate random Retry-After value. The module provides as well functions to delay the execution of the server. The functions “sleep” and “usleep” could be used to let the diff --git a/src/modules/cfgutils/doc/cfgutils_admin.xml b/src/modules/cfgutils/doc/cfgutils_admin.xml index 7df0a2a87..63b069fd6 100644 --- a/src/modules/cfgutils/doc/cfgutils_admin.xml +++ b/src/modules/cfgutils/doc/cfgutils_admin.xml @@ -41,7 +41,7 @@ This module can be used for simple load-shedding, e.g. reply 5% of - the Invites with a 503 error and a adequate random Retry-After value. + the Invites with a 503 error and an adequate random Retry-After value. The module provides as well functions to delay the execution of the diff --git a/src/modules/cplc/cpl_time.c b/src/modules/cplc/cpl_time.c index eed253b16..f3604bc7f 100644 --- a/src/modules/cplc/cpl_time.c +++ b/src/modules/cplc/cpl_time.c @@ -36,7 +36,7 @@ /************************ imported from "utils.h" ***************************/ -static inline int strz2int(char *_bp) +static inline int cpl_strz2int(char *_bp) { int _v; char *_p; @@ -53,33 +53,6 @@ static inline int strz2int(char *_bp) } -static inline char* trim(char* _s) -{ - int len; - char* end; - - /* Null pointer, there is nothing to do */ - if (!_s) return _s; - - /* Remove spaces and tabs from the beginning of string */ - while ((*_s == ' ') || (*_s == '\t')) _s++; - - len = strlen(_s); - - end = _s + len - 1; - - /* Remove trailing spaces and tabs */ - while ((*end == ' ') || (*end == '\t')) end--; - if (end != (_s + len - 1)) { - *(end+1) = '\0'; - } - - return _s; -} - - - - /************************ imported from "ac_tm.c" ***************************/ /* #define USE_YWEEK_U // Sunday system @@ -444,7 +417,7 @@ int cpl_tr_parse_interval(cpl_tmrec_p _trp, char *_in) { if(!_trp || !_in) return -1; - _trp->interval = strz2int(_in); + _trp->interval = cpl_strz2int(_in); return 0; } diff --git a/src/modules/cplc/cplc.c b/src/modules/cplc/cplc.c index cf2d7b091..dfdeb5835 100644 --- a/src/modules/cplc/cplc.c +++ b/src/modules/cplc/cplc.c @@ -924,7 +924,7 @@ stop_script: resume_script: return 1; error: - /* send a error reply back */ + /* send an error reply back */ cpl_fct.slb.freply( msg, cpl_err->err_code, &cpl_err->err_msg); /* I don't want to return to script execution, so I return 0 to do break */ return 0; diff --git a/src/modules/crypto/README b/src/modules/crypto/README index 8683d9eba..d7d998e7e 100644 --- a/src/modules/crypto/README +++ b/src/modules/crypto/README @@ -143,7 +143,7 @@ Chapter 1. Admin Guide The salt is a binary array that is appended to the encryption password for better protection against dictionary attacks. Same salt and - password need to be when encrypting and decrypting. + password need to be used when encrypting and decrypting. Default value is "..." (see code). @@ -184,8 +184,8 @@ modparam("crypto", "register_evcb", 1) 3.4. kevcb_netio (str) - Name of the KEMI callbac functio for netio events. It receives a string - parameter with event route name. + Name of the KEMI callback function for netio events. It receives a + string parameter with event route name. Default value is not set. diff --git a/src/modules/crypto/doc/crypto_admin.xml b/src/modules/crypto/doc/crypto_admin.xml index 42385aeb9..8f1232c2d 100644 --- a/src/modules/crypto/doc/crypto_admin.xml +++ b/src/modules/crypto/doc/crypto_admin.xml @@ -72,7 +72,7 @@ The salt is a binary array that is appended to the encryption password for better protection against dictionary attacks. Same - salt and password need to be when encrypting and decrypting. + salt and password need to be used when encrypting and decrypting. @@ -139,7 +139,7 @@ modparam("crypto", "register_evcb", 1)
<varname>kevcb_netio</varname> (str) - Name of the KEMI callbac functio for netio events. It receives a + Name of the KEMI callback function for netio events. It receives a string parameter with event route name. diff --git a/src/modules/ctl/README b/src/modules/ctl/README index 849376c1e..d7a3da931 100644 --- a/src/modules/ctl/README +++ b/src/modules/ctl/README @@ -16,7 +16,7 @@ Andrei Pelinescu-Onciul 3. Parameters 3.1. binrpc (string) - 3.2. binrpc_buffer_size (integer or string) + 3.2. binrpc_buffer_size (integer) 3.3. mode (integer) 3.4. user (integer or string) 3.5. group (integer or string) @@ -56,7 +56,7 @@ Chapter 1. Admin Guide 3. Parameters 3.1. binrpc (string) - 3.2. binrpc_buffer_size (integer or string) + 3.2. binrpc_buffer_size (integer) 3.3. mode (integer) 3.4. user (integer or string) 3.5. group (integer or string) @@ -115,7 +115,7 @@ $ kamcmd ps 3. Parameters 3.1. binrpc (string) - 3.2. binrpc_buffer_size (integer or string) + 3.2. binrpc_buffer_size (integer) 3.3. mode (integer) 3.4. user (integer or string) 3.5. group (integer or string) @@ -143,7 +143,7 @@ $ kamcmd ps If the protocol part is missing and the address/path part looks like a file system path it will default to a Unix stream socket and if not to - an Unix UDP socket. Examples: + a Unix UDP socket. Examples: * "/tmp/unix_test" - equivalent to "unixs:/tmp/unix_test". * "localhost:3000" - equivalent to "udp:localhost:3000". @@ -170,7 +170,7 @@ modparam("ctl", "binrpc", "localhost:3000") # udp modparam("ctl", "binrpc", "tcp:3012") # tcp any , port 3012 modparam("ctl", "binrpc", "udp:*:3012") # udp any , port 3012 -3.2. binrpc_buffer_size (integer or string) +3.2. binrpc_buffer_size (integer) The size of the internal buffer used for printing elements of the RPC response (e.g., internal RPC printf()). The value is given in bytes. diff --git a/src/modules/ctl/doc/ctl_params.xml b/src/modules/ctl/doc/ctl_params.xml index 6c9a8eb1c..5f944d798 100644 --- a/src/modules/ctl/doc/ctl_params.xml +++ b/src/modules/ctl/doc/ctl_params.xml @@ -47,7 +47,7 @@ If the protocol part is missing and the address/path part looks like a file system path it will default to a Unix stream socket and if not to - an Unix UDP socket. + a Unix UDP socket. Examples: @@ -90,7 +90,7 @@ modparam("ctl", "binrpc", "udp:*:3012") # udp any , port 3012
- <varname>binrpc_buffer_size</varname> (integer or string) + <varname>binrpc_buffer_size</varname> (integer) The size of the internal buffer used for printing elements of the RPC response (e.g., internal RPC printf()). The value is given in bytes. diff --git a/src/modules/ctl/io_listener.c b/src/modules/ctl/io_listener.c index ac8f64fc9..64f74a80d 100644 --- a/src/modules/ctl/io_listener.c +++ b/src/modules/ctl/io_listener.c @@ -374,7 +374,7 @@ error: -/* handles an new connect on one of the watched stream connections +/* handles a new connect on one of the watched stream connections * * params: cs - pointer to the control socket for which we have an io ev. * returns: handle_* return convention: diff --git a/src/modules/db_cassandra/README b/src/modules/db_cassandra/README index 443f91f1f..70b89e67a 100644 --- a/src/modules/db_cassandra/README +++ b/src/modules/db_cassandra/README @@ -127,7 +127,7 @@ default_validation_class='UTF8Type' and key_validation_class='UTF8Type'; script by means of the AVPOPS module. Keep in mind that when passing back the results from the database only the first row is used to set the AVP variables. (default AVPOPS behaviour) The script lines below - can be used as an example for issuing the query towards an cassandra + can be used as an example for issuing the query towards a cassandra instance.(This example will work once the column family `location` is configured correctly in the cassandra keyspace) ... @@ -284,7 +284,7 @@ tance(string) reg_id(int) ... The alternative would have been to define an index on the expire column - and run a external job to periodically delete the expired records. + and run an external job to periodically delete the expired records. However, obviously, this would be more costly. 7. Limitations diff --git a/src/modules/db_cassandra/dbcassa_base.cpp b/src/modules/db_cassandra/dbcassa_base.cpp index ab144bb7c..0312d7fea 100644 --- a/src/modules/db_cassandra/dbcassa_base.cpp +++ b/src/modules/db_cassandra/dbcassa_base.cpp @@ -889,7 +889,7 @@ int db_cassa_raw_query(const db1_con_t* _h, const str* _s, db1_res_t** _r) switch(cassa_cql_res.type) { case 1: LM_DBG("Result set is an ROW Type.\n"); break; - case 2: LM_DBG("Result set is an VOID Type.\n"); + case 2: LM_DBG("Result set is a VOID Type.\n"); break; case 3: LM_DBG("Result set is an INT Type.\n"); break; diff --git a/src/modules/db_cassandra/doc/db_cassandra_admin.xml b/src/modules/db_cassandra/doc/db_cassandra_admin.xml index 0becd4af0..d29f90b38 100644 --- a/src/modules/db_cassandra/doc/db_cassandra_admin.xml +++ b/src/modules/db_cassandra/doc/db_cassandra_admin.xml @@ -93,7 +93,7 @@ default_validation_class='UTF8Type' and key_validation_class='UTF8Type'; (default AVPOPS behaviour) The script lines below can be used as an example for issuing the query towards - an cassandra instance.(This example will work once the column family `location` + a cassandra instance.(This example will work once the column family `location` is configured correctly in the cassandra keyspace) @@ -344,7 +344,7 @@ default_validation_class='UTF8Type' and key_validation_class='UTF8Type'; The alternative would have been to define an index on the expire column and - run a external job to periodically delete the expired records. However, + run an external job to periodically delete the expired records. However, obviously, this would be more costly. diff --git a/src/modules/db_mysql/README b/src/modules/db_mysql/README index a09f5a0b4..8d9f526cb 100644 --- a/src/modules/db_mysql/README +++ b/src/modules/db_mysql/README @@ -133,7 +133,7 @@ modparam("db_mysql", "server_timezone", 1) 3.3. timeout_interval (integer) - Time interval (in seconds) after that an connection attempt, read or + Time interval (in seconds) after that a connection attempt, read or write request is aborted. The value counts three times, as several retries are done from the driver before it gives up. diff --git a/src/modules/db_mysql/doc/db_mysql_admin.xml b/src/modules/db_mysql/doc/db_mysql_admin.xml index 7026cfab5..45eaf5a48 100644 --- a/src/modules/db_mysql/doc/db_mysql_admin.xml +++ b/src/modules/db_mysql/doc/db_mysql_admin.xml @@ -98,7 +98,7 @@ modparam("db_mysql", "server_timezone", 1)
<varname>timeout_interval</varname> (integer) - Time interval (in seconds) after that an connection attempt, read or write request + Time interval (in seconds) after that a connection attempt, read or write request is aborted. The value counts three times, as several retries are done from the driver before it gives up. diff --git a/src/modules/db_postgres/km_res.c b/src/modules/db_postgres/km_res.c index 13ac138c1..1b8af4334 100644 --- a/src/modules/db_postgres/km_res.c +++ b/src/modules/db_postgres/km_res.c @@ -233,7 +233,7 @@ int db_postgres_convert_rows(const db1_con_t *_h, db1_res_t *_r) s = PQgetvalue(CON_RESULT(_h), row, col); LM_DBG("PQgetvalue(%p,%d,%d)=[%s]\n", _h, row, col, s); /* - * A empty string can be a NULL value, or just an empty string. + * An empty string can be a NULL value, or just an empty string. * This differs from the mysql behaviour, that further processing * steps expect. So we need to simulate this here unfortunally. */ diff --git a/src/modules/db_postgres/pg_cmd.h b/src/modules/db_postgres/pg_cmd.h index 5a814e380..22e74c23e 100644 --- a/src/modules/db_postgres/pg_cmd.h +++ b/src/modules/db_postgres/pg_cmd.h @@ -122,7 +122,7 @@ int pg_cmd_first(db_res_t *res); int pg_cmd_next(db_res_t *res); -/** Retrieves the value of an db_cmd option. +/** Retrieves the value of a db_cmd option. * This function is called when a SER module uses db_getopt to retrieve the * value of db_cmd parameter. * @param cmd A db_cmd structure representing the command. @@ -135,7 +135,7 @@ int pg_cmd_next(db_res_t *res); int pg_getopt(db_cmd_t *cmd, char *optname, va_list ap); -/** Sets the value of an db_cmd option. +/** Sets the value of a db_cmd option. * This function is called when a SER module uses db_setopt to set the * value of db_cmd parameter. * @param cmd A db_cmd structure representing the command. diff --git a/src/modules/debugger/README b/src/modules/debugger/README index 1b00a3fcb..833e7d176 100644 --- a/src/modules/debugger/README +++ b/src/modules/debugger/README @@ -151,7 +151,7 @@ Chapter 1. Admin Guide (e.g., XMLRPC, kamcmd, siremis). The framework to set breakpoints on specific actions and config lines - is not exported to RPC. Each action can be accompanied by an breakpoint + is not exported to RPC. Each action can be accompanied by a breakpoint or you can use dbg_breakpoint() function to set a breakpoint at certain line. Global breakpoints can be enabled/disabled at runtime. The script running trace can also be enabled/disabled at runtime. diff --git a/src/modules/debugger/doc/debugger_admin.xml b/src/modules/debugger/doc/debugger_admin.xml index 9f39883bd..55262c864 100644 --- a/src/modules/debugger/doc/debugger_admin.xml +++ b/src/modules/debugger/doc/debugger_admin.xml @@ -29,7 +29,7 @@ The framework to set breakpoints on specific actions and config lines - is not exported to RPC. Each action can be accompanied by an + is not exported to RPC. Each action can be accompanied by a breakpoint or you can use dbg_breakpoint() function to set a breakpoint at certain line. Global breakpoints can be enabled/disabled at runtime. The script running trace can also be enabled/disabled at runtime. diff --git a/src/modules/dialog/README b/src/modules/dialog/README index 73e16a597..ab19638d9 100644 --- a/src/modules/dialog/README +++ b/src/modules/dialog/README @@ -437,14 +437,14 @@ Chapter 1. Admin Guide common application discussed for illustrative purposes; there are many others. - The dialog module provides dialog awareness for the Kamailio proxy. - It's functionality is to keep track of the current dialogs, to offer + The dialog module provides dialog awareness for the Kamailio proxy. Its + functionality is to keep track of the current dialogs, to offer information about them (e.g. how many dialogs are active), and to manage various characteristics of dialogs. The module exports several functions that can be used directly from the configuration route script as well as functions for the RPC interface. - This module also provides a API foundation on which to build more + This module also provides an API foundation on which to build more complex dialog-oriented functionality in other Kamailio modules. 2. How it works @@ -1539,7 +1539,7 @@ unset_dlg_profile("caller","$fu"); Example 1.66. is_in_profile usage ... if (is_in_profile("inbound_call")) { - log("this request belongs to a inbound call\n"); + log("this request belongs to an inbound call\n"); } ... if (is_in_profile("caller","XX")) { @@ -1705,7 +1705,8 @@ dlg_bridge("sip:user@kamailio.org", "sip:annoucement@kamailio.org", Meaning of the parameters is as follows: * callid - SIP call-id. * ftag - SIP From tag. - * ttag - SIP To tag. + * ttag - SIP To tag (it can be empty string to match a dialog during + call setup (eg., match for CANCEL)). This function can be used from BRANCH_ROUTE, REQUEST_ROUTE, ONREPLY_ROUTE and FAILURE_ROUTE. diff --git a/src/modules/dialog/dlg_hash.c b/src/modules/dialog/dlg_hash.c index 2714c439e..54b8916d4 100644 --- a/src/modules/dialog/dlg_hash.c +++ b/src/modules/dialog/dlg_hash.c @@ -1127,7 +1127,7 @@ void dlg_release(dlg_cell_t *dlg) /*! - * \brief Update a dialog state according a event and the old state + * \brief Update a dialog state according an event and the old state * * This functions implement the main state machine that update a dialog * state according a processed event and the current state. If necessary diff --git a/src/modules/dialog/dlg_hash.h b/src/modules/dialog/dlg_hash.h index 7367a1b78..d22576c24 100644 --- a/src/modules/dialog/dlg_hash.h +++ b/src/modules/dialog/dlg_hash.h @@ -40,7 +40,7 @@ /* states of a dialog */ #define DLG_STATE_UNCONFIRMED 1 /*!< unconfirmed dialog */ #define DLG_STATE_EARLY 2 /*!< early dialog */ -#define DLG_STATE_CONFIRMED_NA 3 /*!< confirmed dialog without a ACK yet */ +#define DLG_STATE_CONFIRMED_NA 3 /*!< confirmed dialog without an ACK yet */ #define DLG_STATE_CONFIRMED 4 /*!< confirmed dialog */ #define DLG_STATE_DELETED 5 /*!< deleted dialog */ @@ -465,7 +465,7 @@ void dlg_ref_helper(dlg_cell_t *dlg, unsigned int cnt, const char *fname, void dlg_release(dlg_cell_t *dlg); /*! - * \brief Update a dialog state according a event and the old state + * \brief Update a dialog state according an event and the old state * * This functions implement the main state machine that update a dialog * state according a processed event and the current state. If necessary diff --git a/src/modules/dialog/dlg_var.c b/src/modules/dialog/dlg_var.c index 473736b43..883b99b63 100644 --- a/src/modules/dialog/dlg_var.c +++ b/src/modules/dialog/dlg_var.c @@ -254,31 +254,6 @@ int pv_parse_dialog_var_name(pv_spec_p sp, str *in) return 0; } -/*! Internal debugging function: Prints the list of dialogs */ -void print_lists(struct dlg_cell *dlg) { - struct dlg_var *varlist; - varlist = _dlg_var_table; - LM_DBG("Internal var-list (%p):\n", varlist); - while (varlist) { - LM_DBG("%.*s=%.*s (flags %i)\n", - varlist->key.len, varlist->key.s, - varlist->value.len, varlist->value.s, - varlist->vflags); - varlist = varlist->next; - } - if (dlg) { - varlist = dlg->vars; - LM_DBG("Dialog var-list (%p):\n", varlist); - while (varlist) { - LM_DBG("%.*s=%.*s (flags %i)\n", - varlist->key.len, varlist->key.s, - varlist->value.len, varlist->value.s, - varlist->vflags); - varlist = varlist->next; - } - } -} - /** * return reference to the dlg variable value * - unsafe - use only when it is sure that the value is not updated @@ -449,8 +424,6 @@ int set_dlg_variable(struct dlg_cell *dlg, str *key, str *val) if ( dlg_db_mode==DB_MODE_REALTIME ) update_dialog_dbinfo(dlg); - print_lists(dlg); - return 0; done: @@ -510,8 +483,6 @@ int pv_get_dlg_variable(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) } } - print_lists(dlg); - /* unlock dialog */ if (dlg) { dlg_unlock(d_table, &(d_table->entries[dlg->h_entry])); @@ -584,8 +555,6 @@ int pv_set_dlg_variable(struct sip_msg* msg, pv_param_t *param, int op, pv_value } dlg_unlock(d_table, &(d_table->entries[dlg->h_entry])); } - print_lists(dlg); - dlg_release(dlg); return 0; error: diff --git a/src/modules/dialog/doc/dialog_admin.xml b/src/modules/dialog/doc/dialog_admin.xml index 5b8d99b18..51faa1656 100644 --- a/src/modules/dialog/doc/dialog_admin.xml +++ b/src/modules/dialog/doc/dialog_admin.xml @@ -29,7 +29,7 @@ common application discussed for illustrative purposes; there are many others. - The dialog module provides dialog awareness for the &kamailio; proxy. It's + The dialog module provides dialog awareness for the &kamailio; proxy. Its functionality is to keep track of the current dialogs, to offer information about them (e.g. how many dialogs are active), and to manage various characteristics of dialogs. The module exports several functions that can be @@ -37,7 +37,7 @@ the RPC interface. - This module also provides a API foundation on which to build + This module also provides an API foundation on which to build more complex dialog-oriented functionality in other &kamailio; modules.
@@ -1782,7 +1782,7 @@ unset_dlg_profile("caller","$fu"); ... if (is_in_profile("inbound_call")) { - log("this request belongs to a inbound call\n"); + log("this request belongs to an inbound call\n"); } ... if (is_in_profile("caller","XX")) { diff --git a/src/modules/dialplan/README b/src/modules/dialplan/README index 544c2e9a4..9aaaae87c 100644 --- a/src/modules/dialplan/README +++ b/src/modules/dialplan/README @@ -501,7 +501,7 @@ xlog("the attributes associated with '+49$rU' are '$var(attrs)'\n"); with the value of the output string. + script var - At input the function will get the input string from an - existing script variable. At output the function will set an + existing script variable. At output the function will set a script variable with the value of the output string. This function can be used from ANY_ROUTE. diff --git a/src/modules/dialplan/doc/dialplan_admin.xml b/src/modules/dialplan/doc/dialplan_admin.xml index 30f2b75b8..faa788f22 100644 --- a/src/modules/dialplan/doc/dialplan_admin.xml +++ b/src/modules/dialplan/doc/dialplan_admin.xml @@ -610,7 +610,7 @@ xlog("the attributes associated with '+49$rU' are '$var(attrs)'\n"); script var - At input the function will get the input string from an existing - script variable. At output the function will set an script variable + script variable. At output the function will set a script variable with the value of the output string. diff --git a/src/modules/dispatcher/README b/src/modules/dispatcher/README index 6f0978dc6..5dafa624e 100644 --- a/src/modules/dispatcher/README +++ b/src/modules/dispatcher/README @@ -2256,7 +2256,7 @@ Chapter 2. Frequently Asked Questions E-mails regarding any stable version should be sent to and e-mail regarding development versions - or GIT snapshots should be send to . + or GIT snapshots should be sent to . 2.5. diff --git a/src/modules/dispatcher/doc/dispatcher_faq.xml b/src/modules/dispatcher/doc/dispatcher_faq.xml index 0c4e06fb8..0b9a45912 100644 --- a/src/modules/dispatcher/doc/dispatcher_faq.xml +++ b/src/modules/dispatcher/doc/dispatcher_faq.xml @@ -58,7 +58,7 @@ E-mails regarding any stable version should be sent to &kamailiousersmail; - and e-mail regarding development versions or GIT snapshots should be send to + and e-mail regarding development versions or GIT snapshots should be sent to &kamailiodevmail;. diff --git a/src/modules/domain/domain_mod.c b/src/modules/domain/domain_mod.c index 190a3c2a7..45fa9f3d7 100644 --- a/src/modules/domain/domain_mod.c +++ b/src/modules/domain/domain_mod.c @@ -50,7 +50,7 @@ MODULE_VERSION /* * Version of domain table required by the module, * increment this value if you change the table in - * an backwards incompatible way + * a backwards incompatible way */ #define DOMAIN_TABLE_VERSION 2 #define DOMAIN_ATTRS_TABLE_VERSION 1 diff --git a/src/modules/domainpolicy/domainpolicy_mod.h b/src/modules/domainpolicy/domainpolicy_mod.h index 550c2dc81..7aa45fc71 100644 --- a/src/modules/domainpolicy/domainpolicy_mod.h +++ b/src/modules/domainpolicy/domainpolicy_mod.h @@ -38,7 +38,7 @@ /*! * Version of gw and lcr tables required by the module, increment this value - * if you change the table in an backwards incompatible way + * if you change the table in a backwards incompatible way */ #define DOMAINPOLICY_TABLE_VERSION 2 diff --git a/src/modules/drouting/README b/src/modules/drouting/README index 7c6b10fd2..44a280b18 100644 --- a/src/modules/drouting/README +++ b/src/modules/drouting/README @@ -466,7 +466,7 @@ Chapter 1. Admin Guide gateway is added to the request URI and then the request is forwarded. - If no rule is found to match the selection criteria an default action + If no rule is found to match the selection criteria a default action must be taken (e.g., error response sent back). If the gateway in the chain has no prefix the request is forwarded without adding any prefix to the request URI. @@ -551,8 +551,8 @@ modparam("drouting", "drg_table", "groups") 3.5. drl_table(str) The name of the db table storing definitions of destination lists (to - be used directly by the routing rules). You will have a identifier to a - group of gateways instead of having all the members of the group as a + be used directly by the routing rules). You will have an identifier to + a group of gateways instead of having all the members of the group as individual elements. Very useful to reuse a list of gateways in different places. diff --git a/src/modules/drouting/doc/drouting_admin.xml b/src/modules/drouting/doc/drouting_admin.xml index 323c183a9..15cdc8294 100644 --- a/src/modules/drouting/doc/drouting_admin.xml +++ b/src/modules/drouting/doc/drouting_admin.xml @@ -783,7 +783,7 @@ - If no rule is found to match the selection criteria an default action must + If no rule is found to match the selection criteria a default action must be taken (e.g., error response sent back). If the gateway in the chain has no prefix the request is forwarded without adding any prefix to the request URI. @@ -905,8 +905,8 @@ modparam("drouting", "drg_table", "groups") The name of the db table storing definitions of destination lists (to be used directly by the routing rules). - You will have a identifier to a group of gateways instead of having all the - members of the group as a individual elements. + You will have an identifier to a group of gateways instead of having all the + members of the group as individual elements. Very useful to reuse a list of gateways in different places. diff --git a/src/modules/erlang/README b/src/modules/erlang/README index 65724c9be..4b4d34f6b 100644 --- a/src/modules/erlang/README +++ b/src/modules/erlang/README @@ -225,9 +225,9 @@ modparam("erlang", "cnode_host", "kamailio.lan") 3.4. erlang_nodename (str) - The format of the node name is an name@host where name is the name - given by the user and host is the full host name if long names are - used, or the first part of the host name if short names are used. + The format of the node name is a name@host where name is the name given + by the user and host is the full host name if long names are used, or + the first part of the host name if short names are used. Example 1.4. Set erlang_nodename parameter ... diff --git a/src/modules/erlang/doc/erlang_admin.xml b/src/modules/erlang/doc/erlang_admin.xml index 51a8eacf3..b2730696e 100644 --- a/src/modules/erlang/doc/erlang_admin.xml +++ b/src/modules/erlang/doc/erlang_admin.xml @@ -130,7 +130,7 @@ modparam("erlang", "cnode_host", "kamailio.lan")
<varname>erlang_nodename</varname> (str) - The format of the node name is an name@host + The format of the node name is a name@host where name is the name given by the user and host is the full host name if long names are used, or the first part of the host name if short names are used. diff --git a/src/modules/exec/README b/src/modules/exec/README index b63a8b27a..3769a2d94 100644 --- a/src/modules/exec/README +++ b/src/modules/exec/README @@ -97,6 +97,20 @@ Chapter 1. Admin Guide $$SIP_OUSER) in the parameters given to exec functions. Otherwise they will be evaluated as Kamailio pseudo-variables, throwing errors. + WARNING: if the exec functions are passed variables that might include + malicious input, then remote attackers may abuse the exec functions to + execute arbitrary code. Specifically, this may result in OS command + injection. In such cases, input validation is required to prevent the + vulnerability. The following is an example of how input validation and + exec module functions may be used together to prevent exploitation: +... +if !($rU =~ "^[0-9]{1,15}$") { + xlog("Malformed R-URI username: '$rU'\n"); + exit; +} +exec_msg("echo TEST >> /tmp/$(rU).txt"); +... + 2. Dependencies 2.1. Kamailio Modules @@ -167,7 +181,7 @@ modparam("exec", "time_to_kill", 20) Example 1.3. exec_dset usage ... exec_dset("echo TEST > /tmp/test.txt"); -exec_dset("echo TEST > /tmp/$rU.txt"); +exec_dset("echo TEST > /tmp/$(rU).txt"); ... 4.2. exec_msg(command) @@ -191,7 +205,7 @@ exec_dset("echo TEST > /tmp/$rU.txt"); Example 1.4. exec_msg usage ... exec_msg("echo TEST > /tmp/test.txt"); -exec_msg("echo TEST > /tmp/$rU.txt"); +exec_msg("echo TEST > /tmp/$(rU).txt"); ... 4.3. exec_avp(command [, avplist]) @@ -235,7 +249,7 @@ exec_avp("echo TEST", "$avp(s:test)"); Example 1.6. exec_cmd usage ... exec_cmd("echo TEST > /tmp/test.txt"); -exec_cmd("echo TEST > /tmp/$rU.txt"); +exec_cmd("echo TEST > /tmp/$(rU).txt"); ... 5. Known Issues diff --git a/src/modules/exec/doc/exec_admin.xml b/src/modules/exec/doc/exec_admin.xml index 12249d510..9dee3522d 100644 --- a/src/modules/exec/doc/exec_admin.xml +++ b/src/modules/exec/doc/exec_admin.xml @@ -77,6 +77,23 @@ Otherwise they will be evaluated as &kamailio; pseudo-variables, throwing errors. + + WARNING: if the exec functions are passed variables that might include + malicious input, then remote attackers may abuse the exec functions to + execute arbitrary code. Specifically, this may result in OS command injection. + In such cases, input validation is required to prevent the vulnerability. + The following is an example of how input validation and exec module + functions may be used together to prevent exploitation: + + +... +if !($rU =~ "^[0-9]{1,15}$") { + xlog("Malformed R-URI username: '$rU'\n"); + exit; +} +exec_msg("echo TEST >> /tmp/$(rU).txt"); +... +
@@ -186,7 +203,7 @@ modparam("exec", "time_to_kill", 20) ... exec_dset("echo TEST > /tmp/test.txt"); -exec_dset("echo TEST > /tmp/$rU.txt"); +exec_dset("echo TEST > /tmp/$(rU).txt"); ... @@ -225,7 +242,7 @@ exec_dset("echo TEST > /tmp/$rU.txt"); ... exec_msg("echo TEST > /tmp/test.txt"); -exec_msg("echo TEST > /tmp/$rU.txt"); +exec_msg("echo TEST > /tmp/$(rU).txt"); ... @@ -300,7 +317,7 @@ exec_avp("echo TEST", "$avp(s:test)"); ... exec_cmd("echo TEST > /tmp/test.txt"); -exec_cmd("echo TEST > /tmp/$rU.txt"); +exec_cmd("echo TEST > /tmp/$(rU).txt"); ... @@ -315,4 +332,3 @@ exec_cmd("echo TEST > /tmp/$rU.txt");
- diff --git a/src/modules/gzcompress/README b/src/modules/gzcompress/README index 0dcfd8d5c..ec2d0da1c 100644 --- a/src/modules/gzcompress/README +++ b/src/modules/gzcompress/README @@ -91,7 +91,7 @@ Chapter 1. Admin Guide smaller than the original size (e.g., a body of 431 bytes was compressed to 230). - An use case can be when having peering traffic between two Kamailio + A use case can be when having peering traffic between two Kamailio servers. Before relaying to the other Kamailio, use in config file: append_hf("Content-Encoding: deflate\r\n"). diff --git a/src/modules/gzcompress/doc/gzcompress_admin.xml b/src/modules/gzcompress/doc/gzcompress_admin.xml index ecd66d21e..7acb2dfda 100644 --- a/src/modules/gzcompress/doc/gzcompress_admin.xml +++ b/src/modules/gzcompress/doc/gzcompress_admin.xml @@ -53,7 +53,7 @@ compressed to 230).
- An use case can be when having peering traffic between two Kamailio + A use case can be when having peering traffic between two Kamailio servers. Before relaying to the other Kamailio, use in config file: append_hf("Content-Encoding: deflate\r\n"). diff --git a/src/modules/h350/README b/src/modules/h350/README index 83ce3ea31..fb52d4437 100644 --- a/src/modules/h350/README +++ b/src/modules/h350/README @@ -83,7 +83,7 @@ Chapter 1. Admin Guide 1.1. Example H.350 commObject LDAP Entry - The Kamailio H350 module enables an Kamailio SIP proxy server to access + The Kamailio H350 module enables a Kamailio SIP proxy server to access SIP account data stored in an LDAP [RFC4510] directory containing H.350 [H.350] commObjects. ITU-T Recommendation H.350 standardizes LDAP object classes to store Real-Time Communication (RTC) account data. In diff --git a/src/modules/h350/doc/h350_admin.xml b/src/modules/h350/doc/h350_admin.xml index 01e411b95..f78cac2b7 100644 --- a/src/modules/h350/doc/h350_admin.xml +++ b/src/modules/h350/doc/h350_admin.xml @@ -14,7 +14,7 @@ Overview - The &kamailio; H350 module enables an &kamailio; SIP proxy server to access SIP account data stored in an LDAP directory containing H.350 commObjects. ITU-T Recommendation H.350 standardizes LDAP object classes to store Real-Time Communication (RTC) account data. In particular, H.350.4 defines an object class called sipIdentity that includes attribute specifications for SIP account data like SIP URI, SIP digest username/password, or service level. This allows to store SIP account data in a vendor neutral way and lets different entities, like SIP proxies, provisioning, or billing applications, access the data in a standardized format. + The &kamailio; H350 module enables a &kamailio; SIP proxy server to access SIP account data stored in an LDAP directory containing H.350 commObjects. ITU-T Recommendation H.350 standardizes LDAP object classes to store Real-Time Communication (RTC) account data. In particular, H.350.4 defines an object class called sipIdentity that includes attribute specifications for SIP account data like SIP URI, SIP digest username/password, or service level. This allows to store SIP account data in a vendor neutral way and lets different entities, like SIP proxies, provisioning, or billing applications, access the data in a standardized format. diff --git a/src/modules/http_client/README b/src/modules/http_client/README index a3de550a2..d0d11e38c 100644 --- a/src/modules/http_client/README +++ b/src/modules/http_client/README @@ -635,7 +635,7 @@ tstuff;timeout=12;failover=apione") Kamailio main config file. To set a string value to null, in order to override default settings, - you can specify an value of "" - two quotation marks. In order to + you can specify a value of "" - two quotation marks. In order to disable a http proxy setting you can set the port to zero. Example 1.19. Set config_file parameter diff --git a/src/modules/http_client/doc/http_client_admin.xml b/src/modules/http_client/doc/http_client_admin.xml index e52ec5ce2..446b68a00 100644 --- a/src/modules/http_client/doc/http_client_admin.xml +++ b/src/modules/http_client/doc/http_client_admin.xml @@ -630,7 +630,7 @@ modparam("http_client", "httpcon", "apifour=>http://stockholm.example.com/api/ge To set a string value to null, in order to override default settings, - you can specify an value of "" - two quotation marks. In order to disable + you can specify a value of "" - two quotation marks. In order to disable a http proxy setting you can set the port to zero. diff --git a/src/modules/imc/imc_cmd.h b/src/modules/imc/imc_cmd.h index 64f444d71..15d81807e 100644 --- a/src/modules/imc/imc_cmd.h +++ b/src/modules/imc/imc_cmd.h @@ -78,7 +78,7 @@ accept invitation to join a conference room\r\n\ "IMC_CMD_START_STR IMC_CMD_REJECT" - \ reject invitation to join a conference room\r\n\ "IMC_CMD_START_STR IMC_CMD_REMOVE" [] - \ -remove an user from the conference room\r\n\ +remove a user from the conference room\r\n\ "IMC_CMD_START_STR IMC_CMD_MEMBERS" - \ list members is a conference room\r\n\ "IMC_CMD_START_STR IMC_CMD_ROOMS" - \ diff --git a/src/modules/ims_auth/README b/src/modules/ims_auth/README index 42e8b0bd5..4cdd852f8 100644 --- a/src/modules/ims_auth/README +++ b/src/modules/ims_auth/README @@ -215,7 +215,7 @@ modparam("ims_auth", "auth_vector_timeout", "domain") 3.4. auth_data_timeout (int) - Time, in seconds, an used auth vector is valid for. + Time, in seconds, a used auth vector is valid for. Default value is “60”. diff --git a/src/modules/ims_auth/authorize.c b/src/modules/ims_auth/authorize.c index 260c65085..74cad02ad 100644 --- a/src/modules/ims_auth/authorize.c +++ b/src/modules/ims_auth/authorize.c @@ -1310,7 +1310,7 @@ done: } /** - * Frees the memory taken by a authentication vector + * Frees the memory taken by an authentication vector * @param av - the vector to be freed */ void free_auth_vector(auth_vector * av) { diff --git a/src/modules/ims_auth/cxdx_avp.c b/src/modules/ims_auth/cxdx_avp.c index a8d6a9b46..ffad38519 100644 --- a/src/modules/ims_auth/cxdx_avp.c +++ b/src/modules/ims_auth/cxdx_avp.c @@ -236,7 +236,7 @@ int cxdx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id, } /** - * Creates and adds a Auth-Session-State AVP. + * Creates and adds an Auth-Session-State AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -330,7 +330,7 @@ int cxdx_add_UAR_flags(AAAMessage *msg, unsigned int sos_reg) } /** - * Creates and adds a Authorization-Type AVP. + * Creates and adds an Authorization-Type AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -806,7 +806,7 @@ int cxdx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data, } /** - * Creates and adds a ETSI_sip_authorization AVP. + * Creates and adds an ETSI_sip_authorization AVP. * @param username - UserName * @param realm - Realm * @param nonce - Nonce diff --git a/src/modules/ims_auth/cxdx_avp.h b/src/modules/ims_auth/cxdx_avp.h index 131ba10f0..6d0a49129 100644 --- a/src/modules/ims_auth/cxdx_avp.h +++ b/src/modules/ims_auth/cxdx_avp.h @@ -78,7 +78,7 @@ int cxdx_add_destination_host(AAAMessage *msg,str data); int cxdx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id,unsigned int auth_id,unsigned int acct_id); /** - * Creates and adds a Auth-Session-State AVP. + * Creates and adds an Auth-Session-State AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -118,7 +118,7 @@ int cxdx_add_visited_network_id(AAAMessage *msg,str data); int cxdx_add_UAR_flags(AAAMessage *msg, unsigned int sos_reg); /** - * Creates and adds a Authorization-Type AVP. + * Creates and adds an Authorization-Type AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -209,7 +209,7 @@ int cxdx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data, str *line_identifier); /** - * Creates and adds a ETSI_sip_authorization AVP. + * Creates and adds an ETSI_sip_authorization AVP. * @param username - UserName * @param realm - Realm * @param nonce - Nonce diff --git a/src/modules/ims_auth/doc/ims_auth_admin.xml b/src/modules/ims_auth/doc/ims_auth_admin.xml index f52be2915..ec893a2dd 100644 --- a/src/modules/ims_auth/doc/ims_auth_admin.xml +++ b/src/modules/ims_auth/doc/ims_auth_admin.xml @@ -114,7 +114,7 @@ modparam("ims_auth", "auth_vector_timeout", "domain")
<varname>auth_data_timeout</varname> (int) - Time, in seconds, an used auth vector is valid for. + Time, in seconds, a used auth vector is valid for. Default value is 60. diff --git a/src/modules/ims_charging/README b/src/modules/ims_charging/README index 8d5ed585d..fe24631ee 100644 --- a/src/modules/ims_charging/README +++ b/src/modules/ims_charging/README @@ -203,7 +203,7 @@ Chapter 1. Admin Guide 1. Overview This module contains all methods related to the IMS charging control - functions performed by an network element (e.g. a S-CSCF) over the Ro + functions performed by a network element (e.g. a S-CSCF) over the Ro interface. This module is dependent on the CDP (C Diameter Peer) modules for communicating with a Charging-Server as specified in 3GPP specification TS xx.xxx. @@ -907,7 +907,7 @@ n"); 6.12. CCRs requests, which ended with a timeout (ccr_timeouts) - Number of CCR-Requests, which ran into an timeout. + Number of CCR-Requests, which ran into a timeout. 6.13. Billed seconds (billed_secs) diff --git a/src/modules/ims_charging/doc/ims_charging_admin.xml b/src/modules/ims_charging/doc/ims_charging_admin.xml index 775a9016d..2554499a3 100644 --- a/src/modules/ims_charging/doc/ims_charging_admin.xml +++ b/src/modules/ims_charging/doc/ims_charging_admin.xml @@ -13,7 +13,7 @@ Overview This module contains all methods related to the IMS charging control - functions performed by an network element (e.g. a S-CSCF) over the Ro + functions performed by a network element (e.g. a S-CSCF) over the Ro interface. This module is dependent on the CDP (C Diameter Peer) modules for communicating with a Charging-Server as specified in 3GPP specification TS xx.xxx. @@ -1039,7 +1039,7 @@ route[CHARGING_CCR_REPLY]
CCRs requests, which ended with a timeout (ccr_timeouts) - Number of CCR-Requests, which ran into an timeout. + Number of CCR-Requests, which ran into a timeout.
diff --git a/src/modules/ims_charging/ims_charging_mod.c b/src/modules/ims_charging/ims_charging_mod.c index 17846dd0a..2dd051a7c 100644 --- a/src/modules/ims_charging/ims_charging_mod.c +++ b/src/modules/ims_charging/ims_charging_mod.c @@ -352,7 +352,7 @@ int create_response_avp_string(char* name, str* val) { return 1; } -//This function gets the dlg from the current msg, gets the ro_session from the dlg and sets a AVP for use in the cfg file: ro_session_id +//This function gets the dlg from the current msg, gets the ro_session from the dlg and sets an AVP for use in the cfg file: ro_session_id static int w_ro_set_session_id_avp(struct sip_msg *msg, char *str1, char *str2) { return ki_ro_set_session_id_avp(msg); } diff --git a/src/modules/ims_dialog/README b/src/modules/ims_dialog/README index ee1f86035..ed4c5b4a5 100644 --- a/src/modules/ims_dialog/README +++ b/src/modules/ims_dialog/README @@ -465,7 +465,7 @@ modparam("ims_dialog", "detect_spirals", 1) Example 1.8. Set profiles_with_value parameter ... -modparam("dialog", "profiles_with_value", "caller ; my_profile") +modparam("ims_dialog", "profiles_with_value", "caller ; my_profile") ... 5.16. profiles_no_value (string) @@ -476,7 +476,7 @@ modparam("dialog", "profiles_with_value", "caller ; my_profile") Example 1.9. Set profiles_no_value parameter ... -modparam("dialog", "profiles_no_value", "inbound ; outbound") +modparam("ims_dialog", "profiles_no_value", "inbound ; outbound") ... 5.17. bridge_controller (string) @@ -487,7 +487,7 @@ modparam("dialog", "profiles_no_value", "inbound ; outbound") Example 1.10. Set bridge_controller parameter ... -modparam("dialog", "bridge_controller", "sip:ctd@kamailio.org") +modparam("ims_dialog", "bridge_controller", "sip:ctd@kamailio.org") ... 5.18. initial_cbs_inscript (string) @@ -571,7 +571,7 @@ unset_dlg_profile("caller","$fu"); Example 1.13. is_in_profile usage ... if (is_in_profile("inbound_call")) { - log("this request belongs to a inbound call\n"); + log("this request belongs to an inbound call\n"); } ... if (is_in_profile("caller","XX")) { @@ -1040,7 +1040,7 @@ Chapter 2. Developer Guide Chapter 3. Frequently Asked Questions 3.1. What happened with “use_tight_match” parameter? - 3.2. Why is there a ims_dialog module and a dialog module? + 3.2. Why is there an ims_dialog module and a dialog module? 3.3. Where can I find more about Kamailio? 3.4. Where can I post a question about this module? 3.5. How can I report a bug? @@ -1055,7 +1055,7 @@ Chapter 3. Frequently Asked Questions 3.2. - Why is there a ims_dialog module and a dialog module? + Why is there an ims_dialog module and a dialog module? The ims_dialog module addresses shortcomings in the initial dialog module design. It makes some large changes to the API and therefore diff --git a/src/modules/ims_dialog/dlg_hash.c b/src/modules/ims_dialog/dlg_hash.c index cfe0148e7..3249d06c0 100644 --- a/src/modules/ims_dialog/dlg_hash.c +++ b/src/modules/ims_dialog/dlg_hash.c @@ -1082,7 +1082,7 @@ static inline void log_next_state_dlg(const int event, const struct dlg_cell * d } /*! - * \brief Update a dialog state according a event and the old state + * \brief Update a dialog state according an event and the old state * * This functions implement the main state machine that update a dialog * state according a processed event and the current state. If necessary diff --git a/src/modules/ims_dialog/dlg_hash.h b/src/modules/ims_dialog/dlg_hash.h index ec3b7c4b1..7faabfd4c 100644 --- a/src/modules/ims_dialog/dlg_hash.h +++ b/src/modules/ims_dialog/dlg_hash.h @@ -40,7 +40,7 @@ #define DLG_STATE_UNCONFIRMED 1 /*!< unconfirmed dialog */ #define DLG_STATE_EARLY 2 /*!< early dialog */ #define DLG_STATE_CONFIRMED 4 /*!< confirmed dialog */ -#define DLG_STATE_CONFIRMED_NA 5 /*!< confirmed dialog without a ACK yet */ +#define DLG_STATE_CONFIRMED_NA 5 /*!< confirmed dialog without an ACK yet */ #define DLG_STATE_DELETED 6 /*!< deleted dialog */ #define DLG_STATE_CONCURRENTLY_CONFIRMED 7 /*!< confirmed concurrent dailogs */ @@ -386,7 +386,7 @@ void ref_dlg(struct dlg_cell *dlg, unsigned int cnt); /*! - * \brief Update a dialog state according a event and the old state + * \brief Update a dialog state according an event and the old state * * This functions implement the main state machine that update a dialog * state according a processed event and the current state. If necessary diff --git a/src/modules/ims_dialog/dlg_req_within.c b/src/modules/ims_dialog/dlg_req_within.c index cba9a3913..76bf5a47c 100644 --- a/src/modules/ims_dialog/dlg_req_within.c +++ b/src/modules/ims_dialog/dlg_req_within.c @@ -352,7 +352,7 @@ int dlg_terminate(struct dlg_cell *dlg, struct sip_msg *msg, str *reason, int si { //well this is the transaction of a subsequent request within the dialog //and the dialog is not confirmed yet, so its a PRACK or an UPDATE - //could also be an options, but the important thing is how am i going to get + //could also be an option, but the important thing is how am i going to get //the transaction of the invite, that is the one i have to cancel LM_WARN("this is not my transaction so where am i?\n"); return 1; //TODO - need to check why we got in here once before? this crashed on t_reply as t seemed invalid diff --git a/src/modules/ims_dialog/doc/ims_dialog_admin.xml b/src/modules/ims_dialog/doc/ims_dialog_admin.xml index df3669cab..d5be1347b 100644 --- a/src/modules/ims_dialog/doc/ims_dialog_admin.xml +++ b/src/modules/ims_dialog/doc/ims_dialog_admin.xml @@ -410,7 +410,7 @@ modparam("ims_dialog", "detect_spirals", 1) ... -modparam("dialog", "profiles_with_value", "caller ; my_profile") +modparam("ims_dialog", "profiles_with_value", "caller ; my_profile") ... @@ -435,7 +435,7 @@ modparam("dialog", "profiles_with_value", "caller ; my_profile") ... -modparam("dialog", "profiles_no_value", "inbound ; outbound") +modparam("ims_dialog", "profiles_no_value", "inbound ; outbound") ... @@ -460,7 +460,7 @@ modparam("dialog", "profiles_no_value", "inbound ; outbound") ... -modparam("dialog", "bridge_controller", "sip:ctd@kamailio.org") +modparam("ims_dialog", "bridge_controller", "sip:ctd@kamailio.org") ... @@ -604,7 +604,7 @@ unset_dlg_profile("caller","$fu"); ... if (is_in_profile("inbound_call")) { - log("this request belongs to a inbound call\n"); + log("this request belongs to an inbound call\n"); } ... if (is_in_profile("caller","XX")) { diff --git a/src/modules/ims_dialog/doc/ims_dialog_faq.xml b/src/modules/ims_dialog/doc/ims_dialog_faq.xml index 4b5064788..a881818f8 100644 --- a/src/modules/ims_dialog/doc/ims_dialog_faq.xml +++ b/src/modules/ims_dialog/doc/ims_dialog_faq.xml @@ -29,7 +29,7 @@ - Why is there a ims_dialog module and a dialog module? + Why is there an ims_dialog module and a dialog module? diff --git a/src/modules/ims_icscf/cxdx_avp.c b/src/modules/ims_icscf/cxdx_avp.c index a63294235..a71611731 100644 --- a/src/modules/ims_icscf/cxdx_avp.c +++ b/src/modules/ims_icscf/cxdx_avp.c @@ -220,7 +220,7 @@ int cxdx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id, } /** - * Creates and adds a Auth-Session-State AVP. + * Creates and adds an Auth-Session-State AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -314,7 +314,7 @@ int cxdx_add_UAR_flags(AAAMessage *msg, unsigned int sos_reg) } /** - * Creates and adds a Authorization-Type AVP. + * Creates and adds an Authorization-Type AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -772,7 +772,7 @@ int cxdx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data, } /** - * Creates and adds a ETSI_sip_authorization AVP. + * Creates and adds an ETSI_sip_authorization AVP. * @param username - UserName * @param realm - Realm * @param nonce - Nonce diff --git a/src/modules/ims_icscf/cxdx_avp.h b/src/modules/ims_icscf/cxdx_avp.h index 6d5c7ec4b..2348dcb0a 100644 --- a/src/modules/ims_icscf/cxdx_avp.h +++ b/src/modules/ims_icscf/cxdx_avp.h @@ -72,7 +72,7 @@ int cxdx_add_destination_realm(AAAMessage *msg, str data); int cxdx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id,unsigned int auth_id,unsigned int acct_id); /** - * Creates and adds a Auth-Session-State AVP. + * Creates and adds an Auth-Session-State AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -112,7 +112,7 @@ int cxdx_add_visited_network_id(AAAMessage *msg,str data); int cxdx_add_UAR_flags(AAAMessage *msg, unsigned int sos_reg); /** - * Creates and adds a Authorization-Type AVP. + * Creates and adds an Authorization-Type AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -203,7 +203,7 @@ int cxdx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data, str *line_identifier); /** - * Creates and adds a ETSI_sip_authorization AVP. + * Creates and adds an ETSI_sip_authorization AVP. * @param username - UserName * @param realm - Realm * @param nonce - Nonce diff --git a/src/modules/ims_isc/checker.c b/src/modules/ims_isc/checker.c index de325687c..3e17333db 100644 --- a/src/modules/ims_isc/checker.c +++ b/src/modules/ims_isc/checker.c @@ -452,7 +452,7 @@ isc_match* isc_checker_find(str uri, char direction, int skip, LM_DBG("isc_checker_find(): got a r_public for the user %.*s\n", uri.len, uri.s); if (!p->s) { - LM_DBG("isc_checker_find() : got an user without a subscription\n"); + LM_DBG("isc_checker_find() : got a user without a subscription\n"); //need to free the record somewhere //isc_ulb.release_impurecord(p); //need to do an unlock on the domain somewhere @@ -557,7 +557,7 @@ isc_match* isc_checker_find(str uri, char direction, int skip, } /** - * Free up all memory taken by a isc_match. + * Free up all memory taken by an isc_match. * @param m - match to deallocate */ void isc_free_match(isc_match *m) { diff --git a/src/modules/ims_qos/README b/src/modules/ims_qos/README index ea7eea5e1..f180c9c8f 100644 --- a/src/modules/ims_qos/README +++ b/src/modules/ims_qos/README @@ -335,7 +335,7 @@ modparam("ims_qos", "video_default_bandwidth", 256) This sets the default Reason, when a call is terminated in early stage due to QoS-failure. - Default value is "QoS released", an call in early stage would be + Default value is "QoS released", a call in early stage would be released with "488 QoS released". Example 1.11. early_qosrelease_reason parameter usage @@ -345,7 +345,7 @@ modparam("ims_qos", "early_qosrelease_reason", "Sorry - QoS failed") 3.12. confirmed_qosrelease_headers (String) - These headers are added to the BYE-Message, when an confirmed call is + These headers are added to the BYE-Message, when a confirmed call is terminated due to a QoS failure. Default value is "", no Extra-Headers @@ -500,7 +500,7 @@ modparam("ims_qos", "rr_default_bandwidth", 2000) 4.1. Rx_AAR_Register(route_block, domain) - Perform a AAR on Diameter RX interface to subscribe to signalling + Perform an AAR on Diameter RX interface to subscribe to signalling status. This purpose of this is tell a Diameter server (typically a PCRF) to inform the requesting Diameter client on changes to the status of signalling bearer for the same framed IP address. For more details @@ -545,7 +545,7 @@ route[REG_AAR_REPLY] 4.2. Rx_AAR(route_block, direction, subscription_id, subscription_id_type) - Perform a AAR on Diameter RX interface to request resource + Perform an AAR on Diameter RX interface to request resource authorisation from a Diameter server (typically a PCRF). For more details see 3GGP TS 29.214. @@ -588,7 +588,7 @@ route[ORIGN_SESSION_AAR_REPLY] 5.1. AAR Timeouts (aar_timeouts) - The number of timeouts on sending a AAR. i.e. no response to AAR. + The number of timeouts on sending an AAR. i.e. no response to AAR. 5.2. Average AAR Response Time (aar_avg_response_time) diff --git a/src/modules/ims_qos/doc/ims_qos_admin.xml b/src/modules/ims_qos/doc/ims_qos_admin.xml index 0ff629e17..168bac813 100644 --- a/src/modules/ims_qos/doc/ims_qos_admin.xml +++ b/src/modules/ims_qos/doc/ims_qos_admin.xml @@ -264,7 +264,7 @@ modparam("ims_qos", "video_default_bandwidth", 256) This sets the default Reason, when a call is terminated in early stage due to QoS-failure. - Default value is "QoS released", an call in early stage + Default value is "QoS released", a call in early stage would be released with "488 QoS released". @@ -281,7 +281,7 @@ modparam("ims_qos", "early_qosrelease_reason", "Sorry - QoS failed")
<varname>confirmed_qosrelease_headers</varname> (String) - These headers are added to the BYE-Message, when an confirmed call + These headers are added to the BYE-Message, when a confirmed call is terminated due to a QoS failure. Default value is "", no Extra-Headers @@ -526,7 +526,7 @@ modparam("ims_qos", "rr_default_bandwidth", 2000) <function moreinfo="none">Rx_AAR_Register(route_block, domain)</function> - Perform a AAR on Diameter RX interface to subscribe to signalling + Perform an AAR on Diameter RX interface to subscribe to signalling status. This purpose of this is tell a Diameter server (typically a PCRF) to inform the requesting Diameter client on changes to the status of signalling bearer for the same framed IP address. For more details @@ -595,7 +595,7 @@ route[REG_AAR_REPLY] <function moreinfo="none">Rx_AAR(route_block, direction, subscription_id, subscription_id_type)</function> - Perform a AAR on Diameter RX interface to request resource + Perform an AAR on Diameter RX interface to request resource authorisation from a Diameter server (typically a PCRF). For more details see 3GGP TS 29.214. @@ -661,7 +661,7 @@ route[ORIGN_SESSION_AAR_REPLY]
AAR Timeouts (aar_timeouts) - The number of timeouts on sending a AAR. i.e. no response to + The number of timeouts on sending an AAR. i.e. no response to AAR.
diff --git a/src/modules/ims_qos/ims_qos_mod.c b/src/modules/ims_qos/ims_qos_mod.c index 8776bbfbb..bcf826685 100644 --- a/src/modules/ims_qos/ims_qos_mod.c +++ b/src/modules/ims_qos/ims_qos_mod.c @@ -675,7 +675,7 @@ uint16_t check_ip_version(str ip) } /* Wrapper to send AAR from config file - this only allows for AAR for calls - not register, which uses r_rx_aar_register - * return: 1 - success, <=0 failure. 2 - message not a AAR generating message (ie proceed without PCC if you wish) + * return: 1 - success, <=0 failure. 2 - message not an AAR generating message (ie proceed without PCC if you wish) */ static int w_rx_aar(struct sip_msg *msg, char *route, char* dir, char *c_id, int id_type) { diff --git a/src/modules/ims_registrar_pcscf/notify.c b/src/modules/ims_registrar_pcscf/notify.c index d8830fd2d..ca5391c7c 100644 --- a/src/modules/ims_registrar_pcscf/notify.c +++ b/src/modules/ims_registrar_pcscf/notify.c @@ -345,7 +345,7 @@ int process_body(struct sip_msg* msg, str notify_body, udomain_t * domain) { LM_DBG("AOR %.*s has reg_state \"%d\"\n", aor.len, aor.s, reg_state); if (reg_state == STATE_TERMINATED) { - //TODO we if there is a IMPU record state here we should delete all contacts associated to it + //TODO we if there is an IMPU record state here we should delete all contacts associated to it //Right now we do it go through all the contacts LM_DBG("AOR %.*s is in state terminated so unsubscribing from reginfo\n", aor.len, aor.s); diff --git a/src/modules/ims_registrar_pcscf/ul_callback.c b/src/modules/ims_registrar_pcscf/ul_callback.c index 57b89da3e..320714f8b 100644 --- a/src/modules/ims_registrar_pcscf/ul_callback.c +++ b/src/modules/ims_registrar_pcscf/ul_callback.c @@ -92,13 +92,13 @@ str* build_reginfo_partial(ppublic_t *impu, struct pcontact* c, int type) { doc = xmlNewDoc(BAD_CAST "1.0"); if (doc == 0) { LM_ERR("Unable to create XML-Doc\n"); - return NULL; + goto error; } root_node = xmlNewNode(NULL, BAD_CAST "reginfo"); if (root_node == 0) { LM_ERR("Unable to create reginfo-XML-Element\n"); - return NULL; + goto error; } /* This is our Root-Element: */ xmlDocSetRootElement(doc, root_node); @@ -157,7 +157,7 @@ str* build_reginfo_partial(ppublic_t *impu, struct pcontact* c, int type) { body = (str*) pkg_malloc(sizeof(str)); if (body == NULL) { LM_ERR("while allocating memory\n"); - return NULL; + goto error; } memset(body, 0, sizeof(str)); diff --git a/src/modules/ims_registrar_scscf/cxdx_avp.c b/src/modules/ims_registrar_scscf/cxdx_avp.c index 88720b863..330f097c9 100644 --- a/src/modules/ims_registrar_scscf/cxdx_avp.c +++ b/src/modules/ims_registrar_scscf/cxdx_avp.c @@ -232,7 +232,7 @@ int cxdx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id, } /** - * Creates and adds a Auth-Session-State AVP. + * Creates and adds an Auth-Session-State AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -326,7 +326,7 @@ int cxdx_add_UAR_flags(AAAMessage *msg, unsigned int sos_reg) } /** - * Creates and adds a Authorization-Type AVP. + * Creates and adds an Authorization-Type AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -802,7 +802,7 @@ int cxdx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data, } /** - * Creates and adds a ETSI_sip_authorization AVP. + * Creates and adds an ETSI_sip_authorization AVP. * @param username - UserName * @param realm - Realm * @param nonce - Nonce diff --git a/src/modules/ims_registrar_scscf/cxdx_avp.h b/src/modules/ims_registrar_scscf/cxdx_avp.h index d38fd78ac..ae03360e0 100644 --- a/src/modules/ims_registrar_scscf/cxdx_avp.h +++ b/src/modules/ims_registrar_scscf/cxdx_avp.h @@ -73,7 +73,7 @@ int cxdx_add_destination_realm(AAAMessage *msg, str data); int cxdx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id,unsigned int auth_id,unsigned int acct_id); /** - * Creates and adds a Auth-Session-State AVP. + * Creates and adds an Auth-Session-State AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -113,7 +113,7 @@ int cxdx_add_visited_network_id(AAAMessage *msg,str data); int cxdx_add_UAR_flags(AAAMessage *msg, unsigned int sos_reg); /** - * Creates and adds a Authorization-Type AVP. + * Creates and adds an Authorization-Type AVP. * @param msg - the Diameter message to add to. * @param data - the value for the AVP payload * @returns 1 on success or 0 on error @@ -204,7 +204,7 @@ int cxdx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data, str *line_identifier); /** - * Creates and adds a ETSI_sip_authorization AVP. + * Creates and adds an ETSI_sip_authorization AVP. * @param username - UserName * @param realm - Realm * @param nonce - Nonce diff --git a/src/modules/ims_registrar_scscf/registrar_notify.c b/src/modules/ims_registrar_scscf/registrar_notify.c index 4dd622343..7b767082c 100644 --- a/src/modules/ims_registrar_scscf/registrar_notify.c +++ b/src/modules/ims_registrar_scscf/registrar_notify.c @@ -1549,7 +1549,7 @@ void create_notifications(udomain_t* _t, impurecord_t* r_passed, ucontact_t* c_p contact_port_ip_match(&c_passed->c, &s->watcher_contact) && alias_port_ip_match(&c_passed->c, &s->watcher_contact) && r_passed->public_identity.len == s->presentity_uri.len && memcmp(s->presentity_uri.s, r_passed->public_identity.s, r_passed->public_identity.len) == 0) { - LM_DBG("This is a UNREGISTER/EXPIRE event for a UE that subscribed to its own state that does not unsubscribe to dereg - therefore no notification\n"); + LM_DBG("This is an UNREGISTER/EXPIRE event for a UE that subscribed to its own state that does not unsubscribe to dereg - therefore no notification\n"); if(r->linked_contacts.numcontacts < 2) { // marking the contact as Notify ready if there aren't other linked contacts to the current impu record diff --git a/src/modules/ims_registrar_scscf/userdata_parser.c b/src/modules/ims_registrar_scscf/userdata_parser.c index 43a5657c5..3a02b2226 100644 --- a/src/modules/ims_registrar_scscf/userdata_parser.c +++ b/src/modules/ims_registrar_scscf/userdata_parser.c @@ -203,7 +203,7 @@ static inline void space_trim_dup(str *dest, char *src) } /** - * Parse a Application Server Extension. + * Parse an Application Server Extension. * @param doc - the XML document * @param node - the current node * @param as - structure to fill @@ -232,7 +232,7 @@ static int parse_application_server_extension(xmlDocPtr doc,xmlNodePtr node,ims_ } /** - * Parse a Application Server. + * Parse an Application Server. * @param doc - the XML document * @param node - the current node * @param as - structure to fill @@ -835,7 +835,7 @@ static int parse_service_profile(xmlDocPtr doc, xmlNodePtr root, ims_service_pro } /** - * Parse a IMS Subscription. + * Parse an IMS Subscription. * @param doc - the XML document * @param root - the current node * @returns the ims_subscription* on success or NULL on error diff --git a/src/modules/ims_usrloc_scscf/contact_hslot.c b/src/modules/ims_usrloc_scscf/contact_hslot.c index 167894a59..f44ae9fd1 100644 --- a/src/modules/ims_usrloc_scscf/contact_hslot.c +++ b/src/modules/ims_usrloc_scscf/contact_hslot.c @@ -177,7 +177,7 @@ void deinit_contact_slot(contact_hslot_t* _s) /*! - * \brief Add an element to an slot's linked list + * \brief Add an element to a slot's linked list * \param _s hash slot * \param _r added record */ diff --git a/src/modules/ims_usrloc_scscf/hslot.c b/src/modules/ims_usrloc_scscf/hslot.c index e4d8cb713..860467ce7 100644 --- a/src/modules/ims_usrloc_scscf/hslot.c +++ b/src/modules/ims_usrloc_scscf/hslot.c @@ -179,7 +179,7 @@ void deinit_slot(hslot_t* _s) /*! - * \brief Add an element to an slot's linked list + * \brief Add an element to a slot's linked list * \param _s hash slot * \param _r added record */ diff --git a/src/modules/ims_usrloc_scscf/hslot_sp.c b/src/modules/ims_usrloc_scscf/hslot_sp.c index 8040f150e..01ae7b5b3 100644 --- a/src/modules/ims_usrloc_scscf/hslot_sp.c +++ b/src/modules/ims_usrloc_scscf/hslot_sp.c @@ -178,7 +178,7 @@ void subs_deinit_slot(hslot_sp_t* _s) /*! - * \brief Add an element to an slot's linked list + * \brief Add an element to a slot's linked list * \param _s hash slot * \param _r added record */ diff --git a/src/modules/ims_usrloc_scscf/udomain.c b/src/modules/ims_usrloc_scscf/udomain.c index 1f2ffadbb..da651c163 100644 --- a/src/modules/ims_usrloc_scscf/udomain.c +++ b/src/modules/ims_usrloc_scscf/udomain.c @@ -611,7 +611,7 @@ error: } /*! - * \brief Obtain a impurecord pointer if the impurecord exists in domain. You should call this function with a lock on the domain + * \brief Obtain an impurecord pointer if the impurecord exists in domain. You should call this function with a lock on the domain * \param _d domain to search the record * \param _aor address of record * \param _r new created record @@ -639,7 +639,7 @@ int get_impurecord_unsafe(udomain_t* _d, str* public_identity, struct impurecord } /*! - * \brief Obtain a impurecord pointer if the impurecord exists in domain. domain must be locked before calling + * \brief Obtain an impurecord pointer if the impurecord exists in domain. domain must be locked before calling * \param _d domain to search the record * \param public_identity address of record * \param _r returned record - null if not found @@ -663,7 +663,7 @@ void release_impurecord(udomain_t* _d, struct impurecord* _r) { } /*! - * \brief Delete a impurecord from domain + * \brief Delete an impurecord from domain * \param _d domain where the record should be deleted * \param _aor address of record - used only if _r in next param is null * \param _r deleted record to delete - if null will use the aor to search (assumed that domain is locked). diff --git a/src/modules/ims_usrloc_scscf/udomain.h b/src/modules/ims_usrloc_scscf/udomain.h index 5ca4c1484..4abc4acdd 100644 --- a/src/modules/ims_usrloc_scscf/udomain.h +++ b/src/modules/ims_usrloc_scscf/udomain.h @@ -185,7 +185,7 @@ int insert_impurecord(struct udomain* _d, str* public_identity, str* private_ide /*! - * \brief Obtain a impurecord pointer if the impurecord exists in domain. You should call this function with a lock on the domain + * \brief Obtain an impurecord pointer if the impurecord exists in domain. You should call this function with a lock on the domain * \param _d domain to search the record * \param _aor address of record * \param _r new created record @@ -194,7 +194,7 @@ int insert_impurecord(struct udomain* _d, str* public_identity, str* private_ide int get_impurecord_unsafe(udomain_t* _d, str* _aor, struct impurecord** _r); /*! - * \brief Obtain a impurecord pointer if the impurecord exists in domain (safe version) + * \brief Obtain an impurecord pointer if the impurecord exists in domain (safe version) * \param _d domain to search the record * \param _aor address of record * \param _r new created record @@ -210,7 +210,7 @@ int get_impurecord(udomain_t* _d, str* _aor, struct impurecord** _r); void release_impurecord(udomain_t* _d, struct impurecord* _r); /*! - * \brief Delete a impurecord from domain + * \brief Delete an impurecord from domain * \param _d domain where the record should be deleted * \param _aor address of record * \param _r deleted record diff --git a/src/modules/kafka/README b/src/modules/kafka/README index 47452c21f..e938de7e8 100644 --- a/src/modules/kafka/README +++ b/src/modules/kafka/README @@ -174,7 +174,7 @@ ue.buffering.max.messages=500000;debug=all;metadata.request.timeout.ms=900000") Each topic property is a list of attribute = value separated by semicolon. - name atribute indicates the topic name. It is mandatory. Other + name attribute indicates the topic name. It is mandatory. Other attributes mean names of properties and are optional. This parameter is optional. Each topic needs a topic parameter so diff --git a/src/modules/kafka/doc/kafka_admin.xml b/src/modules/kafka/doc/kafka_admin.xml index 34ae1cf58..125d65a00 100644 --- a/src/modules/kafka/doc/kafka_admin.xml +++ b/src/modules/kafka/doc/kafka_admin.xml @@ -137,7 +137,7 @@ modparam("kafka", "configuration", "topic.metadata.refresh.interval.ms=20000;que Each topic property is a list of attribute = value separated by semicolon.
- name atribute indicates the topic name. It is mandatory. + name attribute indicates the topic name. It is mandatory. Other attributes mean names of properties and are optional. diff --git a/src/modules/keepalive/keepalive_api.c b/src/modules/keepalive/keepalive_api.c index d68e97e37..e8b1e044b 100644 --- a/src/modules/keepalive/keepalive_api.c +++ b/src/modules/keepalive/keepalive_api.c @@ -224,10 +224,7 @@ int ka_find_destination(str *uri, str *owner, ka_dest_t **target, ka_dest_t **he ka_dest_t *dest=0 ,*temp=0; LM_DBG("finding destination: %.*s\n", uri->len, uri->s); - for(dest = ka_destinations_list->first ;dest; temp=dest, dest= dest->next ){ - if(!dest) - break; - + for(dest = ka_destinations_list->first; dest; temp=dest, dest=dest->next) { if (STR_EQ(*uri, dest->uri) && STR_EQ(*owner, dest->owner)){ *head = temp; *target = dest; @@ -255,10 +252,7 @@ int ka_find_destination_by_uuid(str uuid, ka_dest_t **target, ka_dest_t **head){ LM_DBG("finding destination with uuid:%.*s\n", uuid.len, uuid.s); - for(dest = ka_destinations_list->first ;dest ; temp = dest, dest = dest->next ){ - if(!dest) - break; - + for(dest = ka_destinations_list->first; dest; temp = dest, dest = dest->next) { if (STR_EQ(uuid, dest->uuid)){ *head = temp; *target = dest; diff --git a/src/modules/kex/kex_mod.c b/src/modules/kex/kex_mod.c index 21c4161ac..e46e85b5c 100644 --- a/src/modules/kex/kex_mod.c +++ b/src/modules/kex/kex_mod.c @@ -71,23 +71,23 @@ static pv_export_t mod_pvs[] = { static cmd_export_t cmds[]={ {"setsflag", (cmd_function)w_setsflag, 1,fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"resetsflag", (cmd_function)w_resetsflag, 1,fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"issflagset", (cmd_function)w_issflagset, 1,fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"setbflag", (cmd_function)w_setbflag, 1,fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"setbflag", (cmd_function)w_setbflag, 2,fixup_igp_igp, - 0, ANY_ROUTE }, + fixup_free_igp_igp, ANY_ROUTE }, {"resetbflag", (cmd_function)w_resetbflag, 1,fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"resetbflag", (cmd_function)w_resetbflag, 2,fixup_igp_igp, - 0, ANY_ROUTE }, + fixup_free_igp_igp, ANY_ROUTE }, {"isbflagset", (cmd_function)w_isbflagset, 1,fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"isbflagset", (cmd_function)w_isbflagset, 2,fixup_igp_igp, - 0, ANY_ROUTE }, + fixup_free_igp_igp, ANY_ROUTE }, {"setdsturi", (cmd_function)w_setdsturi, 1, fixup_spve_null, fixup_free_spve_null, ANY_ROUTE }, {"resetdsturi", (cmd_function)w_resetdsturi, 0, 0, @@ -99,9 +99,9 @@ static cmd_export_t cmds[]={ {"avp_printf", (cmd_function)w_pv_printf, 2, pv_printf_fixup, 0, ANY_ROUTE }, {"is_myself", (cmd_function)w_is_myself, 1, fixup_spve_null, - 0, ANY_ROUTE }, + fixup_free_spve_null, ANY_ROUTE }, {"setdebug", (cmd_function)w_setdebug, 1, fixup_igp_null, - 0, ANY_ROUTE }, + fixup_free_igp_null, ANY_ROUTE }, {"resetdebug", (cmd_function)w_resetdebug, 0, 0, 0, ANY_ROUTE }, diff --git a/src/modules/lcr/lcr_mod.c b/src/modules/lcr/lcr_mod.c index 6f5eafdb2..2e33df0ed 100644 --- a/src/modules/lcr/lcr_mod.c +++ b/src/modules/lcr/lcr_mod.c @@ -3228,7 +3228,7 @@ static int from_any_gw_0(struct sip_msg *_m, char *_s1, char *_s2) } /* - * Checks if request comes from ip address of a a gateway taking source + * Checks if request comes from ip address of a gateway taking source * IP address, transport protocol and source port from parameters. */ static int ki_from_any_gw_addr_port(sip_msg_t *_m, str *addr_str, int transport, @@ -3268,7 +3268,7 @@ static int ki_from_any_gw_addr_port(sip_msg_t *_m, str *addr_str, int transport, } /* - * Checks if request comes from ip address of a a gateway taking source + * Checks if request comes from ip address of a gateway taking source * IP address, transport protocol and source port from parameters. */ static int ki_from_any_gw_addr(sip_msg_t *_m, str *addr_str, int transport) diff --git a/src/modules/mangler/sdp_mangler.h b/src/modules/mangler/sdp_mangler.h index 575a34b24..b0e158c50 100644 --- a/src/modules/mangler/sdp_mangler.h +++ b/src/modules/mangler/sdp_mangler.h @@ -76,7 +76,7 @@ int sdp_mangle_port (struct sip_msg *msg, char *offset, char *unused); /* may replace all appearances of an ip in lines like c=IN IP4 ip with a new value for ip if the found ip matches the filter @param msg a pointer to a sip message - @param oldip an filter for ip's in form ip/mask.Example + @param oldip a filter for ip's in form ip/mask.Example of oldip "10.0.0.0/255.0.0.0" or "10.0.0.0/8" @param newip the ip replacing old ip @return negative in case of error or number of replacements - 1 diff --git a/src/modules/matrix/matrix.c b/src/modules/matrix/matrix.c index 54f26aa0f..35fb0ec2b 100644 --- a/src/modules/matrix/matrix.c +++ b/src/modules/matrix/matrix.c @@ -49,7 +49,7 @@ str matrix_db_url = str_init(DEFAULT_RODB_URL); /** - * Generic parameter that holds a string, an int or an pseudo-variable + * Generic parameter that holds a string, an int or a pseudo-variable * @todo replace this with gparam_t */ struct multiparam_t { diff --git a/src/modules/misc_radius/functions.c b/src/modules/misc_radius/functions.c index d01e79f65..6b4ae9f49 100644 --- a/src/modules/misc_radius/functions.c +++ b/src/modules/misc_radius/functions.c @@ -512,8 +512,8 @@ int radius_is_user_in(struct sip_msg *_m, char *_user, char *_group) * Check from Radius if URI, whose user and host parts are given as * arguments, exists. If so, loads AVPs based on reply items returned * from Radius. If use_sip_uri_host module parameter has non-zero value, - * user is send in SA_USER_NAME attribute and host in SA_SIP_URI_HOST - * attribute. If is has zero value, user@host is send in SA_USER_NAME + * user is sent in SA_USER_NAME attribute and host in SA_SIP_URI_HOST + * attribute. If is has zero value, user@host is sent in SA_USER_NAME * attribute. */ int radius_does_uri_user_host_exist(struct sip_msg *_m, str *user, str *host) diff --git a/src/modules/mqtt/README b/src/modules/mqtt/README index 5bcd0aea4..c418567f1 100644 --- a/src/modules/mqtt/README +++ b/src/modules/mqtt/README @@ -437,7 +437,7 @@ mqtt_publish("kamailio/event", "some message", 0); 5.1. mqtt:connected - If defined, the module calls event_route[mqtt:connected] when a + If defined, the module calls event_route[mqtt:connected] when an outgoing broker connection is established. MQTT subscriptions are not durable, so you should use this event route diff --git a/src/modules/mqtt/doc/mqtt_admin.xml b/src/modules/mqtt/doc/mqtt_admin.xml index 90e43b80e..d94f357e8 100644 --- a/src/modules/mqtt/doc/mqtt_admin.xml +++ b/src/modules/mqtt/doc/mqtt_admin.xml @@ -498,7 +498,7 @@ mqtt_publish("kamailio/event", "some message", 0); If defined, the module calls event_route[mqtt:connected] - when a outgoing broker connection is established. + when an outgoing broker connection is established. MQTT subscriptions are not durable, so you should use this diff --git a/src/modules/mqtt/mqtt_dispatch.c b/src/modules/mqtt/mqtt_dispatch.c index a32d8c312..8fbff18a3 100644 --- a/src/modules/mqtt/mqtt_dispatch.c +++ b/src/modules/mqtt/mqtt_dispatch.c @@ -373,7 +373,7 @@ void mqtt_on_message(struct mosquitto *mosquitto, void *userdata, const struct m } /** - * Invoke a event route block + * Invoke an event route block */ int mqtt_run_cfg_route(int rt, str *rtname, sip_msg_t *fake_msg) { diff --git a/src/modules/nat_traversal/README b/src/modules/nat_traversal/README index ded81b606..b722baaab 100644 --- a/src/modules/nat_traversal/README +++ b/src/modules/nat_traversal/README @@ -158,7 +158,7 @@ Chapter 1. Admin Guide cases, including distributed environments with multiple proxies. Unlike existing keepalive solutions that only send keepalive messages to user agents that have registered (during their registration), the - nat_traversal module can keepalive an user agent based on multiple + nat_traversal module can keepalive a user agent based on multiple conditions, making it not only more flexible and more efficient, but also able to work in environments and with use cases where a simple keepalive implementation based on keeping alive registrations alone @@ -198,7 +198,7 @@ Chapter 1. Admin Guide keepalive implementation based on sending keepalive messages only to registered user agents, will also fail to work in common cases, exactly because of this artificial association. For example lets assume that we - have an user agent that is registered. If during an outgoing call + have a user agent that is registered. If during an outgoing call initiated by this user agent, the agent stops registering, then it will not be able to receive further in-dialog messages after the NAT binding expires. The same is true for a presence agent, receiving notifications @@ -284,13 +284,13 @@ Chapter 1. Admin Guide detects from the stateless replies or the TM relayed replies if the NAT endpoint needs to be kept alive for the condition triggered by the request for which the nat_keepalive() function was called. For example - assume a network where a proxy P1 receives a REGISTER from an user - agent behind NAT. P1 will determine that the user agent is behind NAT - so it needs keepalive functionality, but another proxy called P2 is - actually handling the subscriber registrations. In this case P1 has to - call nat_keepalive() even though it doesn't yet know the answer P2 will - give to the REGISTER request (which may even be a negative reply) or if - P2 will restrict the proposed expiration time in any way. Thus P1 calls + assume a network where a proxy P1 receives a REGISTER from a user agent + behind NAT. P1 will determine that the user agent is behind NAT so it + needs keepalive functionality, but another proxy called P2 is actually + handling the subscriber registrations. In this case P1 has to call + nat_keepalive() even though it doesn't yet know the answer P2 will give + to the REGISTER request (which may even be a negative reply) or if P2 + will restrict the proposed expiration time in any way. Thus P1 calls nat_keepalive() after which it calls t_relay(). When the reply from P2 arrives, a callback is triggered which will determine if the request did get a positive reply, and if so it will extract the registration diff --git a/src/modules/nat_traversal/doc/nat_traversal_admin.xml b/src/modules/nat_traversal/doc/nat_traversal_admin.xml index 1143e4a90..3f0393f95 100644 --- a/src/modules/nat_traversal/doc/nat_traversal_admin.xml +++ b/src/modules/nat_traversal/doc/nat_traversal_admin.xml @@ -44,7 +44,7 @@ use cases, including distributed environments with multiple proxies. Unlike existing keepalive solutions that only send keepalive messages to user agents that have registered (during their registration), the - nat_traversal module can keepalive an user agent based on multiple + nat_traversal module can keepalive a user agent based on multiple conditions, making it not only more flexible and more efficient, but also able to work in environments and with use cases where a simple keepalive implementation based on keeping alive registrations alone @@ -87,7 +87,7 @@ user agent to register to be able to do anything, but a simple keepalive implementation based on sending keepalive messages only to registered user agents, will also fail to work in common cases, exactly because of - this artificial association. For example lets assume that we have an + this artificial association. For example lets assume that we have a user agent that is registered. If during an outgoing call initiated by this user agent, the agent stops registering, then it will not be able to receive further in-dialog messages after the NAT binding expires. @@ -199,7 +199,7 @@ NAT endpoint needs to be kept alive for the condition triggered by the request for which the nat_keepalive() function was called. For example assume a network where a proxy P1 receives a REGISTER - from an user agent behind NAT. P1 will determine that the user agent + from a user agent behind NAT. P1 will determine that the user agent is behind NAT so it needs keepalive functionality, but another proxy called P2 is actually handling the subscriber registrations. In this case P1 has to call nat_keepalive() even though it doesn't yet know diff --git a/src/modules/nat_traversal/nat_traversal.c b/src/modules/nat_traversal/nat_traversal.c index 58d1b78c7..c5cf7fa15 100644 --- a/src/modules/nat_traversal/nat_traversal.c +++ b/src/modules/nat_traversal/nat_traversal.c @@ -820,7 +820,7 @@ static bool test_private_via(struct sip_msg *msg) } -// return the Expires header value (converted to an UNIX timestamp if > 0) +// return the Expires header value (converted to a UNIX timestamp if > 0) static int get_expires(struct sip_msg *msg) { exp_body_t *expires; diff --git a/src/modules/nathelper/sip_pinger.h b/src/modules/nathelper/sip_pinger.h index e84ca6c64..78e6467ee 100644 --- a/src/modules/nathelper/sip_pinger.h +++ b/src/modules/nathelper/sip_pinger.h @@ -163,7 +163,7 @@ static inline char *build_sipping(str *curi, struct socket_info *s, str *path, *(p++) = ' '; append_str(p, curi->s, curi->len); append_fix(p, " SIP/2.0" CRLF "Via: SIP/2.0/UDP "); - if(s->address.af == AF_INET6) { /* Via header IP is a IPv6 reference */ + if(s->address.af == AF_INET6) { /* Via header IP is an IPv6 reference */ append_fix(p, "["); } append_str(p, vaddr.s, vaddr.len); diff --git a/src/modules/nats/nats_mod.c b/src/modules/nats/nats_mod.c index 852d0fbba..4adfb56a8 100644 --- a/src/modules/nats/nats_mod.c +++ b/src/modules/nats/nats_mod.c @@ -18,8 +18,6 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * */ #include "defs.h" @@ -35,45 +33,49 @@ nats_consumer_worker_t *nats_workers = NULL; nats_pub_worker_t *nats_pub_workers = NULL; int nats_pub_workers_num = DEFAULT_NUM_PUB_WORKERS; -int _nats_proc_count; +static int _nats_proc_count = 0; char *eventData = NULL; int *nats_pub_worker_pipes_fds = NULL; int *nats_pub_worker_pipes = NULL; static str nats_event_callback = STR_NULL; -static nats_evroutes_t _nats_rts; +static nats_evroutes_t _nats_rts = {0}; +/* clang-format off */ static pv_export_t nats_mod_pvs[] = { - {{"natsData", (sizeof("natsData") - 1)}, PVT_OTHER, + {{"natsData", (sizeof("natsData") - 1)}, PVT_OTHER, nats_pv_get_event_payload, 0, 0, 0, 0, 0}, - {{0, 0}, 0, 0, 0, 0, 0, 0, 0}}; + {{0, 0}, 0, 0, 0, 0, 0, 0, 0} +}; static param_export_t params[] = { - {"nats_url", PARAM_STRING | USE_FUNC_PARAM, (void *)_init_nats_server_url_add}, - {"num_publish_workers", INT_PARAM, &nats_pub_workers_num}, - {"subject_queue_group", PARAM_STRING | USE_FUNC_PARAM, - (void *)_init_nats_sub_add}, - {"event_callback", PARAM_STR, &nats_event_callback}, - {0, 0, 0} + {"nats_url", PARAM_STRING|USE_FUNC_PARAM, (void*)_init_nats_server_url_add}, + {"num_publish_workers", INT_PARAM, &nats_pub_workers_num}, + {"subject_queue_group", PARAM_STRING|USE_FUNC_PARAM, (void*)_init_nats_sub_add}, + {"event_callback", PARAM_STR, &nats_event_callback}, + {0, 0, 0} }; -static cmd_export_t cmds[] = {{"nats_publish", (cmd_function)w_nats_publish_f, - 2, fixup_publish_get_value, - fixup_publish_get_value_free, ANY_ROUTE}, - {0, 0, 0, 0, 0, 0}}; +static cmd_export_t cmds[] = { + {"nats_publish", (cmd_function)w_nats_publish_f, + 2, fixup_publish_get_value, fixup_publish_get_value_free, ANY_ROUTE}, + {0, 0, 0, 0, 0, 0} +}; struct module_exports exports = { - "nats", DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported MI functions */ - nats_mod_pvs, /* exported pseudo-variables */ - 0, /* response function*/ - mod_init, /* module initialization function */ - mod_child_init, /* per-child init function */ - mod_destroy /* destroy function */ + "nats", + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* Exported functions */ + params, /* Exported parameters */ + 0, /* exported MI functions */ + nats_mod_pvs, /* exported pseudo-variables */ + 0, /* response function*/ + mod_init, /* module initialization function */ + mod_child_init, /* per-child init function */ + mod_destroy /* destroy function */ }; +/* clang-format on */ static void onMsg( natsConnection *nc, natsSubscription *sub, natsMsg *msg, void *closure) @@ -549,47 +551,51 @@ int nats_destroy_workers() int i; nats_consumer_worker_t *worker; nats_pub_worker_t *pub_worker; - for(i = 0; i < _nats_proc_count; i++) { - worker = &nats_workers[i]; - if(worker != NULL) { - if(worker->subscription != NULL) { - natsSubscription_Unsubscribe(worker->subscription); - natsSubscription_Destroy(worker->subscription); - } - if(worker->uvLoop != NULL) { - uv_loop_close(worker->uvLoop); - } - if(worker->subject != NULL) { - shm_free(worker->subject); - } - if(worker->queue_group != NULL) { - shm_free(worker->queue_group); - } - if(worker->nc != NULL) { - if(nats_cleanup_connection(worker->nc) < 0) { - LM_ERR("could not cleanup worker connection\n"); + if(nats_workers != NULL) { + for(i = 0; i < _nats_proc_count; i++) { + worker = &nats_workers[i]; + if(worker != NULL) { + if(worker->subscription != NULL) { + natsSubscription_Unsubscribe(worker->subscription); + natsSubscription_Destroy(worker->subscription); } - } - if(worker->on_message != NULL) { - if (worker->on_message->_evname) { - free(worker->on_message->_evname); + if(worker->uvLoop != NULL) { + uv_loop_close(worker->uvLoop); + } + if(worker->subject != NULL) { + shm_free(worker->subject); + } + if(worker->queue_group != NULL) { + shm_free(worker->queue_group); } - shm_free(worker->on_message); + if(worker->nc != NULL) { + if(nats_cleanup_connection(worker->nc) < 0) { + LM_ERR("could not cleanup worker connection\n"); + } + } + if(worker->on_message != NULL) { + if (worker->on_message->_evname) { + free(worker->on_message->_evname); + } + shm_free(worker->on_message); + } + shm_free(worker); } - shm_free(worker); } } - for(i = 0; i < nats_pub_workers_num; i++) { - pub_worker = &nats_pub_workers[i]; - if(pub_worker != NULL) { - if(pub_worker->nc != NULL) { - if(nats_cleanup_connection(pub_worker->nc) < 0) { - LM_ERR("could not cleanup worker connection\n"); + if(nats_pub_workers != NULL) { + for(i = 0; i < nats_pub_workers_num; i++) { + pub_worker = &nats_pub_workers[i]; + if(pub_worker != NULL) { + if(pub_worker->nc != NULL) { + if(nats_cleanup_connection(pub_worker->nc) < 0) { + LM_ERR("could not cleanup worker connection\n"); + } } + uv_poll_stop(&pub_worker->poll); + shm_free(pub_worker); } - uv_poll_stop(&pub_worker->poll); - shm_free(pub_worker); } } return 0; @@ -664,7 +670,7 @@ int _init_nats_sub_add(modparam_t type, void *val) } /** - * Invoke a event route block + * Invoke an event route block */ int nats_run_cfg_route(int rt, str *evname) { diff --git a/src/modules/ndb_cassandra/README b/src/modules/ndb_cassandra/README index 3cc451ced..b9a5577e4 100644 --- a/src/modules/ndb_cassandra/README +++ b/src/modules/ndb_cassandra/README @@ -124,7 +124,7 @@ modparam("ndb_cassandra", "port", 9160) keyspace. There must be an existing keyspace called 'keyspace' with a column_family called 'column_family' in the targeted Cassandra node. - value will be returned as well as a integer return code. + value will be returned as well as an integer return code. Return integer needs to be checked: * ret < 0, error diff --git a/src/modules/ndb_cassandra/doc/ndb_cassandra_admin.xml b/src/modules/ndb_cassandra/doc/ndb_cassandra_admin.xml index dc005b478..94bcfdc3d 100644 --- a/src/modules/ndb_cassandra/doc/ndb_cassandra_admin.xml +++ b/src/modules/ndb_cassandra/doc/ndb_cassandra_admin.xml @@ -113,7 +113,7 @@ modparam("ndb_cassandra", "port", 9160) called 'column_family' in the targeted Cassandra node. - value will be returned as well as a integer return code. + value will be returned as well as an integer return code. Return integer needs to be checked: diff --git a/src/modules/osp/README b/src/modules/osp/README index cb1708827..761982829 100644 --- a/src/modules/osp/README +++ b/src/modules/osp/README @@ -556,7 +556,7 @@ if (prepareallosproute()) { message contains an OSP cookie, the function will forward originating and/or terminating duration usage information to a peering server. The function returns TRUE if the BYE includes an OSP cookie. The actual - usage message will be send on a different thread and will not delay BYE + usage message will be sent on a different thread and will not delay BYE processing. The function should be called before relaying the message. Meaning of the parameter is as follows: diff --git a/src/modules/osp/doc/osp_admin.xml b/src/modules/osp/doc/osp_admin.xml index 8b5e6c0d8..4f6d8bd5e 100644 --- a/src/modules/osp/doc/osp_admin.xml +++ b/src/modules/osp/doc/osp_admin.xml @@ -370,7 +370,7 @@ if (prepareallosproute()) {
<function moreinfo="none">reportospusage()</function> - This function should be called after receiving a BYE message. If the message contains an OSP cookie, the function will forward originating and/or terminating duration usage information to a peering server. The function returns TRUE if the BYE includes an OSP cookie. The actual usage message will be send on a different thread and will not delay BYE processing. The function should be called before relaying the message. + This function should be called after receiving a BYE message. If the message contains an OSP cookie, the function will forward originating and/or terminating duration usage information to a peering server. The function returns TRUE if the BYE includes an OSP cookie. The actual usage message will be sent on a different thread and will not delay BYE processing. The function should be called before relaying the message. Meaning of the parameter is as follows: diff --git a/src/modules/p_usrloc/README b/src/modules/p_usrloc/README index 8acd47b61..bf2054a03 100644 --- a/src/modules/p_usrloc/README +++ b/src/modules/p_usrloc/README @@ -514,11 +514,11 @@ modparam("p_usrloc", "db_use_transactions", "0") activate transaction the db_use_transactions parameter must be also set. - Default value is “READ UNCOMMITED”. + Default value is “READ UNCOMMITTED”. Example 1.17. Set db_transaction_level parameter ... -modparam("p_usrloc", "db_transaction_level", "READ UNCOMMITED") +modparam("p_usrloc", "db_transaction_level", "READ UNCOMMITTED") ... 3.18. write_on_master_db (int) diff --git a/src/modules/p_usrloc/doc/p_usrloc_admin.xml b/src/modules/p_usrloc/doc/p_usrloc_admin.xml index ca8faa827..cab0c3878 100644 --- a/src/modules/p_usrloc/doc/p_usrloc_admin.xml +++ b/src/modules/p_usrloc/doc/p_usrloc_admin.xml @@ -472,14 +472,14 @@ modparam("p_usrloc", "db_use_transactions", "0") - Default value is READ UNCOMMITED. + Default value is READ UNCOMMITTED. Set <varname>db_transaction_level</varname> parameter ... -modparam("p_usrloc", "db_transaction_level", "READ UNCOMMITED") +modparam("p_usrloc", "db_transaction_level", "READ UNCOMMITTED") ... diff --git a/src/modules/p_usrloc/hslot.c b/src/modules/p_usrloc/hslot.c index 592ec7e51..909610cfc 100644 --- a/src/modules/p_usrloc/hslot.c +++ b/src/modules/p_usrloc/hslot.c @@ -161,7 +161,7 @@ void deinit_slot(hslot_t* _s) /*! - * \brief Add an element to an slot's linked list + * \brief Add an element to a slot's linked list * \param _s hash slot * \param _r added record */ diff --git a/src/modules/p_usrloc/p_usrloc_mod.c b/src/modules/p_usrloc/p_usrloc_mod.c index 89d053d27..0a82b7383 100644 --- a/src/modules/p_usrloc/p_usrloc_mod.c +++ b/src/modules/p_usrloc/p_usrloc_mod.c @@ -35,7 +35,7 @@ * The module keeps a user location table and provides access * to the table to other modules. The module exports no functions * that could be used directly from scripts, all access is done - * over a API. A main user of this API is the registrar module. + * over an API. A main user of this API is the registrar module. * \see registrar */ diff --git a/src/modules/p_usrloc/p_usrloc_mod.h b/src/modules/p_usrloc/p_usrloc_mod.h index bfdcc2f45..800a71851 100644 --- a/src/modules/p_usrloc/p_usrloc_mod.h +++ b/src/modules/p_usrloc/p_usrloc_mod.h @@ -61,7 +61,7 @@ #define DB_RETRY 10 #define DB_DEFAULT_POLICY 0 #define DEFAULT_FAILOVER_LEVEL 1 -#define DB_DEFAULT_TRANSACTION_LEVEL "READ UNCOMMITED" +#define DB_DEFAULT_TRANSACTION_LEVEL "READ UNCOMMITTED" #define DB_DEFAULT_CONNECTION_EXPIRES 300 #define DEFAULT_DB_TYPE "single" #define DEFAULT_DOMAIN_DB "location=cluster,cfa=single" diff --git a/src/modules/p_usrloc/ucontact.c b/src/modules/p_usrloc/ucontact.c index 4c81541e2..8a888bb5a 100644 --- a/src/modules/p_usrloc/ucontact.c +++ b/src/modules/p_usrloc/ucontact.c @@ -1467,7 +1467,7 @@ int update_ucontact(struct urecord* _r, ucontact_t* _c, ucontact_info_t* _ci) /* * prevent problems when we're in a failover situation: the first DB contains * the complete location entries, the other misses some of them. Before the - * update it checks for a entry in the first DB, this is ok. But the update + * update it checks for an entry in the first DB, this is ok. But the update * in the second DB will not work. Thus the expire mechanism don't work, it * takes too long until both DBs have the same number of entries again. */ diff --git a/src/modules/p_usrloc/ul_mi.c b/src/modules/p_usrloc/ul_mi.c index 267c9eb8e..999d6ee41 100644 --- a/src/modules/p_usrloc/ul_mi.c +++ b/src/modules/p_usrloc/ul_mi.c @@ -99,7 +99,7 @@ static inline int mi_fix_aor(str *aor) /*! - * \brief Add a node for a address of record + * \brief Add a node for an address of record * \param parent parent node * \param r printed record * \param t actual time @@ -263,7 +263,7 @@ static inline int mi_add_aor_node(struct mi_node *parent, urecord_t* r, time_t t /*************************** MI functions *****************************/ /*! - * \brief Delete a address of record including its contacts + * \brief Delete an address of record including its contacts * \param cmd mi_root containing the parameter * \param param not used * \note expects 2 nodes: the table name and the AOR diff --git a/src/modules/pdb/pdb.c b/src/modules/pdb/pdb.c index 5fb1204e5..8530bbfa9 100644 --- a/src/modules/pdb/pdb.c +++ b/src/modules/pdb/pdb.c @@ -50,7 +50,7 @@ static uint16_t *global_id = NULL; /*! - * Generic parameter that holds a string, an int or an pseudo-variable + * Generic parameter that holds a string, an int or a pseudo-variable * @todo replace this with gparam_t */ struct multiparam_t { diff --git a/src/modules/pdt/README b/src/modules/pdt/README index 38a9cfed8..569ababf5 100644 --- a/src/modules/pdt/README +++ b/src/modules/pdt/README @@ -291,7 +291,7 @@ modparam("pdt", "check_domain", 0) it does not match the prefix parameter or there is no domain associated with a possible prefix from user part). Returns -1 in error cases. - The translation is done based on lookup up for a entry in the database + The translation is done based on lookup up for an entry in the database where the sdomain equals the domain in FROM uri, and the prefix matches the beginning of the user part of the RURI. If such an entry is found, then the domain in RURI is updated with the domain of this entry diff --git a/src/modules/pdt/doc/pdt_admin.xml b/src/modules/pdt/doc/pdt_admin.xml index e504d3929..f49f95157 100644 --- a/src/modules/pdt/doc/pdt_admin.xml +++ b/src/modules/pdt/doc/pdt_admin.xml @@ -319,7 +319,7 @@ modparam("pdt", "check_domain", 0) Returns -1 in error cases. - The translation is done based on lookup up for a entry in the database + The translation is done based on lookup up for an entry in the database where the sdomain equals the domain in FROM uri, and the prefix matches the beginning of the user part of the RURI. If such an entry is found, then the domain in RURI is updated with the domain of this entry diff --git a/src/modules/peering/README b/src/modules/peering/README index 0409021be..d3a2435b1 100644 --- a/src/modules/peering/README +++ b/src/modules/peering/README @@ -170,7 +170,7 @@ modparam("peering", "verify_source_service_type", 22) [#]name(:|#)value - Value of each SIP-AVP reply attribute is mapped to an Kamailio AVP. + Value of each SIP-AVP reply attribute is mapped to a Kamailio AVP. Prefix # in front of name or value indicates a string name or string value, respectively. @@ -211,7 +211,7 @@ if (verify_destination()) { [#]name(:|#)value - Value of each SIP-AVP reply attribute is mapped to an Kamailio AVP. + Value of each SIP-AVP reply attribute is mapped to a Kamailio AVP. Prefix # in front of name or value indicates a string name or string value, respectively. diff --git a/src/modules/peering/doc/peering_admin.xml b/src/modules/peering/doc/peering_admin.xml index 45be1aaf5..ca8e24412 100644 --- a/src/modules/peering/doc/peering_admin.xml +++ b/src/modules/peering/doc/peering_admin.xml @@ -176,7 +176,7 @@ modparam("peering", "verify_source_service_type", 22) [#]name(:|#)value - Value of each SIP-AVP reply attribute is mapped to an + Value of each SIP-AVP reply attribute is mapped to a &kamailio; AVP. Prefix # in front of name or value indicates a string name or string value, respectively. @@ -248,7 +248,7 @@ if (verify_destination()) { [#]name(:|#)value - Value of each SIP-AVP reply attribute is mapped to an + Value of each SIP-AVP reply attribute is mapped to a &kamailio; AVP. Prefix # in front of name or value indicates a string name or string value, respectively. diff --git a/src/modules/permissions/README b/src/modules/permissions/README index 431a6b513..6412d980b 100644 --- a/src/modules/permissions/README +++ b/src/modules/permissions/README @@ -275,8 +275,8 @@ Chapter 1. Admin Guide created. Instead of the From header field the function uses the To header field - because th To header field in REGISTER messages contains the URI of the - person being registered. Instead of the Request-URI of branches the + because the To header field in REGISTER messages contains the URI of + the person being registered. Instead of the Request-URI of branches the function uses the Contact header field. Thus, the pairs used in matching will look like this: (To, Contact 1), diff --git a/src/modules/permissions/doc/permissions_admin.xml b/src/modules/permissions/doc/permissions_admin.xml index 2c55f246c..20d751888 100644 --- a/src/modules/permissions/doc/permissions_admin.xml +++ b/src/modules/permissions/doc/permissions_admin.xml @@ -124,7 +124,7 @@ Instead of the From header field the function uses the To header field because - th To header field in REGISTER messages contains the URI of the person + the To header field in REGISTER messages contains the URI of the person being registered. Instead of the Request-URI of branches the function uses the Contact header field. diff --git a/src/modules/permissions/hash.c b/src/modules/permissions/hash.c index 40dd460c6..b467d2c9a 100644 --- a/src/modules/permissions/hash.c +++ b/src/modules/permissions/hash.c @@ -939,7 +939,7 @@ int match_domain_name_table(struct domain_name_list** table, unsigned int group, /* - * Check if an domain_name/port entry exists in hash table in any group. + * Check if a domain_name/port entry exists in hash table in any group. * Returns first group in which ip_addr/port is found. * Port 0 in hash table matches any port. */ diff --git a/src/modules/permissions/hash.h b/src/modules/permissions/hash.h index e50629ba9..b24cdd38f 100644 --- a/src/modules/permissions/hash.h +++ b/src/modules/permissions/hash.h @@ -272,7 +272,7 @@ int domain_name_table_insert(struct domain_name_list** table, unsigned int grp, str *domain_name, unsigned int port, str *tagv); /* - * Check if an domain_name/port entry exists in hash table in any group. + * Check if a domain_name/port entry exists in hash table in any group. * Returns first group in which ip_addr/port is found. * Port 0 in hash table matches any port. */ diff --git a/src/modules/pike/ip_tree.c b/src/modules/pike/ip_tree.c index 12e03055b..a54351ade 100644 --- a/src/modules/pike/ip_tree.c +++ b/src/modules/pike/ip_tree.c @@ -356,7 +356,7 @@ pike_ip_node_t* mark_node(unsigned char *ip,int ip_len, -/* remove and destroy a IP node along with its subtree */ +/* remove and destroy an IP node along with its subtree */ void remove_node(pike_ip_node_t *node) { LM_DBG("destroying node %p\n",node); diff --git a/src/modules/presence/README b/src/modules/presence/README index 9e378a568..775d3b26a 100644 --- a/src/modules/presence/README +++ b/src/modules/presence/README @@ -543,7 +543,8 @@ modparam("presence", "min_expires", 1800) 3.16. min_expires_action (int) - The action to take when UA sends a expires value less then min_expires. + The action to take when UA sends an expires value less then + min_expires. Possible Values * 1 : RFC Compliant, returns “423 Interval Too Brief” @@ -665,7 +666,7 @@ modparam("presence", "pres_htable_size", 11) This parameter enables or disables the sending of an initial empty NOTIFY after a SUBSCRIBE/reSUBSCRIBE. This caused problems for MWI application, because some CPEs (like Samsung) fail to understand an - empty NOTIFY to an message-summary event. This parameter is enabled by + empty NOTIFY to a message-summary event. This parameter is enabled by default, thus adhering to the standard. Default value is “1 ”. @@ -718,7 +719,7 @@ modparam("presence", "fetch_rows", 1000) 3.26. db_table_lock_type (integer) - Enable (=1) or disable (=0) the Locks for table during an transaction. + Enable (=1) or disable (=0) the Locks for table during a transaction. Locking only the "current" table causes problems with a MySQL-Databases in "DB-Only" mode. diff --git a/src/modules/presence/doc/presence_admin.xml b/src/modules/presence/doc/presence_admin.xml index 7e425105a..8120dbdce 100644 --- a/src/modules/presence/doc/presence_admin.xml +++ b/src/modules/presence/doc/presence_admin.xml @@ -412,7 +412,7 @@ modparam("presence", "min_expires", 1800)
<varname>min_expires_action</varname> (int) - The action to take when UA sends a expires value less then min_expires. + The action to take when UA sends an expires value less then min_expires. @@ -604,7 +604,7 @@ modparam("presence", "pres_htable_size", 11) This parameter enables or disables the sending of an initial empty NOTIFY after a SUBSCRIBE/reSUBSCRIBE. This caused problems for MWI application, because some CPEs (like Samsung) fail to understand an empty - NOTIFY to an message-summary event. This parameter is enabled by default, thus adhering to the standard. + NOTIFY to a message-summary event. This parameter is enabled by default, thus adhering to the standard. Default value is 1 . @@ -688,7 +688,7 @@ modparam("presence", "fetch_rows", 1000)
<varname>db_table_lock_type</varname> (integer) - Enable (=1) or disable (=0) the Locks for table during an + Enable (=1) or disable (=0) the Locks for table during a transaction. Locking only the "current" table causes problems with a MySQL-Databases in "DB-Only" mode. diff --git a/src/modules/presence_dialoginfo/notify_body.c b/src/modules/presence_dialoginfo/notify_body.c index 29b39b13e..f2e1e1dac 100644 --- a/src/modules/presence_dialoginfo/notify_body.c +++ b/src/modules/presence_dialoginfo/notify_body.c @@ -255,7 +255,7 @@ str* agregate_xmls(str* pres_user, str* pres_domain, str** body_array, int n) * replaced by the correct value in the aux_body_processing callback. * Thus we have CPU intensive XML aggregation only once and can use * quick search&replace in the per-watcher aux_body_processing callback. - * We use 11 chracters as an signed int (although RFC says unsigned int we + * We use 11 chracters as a signed int (although RFC says unsigned int we * use signed int as presence module stores "version" in DB as * signed int) has max. 10 characters + 1 character for the sign */ diff --git a/src/modules/pua/README b/src/modules/pua/README index 307931264..fb5a594fb 100644 --- a/src/modules/pua/README +++ b/src/modules/pua/README @@ -308,7 +308,7 @@ modparam("pua", "db_mode", 0) 3.11. db_table_lock_write (integer) - Enable (=1) or disable (=0) the Locks for table during an transaction. + Enable (=1) or disable (=0) the Locks for table during a transaction. Locking only the "current" table causes problems with a MySQL-Databases in "DB-Only" mode. diff --git a/src/modules/pua/doc/pua_admin.xml b/src/modules/pua/doc/pua_admin.xml index c4d6ab7c2..417dd9a11 100644 --- a/src/modules/pua/doc/pua_admin.xml +++ b/src/modules/pua/doc/pua_admin.xml @@ -288,7 +288,7 @@ modparam("pua", "db_mode", 0)
<varname>db_table_lock_write</varname> (integer) - Enable (=1) or disable (=0) the Locks for table during an transaction. + Enable (=1) or disable (=0) the Locks for table during a transaction. Locking only the "current" table causes problems with a MySQL-Databases in "DB-Only" mode. diff --git a/src/modules/pua_dialoginfo/README b/src/modules/pua_dialoginfo/README index 8fd7823ec..4ff24d9cb 100644 --- a/src/modules/pua_dialoginfo/README +++ b/src/modules/pua_dialoginfo/README @@ -141,7 +141,7 @@ Chapter 1. Admin Guide The module is based on code (copy/paste) from pua_usrloc and nat_traversal module. - Following you will show some examples of an dialog-info XML document + Following you will show some examples of a dialog-info XML document taken from RFC 4235. This will help you to understand the meaning of the module parameters: diff --git a/src/modules/pua_dialoginfo/doc/pua_dialoginfo_admin.xml b/src/modules/pua_dialoginfo/doc/pua_dialoginfo_admin.xml index 191ee5f4e..cfc0fc74a 100644 --- a/src/modules/pua_dialoginfo/doc/pua_dialoginfo_admin.xml +++ b/src/modules/pua_dialoginfo/doc/pua_dialoginfo_admin.xml @@ -33,7 +33,7 @@ module. - Following you will show some examples of an dialog-info XML document taken + Following you will show some examples of a dialog-info XML document taken from RFC 4235. This will help you to understand the meaning of the module parameters: diff --git a/src/modules/pv/README b/src/modules/pv/README index 89831dca0..4d8661332 100644 --- a/src/modules/pv/README +++ b/src/modules/pv/README @@ -433,7 +433,7 @@ xinfo("AFTER $xavp(d[2]=>x) == [d-2-x] $xavp(d[2]=>y) == [d-2-y]\n"); 4.8. xavp_params_explode(sparams, xname) - Convert a parameters string in xavp atributes. + Convert a parameters string in xavp attributes. The first parameter has to be a string in the format of SIP header parameters (name1=value1;...;nameN=valueN). The second parameter is the @@ -477,7 +477,7 @@ xavp_params_implode("x", "$var(out)"); 4.10. xavu_params_explode(sparams, xname) - Convert a parameters string in xavu atributes. + Convert a parameters string in xavu attributes. The first parameter has to be a string in the format of SIP header parameters (name1=value1;...;nameN=valueN). The second parameter is the diff --git a/src/modules/pv/doc/pv_admin.xml b/src/modules/pv/doc/pv_admin.xml index dca939282..72c32dce7 100644 --- a/src/modules/pv/doc/pv_admin.xml +++ b/src/modules/pv/doc/pv_admin.xml @@ -365,7 +365,7 @@ xinfo("AFTER $xavp(d[2]=>x) == [d-2-x] $xavp(d[2]=>y) == [d-2-y]\n"); xavp_params_explode(sparams, xname) - Convert a parameters string in xavp atributes. + Convert a parameters string in xavp attributes. The first parameter has to be a string in the format of SIP header @@ -430,7 +430,7 @@ xavp_params_implode("x", "$var(out)"); xavu_params_explode(sparams, xname) - Convert a parameters string in xavu atributes. + Convert a parameters string in xavu attributes. The first parameter has to be a string in the format of SIP header diff --git a/src/modules/pv/pv_core.c b/src/modules/pv/pv_core.c index 2441b4932..3471a5aa1 100644 --- a/src/modules/pv/pv_core.c +++ b/src/modules/pv/pv_core.c @@ -2287,6 +2287,7 @@ int pv_get_hfl(sip_msg_t *msg, pv_param_t *param, pv_value_t *res) return pv_get_null(msg, param, res); } + res->flags = PV_VAL_STR; if((tv.flags == 0) && (tv.ri==HDR_VIA_T)) { if(msg->h_via1==NULL) { LM_WARN("no Via header\n"); @@ -2449,11 +2450,16 @@ int pv_get_hfl(sip_msg_t *msg, pv_param_t *param, pv_value_t *res) } if(idx==0) { cb = ((contact_body_t*)msg->contact->parsed)->contacts; - sval.s = cb->name.s; - sval.len = cb->len; - trim(&sval); - res->rs = sval; - return 0; + if(cb!=NULL) { + sval.s = cb->name.s; + sval.len = cb->len; + trim(&sval); + res->rs = sval; + return 0; + } else { + LM_DBG("no contact addresses\n"); + return pv_get_null(msg, param, res); + } } n=0; for(hf=msg->contact; hf!=NULL; hf=hf->next) { diff --git a/src/modules/pv_headers/pv_headers.c b/src/modules/pv_headers/pv_headers.c index e555e0265..3648335b9 100644 --- a/src/modules/pv_headers/pv_headers.c +++ b/src/modules/pv_headers/pv_headers.c @@ -65,6 +65,7 @@ static void mod_destroy(void); static int mod_init(void); static void handle_tm_t(tm_cell_t *t, int type, struct tmcb_params *params); +static int handle_msg_failed_cb(struct sip_msg *msg, unsigned int flags, void *cb); static int handle_msg_cb(struct sip_msg *msg, unsigned int flags, void *cb); static int handle_msg_branch_cb( struct sip_msg *msg, unsigned int flags, void *cb); @@ -385,6 +386,12 @@ int mod_init(void) LM_ERR("cannot register PRE_SCRIPT_CB ONREPLY_CB callbacks\n"); return -1; } + if(register_script_cb( + handle_msg_failed_cb, PRE_SCRIPT_CB | FAILURE_CB, 0) + < 0) { + LM_ERR("cannot register PRE_SCRIPT_CB FAILURE_CB callbacks\n"); + return -1; + } } pvh_str_hash_init(&skip_headers, &skip_headers_param, "skip_headers"); @@ -462,6 +469,29 @@ static inline char *tm_type_to_string(int type) return "UNKNOWN"; } +static inline void print_cb_flags(unsigned int flags) +{ + LM_DBG("flags:"); + if(flags & REQUEST_CB) + LM_DBG("REQUEST_CB"); + if(flags & FAILURE_CB) + LM_DBG("FAILURE_CB"); + if(flags & ONREPLY_CB) + LM_DBG("ONREPLY_CB"); + if(flags & BRANCH_CB) + LM_DBG("BRANCH_CB"); + if(flags & ONSEND_CB) + LM_DBG("ONSEND_CB"); + if(flags & ERROR_CB) + LM_DBG("ERROR_CB"); + if(flags & LOCAL_CB) + LM_DBG("LOCAL_CB"); + if(flags & EVENT_CB) + LM_DBG("EVENT_CB"); + if(flags & BRANCH_FAILURE_CB) + LM_DBG("BRANCH_FAILURE_CB"); +} + void handle_tm_t(tm_cell_t *t, int type, struct tmcb_params *params) { struct sip_msg *msg = NULL; @@ -491,11 +521,25 @@ void handle_tm_t(tm_cell_t *t, int type, struct tmcb_params *params) return; } +int handle_msg_failed_cb(struct sip_msg *msg, unsigned int flags, void *cb) +{ + print_cb_flags(flags); + + if(pvh_parse_msg(msg) != 0) + return 1; + + _branch = 0; + LM_DBG("msg:%p set branch:%d\n", msg, _branch); + return 1; +} + static int msg_cbs = TMCB_REQUEST_FWDED | TMCB_RESPONSE_FWDED | TMCB_ON_BRANCH_FAILURE; int handle_msg_cb(struct sip_msg *msg, unsigned int flags, void *cb) { + print_cb_flags(flags); + if(pvh_parse_msg(msg) != 0) return 1; @@ -514,6 +558,7 @@ int handle_msg_branch_cb(struct sip_msg *msg, unsigned int flags, void *cb) { LM_DBG("msg:%p previous branch:%d\n", msg, _branch); + print_cb_flags(flags); if(flags & PRE_SCRIPT_CB) { pvh_get_branch_index(msg, &_branch); @@ -532,7 +577,11 @@ int handle_msg_reply_cb(struct sip_msg *msg, unsigned int flags, void *cb) if(pvh_parse_msg(msg) != 0) return 1; + if(msg == FAKED_REPLY) { + LM_DBG("FAKED_REPLY\n"); + } LM_DBG("msg:%p previous branch:%d\n", msg, _branch); + print_cb_flags(flags); if(tmb.t_check(msg, &_branch) == -1) { LM_ERR("failed find UAC branch\n"); diff --git a/src/modules/rabbitmq/README b/src/modules/rabbitmq/README index 136f35dd7..942afffa8 100644 --- a/src/modules/rabbitmq/README +++ b/src/modules/rabbitmq/README @@ -76,7 +76,7 @@ Chapter 1. Admin Guide This module offers amqp communication using librabbitmq. This module was created using rabbitmq-c C client - (https://github.com/alanxz/rabbitmq-c). An new amqp connection is setup + (https://github.com/alanxz/rabbitmq-c). A new amqp connection is setup on a per-children basis, when Kamailio starts. If connection is lost, the process tries to re-establish it when a new amqp action is required. diff --git a/src/modules/rabbitmq/doc/rabbitmq_admin.xml b/src/modules/rabbitmq/doc/rabbitmq_admin.xml index c54b0475c..18bd46760 100644 --- a/src/modules/rabbitmq/doc/rabbitmq_admin.xml +++ b/src/modules/rabbitmq/doc/rabbitmq_admin.xml @@ -20,7 +20,7 @@ This module offers amqp communication using librabbitmq. This module was created using rabbitmq-c C client (https://github.com/alanxz/rabbitmq-c). - An new amqp connection is setup on a per-children basis, when Kamailio starts. + A new amqp connection is setup on a per-children basis, when Kamailio starts. If connection is lost, the process tries to re-establish it when a new amqp action is required. diff --git a/src/modules/ratelimit/README b/src/modules/ratelimit/README index 4862e717f..210b7692d 100644 --- a/src/modules/ratelimit/README +++ b/src/modules/ratelimit/README @@ -135,7 +135,7 @@ Chapter 1. Admin Guide Limiting the rate messages are processed on a system directly influences the load. The ratelimit module can be used to protect a - single host or to protect an Kamailio cluster when run on the + single host or to protect a Kamailio cluster when run on the dispatching box in front. A sample configuration snippet might look like this: diff --git a/src/modules/ratelimit/doc/ratelimit_admin.xml b/src/modules/ratelimit/doc/ratelimit_admin.xml index 02be16267..a52eddd70 100644 --- a/src/modules/ratelimit/doc/ratelimit_admin.xml +++ b/src/modules/ratelimit/doc/ratelimit_admin.xml @@ -38,7 +38,7 @@ Limiting the rate messages are processed on a system directly influences the load. The ratelimit module can be used to protect a - single host or to protect an &kamailio; cluster when run on the dispatching + single host or to protect a &kamailio; cluster when run on the dispatching box in front. diff --git a/src/modules/registrar/README b/src/modules/registrar/README index 7643dfee4..d40de5780 100644 --- a/src/modules/registrar/README +++ b/src/modules/registrar/README @@ -1115,7 +1115,7 @@ lookup_branches("location"); 4.5. registered(domain [, uri [, match_option [, match_action]]]) The function returns true if the AOR in the URI is registered, false - otherwise. The function does not modify the message being process, it + otherwise. The function does not modify the message being processed, it neither rewrites the Request-URI if a contact is found nor append branches. If uri parameter is not provided, then it considered to be the Request-URI for SIP requests and To-URI for SIP replies. @@ -1185,7 +1185,7 @@ add_sock_hdr("Sock-Info"); * uri - The SIP URI address of the user which to remove the contact addresses for. It can contain pseudo-variables that are evaluated at runtime. - * ruid - The record unique ID for a a specific contact to be removed. + * ruid - The record unique ID for a specific contact to be removed. It can contain pseudo-variables that are evaluated at runtime. This function can be used from ANY_ROUTE. diff --git a/src/modules/registrar/doc/registrar_admin.xml b/src/modules/registrar/doc/registrar_admin.xml index 50ba66f38..8f15084af 100644 --- a/src/modules/registrar/doc/registrar_admin.xml +++ b/src/modules/registrar/doc/registrar_admin.xml @@ -1457,7 +1457,7 @@ lookup_branches("location"); The function returns true if the AOR in the URI is registered, false otherwise. The function does not modify the - message being process, it neither rewrites the Request-URI if a + message being processed, it neither rewrites the Request-URI if a contact is found nor append branches. If uri parameter is not provided, then it considered to be the Request-URI for SIP requests and To-URI for SIP replies. @@ -1596,7 +1596,7 @@ add_sock_hdr("Sock-Info"); ruid - The record unique ID for a - a specific contact to be removed. It can contain + specific contact to be removed. It can contain pseudo-variables that are evaluated at runtime. diff --git a/src/modules/rls/notify.c b/src/modules/rls/notify.c index 55a701903..743c50f93 100644 --- a/src/modules/rls/notify.c +++ b/src/modules/rls/notify.c @@ -503,7 +503,7 @@ int add_resource_instance(char* uri, xmlNodePtr resource_node, } } - /* if record not found should not add a instance node */ + /* if record not found should not add an instance node */ return 0; error: return -1; @@ -571,7 +571,7 @@ error: int create_empty_rlmi_doc(xmlDocPtr *rlmi_doc, xmlNodePtr *list_node, str *uri, int version, int full_state) { - /* length is an pessimitic estimate of the size of an empty document + /* length is a pessimitic estimate of the size of an empty document * We calculate it once for performance reasons. * We add in the uri length each time as this varies, and it is cheap to add */ static int length = 0; diff --git a/src/modules/rr/README b/src/modules/rr/README index 0f6cd7fd3..bbb9d7b4e 100644 --- a/src/modules/rr/README +++ b/src/modules/rr/README @@ -152,13 +152,13 @@ Chapter 1. Admin Guide 1. Overview - The module contains record routing logic + The module contains record routing logic. 2. Dialog support Kamailio is basically only a transaction stateful proxy, without any dialog support build in. There are many features/services which - actually requires a dialog awareness, like storing the information in + actually require a dialog awareness, like storing the information in the dialog creation stage, information which will be used during the whole dialog existence. @@ -327,7 +327,7 @@ modparam("rr", "enable_socket_mismatch_warning", 0) 4.6. custom_user_avp (avp string) - When enable_username is enabled, a call to record_route will add the + When add_username is enabled, a call to record_route will add the username of the RequestURI to the Record-Route URI. This parameter allows you to setup an AVP with which you can customise the username to be added in the Record-Route URI. @@ -614,7 +614,7 @@ add_rr_param(";nat=yes"); The function checks if the URI parameters of the local Route header (corresponding to the local server) matches the given regular - expression. It must be call after loose_route() (see Section 5.1, + expression. It must be called after loose_route() (see Section 5.1, “loose_route()”). Meaning of the parameters is as follows: @@ -780,7 +780,7 @@ record_route_advertised_address("1.2.3.4:5090"); The function checks for the request “msg” if the URI parameters of the local Route header (corresponding to the local server) matches the - given regular expression “re”. It must be call after the loose_route + given regular expression “re”. It must be called after the loose_route was done. The function returns 0 on success. Otherwise, -1 is returned. @@ -796,7 +796,7 @@ record_route_advertised_address("1.2.3.4:5090"); The function checks the flow direction of the request “msg”. As for checking it's used the “ftag” Route header parameter, the append_fromtag (see ??? module parameter must be enables. Also this - must be call only after the loose_route is done. + must be called only after the loose_route is done. The function returns 0 if the “dir” is the same with the request's flow direction. Otherwise, -1 is returned. @@ -808,9 +808,9 @@ record_route_advertised_address("1.2.3.4:5090"); 1.6. get_route_param( msg, name, val) - The function search in to the “msg”'s Route header parameters the + The function searches in the “msg”'s Route header parameters the parameter called “name” and returns its value into “val”. It must be - call only after the loose_route is done. + called only after the loose_route is done. The function returns 0 if parameter was found (even if it has no value). Otherwise, -1 is returned. @@ -824,7 +824,7 @@ record_route_advertised_address("1.2.3.4:5090"); 1.7. register_rrcb( callback, param) - The function register a new callback (along with its parameter). The + The function registers a new callback (along with its parameter). The callback will be called when a loose route will be performed for the local address. diff --git a/src/modules/rr/doc/rr_admin.xml b/src/modules/rr/doc/rr_admin.xml index 98bad1239..c1ad84277 100644 --- a/src/modules/rr/doc/rr_admin.xml +++ b/src/modules/rr/doc/rr_admin.xml @@ -12,7 +12,7 @@
Overview - The module contains record routing logic + The module contains record routing logic.
@@ -20,7 +20,7 @@ &kamailio; is basically only a transaction stateful proxy, without any dialog support build in. There are many - features/services which actually requires a dialog awareness, like storing + features/services which actually require a dialog awareness, like storing the information in the dialog creation stage, information which will be used during the whole dialog existence. @@ -246,7 +246,7 @@ modparam("rr", "enable_socket_mismatch_warning", 0)
<varname>custom_user_avp</varname> (avp string) - When enable_username is enabled, a call to record_route will add + When add_username is enabled, a call to record_route will add the username of the RequestURI to the Record-Route URI. This parameter allows you to setup an AVP with which you can customise the username to be added in the Record-Route URI. @@ -664,7 +664,7 @@ add_rr_param(";nat=yes"); The function checks if the URI parameters of the local Route header (corresponding to the local server) matches the given regular - expression. It must be call after loose_route() (see ). Meaning of the parameters is as follows: diff --git a/src/modules/rr/doc/rr_devel.xml b/src/modules/rr/doc/rr_devel.xml index 9d16ea079..a451c4fb4 100644 --- a/src/modules/rr/doc/rr_devel.xml +++ b/src/modules/rr/doc/rr_devel.xml @@ -128,7 +128,7 @@ record_route_advertised_address("1.2.3.4:5090"); The function checks for the request msg if the URI parameters of the local Route header (corresponding to the local server) matches the given regular expression re. - It must be call after the loose_route was done. + It must be called after the loose_route was done. The function returns 0 on success. Otherwise, -1 is returned. @@ -157,7 +157,7 @@ record_route_advertised_address("1.2.3.4:5090"); msg. As for checking it's used the ftag Route header parameter, the append_fromtag (see module parameter - must be enables. Also this must be call only after the loose_route is + must be enables. Also this must be called only after the loose_route is done. @@ -185,9 +185,9 @@ record_route_advertised_address("1.2.3.4:5090"); get_route_param( msg, name, val) - The function search in to the msg's Route header + The function searches in the msg's Route header parameters the parameter called name and returns its - value into val. It must be call only after the + value into val. It must be called only after the loose_route is done. @@ -220,7 +220,7 @@ record_route_advertised_address("1.2.3.4:5090"); register_rrcb( callback, param) - The function register a new callback (along with its parameter). The + The function registers a new callback (along with its parameter). The callback will be called when a loose route will be performed for the local address. diff --git a/src/modules/rtp_media_server/Makefile b/src/modules/rtp_media_server/Makefile index 18645c209..085fd1a38 100644 --- a/src/modules/rtp_media_server/Makefile +++ b/src/modules/rtp_media_server/Makefile @@ -5,8 +5,7 @@ NAME=rtp_media_server.so DEFS+=-I$(LOCALBASE)/include ORTPLIBS=-lortp -BCUNITLIBS=-lbcunit MS2LIBS=-lmediastreamer -LIBS+=-L$(LOCALBASE)/lib $(ORTPLIBS) $(BCUNITLIBS) $(MS2LIBS) +LIBS+=-L$(LOCALBASE)/lib $(ORTPLIBS) $(MS2LIBS) include ../../Makefile.modules diff --git a/src/modules/rtp_media_server/rms_dialog_info.c b/src/modules/rtp_media_server/rms_dialog_info.c index cbe579851..efd4c26f6 100644 --- a/src/modules/rtp_media_server/rms_dialog_info.c +++ b/src/modules/rtp_media_server/rms_dialog_info.c @@ -23,7 +23,7 @@ extern rms_dialog_info_t *rms_dialog_list; extern int in_rms_process; -gen_lock_t *dialog_list_mutex; +gen_lock_t *dialog_list_mutex = NULL; static void rms_action_free(rms_dialog_info_t *si) { diff --git a/src/modules/rtp_media_server/rtp_media_server.c b/src/modules/rtp_media_server/rtp_media_server.c index cb4939f84..bc528d40a 100644 --- a/src/modules/rtp_media_server/rtp_media_server.c +++ b/src/modules/rtp_media_server/rtp_media_server.c @@ -24,20 +24,22 @@ MODULE_VERSION -rms_dialog_info_t *rms_dialog_list; -static int mod_init(void); -static void mod_destroy(void); -static int child_init(int); +rms_dialog_info_t *rms_dialog_list = NULL; + str playback_fn = {0, 0}; str log_fn = {0, 0}; static char *rms_bridge_default_route = "rms:bridged"; static char *rms_answer_default_route = "rms:start"; -int in_rms_process; -rms_t *rms; +int in_rms_process = 0; +rms_t *rms = NULL; struct tm_binds tmb; +static int mod_init(void); +static void mod_destroy(void); +static int child_init(int); + static rms_dialog_info_t *rms_dialog_create_leg(rms_dialog_info_t *di, struct sip_msg *msg); static int fixup_rms_action_play(void **param, int param_no); static int fixup_rms_bridge(void **param, int param_no); diff --git a/src/modules/rtpengine/README b/src/modules/rtpengine/README index 4944f8aba..efc883ed6 100644 --- a/src/modules/rtpengine/README +++ b/src/modules/rtpengine/README @@ -754,7 +754,7 @@ modparam("rtpengine", "setid_avp", "$avp(setid)") be sent from the specified local interface. Both IPv4 and IPv6 addresses are supported. If not specified, the default interface selected by the operating system will be used. Note: when - rtpengine_sock is a IPv6 link-local address, one _must_ set this + rtpengine_sock is an IPv6 link-local address, one _must_ set this parameter in order to successfully connect to RTP engine. This is necessarily because OS needs additional scope_id hint to communicate over IPv6 link locals. The scope_id is resolved based on the given @@ -2776,7 +2776,7 @@ $ kamcmd rtpengine.reload recheck_ticks are grater than 0, the proxy is considered disabled temporary, and it is not taken into consideration for sending data. When the recheck_ticks are 0, the proxy is retested when trying to send - data (not automatically retested), and data can be send to it on + data (not automatically retested), and data can be sent to it on success. NOTE: If you specify an IPv6 RTP, the proxy url must be prefixed with diff --git a/src/modules/rtpengine/doc/rtpengine_admin.xml b/src/modules/rtpengine/doc/rtpengine_admin.xml index 234fd1fa2..87f391fc3 100644 --- a/src/modules/rtpengine/doc/rtpengine_admin.xml +++ b/src/modules/rtpengine/doc/rtpengine_admin.xml @@ -407,7 +407,7 @@ modparam("rtpengine", "setid_avp", "$avp(setid)") interface. Both IPv4 and IPv6 addresses are supported. If not specified, the default interface selected by the operating system will be used. - Note: when rtpengine_sock is a IPv6 link-local address, + Note: when rtpengine_sock is an IPv6 link-local address, one _must_ set this parameter in order to successfully connect to RTP engine. This is necessarily because OS needs additional scope_id hint to communicate over IPv6 link locals. The scope_id is resolved based on the given IPv6. @@ -3335,7 +3335,7 @@ $ &kamcmd; rtpengine.reload While the recheck_ticks are grater than 0, the proxy is considered disabled temporary, and it is not taken into consideration for sending data. When the recheck_ticks are 0, the proxy is retested when trying to send data - (not automatically retested), and data can be send to it on success. + (not automatically retested), and data can be sent to it on success. NOTE: If you specify an IPv6 &rtp;, the proxy url must be prefixed with :: diff --git a/src/modules/rtpengine/rtpengine.c b/src/modules/rtpengine/rtpengine.c index ab6920c01..1b1f8b0ca 100644 --- a/src/modules/rtpengine/rtpengine.c +++ b/src/modules/rtpengine/rtpengine.c @@ -3349,6 +3349,12 @@ select_rtpp_node(str callid, str viabranch, int do_test, struct rtpp_node **quer // lookup node node = select_rtpp_node_old(callid, viabranch, do_test, op); + if (node && is_queried_node(node, queried_nodes_ptr, queried_nodes)) { + LM_ERR("rtpengine node for callid=%.*s is known (%.*s) but it has already been queried, therefore not returning it\n", + callid.len, callid.s, node->rn_url.len, node->rn_url.s); + return NULL; + } + // check node if (!node || (node_in_set(node, active_rtpp_set) == 0)) { // run the selection algorithm diff --git a/src/modules/rtpproxy/README b/src/modules/rtpproxy/README index ffed325c5..976f393d6 100644 --- a/src/modules/rtpproxy/README +++ b/src/modules/rtpproxy/README @@ -489,7 +489,7 @@ rtpproxy_offer(); + x - this flag a shortcut for using the "ie" or "ei"-flags of RTP-Proxy, in order to do automatic bridging between IPv4 on the "internal network" and IPv6 on the "external network". The - distinction is done by the given IP in the SDP, e.g. a IPv4 + distinction is done by the given IP in the SDP, e.g. an IPv4 Address will always call "ie" to the RTPProxy (IPv4(i) to IPv6(e)) and an IPv6Address will always call "ei" to the RTPProxy (IPv6(e) to IPv4(i)). diff --git a/src/modules/rtpproxy/doc/rtpproxy_admin.xml b/src/modules/rtpproxy/doc/rtpproxy_admin.xml index efc6b18e3..11af7e0de 100644 --- a/src/modules/rtpproxy/doc/rtpproxy_admin.xml +++ b/src/modules/rtpproxy/doc/rtpproxy_admin.xml @@ -463,7 +463,7 @@ rtpproxy_offer(); x - this flag a shortcut for using the "ie" or "ei"-flags of RTP-Proxy, in order to do automatic bridging between IPv4 on the "internal network" and IPv6 on the "external network". The distinction is done by - the given IP in the SDP, e.g. a IPv4 Address will always call "ie" to the RTPProxy + the given IP in the SDP, e.g. an IPv4 Address will always call "ie" to the RTPProxy (IPv4(i) to IPv6(e)) and an IPv6Address will always call "ei" to the RTPProxy (IPv6(e) to IPv4(i)). diff --git a/src/modules/rtpproxy/test/kamailio.cfg b/src/modules/rtpproxy/test/kamailio.cfg index 5dc6846a8..c71f53ab2 100644 --- a/src/modules/rtpproxy/test/kamailio.cfg +++ b/src/modules/rtpproxy/test/kamailio.cfg @@ -151,7 +151,7 @@ route { } ################################################################################################################## - # BYE and ACK Requests should always have an To-Tag, if they follow RFC + # BYE and ACK Requests should always have a To-Tag, if they follow RFC ############################################################################################################### if (is_method("BYE")) { send_reply("400", "Missing to-tag"); diff --git a/src/modules/sanity/README b/src/modules/sanity/README index ac3e2ca92..d296a8363 100644 --- a/src/modules/sanity/README +++ b/src/modules/sanity/README @@ -143,7 +143,8 @@ modparam("sanity", "default_checks", 1) 'parse uri' will be executed. Default value is 7. This resolves to the following list of parsed URIs: - Request URI (1), From URI (2) and To URI (4). + Request URI (1), From URI (2) and To URI (4). Additionally the Contact + URI can be also checked (8). Example 1.2. Set uri_checks parameter ... diff --git a/src/modules/sanity/doc/sanity_admin.xml b/src/modules/sanity/doc/sanity_admin.xml index b5ec247b6..cc3a78630 100644 --- a/src/modules/sanity/doc/sanity_admin.xml +++ b/src/modules/sanity/doc/sanity_admin.xml @@ -180,6 +180,7 @@ modparam("sanity", "default_checks", 1) Default value is 7. This resolves to the following list of parsed URIs: Request URI (1), From URI (2) and To URI (4). + Additionally the Contact URI can be also checked (8). Set <varname>uri_checks</varname> parameter diff --git a/src/modules/sanity/sanity.c b/src/modules/sanity/sanity.c index f49d6e50c..c6563e23c 100644 --- a/src/modules/sanity/sanity.c +++ b/src/modules/sanity/sanity.c @@ -820,7 +820,8 @@ int check_parse_uris(sip_msg_t* msg, int checks) { } return SANITY_CHECK_FAILED; } - if (parse_uri( + if (!((struct contact_body*)msg->contact->parsed)->star + && parse_uri( ((struct contact_body*)msg->contact->parsed)->contacts->uri.s, ((struct contact_body*)msg->contact->parsed)->contacts->uri.len, &uri) != 0) { diff --git a/src/modules/seas/README b/src/modules/seas/README index 6acbd8acc..453b98325 100644 --- a/src/modules/seas/README +++ b/src/modules/seas/README @@ -1359,7 +1359,7 @@ Chapter 2. Developer Guide all the Route Headers were requested by the application, then a lookup in this table would be necessary, looking for the value '9' (corresponding to the Route header) in each of the positions multiple - of 3 (0,3,6,9,12, etc). This can be done in a extremely fast and easy + of 3 (0,3,6,9,12, etc). This can be done in an extremely fast and easy way, as this snipped of pseudo code explains: for(int j=0,int i=0;i for(int j=0,int i=0;i<table_length;i+=3){ diff --git a/src/modules/seas/event_dispatcher.c b/src/modules/seas/event_dispatcher.c index e1c7047be..5d65d7c65 100644 --- a/src/modules/seas/event_dispatcher.c +++ b/src/modules/seas/event_dispatcher.c @@ -789,7 +789,7 @@ static int process_event_reply(as_p as) process_bind_action(as,processor_id,flags,&as->ev_buffer.s[10],ev_len-10); break; case UNBIND_AC: - LM_DBG("Processing a UNBIND action from AS (length=%d): %.*s\n", + LM_DBG("Processing an UNBIND action from AS (length=%d): %.*s\n", ev_len,as->name.len,as->name.s); process_unbind_action(as,processor_id,flags,&as->ev_buffer.s[10],ev_len-10); break; @@ -889,7 +889,7 @@ error: } /** - * processes a UNBIND event type from the AS. + * processes an UNBIND event type from the AS. * Bind events follow this form: * 1:processor_id * diff --git a/src/modules/seas/seas_action.c b/src/modules/seas/seas_action.c index de8fc9be6..1f370f770 100644 --- a/src/modules/seas/seas_action.c +++ b/src/modules/seas/seas_action.c @@ -317,7 +317,7 @@ int process_action(as_p the_as) ac_jain_pong(the_as,processor_id,flags,the_as->ac_buffer.s+10,ac_len-10); break; default: - LM_DBG("Processing a UNKNOWN TYPE action from AS (length=%d): %.*s\n", + LM_DBG("Processing an UNKNOWN TYPE action from AS (length=%d): %.*s\n", ac_len,the_as->name.len,the_as->name.s); break; } diff --git a/src/modules/secsipid/secsipid_mod.c b/src/modules/secsipid/secsipid_mod.c index 43c1ab4cb..fa1b86440 100644 --- a/src/modules/secsipid/secsipid_mod.c +++ b/src/modules/secsipid/secsipid_mod.c @@ -221,24 +221,15 @@ static void mod_destroy(void) */ static int ki_secsipid_check_identity(sip_msg_t *msg, str *keypath) { - int ret = 1; + int ret = -1; str ibody = STR_NULL; hdr_field_t *hf; - for (hf=msg->headers; hf; hf=hf->next) { - if (hf->name.len==SECSIPID_HDR_IDENTITY_LEN - && strncasecmp(hf->name.s, SECSIPID_HDR_IDENTITY, - SECSIPID_HDR_IDENTITY_LEN)==0) - break; - } - - if(hf == NULL) { - LM_DBG("no identity header\n"); + if (parse_headers(msg, HDR_EOH_F, 0) == -1) { + LM_ERR("error while parsing message\n"); return -1; } - ibody = hf->body; - if(secsipid_cache_dir.len > 0) { _secsipid_papi.SecSIPIDSetFileCacheOptions(secsipid_cache_dir.s, secsipid_cache_expire); @@ -250,12 +241,23 @@ static int ki_secsipid_check_identity(sip_msg_t *msg, str *keypath) } secsipid_libopt_list_used = 1; } - ret = _secsipid_papi.SecSIPIDCheckFull(ibody.s, ibody.len, secsipid_expire, - keypath->s, secsipid_timeout); - if(ret==0) { - LM_DBG("identity check: ok\n"); - return 1; + for (hf=msg->headers; hf; hf=hf->next) { + if (hf->name.len==SECSIPID_HDR_IDENTITY_LEN + && strncasecmp(hf->name.s, SECSIPID_HDR_IDENTITY, + SECSIPID_HDR_IDENTITY_LEN)==0) { + ibody = hf->body; + ret = _secsipid_papi.SecSIPIDCheckFull(ibody.s, ibody.len, secsipid_expire, + keypath->s, secsipid_timeout); + if(ret==0) { + LM_DBG("identity check: ok\n"); + return 1; + } + } + } + + if(ibody.len==0) { + LM_DBG("identity header not found\n"); } LM_DBG("identity check: failed\n"); @@ -282,19 +284,12 @@ static int w_secsipid_check_identity(sip_msg_t *msg, char *pkeypath, char *str2) */ static int ki_secsipid_check_identity_pubkey(sip_msg_t *msg, str *keyval) { - int ret = 1; + int ret = -1; str ibody = STR_NULL; hdr_field_t *hf; - for (hf=msg->headers; hf; hf=hf->next) { - if (hf->name.len==SECSIPID_HDR_IDENTITY_LEN - && strncasecmp(hf->name.s, SECSIPID_HDR_IDENTITY, - SECSIPID_HDR_IDENTITY_LEN)==0) - break; - } - - if(hf == NULL) { - LM_DBG("no identity header\n"); + if (parse_headers(msg, HDR_EOH_F, 0) == -1) { + LM_ERR("error while parsing message\n"); return -1; } @@ -306,14 +301,22 @@ static int ki_secsipid_check_identity_pubkey(sip_msg_t *msg, str *keyval) secsipid_libopt_list_used = 1; } - ibody = hf->body; - - ret = _secsipid_papi.SecSIPIDCheckFullPubKey(ibody.s, ibody.len, - secsipid_expire, keyval->s, keyval->len); + for (hf=msg->headers; hf; hf=hf->next) { + if (hf->name.len==SECSIPID_HDR_IDENTITY_LEN + && strncasecmp(hf->name.s, SECSIPID_HDR_IDENTITY, + SECSIPID_HDR_IDENTITY_LEN)==0) { + ibody = hf->body; + ret = _secsipid_papi.SecSIPIDCheckFullPubKey(ibody.s, ibody.len, + secsipid_expire, keyval->s, keyval->len); + if(ret==0) { + LM_DBG("identity check: ok\n"); + return 1; + } + } + } - if(ret==0) { - LM_DBG("identity check: ok\n"); - return 1; + if(ibody.len==0) { + LM_DBG("identity header not found\n"); } LM_DBG("identity check: failed\n"); diff --git a/src/modules/sipcapture/README b/src/modules/sipcapture/README index 6d671b5da..5f3f23d64 100644 --- a/src/modules/sipcapture/README +++ b/src/modules/sipcapture/README @@ -347,7 +347,7 @@ modparam("sipcapture", "raw_moni_capture_on", 1) 3.11. raw_socket_listen (string) - Parameter indicate an listen IP address of RAW socket for IPIP + Parameter indicate a listen IP address of RAW socket for IPIP capturing. You can also define a port/portrange for IPIP/Mirroring mode, to capture SIP messages in specific ports: diff --git a/src/modules/sipcapture/doc/sipcapture_admin.xml b/src/modules/sipcapture/doc/sipcapture_admin.xml index 07d1cac97..ce3f283d3 100644 --- a/src/modules/sipcapture/doc/sipcapture_admin.xml +++ b/src/modules/sipcapture/doc/sipcapture_admin.xml @@ -283,7 +283,7 @@ modparam("sipcapture", "raw_moni_capture_on", 1)
<varname>raw_socket_listen</varname> (string) - Parameter indicate an listen IP address of RAW socket for IPIP capturing. + Parameter indicate a listen IP address of RAW socket for IPIP capturing. You can also define a port/portrange for IPIP/Mirroring mode, to capture SIP messages in specific ports: diff --git a/src/modules/sipcapture/hep.c b/src/modules/sipcapture/hep.c index 980cba909..2ee838f78 100644 --- a/src/modules/sipcapture/hep.c +++ b/src/modules/sipcapture/hep.c @@ -134,6 +134,7 @@ int hepv2_received(char *buf, unsigned int len, struct receive_info *ri) heph->hp_f); return -1; } + LM_DBG("header offset: %d af: %d\n", hl, (int)heph->hp_f); /* PROTO */ if(heph->hp_p == IPPROTO_UDP) @@ -808,6 +809,7 @@ int hepv2_message_parse(char *buf, unsigned int len, sip_msg_t *msg) heph->hp_f); return -1; } + LM_DBG("header offset: %d af: %d\n", hl, (int)heph->hp_f); /* PROTO */ if(heph->hp_p == IPPROTO_UDP) diff --git a/src/modules/sipt/README b/src/modules/sipt/README index 80e2843f2..a718ce84c 100644 --- a/src/modules/sipt/README +++ b/src/modules/sipt/README @@ -213,7 +213,7 @@ sipt_forwarfing($avp(s:forwarding_number), 3); 3.5. sipt_has_isup_body() - The function returns true if the SIP message has a ISUP body attached. + The function returns true if the SIP message has an ISUP body attached. Example 1.5. sipt_has_isup_body() usage ... diff --git a/src/modules/sipt/doc/sipt_admin.xml b/src/modules/sipt/doc/sipt_admin.xml index c5d8860af..09d643042 100644 --- a/src/modules/sipt/doc/sipt_admin.xml +++ b/src/modules/sipt/doc/sipt_admin.xml @@ -113,7 +113,7 @@ sipt_forwarfing($avp(s:forwarding_number), 3); <function moreinfo="none">sipt_has_isup_body()</function> The function returns true if the SIP message - has a ISUP body attached. + has an ISUP body attached. <function moreinfo="none">sipt_has_isup_body()</function> usage diff --git a/src/modules/siputils/README b/src/modules/siputils/README index 51b9e42ad..e1beef2db 100644 --- a/src/modules/siputils/README +++ b/src/modules/siputils/README @@ -429,7 +429,7 @@ modparam("auth", "rpid_avp", "$avp(myrpid)") 4.1. options_reply() This function checks if the request method is OPTIONS and if the - request URI does not contain an username. If both is true the request + request URI does not contain a username. If both is true the request will be answered stateless with “200 OK” and the capabilities from the modules parameters. @@ -440,8 +440,8 @@ modparam("auth", "rpid_avp", "$avp(myrpid)") because it is also done by the function itself. But you should not call this function outside the myself check because in this case the function could answer OPTIONS requests which are sent to you as - outbound proxy but with an other destination then your proxy (this - check is currently missing in the function). + outbound proxy but with another destination then your proxy (this check + is currently missing in the function). This function can be used from REQUEST_ROUTE. diff --git a/src/modules/siputils/checks.c b/src/modules/siputils/checks.c index 3e01eb978..1bfaae233 100644 --- a/src/modules/siputils/checks.c +++ b/src/modules/siputils/checks.c @@ -357,17 +357,15 @@ int w_uri_param_any(struct sip_msg* _msg, char* _param, char* _str2) } /* - * Adds a new parameter to Request URI + * Adds a new parameter to Request URI - kemi export */ -int add_uri_param(struct sip_msg* _msg, char* _param, char* _s2) +int ki_add_uri_param(struct sip_msg* _msg, str* param) { - str *param, *cur_uri, new_uri; + str *cur_uri, new_uri; struct sip_uri *parsed_uri; char *at; - param = (str*)_param; - - if (param->len == 0) { + if (param==NULL || param->len == 0) { return 1; } @@ -465,6 +463,14 @@ ok: return 1; } +/* + * Adds a new parameter to Request URI - cfg export + */ +int add_uri_param(struct sip_msg* _msg, char* _param, char* _s2) +{ + return ki_add_uri_param(_msg, (str*)_param); +} + /* * Remove param from Request URI */ diff --git a/src/modules/siputils/checks.h b/src/modules/siputils/checks.h index 2a05bdd53..43fc83ffb 100644 --- a/src/modules/siputils/checks.h +++ b/src/modules/siputils/checks.h @@ -65,7 +65,7 @@ int uri_param_2(struct sip_msg* _msg, char* _param, char* _value); * Adds a new parameter to Request URI */ int add_uri_param(struct sip_msg* _msg, char* _param, char* _s2); - +int ki_add_uri_param(struct sip_msg* _msg, str* param); /* * Converts URI, if it is tel URI, to SIP URI. Returns 1, if diff --git a/src/modules/siputils/doc/siputils_admin.xml b/src/modules/siputils/doc/siputils_admin.xml index c2aef667e..6782d46b5 100644 --- a/src/modules/siputils/doc/siputils_admin.xml +++ b/src/modules/siputils/doc/siputils_admin.xml @@ -254,7 +254,7 @@ modparam("auth", "rpid_avp", "$avp(myrpid)") This function checks if the request method is OPTIONS and - if the request URI does not contain an username. If both + if the request URI does not contain a username. If both is true the request will be answered stateless with 200 OK and the capabilities from the modules parameters. @@ -268,7 +268,7 @@ modparam("auth", "rpid_avp", "$avp(myrpid)") optional because it is also done by the function itself. But you should not call this function outside the myself check because in this case the function could answer OPTIONS requests - which are sent to you as outbound proxy but with an other + which are sent to you as outbound proxy but with another destination then your proxy (this check is currently missing in the function). diff --git a/src/modules/siputils/siputils.c b/src/modules/siputils/siputils.c index a284e3225..bbae257bd 100644 --- a/src/modules/siputils/siputils.c +++ b/src/modules/siputils/siputils.c @@ -728,6 +728,11 @@ static sr_kemi_t sr_kemi_siputils_exports[] = { { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("siputils"), str_init("add_uri_param"), + SR_KEMIP_INT, ki_add_uri_param, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } } }; diff --git a/src/modules/snmpstats/README b/src/modules/snmpstats/README index 155003e02..e22b24851 100644 --- a/src/modules/snmpstats/README +++ b/src/modules/snmpstats/README @@ -374,7 +374,7 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) The SNMPStats module monitors the number of active dialogs. If the number of active dialogs exceeds a minor threshold, the SNMPStats - module will send out an kamailioDialogLimitMinorEvent trap to signal + module will send out a kamailioDialogLimitMinorEvent trap to signal that an alarm condition has occurred. The minor threshold is set with the dlg_minor_threshold parameter. @@ -390,7 +390,7 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) The SNMPStats module monitors the number of active dialogs. If the number of active dialogs exceeds a major threshold, the SNMPStats - module will send out an kamailioDialogLimitMajorEvent trap to signal + module will send out a kamailioDialogLimitMajorEvent trap to signal that an alarm condition has occurred. The major threshold is set with the dlg_major_threshold parameter. diff --git a/src/modules/snmpstats/alarm_checks.c b/src/modules/snmpstats/alarm_checks.c index 06e391a4a..fe6786c98 100644 --- a/src/modules/snmpstats/alarm_checks.c +++ b/src/modules/snmpstats/alarm_checks.c @@ -81,7 +81,7 @@ int check_dialog_alarm(int threshold_to_compare_to) return 0; } -/*! This function will be called periodically from an Kamailio timer. The first +/*! This function will be called periodically from a Kamailio timer. The first * time it is called, it will query KAMAILIO-MIB for configured thresholds. */ void run_alarm_check(unsigned int ticks, void *attr) diff --git a/src/modules/snmpstats/alarm_checks.h b/src/modules/snmpstats/alarm_checks.h index 76e12019c..dc18478e8 100644 --- a/src/modules/snmpstats/alarm_checks.h +++ b/src/modules/snmpstats/alarm_checks.h @@ -45,7 +45,7 @@ int check_msg_queue_alarm(int threshold_to_compare_to); * otherwise. */ int check_dialog_alarm(int threshold_to_compare_to); -/*! This function will be called periodically from an Kamailio timer. The first +/*! This function will be called periodically from a Kamailio timer. The first * time it is called, it will query KAMAILIO-MIB for configured thresholds. */ void run_alarm_check(unsigned int ticks, void *attr); diff --git a/src/modules/snmpstats/doc/snmpstats_admin.xml b/src/modules/snmpstats/doc/snmpstats_admin.xml index 870a8630a..331f14d2b 100644 --- a/src/modules/snmpstats/doc/snmpstats_admin.xml +++ b/src/modules/snmpstats/doc/snmpstats_admin.xml @@ -295,7 +295,7 @@ modparam("snmpstats", "sipEntityType", "proxyServer") The SNMPStats module monitors the number of bytes waiting to be consumed by Kamailio. If the number of bytes waiting to be consumed exceeds a minor - threshold, the SNMPStats module will send out an kamailioMsgQueueDepthMinorEvent + threshold, the SNMPStats module will send out a kamailioMsgQueueDepthMinorEvent trap to signal that an alarm condition has occurred. The minor threshold is set with the MsgQueueMinorThreshold parameter. @@ -320,7 +320,7 @@ modparam("snmpstats", "MsgQueueMinorThreshold", 2000) The SNMPStats module monitors the number of bytes waiting to be consumed by Kamailio. If the number of bytes waiting to be consumed exceeds a major - threshold, the SNMPStats module will send out an kamailioMsgQueueDepthMajorEvent + threshold, the SNMPStats module will send out a kamailioMsgQueueDepthMajorEvent trap to signal that an alarm condition has occurred. The major threshold is set with the MsgQueueMajorThreshold parameter. @@ -345,7 +345,7 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) The SNMPStats module monitors the number of active dialogs. If the number of active dialogs exceeds a minor threshold, the SNMPStats module will send out - an kamailioDialogLimitMinorEvent trap to signal that an alarm condition has + a kamailioDialogLimitMinorEvent trap to signal that an alarm condition has occurred. The minor threshold is set with the dlg_minor_threshold parameter. @@ -369,7 +369,7 @@ modparam("snmpstats", "MsgQueueMajorThreshold", 5000) The SNMPStats module monitors the number of active dialogs. If the number of active dialogs exceeds a major threshold, the SNMPStats module will send out - an kamailioDialogLimitMajorEvent trap to signal that an alarm condition has + a kamailioDialogLimitMajorEvent trap to signal that an alarm condition has occurred. The major threshold is set with the dlg_major_threshold parameter. diff --git a/src/modules/snmpstats/hashTable.c b/src/modules/snmpstats/hashTable.c index 1fa6afeb2..75f70731d 100644 --- a/src/modules/snmpstats/hashTable.c +++ b/src/modules/snmpstats/hashTable.c @@ -221,7 +221,7 @@ void deleteUser(hashSlot_t *theTable, char *aor, int hashTableSize) } -/*! Returns a aorToIndexStruct_t, holding the given 'userIndex' and 'aor'. The +/*! Returns an aorToIndexStruct_t, holding the given 'userIndex' and 'aor'. The * structure is used to map between the "aor" (Kamailio's way of indexing * users/contacts), and the SNMPStats user and contact integer indexes. * diff --git a/src/modules/snmpstats/hashTable.h b/src/modules/snmpstats/hashTable.h index 8fb9ff558..9bbe77b6f 100644 --- a/src/modules/snmpstats/hashTable.h +++ b/src/modules/snmpstats/hashTable.h @@ -126,7 +126,7 @@ typedef struct hashSlot * More detailed function definitions can be found in hashTable.c */ -/*! Returns a aorToIndexStruct_t, holding the given 'userIndex' and 'aor'. The +/*! Returns an aorToIndexStruct_t, holding the given 'userIndex' and 'aor'. The * structure is used to map between the "aor" (Kamailio's way of indexing * users/contacts), and the SNMPStats user and contact integer indexes. * diff --git a/src/modules/snmpstats/kamailioNet.c b/src/modules/snmpstats/kamailioNet.c index 282c15e4b..4b97c9693 100644 --- a/src/modules/snmpstats/kamailioNet.c +++ b/src/modules/snmpstats/kamailioNet.c @@ -300,7 +300,7 @@ int handle_kamailioNetTcpConnEstablished(netsnmp_mib_handler *handler, /* We are never called for a GETNEXT if it's registered as a "instance", as it's "magically" handled for us. */ - /* a instance handler also only hands us one request at a time, so + /* an instance handler also only hands us one request at a time, so we don't need to loop over a list of requests; we'll only get one. */ int datafield = get_statistic("established"); @@ -451,7 +451,7 @@ int handle_kamailioNetTcpConnReject(netsnmp_mib_handler *handler, /* We are never called for a GETNEXT if it's registered as a "instance", as it's "magically" handled for us. */ - /* a instance handler also only hands us one request at a time, so + /* an instance handler also only hands us one request at a time, so we don't need to loop over a list of requests; we'll only get one. */ int datafield = get_statistic("local_reject"); @@ -480,7 +480,7 @@ int handle_kamailioNetTcpEnabled(netsnmp_mib_handler *handler, /* We are never called for a GETNEXT if it's registered as a "instance", as it's "magically" handled for us. */ - /* a instance handler also only hands us one request at a time, so + /* an instance handler also only hands us one request at a time, so we don't need to loop over a list of requests; we'll only get one. */ int enabled = (tcp_disable == 0); @@ -543,7 +543,7 @@ int handle_kamailioNetTcpAsync(netsnmp_mib_handler *handler, /* We are never called for a GETNEXT if it's registered as a "instance", as it's "magically" handled for us. */ - /* a instance handler also only hands us one request at a time, so + /* an instance handler also only hands us one request at a time, so we don't need to loop over a list of requests; we'll only get one. */ switch(reqinfo->mode) { diff --git a/src/modules/snmpstats/mibs/KAMAILIO-TC b/src/modules/snmpstats/mibs/KAMAILIO-TC index 171c491d4..d43b4575d 100644 --- a/src/modules/snmpstats/mibs/KAMAILIO-TC +++ b/src/modules/snmpstats/mibs/KAMAILIO-TC @@ -304,7 +304,7 @@ X731AvailabilityStatus ::= TEXTUAL-CONVENTION A value of not installed means the resource is not present or is incomplete. The operational state should be disabled. - A value of log full indicates that a a log full condition + A value of log full indicates that a log full condition exists." SYNTAX BITS { diff --git a/src/modules/snmpstats/snmpMIBNotifications.c b/src/modules/snmpstats/snmpMIBNotifications.c index 6b65cc027..610d8eb35 100644 --- a/src/modules/snmpstats/snmpMIBNotifications.c +++ b/src/modules/snmpstats/snmpMIBNotifications.c @@ -39,7 +39,7 @@ static oid snmptrap_oid[] = {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0}; /* - * Sends off an kamailioMsgQueueDepthMinorEvent trap to the master agent, + * Sends off a kamailioMsgQueueDepthMinorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioMsgQueueDepth = msgQueueDepth @@ -78,7 +78,7 @@ int send_kamailioMsgQueueDepthMinorEvent_trap( } /* - * Sends off an kamailioMsgQueueDepthMajorEvent trap to the master agent, + * Sends off a kamailioMsgQueueDepthMajorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioMsgQueueDepth = msgQueueDepth @@ -118,7 +118,7 @@ int send_kamailioMsgQueueDepthMajorEvent_trap( /* - * Sends off an kamailioDialogLimitMinorEvent trap to the master agent, + * Sends off a kamailioDialogLimitMinorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioCurNumDialogs = numDialogs @@ -156,7 +156,7 @@ int send_kamailioDialogLimitMinorEvent_trap(int numDialogs, int threshold) /* - * Sends off an kamailioDialogLimitMinorEvent trap to the master agent, + * Sends off a kamailioDialogLimitMinorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioCurNumDialogs = numDialogs diff --git a/src/modules/snmpstats/snmpMIBNotifications.h b/src/modules/snmpstats/snmpMIBNotifications.h index cea2817f8..766bea086 100644 --- a/src/modules/snmpstats/snmpMIBNotifications.h +++ b/src/modules/snmpstats/snmpMIBNotifications.h @@ -34,7 +34,7 @@ /* - * Sends off an kamailioMsgQueueDepthMinorEvent trap to the master agent, + * Sends off a kamailioMsgQueueDepthMinorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioMsgQueueDepth = msgQueueDepth @@ -45,7 +45,7 @@ int send_kamailioMsgQueueDepthMinorEvent_trap( int msgQueueDepth, int minorThreshold); /* - * Sends off an kamailioMsgQueueDepthMajorEvent trap to the master agent, + * Sends off a kamailioMsgQueueDepthMajorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioMsgQueueDepth = msgQueueDepth @@ -56,7 +56,7 @@ int send_kamailioMsgQueueDepthMajorEvent_trap( int msgQueueDepth, int majorThreshold); /* - * Sends off an kamailioDialogLimitMinorEvent trap to the master agent, + * Sends off a kamailioDialogLimitMinorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioCurNumDialogs = numDialogs @@ -66,7 +66,7 @@ int send_kamailioMsgQueueDepthMajorEvent_trap( int send_kamailioDialogLimitMinorEvent_trap(int numDialogs, int threshold); /* - * Sends off an kamailioDialogLimitMinorEvent trap to the master agent, + * Sends off a kamailioDialogLimitMinorEvent trap to the master agent, * assigning the following variable bindings: * * - kamailioCurNumDialogs = numDialogs diff --git a/src/modules/snmpstats/snmpSIPServerObjects.c b/src/modules/snmpstats/snmpSIPServerObjects.c index ca793e424..c822bda53 100644 --- a/src/modules/snmpstats/snmpSIPServerObjects.c +++ b/src/modules/snmpstats/snmpSIPServerObjects.c @@ -215,7 +215,7 @@ int handle_kamailioSIPProxyAuthMethod(netsnmp_mib_handler *handler, } /* We can have both tls and auth loaded simultaneously. Therefore we - * use an if instead of a else/else-if. */ + * use an if instead of an else/else-if. */ if(module_loaded("auth")) { auth_bitfield |= SIP_AUTH_METHOD_DIGEST; auth_bitfield &= ~SIP_AUTH_METHOD_NONE; diff --git a/src/modules/snmpstats/utilities.c b/src/modules/snmpstats/utilities.c index e5ebfc64b..83a218fb4 100644 --- a/src/modules/snmpstats/utilities.c +++ b/src/modules/snmpstats/utilities.c @@ -49,7 +49,7 @@ static cfg_ctx_t *ctx = NULL; /*! - * This function copies an Kamailio "str" datatype into a '\\0' terminated char* + * This function copies a Kamailio "str" datatype into a '\\0' terminated char* * string. * * \note Make sure to free the memory allocated to *copiedString, when you no diff --git a/src/modules/snmpstats/utilities.h b/src/modules/snmpstats/utilities.h index 176e9f63e..bf022bd0a 100644 --- a/src/modules/snmpstats/utilities.h +++ b/src/modules/snmpstats/utilities.h @@ -42,7 +42,7 @@ #include "../../core/sr_module.h" /*! - * This function copies an Kamailio "str" datatype into a '\\0' terminated char* + * This function copies a Kamailio "str" datatype into a '\\0' terminated char* * string. * * \note Make sure to free the memory allocated to *copiedString, when you no diff --git a/src/modules/sst/README b/src/modules/sst/README index 344486356..ed31b9331 100644 --- a/src/modules/sst/README +++ b/src/modules/sst/README @@ -90,7 +90,7 @@ Chapter 1. Admin Guide The sst module provides a way to update the dialog expiry timer based on the SIP INVITE/200 OK Session-Expires header value. You can use the - sst module in an Kamailio proxy to allow freeing of local resources of + sst module in a Kamailio proxy to allow freeing of local resources of dead calls. You can also use the sst module to validate the MIN_SE header value and diff --git a/src/modules/sst/sst_handlers.c b/src/modules/sst/sst_handlers.c index aa39859c3..55010baae 100644 --- a/src/modules/sst/sst_handlers.c +++ b/src/modules/sst/sst_handlers.c @@ -536,7 +536,7 @@ static void sst_dialog_response_fwded_CB(struct dlg_cell* did, int type, /* * We need to get the method this reply is for from the CSEQ * body. The RFC states we can only play with 2XX from the - * INVITE or reINVTE/UPDATE. + * INVITE or reINVITE/UPDATE. */ if (!msg->cseq && ((parse_headers(msg, HDR_CSEQ_F, 0) == -1) || !msg->cseq)) { LM_ERR("failed to parse CSeq\n"); diff --git a/src/modules/stirshaken/stirshaken_mod.c b/src/modules/stirshaken/stirshaken_mod.c index 6f2ec8fa0..b64396b0a 100644 --- a/src/modules/stirshaken/stirshaken_mod.c +++ b/src/modules/stirshaken/stirshaken_mod.c @@ -207,18 +207,21 @@ static stir_shaken_status_t shaken_callback(stir_shaken_callback_arg_t *arg) diff = now_s - attr.st_mtime; - LM_DBG("Checking cached certificate against expiration setting of %zus (now is: %zu, file modification timestamp is: %zu, difference is: %zu)\n", + LM_DBG("Checking cached certificate against expiration setting of %zus (now is: %lu, file modification timestamp is: %lu, difference is: %lu)\n", stirshaken_vs_cache_expire_s, now_s, attr.st_mtime, diff); if (diff > stirshaken_vs_cache_expire_s) { - LM_WARN("Cached certificate %s is behind expiration threshold (%zu > %zu). Need to download new certificate...\n", cert_full_path, diff, stirshaken_vs_cache_expire_s); + LM_NOTICE("Cached certificate %s is behind expiration threshold (%lu > %zu). Need to download new certificate...\n", cert_full_path, diff, stirshaken_vs_cache_expire_s); goto exit; } else { - LM_WARN("Cached certificate %s is valid for next %zus\n", cert_full_path, stirshaken_vs_cache_expire_s - diff); + LM_NOTICE("Cached certificate %s is valid for next %lus\n", cert_full_path, stirshaken_vs_cache_expire_s - diff); } } - +#ifdef STIR_SHAKEN_CAN_RW_X509_FULLCHAIN + if (STIR_SHAKEN_STATUS_OK != stir_shaken_load_x509_from_file_fullchain(&ss, &cache_copy, cert_full_path)) { +#else if (!(cache_copy.x = stir_shaken_load_x509_from_file(&ss, cert_full_path))) { +#endif LM_ERR("Cannot load X509 from file %s\n", cert_full_path); goto exit; } @@ -443,10 +446,14 @@ static int stirshaken_handle_cache(stir_shaken_context_t *ss, stir_shaken_passpo } } - LM_DBG("Saving fresh certificate %s in cache (with name: %s)...\n", x5u, cert_full_path); - +#ifdef STIR_SHAKEN_CAN_RW_X509_FULLCHAIN + LM_DBG("Saving fresh certificate+chain %s to cache as %s\n", x5u, cert_full_path); + if (STIR_SHAKEN_STATUS_OK != stir_shaken_x509_to_disk_fullchain(ss, cert->x, cert->xchain, cert_full_path)) { +#else + LM_DBG("Saving fresh certificate %s to cache as %s\n", x5u, cert_full_path); if (STIR_SHAKEN_STATUS_OK != stir_shaken_x509_to_disk(ss, cert->x, cert_full_path)) { - LM_ERR("Failed to write cert %s to disk (as: %s)", x5u, cert_full_path); +#endif + LM_ERR("Failed to cache certificate %s to disk", x5u); } } else { @@ -485,7 +492,8 @@ static int ki_stirshaken_check_identity(sip_msg_t *msg) ibody = hf->body; if (STIR_SHAKEN_STATUS_OK != stir_shaken_vs_sih_verify(&ss, vs, ibody.s, &cert_out, &passport_out)) { - LM_ERR("SIP Identity Header did not pass verification\n"); + LM_ERR("SIP Identity Header did not pass verification: %s", stir_shaken_get_error(&ss, NULL)); + stirshaken_print_error_details(&ss); goto fail; } diff --git a/src/modules/tls/README b/src/modules/tls/README index 94c8cfc06..ccdac3dcf 100644 --- a/src/modules/tls/README +++ b/src/modules/tls/README @@ -292,7 +292,7 @@ request_route { For OpenSSL (libssl) v1.1.x, it is required to preload 'openssl_mutex_shared' library shipped by Kamailio. For more details - see 'src/modules/tls/openssl_mutex_shared/README.md'. + see 'src/modules/tls/utils/openssl_mutex_shared/README.md'. This module includes several workarounds for various Openssl bugs (like compression and Kerberos using the wrong memory allocations functions, @@ -563,7 +563,7 @@ modparam("tls", "engine_config", "/usr/local/etc/kamailio/thales.cnf") modparam("tls", "engine_algorithms", "EC") ... -/usr/local/etc/kamailio/thales.cnf is a OpenSSL config format file used to +/usr/local/etc/kamailio/thales.cnf is an OpenSSL config format file used to bootstrap the engine, e.g., pass the PIN. ... @@ -1503,7 +1503,7 @@ modparam("tls", "engine_algorithms", "ALL") 10.35. engine_config (string) - A OpenSSL configuration file to initialize the engine. Typically used + An OpenSSL configuration file to initialize the engine. Typically used to send PIN to HSMs to unlock private keys. See the HSM howto for an example. This global param is not supported in the tls config file. diff --git a/src/modules/tls/doc/hsm_howto.xml b/src/modules/tls/doc/hsm_howto.xml index 3c3547aa0..917a0074d 100644 --- a/src/modules/tls/doc/hsm_howto.xml +++ b/src/modules/tls/doc/hsm_howto.xml @@ -32,7 +32,7 @@ modparam("tls", "engine_config", "/usr/local/etc/kamailio/thales.cnf") modparam("tls", "engine_algorithms", "EC") ... -/usr/local/etc/kamailio/thales.cnf is a OpenSSL config format file used to +/usr/local/etc/kamailio/thales.cnf is an OpenSSL config format file used to bootstrap the engine, e.g., pass the PIN. ... diff --git a/src/modules/tls/doc/params.xml b/src/modules/tls/doc/params.xml index 7c1203eac..657f318dc 100644 --- a/src/modules/tls/doc/params.xml +++ b/src/modules/tls/doc/params.xml @@ -1328,7 +1328,7 @@ modparam("tls", "engine_algorithms", "ALL")
<varname>engine_config</varname> (string) - A OpenSSL configuration file to initialize the engine. Typically used to send PIN to HSMs to unlock + An OpenSSL configuration file to initialize the engine. Typically used to send PIN to HSMs to unlock private keys. See the HSM howto for an example. This global param is not supported in the tls config file.
diff --git a/src/modules/tls/doc/tls.xml b/src/modules/tls/doc/tls.xml index e356d5bff..a8c8ea4ce 100644 --- a/src/modules/tls/doc/tls.xml +++ b/src/modules/tls/doc/tls.xml @@ -133,7 +133,7 @@ request_route { For OpenSSL (libssl) v1.1.x, it is required to preload 'openssl_mutex_shared' library shipped by &kamailio;. For more details - see 'src/modules/tls/openssl_mutex_shared/README.md'. + see 'src/modules/tls/utils/openssl_mutex_shared/README.md'. This module includes several workarounds for various Openssl bugs diff --git a/src/modules/tm/README b/src/modules/tm/README index f1827a9e7..47a9784b8 100644 --- a/src/modules/tm/README +++ b/src/modules/tm/README @@ -3096,7 +3096,7 @@ t_clean(); 5.9. tm.clean - Trigger an hard clean of expired transactions. + Trigger a hard clean of expired transactions. Parameters: * none diff --git a/src/modules/tm/doc/rpc.xml b/src/modules/tm/doc/rpc.xml index d00ae09b7..8f31ad343 100644 --- a/src/modules/tm/doc/rpc.xml +++ b/src/modules/tm/doc/rpc.xml @@ -194,7 +194,7 @@ tm.clean - Trigger an hard clean of expired transactions. + Trigger a hard clean of expired transactions. Parameters: diff --git a/src/modules/tm/t_lookup.c b/src/modules/tm/t_lookup.c index f041116bb..bc3dd5ee6 100644 --- a/src/modules/tm/t_lookup.c +++ b/src/modules/tm/t_lookup.c @@ -643,7 +643,7 @@ int t_lookup_request( struct sip_msg* p_msg , int leave_new_locked, /* it is not an e2e ACK/200 -- perhaps it is * local negative case; in which case we will want * more elements to match: r-uri and via; allow - * mismatching r-uri as an config option for broken + * mismatching r-uri as a config option for broken * UACs */ if (cfg_get(tm, tm_cfg, ruri_matching) && !EQ_REQ_URI_LEN ) continue; @@ -1513,7 +1513,7 @@ int t_unref( struct sip_msg* p_msg ) LM_BUG("called w/ kr=REQ_ERR_DELAYED in failure" " route for %p\n", T); }else if (unlikely( kill_transaction(T, tm_error)<=0 )){ - // could be a valid error, or due to a immediate CANCEL + // could be a valid error, or due to an immediate CANCEL LM_WARN("generation of a delayed stateful reply" " failed\n"); t_release_transaction(T); diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c index 509cbcb95..687b9f9b8 100644 --- a/src/modules/tm/t_reply.c +++ b/src/modules/tm/t_reply.c @@ -22,7 +22,7 @@ /** Defines: * TM_ONREPLY_FINAL_DROP_OK - allows dropping the final reply * from the tm onreply_routes, but comes with a small performance - * hit (extra unlock()/lock() for each final reply when a onreply + * hit (extra unlock()/lock() for each final reply when an onreply * route is set). */ @@ -2610,7 +2610,7 @@ int reply_received( struct sip_msg *p_msg ) #ifdef USE_DST_BLOCKLIST /* add temporary to the blocklist the source of a 503 reply */ if ( (msg_status==503) && cfg_get(tm, tm_cfg, tm_blst_503) && - /* check if the request sent on the branch had the the + /* check if the request sent on the branch had the * blst 503 ignore flags set or it was set in the onreply_r*/ should_blocklist_su(BLST_503, &p_msg->fwd_send_flags, p_msg->rcv.proto, &p_msg->rcv.src_su) diff --git a/src/modules/tm/t_suspend.c b/src/modules/tm/t_suspend.c index f0255d664..4e25c3c89 100644 --- a/src/modules/tm/t_suspend.c +++ b/src/modules/tm/t_suspend.c @@ -554,6 +554,11 @@ done: hdr = hdr->next; } } + + /* trigger free of body */ + if(brpl->body && brpl->body->free) { + brpl->body->free(&brpl->body); + } sip_msg_free(brpl); } } diff --git a/src/modules/tm/timer.c b/src/modules/tm/timer.c index a662920ca..4c821ba87 100644 --- a/src/modules/tm/timer.c +++ b/src/modules/tm/timer.c @@ -360,6 +360,7 @@ inline static void final_response_handler( int branch_ret; int prev_branch; ticks_t now; + tm_xlinks_t backup_xd; #endif #ifdef EXTRA_DEBUG @@ -450,11 +451,15 @@ inline static void final_response_handler( branch_ret = add_uac_dns_fallback( t, t->uas.request, &t->uac[r_buf->branch], 0); prev_branch = -1; + /* restore X/AVP values from initial transaction */ + tm_xdata_swap(t, &backup_xd, 0); while((branch_ret >= 0) && (branch_ret != prev_branch)) { prev_branch = branch_ret; branch_ret = t_send_branch(t, branch_ret, t->uas.request, 0, 0); } + /* restore X/AVP values from backup data */ + tm_xdata_swap(t, &backup_xd, 1); } } #endif diff --git a/src/modules/topos/tps_storage.c b/src/modules/topos/tps_storage.c index 56d56776a..e0649b683 100644 --- a/src/modules/topos/tps_storage.c +++ b/src/modules/topos/tps_storage.c @@ -890,7 +890,7 @@ int tps_db_insert_branch(tps_data_t *td) db_keys[nr_keys] = &tt_col_rectime; db_vals[nr_keys].type = DB1_DATETIME; - db_vals[nr_keys].val.int_val = time(NULL); + db_vals[nr_keys].val.time_val = time(NULL); nr_keys++; db_keys[nr_keys] = &tt_col_a_callid; diff --git a/src/modules/uac/README b/src/modules/uac/README index f1a6e6f5e..e64da64df 100644 --- a/src/modules/uac/README +++ b/src/modules/uac/README @@ -430,7 +430,7 @@ modparam("uac","credential","username:domain:password") 3.9. auth_realm_avp (string) - The definition of an PV that might contain the realm to be used to + The definition of a PV that might contain the realm to be used to perform authentication. When the PV value is an empty string or NULL when uac_auth() is called, @@ -630,7 +630,7 @@ modparam("uac", "reg_use_domain", 1) entry. By default no default socket is defined, the send socket is choosen - from the “tm” module when the requests is send out. + from the “tm” module when the requests is sent out. If you want to force a certain TCP port (e.g. 5060), you will need to set the tcp_reuse_port=yes core parameter as well. diff --git a/src/modules/uac/doc/uac_admin.xml b/src/modules/uac/doc/uac_admin.xml index a15fbbc90..bafab7605 100644 --- a/src/modules/uac/doc/uac_admin.xml +++ b/src/modules/uac/doc/uac_admin.xml @@ -315,7 +315,7 @@ modparam("uac","credential","username:domain:password")
<varname>auth_realm_avp</varname> (string) - The definition of an PV that might contain the realm to be used + The definition of a PV that might contain the realm to be used to perform authentication. @@ -619,7 +619,7 @@ modparam("uac", "reg_use_domain", 1) By default no default socket is defined, the send socket is choosen from the - tm module when the requests is send out. + tm module when the requests is sent out. If you want to force a certain TCP port (e.g. 5060), you will need to set diff --git a/src/modules/uid_avp_db/avp_db.xml b/src/modules/uid_avp_db/avp_db.xml index 1172a5896..09d1073f0 100644 --- a/src/modules/uid_avp_db/avp_db.xml +++ b/src/modules/uid_avp_db/avp_db.xml @@ -177,7 +177,7 @@ string - The attr_group parameter defines a extra + The attr_group parameter defines an extra attribute group. See Extra Attribute Groups below for more information on the content @@ -454,7 +454,7 @@ Example Since this all looks a bit tricky, here are two examples for the - definition of a extra attribute group. + definition of an extra attribute group. modparam("avp_db", "attr_group", diff --git a/src/modules/uid_domain/uid_domain_mod.c b/src/modules/uid_domain/uid_domain_mod.c index fb96b906d..78f2b78f2 100644 --- a/src/modules/uid_domain/uid_domain_mod.c +++ b/src/modules/uid_domain/uid_domain_mod.c @@ -61,7 +61,7 @@ MODULE_VERSION /* * Version of domain table required by the module, increment this value if you - * change the table in an backwards incompatible way + * change the table in a backwards incompatible way */ #define DOMAIN_TABLE_VERSION 2 #define DOMATTR_TABLE_VERSION 1 diff --git a/src/modules/uid_uri_db/uid_uri_db_mod.c b/src/modules/uid_uri_db/uid_uri_db_mod.c index de01f3ea3..6609673b0 100644 --- a/src/modules/uid_uri_db/uid_uri_db_mod.c +++ b/src/modules/uid_uri_db/uid_uri_db_mod.c @@ -53,7 +53,7 @@ MODULE_VERSION /* * Version of domain table required by the module, * increment this value if you change the table in - * an backwards incompatible way + * a backwards incompatible way */ #define URI_TABLE_VERSION 2 diff --git a/src/modules/uri_db/uri_db.h b/src/modules/uri_db/uri_db.h index aabcad483..8134ca1fb 100644 --- a/src/modules/uri_db/uri_db.h +++ b/src/modules/uri_db/uri_db.h @@ -31,7 +31,7 @@ /* * Version of domain table required by the module, * increment this value if you change the table in - * an backwards incompatible way. The subscriber + * and backwards incompatible way. The subscriber * table version needs to be the same as auth_db use. */ #define URI_TABLE_VERSION 1 diff --git a/src/modules/userblocklist/README b/src/modules/userblocklist/README index c168e0515..180bebc05 100644 --- a/src/modules/userblocklist/README +++ b/src/modules/userblocklist/README @@ -297,7 +297,7 @@ modparam("userblocklist", "userblocklist_prefix_col", "prefix") 3.9. userblocklist_allowlist_col (string) - Specify if this a blocklist (0) or a allowlist (1) entry. + Specify if this is a blocklist (0) or an allowlist (1) entry. Example 1.9. Set userblocklist_allowlist_col parameter ... @@ -337,7 +337,7 @@ modparam("userblocklist", "globalblocklist_prefix_col", "prefix") 3.13. globalblocklist_allowlist_col (string) - Specify if this a blocklist (0) or a allowlist (1) entry. + Specify if this is a blocklist (0) or an allowlist (1) entry. Example 1.13. Set globalblocklist_allowlist_col parameter ... diff --git a/src/modules/userblocklist/doc/userblocklist_admin.xml b/src/modules/userblocklist/doc/userblocklist_admin.xml index b1de39359..ed436bbff 100644 --- a/src/modules/userblocklist/doc/userblocklist_admin.xml +++ b/src/modules/userblocklist/doc/userblocklist_admin.xml @@ -201,7 +201,7 @@ modparam("userblocklist", "userblocklist_prefix_col", "prefix")
<varname>userblocklist_allowlist_col</varname> (string) - Specify if this a blocklist (0) or a allowlist (1) entry. + Specify if this is a blocklist (0) or an allowlist (1) entry. Set <varname>userblocklist_allowlist_col</varname> parameter @@ -254,7 +254,7 @@ modparam("userblocklist", "globalblocklist_prefix_col", "prefix")
<varname>globalblocklist_allowlist_col</varname> (string) - Specify if this a blocklist (0) or a allowlist (1) entry. + Specify if this is a blocklist (0) or an allowlist (1) entry. Set <varname>globalblocklist_allowlist_col</varname> parameter diff --git a/src/modules/usrloc/README b/src/modules/usrloc/README index a15bc8c62..e5aec2555 100644 --- a/src/modules/usrloc/README +++ b/src/modules/usrloc/README @@ -304,9 +304,9 @@ Chapter 1. Admin Guide 1.1. Contact matching - The User location module module keeps a user location table and - provides access to the table for other modules. The module exports no - functions that can be used directly from routing scripts. + The User location module keeps a user location table and provides + access to the table for other modules. The module exports no functions + that can be used directly from routing scripts. 1.1. Contact matching @@ -1309,7 +1309,7 @@ modparam("usrloc", "db_clean_tcp", 1) 4.6. ul.add - Adds a new contact for an user AOR. + Adds a new contact for a user AOR. Parameters: * table name - table where the contact will be added (Ex: location). diff --git a/src/modules/usrloc/doc/usrloc_admin.xml b/src/modules/usrloc/doc/usrloc_admin.xml index f2d200168..360a1be14 100644 --- a/src/modules/usrloc/doc/usrloc_admin.xml +++ b/src/modules/usrloc/doc/usrloc_admin.xml @@ -16,7 +16,7 @@
Overview - The User location module module keeps a user location table and + The User location module keeps a user location table and provides access to the table for other modules. The module exports no functions that can be used directly from routing scripts. @@ -1641,7 +1641,7 @@ modparam("usrloc", "db_clean_tcp", 1) ul.add - Adds a new contact for an user AOR. + Adds a new contact for a user AOR. Parameters: diff --git a/src/modules/usrloc/hslot.c b/src/modules/usrloc/hslot.c index 243165cc8..9133997d3 100644 --- a/src/modules/usrloc/hslot.c +++ b/src/modules/usrloc/hslot.c @@ -72,7 +72,7 @@ void deinit_slot(hslot_t* _s) /*! - * \brief Add an element to an slot's linked list + * \brief Add an element to a slot's linked list * \param _s hash slot * \param _r added record */ diff --git a/src/modules/usrloc/udomain.c b/src/modules/usrloc/udomain.c index 4025cc549..d7b9e8a3e 100644 --- a/src/modules/usrloc/udomain.c +++ b/src/modules/usrloc/udomain.c @@ -956,7 +956,7 @@ int udomain_contact_expired_cb(db1_con_t* _c, udomain_t* _d) db_val_t query_vals[3]; int key_num = 2; db1_res_t* res = NULL; - str user, contact; + str user, contact, domain; int i; int n; urecord_t r; @@ -964,6 +964,9 @@ int udomain_contact_expired_cb(db1_con_t* _c, udomain_t* _d) #define RUIDBUF_SIZE 128 char ruidbuf[RUIDBUF_SIZE]; str ruid; +#define AORBUF_SIZE 512 + char aorbuf[AORBUF_SIZE]; + str aor; if (ul_db_mode!=DB_ONLY) { return 0; @@ -1058,6 +1061,14 @@ int udomain_contact_expired_cb(db1_con_t* _c, udomain_t* _d) continue; } user.len = strlen(user.s); + if(user.len < AORBUF_SIZE ) { + memcpy(aorbuf, user.s, user.len); + aor.s = aorbuf; + aor.len = user.len; + } else { + LM_ERR("user is too long %d\n", user.len); + continue; + } ci = dbrow2info(ROW_VALUES(row)+1, &contact, 0); if (ci==0) { @@ -1066,18 +1077,30 @@ int udomain_contact_expired_cb(db1_con_t* _c, udomain_t* _d) continue; } - lock_udomain(_d, &user); + if(ul_use_domain) { + domain.s = (char*)VAL_STRING(ROW_VALUES(row)+20); + domain.len = strlen(domain.s); + if(domain.len + aor.len < AORBUF_SIZE) { + aorbuf[aor.len] = '@'; + memcpy(aorbuf+aor.len+1, domain.s, domain.len); + aor.len += domain.len + 1; + } else { + LM_ERR("aor too long, using user part only\n"); + } + } + + lock_udomain(_d, &aor); /* don't use the same static value from get_static_urecord() */ memset( &r, 0, sizeof(struct urecord) ); - r.aor = user; - r.aorhash = ul_get_aorhash(&user); + r.aor = aor; + r.aorhash = ul_get_aorhash(&aor); r.domain = _d->name; if ( (c=mem_insert_ucontact(&r, &contact, ci)) == 0) { LM_ERR("inserting temporary contact failed for %.*s\n", - user.len, user.s); + aor.len, aor.s); release_urecord(&r); - unlock_udomain(_d, &user); + unlock_udomain(_d, &aor); goto error; } @@ -1096,11 +1119,11 @@ int udomain_contact_expired_cb(db1_con_t* _c, udomain_t* _d) ruid.len = c->ruid.len; } else { LM_ERR("ruid is too long %d for %.*s\n", c->ruid.len, - user.len, user.s); + aor.len, aor.s); } } release_urecord(&r); - unlock_udomain(_d, &user); + unlock_udomain(_d, &aor); if(ruid.len > 0 && ul_xavp_contact_name.s != NULL) { /* delete attributes by ruid */ uldb_delete_attrs_ruid(_d->name, &ruid); diff --git a/src/modules/usrloc/ul_rpc.c b/src/modules/usrloc/ul_rpc.c index 6565b07d5..491f9134e 100644 --- a/src/modules/usrloc/ul_rpc.c +++ b/src/modules/usrloc/ul_rpc.c @@ -498,7 +498,7 @@ static void ul_rpc_rm_aor(rpc_t* rpc, void* ctx) } static const char* ul_rpc_rm_aor_doc[2] = { - "Delete a address of record including its contacts", + "Delete an address of record including its contacts", 0 }; diff --git a/src/modules/usrloc/usrloc_mod.c b/src/modules/usrloc/usrloc_mod.c index 797c252b8..dc31c6f6e 100644 --- a/src/modules/usrloc/usrloc_mod.c +++ b/src/modules/usrloc/usrloc_mod.c @@ -35,7 +35,7 @@ * The module keeps a user location table and provides access * to the table to other modules. The module exports no functions * that could be used directly from scripts, all access is done - * over a API. A main user of this API is the registrar module. + * over an API. A main user of this API is the registrar module. * \see registrar */ diff --git a/src/modules/websocket/ws_conn.c b/src/modules/websocket/ws_conn.c index a56eb4923..1a4f8ffbb 100644 --- a/src/modules/websocket/ws_conn.c +++ b/src/modules/websocket/ws_conn.c @@ -464,7 +464,7 @@ ws_connection_t *wsconn_get(int id) for(wsc = wsconn_id_hash[id_hash]; wsc; wsc = wsc->id_next) { if(wsc->id == id) { wsconn_ref(wsc); - LM_DBG("wsconn_get returns wsc [%p] refcnt [%d]\n", wsc, + LM_DBG("wsconn_get id [%d] returns wsc [%p] refcnt [%d]\n", id, wsc, atomic_get(&wsc->refcnt)); WSCONN_UNLOCK; diff --git a/src/modules/websocket/ws_frame.c b/src/modules/websocket/ws_frame.c index 2da0863de..c7927b16f 100644 --- a/src/modules/websocket/ws_frame.c +++ b/src/modules/websocket/ws_frame.c @@ -809,12 +809,18 @@ void ws_keepalive(unsigned int ticks, void *param) LM_WARN("forcibly closing connection\n"); wsconn_close_now(wsc); } else if (ws_keepalive_mechanism == KEEPALIVE_MECHANISM_CONCHECK) { - tcp_connection_t *con = tcpconn_get(wsc->id, 0, 0, 0, 0); - if(con==NULL) { - LM_INFO("tcp connection has been lost\n"); - wsc->state = WS_S_CLOSING; + if(wsc->state == WS_S_REMOVING) { + LM_DBG("ws (id: %d wsc: %p) in removing state ignoring keepalive\n", + wsc->id, wsc); } else { - tcpconn_put(con); + tcp_connection_t *con = tcpconn_get(wsc->id, 0, 0, 0, 0); + if(con==NULL) { + LM_INFO("tcp connection has been lost (id: %d wsc: %p)\n", + wsc->id, wsc); + wsc->state = WS_S_CLOSING; + } else { + tcpconn_put(con); + } } } else { int opcode = (ws_keepalive_mechanism == KEEPALIVE_MECHANISM_PING) diff --git a/src/modules/xcap_client/README b/src/modules/xcap_client/README index be340df07..a01058b39 100644 --- a/src/modules/xcap_client/README +++ b/src/modules/xcap_client/README @@ -88,7 +88,7 @@ Chapter 1. Admin Guide promise that the newest version will always be present in database. The update method is also configurable, either through periodical - queries, applicable to any kind of XCAP server or with an management + queries, applicable to any kind of XCAP server or with a management command that should be sent by the server upon an update. The module is currently used by the “presence_xml” module, if the diff --git a/src/modules/xcap_client/doc/xcap_client_admin.xml b/src/modules/xcap_client/doc/xcap_client_admin.xml index 681c004fb..ca502528a 100644 --- a/src/modules/xcap_client/doc/xcap_client_admin.xml +++ b/src/modules/xcap_client/doc/xcap_client_admin.xml @@ -34,7 +34,7 @@ The update method is also configurable, either through periodical - queries, applicable to any kind of XCAP server or with an management command + queries, applicable to any kind of XCAP server or with a management command that should be sent by the server upon an update. diff --git a/src/modules/xcap_client/xcap_callbacks.h b/src/modules/xcap_client/xcap_callbacks.h index b5f69d6dc..d6b37b370 100644 --- a/src/modules/xcap_client/xcap_callbacks.h +++ b/src/modules/xcap_client/xcap_callbacks.h @@ -55,7 +55,7 @@ void destroy_xcapcb_list(void); /* register a callback for several types of events */ int register_xcapcb( int types, xcap_cb f); -/* run all transaction callbacks for an composed type */ +/* run all transaction callbacks for a composed type */ void run_xcap_update_cb(int type, str xid, char* stream); #endif diff --git a/src/modules/xmlrpc/xmlrpc.c b/src/modules/xmlrpc/xmlrpc.c index db60ad3d7..fcd93e500 100644 --- a/src/modules/xmlrpc/xmlrpc.c +++ b/src/modules/xmlrpc/xmlrpc.c @@ -825,7 +825,7 @@ static int flatten_nests(struct rpc_struct* st, struct xmlrpc_reply* reply) { return 1; if (!st->nnext) { - if(st->vtype == RET_ARRAY) { + if(st->vtype & RET_ARRAY) { if (add_xmlrpc_reply(&st->struct_out, &array_suffix) < 0) return -1; } else { if (add_xmlrpc_reply(&st->struct_out, &struct_suffix) < 0) return -1; @@ -834,7 +834,7 @@ static int flatten_nests(struct rpc_struct* st, struct xmlrpc_reply* reply) { &st->struct_out.body) < 0) return -1; } else { flatten_nests(st->nnext, reply); - if(st->vtype == RET_ARRAY) { + if(st->vtype & RET_ARRAY) { if (add_xmlrpc_reply(&st->struct_out, &array_suffix) < 0) return -1; } else { if (add_xmlrpc_reply(&st->struct_out, &struct_suffix) < 0) return -1; @@ -850,7 +850,7 @@ static int print_structures(struct xmlrpc_reply* reply, { while(st) { /* Close the structure first */ - if(st->vtype == RET_ARRAY) { + if(st->vtype & RET_ARRAY) { if (add_xmlrpc_reply(&st->struct_out, &array_suffix) < 0) return -1; } else { if (add_xmlrpc_reply(&st->struct_out, &struct_suffix) < 0) return -1; @@ -979,7 +979,7 @@ static struct rpc_struct* new_rpcstruct(xmlDocPtr doc, xmlNodePtr structure, } else { /* We will build a reply structure */ if (init_xmlrpc_reply(&p->struct_out) < 0) goto err; - if(vtype==RET_ARRAY) { + if(vtype & RET_ARRAY) { if (add_xmlrpc_reply(&p->struct_out, &array_prefix) < 0) goto err; } else { if (add_xmlrpc_reply(&p->struct_out, &struct_prefix) < 0) goto err; @@ -1174,7 +1174,7 @@ static int rpc_add(rpc_ctx_t* ctx, char* fmt, ...) reply = &ctx->reply; while(*fmt) { - if (ctx->flags & RET_ARRAY && + if ((ctx->flags & RET_ARRAY) && add_xmlrpc_reply(reply, &value_prefix) < 0) goto err; if (*fmt == '{' || *fmt == '[') { void_ptr = va_arg(ap, void**); @@ -1188,7 +1188,7 @@ static int rpc_add(rpc_ctx_t* ctx, char* fmt, ...) if (print_value(reply, reply, *fmt, &ap) < 0) goto err; } - if (ctx->flags & RET_ARRAY && + if ((ctx->flags & RET_ARRAY) && add_xmlrpc_reply(reply, &value_suffix) < 0) goto err; if (add_xmlrpc_reply(reply, &lf) < 0) goto err; fmt++; @@ -1545,7 +1545,7 @@ static int get_string(char** val, struct xmlrpc_reply* reply, break; case XML_T_INT: case XML_T_BOOL: - /* convert str to int an back to str */ + /* convert str to int and back to str */ i = strtol(val_str, &end_ptr, 10); if (val_str==end_ptr){ ret=-1; @@ -1772,12 +1772,12 @@ static int rpc_rpl_printf(rpc_ctx_t* ctx, char* fmt, ...) if (n > -1 && n < buf_size) { s.s = buf; s.len = n; - if (ctx->flags & RET_ARRAY && + if ((ctx->flags & RET_ARRAY) && add_xmlrpc_reply(reply, &value_prefix) < 0) goto err; if (add_xmlrpc_reply(reply, &string_prefix) < 0) goto err; if (add_xmlrpc_reply_esc(reply, &s) < 0) goto err; if (add_xmlrpc_reply(reply, &string_suffix) < 0) goto err; - if (ctx->flags & RET_ARRAY && + if ((ctx->flags & RET_ARRAY) && add_xmlrpc_reply(reply, &value_suffix) < 0) goto err; if (add_xmlrpc_reply(reply, &lf) < 0) goto err; mxr_free(buf); @@ -1874,7 +1874,7 @@ static int rpc_struct_add(struct rpc_struct* s, char* fmt, ...) member_name.s = va_arg(ap, char*); member_name.len = (member_name.s ? strlen(member_name.s) : 0); - if(s->vtype==RET_ARRAY && *fmt == '{') { + if((s->vtype==RET_ARRAY) && *fmt == '{') { if (add_xmlrpc_reply(reply, &value_prefix) < 0) goto err; if (add_xmlrpc_reply(reply, &struct_prefix) < 0) goto err; } @@ -1902,7 +1902,7 @@ static int rpc_struct_add(struct rpc_struct* s, char* fmt, ...) } if (add_xmlrpc_reply(reply, &value_suffix) < 0) goto err; if (add_xmlrpc_reply(reply, &member_suffix) < 0) goto err; - if(s->vtype==RET_ARRAY && *fmt == '{') { + if((s->vtype & RET_ARRAY) && *fmt == '{') { if (add_xmlrpc_reply(reply, &struct_suffix) < 0) goto err; if (add_xmlrpc_reply(reply, &value_suffix) < 0) goto err; } @@ -1926,7 +1926,7 @@ static int rpc_array_add(struct rpc_struct* s, char* fmt, ...) struct rpc_struct* p, *tmp; reply = &s->struct_out; - if(s->vtype!=RET_ARRAY) { + if(!(s->vtype & RET_ARRAY)) { LM_ERR("parent structure is not an array\n"); goto err; } @@ -2612,7 +2612,7 @@ static int ki_dispatch_rpc(sip_msg_t* msg) goto skip; } ctx.flags = exp->flags; - if (exp->flags & RET_ARRAY && + if ((exp->flags & RET_ARRAY) && add_xmlrpc_reply(&ctx.reply, &array_prefix) < 0) goto skip; exp->function(&func_param, &ctx); diff --git a/utils/kamcmd/Makefile b/utils/kamcmd/Makefile index f12306bf1..1fd923d85 100644 --- a/utils/kamcmd/Makefile +++ b/utils/kamcmd/Makefile @@ -80,6 +80,7 @@ endif # detect libreadline ifneq ($(BUILDER),) DEFS += $(shell $(BUILDER) --cflags readline) + DEFS+=-DUSE_READLINE LIBS += $(shell $(BUILDER) --libs readline) use_readline := 1 else diff --git a/utils/kamcmd/README b/utils/kamcmd/README index 50e83e693..13a381841 100644 --- a/utils/kamcmd/README +++ b/utils/kamcmd/README @@ -30,7 +30,7 @@ Options: -s address unix socket name or host name to send the commands on -R name force reply socket name, for the unix datagram socket mode -D dir create the reply socket in the directory if no reply - socket is forced (-R) and an unix datagram socket is selected + socket is forced (-R) and a unix datagram socket is selected as the transport -f format print the result using format. Format is a string containing %v at the places where values read from the reply should be diff --git a/utils/kamcmd/kamcmd.c b/utils/kamcmd/kamcmd.c index e940ab8ae..459fbfc30 100644 --- a/utils/kamcmd/kamcmd.c +++ b/utils/kamcmd/kamcmd.c @@ -780,7 +780,7 @@ end: * and stops at each %v, returning a pointer after the %v, setting *size * to the string length (not including %v) and *type to the corresponding * BINRPC type (for now only BINRPC_T_ALL). - * To escape a '%', use "%%", and check for type==-1 (which means skip an call + * To escape a '%', use "%%", and check for type==-1 (which means skip a call * again parse_fmt). * Usage: * n="test: %v,%v,%v\n"; diff --git a/utils/kamctl/kamctl.base b/utils/kamctl/kamctl.base index f3b9e1f66..164a867bd 100644 --- a/utils/kamctl/kamctl.base +++ b/utils/kamctl/kamctl.base @@ -10,7 +10,7 @@ locate_tool() { while [ -n "$1" ] do if [ -x /usr/bin/which ] ; then - TOOLPATH=`which $1` + TOOLPATH=`which $1 2> /dev/null` if [ -n "$TOOLPATH" ]; then return fi diff --git a/utils/kamctl/kamdbctl.8 b/utils/kamctl/kamdbctl.8 index 787a37a87..2e4240eb7 100644 --- a/utils/kamctl/kamdbctl.8 +++ b/utils/kamctl/kamdbctl.8 @@ -10,7 +10,7 @@ kamdbctl \- Kamailio database control tool .SH DESCRIPTION .B kamdbctl -is a script to maintain the database needed by some Kamalio modules. +is a script to maintain the database needed by some Kamailio modules. .SH Configuration Before you can use diff --git a/utils/kamctl/xhttp_pi/pi_framework-00 b/utils/kamctl/xhttp_pi/pi_framework-00 index eb02c8b0c..26bb8a0ee 100644 --- a/utils/kamctl/xhttp_pi/pi_framework-00 +++ b/utils/kamctl/xhttp_pi/pi_framework-00 @@ -20,7 +20,7 @@ DB1_STR, /**< represents a string of 'str' type */ DB1_DATETIME, /**< represents date and time */ DB1_BLOB, /**< represents a large binary object */ - DB1_BITMAP /**< an one-dimensional array of 32 flags */ + DB1_BITMAP /**< a one-dimensional array of 32 flags */ /* validation */ P_HOST_PORT /**< represents [proto:]host[:port] */ P_IPV4_PORT /**< represents [proto:]IPv4[:port] */ diff --git a/utils/kamctl/xhttp_pi/pi_framework.xml b/utils/kamctl/xhttp_pi/pi_framework.xml index f6d5ecaca..9c7730ce6 100644 --- a/utils/kamctl/xhttp_pi/pi_framework.xml +++ b/utils/kamctl/xhttp_pi/pi_framework.xml @@ -20,7 +20,7 @@ DB1_STR, /**< represents a string of 'str' type */ DB1_DATETIME, /**< represents date and time */ DB1_BLOB, /**< represents a large binary object */ - DB1_BITMAP /**< an one-dimensional array of 32 flags */ + DB1_BITMAP /**< a one-dimensional array of 32 flags */ /* validation */ P_HOST_PORT /**< represents [proto:]host[:port] */ P_IPV4_PORT /**< represents [proto:]IPv4[:port] */ diff --git a/utils/pdbt/docs/data_format.txt b/utils/pdbt/docs/data_format.txt index e84be5627..aca5fe30e 100644 --- a/utils/pdbt/docs/data_format.txt +++ b/utils/pdbt/docs/data_format.txt @@ -1,7 +1,7 @@ * File format off the number portability data * The number portability data consists only from the number or number block in -the internation format followed by an semi-colon and the carrier identity. +the internation format followed by a semi-colon and the carrier identity. Each entry must be in a separate line. Format [0-9]{n,m}; [0-9][0-9][0-9] diff --git a/utils/pdbt/docs/network_protocol.txt b/utils/pdbt/docs/network_protocol.txt index 7231a0993..3830c1076 100644 --- a/utils/pdbt/docs/network_protocol.txt +++ b/utils/pdbt/docs/network_protocol.txt @@ -1,7 +1,7 @@ * Network protocol of pdb server and sip-router module * The pdb server daemon listen only for UDP messages. The requests contains in -the UDP payload the number starting with a international prefix, e.g. '49' for +the UDP payload the number starting with an international prefix, e.g. '49' for germany. It must contain only numbers like this: '49721913742734'. The answer packet contains then the number string from the respective request,