diff --git a/.clang-format b/.clang-format index b44f1c4a5..d80514908 100644 --- a/.clang-format +++ b/.clang-format @@ -36,8 +36,6 @@ BreakBeforeBinaryOperators: NonAssignment BreakBeforeBraces: Mozilla BreakBeforeTernaryOperators: true BreakConstructorInitializersBeforeComma: false -BreakAfterJavaFieldAnnotations: false -BreakStringLiterals: true ColumnLimit: 80 CommentPragmas: '^ IWYU pragma:' ConstructorInitializerAllOnOneLineOrOnePerLine: false @@ -55,12 +53,9 @@ IncludeCategories: Priority: 3 - Regex: '.*' Priority: 1 -IncludeIsMainRegex: '$' IndentCaseLabels: true IndentWidth: 4 IndentWrappedFunctionNames: false -JavaScriptQuotes: Leave -JavaScriptWrapImports: true KeepEmptyLinesAtTheStartOfBlocks: true MacroBlockBegin: '' MacroBlockEnd: '' diff --git a/.travis.yml b/.travis.yml index df0862fce..11eae2df7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,10 +9,11 @@ env: services: - docker before_install: - - docker pull kamailio/pkg-kamailio-docker:5.1-$DIST -script: docker run -v $TRAVIS_BUILD_DIR:/code:rw kamailio/pkg-kamailio-docker:5.1-$DIST /bin/bash -c "cd /code; CC=$CC DIST=$DIST ./test/travis/build_travis.sh" + - docker pull kamailio/pkg-kamailio-docker:dev-$DIST +script: docker run -v $TRAVIS_BUILD_DIR:/code:rw kamailio/pkg-kamailio-docker:dev-$DIST /bin/bash -c "cd /code; CC=$CC DIST=$DIST ./test/travis/build_travis.sh" branches: only: + - 'master' - '/^5\.[0-9]+$/' notifications: irc: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..3f47a94f5 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,31 @@ +# Kamailio Code of Conduct + +## Be respectful + +Inevitably there will be people in the Kamailio project with whom you may disagree, or find it difficult to cooperate. Accept that, but even so, remain respectful. Disagreement is no excuse for poor behaviour or personal attacks, and a community in which people feel threatened is not a healthy community. + +## Assume good faith + +Contributors have many ways of reaching the common goals of the project which may differ from your ways. Assume that other people are working towards this goal. Note that many of our Contributors are not native English speakers or may have different cultural backgrounds. + +## Be collaborative + +It's good to ask for help when you need it. Similarly, offers for help should be seen in the context of our shared goal of improving Kamailio. When you make something for the benefit of the project, be willing to explain to others how it works, so that they can build on your work to make it even better. + +## Try to be concise + +Keep in mind that what you write once will be read by many persons. Writing a short email means people can understand the conversation as efficiently as possible. When a long explanation is necessary, consider adding a summary. + +## Be open + +Most ways of communication used within Kamailio allow for public and private communication. You should preferably use public methods of communication for Kamailio-related messages, unless posting something sensitive. This applies also to messages for help or Kamailio-related support. + +## In case of problems + +While this code of conduct should be adhered to by participants, we recognize that sometimes people may have a bad day, or be unaware of the Kamailio code of conduct. When that happens, you may reply to them and point out this code of conduct. Such messages may be in public or in private, whatever is most appropriate. However, your message should still adhere to the relevant parts of this code of conduct; in particular, it should not be abusive or disrespectful. Assume good faith; participants are probably unaware of their bad behaviour. + +Serious or persistent offenders will be temporarily or permanently banned from the Kamailio project infrastructure. Complaints should be made (in private) to the Kamailio management board, by email to: management [at] kamailio (dot) org + +The Kamailio management board, while committed to applying its discretion sparingly and judiciously, is the final arbiter on controversies arising from this code of conduct, and indeed, any other controversies. + +#### Adapted from the Debian Code of Conduct: https://www.debian.org/code_of_conduct. diff --git a/COPYING b/COPYING index d25f72b55..09dce96df 100644 --- a/COPYING +++ b/COPYING @@ -12,7 +12,7 @@ IMPORTANT NOTES (see http://www.gnu.org/copyleft/gpl-faq.html#GPLAndPlugins for a detailed explanation) -3) Note that the GPL bellow is copyrighted by the Free Software Foundation, +3) Note that the GPL below is copyrighted by the Free Software Foundation, but the Kamailio software is copyrighted by multiple individuals and companies. diff --git a/ChangeLog b/ChangeLog index 392a2c621..b4fa940ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,627 +1,673 @@ -===================== 2019-04-11 Version 5.1.8 Released ================== +===================== 2019-05-22 Version 5.2.3 Released ===================== -===================== Changes Since Version 5.1.7 =========================== +===================== Changes Since Version 5.2.2 =========================== -commit d037773fb85b196f02cfc67eb993687e288c8de0 +commit f946e1bd70099c0d6c490cdafdb2d111fad4fbfc Author: Daniel-Constantin Mierla -Date: Thu Apr 11 10:43:41 2019 +0200 +Date: Wed May 22 12:42:04 2019 +0200 - Makefile.defs: version set to 5.1.8 + Makefile.defs: version set to 5.2.3 -commit 9c1c9b56ce438780b16693cb37b2a2a9b947226b +commit 45cae4e6829ba2affd17c31745f217b97f173b07 Author: Daniel-Constantin Mierla -Date: Thu Apr 11 10:40:21 2019 +0200 +Date: Wed May 22 12:40:04 2019 +0200 - pkg: rpm - specs updated for v5.1.8 + pkg/kamailio/deb: version set to 5.2.3 -commit 6fcd28bddfba628fa49a621cd1c20919a5755085 -Author: Victor Seva -Date: Thu Apr 11 09:53:51 2019 +0200 +commit 4a6a9574536400d67713f1317111c5fc1417e2db +Author: Daniel-Constantin Mierla +Date: Wed May 22 12:32:04 2019 +0200 - pkg/kamailio/deb: version set to 5.1.8 + pkg: version set to 5.2.3 for obs, rpms and apkbuild -commit e723cc9730a039a24f6fdb969c3259b2d4935be4 -Author: Henning Westerholt -Date: Thu Apr 11 09:21:44 2019 +0200 +commit 1d06499462e1e893e5965d2cc9553cbdd5bd347d +Author: Daniel-Constantin Mierla +Date: Mon May 20 10:56:08 2019 +0200 - core: don't abort() Kamailio in case of invalid lump parameters, return an error + tls: register SNI callback for server default profile - (cherry picked from commit 853f65454d1a77b0145e80b006699fa1048045ac) + - make SNI work for other profile when the default one does not have + server_name + - GH #1938 + + (cherry picked from commit 08d22b7bd95828554e30f4c23e906cd9d234e1cd) -commit a09a57cd6fca6790c496435794fab02695782596 +commit a67274df404107a729890b5d4936928f8cdde379 Author: Daniel-Constantin Mierla -Date: Wed Apr 10 11:34:52 2019 +0200 +Date: Thu May 16 08:57:17 2019 +0200 - topoh: execute the kemi event route callbacks with context + core: kemi - typedefs for functions with 5 parameters - - manual backport for: - 121282ac4986d6389a6dd64c35b77337a4ca256b + (cherry picked from commit e184648a9cf9b7be2cc12ef64bbb978926384e2b) -commit 259879497ae9557256c4599811ffa142b088b101 +commit 110de27806d7703939b3123cff7a8fe423028d0a Author: Daniel-Constantin Mierla -Date: Wed Apr 10 11:32:10 2019 +0200 +Date: Tue May 14 11:02:49 2019 +0200 - topos: set context when executing event route + core: pv - define the string printed for null value + + - added function to return the str null value - - manual backporting for: - 403da8e8dcc2e4986595f183f0ac37a6bb41ab86 - d82a6cd45c1486f767b7fec2a02161f7314c9071 + (cherry picked from commit c84a89a3ab5b3f3174203753e51926143b0309f8) -commit 30e2399d7bbad05b1d4967056d869d8e46b33165 -Author: Daniel-Constantin Mierla -Date: Wed Apr 10 09:56:20 2019 +0200 +commit 4676d3d2c1267761ac6405464459b49c809afcbf +Author: Henning Westerholt +Date: Thu Apr 25 21:38:44 2019 +0200 - core: kemi - backpup and restore old context inside sr_kemi_ctx_route() + pv: clone string in all substr operations, related to GH #1937 - (cherry picked from commit 0689ac5976121d5a8edf815c0cee51da1098530f) - (cherry picked from commit cb1b346f6b815ed0fdd9644e5c208f7c2a0d9f14) + (cherry picked from commit 280eabf16a45f522655f8b49677e46c75d34024f) -commit 381926e96f9ab9f38e920b5a0e9c29afdd7480f0 -Author: Daniel-Constantin Mierla -Date: Tue Apr 9 13:03:38 2019 +0200 +commit b1e1fc1002bc4a11b7c4ff0421de483b9a78dceb +Author: Sergey Safarov +Date: Sat May 18 23:00:38 2019 +0300 - core: kemi - wrapper function to run callbacks with context + pkg/kamailio/obs: Packaged app_python3 - (cherry picked from commit 395cae83da4d83920dd038d299c30ffa97b6c272) - (cherry picked from commit d63b21f1b52861a31555f63b2d8d88c0c2a672ba) + (cherry picked from commit 1abcd38495c39cb0ba69ddcb9ddd06a695bd6e67) -commit 547f3dfaa6536f0e768b89844aa287d8de478b77 -Merge: 5e7201ef8 631ea0b80 -Author: Daniel-Constantin Mierla -Date: Wed Apr 10 10:54:40 2019 +0200 +commit 089874a2eb218e7f43bde12f95a113a1b4de5988 +Author: Sergey Safarov +Date: Sat May 18 19:27:56 2019 +0300 - Merge pull request #1925 from sergey-safarov/pg_make + pkg/kamailio/obs: Fixed packaging on Fedora 30 [skip ci] - [5.1] Fixed packaging in opensuse/tumbleweed + (cherry picked from commit b2402ec1fdde4584c9061e0a47a92e3328b5e7a8) -commit 631ea0b80ee1c95b0362668a67ba0001c8070a2c -Author: Daniel-Constantin Mierla -Date: Mon Apr 1 16:52:21 2019 +0200 +commit 14ac6f410e2e2a6bf6010598234e2bb772ecec0f +Author: Sergey Safarov +Date: Sat May 18 12:56:08 2019 +0300 - db_postgres: Makefile - fixed name of variable used to detect pkg-config + pkg/kamailio/alpine: Packaged pua_json, db_redis, ims_ocs, acc_json [skip ci] - (cherry picked from commit 49a34c863335e6b0b09e397d7962395306506c00) + (cherry picked from commit fd98820199be3c395174b6f86a24773356d802b6) -commit 2664b6ed8001f356ce2076433e858f807d237962 +commit 353192ca4f2203fb85fdda6e0ea9e734f27019cf Author: Daniel-Constantin Mierla -Date: Mon Apr 1 09:52:16 2019 +0200 +Date: Thu May 16 12:35:46 2019 +0200 - db_postgres: try to use pkg-config for lib paths + db_mongodb: catch the null values and set the type to DB1_STRING - - GH #1915 + - avoid the log message on unhandled type - (cherry picked from commit b23e8e47474d9c25c6de0f6c3da07ae43b85ad8a) + (cherry picked from commit a5781fc4bb3063c6e7abf54d93178ef610617298) -commit 5e7201ef86ab6152034989728272204ef02a4685 -Author: Daniel-Constantin Mierla -Date: Fri Mar 22 04:34:26 2019 +0100 +commit fcf6fd61e38da76e775fea6d38df3704a28f545c +Author: szcom +Date: Wed May 15 12:54:12 2019 +0200 - dialog: parse headers for request and transfer reply for errors + ims_qos: use msg_ctx_id_t to detect same msg/transaction processing - (cherry picked from commit 4e1ebc6b446e6264f91c96deaed0548de353d731) - (cherry picked from commit b4df4fc4b0401b522b7fce516e286aec85d4ad96) + - relies on msg id and pid, not only msg id (which is incremeted by + each process and has potential conflicts with failure routing) + - msg id and pid are enough to indentify the transaction thus + dropping checks for the pointers + + (cherry picked from commit b951d88eea52e9fbbec62d2069b6169fc182ba91) -commit a9fb58a83ec8738a371d6be995d457b88e16a2f4 +commit 256400382a9a4edac601c18cf2affe59b4dd93b4 Author: Daniel-Constantin Mierla -Date: Fri Mar 22 04:17:23 2019 +0100 +Date: Tue May 14 16:36:08 2019 +0200 - dialog: parse tm callback reply in early phase to detect broken format + core: return negative on error adding pre-processor substdef - (cherry picked from commit 6b9837c30f9d2a2ca937d7e6d8c1c496fe4d7d30) - (cherry picked from commit c2995f731ab3a94f302af63bdad9c3bf61d4e995) + - expected by the checks when executing the functions + + (cherry picked from commit e648fd5e10a6ec694129be5fab0a84c2c90aa916) -commit 36bd57d902f990f9d05e1cd6589f2fa3f0ef6897 +commit 1f4262b3f7db30e917eec36132c193c4be6c04c1 Author: Daniel-Constantin Mierla -Date: Tue Apr 2 17:09:53 2019 +0200 +Date: Mon May 13 15:27:08 2019 +0200 - lib/srdb1: use system time to compute db query execution duration + rtpengine: allocate space for one more rtp relay control socket - (cherry picked from commit ce8d36f301d7688255597a67693e47dc14448650) - (cherry picked from commit a2de837273c84c42233dd12829a8aca57257ce9f) + - keep it as safety end place holder + - should make it work again for the case when starting with no rtp + engine in the database - GH #1940 + + (cherry picked from commit c836f8ba2f4d3a32b8a4fecba332355df01daca6) -commit c3132d81f52197938b9be5616233d59ddc7126f2 +commit b7b1169a36099a1175314892df3f2a49e677c9a9 Author: Daniel-Constantin Mierla -Date: Tue Apr 2 13:45:56 2019 +0200 +Date: Mon May 13 12:40:24 2019 +0200 - lib/srdb1: use the proper field for latency db limit + core: adjust the value for _pv_cache_counter - (cherry picked from commit 7560edb8aac6b60a5c4392db21c16e4096bf529d) - (cherry picked from commit 8d1996ac6c6c7b1445bcb8f4589bfc3b1cfed805) + - reported by GH #1948 + + (cherry picked from commit 8e51acdd73e8e4ab95c79cc69fb53add7c6cfd38) -commit 37f847af805ec20762348898c6427c8df8d02025 -Author: Daniel-Constantin Mierla -Date: Fri Mar 29 10:06:28 2019 +0100 +commit de94b66c22a0ad9127bba331433c24564638ca5d +Author: Seven Du +Date: Sat May 4 07:30:23 2019 +0800 - tcpops: set tcp keepalive values when available per option - - - cover macos and *bsd for couple of options + core: fix timer typo - (cherry picked from commit 278fd5a892c14f23e9f2b8d1f3fd3232c1d319f3) - (cherry picked from commit eb5f2096282e93b14fecfc64f22aba0db467dec5) + (cherry picked from commit c85ec2eed71c5d1bc3957437f27ffe9b6f18f4df) -commit d57e47ea5e6ab26258ca596ff85c3fa7e5b0ded6 +commit 9260a2bd11767d694dcb93c2600869b94abb5e27 Author: Kamailio Dev -Date: Wed Apr 3 09:16:45 2019 +0200 +Date: Wed May 15 16:32:07 2019 +0200 modules: readme files regenerated - modules ... [skip ci] -commit b0a9b1509c08af68e13ee5cef1214ae416d4c542 -Author: Henning Westerholt -Date: Wed Apr 3 09:05:32 2019 +0200 +commit efa660150a4e68e1af274d492acc7b05bf9b555a +Author: Ovidiu Sas +Date: Wed May 15 10:16:27 2019 -0400 - uac: document limitation regarding uac_replace_* with loose_route and msg_apply_changes + db_text: add missing "max_result_rows" param to the doc - (cherry picked from commit 05696125b775d3c275b2516ae34e73b91ce51c9a) + (cherry picked from commit 6b7d02c9ed404abaa7c45dbcc86173533a838e01) -commit de2364784f5c7b257ff796a83d12f3bb2d130308 -Author: sergey-safarov -Date: Wed Mar 27 10:43:42 2019 +0300 +commit f406266966b68fff9493c62ac5c9ccc5b8237e6b +Author: Daniel-Constantin Mierla +Date: Wed May 15 12:47:19 2019 +0200 - ipops: Fixed mask for 172.16.0.0/12 network (#1907) - - (cherry picked from commit 1b6332fe565d97695a1eb84172e6f19f26381101) + siptrace: fix memory leak on sip trace function with dst uri -commit 863a91854eb65c8b5bc49ef62f01dcf9a8b586d0 -Author: Sergey Safarov -Date: Wed Nov 7 16:04:48 2018 +0000 +commit b536723c66441203c2eaaa1ed1a68c981a0254be +Author: Victor Seva +Date: Wed May 15 10:00:56 2019 +0200 - pkg/kamailio/obs: smsops module relocated into main rpm package + dialplan: don't try to translate on dp_match() - (cherry picked from commit b0e814315a196cb6b1e8eca453cf6e4eea26dca4) + fix #1952 + + (cherry picked from commit cced23795582d9f4cc2bae545ea1c24664303036) -commit 41316c29677b6a6eac25bda6383f72905a4a32bc -Author: Sergey Safarov -Date: Tue Nov 6 20:17:51 2018 +0000 +commit bdced08654188d70da6af776ac73c851196425b4 +Author: Daniel-Constantin Mierla +Date: Mon May 13 10:03:43 2019 +0200 - pkg/kamailio/obs: Fixed missing libmnl-devel and librabbitmq-devel on RHEL dists + core: proper check for allocation of route_locks_size - (cherry picked from commit 68646c6fff4a06fa949296d1a41483ff51fc9389) + - regression added with relocation of code + + (cherry picked from commit 403de77c079a125ac101ff2ae58e08551a12a022) -commit 3ba84422d02d21e88d18b7bc7b70d3061d532f11 -Author: Sergey Safarov -Date: Mon Nov 5 20:18:02 2018 +0000 +commit 04a0a7014a605d9d332b70f966f8afc5fec4d448 +Author: Ovidiu Sas +Date: Tue Apr 30 14:21:38 2019 -0400 - pkg/kamailio/obs: update spec to mach currently used + db_text: avoid buffer overflow for large names and/or values in db_text files - (cherry picked from commit 3dade81da58adb40b039a23dcaf67795e41ccebe) + (cherry picked from commit 20febb28402a2e1ef3c23fda6db0825ae64affc6) -commit 56e558a6242d033c8372ce6559578339795d940c -Author: Edwin Fine -Date: Fri Jun 8 14:45:12 2018 -0400 +commit 5f8114102fb64510b283ceba7f10a3345e632d70 +Author: Ovidiu Sas +Date: Tue Apr 30 13:31:20 2019 -0400 - packaging: Fix typo in kamailio.spec + db_text: throw an error and abort instead of silently truncate tables - There is a number of occurrences of `%bcond_with|without rebbitmq`. Since the condition to include the `rabbitmq` package (line 633) is `%if %{with rabbitmq}`, this conditional statement would not have the intended effect. If this was not a deliberate typo for some reason, this commit fixes the issue by changing all `%bcond_with|without` occurrences of `rebbitmq` to `rabbitmq`. - - (cherry picked from commit 861c52ca6a9ca3bd6be5e89df92c1f65b46002f4) + (cherry picked from commit 3ed1fcdbb9247b1eb10d8d544f2a67b277bd1031) -commit 8ab69f99ad181618adfee2a3b9dfc175b8ababca -Author: Kamailio Dev -Date: Tue Mar 19 07:17:38 2019 +0100 +commit 75f743d9501faaead7a173c8f459d4b2adfcb41d +Author: Victor Seva +Date: Mon May 6 11:20:00 2019 +0200 - modules: readme files regenerated - modules ... [skip ci] + usrloc: udomain_contact_expired_cb fix memory leak + + We need to call release_urecord in order to free the ucontacts + generated at get_urecord() on shared memory + + (cherry picked from commit 48fd1a23cc3ddcb0df082bc24669dbf3a9fdc203) -commit 95ef9ddcf41e1522a78ac9eca14460c069562018 +commit e05a3f30986244d1a1bdbefda63278416b8aa2af Author: Daniel-Constantin Mierla -Date: Mon Mar 18 15:57:08 2019 +0100 +Date: Sun May 5 08:04:55 2019 +0200 - usrloc: docs - fixes for some param types + htable: fix export of kemi sht_reset() - (cherry picked from commit 0c2815aec9068511c1abbfd3fa0f1c89b66c57ce) - (cherry picked from commit 73c1fde7932a39a74e43013994525ac2a4473366) + - GH #1941 + + (cherry picked from commit 5b9fb55b6697bf3cd16727110a4b4bcb8350357d) -commit c14bb3cb8ff6ba7df81f1955f629ee169da0edd6 +commit 7fd6ca67616077fb8aab4a279c8b251de94b4a95 Author: Daniel-Constantin Mierla -Date: Mon Mar 11 09:57:57 2019 +0100 +Date: Fri May 3 11:53:15 2019 +0200 - topoh: check returned pointer when decoding call-id + auth_ephemeral: test the lenghts for compared passwords - (cherry picked from commit b5ce9d8f9a1b1fd705ad4b533e7cbc9166a3f577) - (cherry picked from commit 77eebed8be1930fdb03f4fce0a1caac1bd45c583) + (cherry picked from commit 42129d35e4510092266322168f68f3019d28bdb8) -commit b0477d9a77d0f08e298da81d78d23a8f13c19910 +commit 290eafbdd9423219defdfdc56bad9eeabc036b80 Author: Daniel-Constantin Mierla -Date: Sat Mar 9 09:40:59 2019 +0100 +Date: Fri May 3 10:39:22 2019 +0200 - tm: more debug to track decision to relay reply or not + htable: set expires for kemi htable.sht_setxs() - (cherry picked from commit b292adb668528340fca381925724540afc7f13e8) - (cherry picked from commit 56802275b4b4cc77b85b7ef9460134265974e455) + - GH #1943 + + (cherry picked from commit f64da295f6c3cfa3e340616fcc12564ae2689746) -commit ca1adbf32bc8a20c8199bad7f769c2a80d70eff5 +commit c19ab2e81ed68379b58df60005f954fe8112ceba Author: Daniel-Constantin Mierla -Date: Fri Mar 8 18:40:45 2019 +0100 +Date: Fri May 3 10:28:18 2019 +0200 - core: tcp - more details in debug messages + app_python3: use PyBytes_AS_STRING() instead of PyString_AsString() - (cherry picked from commit 60f7ff60a95ab5dd8192391f50f760e802d11e07) - (cherry picked from commit efbf7aa7b8b3af03be43d926c6e0fc23c2349e87) + - PyString_AsString() is no longer in Python3 API + + (cherry picked from commit 48bb059d8ff9b009d3c8afda83e0c964ab604d5a) -commit 2dae7a839bf9703fac6a70abfcd4e8e49c49157c +commit 8dcb244225aa93554e5de6272420dc5cbec84ee1 Author: Daniel-Constantin Mierla -Date: Wed Mar 6 08:16:29 2019 +0100 +Date: Fri May 3 09:38:37 2019 +0200 - rtjson: reuse r-uri if not given in the rtjson field - - (cherry picked from commit b6b91a6d517675e9891e83b57dcdf90d7db0673d) - (cherry picked from commit f3e02e66beb2f461905d33157ae2aa1e09a74c54) + app_python3: proper cast for ssiis function execution -commit 091dc36fbccb3071867b398f763472e3fbfd1157 +commit babd8c28b27a2f4154ca3997b04d181f019c82c8 Author: Daniel-Constantin Mierla -Date: Tue Mar 5 22:40:27 2019 +0100 +Date: Fri May 3 09:05:26 2019 +0200 - rtjson: more debug messages when getting routes from json + app_python: handle kemi sssi parameters - (cherry picked from commit 649687fd8dd5a3d9b6b04d75d4e0d129f14e91d6) - (cherry picked from commit 18b8cf91fd370523ec3da5f34b86eb8cc99fc39a) + (cherry picked from commit a36f2c050ff607b5f3c08b7fc8ed01e082e91dc8) -commit 908f0fdacef0fe1552919a39e8b7b8c3ace54358 +commit 63185483ae8f13e7199c9eedd30d0794a1598a05 Author: Daniel-Constantin Mierla -Date: Mon Mar 4 20:30:25 2019 +0100 +Date: Tue Dec 4 14:57:41 2018 +0100 - rtjson: user wrapper functions for kemi exports + core: kemi - define for function type with (str*, str*, int, int, str*) params - (cherry picked from commit 138172a388bc8b23035a7a422b97fc0276ed1462) - (cherry picked from commit 24a739225f29650c3b4eef7fb46cce6c81e97e53) + (cherry picked from commit a23f98c1751fffb80463ea61c4de76f62f8dbb6f) -commit a72ff9681fe9371ca0f0dcf70685d8b58dbb325a +commit 42117d15568025c5604f5aa82d47deec5f996b5a Author: Daniel-Constantin Mierla -Date: Sat Mar 2 13:40:47 2019 +0100 +Date: Fri May 3 08:54:28 2019 +0200 - topoh: detect when via param is shorter than expected prefix + apy_python: fixed condition in matching parameter types - (cherry picked from commit e6950ffb1985493e717e3d774eddad779aed1514) - (cherry picked from commit 544d1ccab56ddc3b58c5301ade5c241c4c5b4433) + - GH #1944 + + (cherry picked from commit cbec7f92213de1ff096ea00c5a7a3b6354f7ede9) -commit 4a8a1e858afb2ea88442d7fa82ea38b2df47c532 +commit c4018e1bba7c84274c9bfa1d2380d39232e1de46 Author: Daniel-Constantin Mierla -Date: Fri Mar 1 15:43:16 2019 +0100 +Date: Fri May 3 09:06:07 2019 +0200 - dialplan: docs - note about limiting to max 1 rpc reload in 5 seconds + app_python3: handle kemi sssi parameters - (cherry picked from commit 34f928427ecf315f638cd59fa512d59f4c64f22e) - (cherry picked from commit e1116aca38ad55305593c8936fcacff0d00cf668) + (cherry picked from commit 6bc7853a114fb000744cba3a43f346f71e640452) -commit 6b7a4735339bbb0cfa7919d160d064f3729e8e97 +commit c4cda7ba406215ec8b84176ea533038770fd4485 Author: Daniel-Constantin Mierla -Date: Fri Mar 1 10:51:29 2019 +0100 +Date: Fri May 3 08:48:32 2019 +0200 - dialplan: basic safety for concurent rpc reload + app_python3: fixed condition for function with siis params - - reported by GH #1874 + - GH #1944 - (cherry picked from commit 99d5da8d595961063249f871a5d150474fa6f317) - (cherry picked from commit 567c5b91ff0de3237d4dc98138675f19e152bcf5) + (cherry picked from commit 5d5b9786d3cd765a9cf957e34d849fec34bf5e9f) -commit 7e78723d8f34d5f459417742f56d38c93566d47d +commit 76908b459b0ca65a4df0413726a1f465436ebc8c Author: Daniel-Constantin Mierla -Date: Thu Feb 28 20:15:36 2019 +0100 +Date: Mon Apr 1 12:16:58 2019 +0200 - tm: put back t in wait timer if still referenced more than once - - - have a safety upper limit for putting back in wait timer - - special credits to Yufei Tao for testing and helping to troubleshoot + app_python3: use system time to compute execution duration - (cherry picked from commit 814d5cc1f4f5b1e4b95737108dffc1e7d7bd566f) - (cherry picked from commit 2e3e72cfe906bf08b0c940d4e461890dd54b30c6) + (cherry picked from commit 9af0f27f664a2514e1b471411a2b8c362763fccf) -commit 0ace03f357e039abd2d8f5341fa653e0d2a61756 +commit 562287f4c43e1dc8b1a0ff74f76a80118df06508 Author: Daniel-Constantin Mierla -Date: Tue Feb 26 18:19:00 2019 +0100 +Date: Tue Mar 12 13:28:22 2019 +0100 - core: kemi - wraper to execute top routing function + app_python3: execution log message based on core latency_limit_action - - reset the static buffer for selects and script flags + (cherry picked from commit cce69dad4682c8bdc4085fe1513dece44643bd9c) + +commit 9bc44f9ff53a4dd1b4e291d6c89ea2a6f0166c8d +Author: Sergey Safarov +Date: Thu Apr 25 22:18:14 2019 +0300 + + pkg/kamailio/obs: Defined missing RPM macros for RHEL/CentOS 6 - (cherry picked from commit 6be53f64755358334e9f1c0971ce886a5e299efb) - (cherry picked from commit 4f378b23d18da266e8c443fef1061cc373d787c5) + (cherry picked from commit d7c117b961b6c5b6d40cec9b81de94780578d5f2) -commit 8cd2ab597a51d37ab8056d14336cd58be8beb5d3 -Author: Daniel-Constantin Mierla -Date: Tue Feb 26 12:08:18 2019 +0100 +commit a829305aa207ddcda3936a0ffab082cb93359efc +Author: Henning Westerholt +Date: Sat Apr 13 19:52:03 2019 +0200 - core: return the correct position in out buffer for decode base58 + uac: bug fix for uac module uac_replace* functions, register callbacks after start - - GH #1868 + - bug fix for uac module uac_replace* functions, register callbacks after restart + - only applies to the dialog tracking mode of the module + - the uac module was not using the available dialog callbacks for a proxy (re-)start + - because of this the uac module was not able to properly re-write in-dialog messages + like BYEs after a proxy restart + - As we don't have access to the uac_flag at the dialog on load callback, we just + install a callback for both from and to rewriting cases. If only one of the + functions is used in the cfg hen the uac module will obviously not find + database variables for the other case, and will log an error. This is of + course also a bit inefficient, but as it only applies to this (re-)start + case it does not matter. - (cherry picked from commit 8a9161b321035d805083316d3eb707c6c1b56652) - (cherry picked from commit acbbd03e2dbb8f6c96d4bd0815364ebdf816107b) + (cherry picked from commit aa7dee1ab874aaac807c2166f38ec9da0fa0ccf6) + +commit 26fbc04bcf925396ad928583d0d38b99ed296f57 +Author: Henning Westerholt +Date: Sat Apr 13 13:13:09 2019 +0200 -commit 0e5c66d4d0a46cbb35aa0ee9a2504fdc41191fde + uac: log an error if uac module should use the dialog module and it can't bind the API + + (cherry picked from commit e2de33b01efdd2c9799a1d5cf9d0e7d127a36416) + +commit 3226ccb44ba6becfffe8ba36464a7756ceb03342 Author: Daniel-Constantin Mierla -Date: Tue Feb 26 08:03:01 2019 +0100 +Date: Thu Apr 11 09:37:25 2019 +0200 - tm: use msg_ctx_id_t to detect same msg/transaction processing + core: parse - validity check for contact uri size and more verbose log message - - relies on msg id and pid, not only msg id (which is incremeted by - each process and has potential conflicts with failure routing) + (cherry picked from commit 69f9b0a4d5261ec5b6d8d7163b3809a9bb24916d) + +commit 50296edbd3a546a00bf3f0b14850bc003b22a360 +Author: Henning Westerholt +Date: Thu Apr 11 09:21:44 2019 +0200 + + core: don't abort() Kamailio in case of invalid lump parameters, return an error - (cherry picked from commit 95ea56b79192af60f53b9be1bde4450abdd73dd0) - (cherry picked from commit 08c683bfa8f2f05b02a878c861af3458d5380869) + (cherry picked from commit 853f65454d1a77b0145e80b006699fa1048045ac) -commit a0310d2ae8de9161b3df84290db5b02c359f8038 +commit ccedfabab2d5fb9888842f36f45c8505597ea74e Author: Daniel-Constantin Mierla -Date: Tue Feb 26 07:57:49 2019 +0100 +Date: Wed Apr 10 10:40:14 2019 +0200 - cdp: proper check not to go over allocated size of apps ids + tls: set execution context for kemi callbacks - - GH #1851 + (cherry picked from commit 7f20200c9e0bca5c4ed16c55b9db162922a51e76) + +commit 0c78f5d026202031d2d2cdd21049805559b5e1f2 +Author: Daniel-Constantin Mierla +Date: Wed Apr 10 10:36:17 2019 +0200 + + msrp: set the context to kemi callback function execution - (cherry picked from commit f4b803183e71e0356eedadaca3801bbae26cf6fb) - (cherry picked from commit 7648648fc95cc2a9de752ebefee11c39f0dfe268) + (cherry picked from commit 501c2b88e8e0bf16f2be0b0255d35d449467a60d) -commit 92ac558f300829a060f3cfa5a50cb3bf5ca4d975 +commit 3300632cb397d49725fcd702b56a56229ed21719 Author: Daniel-Constantin Mierla -Date: Tue Feb 26 07:57:12 2019 +0100 +Date: Wed Apr 10 10:15:09 2019 +0200 - core: set msg->pid when building local sip_msg_t from buf + htable: execute the kemi event route callbacks with context - (cherry picked from commit b5f3a21d919f44f8842c2d85fb9447072b0f1889) - (cherry picked from commit 58261d83f454e9f3ad259532d35ca2ca150d2076) + (cherry picked from commit 9eafd82c3e29ec4480bc5be3e6aa1e9d66243dc5) -commit 66a1734dc00b39f53a1e361e83a7dc593e3c3352 +commit 121282ac4986d6389a6dd64c35b77337a4ca256b Author: Daniel-Constantin Mierla -Date: Mon Feb 25 09:19:34 2019 +0100 +Date: Wed Apr 10 10:00:00 2019 +0200 - app_python: exported exec function to KEMI also as execx + topos: execute the kemi event route callbacks with context - (cherry picked from commit d77cff5f89889d8fae704b247fc9cc954182062d) - (cherry picked from commit 44a70e5c60d11e3240205e353002dbfb72128a10) + (cherry picked from commit d2cb91dffc262060337f553b178dbeb5dedb3dfb) -commit 0cfe6cfbc1d1cc3d00b9363af95754072d202467 +commit cb1b346f6b815ed0fdd9644e5c208f7c2a0d9f14 Author: Daniel-Constantin Mierla -Date: Mon Feb 25 09:05:07 2019 +0100 +Date: Wed Apr 10 09:56:20 2019 +0200 - ndb_mongodb: exported exec function to KEMI also as execx + core: kemi - backpup and restore old context inside sr_kemi_ctx_route() - (cherry picked from commit 64a17f5587f95145365345de474810de151acdd6) - (cherry picked from commit 23591999287a38517b942d8f40be6b95154d3b77) + (cherry picked from commit 0689ac5976121d5a8edf815c0cee51da1098530f) -commit 343e0ebc1c52a2e96e7ca26b2fbc80c1273678ea +commit d82a6cd45c1486f767b7fec2a02161f7314c9071 Author: Daniel-Constantin Mierla -Date: Mon Feb 25 08:35:37 2019 +0100 +Date: Tue Apr 9 13:04:19 2019 +0200 - jsonrpcs: exported exec function to KEMI also as execx + topos: set context when executing event route - - exec is a builtin in older versions of python and results in error - if used as a member of an object - - alternative: - jsonrpcs_exec = getattr(KSR.jsonrpc, "exec") - jsonrpcs_exec("...") + - should fix detection of using KSR.drop() + - reported by GH #1924 - (cherry picked from commit 4952da77e3e72933ab0301d9362f7d105ae3b4cf) - (cherry picked from commit 71a718d9f541d16e98a3fb592678777e5c7bc963) + (cherry picked from commit a383027eae25e63a779ecf9377facefdd2e05ef6) -commit 90e88674f88225ba5b43bdb5a6946b1e30cd6f6c +commit d63b21f1b52861a31555f63b2d8d88c0c2a672ba Author: Daniel-Constantin Mierla -Date: Wed Feb 13 09:42:08 2019 +0100 +Date: Tue Apr 9 13:03:38 2019 +0200 - core: log printed size, current token size and buffer size for pv printf overflow + core: kemi - wrapper function to run callbacks with context - (cherry picked from commit 44e48809a608d4de46d61198137cd669c6a4763f) - (cherry picked from commit 88d4e86bccd252717329e75924a44dd5c2cc7955) + (cherry picked from commit 395cae83da4d83920dd038d299c30ffa97b6c272) -commit ca173b8e7b7958d0a6905a85de01eaff9c75a9b8 +commit 56f87246f7bd1571b030ef230d78beed408dbdec Author: Daniel-Constantin Mierla -Date: Tue Feb 12 23:49:08 2019 +0100 +Date: Fri Apr 5 08:49:27 2019 +0200 - topos: fix typos in the debug messages + app_jsdt: use system time to compute execution duration - (cherry picked from commit a21ae6ea14de0f7db2a66d806ecab4888dec0093) - (cherry picked from commit 6202cc8fb4dd8949584b92f6083b03aa375bb561) + (cherry picked from commit 626a8bf3e6cbc6dbdf11de0e6f8737f08c79a0bb) -commit bd41cde362aad8c608f5cba395767d0bb0e5aa8d +commit 1becba8ef4b901f3fd67842711b079e8011beb2e Author: Daniel-Constantin Mierla -Date: Mon Feb 11 23:23:56 2019 +0100 +Date: Thu Apr 4 22:02:17 2019 +0200 - topos_redis: print expires value in log messages + app_sqlang: execution log message based on core latency_limit_action - (cherry picked from commit f60b6e45d2b2f14a89e51eebe56e2ae857481c90) - (cherry picked from commit a06423e2de3b4dd293ce92535d33e253b854fac4) + (cherry picked from commit 639db054d0d2e8b0bb50c9109750419654dedbe1) -commit 1c9d31aaa9d1c5478762770fddc4bf70d2f8e216 +commit b4df4fc4b0401b522b7fce516e286aec85d4ad96 Author: Daniel-Constantin Mierla -Date: Sun Feb 10 16:16:29 2019 +0100 +Date: Fri Mar 22 04:34:26 2019 +0100 - tm: debug message when matching a skip method for transaction lookup + dialog: parse headers for request and transfer reply for errors - (cherry picked from commit 0374a573604dfac337d69f8db38cca0e3ef30300) - (cherry picked from commit a909e7d9213ee071917c785f10d883ea6a06fc39) + (cherry picked from commit 4e1ebc6b446e6264f91c96deaed0548de353d731) -commit 32abd7aaf8a2b4a93910da85564eff17928a689c +commit c2995f731ab3a94f302af63bdad9c3bf61d4e995 Author: Daniel-Constantin Mierla -Date: Fri Feb 8 20:11:40 2019 +0100 +Date: Fri Mar 22 04:17:23 2019 +0100 - app_lua: docs - added note about KSR KEMI exports for register parameter - - - mention that old 'sr' Lua module might be obsoleted soon + dialog: parse tm callback reply in early phase to detect broken format - (cherry picked from commit bf13f41a642752602c49d090a06a615a19f84ee5) - (cherry picked from commit 5e3cdf062b1f1e1a9aae34f4804cf4aad5989630) + (cherry picked from commit 6b9837c30f9d2a2ca937d7e6d8c1c496fe4d7d30) -commit f2c4d1a457cbaca20e4df400a7925953e260d308 +commit a2de837273c84c42233dd12829a8aca57257ce9f Author: Daniel-Constantin Mierla -Date: Mon Feb 4 20:07:25 2019 +0100 +Date: Tue Apr 2 17:09:53 2019 +0200 - corex: removed svn id headers + lib/srdb1: use system time to compute db query execution duration - (cherry picked from commit f36cb4cff6fb7e373557c055d7ae0ad5aa28d4ca) - (cherry picked from commit 440b6e6e8cdc8c75c862a9e3fe0fac38d2d082d1) + (cherry picked from commit ce8d36f301d7688255597a67693e47dc14448650) -commit 6603a4a23e106776e2a850c6fdd3a7d2d8d1c5c4 +commit 8d1996ac6c6c7b1445bcb8f4589bfc3b1cfed805 Author: Daniel-Constantin Mierla -Date: Mon Feb 4 20:04:20 2019 +0100 +Date: Tue Apr 2 13:45:56 2019 +0200 - gzcompress: removed svn id line + lib/srdb1: use the proper field for latency db limit - (cherry picked from commit f29b55f62513544e1481db5fd763204bd6bf1a4d) - (cherry picked from commit ea53255bc17d0c0fbcec2f1c9f15bda6e6e138cc) + (cherry picked from commit 7560edb8aac6b60a5c4392db21c16e4096bf529d) -commit a11dde210376dd02a50cc74d761fd2ca4ddc6e66 +commit 86944f591edcc8436d2303ac0861992ad25ad5bd Author: Daniel-Constantin Mierla -Date: Thu Feb 7 15:55:59 2019 +0100 +Date: Mon Apr 1 16:52:21 2019 +0200 - rtjson: mark for new branching after setting ruri or duri + db_postgres: Makefile - fixed name of variable used to detect pkg-config - (cherry picked from commit dfc893140a860f9ece20ddf7743541dbbc260c6c) - (cherry picked from commit 3073b9609258446f141dc0405e96cd7e119e6829) + (cherry picked from commit 49a34c863335e6b0b09e397d7962395306506c00) -commit bee3640187439318c1533587601c1ff7857c5107 +commit 8662b187a9a3df0bd2ac683b56bb512987487081 Author: Daniel-Constantin Mierla -Date: Wed Feb 6 15:23:20 2019 +0100 +Date: Mon Apr 1 09:52:16 2019 +0200 - uac: error message made warning for loading uac api + db_postgres: try to use pkg-config for lib paths - - some modules have optional use of uac + - GH #1915 - (cherry picked from commit e54530901c92f2578dc149ac780867d318c54912) - (cherry picked from commit 68b0d916ab9f994918ab83cba6903939d9457e54) + (cherry picked from commit b23e8e47474d9c25c6de0f6c3da07ae43b85ad8a) -commit 6fe5067f99334fbd0160ae4afbd10d5011aa25af +commit 64d87fd6c8971650749fc5238bc1ddab1a48d1c4 Author: Daniel-Constantin Mierla -Date: Mon Feb 4 00:09:47 2019 +0100 +Date: Sun Mar 31 12:54:34 2019 +0200 - mqueue: added missing license header, removed svn ids + core: action.c - use system time to compute execution duration - (cherry picked from commit 065b1d64453d8b5709069f50cfd705901206feb3) - (cherry picked from commit 7c64052b4b101846c9334ea4193a0df63fae49d8) + (cherry picked from commit a7660333c790572201d8bc2f8c19fb72d3cb442b) -commit 322d7c08e46aa6e1f9ae2d1f6b4a0e29eb1e50b8 +commit cbef48a15d023ae602bb88bafdcf69d4e1b42e27 Author: Daniel-Constantin Mierla -Date: Sat Feb 2 07:35:08 2019 +0100 +Date: Sun Mar 31 12:50:14 2019 +0200 - misc/examples: exec.cfg updated for latest releases + app_python: use system time to compute execution duration - (cherry picked from commit 25173335dda3142e01243f209d24ba571d61578d) - (cherry picked from commit f57924dafe81d8a993f59bcaf659557b90f1e255) + (cherry picked from commit a300cf008b86dec22a1006328ab73c3ce399c6c3) -commit a00fcaa55a1fd478eab7e61073e073bbfe18f50d -Author: Yasin CANER -Date: Fri Feb 1 21:23:56 2019 +0300 +commit c06fb117baeaed51b488a9e9adceaaf5b1413f90 +Author: Daniel-Constantin Mierla +Date: Sat Mar 30 14:21:35 2019 +0100 - src/Makefile: added target to install files for systemd on Centos 7 (#1831) + app_ruby: proper check for param types - * src/Makefile: added target to install files for systemd on Centos 7 - - added target to install systemd and sysconfig files for systemd service - installation method : make install-systemd-centos + (cherry picked from commit 6d43eacd6d5b78fe857267e70b7fa85519a7d5b6) + +commit eb5f2096282e93b14fecfc64f22aba0db467dec5 +Author: Daniel-Constantin Mierla +Date: Fri Mar 29 10:06:28 2019 +0100 + + tcpops: set tcp keepalive values when available per option - * src/makefile : add --system parameter for user + - cover macos and *bsd for couple of options - src/makefile : add --system parameter for user - after rebooting , /run/kamailio folder is survived. + (cherry picked from commit 278fd5a892c14f23e9f2b8d1f3fd3232c1d319f3) + +commit 3e78f6d060466363f0d61c69f6196f4d09e35ae9 +Author: Kamailio Dev +Date: Wed Apr 3 09:17:20 2019 +0200 + + modules: readme files regenerated - modules ... [skip ci] + +commit ecb15d3f84185c00450e8ab68df52ffbb9003d83 +Author: Henning Westerholt +Date: Wed Apr 3 09:05:32 2019 +0200 + + uac: document limitation regarding uac_replace_* with loose_route and msg_apply_changes - (cherry picked from commit 9f9ec197e029dca44ac57575b214a32916c838cb) - (cherry picked from commit 55540fdf63a6b057d546dea9016af6582fff7b3d) + (cherry picked from commit 05696125b775d3c275b2516ae34e73b91ce51c9a) -commit df0337787713bc1bbd9bc380be9c7b2baca9e9e5 -Author: Daniel-Constantin Mierla -Date: Tue Jan 29 14:24:34 2019 +0100 +commit d36634a3628ef21088b9930108a0ce845ccc38d6 +Author: Victor Seva +Date: Tue Apr 2 11:31:12 2019 +0200 - pike: init head list and safety check + kamctl: regenerate db schema files + +commit 0853dd48f40e4d91c207e5f4f01b4edeb34ef187 +Author: Victor Seva +Date: Tue Apr 2 11:03:40 2019 +0200 + + lib/srdb1: update location types for db_redis - - related to GH #1822 + changed introduced directly at c9f2aa71b2e0d4a4f71b3da92f97306e86f93eea - (cherry picked from commit a055214404b86d6418b7b6797e789773f1f42adb) - (cherry picked from commit b310509c7eed3b057a4e126538ed646f39af0351) + (cherry picked from commit 741f7c08a86fc101a4f0290192dcbacff1673575) -commit bb7cfeba1f87101247d9c47a58b045f19a8bfd78 -Author: Daniel-Constantin Mierla -Date: Fri Jan 25 09:28:32 2019 +0100 +commit 703b09024a462348b49d8abbf9c0f41775eb724d +Author: Sergey Safarov +Date: Sat Mar 30 16:20:27 2019 +0300 - app_python: print script name in error message + Revert "pv: add $def pseudo variable" - (cherry picked from commit 18db511c6ab8d97daed37582379cd2ba865abde4) - (cherry picked from commit 89c9da58ec864c90b4cc4afdfda12823e7e46d68) + This reverts commit ca470cb6c5f341c518b208e8e595be2ed1309802. -commit 288fd8e118804097087805d2059db6940c2d11a9 -Author: Daniel-Constantin Mierla -Date: Thu Jan 24 11:02:16 2019 +0100 +commit 25dac9c25bbfecbff2922a2fdf8d9d3e9a11e762 +Author: Sergey Safarov +Date: Sat Mar 30 16:20:23 2019 +0300 - presence_mwi: small improvement to error log message + Revert "core: allow pp_define_get to be used by modules" - (cherry picked from commit 91c0e1434d743b8af7bcaa7d993029b6a3c15cb8) - (cherry picked from commit a7e227ffe1675d1f47f2209541c15a395d9d6474) + This reverts commit 299dd60a13269c65780e5a31030c323b58bf7784. -commit ccc7572142831cb41f3585c88d56a9162fbb07eb -Author: Daniel-Constantin Mierla -Date: Wed Jan 23 22:58:15 2019 +0100 +commit ab0122a7f521fc1721f6a28021af1924a4f791dc +Author: Sergey Safarov +Date: Sat Mar 30 16:20:18 2019 +0300 - jsonrpcs: enable http transport in example + Revert "core: allow pvar resolve in subsdef" - (cherry picked from commit 7d2e1c83861214489b786bb31b03991588733937) - (cherry picked from commit 95a9bf10c235bdbd13e5898d827ec606422d61d6) + This reverts commit ded4f064602d54bdb42b0bde15dda1b886009cd0. -commit 0a14ee02ea1b9b6e2879a9599cb48983b1211311 -Author: Daniel-Constantin Mierla -Date: Mon Jan 21 10:11:20 2019 +0100 +commit 63b43167b053f485557f930b344ab4b95b24e0b8 +Author: Sergey Safarov +Date: Tue Feb 26 23:27:06 2019 +0300 - dialog: docs - small addition to early_timeout param + pkg/kamailio/obs: Added phonenum package - (cherry picked from commit bdc4d3c7dea73e10353d37655f31d6e36c87126b) - (cherry picked from commit 80b6b69d8e7aa16bc572b275e3ea31535426de6e) + (cherry picked from commit 356f9a837470434923165b7e3c627658b0c56b60) -commit 35299ac0d214bc19a63a33bd60b2b0875fb21c69 -Author: Daniel-Constantin Mierla -Date: Sun Jan 20 18:08:56 2019 +0100 +commit 56c22338fee2f35a9e6d0050194ee7ea80788425 +Author: Sergey Safarov +Date: Sat Mar 30 13:18:45 2019 +0300 - dialog: clean very old dialogs for both unconfirmed and early state + pkg/kamailio/obs: Added Fedora 30 packaging - - it was done only for unconfirmed state + (cherry picked from commit fc7d03a17c7d17dcaf11a3c5aa8bf4af7044b7ac) + +commit bc8119a79bbf72807a130320c1344ad922985dcf +Author: Sergey Safarov +Date: Sat Mar 30 13:35:59 2019 +0300 + + pkg/kamailio/obs: Added openSUSE:Leap:15.1 and 15.0 packaging - (cherry picked from commit 8fd514f9bb9e819fa6e5880dc229955cafd72494) - (cherry picked from commit 75786d1a4f589111e677f03a019ea11216485baa) + (cherry picked from commit 45f251ff673f1a26d184c9f42e6e492b73f57be0) + +commit ca470cb6c5f341c518b208e8e595be2ed1309802 +Author: lazedo +Date: Fri Jan 18 13:25:24 2019 +0000 -commit bd6dffa696e8ecc4ac52f34178c26acd0c1cc57d + pv: add $def pseudo variable + +commit 299dd60a13269c65780e5a31030c323b58bf7784 +Author: lazedo +Date: Fri Jan 18 13:18:01 2019 +0000 + + core: allow pp_define_get to be used by modules + +commit ded4f064602d54bdb42b0bde15dda1b886009cd0 +Author: lazedo +Date: Fri Jan 18 13:17:02 2019 +0000 + + core: allow pvar resolve in subsdef + +commit f66f2bec4e3de50591e8257b36de695863e740d2 Author: Daniel-Constantin Mierla -Date: Tue Jan 15 13:02:08 2019 +0100 +Date: Fri Mar 29 15:02:47 2019 +0100 - doc/tutorials/tcp_tunning: note about network buffers size + app_lua: use 'us' instead of 'ms' in latency execution time logs - - they may need tunning when dealing with large data + - the value is in microseconds - (cherry picked from commit 38a696fff66f0a453e54c92c93e8c459a1b4e77d) - (cherry picked from commit d44cf2168b45ec24926ca9a4bc5d2558b2b85f8c) + (cherry picked from commit e8e115631a804de72a1ec9477e21289e9788744b) -commit 1c48bddfebe7ce441a9e529b9b6de475d5b5d7c7 +commit a7f6227efe8228444a8afd17e548640ca8458beb Author: Daniel-Constantin Mierla -Date: Wed Feb 20 12:14:13 2019 +0100 +Date: Thu Mar 28 19:33:22 2019 +0100 - kamctl: updates to trap command to work with pretty printed jsonrpc + app_lua: get lua execution stack for previous level - (cherry picked from commit 4349c4f9bdd82ae099aadb5b626366deb7ef1109) - (cherry picked from commit 69ec6f2248dfda10c1c38df3a8a1c3c432b7d0d5) + - returns the info where current function was executed + + (cherry picked from commit a15210d064e08ac8b1a271502360b7066bff43b6) -commit 709f99c20b1945c03018711d2c652b95e8d36749 +commit b3a6b0446832f3267e9bf05744b0c12d499c4205 Author: Daniel-Constantin Mierla -Date: Wed Feb 20 11:32:49 2019 +0100 +Date: Thu Mar 28 18:52:34 2019 +0100 - kamctl: also shift only on params when printing rpc command + app_lua: use lib functions for execution time and check return for lua debug - (cherry picked from commit 6de8d942b626b05dff8dd5a4f20776db632eba19) - (cherry picked from commit cd3bf5c2721385f80e5343f32d576b8fc9a0c672) + (cherry picked from commit 6900c85821aeba9b947a8ed6e2b7632644fc2a04) -commit 53ea4bc3c760637390ff0f51ce10e7c53be25240 +commit c108904cee314e8b3c2c1d0382a0830a9b2796df Author: Daniel-Constantin Mierla -Date: Wed Feb 20 11:30:26 2019 +0100 +Date: Wed Mar 27 22:07:56 2019 +0100 - kamctl: shift only when expecting more parameters for rpc command + app_lua: use lua_getstack() to init structure for debug info - (cherry picked from commit 8b1458e97270a4094085226dce1108d8ea5ca7af) - (cherry picked from commit c8b65f5f562db763b013ab945cba7caadb9f6535) + (cherry picked from commit 47cde53eb257898c25212523d013bd7e74a30b28) -commit 4336805bfca1c0e319dfc43b5a80458a0246fbcb -Author: Daniel-Constantin Mierla -Date: Thu Jan 31 20:01:28 2019 +0100 +commit 8816f9d53ceab84dbe97df50ce2dbe8526756b01 +Author: sergey-safarov +Date: Wed Mar 27 10:43:42 2019 +0300 - src/Makefile: added target to install files for systemd on debian - - * make install-systemd-debian + ipops: Fixed mask for 172.16.0.0/12 network (#1907) - (cherry picked from commit ddbf18352f189b8aa1ae5e5f1d83d42db6fcc0d2) - (cherry picked from commit 9ead1778f6df817192b9cbf805169895bb647035) + (cherry picked from commit 1b6332fe565d97695a1eb84172e6f19f26381101) -commit d54943dd3f1d47bc9d341585c181844da482cc0f +commit 24b0db9a7307cc6b29d590afd93f1c591f18121e Author: Henning Westerholt Date: Mon Mar 18 20:06:42 2019 +0100 @@ -637,7 +683,7 @@ Date: Mon Mar 18 20:06:42 2019 +0100 (cherry picked from commit 79de612183ae8502cbc97eaa8e30342efa9385cb) -commit 3c056ddde90ff87b0cc026cbdab6529de64c3c9b +commit 410eaf2fb0e30299b6a9ea65f735f083d1cd273b Author: Henning Westerholt Date: Sat Mar 16 00:25:11 2019 +0100 @@ -645,7 +691,7 @@ Date: Sat Mar 16 00:25:11 2019 +0100 (cherry picked from commit 951570df487310537371468491c6eaa33d4fb0ee) -commit 0db259045af2c242afd214f6a9ae99a5ffb1d569 +commit 13d1007fb95b778eb8a3c8bf6114620973ef8952 Author: Henning Westerholt Date: Fri Mar 15 18:12:22 2019 +0100 @@ -653,7 +699,21 @@ Date: Fri Mar 15 18:12:22 2019 +0100 (cherry picked from commit 3a3375523c385e76066403a3a97a841444e22d99) -commit c01c4082f089c2642d4c459157e6110c08da85b1 +commit 7497707f639687f624eaf84216785b0aed15bd42 +Author: Kamailio Dev +Date: Mon Mar 18 16:01:38 2019 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit 73c1fde7932a39a74e43013994525ac2a4473366 +Author: Daniel-Constantin Mierla +Date: Mon Mar 18 15:57:08 2019 +0100 + + usrloc: docs - fixes for some param types + + (cherry picked from commit 0c2815aec9068511c1abbfd3fa0f1c89b66c57ce) + +commit 265e1a49fb757631197f6aff15518c037c72f83a Author: Ovidiu Sas Date: Mon Mar 11 15:06:44 2019 -0400 @@ -661,18937 +721,17068 @@ Date: Mon Mar 11 15:06:44 2019 -0400 (cherry picked from commit 62f7cd417b759261d8b29b7a8c603560fa3dd497) -commit 8200a5b68a5a2852bbd813fdec1bd82ef8a6ea01 -Author: lazedo -Date: Tue Mar 5 10:33:08 2019 +0000 +commit 7aaa77e682aa7b5da011c222df393601adf278b0 +Author: Richard Fuchs +Date: Mon Mar 11 07:52:58 2019 -0400 - core: free resources in xavp_clone_level_nodata + rtpengine: normalise `compat.h` handling towards bencode upstream - (cherry picked from commit 0c93efec739551f3e74e119d4b789d0bb6e766d6) + fixes #1885 -commit 417c75f2848f942a6ce0670d5c57096dadf54400 -Author: Sean Bright -Date: Wed Feb 27 15:35:53 2019 -0500 - utils: Fix copy/paste of 'database port' - - (cherry picked from commit 21ae69c83759f344492078db756a08cd554bf04c) +===================== 2019-03-11 Version 5.2.2 Released ===================== -commit f20651f3970a29da0f27bd0198e76d7806fcd91b -Author: Sean Bright -Date: Wed Feb 27 15:35:31 2019 -0500 +===================== Changes Since Version 5.2.1 =========================== - tls: Minor spelling fix in workaround message - - (cherry picked from commit 09f851982511353599d0f7f76c0a645f95d43997) +commit 22e81f47c3d8cf3e30bebf81b3f5f64382696c50 +Author: Daniel-Constantin Mierla +Date: Mon Mar 11 12:19:43 2019 +0100 -commit be8c465c591d54610b3de7fa2e8e5fda00863c0e -Author: Henning Westerholt -Date: Mon Feb 25 16:45:42 2019 +0100 + Makefile.defs: version set to 5.2.2 - topoh: improve checks for contact header processing +commit 81102f7499a2a4822a764f2279bd3966054a21fa +Author: Victor Seva +Date: Mon Mar 11 11:25:42 2019 +0100 + + pkg/kamailio/deb: version set to 5.2.2 + +commit 6e2251df9dcc006a9ad3427c747364d47e1c7410 +Author: Daniel-Constantin Mierla +Date: Mon Mar 11 10:26:20 2019 +0100 + + pkg: version set to 5.2.2 for obs, rpms and apkbuild + +commit 77eebed8be1930fdb03f4fce0a1caac1bd45c583 +Author: Daniel-Constantin Mierla +Date: Mon Mar 11 09:57:57 2019 +0100 + + topoh: check returned pointer when decoding call-id - (cherry picked from commit 101670ac2c120cf0008a860b6a766aaa529e578d) + (cherry picked from commit b5ce9d8f9a1b1fd705ad4b533e7cbc9166a3f577) -commit ca71b44dd2e85501454b83609ffe6d5a10b99718 -Author: Henning Westerholt -Date: Sun Feb 24 21:25:25 2019 +0100 +commit 3f9d2b733b454ce27e21c3dbddb9953f079f47d4 +Author: Daniel-Constantin Mierla +Date: Sun Mar 10 10:56:03 2019 +0100 - topoh: improve checks for via header processing + app_python: execution log message based on core latency_limit_action - (cherry picked from commit 78ccdb7ff1ebc34748092fe01ff249f5eeb661c8) + (cherry picked from commit a2915a9fc3d974e85829ccb6ea22d655124d4463) -commit 780438599de627bfdc9406b7dd469767b35123f5 -Author: Henning Westerholt -Date: Mon Feb 18 20:58:41 2019 +0100 +commit f10181b47b4365e8b873d2c8e09f844be25eb865 +Author: Daniel-Constantin Mierla +Date: Sat Mar 9 09:55:04 2019 +0100 - kamdbctl: warn that drop cmd will drop existing DB, ask for confirmation (GH #1858) + app_jsdt: execution log message based on core latency_limit_action - - warn that the drop command will drop existing DB, ask for confirmation - - manually merge pull request GH #1858 from fredposner, fred at qxork dot com + (cherry picked from commit 4d5622b25039a0b35ae3e6d447843d3fb33af334) -commit d0da5663bf5761a68c6e135c270ab637539f74a4 -Author: Fred Posner -Date: Sun Feb 17 13:38:33 2019 -0500 +commit 56802275b4b4cc77b85b7ef9460134265974e455 +Author: Daniel-Constantin Mierla +Date: Sat Mar 9 09:40:59 2019 +0100 - kamdbctl: added verification before reinit (#1852) + tm: more debug to track decision to relay reply or not - kamdbctl: added verification before reinit command (GH #1852) - - add get_answer and warning that reinit command will drop existing database - - even seasoned users forget and ther is no backing out, results in data loss + (cherry picked from commit b292adb668528340fca381925724540afc7f13e8) + +commit 3d9eb0612aa2eec11b75621a3ed630de4a63bf66 +Author: Daniel-Constantin Mierla +Date: Fri Mar 8 20:51:29 2019 +0100 + + app_lua: execution log message based on core latency_limit_action - (cherry picked from commit 39756fff5776bb1bf38215e90bd19a859a287b93) + (cherry picked from commit b72996c7b1ad95b89f1b34e849c713bfe3fb50a9) -commit c4549a0bcb1c9a9d61d40d4c933a4afd89fd5fd3 -Author: Jan Janak -Date: Sun Feb 17 15:00:47 2019 -0500 +commit efbf7aa7b8b3af03be43d926c6e0fc23c2349e87 +Author: Daniel-Constantin Mierla +Date: Fri Mar 8 18:40:45 2019 +0100 - imc: fix a chat room related crash and DB reload problems (GH #1855) + core: tcp - more details in debug messages - - Avoid crash in case a chat room has no members. - The imc module may encounter chat rooms that, for one reason or another, - have no members. In that case, we cannot use the URI of the first member - as the owner URI. This happens, for example, when the destroy function - fails to save chat room members into the database. - - When storing data in database, use replace instead of insert. - The insert statement would fail with an index violation if the - database already contains a matching record. That would happen, for - example, if some of the records being saved in mod_destroy were - re-loaded from the database on server start. + (cherry picked from commit 60f7ff60a95ab5dd8192391f50f760e802d11e07) + +commit b45c9f2525e926a07d9c7fe2e212675327197990 +Author: Daniel-Constantin Mierla +Date: Fri Mar 8 18:37:38 2019 +0100 + + core: kemi - exported functions for equivalent tests of src_port and dst_port - (cherry picked from commit 669bb9a07773399a1305ee6b977529b39f0932aa) + (cherry picked from commit 235a10bc7316f3b91ae6ab51960702a07f69f27a) -commit 878c23cbef8d0d32035ed4f438c61da7a5ffc815 -Author: lazedo -Date: Fri Feb 8 14:39:03 2019 +0000 +commit 6129c28f8c5957ca409a8e51737e4d9fbd860652 +Author: Daniel-Constantin Mierla +Date: Fri Mar 8 08:40:09 2019 +0100 - registrar : check xavp clone result + core: kemi - corresponding functions to check af==ipv4/ipv6 - (cherry picked from commit adc4493fa6861895bdcf8b459e5fbc76e80d0f1f) + (cherry picked from commit 61795123af0a2d2cb261c36ac78a4833f03a3321) -commit c00dfd5af18af2a7c944f31dbf693c65f0499ec6 -Author: Henning Westerholt -Date: Thu Feb 7 21:26:27 2019 +0100 +commit fc09321222889dac8138d31d2b19247c02041687 +Author: Daniel-Constantin Mierla +Date: Thu Mar 7 16:24:24 2019 +0100 - core: fix crashes and logical errors for cmd line parsing, reported from Thuan Pham + core: exported functions to check incoming protocol - - fix a bunch of crashes and logical errors for command line parsing - - do not parse tcp, tls and sctp in listen statement if TCP or SCTP is disabled - - this will later crash during module startup (e.g. in tm) - - do not allow to config TCP and SCTP children count if TCP or SCTP is disabled - - report error messages in this cases to help users detect it - - reported from Thuan Pham, Thuan.Pham at monash dot edu + - corresponding to proto==UDP/TCP/TLS/... - (cherry picked from commit f0290969fdcbbeede62091a649597c23617571a9) + (cherry picked from commit d33d60e08b5081a605149b3bff2a0397c0952e9b) -commit f1c3c3748a709c6c7cd1a6ff43a3d23ef97c1771 -Author: Federico Cabiddu -Date: Thu Feb 7 09:23:01 2019 +0100 +commit 0b511b49a7c7327cef7bd5cec63b1c5fddb0750c +Author: lazedo +Date: Tue Mar 5 10:29:39 2019 +0000 - jsonrpcs: fix double free crash + pv: use parsed uri to compute tosocket - (cherry picked from commit 9dc5cbaa4f078adee0a061885965494a9364e5d0) + (cherry picked from commit dc9531affae6336ea3771792a80385de56205ff0) -commit 4bc686a1fbbd4a3431d327d6ecf45daf3d8e509b -Author: Alex Hermann -Date: Thu Sep 20 22:28:02 2018 +0200 +commit cfd4947edd6363b31c31706c7c352c5789642ddc +Author: lazedo +Date: Tue Mar 5 10:33:08 2019 +0000 - dispatcher: Fix memleak in destination attributes + core: free resources in xavp_clone_level_nodata - (cherry picked from commit 614b6b05028ea8d364f7acb95a6367f7c9ea1a6d) + (cherry picked from commit 0c93efec739551f3e74e119d4b789d0bb6e766d6) -commit f23f1a86064c82a717d5920f41c17aad1e76b026 -Author: Alex Hermann -Date: Mon Nov 5 10:13:16 2018 +0100 +commit e244d6d5e8138b97f3c3aaa55970835576f9cc3e +Author: lazedo +Date: Tue Mar 5 10:35:01 2019 +0000 - dispatcher: Stop searching if entry is found + core: increase max_defines from 256 to 512 - (cherry picked from commit 7a66f44506e4897fef68b5ff927cf276678d3473) + (cherry picked from commit b4696169e8b464da01774b1e40af677f941c803b) -commit 26cfea05082fbd2c4236510397986ace2b495b0f -Author: Alex Hermann -Date: Thu Mar 8 18:59:26 2018 +0100 +commit 60cf0c4e4042ce858460193cad64b3aad2ecfd53 +Author: Kamailio Dev +Date: Wed Mar 6 09:01:46 2019 +0100 - jansson: Fix reverse logic for JSON boolean - - (cherry picked from commit 0125c1c8d8c1179670def9dc4b3e66d6a8e58360) + modules: readme files regenerated - modules ... [skip ci] -commit 3de32c77ae628bfa11f8a826e5eb4607a435a828 -Author: Alex Hermann -Date: Fri Dec 15 08:52:23 2017 +0100 +commit f3e02e66beb2f461905d33157ae2aa1e09a74c54 +Author: Daniel-Constantin Mierla +Date: Wed Mar 6 08:16:29 2019 +0100 - siputils: Return true if options_reply() succeeds + rtjson: reuse r-uri if not given in the rtjson field - (cherry picked from commit 73d29ddde2b38cfea2c9ca4a84f4b8a246b7da50) + (cherry picked from commit b6b91a6d517675e9891e83b57dcdf90d7db0673d) -commit c931f2859a0762f48d41f1c2dbaf522d33c72cba -Author: Alex Hermann -Date: Mon Nov 13 16:35:46 2017 +0100 +commit 18b8cf91fd370523ec3da5f34b86eb8cc99fc39a +Author: Daniel-Constantin Mierla +Date: Tue Mar 5 22:40:27 2019 +0100 - dispatcher: Don't take modulus of hash twice + rtjson: more debug messages when getting routes from json - (cherry picked from commit 5b23ce265b43adda75731a90fdf1a3a47daa3a51) + (cherry picked from commit 649687fd8dd5a3d9b6b04d75d4e0d129f14e91d6) -commit 0a885dab3dd4a54dd7a6948bf25629fd6681770a -Author: Alex Hermann -Date: Thu Sep 20 18:03:48 2018 +0200 +commit 24a739225f29650c3b4eef7fb46cce6c81e97e53 +Author: Daniel-Constantin Mierla +Date: Mon Mar 4 20:30:25 2019 +0100 - jsonrpcs: Fix memleak with srjson_doc_t + rtjson: user wrapper functions for kemi exports - (cherry picked from commit 8e5742ff1657bdb2adce357fc6f1a2e04fd913c6) + (cherry picked from commit 138172a388bc8b23035a7a422b97fc0276ed1462) -commit 82aad65cb991c4690076ad44df5449662a2b683a -Merge: 567df37f5 78e948d9e +commit 544d1ccab56ddc3b58c5301ade5c241c4c5b4433 Author: Daniel-Constantin Mierla -Date: Fri Feb 1 19:42:18 2019 +0100 +Date: Sat Mar 2 13:40:47 2019 +0100 - Merge pull request #1826 from sergey-safarov/5.1 + topoh: detect when via param is shorter than expected prefix - [5.1] set of cherry-pick to properly package on alpine dists + (cherry picked from commit e6950ffb1985493e717e3d774eddad779aed1514) -commit 78e948d9e8003c716ed67ff82cf8c7803e35e7df -Author: sergey-safarov -Date: Sat Jan 5 00:34:47 2019 +0300 +commit b30881d5d7cd9f8896ea07bf5852649abf38cbd7 +Author: Carsten Bock +Date: Mon Mar 4 00:15:19 2019 +0100 - kamdbctl: Merged patch from alpine packaging (#1786) - - - kamdbctl: Merged patch from alpine packaging (#1786) - - add proper quoting for DB table and module definitions + tcpops: Fix minor typo: tcp_init_evroutes => tcpops_init_evroutes - (cherry picked from commit c6e62f932495af188c89bf06b468d1bb19579267) + (cherry picked from commit cbadbca348c5deb97522afe440dc6055475ea72c) -commit 889b929539a2fe2e44bc61f82c8fd407e8eae643 -Author: Sergey Safarov -Date: Fri Nov 9 13:01:31 2018 +0000 +commit e1116aca38ad55305593c8936fcacff0d00cf668 +Author: Daniel-Constantin Mierla +Date: Fri Mar 1 15:43:16 2019 +0100 - pkg/docker: Alpine switched to use openssl. Updated rules for alpine docker container + dialplan: docs - note about limiting to max 1 rpc reload in 5 seconds - (cherry picked from commit 37bff4588803a70873babdb483804e3734b42900) + (cherry picked from commit 34f928427ecf315f638cd59fa512d59f4c64f22e) -commit d56615e76622c428985d6fc9a3d31bf9e4943543 -Author: Sergey Safarov -Date: Fri Nov 9 14:11:20 2018 +0000 +commit 567c5b91ff0de3237d4dc98138675f19e152bcf5 +Author: Daniel-Constantin Mierla +Date: Fri Mar 1 10:51:29 2019 +0100 - pkg/kamailio/alpine: Update APKBUILD + dialplan: basic safety for concurent rpc reload - (cherry picked from commit 6aca6c0ddc201882d1ab75e662299450f578aa32) - -commit 08161fe70a0dc25d7aaf377f7c362f81984ce068 -Author: Sergey Safarov -Date: Thu Jan 31 14:55:03 2019 +0300 - - pkg/docker: Updated submodule - - -===================== 2019-01-31 Version 5.1.7 Released ================== - -===================== Changes Since Version 5.1.6 =========================== + - reported by GH #1874 + + (cherry picked from commit 99d5da8d595961063249f871a5d150474fa6f317) -commit 5c51f70229b193abbf4fe00515cbc67e3fe9e245 +commit 2e3e72cfe906bf08b0c940d4e461890dd54b30c6 Author: Daniel-Constantin Mierla -Date: Thu Jan 31 10:24:10 2019 +0100 - - Makefile.defs: version set to 5.1.7 - -commit 745bfe69a6f42ee882f4dcd37fef7c78a02120e8 -Author: Victor Seva -Date: Thu Jan 31 10:16:03 2019 +0100 +Date: Thu Feb 28 20:15:36 2019 +0100 - pkg/kamailio/deb: version set to 5.1.7 + tm: put back t in wait timer if still referenced more than once + + - have a safety upper limit for putting back in wait timer + - special credits to Yufei Tao for testing and helping to troubleshoot + + (cherry picked from commit 814d5cc1f4f5b1e4b95737108dffc1e7d7bd566f) -commit 295a2e86a7339d5bf07077cbfb0269bae3a0bcfb +commit faed5b294d15ba642e2b58a7577bbaa783745aab Author: Daniel-Constantin Mierla -Date: Thu Jan 31 10:15:04 2019 +0100 +Date: Thu Feb 28 08:42:51 2019 +0100 - pkg: version set to 5.1.7 for rpm and other specs + tcpops: docs for event_callback parameter + + (cherry picked from commit aab836d84d1121f9c8dd3b0fb090d6767b4e05a8) -commit eb29671e9b68fafdeea0849b6f7340e88beb0949 +commit 209dd6fcba96f3ff436298ebe5d17105782e0a2d Author: Daniel-Constantin Mierla -Date: Thu Jan 31 09:25:28 2019 +0100 +Date: Thu Feb 28 08:35:53 2019 +0100 - websocket: put the ws connection after keepalive + tcpops: event routes executed via kemi framework - - c&p error of last commits resulted in doing get op instead + - fixed missing compatibility with kemi execution + - event_callback parameter allows setting the name of kemi function - (cherry picked from commit a975bca1702ea2f3db47f834f7e4da2786ced201) - (cherry picked from commit b3567878dd8b43f22bd7ce88db7611cf6ca029ff) + (cherry picked from commit d36cde90f345621cdab557e9f46bc8490e221004) -commit e131f95f234ce0e4e7dc7752f796e7c42620ce82 -Author: Kamailio Dev -Date: Mon Jan 28 21:01:28 2019 +0100 - - modules: readme files regenerated - modules ... [skip ci] - -commit f727b05ad76c1b22ddba8b3aed311084c260c588 -Author: Federico Cabiddu -Date: Mon Jan 28 20:56:55 2019 +0100 +commit 8421a744736bf2bfd6ee007a026e75eae9357a6f +Author: Daniel-Constantin Mierla +Date: Wed Feb 27 09:26:50 2019 +0100 - tsilo: fixed ts_append example in the doc + dialog: use kemi wrapper to execute routing functions - (cherry picked from commit 18ef9da4c029fefd5089aed484cd8f32ddb0fb17) - -commit 505884a9ad1575e7fea88ff026641442822688fb -Author: Kamailio Dev -Date: Mon Jan 28 15:01:35 2019 +0100 - - modules: readme files regenerated - modules ... [skip ci] + (cherry picked from commit d4f4a8ad572c0335ddc28231bf02cc65ede181f0) -commit f9e7ea0a35d4115f2437d285a8e27aceaf74a5fd -Author: Victor Seva -Date: Wed Jan 9 17:44:09 2019 +0100 +commit 8b57c0b4be65be758b1d0b6b8cf893549948f5df +Author: Daniel-Constantin Mierla +Date: Wed Feb 27 09:26:38 2019 +0100 - tsilo: add check for empty aor + dispatcher: use kemi wrapper to execute routing functions - Fix: #1775 - (cherry picked from commit 5a5d742eb459249995114eb6a3642f99c6770496) - (cherry picked from commit 23a5c07e924a2feb5f09b727f4ad0faf6c5af349) + (cherry picked from commit ea9c1f5d8f074a057c53c5d3f6f1f32bce998143) -commit 3720283674cc783bceb64987ec8f27a54a1e1d47 +commit 5fe4eaea8afc87bdbfaf0b507de045fbabbd8940 Author: Daniel-Constantin Mierla -Date: Wed Jan 9 14:15:37 2019 +0100 +Date: Wed Feb 27 09:26:19 2019 +0100 - dialog: do not require dlg_flag parameter to be set - - - using dlg_manage() should be enough for tracking dialogs + evapi: use kemi wrapper to execute routing functions - (cherry picked from commit 404f403786478a917637186446bb285e8e32cc59) - (cherry picked from commit 563f1d6af3123485ed25cc58bb3badd68e7793a4) + (cherry picked from commit 8c930c09dcf20263fa34cd2568f2600785440da2) -commit aadd286fe15ddd121580f2770c3c29f56fab36ec +commit 77be3404cce56e00d5cf652b6522ebf823cf8999 Author: Daniel-Constantin Mierla -Date: Wed Jan 9 09:50:12 2019 +0100 +Date: Wed Feb 27 09:25:51 2019 +0100 - dialog: docs - more info about using the flag and dlg_manage() + http_async_client: use kemi wrapper to execute routing functions - (cherry picked from commit e4dfe3587943d69d556b15df3492cf38c3b21a5f) - (cherry picked from commit 3dd154faeead29f54145843d14367c5b28a4fb7b) + (cherry picked from commit 30533678a1132951bc0e354c1503325b8325474f) -commit 6d7a6e1ccebf57cd8be791d44d797c9feeb96adf +commit ebef67b51d532c121b47238dfde16b82767a39bb Author: Daniel-Constantin Mierla -Date: Sat Dec 29 17:43:18 2018 +0100 +Date: Wed Feb 27 09:25:36 2019 +0100 - ims_isc: free variable in case of errors + msrp: use kemi wrapper to execute routing functions - (cherry picked from commit e7d684ad22d17f3aca58dd66c555e43877d9320a) - (cherry picked from commit 83597d2fc2922921e66edeca184b3d59354407cf) + (cherry picked from commit 3c2cf7c3aad2670b1feff5b5fde9a49ba9aeb295) -commit d498c3ca48ad2e0538d29e13eb283f480a352916 +commit 82c7616e86678a4ef79ad7f07791ee5f2690543b Author: Daniel-Constantin Mierla -Date: Wed Dec 26 12:04:59 2018 +0100 +Date: Wed Feb 27 09:25:25 2019 +0100 - auth_db: print db table name when version check fails + registrar: use kemi wrapper to execute routing functions - (cherry picked from commit a8de371e90ddc8a6921b5bf7464961865804cc06) - (cherry picked from commit f62c3cb67c9c2be10393bdeec684eb3dc9325dd6) + (cherry picked from commit c3ed3d9a531c403fc850d229252eb4bcd4cc473e) -commit d2459f195398199b3968351d9edabae85fdea521 +commit e2a48d84090960f6c3f33db3595435a752b71f17 Author: Daniel-Constantin Mierla -Date: Wed Dec 26 09:44:21 2018 +0100 +Date: Wed Feb 27 09:25:12 2019 +0100 - cdp: init pointer to avoid warning on uninitialized use + sipcapture: use kemi wrapper to execute routing functions - (cherry picked from commit 7873a653a43070f891dc6cde5c188c81bf5de25d) - (cherry picked from commit 5bb811d8d7c09c7792206831326c8f650eb30f66) + (cherry picked from commit 1b45419212f72d51dbe99d42087e119bb9dd15de) -commit 16e8c6856cfa0f6af426fc33779843555d9b4b9d +commit 4caec075eeb6585bd52e05a882b59fbbd26f1eff Author: Daniel-Constantin Mierla -Date: Thu Dec 20 13:13:32 2018 +0100 +Date: Wed Feb 27 09:24:51 2019 +0100 - websocket: removed static from declaration of ws_rm_delay_interval - - - it is used as external in another source file - - GH #1771 + timer: use kemi wrapper to execute routing functions - (cherry picked from commit d5e40d5f05795f3902e5ae51bf4c57345e945a9c) - (cherry picked from commit 42821df5cf64d71b9b837e2e5c55b2d91392a250) + (cherry picked from commit f66bbf48d04fc94cb3849cc977990ded935dffff) -commit 19f585b4a32673ee15a9fe50f2edc1211bee44c5 +commit d4f63e8cd2ec5c87818fdaf29c852446e7a59f8f Author: Daniel-Constantin Mierla -Date: Thu Dec 20 08:09:36 2018 +0100 +Date: Wed Feb 27 09:24:32 2019 +0100 - dialog: only write debug messages in case cseq or contact fields are empty + tls: use kemi wrapper to execute routing functions - (cherry picked from commit ae4087ef615c1de5b67c8406eab8316300282d8b) - (cherry picked from commit 5067fe22cc16af943126ea88a9ddd35281ca8636) + (cherry picked from commit eb653f02cfe25a2c3b6388d5c581a37139707e77) -commit 6d28f85378eed7a7da05079be68139c7c7fcbef6 -Author: Victor Seva -Date: Thu Dec 20 00:16:25 2018 +0100 +commit 8a9c35f92afb33179e4d8a06024abf06a19a557c +Author: Daniel-Constantin Mierla +Date: Wed Feb 27 09:24:12 2019 +0100 - cnxcc: fix compilation warnings - - > warning: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat] + topoh: use kemi wrapper to execute routing functions - (cherry picked from commit 89e89e023d923d2dbec694509b9f958bbed6d3ad) - (cherry picked from commit 92d7bec4b5dddad2d08b6434ab6b561b230ee466) + (cherry picked from commit 2f421594c3d34a02f38283f64e739860acc142bc) -commit 89cc9d794ca867de1b60d2239e990d09e22cdca7 +commit 403da8e8dcc2e4986595f183f0ac37a6bb41ab86 Author: Daniel-Constantin Mierla -Date: Wed Dec 19 14:11:51 2018 +0100 +Date: Wed Feb 27 09:23:57 2019 +0100 - websocket: docs for timer_interval and rm_delay_interval params + topos: use kemi wrapper to execute routing functions - (cherry picked from commit 3a20bb1ad27b8a85ec932975e14bcec12237437b) - (cherry picked from commit bc602ee8662a440d0fec47a5ec6b66021a13d4fa) + (cherry picked from commit 53786f5223260c1a5c03685ca26ad73774c75bc0) -commit f85e6bada0ebd2597cd016111f96c9fc0133bc08 +commit ef0a63249fdf35695f5483d6bba3883e8873b1be Author: Daniel-Constantin Mierla -Date: Wed Dec 19 14:06:56 2018 +0100 +Date: Wed Feb 27 09:23:31 2019 +0100 - websocket: destroy ws connections in dedicated timer process - - - avoid races/invalid access when sending data failed and the connection - was removed - - added parameter to control the timer process: interval or running and - delay interval for removing + websocket: use kemi wrapper to execute routing functions - (cherry picked from commit af09e224dba0c57c23fd58a7f83a24d2ffbaa07c) - (cherry picked from commit 281d6fa15abc3b5f60c9dfc7cab272fca4e50d44) + (cherry picked from commit 9e1c17d3c9e7c323bda8f99bfc27a8113ebd55ba) -commit 9059f23474bf9ec35e7001f715860ca1e7729ca1 +commit dbcc4b611d7eee0f97d96208d1dce9767786f5ff Author: Daniel-Constantin Mierla -Date: Wed Dec 19 13:15:36 2018 +0100 +Date: Wed Feb 27 09:23:13 2019 +0100 - websocket: fetch ws connections based on keepalive process index - - - get the ones with id that matches the index when doing modulo over the - number of keepalive process in order to spread the load of doing the - ping-pong + xhttp: use kemi wrapper to execute routing functions - (cherry picked from commit 71517152e7de26d6c47fd037c25dc854aa37734f) - (cherry picked from commit 049473bce13cc6994cbde1080d75bb25565ad5bc) + (cherry picked from commit 6497efe137afb3da632eb278fc69079a7e77215d) -commit 206cdd921b3fcce9e89691a3c5b915405cb4e9c1 +commit a37df2461ee6a21d0bef093102f0dbee67064aee Author: Daniel-Constantin Mierla -Date: Tue Dec 18 13:20:51 2018 +0100 +Date: Wed Feb 27 09:23:00 2019 +0100 - websocket: use the list with ids for ws connections to do ping-pong + xmlrpc: use kemi wrapper to execute routing functions - - avoid using pointers to ws connections, they can get closed + (cherry picked from commit 9446ed393d515255da7a04c881c92169e78c491d) + +commit af9d741f3ef8a2e814bd1edb9a3cdcf00ec7e01f +Author: denyspozniak +Date: Wed Feb 27 09:05:03 2019 +0100 + + dispatcher: more details for use_default param with dispatcher.list file - (cherry picked from commit b5253b62090feb70f08885fb530d894d0bd6ad90) - (cherry picked from commit e25b66962ba51e2749a093f96e0cdaac8df33a4f) + (cherry picked from commit a70fd487a7509be41e558a9f54efaa7f038fd3e2) -commit 91763e1661c575db1f0ffb1916188a370a8fc143 +commit 6384256c3df3770e66989511b2019f7d4fb0d697 Author: Daniel-Constantin Mierla -Date: Mon Jan 7 12:01:21 2019 +0100 +Date: Tue Feb 26 19:09:44 2019 +0100 - topoh: aded debug message for knowing the reason of no decoding rr + htable: use kemi wrapper to execute routing functions - (cherry picked from commit cee4941daf56985d9734263c4b99c33f9ef3a149) - (cherry picked from commit 3a78d068a3678471efe0a7e7f4ea0e7c9bc18675) + (cherry picked from commit e5bffb306c45f7a0f0f672368884f430d63c09ba) -commit ab850a6ad3373dea409eed96fe87da305fda09b7 -Author: Balajee -Date: Sun Dec 23 23:27:49 2018 +0530 +commit 6600c2426d067cc57b10b346ee2f9dbbace99a8d +Author: Daniel-Constantin Mierla +Date: Tue Feb 26 19:01:28 2019 +0100 - topoh: fixed unmask route issue, if maksing fails for one of the routes + rtimer: use kemi wrapper to execute routing functions - (cherry picked from commit d57f70127c44fd74c459aefc8d2655978b9cb48b) - (cherry picked from commit 4fe56123b424638a5967832f4ac05d3e63a13577) + (cherry picked from commit 3008874c1971d09cb71cf8560fc280cfc305dadc) -commit 44666e217420dda4bda31ae7ffb46ca8fc63d455 +commit 67ff7d2ab011214aa24fa40a2c62c576e6e7b96f Author: Daniel-Constantin Mierla -Date: Mon Dec 17 20:34:35 2018 +0100 +Date: Tue Feb 26 18:59:16 2019 +0100 - cplc: init var to avoid compile warning + tm: use kemi wrapper to execute routing functions - (cherry picked from commit 0f1b970ae7f47478649b61a8dc43fe42714b2a95) - (cherry picked from commit 2dc84951b8f0e2503ee4c551b8693de36b36ef77) + (cherry picked from commit 31586e9e4eb0c43e1e34ad3ac730ba5f0942e838) -commit 0d62a374cef1f21ca87d2e2d9ca6b2533638177d +commit d269ebd0c817e40a0c7055f2e246d2c33aebf352 Author: Daniel-Constantin Mierla -Date: Mon Dec 17 20:31:59 2018 +0100 +Date: Tue Feb 26 18:37:30 2019 +0100 - regex: init var to avoid compile warning + core: use kemi exec route wrapper for onsend_route and child one init event - (cherry picked from commit dfb872b311cd0acd4a40c810f612c8a23e7c9aca) - (cherry picked from commit fc6232f7f9d1c65f436e7ca0db505c6e1114145d) + (cherry picked from commit 23b65718462a6bbc860fe7b4159d3c7aac34d3b8) -commit 4942d5cecc310f516d20594f58bc7b83eec67028 +commit 5b1f5ac651363c725e92d2bff21ea5067fd1a0e5 Author: Daniel-Constantin Mierla -Date: Thu Dec 13 10:22:35 2018 +0100 +Date: Tue Feb 26 18:22:38 2019 +0100 - tm: error log message about new final reply made info + core: receive - use kemi wrapper to execute top keng routes - - can happen due to races of packets on the network + - reset the select static buffer + - GH #1829 - (cherry picked from commit 3d43f546ddff613c50068c9d47521a15b42f1c7b) - (cherry picked from commit 9ccbcc089e70001dd94136eadb68d2711669142f) + (cherry picked from commit 48686943aa37747a9a7581a5eb8c69098ce324d7) -commit e3eb15272e5940222ceb40c0119e1f7897d3054b +commit 4f378b23d18da266e8c443fef1061cc373d787c5 Author: Daniel-Constantin Mierla -Date: Sat Dec 8 08:12:49 2018 +0100 +Date: Tue Feb 26 18:19:00 2019 +0100 - pv: {param.count} accept static string "," as delimiter + core: kemi - wraper to execute top routing function - (cherry picked from commit 80b3c37557d446bfe9ca5a5f469a42af60648280) - (cherry picked from commit cb98198e595c776ccbf2cd8777e178eb81e85b58) + - reset the static buffer for selects and script flags + + (cherry picked from commit 6be53f64755358334e9f1c0971ce886a5e299efb) -commit 67657f5ceef6528fab2371bfea386d3a9fb3cfb8 +commit acbbd03e2dbb8f6c96d4bd0815364ebdf816107b Author: Daniel-Constantin Mierla -Date: Wed Dec 5 12:40:16 2018 +0100 +Date: Tue Feb 26 12:08:18 2019 +0100 - dialog: store call-id, r-uri, f-uri and t-uri with 0-ending char + core: return the correct position in out buffer for decode base58 - - can simplify matching with standard string comparison and regexp + - GH #1868 - (cherry picked from commit f1ab32ee4a0bf64017a0b05f2013b81d37d50208) - (cherry picked from commit 2e81abf1262784e390eb31efa95c5f437bd7051e) + (cherry picked from commit 8a9161b321035d805083316d3eb707c6c1b56652) -commit 3e6f951c070291b0b2e9df6cde3f287625995aac +commit 08c683bfa8f2f05b02a878c861af3458d5380869 Author: Daniel-Constantin Mierla -Date: Tue Dec 4 11:16:57 2018 +0100 +Date: Tue Feb 26 08:03:01 2019 +0100 - auth_xkeys: clone value before inserting the lump inside auth_xkeys_add() + tm: use msg_ctx_id_t to detect same msg/transaction processing - (cherry picked from commit 01f5ecbc45c236daea62d6638a02c168720c8479) - (cherry picked from commit 3a2d9921dc8a3c8133e7e3bacfba94468f9bbeb6) + - relies on msg id and pid, not only msg id (which is incremeted by + each process and has potential conflicts with failure routing) + + (cherry picked from commit 95ea56b79192af60f53b9be1bde4450abdd73dd0) -commit 26173d8999d31c8847d915cd26d164ce3832be49 +commit 7648648fc95cc2a9de752ebefee11c39f0dfe268 Author: Daniel-Constantin Mierla -Date: Fri Nov 30 16:05:30 2018 +0100 +Date: Tue Feb 26 07:57:49 2019 +0100 - tm: reply_received() - simplify locking for processing sip response + cdp: proper check not to go over allocated size of apps ids - - leverage the recursive mutex and skip several zones of unlock/lock, - which can lead to races on delayed processing or fast reply - retransmissions - - related to GH #1613 #1744 + - GH #1851 - (cherry picked from commit 39b89a18a8c357151a173ab02dc95dff1f02715d) - (cherry picked from commit cc51d6c7170ad289c8f521a05470a2eacd05f565) + (cherry picked from commit f4b803183e71e0356eedadaca3801bbae26cf6fb) -commit 3bf230b75b181dd213b08a7cc133fe188b5fcfa5 +commit 58261d83f454e9f3ad259532d35ca2ca150d2076 Author: Daniel-Constantin Mierla -Date: Fri Nov 30 09:19:16 2018 +0100 +Date: Tue Feb 26 07:57:12 2019 +0100 - lib/srdb1: memset db connection structure earlier in db_bind_mod() + core: set msg->pid when building local sip_msg_t from buf - (cherry picked from commit 1b014d65e26a99f9f5d4aea1b27949776f083c2d) - (cherry picked from commit 1133f818461cf2ed6c8bd755543f93b366a02683) + (cherry picked from commit b5f3a21d919f44f8842c2d85fb9447072b0f1889) -commit 8a21170c3a5283b84e0ff3cbc6db8c72413dec05 -Author: Federico Cabiddu -Date: Wed Jan 16 16:35:15 2019 +0100 +commit a85da2a8399643ca4686564c7d78c9ed094ccf84 +Author: Daniel-Constantin Mierla +Date: Mon Feb 25 09:20:47 2019 +0100 - siptrace: don't calculate message source socket if already set + app_python3: exported exec function to KEMI also as execx - (cherry picked from commit 929a24f08aeef6b72999ac9b188ffeded40759a9) - -commit 440ba8f9b37c61a6f631a5a8a0552a2215128fad -Author: Hugh Waite -Date: Fri Jan 4 16:02:09 2019 +0000 + (cherry picked from commit 49120624eab8eb1a9e69c00eba3216e1417d526e) - tm: Add fixup for PVS in fixup_t_check_status - - Allows PVs including $avp(...) to be passed to t_check_status - -commit 74b8fbf0fc820d48a0203b81d2cd41f6e84dc5c5 +commit 44a70e5c60d11e3240205e353002dbfb72128a10 Author: Daniel-Constantin Mierla -Date: Tue Jan 8 12:24:27 2019 +0100 +Date: Mon Feb 25 09:19:34 2019 +0100 - topos_redis: check the branch value to avoid using uninitialized fields - - - GH #1784 + app_python: exported exec function to KEMI also as execx - (cherry picked from commit cfc89db53c087382c29d809dc0bc56f7351af2d1) - (cherry picked from commit 7c551812960dd1cfc2901a7a46bbf3010df47cd7) + (cherry picked from commit d77cff5f89889d8fae704b247fc9cc954182062d) -commit 3c343cecbfaaeb8f92c9c026c818c03f95219760 -Author: Henning Westerholt -Date: Sun Jan 6 14:46:34 2019 +0100 +commit 23591999287a38517b942d8f40be6b95154d3b77 +Author: Daniel-Constantin Mierla +Date: Mon Feb 25 09:05:07 2019 +0100 - kamdbctl: Merged patch from alpine packaging (#1786) - - - kamdbctl: Merged patch from alpine packaging (#1786) - - add proper quoting for DB table and module definitions - - manual backport from c6e62f932495af + ndb_mongodb: exported exec function to KEMI also as execx - (cherry picked from commit 6e79c6304823301a2dde8a2dd5e169525db6cd9b) + (cherry picked from commit 64a17f5587f95145365345de474810de151acdd6) -commit b66ebc658b22b992c4b0c6ecad7915b217b344a1 +commit 71a718d9f541d16e98a3fb592678777e5c7bc963 Author: Daniel-Constantin Mierla -Date: Wed Dec 19 11:56:06 2018 +0100 +Date: Mon Feb 25 08:35:37 2019 +0100 - dialog: check for cseq value only when getting it for caller/request + jsonrpcs: exported exec function to KEMI also as execx - (cherry picked from commit 740bc8ce88da612ac30a73db0145908355cab192) + - exec is a builtin in older versions of python and results in error + if used as a member of an object + - alternative: + jsonrpcs_exec = getattr(KSR.jsonrpc, "exec") + jsonrpcs_exec("...") + + (cherry picked from commit 4952da77e3e72933ab0301d9362f7d105ae3b4cf) -commit b5f12075497cf2ab6bcfc71ab2550198065e7e87 -Author: Henning Westerholt -Date: Sun Dec 30 00:15:46 2018 +0100 +commit a0f8a03be9d9b28bd29eac6dfc275fb97491e3a8 +Author: Ovidiu Sas +Date: Thu Feb 21 18:48:55 2019 -0500 - cdp: fix two errors from coverty scan (missing check, var initialization) - - - remove library call can fail, test for the error and log it - - initialize the msghdr variable with a memset + siputils: fix debug logging - (cherry picked from commit 7d52bf6ce7188eaa57690766c231e55b5509db4f) + (cherry picked from commit 83a31b81740ac57ca8a82e5e4a9509484e740ae7) -commit 977057fb98ecd72844a0441e1f890378369e4862 -Author: Henning Westerholt -Date: Sun Dec 30 00:42:31 2018 +0100 +commit 198442f53181f588b2a829892baa8c26bc7f0471 +Author: Ovidiu Sas +Date: Thu Feb 21 18:47:34 2019 -0500 - cdp: fix three coverity errors (ressource leaks and error checks) + Revert "siputils: fix debug logging" - - fix an ressource leak related to library call getaddrinfo - - add missing error checks for setsockopts and fcntl calls + This reverts commit 91b2c5da34ba7064f858b13bf0a1d27da74336d4. - (cherry picked from commit 967a71687aa63a253d495ba49351ae916713a452) + (cherry picked from commit 14b89ca98fbcd355e822115c126f23cba1649ca2) -commit 5d738714cb95edbf119462553d16be547117355e -Author: Henning Westerholt -Date: Sun Dec 30 00:52:18 2018 +0100 +commit 4b08c9b7f14f8eec3f8b0a3e7dd940ab5925ffcd +Author: root +Date: Thu Feb 21 07:11:25 2019 +1100 - core: check for optarg before passing it to external library (coverity report) + siputils: fix debug logging - (cherry picked from commit 7eb1eae615a4c3ef710e9931b101ddc4db07aff2) + (cherry picked from commit 91b2c5da34ba7064f858b13bf0a1d27da74336d4) -commit b075e6fcb7435d168241bc9bc83e87b70b4d08d4 -Author: Henning Westerholt -Date: Sun Dec 30 01:17:15 2018 +0100 +commit b7cf46a00168fcbd322e8969e61f2a8ce7403d05 +Author: Daniel-Constantin Mierla +Date: Tue Feb 19 17:37:40 2019 +0100 - core: fix an error in check_via_address, reported from Mojtaba, mespio at gmail dot com + kamailio.cfg: explicitely set the tcp/tls connections upper limits - - fix an error in check_via_address, reported from Mojtaba, mespio at gmail dot com - - use the same logic for IPv4 string comparison as for IPv6 - - the old comparison could return true for e.g. via="192.168.1.1", src="192.1.1.100" - - the new logic is also faster for the trivial case with different string length + - notes about tcp_children and relation with children parameter - (cherry picked from commit 98ee014a88ca951d82a0389f0be119078ba525f7) + (cherry picked from commit 409cb202057c89e87d910a1877ce719c6335ebdb) -commit 6995925d2ddd0618fea1bd75cfee562e008d6075 -Author: Sergey Safarov -Date: Wed Dec 5 21:31:53 2018 +0000 +commit e5312652699b280e3f7f6e342db82dab1a506698 +Author: Sergey Basov +Date: Tue Jan 15 13:54:13 2019 +0200 - pkg/kamailio/obs: Fixed warning about not existen kamailio group [skip ci] + sipt: $sipt(redirection_number) evaluates the value as a numerical value - (cherry picked from commit 5c6e3570c68c6a0eb74a808865f26b0f895c722c) + sipt: $sipt(redirection_number) evaluates the value as a numerical value + (cherry picked from commit 34fb47f28948e701c3ea98c673c8fb324b2f790e) -commit 52af0594dc602bfe207c7a629fe6ea71f01840b6 -Author: Nacho Garcia Segovia -Date: Fri Dec 7 11:19:52 2018 +0100 +commit 88d4e86bccd252717329e75924a44dd5c2cc7955 +Author: Daniel-Constantin Mierla +Date: Wed Feb 13 09:42:08 2019 +0100 - core: fixed segmentation fault when handling multipart bodies + core: log printed size, current token size and buffer size for pv printf overflow - Function check_boundaries() in msg_translator.c not handling property the length of the buffers when it needs to repair the boundary, getting a negative lenght and causing a segmentation fault. - - (cherry picked from commit 18e485a3172055fa5c808c2423629d5bbd10b37e) - -commit 9d301849a145e89d2c82a7195234232e032fb8fb -Author: Kamailio Dev -Date: Tue Dec 4 09:46:31 2018 +0100 - - modules: readme files regenerated - modules ... [skip ci] + (cherry picked from commit 44e48809a608d4de46d61198137cd669c6a4763f) -commit 893562c7e698e001f6fe883ea7e5497e67c6eee7 +commit 6202cc8fb4dd8949584b92f6083b03aa375bb561 Author: Daniel-Constantin Mierla -Date: Fri Nov 30 16:31:22 2018 +0100 - - dialog: safety checks for local cseq and contact vars - - - avoid crash on systems not printing null string of length 0 - - GH #1717 - - (cherry picked from commit 46401e465d88495d510d2cb36dc36ec86978c53e) - (cherry picked from commit 79946bbb6d1731f503fc378ae38311b630e55999) - -commit 732f1b9c037f22c0d9932c2565ba9bf6bfc25538 -Author: Yasin CANER <12412027+ycaner06@users.noreply.github.com> -Date: Wed Nov 28 16:02:25 2018 +0300 +Date: Tue Feb 12 23:49:08 2019 +0100 - ims_charging : doc is fixed - - ims_charging : doc is fixed + topos: fix typos in the debug messages - (cherry picked from commit 37dae368667fc82bc2f60639d722354e6528ec7f) - (cherry picked from commit 2375d07b774aa2d820bbeb155698305576e2ba74) + (cherry picked from commit a21ae6ea14de0f7db2a66d806ecab4888dec0093) -commit 24064631d8de14a9af89ad0748eff9939c16da03 +commit a06423e2de3b4dd293ce92535d33e253b854fac4 Author: Daniel-Constantin Mierla -Date: Thu Nov 29 20:04:08 2018 +0100 +Date: Mon Feb 11 23:23:56 2019 +0100 - core: parse body - debug instead of error log message when mime mismatch - - - GH #1746 + topos_redis: print expires value in log messages - (cherry picked from commit 08820db104c7dbfce36af0f59dfcc28f97cffbd0) - (cherry picked from commit 81f328095f6c06b5ca7cb18b6cdcfad430fb7359) + (cherry picked from commit f60b6e45d2b2f14a89e51eebe56e2ae857481c90) -commit 03c971d27b235b71d343e2771b87a34d9c397b11 +commit a909e7d9213ee071917c785f10d883ea6a06fc39 Author: Daniel-Constantin Mierla -Date: Wed Nov 28 12:49:58 2018 +0100 +Date: Sun Feb 10 16:16:29 2019 +0100 - presence: test if event is dialog when attempting to delete old records + tm: debug message when matching a skip method for transaction lookup - (cherry picked from commit 55c7f781be7cc40d0cd161640a47244aad60c0e7) - (cherry picked from commit 8b6665b5d27fa8c36764078b9ae615075486a4b3) + (cherry picked from commit 0374a573604dfac337d69f8db38cca0e3ef30300) -commit 7409c34169e8f9976a435bae2ec782aede669a54 +commit 5e3cdf062b1f1e1a9aae34f4804cf4aad5989630 Author: Daniel-Constantin Mierla -Date: Fri Nov 23 09:06:57 2018 +0100 +Date: Fri Feb 8 20:11:40 2019 +0100 - topos: proper condition to detect 3xx redirect for contact updates + app_lua: docs - added note about KSR KEMI exports for register parameter - - GH #1720 + - mention that old 'sr' Lua module might be obsoleted soon - (cherry picked from commit 1f02ee62951523f001899d12d1750046f1ba53b6) - (cherry picked from commit 6c768803e544cf8cf060b4099c601a9df0c1b7b8) + (cherry picked from commit bf13f41a642752602c49d090a06a615a19f84ee5) -commit 4b9aef025073a850822a22d1359f657840cfaf37 +commit 440b6e6e8cdc8c75c862a9e3fe0fac38d2d082d1 Author: Daniel-Constantin Mierla -Date: Fri Nov 23 08:51:18 2018 +0100 +Date: Mon Feb 4 20:07:25 2019 +0100 - topos: safety checks for couple of mandatory headers - - - first via and call-id + corex: removed svn id headers - (cherry picked from commit 93e40d5b7fb66d33f31c46dfaea5425062505127) - (cherry picked from commit 69a34ef19e9365c810ecd2ea91a3d47076eed33a) + (cherry picked from commit f36cb4cff6fb7e373557c055d7ae0ad5aa28d4ca) -commit 6e1c4b6807e2b31e8e7400bc358a7b689989c8d8 +commit ea53255bc17d0c0fbcec2f1c9f15bda6e6e138cc Author: Daniel-Constantin Mierla -Date: Fri Nov 23 08:46:54 2018 +0100 +Date: Mon Feb 4 20:04:20 2019 +0100 - topoh: safety checks for couple of mandatory headers - - - first via and call-id - - GH #1735 + gzcompress: removed svn id line - (cherry picked from commit 97da6b1a5f656db4a91c8909167706fc8ec3d932) - (cherry picked from commit 01828ecdff3e048845ee0cee58cfe1ffbceb761f) + (cherry picked from commit f29b55f62513544e1481db5fd763204bd6bf1a4d) -commit 9c1e900ea4913dc4e2d7989dc89925160ed874b3 -Author: Joonas Keskitalo -Date: Thu Nov 22 15:43:37 2018 +0200 +commit 3073b9609258446f141dc0405e96cd7e119e6829 +Author: Daniel-Constantin Mierla +Date: Thu Feb 7 15:55:59 2019 +0100 - misc/examples/kemi: Added 'msg' argument to ksr_route_relay + rtjson: mark for new branching after setting ruri or duri - (cherry picked from commit a35503b3837cfc804f30c7493fbd13573c1a55e1) - (cherry picked from commit 7dbeb45fd481d77a4ddee2432193eb7c1f1a937d) + (cherry picked from commit dfc893140a860f9ece20ddf7743541dbbc260c6c) -commit fa33d2be1321bba3238f536f1a4eeb40e60b6b71 +commit 68b0d916ab9f994918ab83cba6903939d9457e54 Author: Daniel-Constantin Mierla -Date: Wed Nov 21 10:42:02 2018 +0100 +Date: Wed Feb 6 15:23:20 2019 +0100 - topos: do not add contact header in outgoing 1xx responses if not present + uac: error message made warning for loading uac api - - GH #1720 + - some modules have optional use of uac - (cherry picked from commit dcf9ee88dbf68eeaf0f64d203ce831eb6f536a85) - (cherry picked from commit 3e3b51b3989c02b97b825e6e8b8285d4d2b99ca3) + (cherry picked from commit e54530901c92f2578dc149ac780867d318c54912) -commit 1a6dc025088f5a74e0f8593f930b5362f57441a5 -Author: Surendra Tiwari -Date: Wed Nov 21 09:30:06 2018 +0100 +commit cc782576b769d6a66c04749658e263207a40c0fe +Author: Daniel-Constantin Mierla +Date: Tue Feb 5 22:19:34 2019 +0100 - rtpengine: print command in log message on timeout - - - few indentation fixes - - GH #1732 + core: removed return never executed - (cherry picked from commit 9d1e8e256e49968776f7abb740a6d02739547ec2) - (cherry picked from commit e9320c09738766d80fae2fe2b1704facbce6221a) + (cherry picked from commit fb2ac639037cb911162bb61a541976899fa1bdab) -commit 42865170f9acddd0b3c2e14de8019d2075a69e43 +commit 7c64052b4b101846c9334ea4193a0df63fae49d8 Author: Daniel-Constantin Mierla -Date: Tue Nov 20 12:49:24 2018 +0100 +Date: Mon Feb 4 00:09:47 2019 +0100 - tmx: do no suspend faked request + mqueue: added missing license header, removed svn ids - (cherry picked from commit 6f6a0d136dfefe98631264092177344ed8d173a8) - (cherry picked from commit eb661d2284d2d004b7affbcf0728ff6d32862283) + (cherry picked from commit 065b1d64453d8b5709069f50cfd705901206feb3) -commit 3b44a67b2d0910a0f5e92801a918a083f1a17d21 +commit f57924dafe81d8a993f59bcaf659557b90f1e255 Author: Daniel-Constantin Mierla -Date: Tue Nov 20 12:48:48 2018 +0100 +Date: Sat Feb 2 07:35:08 2019 +0100 - tm: info log message if attempting to create transaction for faked request + misc/examples: exec.cfg updated for latest releases - (cherry picked from commit 4dd53abf13f9a98272af625f2a6591669730b374) - (cherry picked from commit 156706c03a29a7aed5b8f73fab8216e4630c1f15) + (cherry picked from commit 25173335dda3142e01243f209d24ba571d61578d) -commit bd234545b018512ae0adb04c27686f8f0dbda4d5 -Author: Daniel-Constantin Mierla -Date: Tue Nov 20 08:11:18 2018 +0100 +commit 8f130b456f2019d6a100e26c0a69692449d12cd9 +Author: Alex Hermann +Date: Fri Jan 11 16:39:02 2019 +0100 - topos: allow various replies for INVITE without contact + rr: Add new return value for preloaded route set to loose_route() - - GH #1720 + Instead of returning just -1 (error), return a dedicated value. Now it is + possible to detect from the script if a preloaded Route header was removed + that pointed at the local proxy. - (cherry picked from commit 416d79b462986317f2c3a3ed8aa30a502d116095) - (cherry picked from commit 3b586d554740ae578283024c1508e91b6ad886a2) + The new return code is kept negative, so all code checking for failure response + keeps working. + + (cherry picked from commit c5b8e5b3a82ac0f61a059f69921866952405ffe5) -commit 8b5b0466ab5524a9493d04bee89c903bde56e8f8 -Author: Daniel-Constantin Mierla -Date: Mon Nov 19 15:28:16 2018 +0100 +commit 55540fdf63a6b057d546dea9016af6582fff7b3d +Author: Yasin CANER +Date: Fri Feb 1 21:23:56 2019 +0300 - async: return error if trying to execute for faked message + src/Makefile: added target to install files for systemd on Centos 7 (#1831) - - GH #1727 + * src/Makefile: added target to install files for systemd on Centos 7 - (cherry picked from commit 8b71c46ba0db05051ee24bf88491f00387e1ca8b) - (cherry picked from commit 652180a88a549a6f2d91c39b053efce6b508c2ec) - -commit 2820a9620e31de907185d33de272773e62df770c -Author: Daniel-Constantin Mierla -Date: Mon Nov 19 15:22:35 2018 +0100 - - core: function to test if a msg structure is faked request + added target to install systemd and sysconfig files for systemd service + installation method : make install-systemd-centos - (cherry picked from commit ab72c5e7188266baef0da70f1aa7d7d28b6d077c) - (cherry picked from commit e2ffc481a3f6673debf45f45abb7914e679c9f1b) - -commit f876ce5b5aba544495abb982f56fb009fb8eedd1 -Author: Yasin CANER -Date: Mon Nov 19 10:00:40 2018 +0300 - - core : add word to log get_boundary function + * src/makefile : add --system parameter for user - added word to log for more understanding + src/makefile : add --system parameter for user + after rebooting , /run/kamailio folder is survived. - (cherry picked from commit 2daa351dd0cf716284ff90cd57d2241ee97f165d) - (cherry picked from commit a1a95ab27911ce0ff02c3a7ec7c9286cfee82894) + (cherry picked from commit 9f9ec197e029dca44ac57575b214a32916c838cb) -commit 792847b2a1b003f72caadf9334581f6fd12534a0 +commit ae05d4c40611bf800375d128655ee31c51d52171 Author: Daniel-Constantin Mierla -Date: Mon Nov 19 09:24:39 2018 +0100 +Date: Thu Jan 31 16:05:13 2019 +0100 - tm: t_serial - safety check for searched xavps + dispatcher: docs - fixed typos - (cherry picked from commit 372993c82d2ebdafe9f7e1a672a3e3141a8ae2f5) - (cherry picked from commit 0532b6fec0fecf5a6262b04a0e2e31d6b2cc315f) + (cherry picked from commit bcb92740f043dce7c5145070cb298de5f7d02c6e) -commit 35204e8eec1f5830b89a331dac274b45e2ce3933 +commit b310509c7eed3b057a4e126538ed646f39af0351 Author: Daniel-Constantin Mierla -Date: Fri Nov 16 10:37:19 2018 +0100 +Date: Tue Jan 29 14:24:34 2019 +0100 - websocket: aligned example statements + pike: init head list and safety check - - few more details about return code of handshake process + - related to GH #1822 - (cherry picked from commit d33ee59bc807acf95b07838d24b888b14a286ddd) - (cherry picked from commit 0327674281bcd27ef72bf617215f8e6e8f85a0a4) + (cherry picked from commit a055214404b86d6418b7b6797e789773f1f42adb) -commit 9883fbc438da48ea399d0f107e4bdc846ff16818 +commit 89c9da58ec864c90b4cc4afdfda12823e7e46d68 Author: Daniel-Constantin Mierla -Date: Tue Nov 13 08:59:43 2018 +0100 +Date: Fri Jan 25 09:28:32 2019 +0100 - tmx: use branch index for $T_rpl() cache invalidation + app_python: print script name in error message - (cherry picked from commit e2ca5516ae086cf33c61dbb9e653a5484cca2074) - (cherry picked from commit 0305e2773a07472f442ab8cf4fbecdc0bffaf32b) + (cherry picked from commit 18db511c6ab8d97daed37582379cd2ba865abde4) -commit 0c2ddea18d6c5a7d309cfffce4163d491fd05e83 -Author: Daniel-Constantin Mierla -Date: Thu Nov 8 08:24:59 2018 +0100 +commit 07c0b560fa66c51b5fa00aca3746d35cce5cb773 +Author: Alex Hermann +Date: Tue Jan 15 13:23:25 2019 +0100 - cfgutils: error log message mentioning the param lock_set_size + pipelimit: Cleanup unused pipes - (cherry picked from commit 55347626b189cd009c29b0e058949ed7671ae0d0) - (cherry picked from commit 9374328bb2c05955658042fbf31807bd060a04de) + when pipes are unused by a configurable number of timer intervals, + remove them, freeing memory. + + (cherry picked from commit 048c928ec68dc82bd628f27bfc9f7901e4c4e9d2) -commit 34da446f129153c2254275f4cad1f5fe74bef1cc -Author: Victor Seva -Date: Wed Nov 14 10:53:06 2018 +0100 +commit 705cb9dfc4a9d3b4ddc59aa6a807cefe87b0cf61 +Author: Alex Hermann +Date: Tue Jan 22 15:04:07 2019 +0100 - kazoo: fix compilation warnings - - > kz_amqp.c:1884:5: warning: variable 'binding' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] - > if(bind == NULL) { - > ^~~~~~~~~~~~ - > kz_amqp.c:1919:5: note: uninitialized use occurs here - > if(binding != NULL) - > ^~~~~~~ - > kz_amqp.c:1884:2: note: remove the 'if' if its condition is always false - > if(bind == NULL) { - > ^~~~~~~~~~~~~~~~~~ - > kz_amqp.c:1896:2: note: variable 'binding' is declared here - > kz_amqp_binding_ptr binding = shm_malloc(sizeof(kz_amqp_binding)); - > ^ - > kz_amqp.c:1965:5: warning: variable 'binding' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] - > if(bind == NULL) { - > ^~~~~~~~~~~~ - > kz_amqp.c:1992:8: note: uninitialized use occurs here - > if(binding != NULL) - > ^~~~~~~ - > kz_amqp.c:1965:2: note: remove the 'if' if its condition is always false - > if(bind == NULL) { - > ^~~~~~~~~~~~~~~~~~ - > kz_amqp.c:1972:2: note: variable 'binding' is declared here - > kz_amqp_binding_ptr binding = shm_malloc(sizeof(kz_amqp_binding)); - > ^ - > kz_amqp.c:2875:5: warning: variable 'json_obj' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] - > if(payload == NULL) { - > ^~~~~~~~~~~~~~~ - > kz_amqp.c:2927:5: note: uninitialized use occurs here - > if(json_obj) - > ^~~~~~~~ - > kz_amqp.c:2875:2: note: remove the 'if' if its condition is always false - > if(payload == NULL) { - > ^~~~~~~~~~~~~~~~~~~~~ - > kz_amqp.c:2880:2: note: variable 'json_obj' is declared here - > json_obj_ptr json_obj = kz_json_parse(payload ); - > ^ - > 3 warnings generated. + pipelimit: Fix memleak on shutdown - (cherry picked from commit 232e8400caf7173e73229627af0270a704824f62) - (cherry picked from commit b2b8bc03d0658b0786a72e1e589b8b129ee7599e) + (cherry picked from commit ffdec6d38d0935d8af2633e3d3ded8a985ddfcca) -commit cb997ba65ffe5c159e9480f45b1b7f39197bf889 -Author: Victor Seva -Date: Wed Nov 14 10:41:08 2018 +0100 +commit a7e227ffe1675d1f47f2209541c15a395d9d6474 +Author: Daniel-Constantin Mierla +Date: Thu Jan 24 11:02:16 2019 +0100 - db_berkeley: fix compilation warning - - > CC (clang) [M db_berkeley.so] db_berkeley.o - > db_berkeley.c:916:5: warning: variable 'dbcp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] - > if((ret = bdb_get_columns(_tp, _r, 0, 0)) != 0) { - > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - > db_berkeley.c:966:5: note: uninitialized use occurs here - > if(dbcp) - > ^~~~ - > db_berkeley.c:916:2: note: remove the 'if' if its condition is always false - > if((ret = bdb_get_columns(_tp, _r, 0, 0)) != 0) { - > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - > db_berkeley.c:901:6: warning: variable 'dbcp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] - > if(!lkey) { - > ^~~~~ - > db_berkeley.c:966:5: note: uninitialized use occurs here - > if(dbcp) - > ^~~~ - > db_berkeley.c:901:3: note: remove the 'if' if its condition is always false - > if(!lkey) { - > ^~~~~~~~~~~ - > db_berkeley.c:875:11: note: initialize the variable 'dbcp' to silence this warning - > DBC *dbcp; - > ^ - > = NULL - > 2 warnings generated. + presence_mwi: small improvement to error log message - (cherry picked from commit 93e0b7e7bcefa900e8686e7e60f1a59cc32f9b39) - (cherry picked from commit e377ec1fb2ce841b0b96c7f9c4cea935ad6f10f6) + (cherry picked from commit 91c0e1434d743b8af7bcaa7d993029b6a3c15cb8) -commit afa6eecd1587d4fc566aaa29dc7f902def771a55 +commit 95a9bf10c235bdbd13e5898d827ec606422d61d6 Author: Daniel-Constantin Mierla -Date: Mon Nov 5 12:53:06 2018 +0100 +Date: Wed Jan 23 22:58:15 2019 +0100 - regex: fixed section ids for functions - - - removed trailing whitespaces + jsonrpcs: enable http transport in example - (cherry picked from commit e8aec6d15bcef95f628108398e682571763464c5) + (cherry picked from commit 7d2e1c83861214489b786bb31b03991588733937) -commit b43dea08aed9ba24485e5851cce16dd08bae9fa9 +commit 80b6b69d8e7aa16bc572b275e3ea31535426de6e Author: Daniel-Constantin Mierla -Date: Mon Nov 5 10:20:02 2018 +0100 +Date: Mon Jan 21 10:11:20 2019 +0100 - rabbitmq: call function to release the amqp buffers + dialog: docs - small addition to early_timeout param - (cherry picked from commit 88ebe33b6f8a21df6fa0720fef62dabe6b089c87) + (cherry picked from commit bdc4d3c7dea73e10353d37655f31d6e36c87126b) -commit 57193ad2783cb3b170caa93aa10752581220fbd0 +commit 75786d1a4f589111e677f03a019ea11216485baa Author: Daniel-Constantin Mierla -Date: Mon Nov 5 09:29:01 2018 +0100 +Date: Sun Jan 20 18:08:56 2019 +0100 - rabbitmq: renamed global variable, same name being used in some functions + dialog: clean very old dialogs for both unconfirmed and early state - - global variables made static + - it was done only for unconfirmed state - (cherry picked from commit 4f303b6fd548e89c59b074db94656f58aaff6adf) + (cherry picked from commit 8fd514f9bb9e819fa6e5880dc229955cafd72494) -commit 921f1771d2bfd7d2f06bd6822b4b7ba9119518c2 +commit d44cf2168b45ec24926ca9a4bc5d2558b2b85f8c Author: Daniel-Constantin Mierla -Date: Sat Nov 3 08:17:01 2018 +0100 +Date: Tue Jan 15 13:02:08 2019 +0100 - misc/examples: check return code for has_totag() in kemi lua script + doc/tutorials/tcp_tunning: note about network buffers size + + - they may need tunning when dealing with large data - (cherry picked from commit 0d869c90eff536aea0f42c7e368535fec344f2f2) + (cherry picked from commit 38a696fff66f0a453e54c92c93e8c459a1b4e77d) -commit aded9a07fdecaed51fb0af40db7ca2d7ff9e7035 -Author: Henning Westerholt -Date: Thu Nov 1 22:51:39 2018 +0100 +commit cb58a13f3a7594e721c08ef9aff458108e05db57 +Author: Charles Chance +Date: Thu Feb 21 19:27:32 2019 +0000 - kazoo: add kz prefix to str_split utility function + htable: fix infinite loop during dmq sync of large tables - - add kz prefix to str_split utility function, to prevent overlapping with a - function with similar name in the json module + - reported by Enrico Bandiera (GH #1863) - (cherry picked from commit e8b905006e1a768cd8e328bd836ac43e5a2bc2f2) + (cherry picked from commit a176ad4fb4167e21b01974e6a5caba330b1d7e14) -commit 348ede7e461e3482e93be161e4b98c84d196f17d -Author: Sebastian Kemper -Date: Fri Nov 2 10:10:38 2018 +0100 +commit e3bc58842483f84ed0c401d2711577c92a4aca78 +Author: Sean Bright +Date: Wed Feb 27 15:35:53 2019 -0500 - dialplan: fix dp_replace() in cmd_export_t struct - - In the struct 'int param_no' is set to '2'. But dp_replace() has actually three - parameters (dpid, inval, outvar), so kamailio's cfg parser fails when - dp_replace() is called: - - yyparse(): cfg. parser: failed to find command dp_replace (params 3) - yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 366, column 45: unknown command, missing loadmodule? - - This commit fixes 'int param_no' to address this. + utils: Fix copy/paste of 'database port' - Signed-off-by: Sebastian Kemper - (cherry picked from commit cbff35909edccffe778d04f3871d880195d82b7a) + (cherry picked from commit 21ae69c83759f344492078db756a08cd554bf04c) -commit d3676df7e414aa995447488ba0977b7a43b63f43 -Author: Henning Westerholt -Date: Thu Nov 1 21:22:53 2018 +0100 +commit be7c71627b72ac6617c356900b4f7d28341b0e83 +Author: Sean Bright +Date: Wed Feb 27 15:35:31 2019 -0500 - acc_radius: fix generating duplicates for missed calls - - - fix generating duplicates for missed calls (#GH1674) - - patch from Julien Chavanton jchavanton at gmail dot com + tls: Minor spelling fix in workaround message - (cherry picked from commit 8cce4f243bc00f243671da7349edd3a11d5dc2ec) + (cherry picked from commit 09f851982511353599d0f7f76c0a645f95d43997) -commit 54d00e9c4dfd8a30dd5f12930720bf7c1121e443 +commit 55f5c820655c3b53863043569f05b97ad615abbc Author: Henning Westerholt -Date: Thu Nov 1 21:22:26 2018 +0100 +Date: Mon Feb 25 16:45:42 2019 +0100 - acc_diameter: fix generating duplicates for missed calls - - - fix generating duplicates for missed calls (#GH1674) - - patch from Julien Chavanton jchavanton at gmail dot com + topoh: improve checks for contact header processing - (cherry picked from commit 3a471af738c6b8f7e717b7f2f4c6f9c579a2d9c8) + (cherry picked from commit 101670ac2c120cf0008a860b6a766aaa529e578d) -commit f8ebc379063e316badf09faf368bd9a373a82822 +commit bf4a0f3ef34b5d52464b86a456b435d865c583f2 Author: Henning Westerholt -Date: Thu Nov 1 21:21:28 2018 +0100 +Date: Sun Feb 24 21:25:25 2019 +0100 - acc: fix generating duplicates for missed calls + topoh: improve checks for via header processing - - fix generating duplicates for missed calls (#GH1674) - - patch from Julien Chavanton jchavanton at gmail dot com + (cherry picked from commit 78ccdb7ff1ebc34748092fe01ff249f5eeb661c8) + +commit 69ec6f2248dfda10c1c38df3a8a1c3c432b7d0d5 +Author: Daniel-Constantin Mierla +Date: Wed Feb 20 12:14:13 2019 +0100 + + kamctl: updates to trap command to work with pretty printed jsonrpc - (cherry picked from commit a7525829309427fbb9357e0104b9dba1016f6777) + (cherry picked from commit 4349c4f9bdd82ae099aadb5b626366deb7ef1109) -commit d2b805d335c283ef5570c6cb5d61bd561e0de996 -Author: Henning Westerholt -Date: Thu Nov 1 21:19:41 2018 +0100 +commit cd3bf5c2721385f80e5343f32d576b8fc9a0c672 +Author: Daniel-Constantin Mierla +Date: Wed Feb 20 11:32:49 2019 +0100 - core: add helper function for flag reset + kamctl: also shift only on params when printing rpc command - - add helper function for flag reset (needed for bugfix in #GH1674) - - patch from: Julien Chavanton jchavanton at gmail dot com + (cherry picked from commit 6de8d942b626b05dff8dd5a4f20776db632eba19) + +commit c8b65f5f562db763b013ab945cba7caadb9f6535 +Author: Daniel-Constantin Mierla +Date: Wed Feb 20 11:30:26 2019 +0100 + + kamctl: shift only when expecting more parameters for rpc command - (cherry picked from commit 253d35c84bc1886c9eae774a731452f5d2f521cd) + (cherry picked from commit 8b1458e97270a4094085226dce1108d8ea5ca7af) -commit 5ca5ee2beed67efd5ab8a973367e754d23883db7 -Author: Lucian Balaceanu -Date: Mon Oct 29 11:54:45 2018 +0200 +commit dbbced1eb31dc984d9d215cea8600aa4f8d1caea +Author: Sergey Safarov +Date: Sun Feb 17 16:55:22 2019 +0300 - pdb: fix SIGABRT in case of too long uris + pkg/docker: Updated submodule + +commit 2611968a3b095351559f646e86d8fe31bfaa67ad +Author: Sergey Safarov +Date: Fri Nov 9 13:01:31 2018 +0000 + + pkg/docker: Alpine switched to use openssl. Updated rules for alpine docker container - buf in pdb_msg_dbg should correctly accomodate for pdb_bdy size - pdb_hdr + pdb_bdy should add to pdb_hdr.length (max 255) + (cherry picked from commit 37bff4588803a70873babdb483804e3734b42900) + +commit b7945ade8190b4f2f3d14c38e397ce8ac6ce2fc2 +Author: Sergey Safarov +Date: Fri Nov 9 14:11:20 2018 +0000 + + pkg/kamailio/alpine: Update APKBUILD - (cherry picked from commit 783763e8accef47aa563cd17d1e170250268751c) + (cherry picked from commit 6aca6c0ddc201882d1ab75e662299450f578aa32) -commit cd36828b3abb49ccb541e38f634e6a54e6a90403 -Author: Daniel-Constantin Mierla -Date: Tue Oct 30 07:21:48 2018 +0100 +commit 6cd4e5d59f90d4a6046ca8f4b2110fa3e358a9ae +Author: Sergey Safarov +Date: Sun Feb 17 16:36:47 2019 +0300 - rabbitmq: use fixup spve all + Revert "pkg/kamailio/alpine: Fixed docker image build for 5.2 branch" - - allow tracking parameter number - - prefix to avoid conflict of common name function + This reverts commit e5bc89e1dffc548e3d309f45b291c87c39f6fb4b. + +commit c07e85a8031f771690f4da7f28ff31e265c98a60 +Author: Henning Westerholt +Date: Mon Feb 18 20:59:05 2019 +0100 + + kamdbctl: warn that drop cmd will drop existing DB, ask for confirmation (GH #1858) - (cherry picked from commit 6745a6c784218130a28896cbfa4ea520047d8fc6) + - warn that the drop command will drop existing DB, ask for confirmation + - manually merge pull request GH #1858 from fredposner, fred at qxork dot com -commit 9bad6f16ce9b21b3f298eb03bb6c8ef1911d6fc2 -Author: Daniel-Constantin Mierla -Date: Mon Oct 29 07:27:58 2018 +0100 +commit d0ee6bcd902bf95486ed02ea21b234bcc978894a +Author: Fred Posner +Date: Sun Feb 17 13:38:33 2019 -0500 - dialog: handle alias in contact address for local bye only when no route headers + kamdbctl: added verification before reinit (#1852) - - GH #1689 + kamdbctl: added verification before reinit command (GH #1852) + - add get_answer and warning that reinit command will drop existing database + - even seasoned users forget and ther is no backing out, results in data loss - (cherry picked from commit 810d84981b4ed83b11e4090740a36653ec10ef16) + (cherry picked from commit 39756fff5776bb1bf38215e90bd19a859a287b93) -commit 64afdf27e7ea8e2ef38211af1233d780102ab4c3 -Author: Daniel-Constantin Mierla -Date: Fri Oct 26 09:21:57 2018 +0200 +commit b61fc371f8057d3a4a688507c9e43d89719cedc4 +Author: Jan Janak +Date: Sun Feb 17 15:00:47 2019 -0500 - uac: test if qop field has a list of values for remote auth challenge + imc: fix a chat room related crash and DB reload problems (GH #1855) - - GH #1684 + - Avoid crash in case a chat room has no members. + The imc module may encounter chat rooms that, for one reason or another, + have no members. In that case, we cannot use the URI of the first member + as the owner URI. This happens, for example, when the destroy function + fails to save chat room members into the database. + - When storing data in database, use replace instead of insert. + The insert statement would fail with an index violation if the + database already contains a matching record. That would happen, for + example, if some of the records being saved in mod_destroy were + re-loaded from the database on server start. - (cherry picked from commit 6e6a2f442e06a23aa180f07c2a954068dfc58843) + (cherry picked from commit 669bb9a07773399a1305ee6b977529b39f0932aa) -commit 00720d55c2f838486a68b799e8f92abcebf8dba0 -Author: mtirpak -Date: Thu Oct 25 13:43:36 2018 +0200 +commit e2b5fcb60ab633715524d44698a09abc9b126537 +Author: lazedo +Date: Fri Feb 8 14:39:03 2019 +0000 - core: variables declared in the config file could cause memory corruption + registrar : check xavp clone result - The config variables that are declared in the config file were recorded - in the reverse order as their padding was calculated, which could cause - the allocated memory block to be smaller as required at the end. + (cherry picked from commit adc4493fa6861895bdcf8b459e5fbc76e80d0f1f) + +commit 28b00bd2a8cb0e894475ff78fdd45cca40f63a08 +Author: Henning Westerholt +Date: Thu Feb 7 21:26:27 2019 +0100 + + core: fix crashes and logical errors for cmd line parsing, reported from Thuan Pham - Credits go to vinesinha. + - fix a bunch of crashes and logical errors for command line parsing + - do not parse tcp, tls and sctp in listen statement if TCP or SCTP is disabled + - this will later crash during module startup (e.g. in tm) + - do not allow to config TCP and SCTP children count if TCP or SCTP is disabled + - report error messages in this cases to help users detect it + - reported from Thuan Pham, Thuan.Pham at monash dot edu - (cherry picked from commit 2ecf601c472bb81b9cf4ffd5b1ac17c4dfd742f2) + (cherry picked from commit f0290969fdcbbeede62091a649597c23617571a9) -commit d2a6728c6d7fd39d009150ddfa4c5980e8142cab -Author: dnadares -Date: Wed Oct 24 22:28:12 2018 -0300 +commit f247933aac6ada6147ce83943cca87b24805e96f +Author: Federico Cabiddu +Date: Thu Feb 7 09:23:01 2019 +0100 - evapi: minor fix in tag length compare + jsonrpcs: fix double free crash - It was assigning the length instead of comparing it. + (cherry picked from commit 9dc5cbaa4f078adee0a061885965494a9364e5d0) + +commit cd797dbfdc0c8a27cde66f096c5d592d880d65d8 +Author: Alex Hermann +Date: Thu Sep 20 22:28:02 2018 +0200 + + dispatcher: Fix memleak in destination attributes - (cherry picked from commit 3da3aa0c9ee3fcd5aadd3924ee883666d2a15ac6) + (cherry picked from commit 614b6b05028ea8d364f7acb95a6367f7c9ea1a6d) -commit 1c506f448216e366d6a06ff5c1713f2be65609c2 -Author: Daniel-Constantin Mierla -Date: Wed Oct 24 14:49:10 2018 +0200 +commit 1caa08e1a3052ed08ec5dc4cf32c14f292e1a823 +Author: Alex Hermann +Date: Mon Nov 5 10:13:16 2018 +0100 - topos: docs - replaced c&p topoh with topos + dispatcher: Stop searching if entry is found - (cherry picked from commit 56c40ebefcbe0954c5c40470b22d4f26e163a2d0) + (cherry picked from commit 7a66f44506e4897fef68b5ff927cf276678d3473) -commit 083c21b2070625e07fcd1eab4f9e2935b51e5566 -Author: Daniel-Constantin Mierla -Date: Fri Oct 19 11:33:18 2018 +0200 +commit 548955b101a1752b8525e8101014ab4e5576dc36 +Author: Alex Hermann +Date: Thu Mar 8 18:59:26 2018 +0100 - core: cfg select - safety check accessing vars before initialization + jansson: Fix reverse logic for JSON boolean - (cherry picked from commit 97855a1766edf4ecc2cc4e38f3cc0d3cea3190db) + (cherry picked from commit 0125c1c8d8c1179670def9dc4b3e66d6a8e58360) -commit 4ffe23dc473b170ec21ba9c6c32acfbc8b09016e -Author: Claudiu Boriga -Date: Fri Feb 23 16:12:42 2018 +0200 +commit ac37b2faf754548d0f3c6cfb14bc1e547eed03ed +Author: Alex Hermann +Date: Fri Dec 15 08:52:23 2017 +0100 - presence: test if event is dialog to avoid unnecessary xml parsing + siputils: Return true if options_reply() succeeds - (cherry picked from commit 6d0f8994611b50faa7ef7d1299acf0c390a2eed1) + (cherry picked from commit 73d29ddde2b38cfea2c9ca4a84f4b8a246b7da50) -commit 54c904e4dc9dae3cd82e547e2328cad9381e48ec -Author: Victor Seva -Date: Mon Dec 3 12:07:53 2018 +0100 +commit c5f1ac9be0fe28ab3967f4f0ed085d4a272c7437 +Author: Alex Hermann +Date: Mon Nov 13 16:35:46 2017 +0100 - utils/kamctl: [pgsql] add missing options for pgsql_ro_query() + dispatcher: Don't take modulus of hash twice - Thanks Andreas Maus + (cherry picked from commit 5b23ce265b43adda75731a90fdf1a3a47daa3a51) + +commit c3065e717f686cc11ceadd8a95fd3d98c2ffe2c7 +Author: Alex Hermann +Date: Thu Sep 20 17:34:49 2018 +0200 + + jansson: Log column on parse error - fix #1750 + (cherry picked from commit 4038a6046bc34c92313817549c93a9f16e993032) + +commit 534a5233a025af26b1b4ddcb504d21902fdc5094 +Author: Alex Hermann +Date: Thu Sep 20 18:03:48 2018 +0200 + + jsonrpcs: Fix memleak with srjson_doc_t - (cherry picked from commit 1894b378f975e7129024f6f10640c6c642e30a1b) + (cherry picked from commit 8e5742ff1657bdb2adce357fc6f1a2e04fd913c6) -commit 4317b3c6b88b0d7ae7c034a2fdfb1bf7ee7c297b -Author: Kamailio Dev -Date: Fri Oct 19 08:46:32 2018 +0200 +commit 9ead1778f6df817192b9cbf805169895bb647035 +Author: Daniel-Constantin Mierla +Date: Thu Jan 31 20:01:28 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + src/Makefile: added target to install files for systemd on debian + + * make install-systemd-debian + + (cherry picked from commit ddbf18352f189b8aa1ae5e5f1d83d42db6fcc0d2) -commit 111d23eef719054e7a1a63a44453b4054bd5fc5b -Author: Kamailio Dev -Date: Thu Oct 4 09:46:43 2018 +0200 +commit b3567878dd8b43f22bd7ce88db7611cf6ca029ff +Author: Daniel-Constantin Mierla +Date: Thu Jan 31 09:25:28 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + websocket: put the ws connection after keepalive + + - c&p error of last commits resulted in doing get op instead + + (cherry picked from commit a975bca1702ea2f3db47f834f7e4da2786ced201) -commit 3cb04f02a2d47c747268f6a1716c58375d131beb +commit cd25830eb881b1dd667544f68a94efdf195a7cea Author: Kamailio Dev -Date: Mon Oct 1 20:46:39 2018 +0200 +Date: Mon Jan 28 21:01:40 2019 +0100 modules: readme files regenerated - modules ... [skip ci] -commit 2f96f64f25533c48e494dcca0b1b6727f557f458 -Author: Kamailio Dev -Date: Fri Sep 7 15:31:52 2018 +0200 +commit bb9661c595201ab6ce69e34e6084630be7faa307 +Author: Federico Cabiddu +Date: Mon Jan 28 20:56:55 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + tsilo: fixed ts_append example in the doc + + (cherry picked from commit 18ef9da4c029fefd5089aed484cd8f32ddb0fb17) -commit ed8857dd2eb5b9e0c4558a987121d5dc3a2cec4f -Author: Kamailio Dev -Date: Fri Aug 17 21:46:39 2018 +0200 +commit b71938952e1fc7543fa5bf7ba2abed6e39167150 +Author: Federico Cabiddu +Date: Wed Jan 16 16:35:15 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + siptrace: don't calculate message source socket if already set + + (cherry picked from commit 929a24f08aeef6b72999ac9b188ffeded40759a9) -commit 37d5880dd2b70662f9b033671bc9f9504b804c9b -Author: Kamailio Dev -Date: Mon Jul 23 23:01:43 2018 +0200 - modules: readme files regenerated - modules ... [skip ci] +===================== 2019-01-16 Version 5.2.1 Released ===================== -commit 023f42e3001a5e61dadb59d88b2ddf17c4ab42e2 -Author: Kamailio Dev -Date: Fri Jul 13 11:31:47 2018 +0200 +===================== Changes Since Version 5.2.0 =========================== - modules: readme files regenerated - modules ... [skip ci] +commit c0d7976703a74ca1e41ec4ab1bf90c59a6cbf5a0 +Author: Daniel-Constantin Mierla +Date: Wed Jan 16 11:12:46 2019 +0100 -commit a3c674031974744a1c22f4c242c7188d8ef3c3fe -Author: Kamailio Dev -Date: Thu Jun 7 17:46:56 2018 +0200 + Makefile.defs: version set to 5.2.1 - modules: readme files regenerated - modules ... [skip ci] +commit 85e5a8dcba7e45805f249e0d62bee8a3a5f52424 +Author: Daniel-Constantin Mierla +Date: Wed Jan 16 11:10:27 2019 +0100 -commit 18d4a1e519ac4ba1ab39b6830d29cfa6392d065d -Author: Kamailio Dev -Date: Thu May 31 10:01:42 2018 +0200 + pkg/debian: set version to 5.2.1 in deb spec files - modules: readme files regenerated - modules ... [skip ci] +commit da84d4d3adaf9c719702a4355ef619fc4ef93156 +Author: Daniel-Constantin Mierla +Date: Wed Jan 16 09:25:27 2019 +0100 -commit f6e2441e95d0f7797893d8e6cd69c62aaecd8473 + pkg: version set to 5.2.1 for alpine and rpm specs + +commit 82d9703e619f765efcda8f37e45bfcfe4b22607e Author: Kamailio Dev -Date: Wed May 9 12:16:47 2018 +0200 +Date: Mon Jan 14 12:46:35 2019 +0100 modules: readme files regenerated - modules ... [skip ci] -commit 953b2e6d1b6cbb7687a264f8592c97ce170bab28 -Author: Kamailio Dev -Date: Sun Apr 22 08:46:49 2018 +0200 - - modules: readme files regenerated - modules ... [skip ci] - -commit 5fef50e6c148fe257e50f4c43466945320aae2a8 -Author: Kamailio Dev -Date: Wed Apr 18 08:46:56 2018 +0200 - - modules: readme files regenerated - modules ... [skip ci] - -commit ca910bf6b75fee4dfe5629733d52e410a42560d1 -Author: Kamailio Dev -Date: Wed Mar 14 11:31:52 2018 +0100 +commit 1bebb9f8a4cb33f8ef9a4e95ad28e80d74b545b6 +Author: Daniel-Constantin Mierla +Date: Sun Jan 13 11:34:25 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + presence_xml: do not include ../presence/presence.h + + - it is not needed, that header file is related to modparams of presence + module + - renamed db_url to presxml_db_url just to avoid possible conflict in + the future like for GH #1809 + + (cherry picked from commit f0e0a849f5dfe5dae0cd0e755b9739cbc7fa8200) -commit 837258b410ad5fd7313d4c9c74b554db744b8d11 -Author: Kamailio Dev -Date: Thu Mar 1 16:01:27 2018 +0100 +commit 57017b10d9a50385368324beb7eef9044d0b124a +Author: Daniel-Constantin Mierla +Date: Sun Jan 13 11:31:22 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + presence: do not include presence.h in other header files + + - it exports as extern the module parameter variables and other modules built on + top of presence can end up including this header file, overwriting + declaration of variables with same name + - renamed db_url to pres_db_url, this being a common variable name, to + avoid same situation with a mistaken include in the future + - GH #1809 + + (cherry picked from commit eb1bf9a69abad3d237c136750fe8cacea4cd0a31) -commit f937feec42660cb9a7c0f3b852e7ffde88550624 -Author: Kamailio Dev -Date: Tue Feb 27 13:16:49 2018 +0100 +commit df1482789cdbcfb7d32e08ba908e185f53cc48ac +Author: Daniel-Constantin Mierla +Date: Sun Jan 13 11:04:16 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + presence_xml: Makefile - link agaist libicu on macos/darwin + + - libxml2 needs it but its pkg-config doesn't list it + + (cherry picked from commit 869f57aac4496e10480094c36373f485aef11a80) -commit 71237ef80465dfb239bfdaa5c470dae20a2fd980 -Author: Kamailio Dev -Date: Thu Feb 22 10:46:26 2018 +0100 +commit ff5d8bf7e0692d50a104e0ebcb7690ba236ff343 +Author: Daniel-Constantin Mierla +Date: Sun Jan 13 11:03:28 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + presence: Makefile - link agaist libicu on macos/darwin + + - libxml2 needs it but its pkg-config doesn't list it + + (cherry picked from commit d3208e1859051eb09013f855126f7f5f5ec47ab8) -commit 976f923489a08480b3de39220dd91be86c77759b -Author: Kamailio Dev -Date: Fri Feb 2 20:16:24 2018 +0100 +commit e61ad10e62d427bd0a22e5621f798015630a1e3f +Author: Daniel-Constantin Mierla +Date: Thu Jan 10 23:07:57 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + dispatcher: docs - typo and indentation for the rpc flags paragraph + + (cherry picked from commit 14b4d23a06fdc9b9f6b17781c50902beaff0cd94) -commit f62d0e1ddab891d38ab1d9e6dffb6487189c61eb -Author: Kamailio Dev -Date: Fri Jan 19 10:16:59 2018 +0100 +commit 458abbe5b5d8fbcb814612af3cac90aa784db227 +Author: Jurijs I +Date: Thu Jan 10 22:49:58 2019 +0200 - modules: readme files regenerated - modules ... [skip ci] + dispatcher: update for module docs (#1804) + + - update for module docs (#1804) + - Some minor comments for dispatcher module were added + - Additionally a description were added, what the several states means when dispatcher list are executed + + (cherry picked from commit 14a87383fbae102b430ed6cfdba2559f1768cdd0) -commit 68653fad1c3beef137a10f1416666cdc8ad9c790 -Author: Kamailio Dev -Date: Mon Jan 15 15:31:27 2018 +0100 +commit 23a5c07e924a2feb5f09b727f4ad0faf6c5af349 +Author: Victor Seva +Date: Wed Jan 9 17:44:09 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + tsilo: add check for empty aor + + Fix: #1775 + (cherry picked from commit 5a5d742eb459249995114eb6a3642f99c6770496) -commit 84aedfc45ac752189f23509512ed1d24f89d24ba -Author: Kamailio Dev -Date: Tue Jan 2 18:01:30 2018 +0100 +commit 563f1d6af3123485ed25cc58bb3badd68e7793a4 +Author: Daniel-Constantin Mierla +Date: Wed Jan 9 14:15:37 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + dialog: do not require dlg_flag parameter to be set + + - using dlg_manage() should be enough for tracking dialogs + + (cherry picked from commit 404f403786478a917637186446bb285e8e32cc59) -commit f47698feee205af4be362c5178c6d4e1f61a14f5 -Author: Kamailio Dev -Date: Thu Dec 7 15:16:33 2017 +0100 +commit 3dd154faeead29f54145843d14367c5b28a4fb7b +Author: Daniel-Constantin Mierla +Date: Wed Jan 9 09:50:12 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + dialog: docs - more info about using the flag and dlg_manage() + + (cherry picked from commit e4dfe3587943d69d556b15df3492cf38c3b21a5f) -commit f36203d229704ee2e04a0de015dbacd2c77c3633 +commit 1e56e4df35865f7138565213e35da8fd32096332 Author: Kamailio Dev -Date: Mon Nov 27 09:46:41 2017 +0100 +Date: Fri Jan 11 16:16:32 2019 +0100 modules: readme files regenerated - modules ... [skip ci] -commit 86cc5340df85809c935e7468fd73e7a85da00519 -Author: Kamailio Dev -Date: Fri Nov 24 10:01:46 2017 +0100 +commit 0d25cb4e9d4f4cc6d3e4a864ef2fa3aaca746511 +Author: Rick +Date: Fri Jan 11 16:00:55 2019 +0100 - modules: readme files regenerated - modules ... [skip ci] + phonenum: fixing documentation typo (#1807) + + (cherry picked from commit 77316f7567e0bbabcc7897969b68fdf64432d645) -commit 515d918657fe0ff5131351ea358c222eda2e1647 -Author: Kamailio Dev -Date: Tue Nov 21 12:16:29 2017 +0100 +commit ead1feb83283dc9c4875f8d6afd57eea4359f64a +Author: Hugh Waite +Date: Fri Jan 4 16:02:09 2019 +0000 - modules: readme files regenerated - modules ... [skip ci] + tm: Add fixup for PVS in fixup_t_check_status + - Allows PVs including $avp(...) to be passed to t_check_status -commit 7fd9d125ef3d0ee41fc054176e3eb56c2e1a4094 -Author: Dmitri Savolainen -Date: Tue Nov 20 12:42:05 2018 +0300 +commit 7c551812960dd1cfc2901a7a46bbf3010df47cd7 +Author: Daniel-Constantin Mierla +Date: Tue Jan 8 12:24:27 2019 +0100 - dialog: fix typo in warn message (#1731) + topos_redis: check the branch value to avoid using uninitialized fields - - GH #1731 + - GH #1784 - (cherry picked from commit df6152fd69469eb340078535a3cf8b28e901ea7d) + (cherry picked from commit cfc89db53c087382c29d809dc0bc56f7351af2d1) -commit 84f004689c4f78260592a38009665a591cc117df -Merge: e178b8c62 094f58490 +commit 06610073bb490355d87a774a74716195d3c01192 Author: Daniel-Constantin Mierla -Date: Tue Nov 6 16:19:09 2018 +0100 - - Merge pull request #1708 from sergey-safarov/spec_update10 - - RPM spec update for 5.1 branch - -commit 094f584901ff4a4c60b6119b3fd7563472b2f88f -Author: Sergey Safarov -Date: Sun Nov 4 08:49:23 2018 +0000 +Date: Mon Jan 7 15:34:42 2019 +0100 - pkg/kamailio/obs: Fixed bdb module build on fedora dists + acc_json: proper check if the mqueue name is set and the module can be loaded - (cherry picked from commit 2c077b0434037f1b0f6b37d6026235b206ddbbb2) + (cherry picked from commit 7ce278d8accaaaa2b9c4b8fa349672826b5511f7) -commit 18bf0d3a34794606f06e9740d881badca50cfd5a -Author: Sergey Safarov -Date: Sat Nov 3 22:15:26 2018 +0000 +commit c5216b56b396b79e4392770bd438e712caca1576 +Author: Kamailio Dev +Date: Mon Jan 7 12:46:31 2019 +0100 - pkg/kamailio/ops: Added MongoDB rpm package - - (cherry picked from commit 702bfff175efaf25202e1644e39d143886ce7886) + modules: readme files regenerated - modules ... [skip ci] -commit 8f6d085cda34dc6d9edb043f8c8eb548af0090cb -Author: Sergey Safarov -Date: Sun Nov 4 00:00:44 2018 +0000 +commit 669aaec3ca09f340be776882ffffe60498a11ad2 +Author: Daniel-Constantin Mierla +Date: Mon Jan 7 12:44:31 2019 +0100 - pkg/kamailio/obs: Updated obs meta - - (cherry picked from commit 3c9547334166d43aa1e2cba8b9dab6e78dfed66a) + core: pt - added missing #endif due to backport conflict -commit 8ebb8932c43ccbe1693062058bf779591eb84360 -Author: Sergey Safarov -Date: Sun Nov 4 00:13:14 2018 +0000 +commit 83597d2fc2922921e66edeca184b3d59354407cf +Author: Daniel-Constantin Mierla +Date: Sat Dec 29 17:43:18 2018 +0100 - pkg/kamailio/obs: Removed end of life dist + ims_isc: free variable in case of errors - (cherry picked from commit 9aa98b12b3b7f3841facc20fee4873d8b3dc5fff) + (cherry picked from commit e7d684ad22d17f3aca58dd66c555e43877d9320a) -commit e178b8c620c991635d74c01e14b837e0080b1eea +commit 018c4328c4b1f55be0920e4350066cbd951b16d9 Author: Daniel-Constantin Mierla -Date: Thu Oct 18 08:34:32 2018 +0200 +Date: Fri Dec 28 09:55:11 2018 +0100 - core: init cfg framework before executing event_route[core:worker-one-init] + rtpengine: use version number to track building rtpengine sockets on reload + + - check on list size fails if same list is reloaded with different + attributes + - reload command has a safe interval of 10 seconds between executions to + allow building internal list of sockets - (cherry picked from commit a4b6a5cb1dda7576b265a23c91321b7f2a034658) + (cherry picked from commit 785ede5bacfe55e88381ae8f7d672b24ec4b8cf6) -commit 552d90b8a0c649917eedf7a6af47f03980b7b77f +commit f0fd7b36e8a90067facaadc68a385935edaaeefb Author: Daniel-Constantin Mierla -Date: Fri Oct 19 08:20:54 2018 +0200 +Date: Fri Dec 28 09:17:31 2018 +0100 - core: fake msg - added sip schema to From/To URIs + rtpengine: reworked build of rtpengine sockets to avoid serial initialization - (cherry picked from commit 044cdefcadf5c7949945544dce30becb2d84c56e) + - do not lock during startup, change of the list of rtpengines can be + done only upon reload, which is now disabled until all child processes + did the init + - do rtpengine testing (probing) only in one child, the status is stored + in shared memory, no need to do it from each process. + + (cherry picked from commit 3d4813001052497d21804586d643697f7a68aee8) -commit 2a5255880fb9b22bcc5d1615546935476facc787 +commit 3d9396f0a463e659a94b309e1d2551af7f84f74d Author: Daniel-Constantin Mierla -Date: Thu Oct 18 18:10:33 2018 +0200 +Date: Thu Dec 27 19:26:02 2018 +0100 - core: dns_cache - NAPTR rr_preference set to number for rpc output + core: added function to detect when processes were initialized - - it was set to string, causing a crash - - reported by GH #1680 + - sr_instance_ready() return 1 if all processes finished child_init() - (cherry picked from commit b29f333ab118c88d35fa51298cd7ef99857dbba7) + (cherry picked from commit 97af78a5c4dd2b99da5d2f7048ac6fa73db94c1d) -commit df62658bb3af88b69c4dc4d019b4814967f9f8e3 +commit 260aa34a3d1c9df505f69e0a8c57e49649b5b123 Author: Daniel-Constantin Mierla -Date: Thu Oct 18 10:13:08 2018 +0200 +Date: Thu Dec 27 15:06:20 2018 +0100 - core: info log at startup with number of precesses, pkg and shm sizes - - - useful to see if needed to troubleshoot by analyzing log messages + core: function to detect if all processes were forked - (cherry picked from commit f057e844ba407333ad8d876daa1f6ee49bd41c86) + (cherry picked from commit 4c57d02e53deda909cc93b41d613f62921c99a9c) -commit df1f0cc707255e848e8b5defd4c3ec43a7eab3f7 +commit f62c3cb67c9c2be10393bdeec684eb3dc9325dd6 Author: Daniel-Constantin Mierla -Date: Mon Oct 15 12:20:23 2018 +0200 +Date: Wed Dec 26 12:04:59 2018 +0100 - kamctl: man page - note about prefixing number params with 's:' to enforce string + auth_db: print db table name when version check fails - (cherry picked from commit 48048b0e372eabdde14460cb539b3e1ecbc13ae5) + (cherry picked from commit a8de371e90ddc8a6921b5bf7464961865804cc06) -commit 3733918a287af1f9aa323b0b4e454c2db409ac9a +commit e5a25dd7d9c36ae5353cb2f10665930a1a978284 Author: Daniel-Constantin Mierla -Date: Mon Oct 15 12:03:43 2018 +0200 +Date: Wed Dec 26 11:50:50 2018 +0100 - utils/kamcmd: man page - note about the suto-conversion of number parameters + rtpengine: lock only when db backend is enabled for build_rtpp_socks() - (cherry picked from commit c998a7cc2d265d6e3c0e10facc280866495d827e) + (cherry picked from commit 99250f758e6deb90a5852599f831a53ab394b751) -commit 3d203d97f28e8d5eefb5ea63c0f3ff12b3cb9d2f +commit 5bb811d8d7c09c7792206831326c8f650eb30f66 Author: Daniel-Constantin Mierla -Date: Mon Oct 15 08:23:23 2018 +0200 +Date: Wed Dec 26 09:44:21 2018 +0100 - dialplan: note and example for prefixing string param with s: for rpc dialplan.translate + cdp: init pointer to avoid warning on uninitialized use - (cherry picked from commit a169b298018f08a57da8e7a8c116560ee4fff006) + (cherry picked from commit 7873a653a43070f891dc6cde5c188c81bf5de25d) -commit 18ab2fbe8d7d24d2cb88b3bee9d9a1bf1eede5d5 +commit dff5c0d68bbae1277f8842fd90b001f5074e7551 Author: Daniel-Constantin Mierla -Date: Fri Oct 12 02:12:18 2018 +0200 +Date: Tue Dec 25 16:15:44 2018 +0100 - db_postgres: docs for bytea_output_escape + db_redis: use safe clist iteration for db_redis_free_tables() - (cherry picked from commit 99368909cdfc5140a1948525c5c734252f998efb) + (cherry picked from commit 3ca9765eea980283963a48a9767e93566063057f) -commit c7250e725d1c2c32f579cf4803619c41e52cf825 +commit 42821df5cf64d71b9b837e2e5c55b2d91392a250 Author: Daniel-Constantin Mierla -Date: Fri Oct 12 02:09:21 2018 +0200 +Date: Thu Dec 20 13:13:32 2018 +0100 - db_postgres: new parameter bytea_output_escape + websocket: removed static from declaration of ws_rm_delay_interval - - control escaping output for bytea fields - - default 1 (do the escape) + - it is used as external in another source file + - GH #1771 - (cherry picked from commit 861205b8aeed19fe8693e21fe5f1856f1dcb08c5) + (cherry picked from commit d5e40d5f05795f3902e5ae51bf4c57345e945a9c) -commit 039bc39162e93db6719452ab60465cd7ee166f72 -Author: Sergey Safarov -Date: Sun Oct 7 21:06:59 2018 +0000 +commit 5067fe22cc16af943126ea88a9ddd35281ca8636 +Author: Daniel-Constantin Mierla +Date: Thu Dec 20 08:09:36 2018 +0100 - db_postgres: Fixed blob hex encoding (#1255) + dialog: only write debug messages in case cseq or contact fields are empty - (cherry picked from commit 5557a441a4969994c2a82a89d53dec710164a034) + (cherry picked from commit ae4087ef615c1de5b67c8406eab8316300282d8b) -commit b43fbb18acb86b97ff86bd867ab46c25747b2cf0 -Author: Sebastian Kemper -Date: Sun Oct 7 18:54:39 2018 +0200 +commit 92d7bec4b5dddad2d08b6434ab6b561b230ee466 +Author: Victor Seva +Date: Thu Dec 20 00:16:25 2018 +0100 - kamctl: make jsonrpc filter portable + cnxcc: fix compilation warnings - The filter has a regex looking for a literal '{' in the beginning of a - line. Some awk implementations interpret this as a meta character, so - the regex is deemed broken. Example with busybox awk (POSIX): + > warning: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat] - root@hank2:~# kamctl ps - awk: bad regex '^{.+"id"[ ]*:[ ]*[0-9]+[ ]*}$': Invalid contents of {} - root@hank2:~# + (cherry picked from commit 89e89e023d923d2dbec694509b9f958bbed6d3ad) + +commit 3871e87a51290cace879ba61c5e26a9393b9eed3 +Author: Victor Seva +Date: Thu Dec 20 00:09:39 2018 +0100 + + topos_redis: fix compilation warnings - To fix this enclose the character in square brackets. This always - matches for a literal '{' and is portable. + > warning: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat] - Signed-off-by: Sebastian Kemper - (cherry picked from commit 59d287586f502a8df71c2e91899fde49594e072e) + (cherry picked from commit da18d99e509c86ac21f04cf36184cadfe16fce83) -commit 85b5f07694b30bdddcb36591b7306fef4385ecc2 +commit 6e8a496a5f0cbf29636ef4379c11ffd55218395d Author: Victor Seva -Date: Wed Oct 17 12:07:53 2018 +0200 +Date: Thu Dec 20 00:04:54 2018 +0100 - core: [cfg] reset routename properly - - solution for #1536 was not working + ndb_redis: fix compilation warnings - fix #1668 + > warning: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat] - (cherry picked from commit 6d1bf58d468e8ee62da2b1a2e50a57feb7c576c6) + (cherry picked from commit 7d9d9fe21a121a38d4a3861ce252a1a485a35c71) -commit d078160a018171e856eb0ed90db3019a02a5253c -Author: Sergey Safarov -Date: Sun Oct 14 15:51:35 2018 +0000 +commit bc602ee8662a440d0fec47a5ec6b66021a13d4fa +Author: Daniel-Constantin Mierla +Date: Wed Dec 19 14:11:51 2018 +0100 - pkg/kamailio: Fixed db_redis RPM packaging after ee95675177466a7ae5f9575db300df32e42661f2 - Please look ticket #1676 + websocket: docs for timer_interval and rm_delay_interval params - (cherry picked from commit c70c4c5486831b0b8e87450869fee091ecfbda04) + (cherry picked from commit 3a20bb1ad27b8a85ec932975e14bcec12237437b) + +commit 281d6fa15abc3b5f60c9dfc7cab272fca4e50d44 +Author: Daniel-Constantin Mierla +Date: Wed Dec 19 14:06:56 2018 +0100 + websocket: destroy ws connections in dedicated timer process + + - avoid races/invalid access when sending data failed and the connection + was removed + - added parameter to control the timer process: interval or running and + delay interval for removing + + (cherry picked from commit af09e224dba0c57c23fd58a7f83a24d2ffbaa07c) -===================== 2018-10-04 Version 5.1.6 Released ================== +commit 049473bce13cc6994cbde1080d75bb25565ad5bc +Author: Daniel-Constantin Mierla +Date: Wed Dec 19 13:15:36 2018 +0100 -===================== Changes Since Version 5.1.5 =========================== + websocket: fetch ws connections based on keepalive process index + + - get the ones with id that matches the index when doing modulo over the + number of keepalive process in order to spread the load of doing the + ping-pong + + (cherry picked from commit 71517152e7de26d6c47fd037c25dc854aa37734f) -commit b16c3789966af521ee41874b4d28fe6be64d49ec +commit e25b66962ba51e2749a093f96e0cdaac8df33a4f Author: Daniel-Constantin Mierla -Date: Thu Oct 4 11:15:59 2018 +0200 +Date: Tue Dec 18 13:20:51 2018 +0100 - Makefile.defs: version set to 5.1.6 + websocket: use the list with ids for ws connections to do ping-pong + + - avoid using pointers to ws connections, they can get closed + + (cherry picked from commit b5253b62090feb70f08885fb530d894d0bd6ad90) -commit 800e7394c1b7b71bccbf6b1898a039e6de6384e9 +commit 3a78d068a3678471efe0a7e7f4ea0e7c9bc18675 Author: Daniel-Constantin Mierla -Date: Thu Oct 4 10:13:14 2018 +0200 +Date: Mon Jan 7 12:01:21 2019 +0100 - Makefile.defs: detect gcc v8.x + topoh: aded debug message for knowing the reason of no decoding rr - (cherry picked from commit e3134724116c89caaa795b5d20612fd4a4b30d7e) + (cherry picked from commit cee4941daf56985d9734263c4b99c33f9ef3a149) -commit 9563d860be9f280466798ff77b4c550cded6d2ed -Author: Victor Seva -Date: Thu Oct 4 10:45:56 2018 +0200 +commit 4fe56123b424638a5967832f4ac05d3e63a13577 +Author: Balajee +Date: Sun Dec 23 23:27:49 2018 +0530 - pkg/kamailio/deb: version set 5.1.6 + topoh: fixed unmask route issue, if maksing fails for one of the routes + + (cherry picked from commit d57f70127c44fd74c459aefc8d2655978b9cb48b) -commit 21f52a425b1dcd9aeae0c842dced1449a4c90af2 +commit 2dc84951b8f0e2503ee4c551b8693de36b36ef77 Author: Daniel-Constantin Mierla -Date: Thu Oct 4 09:44:49 2018 +0200 +Date: Mon Dec 17 20:34:35 2018 +0100 - pkg: version set to 5.1.6 for rpm, apk specs + cplc: init var to avoid compile warning + + (cherry picked from commit 0f1b970ae7f47478649b61a8dc43fe42714b2a95) -commit 38379247e653bd17711f980aa977080b004ad272 +commit fc6232f7f9d1c65f436e7ca0db505c6e1114145d Author: Daniel-Constantin Mierla -Date: Thu Oct 4 08:21:10 2018 +0200 +Date: Mon Dec 17 20:31:59 2018 +0100 - siputils: note that is_first_hop() works only for IP addresses in record route - - - this is done for reply handling + regex: init var to avoid compile warning - (cherry picked from commit 840d8edc3cae5a921aaa14e62f170613bc8da844) + (cherry picked from commit dfb872b311cd0acd4a40c810f612c8a23e7c9aca) -commit 36b695bf9fdd74eb1bdb11ac89d7f2c306f1294d -Author: Mikko Lehto -Date: Tue Oct 2 16:08:06 2018 +0300 +commit 75aae8055a8acb2f6e3917fa834989440c10197e +Author: Anthony Messina +Date: Fri Dec 14 16:32:04 2018 -0600 - sipcapture: initialize variable - - > sipcapture.c:2580:5: warning: variable 'corrtmp' is used uninitialized whenever 'if' condition is false - > [-Wsometimes-uninitialized] - > if(correlation_id) { - > ^~~~~~~~~~~~~~ + app_python3: fix Python 3.7 deprecation warnings + - check for PY_VERSION_HEX >= 0x03070000 - (cherry picked from commit a0db2cb021e45fe56f8b54121efa31bf071c8709) + (cherry picked from commit 8bb866895c9260fa91143e892a2a77bb1d3fff4b) -commit 1252ae2523d16edda0465cfb441eaedd2de62d27 +commit 73eef8626c8f2babe55a6e63e00bfb5361589a51 Author: Daniel-Constantin Mierla -Date: Tue Oct 2 15:33:51 2018 +0200 +Date: Mon Dec 17 09:51:33 2018 +0100 - Makefile.defs: enabled clang compile warning flags -Wunused-variable -Wuninitialized + uac_redirect: docs - fixed missing space in sectionid - (cherry picked from commit d63548dc311df5f2550e788fc026d9ec7c7dd2f4) + (cherry picked from commit 4c44b1e53a135dc234d6c9cdfbddaefbd938f399) -commit 8ce748329be28b2a0f86f7711b03cdb696ee76d0 +commit a13e067ea162975209f21215ccffd430ea4e6a1e Author: Daniel-Constantin Mierla -Date: Tue Oct 2 15:00:29 2018 +0200 +Date: Sun Dec 16 09:04:07 2018 +0100 - tm: safty checks when destroying the tm cell + app_ruby: added missing app_ruby.api_list rpc command - (cherry picked from commit afb7ef77faab405a4da0c7f601f35358a1130238) + (cherry picked from commit 37f664c404c5391181fcb61e2ec2955105c47a4d) -commit 275ff956e460af769cb4f659a21162317e653695 +commit d83af7701e3f25f68f01cfd0b0602c72bc10afa4 Author: Daniel-Constantin Mierla -Date: Tue Oct 2 12:05:09 2018 +0200 +Date: Sat Dec 15 08:57:35 2018 +0100 - tm: macro to define the ptr address for tm cell uac field + uac_redirect: docs - added section ids - (cherry picked from commit cb984a53016762cb0932ed4dec4c75edb8997c0f) + (cherry picked from commit b6e4ebc666877549796e09b721e1234e011b325e) -commit 837dc3e07fb71e217706f6233f6d789256dd7dd6 +commit d2418ad35ad28cbb8bf875b97886988719436a62 Author: Daniel-Constantin Mierla -Date: Tue Oct 2 08:59:56 2018 +0200 +Date: Fri Dec 14 11:20:08 2018 +0100 - tm: reset the tm cell content during free + app_ruby: print new script version in rpc reload info message - (cherry picked from commit fe19995ba150beca0acf6f4bdc1bb92f3c8348e1) + (cherry picked from commit bbabc77a0ac34fbdc4618161360f27efc12ba1dc) -commit ff91717c04bf616c53e673644ec61e2b9a9f1f8a -Merge: c2f0c834e c071e6b0d +commit ba1ccab26123e468f7ef4cdee2a74b1068762d9d Author: Daniel-Constantin Mierla -Date: Tue Oct 2 11:26:41 2018 +0200 +Date: Fri Dec 14 10:05:40 2018 +0100 - Merge pull request #1663 from sergey-safarov/spec2 + app_ruby: implemented rpc app_ruby.reload command - [5.1] pkg/docker: updated submodule + (cherry picked from commit 28b54dc63c62ddef837a3f580ab97161b55f214e) -commit c2f0c834e9400d412f958e489887e90b234812a2 -Author: Luis Azedo -Date: Mon Oct 1 13:57:00 2018 +0100 +commit 50a60b86d647d6d69f601fe7aa071f91c984e2b4 +Author: Daniel-Constantin Mierla +Date: Thu Dec 13 10:41:29 2018 +0100 - nathelper: initialize local variable + app_ruby: Makefile - updated how to detect ruby version - (cherry picked from commit c814f9fb6aa20ae18253f0d165795516a8869085) + - GH #1762 + + (cherry picked from commit 1569f91121a1ec00a0d59becbba587c923a21c63) -commit 0f8395361acc9976dd20e8189b89ff4bed93a53e -Author: Luis Azedo -Date: Mon Oct 1 13:51:08 2018 +0100 +commit 9ccbcc089e70001dd94136eadb68d2711669142f +Author: Daniel-Constantin Mierla +Date: Thu Dec 13 10:22:35 2018 +0100 - Revert "nathelper: fix call to alter_mediaip" + tm: error log message about new final reply made info - This reverts commit 17c14a966ff3ba67ce858dfe424d7cdf5100d4fa. + - can happen due to races of packets on the network - (cherry picked from commit 3892c78ac59a7d894a5dc8804c20df07b52cc795) + (cherry picked from commit 3d43f546ddff613c50068c9d47521a15b42f1c7b) -commit c071e6b0d1f5d4c3679e32207cd0fba372a22fbf -Author: Sergey Safarov -Date: Mon Oct 1 14:08:04 2018 +0000 +commit 6fff557d5354baea8ad5c52d589f0da53497f876 +Author: Daniel-Constantin Mierla +Date: Thu Dec 13 10:10:19 2018 +0100 - pkg/docker: updated submodule + app_ruby: Makefile - fixed libs for darwin os with no pkg-config + + - removed -lobj from libs for linux without no pkg-config + + (cherry picked from commit fb57ccb9d56991ca10714ffaab307cd02c36542b) -commit 24246a9206209a1417ced0dcd5bb2f71116610d2 -Author: Markus Bönke -Date: Thu Sep 27 11:17:49 2018 +0200 +commit cb98198e595c776ccbf2cd8777e178eb81e85b58 +Author: Daniel-Constantin Mierla +Date: Sat Dec 8 08:12:49 2018 +0100 - db_unixodbc: added section ids, updated application name + pv: {param.count} accept static string "," as delimiter - (cherry picked from commit 636c8b5ab16bbac4a8a9db70476ffd93bf2d13cf) + (cherry picked from commit 80b3c37557d446bfe9ca5a5f469a42af60648280) -commit d42c2415acdb951ad93c68511257971ddce4331b +commit 959b221282cf22036482d650b55fc075649e93d7 Author: Daniel-Constantin Mierla -Date: Mon Sep 24 15:01:57 2018 +0200 +Date: Thu Dec 6 10:54:14 2018 +0100 - tm: warn message on unexpected fcount value + misc/examples/kemi/kamailio-basic-kemi-sqlang.js: use functions to match methods and myself - (cherry picked from commit 1d24e36d95b97e41bc76949bdd8ba2a24babdffe) + (cherry picked from commit d196ed8fa1483a1aa7ba24d22b452404ad83ecad) -commit a5d77172fc9a2dac5eb711f2672437cfd302f8ba +commit cad6b2f034b2eea519be14e04f4979543c80a762 Author: Daniel-Constantin Mierla -Date: Mon Sep 24 14:27:23 2018 +0200 +Date: Thu Dec 6 10:53:22 2018 +0100 - mem: f_malloc - better log message on ignoring double free + misc/examples/kemi/kamailio-basic-kemi-jsdt.js: match from uri myself with function - (cherry picked from commit 434518953c507b41b80adaf1a39b7b8f1e9a3048) + (cherry picked from commit 856d2e03ea54cab6756dc61c3175df3638af9ce3) -commit edd92385da03cb64ed4ce38450bc5a5c8f958786 +commit b5a46dbffd3b9b2f4a61d57fc6aec2c46187b61e Author: Daniel-Constantin Mierla -Date: Mon Sep 24 14:22:12 2018 +0200 +Date: Thu Dec 6 10:34:54 2018 +0100 - mem: q_malloc - better log message on ignoring double free + misc/examples/kemi/kamailio-basic-kemi-jsdt.js: removed extra parenthesis - (cherry picked from commit 2cd82d39fe0fccf3237eb9947fd16b0be15c2270) + (cherry picked from commit d9c38917ad0fea678449c41a60d52c68b697f8a1) -commit 8dda2f02b4bfdac65f73834d92513855788ff60f -Author: Mikko Lehto -Date: Sat Sep 22 10:21:19 2018 +0300 +commit 97c0391a03313622776133f6696ccdabe7772839 +Author: Daniel-Constantin Mierla +Date: Thu Dec 6 10:22:12 2018 +0100 - core: fix comment typo + misc/examples/kemi/kamailio-basic-kemi-python.py: fix condition on user agent - (cherry picked from commit 37fb1b68675c637c4d9bbfbc27572b2c748ad673) + (cherry picked from commit 323e96dbe5f263d66134183de8b2e8cff268431f) -commit 09ea75e9100405a48ea7f2c9285b36045d9f8de8 -Author: Mikko Lehto -Date: Tue Aug 14 09:42:37 2018 +0300 +commit 7c8d57dfcfbab6d81ed8cb118cab834e3ef2c016 +Author: Daniel-Constantin Mierla +Date: Thu Dec 6 10:21:53 2018 +0100 - uac_redirect: fix documentation typo + misc/examples/kemi/kamailio-basic-kemi-lua.lua: fix condition on user agent - (cherry picked from commit f788766522cb0f9bb8bca42954337889198462ee) + (cherry picked from commit c3f3f088cdcff566970c8af0e07e7ae5abb50504) -commit 5c5cfcf379cf9ecf74a3d2646bfaa9137c3ea3f8 -Author: Mikko Lehto -Date: Thu Aug 9 14:35:17 2018 +0300 +commit 4b22810de302ef26a7c74cb868c33be183e8f114 +Author: Daniel-Constantin Mierla +Date: Thu Dec 6 10:21:05 2018 +0100 - rtpproxy: fix comment typo + misc/examples/kemi/kamailio-basic-kemi-jsdt.js: use functions to match methods and myself - (cherry picked from commit f7ac556e699d323e816c14a554122c87d38b3a83) + (cherry picked from commit 3991bcf5541d22d3a7ccaa3f89a9e0d189fd41b8) -commit 1d86c8c858aa6362c0f7bd10d513573e73cbf8b5 -Author: Mikko Lehto -Date: Fri Jun 30 22:31:09 2017 +0300 +commit 2405ed822068e796caf0ef0f8b04558cdb4a9bfa +Author: Daniel-Constantin Mierla +Date: Thu Dec 6 09:48:37 2018 +0100 - src: Fix misspelled Kamailio + app_jsdt: updated duktape js engine to v2.3.0 - (cherry picked from commit 62790cc279550fef9ce3f7a6c0ee8dcc055f9625) + (cherry picked from commit f24487568c76b7e4af70698e246ad67c2cee2f96) -commit 5f1178f090916054aeccfe57db22e042be1bc76c +commit 306d1590ad00f7518a7b7284768e52d1a35131f7 Author: Daniel-Constantin Mierla -Date: Fri Sep 21 12:51:08 2018 +0200 +Date: Thu Dec 6 09:16:31 2018 +0100 - tls: update to default session id value to reflect major version + misc/example/kemi: merge condition lines in kamailio-basic-kemi-python.py + + - fix syntax error - (cherry picked from commit 491e19eb47384162cba64fd9f043e77574ce5017) + (cherry picked from commit beb99b3e4911506246bdd4eaed9aae582232eb84) -commit 938db9426d005d99416ec4453b53135b883e3441 +commit 2e81abf1262784e390eb31efa95c5f437bd7051e Author: Daniel-Constantin Mierla -Date: Thu Sep 20 16:56:04 2018 +0200 +Date: Wed Dec 5 12:40:16 2018 +0100 - core: use memcpy() instead of strncpy() + dialog: store call-id, r-uri, f-uri and t-uri with 0-ending char - - avoid gcc 8.2 warning: ‘strncpy’ output truncated before terminating nul + - can simplify matching with standard string comparison and regexp - (cherry picked from commit 9e13c9512b48ab9522f508465c6031e7b4a96086) + (cherry picked from commit f1ab32ee4a0bf64017a0b05f2013b81d37d50208) -commit 8b8fccedeaede8e1d4828e4ccdd380b48bdddb1a +commit 8e4a914f3530dc37caec0a70d4b06a2326efc60f Author: Daniel-Constantin Mierla -Date: Thu Sep 20 16:45:48 2018 +0200 +Date: Tue Dec 4 14:35:53 2018 +0100 - core: use parentesis to surround condtion on raw_ipip header size + misc/examples: sample default config with websocket enabled - (cherry picked from commit 55575264332e07611c269873c9ce0b5a63c35454) + (cherry picked from commit 45cecdef62b43ea19a8be607faddbe9918b67f06) -commit 7141049975f265c8bb9cb9758e6fe65494615022 +commit f1a22ec8fb62277b627398daaa54be60b9c557b5 Author: Daniel-Constantin Mierla -Date: Thu Sep 20 16:37:15 2018 +0200 +Date: Tue Dec 4 11:45:38 2018 +0100 - path: use memcpy() instead of strncpy() - - - avoid gcc 8.2 warning: ‘strncpy’ output truncated before terminating nul + misc/examples: kamailio-basic-kemi-python.py - use functions for method and myself checks - (cherry picked from commit daad89a516f1f298ef8f71505d7ab93b35fe76db) + (cherry picked from commit 52c236e6417581b1f0354cc52f2eb5f762bc3b31) -commit 514b2eb25b36f0a59c0897a462b276e8f45d73cd +commit 3a2d9921dc8a3c8133e7e3bacfba94468f9bbeb6 Author: Daniel-Constantin Mierla -Date: Wed Sep 19 09:03:10 2018 +0200 +Date: Tue Dec 4 11:16:57 2018 +0100 - nathelper: exported fix_nated_sdp() variants to KEMI framework + auth_xkeys: clone value before inserting the lump inside auth_xkeys_add() - (cherry picked from commit 0d14ce8bf45ada579f7ec85793d358a5fa32e4b7) + (cherry picked from commit 01f5ecbc45c236daea62d6638a02c168720c8479) -commit 592438a1991f5b2f4dca977032d0a2c24d2a128f -Author: Daniel-Constantin Mierla -Date: Wed Sep 19 08:33:14 2018 +0200 +commit c9eaace851e91aa75bf979f5092f31894564c6f1 +Author: Yasin CANER +Date: Tue Dec 4 11:37:04 2018 +0300 - registrar: use sruid_next_safe() + rtpengine : crash is fixed and codec flags added to doc (#1742) - (cherry picked from commit 89676b9774ecc0f72272b7027821a9531dc1a6ea) + * rtpengine : add information to doc about transcode + + rtpengine : add information to doc about transcode parameter + + * rtpengine : codec flag crash is fixed + codec-transcode , codec-strip , codec-mask , codec-offer gives crash without codec value.It is fixed and some logs are added for help. + + * rtpengine : codec-transcode and other flags are added to doc + + codec-transcode , codec-strip , codec-mask , codec-strip are added to doc with example. + + * rtpengine : str_key_val_prefix is fixed for null values + str_key_val_prefix is fixed for null values + + * rtpengine : b parameter is changed with via-branch in document + b parameter is changed with via-branch in document + + (cherry picked from commit a9a3ec0214227d272338a827ceb4fd12cea94429) -commit bff608273684aa472547fb9bfccded24adb361b0 +commit cc51d6c7170ad289c8f521a05470a2eacd05f565 Author: Daniel-Constantin Mierla -Date: Wed Sep 19 08:11:36 2018 +0200 +Date: Fri Nov 30 16:05:30 2018 +0100 - usrloc: use sruid_next_safe() + tm: reply_received() - simplify locking for processing sip response + + - leverage the recursive mutex and skip several zones of unlock/lock, + which can lead to races on delayed processing or fast reply + retransmissions + - related to GH #1613 #1744 - (cherry picked from commit fd30ccf4473d43d98cfb0d896c47d4824c089bce) + (cherry picked from commit 39b89a18a8c357151a173ab02dc95dff1f02715d) -commit fdc74217580a526b1848406b308c6563b6700e85 +commit 1133f818461cf2ed6c8bd755543f93b366a02683 Author: Daniel-Constantin Mierla -Date: Fri Sep 14 08:51:47 2018 +0200 +Date: Fri Nov 30 09:19:16 2018 +0100 - core: more info in log message when sendto() fails + lib/srdb1: memset db connection structure earlier in db_bind_mod() - (cherry picked from commit 317701dc3d1ddb27395ded873a3055af2d029a5a) + (cherry picked from commit 1b014d65e26a99f9f5d4aea1b27949776f083c2d) -commit ba9ee6de14b83f57cf2bb4eef11f229e5f8b3a08 -Author: lazedo -Date: Thu Sep 27 13:10:18 2018 +0100 +commit 6e79c6304823301a2dde8a2dd5e169525db6cd9b +Author: Henning Westerholt +Date: Sun Jan 6 14:46:34 2019 +0100 - nathelper: fix call to alter_mediaip - (cherry picked from commit 17c14a966ff3ba67ce858dfe424d7cdf5100d4fa) + kamdbctl: Merged patch from alpine packaging (#1786) + + - kamdbctl: Merged patch from alpine packaging (#1786) + - add proper quoting for DB table and module definitions + - manual backport from c6e62f932495af -commit 53bc3a936d43d0eb23c61b0d1f089c63b437b0e9 -Author: Juha Heinanen -Date: Mon Sep 17 18:17:36 2018 +0300 +commit 9bfac7d0fa750c6368d048a1b577009b3ea32481 +Author: Daniel-Constantin Mierla +Date: Wed Dec 19 11:56:06 2018 +0100 - core: backported commit f088d2afe4153b9e440a4293211c78f5a25af691 manually + dialog: check for cseq value only when getting it for caller/request + + (cherry picked from commit 740bc8ce88da612ac30a73db0145908355cab192) -commit b6e849c9f4463657534d823f5c8cfb1d85f6bdaa +commit ddc0073c64df5ea1817ce2f727ea7c5e0b46b5ed Author: Henning Westerholt -Date: Sun Sep 16 11:09:12 2018 +0200 +Date: Sun Dec 30 00:15:46 2018 +0100 - app_python: workaround in Makefile for MacOS, fall-back to python if python2 not available + cdp: fix two errors from coverty scan (missing check, var initialization) + + - remove library call can fail, test for the error and log it + - initialize the msghdr variable with a memset - (cherry picked from commit a52e7cb1eec84a20432cb959a29a24ee1a8993dd) + (cherry picked from commit 7d52bf6ce7188eaa57690766c231e55b5509db4f) -commit efb843e1de19b01b36363d4f0a5b345520cf166c +commit fb9894915bba17927ef6edd69a0b8606ac109a53 Author: Henning Westerholt -Date: Sun Sep 16 10:26:58 2018 +0200 +Date: Sun Dec 30 00:42:31 2018 +0100 - app_python: fix python call in Makefile (python -> python2), reported by GH #1645 + cdp: fix three coverity errors (ressource leaks and error checks) + + - fix an ressource leak related to library call getaddrinfo + - add missing error checks for setsockopts and fcntl calls - (cherry picked from commit 31498ca574c931f1a7e12619e725c8b151a3e7bd) + (cherry picked from commit 967a71687aa63a253d495ba49351ae916713a452) -commit ee8cfdd3c7cbf241f70407f8813efd5d5d4f5af2 -Author: lazedo -Date: Thu Sep 13 12:36:00 2018 +0100 +commit aeaf35ce1f19dc46436102a2763a8e9a4d1db1b7 +Author: Henning Westerholt +Date: Sun Dec 30 00:52:18 2018 +0100 - auth: allow challenge from failure/onreply routes - (cherry picked from commit fc968236cf76ea6e67dcd74211b0e39e81b65d21) + core: check for optarg before passing it to external library (coverity report) + + (cherry picked from commit 7eb1eae615a4c3ef710e9931b101ddc4db07aff2) -commit 780e44b9045e6051fc7f41a34db24187f80045a6 -Author: Daniel-Constantin Mierla -Date: Tue Sep 11 23:12:02 2018 +0200 +commit eed2a7f86129950e5f20a4b4010a7e67ea04eac5 +Author: Henning Westerholt +Date: Sun Dec 30 01:17:15 2018 +0100 - jsonrpcs: set global active context to delayed value for async commands + core: fix an error in check_via_address, reported from Mojtaba, mespio at gmail dot com - - GH #1640 + - fix an error in check_via_address, reported from Mojtaba, mespio at gmail dot com + - use the same logic for IPv4 string comparison as for IPv6 + - the old comparison could return true for e.g. via="192.168.1.1", src="192.1.1.100" + - the new logic is also faster for the trivial case with different string length - (cherry picked from commit 1db7dc4de6588131b4340390b5996141940b7ef0) + (cherry picked from commit 98ee014a88ca951d82a0389f0be119078ba525f7) -commit 9ff43b7f8017fb68681a49379ab92736386be1e9 -Author: Daniel-Constantin Mierla -Date: Tue Sep 11 20:31:07 2018 +0200 +commit 1a3a485ac13218b4b34366b452428a34d1e2191d +Author: Victor Seva +Date: Mon Dec 24 08:44:06 2018 +0100 - jsonrpcs: print flags in error message when rpc reply is not initialized + pkg/kamailio/deb: add kamailio-python3-modules - (cherry picked from commit 1501e20b65f63c64a89b84196dc925cef79b7c76) + (cherry picked from commit c78a53004777f498fcef63ae74a11723da950625) -commit 3c4f242fff1171fbe9c19472b8d9430bd7fb1edb -Author: Daniel-Constantin Mierla -Date: Tue Sep 11 16:50:25 2018 +0200 +commit 45cdd6591177ccfa4a810b1f66eb00f024059b96 +Author: Sergey Safarov +Date: Tue Dec 11 10:48:14 2018 +0000 - tls: proper upper limit for tls connection lifetime + pkg/kamailio/obs: Added ruby package #1761 [skip ci] - - GH #1639 + (cherry picked from commit c249cfdf38ba98f4494557cf2b25b87ba6f63e21) + +commit 9edd93729d0162fd2ed37e9b335664ad2269c17e +Author: Sergey Safarov +Date: Wed Dec 12 21:07:45 2018 +0000 + + pkg/docker Updated submodule + +commit fcf973b53b2fe1c4f5dd3ffdee0e4d4a3e0c2b51 +Author: Sergey Safarov +Date: Wed Dec 12 19:23:06 2018 +0000 + + pkg/kamailio/alpine: Added app-ruby package #1761 [skip ci] - (cherry picked from commit deb2904d73a7a540f8eb6e2e8722185b7f0a9a99) + (cherry picked from commit 48624059ac70bb07cbc8d64a460e662ff3b62c5b) -commit fb69f81152368b8727f6d51298b6f8ab2f4753d0 -Author: Daniel-Constantin Mierla -Date: Tue Sep 11 16:41:55 2018 +0200 +commit 83523c58e6ee4b82f16a69eacbd961bb119d1fd1 +Author: Sergey Safarov +Date: Wed Dec 5 21:31:53 2018 +0000 - dialog: update active and early dialogs stats for dmq operations + pkg/kamailio/obs: Fixed warning about not existen kamailio group [skip ci] - - related to GH #1591 + (cherry picked from commit 5c6e3570c68c6a0eb74a808865f26b0f895c722c) + +commit 693240860b293bbc3e6b35a594ca24378edc9014 +Author: Victor Seva +Date: Tue Dec 11 16:41:32 2018 +0100 + + pkg/kamailio/deb: remove ruby support for trusty [skip ci] - (cherry picked from commit bc41d0bc75f1b41f0185eeed37d5514525ef27be) + (cherry picked from commit dae529cc39671b0b406fec5b088cdb4e0abcfcf7) -commit ebcffdb917b2c2c0a1b6d85cbf9c46e7a6afac4f -Author: Daniel-Constantin Mierla -Date: Mon Sep 10 19:38:34 2018 +0200 +commit 0d51eb3c3127cc3f290659fb4265397cfb83380f +Author: Victor Seva +Date: Tue Dec 11 16:37:16 2018 +0100 - tm: set uas rb type along with the buffer when relaying replies + pkg/kamailio/deb: remove ruby support from wheezy and precise [skip ci] - - ensure it is same reply code used in outgoing buffer + * no pkg-config provided - (cherry picked from commit 35dec4c20d78f49ba242229c877894d70c94705c) + (cherry picked from commit 127b32801f3f25baa5684b4acd540bb48423c8e5) -commit 7438c7511c4ee151d5126ee34748e49a492da868 -Author: Daniel-Constantin Mierla -Date: Mon Sep 10 17:22:54 2018 +0200 +commit 8bece540f0859bb33f88bc8aa8414e6a9676d783 +Author: Victor Seva +Date: Tue Dec 11 10:53:24 2018 +0100 - tm: typedefs renamed to match better module and common pattern - - - were not used so far + pkg/kamailio/deb: add kamailio-ruby-modules [skip ci] - (cherry picked from commit 0ea62995ab026737411f3106a4584ba4ba640426) + (cherry picked from commit 4698e97cd3985d3a7f51c709decb546e62b036c5) -commit c9b1410c13fb8d70d4785779b4998987f8f5f19d -Author: Daniel-Constantin Mierla -Date: Mon Sep 10 17:15:30 2018 +0200 +commit 224162d728d50adee8226308d5971fec069e278a +Author: Nacho Garcia Segovia +Date: Fri Dec 7 11:19:52 2018 +0100 - tm: activ_type field renamed to rbtype in struct retr_buf + core: fixed segmentation fault when handling multipart bodies - - better matching the purpose and do not use a typo word - - field t_active changed from char to short for better mem align + Function check_boundaries() in msg_translator.c not handling property the length of the buffers when it needs to repair the boundary, getting a negative lenght and causing a segmentation fault. - (cherry picked from commit 1aad02edc6b9ffb104900cbc624f0853166ae926) + (cherry picked from commit 18e485a3172055fa5c808c2423629d5bbd10b37e) + +commit 07d990366365499ac1296f16efa56c540ad1dd40 +Author: Kamailio Dev +Date: Tue Dec 4 09:16:46 2018 +0100 + + modules: readme files regenerated - modules ... [skip ci] -commit 5195a700241650a1407f4e663db4c6ec85a068af +commit 79946bbb6d1731f503fc378ae38311b630e55999 Author: Daniel-Constantin Mierla -Date: Mon Sep 10 15:03:44 2018 +0200 +Date: Fri Nov 30 16:31:22 2018 +0100 - tm: update uas rb activ_type when overwriting realyed_code + dialog: safety checks for local cseq and contact vars - - otherwise could end up skipping the execution for TMCB_RESPONSE_OUT tm - callback, affecting acc, ... + - avoid crash on systems not printing null string of length 0 + - GH #1717 - (cherry picked from commit 5b223a2e8a92f351b8eab756f5256fda7645ff21) + (cherry picked from commit 46401e465d88495d510d2cb36dc36ec86978c53e) -commit b03b6f7a12e66eab1619e1f10eeba673d7a00cab -Author: Daniel-Constantin Mierla -Date: Mon Sep 10 09:18:27 2018 +0200 +commit 2375d07b774aa2d820bbeb155698305576e2ba74 +Author: Yasin CANER <12412027+ycaner06@users.noreply.github.com> +Date: Wed Nov 28 16:02:25 2018 +0300 - acc: more debug message when checking if acc should be done + ims_charging : doc is fixed - (cherry picked from commit f21554c6befaddbc82016d5d498e11ab3720c404) + ims_charging : doc is fixed + + (cherry picked from commit 37dae368667fc82bc2f60639d722354e6528ec7f) -commit d877cd62175dd31d8eb7a1fbcabb32b9d7b3683f +commit 81f328095f6c06b5ca7cb18b6cdcfad430fb7359 Author: Daniel-Constantin Mierla -Date: Mon Sep 10 08:19:02 2018 +0200 +Date: Thu Nov 29 20:04:08 2018 +0100 - rtpengine: safety check for tm uas.request field + core: parse body - debug instead of error log message when mime mismatch + + - GH #1746 - (cherry picked from commit 75040f62238d6181dc9aec977588c63d15dc5cbc) + (cherry picked from commit 08820db104c7dbfce36af0f59dfcc28f97cffbd0) -commit aa7d8921eac1379f3d31648f99f71388f761b430 +commit ae4b66c18997103419c48e0fb7b95f53dc200300 Author: Daniel-Constantin Mierla -Date: Fri Sep 7 09:00:04 2018 +0200 +Date: Thu Nov 29 18:31:07 2018 +0100 - tls: cast to usigned for computing available size for read + dispatcher: docs for flags value 16 - (cherry picked from commit 1e67fdd53a1c6dc3964d25e891caad24029b7887) + (cherry picked from commit ba31f4ec4f98487e9f1282fe12a5819d5df0b733) -commit aec30b799256fc3c1aeac537d111ecf2a60ff5a1 +commit f7540ffb88bbeb07956c43665874dae82c2ac969 Author: Daniel-Constantin Mierla -Date: Fri Sep 7 08:22:53 2018 +0200 +Date: Thu Nov 29 18:20:24 2018 +0100 - core: tcp - more safety check to avoid jumping out if receive buf for ws proto + dispatcher: flag 16 (1<<4) for destinations with host not having A/AAAA record - (cherry picked from commit db00d11d6a30cb779cecfae73487de6d05b6b915) + - use it for addresses that should not be resolved with an A/AAAA query + at startup (e.g., it is a NAPTR or SRV only record for that specific + hostname) + - such addresses will not match when using ds_is_from_list(...) + - GH #1743 + + (cherry picked from commit 9eba5b673cc1a80434642b280e6f7d53e310338e) -commit ce5fd6f415e504f967e00820d6c57ec3b450e53e +commit 6e1f8128ce5e6ad5946644920ab9ea41bbdd224c Author: Daniel-Constantin Mierla -Date: Wed Sep 5 11:48:02 2018 +0200 +Date: Thu Nov 29 17:34:42 2018 +0100 - core: tcp - improved safety check for available byte in tcp read buffer + dispatcher: rename internal functions to match the module pattern - (cherry picked from commit 2fc11f183d8fcedeb35559c5236ad7159a6a5864) + (cherry picked from commit 4e7e355db6946850bec061ef4d113bd8b9505cb7) -commit e6676483116cac28a958d5dc5edeea3fc07be102 +commit 8a29423b708029b5d569890bc9681a21bf5ebf16 Author: Daniel-Constantin Mierla -Date: Tue Sep 4 11:52:58 2018 +0200 +Date: Wed Nov 28 17:38:56 2018 +0100 - tcpops: more debug messages when executing event route + dispatcher: docs - make a bullet list for the possible values for flags field - (cherry picked from commit d453bdd36a6cd569978a1d19e41d55b28c2b4e13) + (cherry picked from commit f073f72af6a507e8113e06dc07ad161e3f4632c3) -commit 1fd8cc14ae5a81359ece661677b78188720ac936 +commit 8b6665b5d27fa8c36764078b9ae615075486a4b3 Author: Daniel-Constantin Mierla -Date: Tue Sep 4 11:25:21 2018 +0200 +Date: Wed Nov 28 12:49:58 2018 +0100 - htable: proper return on match for sw operator whith rm functions + presence: test if event is dialog when attempting to delete old records - (cherry picked from commit dec17cb6af275789c4ae804d5e1004a9f77010a3) + (cherry picked from commit 55c7f781be7cc40d0cd161640a47244aad60c0e7) -commit 31fd064f209246ef028d0d2369be9e21272a5489 -Author: Daniel-Constantin Mierla -Date: Tue Sep 4 10:08:12 2018 +0200 +commit a385942fdf19c76cbb61354e5cc31bb992898230 +Author: Victor Seva +Date: Mon Dec 3 12:07:53 2018 +0100 - htable: exported sht_rm_name() and sht_rm_value() to KEMI + utils/kamctl: [pgsql] add missing options for pgsql_ro_query() + + Thanks Andreas Maus - (cherry picked from commit 2806831045cdb8f110737a87470382c28c5ce094) + fix #1750 + + (cherry picked from commit 1894b378f975e7129024f6f10640c6c642e30a1b) + -commit 290073feb2ebf94bfa64be8071cf4cc60c8618c1 +===================== 2018-11-28 Version 5.2.0 Released ===================== + +===================== Changes Since Version 5.1.0 =========================== + +commit d66ae2788e1ec12f48a7a3a9bc3530977846c58b Author: Daniel-Constantin Mierla -Date: Tue Sep 4 09:48:02 2018 +0200 +Date: Wed Nov 28 10:53:49 2018 +0100 - pv: increased transformation buffer slots from 4 to 8 - - (cherry picked from commit d68c1bcb350bce2f1951b604f97e246734e43b84) + Makefile.defs: version set to 5.2.0 -commit 82117ce2d576a1f9073e36d1e0508d6aedee82e6 + - new major release, first in 5.2.x series, built from git branch 5.2 + +commit 19b7af8c40bf98ba9a6d251d5e8862444f5bcd09 Author: Daniel-Constantin Mierla -Date: Mon Sep 3 14:50:16 2018 +0200 +Date: Wed Nov 28 10:09:59 2018 +0100 - htable: exported sht_rm_value_re() and sht_rm_name_re() to kemi - - - GH #1614 - - (cherry picked from commit 9121118444e638223c789641618ed4145a67b0f3) + INSTALL: added link to the install tutorial on the web -commit 7417602f16f17495bad935e87ef504aadc6595b3 +commit 3272284062891272918ab4e9333d3392d1a5d8ee Author: Daniel-Constantin Mierla -Date: Mon Sep 3 09:23:08 2018 +0200 +Date: Wed Nov 28 10:07:21 2018 +0100 - core: xavp - more debug details when printing xavp - - (cherry picked from commit 3fef2b3c18f83add1af13c2b84303b507e27aeca) + pkg: version set to 5.2.0 for alpine and oracle linux rpm specs -commit 2ce4f035be25c8d43a96d24331a5673a0e574eb9 +commit 38380414744449796669a54d156c7d08d24aa9e3 Author: Daniel-Constantin Mierla -Date: Fri Aug 31 12:43:44 2018 +0200 +Date: Wed Nov 28 09:59:04 2018 +0100 - core: Makefiles - catch unavailbility of docbook2man tool - - - print an info message instead of ending up in execution error of - Makefile rule trying to generate man pages from xml files - - DOCBOOK var renamed to DOCBOOKMAN to be more suggestive for its - purpose - - related to GH #1624 - - (cherry picked from commit 35aef078dfbcb92de9591eea2841b3ba0f9682f6) + ChangeLog: initial update for preparing v5.2.0 -commit 6815f91eba33216102f7e8ebb0a67e74d0594e2a -Author: Roman Romanchenko -Date: Fri Aug 31 12:02:43 2018 +0300 +commit b93adeb703b8cac9ef3cf07cc68ea4c444364fe9 +Author: Victor Seva +Date: Wed Nov 28 08:38:53 2018 +0100 - tm: crash on memcpy fix - - - in some cases tag is not initialized and lead to crash. - Memory pointer check before writing to added. - - (cherry picked from commit db3b9dbd48f7bb74abf08b0e97bcac15015df719) + pkg/kamailio/deb: version set 5.2.0 -commit 57d8b5287d27fe32b302442c2b18a17642dd6898 -Author: Daniel-Constantin Mierla -Date: Fri Aug 31 10:19:06 2018 +0200 +commit bfe9110343ab73648976cdbead87fa1f60d8a40a +Author: Kamailio Dev +Date: Tue Nov 27 20:16:31 2018 +0100 - tls: docs - some updates to sample tls.cfg - - (cherry picked from commit 957b43ddea8dad434736e800a16581d49ccb2478) + modules: readme files regenerated - modules ... [skip ci] -commit b6ed4d39c68f543f18a4a938d1bba375535d4625 +commit 6da8a5b4cb1f9b97aa2f92bc5d97786443712099 Author: Daniel-Constantin Mierla -Date: Mon Aug 27 12:38:35 2018 +0200 +Date: Tue Nov 27 17:53:30 2018 +0100 - app_lua: rmode 1 corresponds to int returned value + textops: docs - notes that msg_apply_changes() may be required for multi-part operations - (cherry picked from commit b7047205287a0fde12b3568bd0cd0425eeb68fcd) - -commit 50910ac1035df1d3899389d72314353957644a72 -Author: Daniel-Constantin Mierla -Date: Mon Aug 27 12:18:47 2018 +0200 - - app_python: give scan format to PyArg_ParseTuple() via param + - GH #1719 - (cherry picked from commit c1701cf3e57adbf8448c414bfb8ba10426a69104) + (cherry picked from commit 5460db2e59341f143d607de744faa8413216afd5) -commit 44fc897c51f23f3da3c0d556a270edc335ec80dc +commit 0041d6840e0d1dba76239f4f9e46a01efaedbc09 Author: Daniel-Constantin Mierla -Date: Mon Aug 27 10:47:34 2018 +0200 +Date: Mon Nov 26 12:52:13 2018 +0100 - app_sqlang: implemented KSR.pv.gete(...) + misc/examples: use core reply_route inside the anycast example - (cherry picked from commit 89c65fa3210ab0682d4cb699d732ac1653ba0221) + (cherry picked from commit 71a88b1d30b3bff5d6e8e1785ddeae08b3bfe4f2) -commit 57debe742063c776cf8b91e34d5cbe3ebe1631c1 -Author: Daniel-Constantin Mierla -Date: Sun Aug 26 10:37:38 2018 +0200 +commit 0387df55d08c435e8ee4d8dde41c260f2ddb839b +Author: Surendra Tiwari +Date: Tue Nov 27 12:47:40 2018 +0100 - ipops: exported KSR.ipops.is_in_subnet(...) + xmlrpc: docs for event_callback parameter - - match the function name from kamailio.cfg - - so far it was exported as KSR.ipops.ip_is_in_subnet(...) + - GH #1736 - (cherry picked from commit 7bd55ca760a2b1aed8da431b61370c750742ff84) + (cherry picked from commit d74d67976905c9d0c49f00485046117bc2581e65) -commit 9a3d4698491a4f020b1c0d4635f1d3a4c2b410ee -Author: Daniel-Constantin Mierla -Date: Sun Aug 26 09:53:03 2018 +0200 +commit 260ac29706ce64f857959732831b685e0012cede +Author: Surendra Tiwari +Date: Tue Nov 27 12:46:49 2018 +0100 - app_jsdt: implemented kemi KSR.pv.gete(...) + xmlrpc: added event_callback parameter + + - specify the name of KEMI function to be executed for xmlrpc requests - (cherry picked from commit d92216ebdb94c4a068437c083c9f1809ddfa8857) + (cherry picked from commit d3a3e28dd20d731939f9a53c28fb231206268890) -commit 527c20056413d0cd088b8aadd2d84a2408b03053 -Author: Daniel-Constantin Mierla -Date: Sat Aug 25 16:13:25 2018 +0200 +commit 9e729b5ca8af5a6590a828f6aacc7ca23ae379de +Author: Victor Seva +Date: Fri Nov 23 09:24:48 2018 +0100 - app_python: implemented KSR.pv.gete(...) - - (cherry picked from commit 63498d6c2180645562f495077d6b414b12b39820) + pkg/kamailio/deb: version set to 5.2.0~rc2 -commit 4b05951967fb9460a0158fdb1765e4ab3c373fb0 +commit 6707917811647ef26f7741dd40e81cca1b03d00b Author: Daniel-Constantin Mierla -Date: Sat Aug 25 16:01:39 2018 +0200 +Date: Fri Nov 23 09:10:33 2018 +0100 - app_lua: proper return 'nil' for $null values of pvs - - (cherry picked from commit fd3656fba3fe5dcb472836f935e2b4781b02251e) + Makefile.defs: version set to 5.2.0-rc2 -commit c26b2fac5eefb47edcdba65a7ba9d6805f0eac02 +commit 6c768803e544cf8cf060b4099c601a9df0c1b7b8 Author: Daniel-Constantin Mierla -Date: Fri Aug 24 11:43:53 2018 +0200 +Date: Fri Nov 23 09:06:57 2018 +0100 - app_lua: new KEMI pv functions KSR.pv.getvn(...) and KSR.pv.getvs(...) + topos: proper condition to detect 3xx redirect for contact updates - - KSR.pv.getvn(pv, ival) - return the value of pv if not null, - otherwise return the int value ival - - KSR.pv.getvs(pv, sval) - return the value of pv if not null, - otherwise return the str value sval + - GH #1720 - (cherry picked from commit 1576dc7cf504a3a30e83919222f1b8441e4207b5) + (cherry picked from commit 1f02ee62951523f001899d12d1750046f1ba53b6) -commit 9db1528afb6b6d90251a25f42d8f4f8d266eea2a +commit 69a34ef19e9365c810ecd2ea91a3d47076eed33a Author: Daniel-Constantin Mierla -Date: Fri Aug 24 08:38:00 2018 +0200 +Date: Fri Nov 23 08:51:18 2018 +0100 - app_lua: split function for returning pv null value + topos: safety checks for couple of mandatory headers - (cherry picked from commit f3312715943867f76c8753eba992dad5859d8c2f) + - first via and call-id + + (cherry picked from commit 93e40d5b7fb66d33f31c46dfaea5425062505127) -commit 3164b552f78762591199df6c29db55dea83066dc +commit 01828ecdff3e048845ee0cee58cfe1ffbceb761f Author: Daniel-Constantin Mierla -Date: Thu Aug 23 23:06:11 2018 +0200 +Date: Fri Nov 23 08:46:54 2018 +0100 - app_lua: kemi - exported KSR.pv.getw("$...") + topoh: safety checks for couple of mandatory headers - - get the value of the pseudo-variable if it is not $null and the empty string - ("") if it is $null + - first via and call-id + - GH #1735 - (cherry picked from commit b98cb43b1ea33706fe133f6585c0705892663ae6) + (cherry picked from commit 97da6b1a5f656db4a91c8909167706fc8ec3d932) -commit 8c191147abac8ffb1d2360f6a115617ff974514d -Author: Daniel-Constantin Mierla -Date: Fri Aug 24 11:02:32 2018 +0200 +commit 7dbeb45fd481d77a4ddee2432193eb7c1f1a937d +Author: Joonas Keskitalo +Date: Thu Nov 22 15:43:37 2018 +0200 - tm: added fcount field for free operations debugging + misc/examples/kemi: Added 'msg' argument to ksr_route_relay - (cherry picked from commit e361e5ec2883775d14d92d46659d062b31c45f33) + (cherry picked from commit a35503b3837cfc804f30c7493fbd13573c1a55e1) -commit 5d6be9c971a0cd1bf3ebd10214e89f036371f4bb +commit 568a91d54eec8010af3288839338c39b27ba4ceb Author: Daniel-Constantin Mierla -Date: Fri Aug 24 10:52:26 2018 +0200 +Date: Thu Nov 22 08:56:54 2018 +0100 - tm: more debug messages for reply relay + dispatcher: ds_select_routes() - set r-uri/d-uri even when first group has no available dst + + - GH #1728 - (cherry picked from commit 927d738d0e1585ccbccc878ab55c219ae737091d) + (cherry picked from commit 074d3c67a96a49e9b8c86f6ec4cfd61725b0ccce) -commit d0f1d8212f0f42df8a1cc1e5c7b85fcc4e0e37db +commit d7e6ac30293025f7d4bd0411d575b3acb8be3d02 Author: Daniel-Constantin Mierla -Date: Fri Aug 24 09:11:11 2018 +0200 +Date: Thu Nov 22 08:30:09 2018 +0100 - core: more accurate debug messages when forwarding a reply + core: added kemi KSR.is_myself_srcip() - (cherry picked from commit 085e2c2ea5f85616c037b083495094a2232c405a) + - equivalent of src_ip==myself condition + + (cherry picked from commit 929823cd5620f8ee3ee7c8961f810e16b2031b01) -commit ff6af9edbbb08f6ccb9ae953b9ea6d5899c3073c +commit 3e3b51b3989c02b97b825e6e8b8285d4d2b99ca3 Author: Daniel-Constantin Mierla -Date: Fri Aug 24 08:50:36 2018 +0200 +Date: Wed Nov 21 10:42:02 2018 +0100 - core: debug message when dropping a sip reply + topos: do not add contact header in outgoing 1xx responses if not present + + - GH #1720 - (cherry picked from commit e4d2ca28ee2d42683d7604c6a767a201b6babbed) + (cherry picked from commit dcf9ee88dbf68eeaf0f64d203ce831eb6f536a85) -commit dd9bc5441ec4682213ed2fa07d8a7f76175abac8 -Author: Juha Heinanen -Date: Thu Aug 23 11:53:34 2018 +0300 +commit e9320c09738766d80fae2fe2b1704facbce6221a +Author: Surendra Tiwari +Date: Wed Nov 21 09:30:06 2018 +0100 - modules/auth: fixed path in auth.xml + rtpengine: print command in log message on timeout + + - few indentation fixes + - GH #1732 - (cherry picked from commit 26449dc2da3b47dd71265e8103de5957bd2245f4) + (cherry picked from commit 9d1e8e256e49968776f7abb740a6d02739547ec2) -commit b6f49f92e11b3289a074cfe8a62d164665f937e5 +commit eb661d2284d2d004b7affbcf0728ff6d32862283 Author: Daniel-Constantin Mierla -Date: Wed Aug 22 12:03:52 2018 +0200 +Date: Tue Nov 20 12:49:24 2018 +0100 - sdpops: cast in dbg message to avoid compile warning on 32b systems + tmx: do no suspend faked request - (cherry picked from commit f6921b92d382db3c0a72bd1d97eb46d1f4aee2d7) + (cherry picked from commit 6f6a0d136dfefe98631264092177344ed8d173a8) -commit 997ed8adc9a058563e6763959864dc7c11b975d5 -Merge: b889ab44b a69268719 +commit 156706c03a29a7aed5b8f73fab8216e4630c1f15 Author: Daniel-Constantin Mierla -Date: Sat Sep 8 08:53:07 2018 +0200 +Date: Tue Nov 20 12:48:48 2018 +0100 - Merge pull request #1638 from sergey-safarov/spec_update2 + tm: info log message if attempting to create transaction for faked request - [5.1] pkg/kamailio/obs: RPM SPEC update + (cherry picked from commit 4dd53abf13f9a98272af625f2a6591669730b374) -commit b889ab44b07b134e8c180a0ce2c643dd1be01f18 -Author: Henning Westerholt -Date: Fri Sep 7 15:16:34 2018 +0200 +commit 8b52be4ec97e82f906aa392b1f7377a761c60cc1 +Author: Daniel-Constantin Mierla +Date: Tue Nov 20 12:33:33 2018 +0100 - tm: document event_route[tm:local-response] + htable: safety checks for values replicated via dmq - (cherry picked from commit 17145075e77c7f962703ce401e879887a5717265) - -commit a692687191ee3d030113534a38c37e4232fbd524 -Author: Sergey Safarov -Date: Thu Sep 6 11:14:49 2018 +0000 + (cherry picked from commit 24c92c4f25e758fcd2265d824ca39b5f1ac2dcdd) - [5.1] pkg/kamailio/obs: RPM SPEC update - -commit 216f8de9cac6d611f6465ff007afa0bfdfe626ca -Merge: e747a538e 6783a660e +commit 3b586d554740ae578283024c1508e91b6ad886a2 Author: Daniel-Constantin Mierla -Date: Thu Sep 6 13:00:27 2018 +0200 +Date: Tue Nov 20 08:11:18 2018 +0100 - Merge pull request #1637 from sergey-safarov/spec_update + topos: allow various replies for INVITE without contact - [5.1] pkg/docker: Updated submodule - -commit 6783a660ef658d82495a7176fe9d5fa03f3f23e0 -Author: Sergey Safarov -Date: Thu Sep 6 09:18:01 2018 +0000 - - pkg/docker: Updated submodule + - GH #1720 + + (cherry picked from commit 416d79b462986317f2c3a3ed8aa30a502d116095) -commit cd5730389d74b3cafbfa04d73b17fe2dd7121b8e -Author: Sergey Safarov -Date: Sat Sep 1 19:55:32 2018 +0000 +commit 652180a88a549a6f2d91c39b053efce6b508c2ec +Author: Daniel-Constantin Mierla +Date: Mon Nov 19 15:28:16 2018 +0100 - pkg/kamailio/alpine: Added function to build package from local git tree + async: return error if trying to execute for faked message - (cherry picked from commit c9b3ed04a7ab49cbc2063b44f66f50366d7a3ba5) + - GH #1727 - Copied from master: - pkg/kamailio/Makefile - pkg/kamailio/README.md + (cherry picked from commit 8b71c46ba0db05051ee24bf88491f00387e1ca8b) -commit e747a538ea50086d01f100726ba36eff99268803 +commit e2ffc481a3f6673debf45f45abb7914e679c9f1b Author: Daniel-Constantin Mierla -Date: Mon Sep 3 09:54:39 2018 +0200 +Date: Mon Nov 19 15:22:35 2018 +0100 - core: parse via - set len for host/port_str only if there is a value + core: function to test if a msg structure is faked request - (cherry picked from commit 8cebf48eeee70d23c6cf827e24b2f5fabda669ab) + (cherry picked from commit ab72c5e7188266baef0da70f1aa7d7d28b6d077c) -commit ff36d82d8861ed50adf91b9e314c29ef8ee3e745 -Author: Dmitri Savolainen -Date: Thu Aug 23 11:58:36 2018 +0300 +commit 409bf1f43ce954d93cdce4db840abc5ff410877f +Author: root +Date: Mon Nov 19 11:27:33 2018 +0300 - drouting: fix crush for empty username in ruri + textops: fixed get_body_part function for non-multipart contents error - - uri like sip:@host crushed kamailio + get_body_part functions gives error even if content is not multipart. Fixed for non-multipart contents and set all contents for non-boundary params - (cherry picked from commit e4f3849f35ae556e317c365d56b14212e48d1dab) - + (cherry picked from commit 3436104cce943f055e0a33aa26692265185502bf) -===================== 2018-08-22 Version 5.1.5 Released ================== - -===================== Changes Since Version 5.1.4 =========================== - -commit 4ba6692343efa1e0a56daae9bfbc20ff645a3e59 -Author: Daniel-Constantin Mierla -Date: Wed Aug 22 11:11:38 2018 +0200 +commit a1a95ab27911ce0ff02c3a7ec7c9286cfee82894 +Author: Yasin CANER +Date: Mon Nov 19 10:00:40 2018 +0300 - Makefile.defs: version set to 5.1.5 + core : add word to log get_boundary function + + added word to log for more understanding + + (cherry picked from commit 2daa351dd0cf716284ff90cd57d2241ee97f165d) -commit 2aed22913a00ae5a10015a2b1c129c4163fed7cd +commit e13f8518e7842b3b0e352da27dd50114b7653c14 Author: Daniel-Constantin Mierla -Date: Wed Aug 22 11:08:50 2018 +0200 +Date: Fri Nov 23 08:54:24 2018 +0100 - pkg: version set to 5.1.5 in spec files + kamctl: regenerated sql creation scripts -commit 2f713104e6ad0b59e2dbfb0a4062af770e742de5 +commit fb0ae02762b32e65210aebdf2cac0d09726a25ae Author: Daniel-Constantin Mierla -Date: Tue Jul 31 13:59:44 2018 +0200 +Date: Mon Nov 19 12:49:13 2018 +0100 - dmq: release resources instead of just doing continue to next job + lib/srdb1: schema - defined entities for sizes of aname and avalue columns - - for cases when processing of the job is not fully completed + - avalue column size set to 512 + - GH #1723 - (cherry picked from commit a1f5fbe2c18246d4afefa44fd8a52612a5182a46) + (cherry picked from commit 5ce0020f25b4131e5b122df3d075eeb68626b470) -commit 2c91b11abbe835ca3319ba3517d9fd726f078937 -Author: lasseo -Date: Tue Aug 21 22:10:04 2018 +0000 +commit 2a42aebc8d6905989f21ec21459a1cd368632b6f +Author: Dmitri Savolainen +Date: Tue Nov 20 12:42:05 2018 +0300 - pua_reginfo: fix crash and issue during high load - - - do not release a already deleted entry, as this causes a crash + dialog: fix typo in warn message (#1731) - - use sruid_next_safe instead of sruid_next as it has been seen during load that same sruid returned on multiple threads + - GH #1731 - (cherry picked from commit 62e0af0957a6c7e3c2ea9711cf64ad51f4b2e594) + (cherry picked from commit df6152fd69469eb340078535a3cf8b28e901ea7d) -commit 233079b5174ba0c4e325e80ebb5f11504349b504 +commit 1b71de82c145285fb83478e65ac25a96d6d1bd2f Author: Victor Seva -Date: Wed Aug 22 10:06:48 2018 +0200 +Date: Mon Nov 19 12:39:21 2018 +0100 - pkg/kamailio/deb: version set to 5.1.5 + pkg/kamailio/deb: version set to 5.2.0~rc1 -commit c916f4701ffae4500b5fcc8fe6e255953ee8780a +commit 555322155ce31a43e4528d984b1c722e1045fa63 Author: Daniel-Constantin Mierla -Date: Tue Aug 21 09:05:34 2018 +0200 +Date: Mon Nov 19 12:35:20 2018 +0100 - htable: test if there is a db table associated with htable for rpc reload - - (cherry picked from commit 79c16cd9bdabb3670b2a7618656ca9cf2f9687b1) + Makefile.defs: version set to 5.2.0-rc1 -commit 3532ffc752eaa92c696bb8853cb5b0738a18dcea +commit 5460f19d0129256a21794d4fe342033a621f0a92 Author: Daniel-Constantin Mierla -Date: Tue Aug 21 08:47:01 2018 +0200 +Date: Mon Nov 19 10:17:27 2018 +0100 - htable: typo in rpc result status text for reload command + presence: safety check for structure vars before accessing fields - (cherry picked from commit ff90e2223825889c2eea108d2fc02190535960fc) + (cherry picked from commit ed861cfe7f0f4e265b6dc104a79d07ad7d2997e2) -commit b11ff57c7bc2925003f86f925f6cff41cae4212f +commit 84ecfe146dd629d30086ac12a2c48d0ffeb5ff68 Author: Daniel-Constantin Mierla -Date: Tue Aug 21 08:30:00 2018 +0200 +Date: Mon Nov 19 10:01:21 2018 +0100 - mtree: rpc reload without table name reloads all tables - - - lost feature in rpc which was available in mi command + siptrace: convert status code to string using static buffer function - (cherry picked from commit c216abc532df9f22b023d26b46bd6322a217cdfe) + (cherry picked from commit 95d56e986e90b0d9a7527d7fa026cb510b41d9c5) -commit bc47ac839aed45ecdce414c2a21d36112abace76 +commit 1333340f129b51b2e027d83d14e69badd899bb95 Author: Daniel-Constantin Mierla -Date: Mon Aug 20 16:18:02 2018 +0200 +Date: Mon Nov 19 09:47:58 2018 +0100 - http_client: Makefile - removed useless var for xml config + smsops: free after error log message printing a field - (cherry picked from commit ebb1377e9f07f00afccdce50b113d05fec1693b5) + (cherry picked from commit c571efefebc305b2049eb55458cb0ac1dc3202bb) -commit 1d74f30c09a79a57ed530778c3dde1fca856f14c +commit 0532b6fec0fecf5a6262b04a0e2e31d6b2cc315f Author: Daniel-Constantin Mierla -Date: Mon Aug 20 11:23:04 2018 +0200 +Date: Mon Nov 19 09:24:39 2018 +0100 - app_python: init cfg vars framework only in child init + tm: t_serial - safety check for searched xavps - - backport of 17a33388138c2510e9e483c0526948772a1478f4 + (cherry picked from commit 372993c82d2ebdafe9f7e1a672a3e3141a8ae2f5) -commit da08b81446fb4cb64a4c930cc943f851a7b19424 +commit 46d4ecc67cddda1dafa834e1c005c981ff3abb60 Author: Daniel-Constantin Mierla -Date: Sat Aug 18 09:28:02 2018 +0200 +Date: Mon Nov 19 09:19:58 2018 +0100 - jsonrpcs: store id attribute inside context for async response + db_redis: log message if failure to get reply - (cherry picked from commit 8601f89bcc309e5676647019a13246578540ad71) + (cherry picked from commit cb8d366d6c5cc9a0af7159e8be65444ac23f47a1) -commit 103473c0b0ff41fea9ae561c4ed47ebdd8c79182 +commit 25d2d9f41c6caec6bda3bbbba068235cf8f1a0fb Author: Daniel-Constantin Mierla -Date: Fri Aug 17 10:33:58 2018 +0200 +Date: Sun Nov 18 09:10:46 2018 +0100 - jsonrpcs: docs - updates to reflect better the transports and capabilities + htable: use local variable for name in log message instead of null htable pointer - (cherry picked from commit 1eabace61965e9e77f18a63a71faa9d45de4b550) + (cherry picked from commit 78225d064a76a5d5a3dbd198a4ae38f6423dd272) -commit 9b82bf95f1dafd8fac3a7de3aff3e9140dd20c0b +commit 848252c1b202463965bcbb950521b69ce73edae5 Author: Daniel-Constantin Mierla -Date: Wed Aug 15 12:22:58 2018 +0200 +Date: Sat Nov 17 09:07:33 2018 +0100 - tm: safety check for t->uas.request for forwarding local requests + htable: init vars in ht_dmq_handle_sync() to avoid compile warnings - (cherry picked from commit ec0c583b5b054d06691a2c0d90be195f6ed51cdd) + (cherry picked from commit e0256096742a1f86e571949a5ffcf5e453401977) -commit 87c628f9202621f09ec18df95efef755cea36d2e +commit 7ac7761891005ac5bebd2b19c2d017957c73981c Author: Daniel-Constantin Mierla -Date: Tue Aug 14 10:46:41 2018 +0200 +Date: Fri Nov 16 16:37:06 2018 +0100 - core: more detailed error message when no config option to route requests + dispatcher: search in xavp sublist for ds_update_dst() attributes - (cherry picked from commit 4d9f342f8a7050d9c5f7754622ddb918edb16a99) - -commit 93c04d78df2420e42b057d215b60bc17680e4e47 -Author: Daniel-Constantin Mierla -Date: Tue Aug 14 10:41:48 2018 +0200 - - app_lua: docs - more examples for lua_run() + - safety checks for type of the value for root xavp + - related to GH #1725 - (cherry picked from commit 7788aa4b396b27fe86bd535a0ded024531c5e75a) + (cherry picked from commit f465d2410084ba9118c1f2610fbefa6989974ce9) -commit 030f3b12aede10353f25b61f5c02cfaa65a6ab68 +commit 0327674281bcd27ef72bf617215f8e6e8f85a0a4 Author: Daniel-Constantin Mierla -Date: Mon Aug 13 14:04:55 2018 +0200 +Date: Fri Nov 16 10:37:19 2018 +0100 - core: more detailed debug message if new uri is too long + websocket: aligned example statements - (cherry picked from commit ada68095882368a7e05329a52e53a57b2bc818d1) - -commit 154fd39f7fa9bb7dc3a57cfc366354ef06f03e2e -Author: Daniel-Constantin Mierla -Date: Mon Aug 13 13:22:59 2018 +0200 - - app_lua: docs - more details about lua_run() params + - few more details about return code of handshake process - (cherry picked from commit f1f6c303baab87523d54b97af38c0a5718cf0d2f) + (cherry picked from commit d33ee59bc807acf95b07838d24b888b14a286ddd) -commit a7ba7ee463847b85d98534560a9424c61b028118 +commit 9eac906cae5a8b6b6a26080056d9d0d9a1ef15af Author: Daniel-Constantin Mierla -Date: Sat Aug 4 23:55:00 2018 +0200 +Date: Thu Nov 15 09:37:04 2018 +0100 - blst: small formatting bits + kamctl: new update to the sql creation scripts - (cherry picked from commit 941afa771b43ce5abb825ed487354750cfc71e51) + (cherry picked from commit aaabbc1adbd11724031c54137cd00ef01af3962a) -commit f5c944e81f98321f818100de1f9c831d5caa3ab9 +commit 44947e9626473909acf235f6e221e9e1182013fe Author: Daniel-Constantin Mierla -Date: Thu Aug 2 00:16:26 2018 +0200 +Date: Thu Nov 15 09:36:32 2018 +0100 - dialog: run run_load_callbacks() on child_init for rank PROC_INIT - - - proper test for create_cbs - - based on PR #1606 and #1607 by kosza + lib/srdb1: schema - use etag size entity also for pua and xcap tables - (cherry picked from commit 3d0e1f796eb359689b75eebbb04cd09c6ee6807a) + (cherry picked from commit 01ba0f334b5a3c2f9cbd5c746c18ac65ecdf44be) -commit 29d9126cb8a558262d07d31daec3e06c63c5e427 +commit 26f699afd218c1429894c2a50b95a2164dcf4737 Author: Daniel-Constantin Mierla -Date: Wed Aug 1 22:55:06 2018 +0200 +Date: Thu Nov 15 09:33:29 2018 +0100 - topos_redis: execute end dialog function only for BYE request + kamctl: regenerated the sql creation scripts - - reported by GH #1608 - - (cherry picked from commit 3924afe2917e64066ea796597104b0e00358b180) + (cherry picked from commit 89fcea29b43b3d456ce23ba31bf902add070c223) -commit befa844b4ff1bbdfc2a0bb70a473b13248c8a573 +commit d9544b6fecdb72e5b1080434a2bdea1adf486a49 Author: Daniel-Constantin Mierla -Date: Mon Jul 30 13:58:29 2018 +0200 +Date: Thu Nov 15 09:31:12 2018 +0100 - carrierroute: docs - removed mi commands section + lib/srdb1: added entities to define the size for event and etag columns - (cherry picked from commit 4a64fb95680b9efac47c79888f2a68bdcfb29ad6) + - etag column size set to 128 (it was 64, but some UAs generate a longer + one) + + (cherry picked from commit 117051c695c815ab40b34c21c852a34386022116) -commit d2b725bc6c2983014577bf6edbb44a808ce3258f +commit 0305e2773a07472f442ab8cf4fbecdc0bffaf32b Author: Daniel-Constantin Mierla -Date: Fri Jul 27 22:00:47 2018 +0200 +Date: Tue Nov 13 08:59:43 2018 +0100 - uac: docs - more details about execution of event_route[uac:reply] + tmx: use branch index for $T_rpl() cache invalidation - (cherry picked from commit 1cec5e80036808badf19c8c72ec243b504f56e28) + (cherry picked from commit e2ca5516ae086cf33c61dbb9e653a5484cca2074) -commit 70a76056b30e2558c3607fa77ccae86bb57f30cd +commit 9374328bb2c05955658042fbf31807bd060a04de Author: Daniel-Constantin Mierla -Date: Wed Jul 25 14:10:00 2018 +0200 +Date: Thu Nov 8 08:24:59 2018 +0100 - core: removed unused MAX_LISTEN - - - it was printed in version output, not having any relevance anymore + cfgutils: error log message mentioning the param lock_set_size - (cherry picked from commit 79aa72011ae551c6f82816f352fce7582e371f93) + (cherry picked from commit 55347626b189cd009c29b0e058949ed7671ae0d0) -commit e819127f1c46de9b71b4c4857e3fef018f09e149 -Author: Daniel-Constantin Mierla -Date: Tue Jul 24 16:10:16 2018 +0200 +commit 3986987d97f34a0ffb11909a947f95dd25a2eabc +Author: Sergey Safarov +Date: Thu Nov 8 10:43:04 2018 +0000 - topos: keep original contact in 3xx responses sent out - - - reported by Andrew Pogrebennyk + pkg/kamailio/obs: Changed rpm package group for OpenSUSE dist - (cherry picked from commit fcf1d3d778a903852b6e21103a23bd7fd6e3bbc9) + (cherry picked from commit e2ef2309aa5ca13b5650d0703f85a02d2846c976) -commit f8842b1c0119702b922dd0dcd8b7f8e99d6bb88f -Author: Daniel-Constantin Mierla -Date: Mon Jul 23 13:58:12 2018 +0200 +commit ee66571fe0556f6800629310507831acd6992911 +Author: Sergey Safarov +Date: Thu Nov 8 10:24:46 2018 +0000 - uac: call event route for uac_req_send() for second response - - - done in case the request is resent after a 401/407 - - GH #1598 + pkg/kamailio/obs: Fixed build on OpenSUSE dists - (cherry picked from commit 5c3df566887e8c37d3144d4191b36fc9eba24c34) + (cherry picked from commit af59382f6cb356087efd6eded5c28e2d228a7032) -commit 16572992d7e60d59b398768bfc6f95d6dba7f8a3 -Author: Daniel-Constantin Mierla -Date: Sun Jul 22 07:27:32 2018 +0200 +commit b2b8bc03d0658b0786a72e1e589b8b129ee7599e +Author: Victor Seva +Date: Wed Nov 14 10:53:06 2018 +0100 - uac: uac_send - small bits of formatting + kazoo: fix compilation warnings - (cherry picked from commit 1ac4527ac8f05dbb48e3ab9e2aa9790ae86f179f) + > kz_amqp.c:1884:5: warning: variable 'binding' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] + > if(bind == NULL) { + > ^~~~~~~~~~~~ + > kz_amqp.c:1919:5: note: uninitialized use occurs here + > if(binding != NULL) + > ^~~~~~~ + > kz_amqp.c:1884:2: note: remove the 'if' if its condition is always false + > if(bind == NULL) { + > ^~~~~~~~~~~~~~~~~~ + > kz_amqp.c:1896:2: note: variable 'binding' is declared here + > kz_amqp_binding_ptr binding = shm_malloc(sizeof(kz_amqp_binding)); + > ^ + > kz_amqp.c:1965:5: warning: variable 'binding' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] + > if(bind == NULL) { + > ^~~~~~~~~~~~ + > kz_amqp.c:1992:8: note: uninitialized use occurs here + > if(binding != NULL) + > ^~~~~~~ + > kz_amqp.c:1965:2: note: remove the 'if' if its condition is always false + > if(bind == NULL) { + > ^~~~~~~~~~~~~~~~~~ + > kz_amqp.c:1972:2: note: variable 'binding' is declared here + > kz_amqp_binding_ptr binding = shm_malloc(sizeof(kz_amqp_binding)); + > ^ + > kz_amqp.c:2875:5: warning: variable 'json_obj' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] + > if(payload == NULL) { + > ^~~~~~~~~~~~~~~ + > kz_amqp.c:2927:5: note: uninitialized use occurs here + > if(json_obj) + > ^~~~~~~~ + > kz_amqp.c:2875:2: note: remove the 'if' if its condition is always false + > if(payload == NULL) { + > ^~~~~~~~~~~~~~~~~~~~~ + > kz_amqp.c:2880:2: note: variable 'json_obj' is declared here + > json_obj_ptr json_obj = kz_json_parse(payload ); + > ^ + > 3 warnings generated. + + (cherry picked from commit 232e8400caf7173e73229627af0270a704824f62) -commit b3468ab8c8e8b9284f2f970a2b510fde34ae2fd7 -Author: Daniel-Constantin Mierla -Date: Fri Jul 20 19:40:42 2018 +0200 +commit e377ec1fb2ce841b0b96c7f9c4cea935ad6f10f6 +Author: Victor Seva +Date: Wed Nov 14 10:41:08 2018 +0100 - kex: docs - note that is_myself() does not match with default ports + db_berkeley: fix compilation warning + + > CC (clang) [M db_berkeley.so] db_berkeley.o + > db_berkeley.c:916:5: warning: variable 'dbcp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] + > if((ret = bdb_get_columns(_tp, _r, 0, 0)) != 0) { + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > db_berkeley.c:966:5: note: uninitialized use occurs here + > if(dbcp) + > ^~~~ + > db_berkeley.c:916:2: note: remove the 'if' if its condition is always false + > if((ret = bdb_get_columns(_tp, _r, 0, 0)) != 0) { + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > db_berkeley.c:901:6: warning: variable 'dbcp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] + > if(!lkey) { + > ^~~~~ + > db_berkeley.c:966:5: note: uninitialized use occurs here + > if(dbcp) + > ^~~~ + > db_berkeley.c:901:3: note: remove the 'if' if its condition is always false + > if(!lkey) { + > ^~~~~~~~~~~ + > db_berkeley.c:875:11: note: initialize the variable 'dbcp' to silence this warning + > DBC *dbcp; + > ^ + > = NULL + > 2 warnings generated. - (cherry picked from commit d2841c66304196cbe73c76517f284e49aa0c76b9) + (cherry picked from commit 93e0b7e7bcefa900e8686e7e60f1a59cc32f9b39) -commit b2f210723d303f01e97ca319c8c731ed29878b85 -Author: Daniel-Constantin Mierla -Date: Thu Jul 19 10:28:24 2018 +0200 +commit d9551180fe9ae93f013d5ca3d4bdd2bf4f69640d +Author: Sergey Safarov +Date: Wed Nov 7 16:04:48 2018 +0000 - dialog: safety check for dialog hash table inside dlg_get() + pkg/kamailio/obs: smsops module relocated into main rpm package - - GH #1594 + (cherry picked from commit b0e814315a196cb6b1e8eca453cf6e4eea26dca4) + +commit 87759978d3997f26fb935a95eed1342ffa079473 +Author: Sergey Safarov +Date: Tue Nov 6 20:17:51 2018 +0000 + + pkg/kamailio/obs: Fixed missing libmnl-devel and librabbitmq-devel on RHEL dists - (cherry picked from commit 4f13c9a291eeeb2f3d3b7654308b13396fe020af) + (cherry picked from commit 68646c6fff4a06fa949296d1a41483ff51fc9389) -commit a13cfbc8d2b7123b168aeb44d8745dcef9b9e0ba -Author: Daniel-Constantin Mierla -Date: Sat Jul 14 09:20:29 2018 +0200 +commit 5177db61931d7a9ca966dba7f38aa8087b45ff65 +Author: Sergey Safarov +Date: Mon Nov 5 20:18:02 2018 +0000 - topoh: try to use sip uri parameters for decoding + pkg/kamailio/obs: update spec to mach currently used - - when UA adds user=phone, turns the uri type in tel mapped over sip - uri, default params pointing to tel params - - reported by GH #1541 + (cherry picked from commit 3dade81da58adb40b039a23dcaf67795e41ccebe) + +commit 9bc520a02428656c8eb0a5d875c950298ceaf2e7 +Author: Kevin Olbrich +Date: Thu Nov 8 18:01:03 2018 +0100 + + pkg/kamailio/oracle: wait for network to be up + + Units that strictly require a configured network connection should pull in network-online.target (via a Wants= type dependency) and order themselves after it. This target unit is intended to pull in a service that delays further execution until the network is sufficiently set up. What precisely this requires is left to the implementation of the network managing service. - (cherry picked from commit 951df23f8ab9f4428e143949f1e580f76b4d8fc9) + https://www.freedesktop.org/software/systemd/man/systemd.special.html + https://lists.kamailio.org/pipermail/sr-users/2018-November/103668.html + + Signed-off-by: Kevin Olbrich + (cherry picked from commit 37c2e5ca25cb3396d2ac969271f9f9330d88fd63) -commit b10842f285dc755ed426744246f2419a02447016 -Author: Daniel-Constantin Mierla -Date: Sat Jul 14 08:14:07 2018 +0200 +commit 33fb7ac2b367b4145815ed6e6919deb8d7c8631d +Author: Kevin Olbrich +Date: Thu Nov 8 14:40:59 2018 +0100 - textops: set the buffer size for re transformation to 8196 + pkg/kamailio/deb: also restart service if unclean exit code - - 2048 is rather small for handlin message body - - reported by #1592 + New: + If set to on-failure, the service will be restarted when the process exits with a non-zero exit code, is terminated by a signal (including on core dump, but excluding the aforementioned four signals), when an operation (such as service reload) times out, and when the configured watchdog timeout is triggered. - (cherry picked from commit 464bf61788e86551509c08e07f9eed2a9bba0b58) + Old: + If set to on-abort, the service will be restarted only if the service process exits due to an uncaught signal not specified as a clean exit status. + + https://www.freedesktop.org/software/systemd/man/systemd.service.html + + Signed-off-by: Kevin Olbrich + (cherry picked from commit a5c45d1af4bf31e872963a954c43b8ee5618a90a) -commit 0e7075de8b25ed54b02f45cbf465bcaeab55f00c -Author: Daniel-Constantin Mierla -Date: Fri Jul 13 14:04:43 2018 +0200 +commit fb9dee9efee7f832c7c95fab2d066fb3606b1fa8 +Author: Kevin Olbrich +Date: Thu Nov 8 14:26:27 2018 +0100 - core: mem - added shm_address_in(p) + pkg/kamailio/deb: wait for network to be up - - return 1 if pointer p is inside shared memory zone, 0 otherwise + Units that strictly require a configured network connection should pull in network-online.target (via a Wants= type dependency) and order themselves after it. This target unit is intended to pull in a service that delays further execution until the network is sufficiently set up. What precisely this requires is left to the implementation of the network managing service. - (cherry picked from commit 1a20bcaa35db4aa80d6460dfb0fb9c70026248c9) + https://www.freedesktop.org/software/systemd/man/systemd.special.html + https://lists.kamailio.org/pipermail/sr-users/2018-November/103668.html + + Signed-off-by: Kevin Olbrich + (cherry picked from commit f7867838eb8a68a9ae4c00f2487bdec078b94c88) -commit 3f597a67f5cc7f7f8c86f9fc6f8bc3736c89efb7 +commit f436f07eb34e73b27c8b0d86100eaccffc0869ce +Merge: 3843c4c8c e5bc89e1d Author: Daniel-Constantin Mierla -Date: Thu Jul 12 15:58:13 2018 +0200 +Date: Wed Nov 7 20:52:11 2018 +0100 - permissions: exported allow_address_group() to kemi framework + Merge pull request #1713 from sergey-safarov/spec_update9 - (cherry picked from commit 48524f0ce8934c4f6a46b38a1af1fff92078eb3d) + pkg/kamailio/alpine: Fixed docker image build for 5.2 branch + +commit e5bc89e1dffc548e3d309f45b291c87c39f6fb4b +Author: Sergey Safarov +Date: Wed Nov 7 18:22:42 2018 +0000 + + pkg/kamailio/alpine: Fixed docker image build for 5.2 branch -commit 8de7bbcc8520f5fc1451774bcef3717f84dbf918 +commit 3843c4c8c086f31f6126f0659c732141681229b9 Author: Daniel-Constantin Mierla -Date: Wed Jul 11 18:01:48 2018 +0200 +Date: Wed Nov 7 09:30:35 2018 +0100 - rr: exported is_direction() to kemi framework + ims_ipsec_pcscf: Makefile - use pkg-config to get compile flags for libmnl - - rework of the patch from GH #1589 + - GH #1710 - (cherry picked from commit 3806ca121194d54bbd03ff257ec62505b15d0941) + (cherry picked from commit af7db21e401f9cfc776944693a85d38498ce421a) -commit 1c719cac05aa31503f4030f266d8814a9d4266d3 +commit 0eb813ee88c03ecc5e6fb35d2a2b3225716b2fc0 Author: Daniel-Constantin Mierla -Date: Wed Jul 11 12:42:27 2018 +0200 +Date: Wed Nov 7 08:34:13 2018 +0100 - permissions: exported allow_source_address_group() to kemi framework + evapi: convert return code for kemi functions to match the ones from cfg equivalents - (cherry picked from commit 20ebfcf3156912d83c087156ec3e8eb15ae26c25) + (cherry picked from commit 6675a960490c9c72e69aab7a676a3012da2999b2) -commit 4a41e279e5aa0d0bb11c8f3d9239f4a7ab21e2ae +commit 2a91ca46d8f05fde52869bd9434897ad5d76625b Author: Daniel-Constantin Mierla -Date: Mon Jul 9 10:26:11 2018 +0200 +Date: Tue Nov 6 16:17:13 2018 +0100 - sanity: note that params for sanity_check(...) can be vars + Makefile.defs: use $(prefix) for setting share_target + + - GH #1709 - (cherry picked from commit 3ddf9de8f0345db6a5fb0c632784b38482687891) + (cherry picked from commit 2b295f83e1c40637012633b6cab2ad86415d4623) -commit 6cb426058f05ccd90b23225a5bfb6cb7df7ebcbd -Author: Daniel-Constantin Mierla -Date: Sun Jul 8 08:54:47 2018 +0200 +commit 249e019d555387e49bf8641b32caa4f24fbb26ee +Author: Victor Seva +Date: Tue Nov 6 10:36:04 2018 +0100 - sanity: allow vars in params - - (cherry picked from commit f66bbb5b6da13ad627bf0c8ee50bdbad9c93b43c) + pkg/kamailio/deb: version set 5.2.0~rc0 -commit cd4e929d80da8f2de9119d71210126d198028a87 +commit 646b00c76bab0b1c3d6ffc2d755aeae70e45c45e Author: Daniel-Constantin Mierla -Date: Thu Jul 5 01:43:57 2018 +0200 +Date: Tue Nov 6 08:56:11 2018 +0100 - blst: docs - better highlighting of examples in readme + Makefile.defs: version set to 5.2.0-rc0 - (cherry picked from commit 3c1b7f5bdfe8d1b99aa314573b73597ba8f5a657) + - branch for v5.2 release series has been created + - branch name 5.2 -commit 71dbada4b68c4d9312d031780bc326979ee615a5 +commit 707d7cdcb971b77b96ac854aa1432abae04ec7a8 Author: Daniel-Constantin Mierla -Date: Wed Jul 4 13:06:48 2018 +0200 +Date: Tue Nov 6 08:44:46 2018 +0100 - sdpops: exported sdp with media functions to kemi framework - - (cherry picked from commit 1d53ea3dba4e59b05b2e92ecc973c44159b9bb36) + Makefile.defs: version set to 5.2.0-pre3 -commit 0c967511381d61fe1d462cdfe5b15dba9a89c387 +commit 54f71b4df5e64a87463098a081b1014458637766 +Merge: e8aec6d15 7925c3749 Author: Daniel-Constantin Mierla -Date: Tue Jul 3 08:34:06 2018 +0200 +Date: Mon Nov 5 14:49:05 2018 +0100 - blst: removed unused parameter + Merge pull request #1707 from dunst0/fix/ims_diameter_server - (cherry picked from commit 4e2290facad0768daa636df387e438d4ff931588) + ims_diameter_server: fixing avp nested list #1686 -commit 433eb009ddc0d6f6dfd359512c86d7e556e77ea7 +commit e8aec6d15bcef95f628108398e682571763464c5 Author: Daniel-Constantin Mierla -Date: Tue Jul 3 15:59:48 2018 +0200 +Date: Mon Nov 5 12:53:06 2018 +0100 - blst: more functions exported to kemi framework + regex: fixed section ids for functions - (cherry picked from commit f5ef3919b42541ac6daa1c3ea2ed7c1707f4dd01) + - removed trailing whitespaces -commit adae203b5dbb3092d1fa7ba71d15146b4c4c8de4 +commit c9845c330ec0ed323d6dd098a746a7374642f1c6 Author: Daniel-Constantin Mierla -Date: Tue Jul 3 09:50:00 2018 +0200 +Date: Mon Nov 5 10:44:58 2018 +0100 - topos: detect first direction for dlg requests before linking contact - - - related to GH #1571 + ims_diameter_server: safety check for diameter message parameter - (cherry picked from commit a8d4ca293dba19b4b44110e9e7f5be71ce3c090b) + - GH #1686 -commit 8540e2b54d0ed1c22cf282310ccef2e1a68bdeb1 +commit a1672d2903c581ff5ae462f6db55979bedbde809 +Merge: 88ebe33b6 2c077b043 Author: Daniel-Constantin Mierla -Date: Mon Jul 2 10:02:50 2018 +0200 +Date: Mon Nov 5 10:28:51 2018 +0100 - blst: exported several functions to kemi framework + Merge pull request #1705 from sergey-safarov/mongodb - (cherry picked from commit 30745c2b92e526d7f352a56bc4e292fe2d36ee92) + pkg/kamailio/ops: Added MongoDB rpm package -commit 0bb4e84095e57337f7bd76253c55b0d9520a147f +commit 88ebe33b6f8a21df6fa0720fef62dabe6b089c87 Author: Daniel-Constantin Mierla -Date: Mon Jul 2 09:42:15 2018 +0200 +Date: Mon Nov 5 10:20:02 2018 +0100 - blst: export functions to ANY_ROUTE - - - simplified from masking route types - - (cherry picked from commit aa4f8532ea5a85245216bf4e8fb4e07e37db76ed) + rabbitmq: call function to release the amqp buffers -commit e8f479817140b32429d52cb25e89dff5dac86e22 -Author: Henning Westerholt -Date: Tue Aug 14 19:35:20 2018 +0200 +commit 4f303b6fd548e89c59b074db94656f58aaff6adf +Author: Daniel-Constantin Mierla +Date: Mon Nov 5 09:29:01 2018 +0100 - db_mysql: improved fix in commit 1736723cc2a15 - it did not worked for mariadb - - - improved fix in commit 1736723cc2a15 - it did not worked for mariadb - - Reason is that MariaDB increased its numbering scheme, they are now at 10.x - - MariaDB 10 is still using my_bool type, added few more #ifs to fix this + rabbitmq: renamed global variable, same name being used in some functions - (cherry picked from commit 9f459dccf84be7d7d0fbce89ca9165f7d1c4d66b) + - global variables made static -commit 105aa05e05ef98f1f27c708b5ee9442fe51b7ff8 +commit 3afc03510fd1d6a9e2865059ce3c4f38efd14af7 Author: Daniel-Constantin Mierla -Date: Fri Aug 3 00:28:49 2018 +0200 +Date: Sun Nov 4 08:56:34 2018 +0100 - db_mysql: replaced my_bool with bool - - - mysql 8.0.1 removed my_bool and suggests use of bool: - * https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html - - use stdbool.h, it defines bool in C99, which should be old enough to - be everywhere, otherwise it may require some ifdefs to get it for older - but still alive systems - - reported by GH #1602 - - (cherry picked from commit 1736723cc2a15bb75c26711675712a966161b722) + misc/examples: use dedicated functions to test method types in kemi lua script -commit 0c3350c785722fae33a65a2588c0b2545f4d3b02 -Author: Armen Babikyan -Date: Wed Aug 8 13:46:46 2018 -0700 +commit 0d869c90eff536aea0f42c7e368535fec344f2f2 +Author: Daniel-Constantin Mierla +Date: Sat Nov 3 08:17:01 2018 +0100 - permissions: check for db_url being set on reload - - (cherry picked from commit 2cb677247ccbb31bc76c0fd0ed0cd8e2b5b933eb) + misc/examples: check return code for has_totag() in kemi lua script -commit d2d3491a5edc58eaf92de641c4454bf535285066 -Author: Henning Westerholt -Date: Mon Aug 13 21:17:38 2018 +0200 +commit 2c077b0434037f1b0f6b37d6026235b206ddbbb2 +Author: Sergey Safarov +Date: Sun Nov 4 08:49:23 2018 +0000 - tmx: bug fix in cancel for current branches in helper, reported in GH #1620 - - (cherry picked from commit 8a66803610f2c822f319899cd2bf8675615348bc) + pkg/kamailio/obs: Fixed bdb module build on fedora dists -commit 877d753acf18691b9d8b2208b57c085721151b38 -Author: Henning Westerholt -Date: Mon Aug 13 20:42:50 2018 +0200 +commit 7925c3749b36a24615695b026983862ba03301b0 +Author: Rick Barenthin +Date: Sun Nov 4 10:48:17 2018 +0100 - uac: fix typo in module README - - (cherry picked from commit 00ba2193d60e8255ea863a99b52e86f841f16bdb) + ims_diameter_server: fixing avp nested list #1686 -commit c87df98e726cf5acefa4ea6d382602c88dc76919 -Author: Kamailio Dev -Date: Mon Aug 13 20:46:34 2018 +0200 +commit 702bfff175efaf25202e1644e39d143886ce7886 +Author: Sergey Safarov +Date: Sat Nov 3 22:15:26 2018 +0000 - modules: readme files regenerated - uac ... [skip ci] - - (cherry picked from commit d6eff66b185d442d0848a03c5b4681d6ab74373a) + pkg/kamailio/ops: Added MongoDB rpm package -commit 510a2838c3cf226a27b8a88befaefb4fdceae1fd +commit 3c9547334166d43aa1e2cba8b9dab6e78dfed66a Author: Sergey Safarov -Date: Tue Aug 7 09:21:31 2018 +0000 +Date: Sun Nov 4 00:00:44 2018 +0000 - pkg/kamailio: Defined correct dependences for perl module (#1613) - - (cherry picked from commit 9ac132ba3a47f13cf7b58839dde34a04348340c9) + pkg/kamailio/obs: Updated obs meta -commit 4868a1a18b54b0fb337453c8257b2466b78fb71b -Author: lazedo -Date: Wed Aug 1 19:01:32 2018 +0000 +commit 9aa98b12b3b7f3841facc20fee4873d8b3dc5fff +Author: Sergey Safarov +Date: Sun Nov 4 00:13:14 2018 +0000 - presence: limit the number of subscriptions handled in timer_dbonly - - due to the way update_db_subs_timer_dbonly handles the query to the - database (getting all records), if for some reason a burst of - terminating subscriptions occurs, most likely there will be no package - memory to process all expiring subscriptions. - - this commit uses the same pattern as other routines in presence by using - db_fetch_query with fetch_rows parameter module. - - because we create the subs in the loop and then call handle_expired_subs - to avoid locking issues the subscription should already be deleted from - the database when it returns from handle_expired_subs, there's no reason - to issue the last delete, and that was removed. - - (cherry picked from commit e6a7a3f37e80683d941321a6e10b636f0bfb4478) + pkg/kamailio/obs: Removed end of life dist -commit e2eda1376def48ab1c78db7a766c1811d19205be -Author: Charles Chance -Date: Thu Jul 26 12:07:33 2018 +0100 +commit e8b905006e1a768cd8e328bd836ac43e5a2bc2f2 +Author: Henning Westerholt +Date: Thu Nov 1 22:51:39 2018 +0100 - dialog: unset DMQ flag on replicated dialog removal - - - prevents looping back to other nodes - - reported by Patrick Murphy on sr-users list + kazoo: add kz prefix to str_split utility function - (cherry picked from commit a84a3ea618f0e602a8892c37fce7f4e72ab7371c) + - add kz prefix to str_split utility function, to prevent overlapping with a + function with similar name in the json module -commit bf6468f7a4a54600e04dc6fd8aab537bde5ee464 -Author: Muhammad Zaka -Date: Fri Jul 13 16:56:56 2018 +0100 +commit 3605e28af86ec3db1aba215891de3d96e41ba3ad +Author: Victor Seva +Date: Fri Nov 2 15:25:49 2018 +0100 - rtpengine: fixed rtpp_node permanent deletion causing PDD - - rtpp_node->rn_recheck_ticks was never set this means in-memory rtpengine were - never permanently deletion causing PDD for the calls requiring rtpengine - - (cherry picked from commit 0771960358b6450af8e1f75f838915f366f04a95) + pkg/kamailio/deb: version set to 5.2.0~pre2 -commit 9e6f1362d4b7374a8f48b362128b9082a6a18482 -Author: Henning Westerholt -Date: Mon Jul 23 22:58:23 2018 +0200 +commit 0580ad2eb7f5fd829a2c7c7394ffadc0ca7f85a9 +Merge: 05846d00a cbff35909 +Author: Daniel-Constantin Mierla +Date: Fri Nov 2 11:11:49 2018 +0100 - http_async_client: fix doc example regarding http_req_id + Merge pull request #1704 from micmac1/dp_replace - (cherry picked from commit 45874202fd76f70c601b7ee7e22e950d06968d87) + dialplan: fix dp_replace() in cmd_export_t struct -commit dbeab12f6ebe7a5f5b03c283d86fff6257c781a3 +commit 05846d00a063c069ec4b2c9bf589af111cd7992f Author: Daniel-Constantin Mierla -Date: Fri Jul 13 10:46:48 2018 +0200 +Date: Fri Nov 2 10:27:46 2018 +0100 - dialog: docs - notes about special values for optional parameters - - (cherry picked from commit c0aa8ab52e635c8b3173fdef77b25925e44cd4d4) + Makefile.defs: version set to 5.2.0-pre2 -commit 361d952da6878e236effa07c4f9ea484a8caa831 -Author: Daniel-Constantin Mierla -Date: Fri Jul 13 10:39:29 2018 +0200 +commit cbff35909edccffe778d04f3871d880195d82b7a +Author: Sebastian Kemper +Date: Fri Nov 2 10:10:38 2018 +0100 - dialog: handle . for optional body parameter for rpc dlg.bridge_dlg + dialplan: fix dp_replace() in cmd_export_t struct - - consider as parameter not provided and use the default SDP string - - "" or "_" behaves as provided body is empty string and the request has - no body + In the struct 'int param_no' is set to '2'. But dp_replace() has actually three + parameters (dpid, inval, outvar), so kamailio's cfg parser fails when + dp_replace() is called: - (cherry picked from commit 832fcfd839a193e5631df6c8ff1d2a84565d3822) + yyparse(): cfg. parser: failed to find command dp_replace (params 3) + yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 366, column 45: unknown command, missing loadmodule? + + This commit fixes 'int param_no' to address this. + + Signed-off-by: Sebastian Kemper -commit 26d2c501a3dc101edb050ae59923c949c5dd8141 -Author: surendratiwari3 -Date: Wed Jul 11 16:37:01 2018 +0000 +commit 2159e7b2af772beebe3af290c92f8e88ed864daf +Author: Kamailio Dev +Date: Fri Nov 2 09:16:27 2018 +0100 - app_lua: fixing bug for setting global table lua - - (cherry picked from commit ea390d69d946314f93bfeeef77b4421f0c04cba3) + modules: readme files regenerated - db_redis ... [skip ci] -commit 40b58e21d70689ed2cab45bf2788f1968eb26d78 +commit 47a22c49a84941c8065c0dfa91fb0d07716126c1 Author: Daniel-Constantin Mierla -Date: Wed Jul 11 18:39:19 2018 +0200 +Date: Fri Nov 2 09:11:11 2018 +0100 - nathelper: docs - note about the behavior of ping_nated_only=0 with sipping_flag set - - (cherry picked from commit 8f7eca3cdadd42ae2bf30a603b5b50c95f33937e) + db_redis: docs - added note that keys parameter must be specified -commit 2ef1a93369f8029e0f8afa16b6fa2cbedfb99703 -Author: Daniel-Constantin Mierla -Date: Wed Jul 11 18:27:08 2018 +0200 +commit 8cce4f243bc00f243671da7349edd3a11d5dc2ec +Author: Henning Westerholt +Date: Thu Nov 1 21:22:53 2018 +0100 - nathelper: send always SIP ping if ping_nated_only=0 and sipping_flag is set - - - reported by GH #1587 + acc_radius: fix generating duplicates for missed calls - (cherry picked from commit 1be693d432cd0ec3ce2cd68847791689143ae351) + - fix generating duplicates for missed calls (#GH1674) + - patch from Julien Chavanton jchavanton at gmail dot com -commit 3528c383f5288317ae6ec25fb0007c01e980e334 -Author: Daniel-Constantin Mierla -Date: Wed Jul 11 15:21:54 2018 +0200 +commit 8d80f16fc19036d64f917740417a65139b1dd7ae +Author: Henning Westerholt +Date: Thu Nov 1 21:22:42 2018 +0100 - nathelper: safety check for sipping_from when building SIP keepalive request + acc_json: fix generating duplicates for missed calls - - reported by GH #1587 - - (cherry picked from commit ade1cad69b659e5b0923e548d3c04f550204e793) + - fix generating duplicates for missed calls (#GH1674) + - patch from Julien Chavanton jchavanton at gmail dot com -commit 484d096020440fc0ee092e90639443846258ac89 -Author: Daniel-Constantin Mierla -Date: Mon Jul 9 15:41:33 2018 +0200 +commit 3a471af738c6b8f7e717b7f2f4c6f9c579a2d9c8 +Author: Henning Westerholt +Date: Thu Nov 1 21:22:26 2018 +0100 - app_jsdt: restore JS stack after executing a function + acc_diameter: fix generating duplicates for missed calls - (cherry picked from commit acb90b6634e65a21c655e9bb94c1af00c138e6d4) + - fix generating duplicates for missed calls (#GH1674) + - patch from Julien Chavanton jchavanton at gmail dot com -commit e872f707b1dc92de2a1c45ccb7eb028eb84cf9f4 -Author: Daniel-Constantin Mierla -Date: Mon Jul 9 15:25:43 2018 +0200 +commit a7525829309427fbb9357e0104b9dba1016f6777 +Author: Henning Westerholt +Date: Thu Nov 1 21:21:28 2018 +0100 - app_lua: restore top index to lua stack after executing a function - - - could be related to GH #1577 + acc: fix generating duplicates for missed calls - (cherry picked from commit eb96593d0f1bb60fe6e955daa1a1b91ef65c69bd) + - fix generating duplicates for missed calls (#GH1674) + - patch from Julien Chavanton jchavanton at gmail dot com -commit e2dc8ba6aa8be0a7074cecb5fc490fc149cd48d7 -Author: Daniel-Constantin Mierla -Date: Wed Jul 4 21:16:57 2018 +0200 +commit 253d35c84bc1886c9eae774a731452f5d2f521cd +Author: Henning Westerholt +Date: Thu Nov 1 21:19:41 2018 +0100 - nat_traversal: use ipv6 address with surrounding square brackets in pv value + core: add helper function for flag reset - (cherry picked from commit 7f034bf845eb65beaf2dc09594ab496998aa97a7) + - add helper function for flag reset (needed for bugfix in #GH1674) + - patch from: Julien Chavanton jchavanton at gmail dot com -commit d86806fbede06730c7a11dc8c0ad4b039dc77877 -Author: Daniel-Constantin Mierla -Date: Wed Jul 4 10:26:56 2018 +0200 +commit 96aa799065d45a48e00a3efff252aa9bb473e355 +Author: Tsvetomir Dimitrov +Date: Wed Oct 31 18:43:34 2018 +0200 - app_java: Makefile - USE_GCJ set to yes - - - be compatible with current behavior to avoid breaking CI and package - building procedures - - (cherry picked from commit 450649c417a4b1c149185d7d0bdac35e392a89c3) + ims_ipsec_pcscf: Fix a memory leak in add_security_server_header() -commit e109819479b633e750a51006ec9fd4d14df35dcf -Author: Daniel-Constantin Mierla -Date: Wed Jul 4 10:21:25 2018 +0200 +commit 9757bb8c0e2fea5173f4fa3dd7798d61759f04af +Author: adil-mafzool <36664780+adil-mafzool@users.noreply.github.com> +Date: Tue Oct 30 20:23:23 2018 +0000 - app_java: Makefile - condition on USE_GCJ to compile with gcc or not - - - GH #1487, patch built reusing part of the one from A. Messina - - set USE_GCJ=yes if OS has GCC with Java compiler, by default it is - USE_GCJ=no (gcc 7 has removed gcj) + usrloc: call contact expired call back for a domain with db_mode: DB_ONLY (#1683) - (cherry picked from commit 3422f3c87b9d19444723cf59d30665cb49019127) + * usrloc: call contact expired call back for a domain with db_mode: DB_ONLY + * usrloc: only execute funtion udomain_contact_expired_cb when db_mode is set as DB_ONLY + * usrloc: removed redundant function call mem_insert_urecord from udomain_contact_expired_cb -commit 40722d5ee5a31f60d3949d22fed02a6e4c3ae58c -Author: Daniel-Constantin Mierla -Date: Wed Jul 4 10:06:16 2018 +0200 +commit e29c90ca1a7e604a3a86d508e4ac0c7b57f382e8 +Merge: 6745a6c78 783763e8a +Author: Lucian Balaceanu +Date: Tue Oct 30 01:38:29 2018 -0700 - INSTALL: removed notes for gentoo - - - GH #1530 + Merge pull request #1693 from lbalaceanu/pdb_fixabrt - (cherry picked from commit 94902f678ffa31fbb6f3a0231730d7d6bd2239a1) + pdb: fix SIGABRT in case of too long uris -commit 0a0a1f4866c4e056b443546eda0c57437580e4cb +commit 6745a6c784218130a28896cbfa4ea520047d8fc6 Author: Daniel-Constantin Mierla -Date: Wed Jul 4 09:18:52 2018 +0200 +Date: Tue Oct 30 07:21:48 2018 +0100 - core: test if address for IPv6 is IP format in lump substitutions - - - reported by GH #1581 + rabbitmq: use fixup spve all - (cherry picked from commit 1d78456562418b785126af09761c12571ef2394d) + - allow tracking parameter number + - prefix to avoid conflict of common name function -commit 269b338ab8aa5b9cbce236d2984d39d0e3930c75 -Author: Daniel-Constantin Mierla -Date: Mon Jul 2 12:53:04 2018 +0200 +commit 783763e8accef47aa563cd17d1e170250268751c +Author: Lucian Balaceanu +Date: Mon Oct 29 11:54:45 2018 +0200 - tm: more explicit debug message when not matching reply to transaction + pdb: fix SIGABRT in case of too long uris - (cherry picked from commit 961c2b3df008bb6df78c2e62dc943ebacd4db9b2) + buf in pdb_msg_dbg should correctly accomodate for pdb_bdy size + pdb_hdr + pdb_bdy should add to pdb_hdr.length (max 255) -commit 89f2e86bb2ace38b530b136edecae69052d3188a +commit 810d84981b4ed83b11e4090740a36653ec10ef16 Author: Daniel-Constantin Mierla -Date: Wed Jun 27 10:41:40 2018 +0200 +Date: Mon Oct 29 07:27:58 2018 +0100 - auth_xkeys: docs - fixed name of the function in example + dialog: handle alias in contact address for local bye only when no route headers - (cherry picked from commit 0d4f48d168167df5fc6be38721cab69115637dae) + - GH #1689 -commit 1da0a1b06a726e9e4e730f60a53975dcdab01e3e -Author: Daniel-Constantin Mierla -Date: Tue Jun 26 18:31:26 2018 +0200 +commit 98ee25c6da118cadedd98621c580ed4df3a7e860 +Author: Kamailio Dev +Date: Sat Oct 27 15:46:44 2018 +0200 - auth_db: set id for section not title tag of is_subscriber() + modules: readme files regenerated - nsq ... [skip ci] + +commit 549106f591fc33bdc1e1aec26bd765d1ee4376ce +Merge: 6e6a2f442 1f09a3898 +Author: Emmanuel Schmidbauer +Date: Sat Oct 27 09:37:33 2018 -0400 + + Merge pull request #1685 from kamailio/nsq-deprecate-duplicate-func - (cherry picked from commit 14180b449d8feb9ae9adcb74926d64138b7cd750) + nsq: deprecate json and pua funcs for json api and pua_json modules -commit 2aa70f9669525354128a0d0010e5a0ab72f40598 +commit 6e6a2f442e06a23aa180f07c2a954068dfc58843 Author: Daniel-Constantin Mierla -Date: Mon Jun 25 17:24:09 2018 +0200 +Date: Fri Oct 26 09:21:57 2018 +0200 - app_sqlang: support functions with more combinations of 4 params + uac: test if qop field has a list of values for remote auth challenge - (cherry picked from commit 08f942c9efc4e898de3985d25379b88a9ffe73a4) + - GH #1684 -commit c9cf7771ff8745cfe7b18405079ec775a02f3287 -Author: Daniel-Constantin Mierla -Date: Mon Jun 25 17:07:30 2018 +0200 +commit 2ecf601c472bb81b9cf4ffd5b1ac17c4dfd742f2 +Author: mtirpak +Date: Thu Oct 25 13:43:36 2018 +0200 - app_jsdt: support for more combinations of fuctions with 4 params + core: variables declared in the config file could cause memory corruption + + The config variables that are declared in the config file were recorded + in the reverse order as their padding was calculated, which could cause + the allocated memory block to be smaller as required at the end. - (cherry picked from commit ef90af6335d0f3d54686f6e039ff3bab4e5c4729) + Credits go to vinesinha. -commit 6649720935317c128f3480929186baa48db444bc -Author: Daniel-Constantin Mierla -Date: Sat Jun 23 13:09:52 2018 +0200 +commit 3da3aa0c9ee3fcd5aadd3924ee883666d2a15ac6 +Author: dnadares +Date: Wed Oct 24 22:28:12 2018 -0300 - app_jsdt: updated duktape js engine to v2.2.1 + evapi: minor fix in tag length compare - (cherry picked from commit 94ec7c778f0a98b91b6518575748875b6034edf0) + It was assigning the length instead of comparing it. -commit 16071968ed45f7eaa9108c7148500c4d3964b744 +commit 5e763029dc207c99796adc1c3ace71cf6de59446 Author: Daniel-Constantin Mierla -Date: Fri Jun 22 19:54:51 2018 +0200 +Date: Thu Oct 25 07:06:21 2018 +0200 - jsonrpcc: init and update cfg framework for io handler process - - - GH #1520 + kex: safety check for accessing CSeq in per method stats - (cherry picked from commit bb14964dd8337d0946c7e233ff3cc81f22e8e1bb) + - GH #1687 + +commit 1f09a38982a64e0d6031d9e55e27e81e5f934c24 +Author: Emmanuel Schmidbauer +Date: Wed Oct 24 11:20:19 2018 -0400 -commit d305cffd0e688a22ea67bcdcfb00db38ea776b7e + nsq: deprecate json and pua funcs for json api and pua_json modules + +commit e87feb9f11c1dde9710bf3ef3ef5e6626b735233 +Author: Kamailio Dev +Date: Wed Oct 24 15:01:48 2018 +0200 + + modules: readme files regenerated - topos ... [skip ci] + +commit 56c40ebefcbe0954c5c40470b22d4f26e163a2d0 Author: Daniel-Constantin Mierla -Date: Fri Jun 22 13:29:17 2018 +0200 +Date: Wed Oct 24 14:49:10 2018 +0200 - app_python: support for more combinations of functions with 4 params - - (cherry picked from commit 3e7ff1f3613db1c5de559bbf259a621647a5424b) + topos: docs - replaced c&p topoh with topos -commit 5223c83f255cf8a5333563cd954dde7c24aea9d8 +commit 97855a1766edf4ecc2cc4e38f3cc0d3cea3190db Author: Daniel-Constantin Mierla -Date: Fri Jun 22 13:24:09 2018 +0200 +Date: Fri Oct 19 11:33:18 2018 +0200 - app_lua: support for more combinations of functions with 4 params - - (cherry picked from commit 8ff9f0dc0c00e80ad3a9add41823ca3dc101b94e) + core: cfg select - safety check accessing vars before initialization + +commit f4fb19dbdadb5a6fb55b83804f5064dee6f98a4f +Author: Victor Seva +Date: Fri Oct 19 10:36:52 2018 +0200 + + pkg/kamailio/deb: version set to 5.2.0~pre1 -commit f9468e261824d340e6b3c7d3e1a9c2f1a9bd0fd1 +commit 85290210f05be46a04109b4f850e379c54f1a6a4 Author: Daniel-Constantin Mierla -Date: Fri Jun 22 10:11:56 2018 +0200 +Date: Fri Oct 19 09:50:46 2018 +0200 - topos: debug log messages with linked contact addresses - - (cherry picked from commit 5bafb32fa3dd0aefdb5e0c1a8bbd94638fe1022d) + Makefile.defs: version set to 5.2.0-pre1 -commit c9e1fa657a58e0da9ad1261a8e6d832093d9433e +commit 82f7a6a7f5c370442860a84a36ff449228bf1273 Author: Daniel-Constantin Mierla -Date: Fri Jun 22 09:23:01 2018 +0200 +Date: Fri Oct 19 09:36:00 2018 +0200 - topos: print warn message of missing record-route only for initial requests - - (cherry picked from commit ecfb1b6c9abcaa662155f67b56516fd2d0750fe7) + ims_ipsec_pcscf: free memory on errors and variable supported -commit a85f6b5e0918ee6ae3f9dabab185cc415c9bac13 -Author: Mikko Lehto -Date: Wed May 30 10:13:43 2018 +0300 +commit 044cdefcadf5c7949945544dce30becb2d84c56e +Author: Daniel-Constantin Mierla +Date: Fri Oct 19 08:20:54 2018 +0200 - mqueue: fix typo in variable name documentation - - (cherry picked from commit 9ba37fd602a67066bd49f6959350ea1fd72d5e47) + core: fake msg - added sip schema to From/To URIs -commit a878d5f332688c19d027fc2d085d7221441f0017 -Author: Mikko Lehto -Date: Wed May 23 22:11:00 2018 +0300 +commit b29f333ab118c88d35fa51298cd7ef99857dbba7 +Author: Daniel-Constantin Mierla +Date: Thu Oct 18 18:10:33 2018 +0200 - rtpproxy: mark RPC call with proper tag and small typo fix + core: dns_cache - NAPTR rr_preference set to number for rpc output - (cherry picked from commit 21c219bcdd3f74a029582cd353c5f91d91a46f3d) + - it was set to string, causing a crash + - reported by GH #1680 -commit 9ee7fc5767ffe77932c30962be934a0fb62d22bc +commit f057e844ba407333ad8d876daa1f6ee49bd41c86 Author: Daniel-Constantin Mierla -Date: Wed Jun 6 14:34:56 2018 +0200 +Date: Thu Oct 18 10:13:08 2018 +0200 - dispatcher: safety check for null value of attrs field in database + core: info log at startup with number of precesses, pkg and shm sizes - (cherry picked from commit f3f14c6d85a7055c3a729ec46b83ff2a179ac397) + - useful to see if needed to troubleshoot by analyzing log messages -commit 00419fbc81795564f5e5a5363b6c081c02a9ad8d +commit a4b6a5cb1dda7576b265a23c91321b7f2a034658 Author: Daniel-Constantin Mierla -Date: Tue Jun 5 16:34:48 2018 +0200 +Date: Thu Oct 18 08:34:32 2018 +0200 - rtpengine: docs - updated some of rtpproxy occurences to rtpengine - - (cherry picked from commit 9383174b32b6b49dd9f0757450abadb45690515f) + core: init cfg framework before executing event_route[core:worker-one-init] -commit 933660b707b6b31272a3ca93cba67e3c2798b708 +commit 6d1bf58d468e8ee62da2b1a2e50a57feb7c576c6 Author: Victor Seva -Date: Wed Jul 11 11:39:20 2018 +0200 +Date: Wed Oct 17 12:07:53 2018 +0200 - usrloc: fix RPC ul.add optional received param value when unset + core: [cfg] reset routename properly - fix #1586 + solution for #1536 was not working - (cherry picked from commit 9ede3f273b4e478b875369da5b92ff963ee21573) + fix #1668 -commit e8b2bf9deedfd83d38996d8c5c37761e0e5dcde2 -Merge: fc5c5f56c 4e90aea7f +commit 4f81aa605ba14e8ff90022bb5b36d12725c37f03 +Author: Kamailio Dev +Date: Wed Oct 17 13:46:27 2018 +0200 + + modules: readme files regenerated - pipelimit ... [skip ci] + +commit fe4800594911a0b77be6ee4bc92222c621229a50 Author: Daniel-Constantin Mierla -Date: Fri Jun 22 10:28:36 2018 +0200 +Date: Wed Oct 17 13:37:35 2018 +0200 - Merge pull request #1572 from christoph-v/bugfix_prm18_0001045_contact_remove_5.1 - - ims_usrloc_scscf:bugfix erraneous unlinking of deleted contact + pipelimit: docs - moved algoritm section out of overview -commit fc5c5f56c08766415e8a13b9e86e405bc504d695 -Author: Henning Westerholt -Date: Fri Jun 1 22:46:37 2018 +0200 +commit 2b35fc28a6cef63158e29e322171621d2c66fa1c +Author: Kamailio Dev +Date: Wed Oct 17 13:01:32 2018 +0200 - topos: fix warning about uninitialized variable - - (cherry picked from commit e7ee14f0d168c36c62cd6bef58334db1f0871470) + modules: readme files regenerated - pipelimit ... [skip ci] -commit 5abf68b4d9afc8bf0cd71727b7e71d966a67b165 +commit 81402552ee24cbfb47dc0d7a268dc9a66a7a47ee Author: Daniel-Constantin Mierla -Date: Mon Jun 18 10:00:14 2018 +0200 +Date: Wed Oct 17 12:50:58 2018 +0200 - db_perlvdb: unref in case of error - - (cherry picked from commit 927ddcf084b637385df103fb489d843e0255f4f8) + pipelimit: docs for load_fetch parameter -commit e2aa0e44b3e8d283b6be87c8858e384b40fe63db +commit 61d1fbcc8c193568b4a7728d25be565ac761ea6f Author: Daniel-Constantin Mierla -Date: Mon Jun 18 09:47:15 2018 +0200 +Date: Wed Oct 17 12:47:16 2018 +0200 - tm: t_serial - safety checks for xavp search result + pipelimit: allow to disable fetching cpu and network load - (cherry picked from commit 67d5aac30d7e44f0d19e41df88fce39f67192483) + - prevent usage of high cpu when related algoritms are not used + - can be controlled via load_fetch parameter + - GH #1675 + +commit fc1f16e52433257ad7abf2cbbf26e72f0ac94e7a +Author: Kamailio Dev +Date: Wed Oct 17 09:31:37 2018 +0200 + + modules: readme files regenerated - pipelimit ... [skip ci] -commit 0b9755011687685467e2d53cb4dcb0c58ea28688 +commit 7f0a083b8e0b5b3c5cbf49ea226aa984f0da68ab Author: Daniel-Constantin Mierla -Date: Mon Jun 18 09:22:10 2018 +0200 +Date: Wed Oct 17 09:20:25 2018 +0200 - log_custom: check return code for udp send - - (cherry picked from commit 5f91017c0393faa02201ccc3693fee6381ea691a) + pipelimit: docs for timer_mode parameter -commit 6bf6cfbb90c3fd29cb0c5c079b0eef44892690bf +commit 8a5dadf06dc20a6de9fe0c0f3cdf815f7c0eb41e Author: Daniel-Constantin Mierla -Date: Fri Jun 15 11:50:31 2018 +0200 +Date: Wed Oct 17 09:13:59 2018 +0200 - core: raw sock - reset the rcv_msg and proper test for totlen + pipelimit: allow offloading timer routine from fast timer to secondary wheel timer - (cherry picked from commit 145e3a1e461dd53fb1e06bae619d20a09dcffe75) + - reading cpu and network load from /proc/ file can be demanding + - can be controlled via timer_mode parameter + - GH #1675 -commit 4169c9ab6c4f0636a0a5dcdf77b1a032a7d9d5f6 +commit fb408fbde981d86eb008e6a9dbcdd1f48dd9a9ee Author: Daniel-Constantin Mierla -Date: Thu Jun 14 15:29:16 2018 +0200 +Date: Wed Oct 17 08:51:50 2018 +0200 - dialog: docs - fixed example for rpc dlg.terminate_dlg + pipelimit: execute timer routine per timer_interval - (cherry picked from commit a10d04ddca3a357e8e589a4c3eaba7989dce7de9) + - reported by GH #1675 and GH #1671 -commit 9459e4ae1d9599b04ca67f88191cc9a73106965b +commit 73e3e5d148c9eb74beb7432d9126abd1c5a8d7e7 Author: Daniel-Constantin Mierla -Date: Thu Jun 14 08:04:31 2018 +0200 +Date: Tue Oct 16 12:04:02 2018 +0200 - sqlops: increased the length of printed query part in case of errors - - (cherry picked from commit 5f7eee55c648cfa1b5b5662648fc9133daa6d6b6) + siputils: fixed condition for alphanum matching -commit a026856140a66d9edf4f81c133431d93c2e3392e -Author: Mikko Lehto -Date: Mon Jun 11 19:04:20 2018 +0300 +commit f2f7b5a38bff33043cb6de1c4038364d3f5db77b +Author: Kamailio Dev +Date: Tue Oct 16 12:01:40 2018 +0200 - src/Makefile: adjust Makefile to populate REPO_ variables in autover.h again - - (cherry picked from commit 7585a57037f6ef21cda376b16b0077fa981eceac) + modules: readme files regenerated - siputils ... [skip ci] -commit 8aebe3b9009cc682ed1d1fefb599bef190b47a09 +commit 1d6b33a732ef225e28a367ca043b7e085a7f94f4 Author: Daniel-Constantin Mierla -Date: Mon Jun 11 12:36:22 2018 +0200 +Date: Tue Oct 16 11:45:51 2018 +0200 - tm: force free cell in UNREF_FREE() if transaction is unlinkled from timers - - (cherry picked from commit 72f5eaeeef0239ebd16a2d645b83e83eb1a2b506) + siputils: docs - added missing parenthesis in example -commit 155b78716101fc0c288fe0473c60e5fbb57838f1 +commit 5f872526a4927703f404a57b7ab774675e0fb2be Author: Daniel-Constantin Mierla -Date: Mon Jun 11 12:10:16 2018 +0200 +Date: Mon Oct 15 12:58:08 2018 +0200 - tm: backup and restore T and T_branch in t_continue() - - - it may be required to cleanup old T states after t_continue() is - finished - - (cherry picked from commit 5fe2a1a1c67b550431dcae3c98701073f7edd953) + smsops: free allocated structure in case of error handling -commit 75f19a666dde2e6264ef12c7a4d9f40fcb0f739b +commit fb07b4cb9552a9caa7dea037d5dddbfdd5313990 Author: Daniel-Constantin Mierla -Date: Fri Jun 8 09:19:46 2018 +0200 +Date: Mon Oct 15 12:41:46 2018 +0200 - topos: docs - added section ids to parameters - - (cherry picked from commit 7e5e5ca4ccf21e2644ed8e82bc5225f4432b1247) + siputils: exported to kemi the functions to check alpha numeric values -commit 8d8fec6496617ddad92b98acbcc2d6be4ef192e7 +commit 48048b0e372eabdde14460cb539b3e1ecbc13ae5 Author: Daniel-Constantin Mierla -Date: Thu Jun 7 10:34:42 2018 +0200 +Date: Mon Oct 15 12:20:23 2018 +0200 - nsq: removed obsolete json is_error() macro - - (cherry picked from commit 586566c19a85a611d389062ca1f1de271e1891c3) + kamctl: man page - note about prefixing number params with 's:' to enforce string -commit 53f46ab7b6eb311137033f6cdb27ef73d87cb3f2 +commit c998a7cc2d265d6e3c0e10facc280866495d827e Author: Daniel-Constantin Mierla -Date: Thu Jun 7 10:33:26 2018 +0200 +Date: Mon Oct 15 12:03:43 2018 +0200 - kazoo: replaced obsolete json is_error() macro - - (cherry picked from commit 7d3766614832ef22433e36ef0791fa41796829a2) + utils/kamcmd: man page - note about the suto-conversion of number parameters -commit 352af1b5a878daf90e16f5ae012f5ecb87fabbff -Author: Daniel-Constantin Mierla -Date: Thu Jun 7 10:10:36 2018 +0200 +commit 6a985664b1da3ebac8d64c019ccb4223a76ec974 +Author: Kamailio Dev +Date: Mon Oct 15 08:31:54 2018 +0200 - core: pv - default number of buffer slots set to 40 - - - it was 10 - - allow handling more chained evaluations in large strings - - (cherry picked from commit c087b1d1dd06a1fd417998fe0a51dedcfe02e8c6) + modules: readme files regenerated - dialplan ... [skip ci] -commit 4e90aea7f06595d253c2f69b178ca7a2ce415aca -Author: frie -Date: Fri May 25 17:27:01 2018 +0200 +commit a169b298018f08a57da8e7a8c116560ee4fff006 +Author: Daniel-Constantin Mierla +Date: Mon Oct 15 08:23:23 2018 +0200 - ims_usrloc_scscf:bugfix erraneous unlinking of deleted contact - - impurecord.c: corrected small bug in remove_impucontact_from_list() + dialplan: note and example for prefixing string param with s: for rpc dialplan.translate -commit af57a5a9c19c6e8a26248a97c05d8e9de95a2691 -Author: Henning Westerholt -Date: Tue Apr 3 21:47:47 2018 +0200 +commit c70c4c5486831b0b8e87450869fee091ecfbda04 +Author: Sergey Safarov +Date: Sun Oct 14 15:51:35 2018 +0000 - dialog: fix warning about wrong function prototype for dmq_send_all_dlgs(..) - - (cherry picked from commit 60fc36982d804466dd2a38f8c47e05e3cbf20ad9) + pkg/kamailio: Fixed db_redis RPM packaging after ee95675177466a7ae5f9575db300df32e42661f2 + Please look ticket #1676 -commit d8800d458386a7e35a523f33886f3b148697fa46 -Author: Henning Westerholt -Date: Tue Jun 19 22:33:05 2018 +0200 +commit d6240426467ec9c76a105c961ebbd3e540afd78d +Author: Tsvetomir Dimitrov +Date: Fri Oct 12 10:53:14 2018 +0000 - dialog: dlg stats incremented twice (ported from git master 9317175c71c2c4a613) + ims_ipsec_pcscf: Fixes for some memory related issues -commit 191d970eb1815109c6c6d273da3481afc856f396 -Author: Henning Westerholt -Date: Sun Jun 17 17:13:51 2018 +0200 +commit 4e8104bec581ccf2b109795bbb2c98053911e39d +Author: Kamailio Dev +Date: Fri Oct 12 02:16:29 2018 +0200 - core: better protection against invalid name lookup in DNS caching support - - (cherry picked from commit 74847c386f627ba89a0cb282e85d653388d45e24) + modules: readme files regenerated - db_postgres ... [skip ci] -commit a04c931064d1332a7c23264a33268d3ecec793a2 -Author: Edwin Fine -Date: Wed Jun 13 19:40:04 2018 +0000 +commit 99368909cdfc5140a1948525c5c734252f998efb +Author: Daniel-Constantin Mierla +Date: Fri Oct 12 02:12:18 2018 +0200 - core: fix Makefile.defs errors to include raw socket support - - Compiling kamailio on `linux`, `gnu_kfreebsd`, and `freebsd` - - unless `RAW_SOCKS` is set up otherwise - - should automatically enable raw sockets, according to `Makefile.defs` - [L97][]: - - # enable raw sockets - RAW_SOCKS ?= yes - ifeq ($(RAW_SOCKS),1) - RAW_SOCKS = yes - endif - - By all indications, if `RAW_SOCKS` is unset, set to `1`, or set to `yes` - before this `ifeq` statement, it will be set to `yes` after the `endif`. - - The issue arises later on in `Makefile.defs` [L1758][] (and also - [L1808][] and [L1892]): - - #os specific stuff - ifeq ($(OS), linux) - # by default use futexes if available - use_futex= yes - C_DEFS+=-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD \ - -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H \ - -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER -DHAVE_IP_MREQN - ifneq ($(RAW_SOCKS), yes) ### <--- The issue ### - C_DEFS+= -DUSE_RAW_SOCKS - endif - - Clearly, the `ifneq` should be `ifeq`. - - This commit fixes the issue by making the above changes, and `kamailio` - should compile on Linux - by default - with raw sockets support unless - `RAW_SOCKS` is explicitly set prior to evaluation to something other - than `yes` or `1`. - - [L97]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L97 - [L1758]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L1758 - [L1808]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L1808 - [L1892]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L1892 - - (cherry picked from commit 1d4ee7720c6f609077e4497189103f9a950f4194) + db_postgres: docs for bytea_output_escape -commit e4ff0ab2a86c64438251d8de969ac821f8b31309 -Author: Victor Seva -Date: Thu Jun 7 13:47:36 2018 +0200 +commit 861205b8aeed19fe8693e21fe5f1856f1dcb08c5 +Author: Daniel-Constantin Mierla +Date: Fri Oct 12 02:09:21 2018 +0200 - ims_registrar_pcscf: fix #1556 + db_postgres: new parameter bytea_output_escape - (cherry picked from commit cddcdb3db2745ef43b5b892a20c3bd1aae439bae) + - control escaping output for bytea fields + - default 1 (do the escape) -commit 2f63caf7ac87c1eca9c6f4150dc7418fa9f4fc35 -Author: Henning Westerholt -Date: Sun Jun 10 22:39:35 2018 +0200 +commit 167ff2b29d82cbd96dab3435c1694d6b40e245cf +Merge: 2db33ab33 5557a441a +Author: Daniel-Constantin Mierla +Date: Fri Oct 12 02:02:24 2018 +0200 - core: dns name to IP conversion - actually stop processing in error case + Merge pull request #1672 from sergey-safarov/psql - (cherry picked from commit 55d115e255b1d87121922f689b93870b84e1b2b4) + db_postgres: Fixed blob hex encoding (#1255) -commit 538ac2c5eeb9f2df1d896adf0661e5e35fadb504 -Author: Henning Westerholt -Date: Fri Jun 8 21:16:51 2018 +0200 +commit 2db33ab33441cff2c40db84b057416659f8b53b2 +Merge: a213d9d1c 59d287586 +Author: Daniel-Constantin Mierla +Date: Fri Oct 12 00:33:54 2018 +0200 - core: make dns name to IP conversion more robust for IPv4 and IPv6 + Merge pull request #1669 from micmac1/master-jsonrpc-portable - (cherry picked from commit 4a55a2b40b91f282d7fd8f0e3c3ae22bcf56d9dc) + kamctl: make jsonrpc filter portable -commit a8bbf774d0c92e2c177c4a860bb18211d56186dd -Author: Victor Seva -Date: Thu Jun 7 17:10:20 2018 +0200 +commit a213d9d1c9f9f8146d791e151710fe88ac31d86a +Author: Henning Westerholt +Date: Thu Oct 11 09:47:29 2018 +0200 - cfgt: documment that pv module has to be loaded in order to work + add code of conduct, as decided from the Kamailio management and admin team - (cherry picked from commit 7d21723205ad02374364c3f0143b618d1a649d4d) + - add code of conduct, as decided from the Kamailio management and admin team + - this code of conduct was adapted from the Debian Code of Conduct + - several edits have been made from the team for readability and to fit to our project scope -commit 1ea010dd4db8e6486cf0fa928a2b11ffb0d441fa -Author: Victor Seva -Date: Thu Jun 7 15:31:14 2018 +0200 +commit cbaeb4361b512a3bb8525bb3f628894dbea495f5 +Author: Daniel-Constantin Mierla +Date: Wed Oct 10 12:01:22 2018 +0200 - core: unset routename when default_routename is set + Revert "sl: new pv $ltt(key) - return local generated to tag" - fix #1536 + This reverts commit 5d0494f9444b73a639a90c4ff2da933fb2d11d5d. - (cherry picked from commit 92f8fdabcffd84e315d749bae8ded3490f8de014) + - mistakenly pushed in master, not personal branch + +commit 5557a441a4969994c2a82a89d53dec710164a034 +Author: Sergey Safarov +Date: Sun Oct 7 21:06:59 2018 +0000 -commit 3da0bcb4b4e27d115a2d6eb47cd0cebc33d34a61 + db_postgres: Fixed blob hex encoding (#1255) + +commit 5d0494f9444b73a639a90c4ff2da933fb2d11d5d Author: Daniel-Constantin Mierla -Date: Wed Jun 6 10:24:18 2018 +0200 +Date: Tue Oct 9 22:17:13 2018 +0200 - tm: free new tm cell in case of error if it was not referenced + sl: new pv $ltt(key) - return local generated to tag - - part of t_uac_prepare(), reported by GH #1554 - - (cherry picked from commit f94770840029c1c73ab129f4b71fcb0cf146d808) + - the to-tag used when kamailio sends a reply + - $ltt(s) - the to-tag used in stateless replies + - $ltt(t) - the to-tag used in transaction stateful replies (transaction + has to be created at that time, eg., by t_newtran() or in a + branch/failure route, otherwise it returns $null) + - $ltt(x) - $ltt(t) if the transaction was created already, otherwise + $ltt(s) -commit 6bff7a4172df898483dfc928c19a26ec1c6a6f0f -Author: Victor Seva -Date: Wed Jun 6 09:44:00 2018 +0200 +commit 158bfa4cee2ee12e53a0b8e0bab86964279d653c +Author: Daniel-Constantin Mierla +Date: Mon Oct 8 11:55:47 2018 +0200 - examples: remove execute mode from text file - - (cherry picked from commit 226a6aa06fc46ead24e262afd382af64452ae080) + siputils: exported is_user() and uri_param() variants to kemi framework -commit cce9bab16ed607041a9849234e6b26fca72319e9 +commit f94e6d12c1fb2e3bba5f603b286ef0fe786fd2e1 Author: Daniel-Constantin Mierla -Date: Wed Jun 6 08:10:15 2018 +0200 +Date: Sun Oct 7 09:59:01 2018 +0200 - topos: fix condition to match KDMQ method - - (cherry picked from commit e9be20215b8e995bac698b54b7960cdaa9b60798) + siputils: exported is_uri() to kemi interface -commit 827bb9c8a868d58a92fc9dd24d8f43179ec0c99d +commit b9b6f632f999ead650a763d9da20d1dd1871c304 Author: Victor Seva -Date: Wed Apr 4 17:04:22 2018 +0200 +Date: Mon Oct 8 09:12:24 2018 +0200 - pkg/kamailio/deb: remove app_java from sid/buster + pkg/kamailio/deb: version set to 5.2.0~pre0 + +commit cdfd0d460fbfe7a2cd2343b3829d3df88a943cd8 +Author: Henning Westerholt +Date: Sun Oct 7 22:49:58 2018 +0200 + + Makefile.defs: improve and extend comment about compilation mode + +commit 59d287586f502a8df71c2e91899fde49594e072e +Author: Sebastian Kemper +Date: Sun Oct 7 18:54:39 2018 +0200 + + kamctl: make jsonrpc filter portable - See #1487 + The filter has a regex looking for a literal '{' in the beginning of a + line. Some awk implementations interpret this as a meta character, so + the regex is deemed broken. Example with busybox awk (POSIX): + + root@hank2:~# kamctl ps + awk: bad regex '^{.+"id"[ ]*:[ ]*[0-9]+[ ]*}$': Invalid contents of {} + root@hank2:~# - (cherry picked from commit 66e36e75a855e8170dd788a312061aff71991e18) + To fix this enclose the character in square brackets. This always + matches for a literal '{' and is portable. + + Signed-off-by: Sebastian Kemper +commit 58325bb8ae28ff291d594782bc3bfdd8e811d0a9 +Author: Henning Westerholt +Date: Sun Oct 7 10:29:46 2018 +0200 + + core: remove obselete parse_hostport functionality, deactivated since 2003 -===================== 2018-06-05 Version 5.1.4 Released ================== +commit 884ec6baf85414d2f92681cd6e61a5d611fd0428 +Author: Henning Westerholt +Date: Sun Oct 7 10:02:03 2018 +0200 -===================== Changes Since Version 5.1.3 =========================== + enum: remove old and not compiling code block, deactivated with #ifdef since 2006 -commit 35b0e3887935d9702fb3e704f07699508f823e1b -Author: Daniel-Constantin Mierla -Date: Tue Jun 5 12:52:27 2018 +0200 +commit b64a25874e376c00ce60570117d33550af568497 +Author: Henning Westerholt +Date: Sun Oct 7 09:56:59 2018 +0200 - Makefile.defs: version set to 5.1.4 + core: remove old code for BRANCH_IGNORE_3261_VIA and BRANCH_INCLUDE_FROMTO_BODY + + - remove old code for BRANCH_IGNORE_3261_VIA and BRANCH_INCLUDE_FROMTO_BODY + - this was used in pre-3.1 version times and deactivated in #ifdef since 2010 -commit c3eec978f6456eb238d446686e1db3b5b6de4b7b -Author: Daniel-Constantin Mierla -Date: Tue Jun 5 12:11:28 2018 +0200 +commit b5f2aabbc692dedff4788e4470ea534d90c7cab4 +Author: Henning Westerholt +Date: Sun Oct 7 09:48:05 2018 +0200 + + core: remove a code block related to hash functions, deactivated with #ifdef since 2002 + +commit a9a47c2295f55fbb9928e7798994e9aad0590055 +Author: Henning Westerholt +Date: Sun Oct 7 09:38:24 2018 +0200 + + core: remove old and not working function, deactivated with an #ifdef since 2003 - pkg/rpm: version set to 5.1.4 +commit aae3dcec8d755c5da601a515be1725abe5e4cc3c +Author: Henning Westerholt +Date: Sun Oct 7 09:28:39 2018 +0200 + + core: MOD_KAMAILIO/MOD_SER DB URL defines, cleanup after commit #1f70d062b0b9cf1e + +commit 2b8c4f1d4f5e5110ad1ed15b2a228a76122eb8f7 +Author: Henning Westerholt +Date: Sun Oct 7 09:27:30 2018 +0200 + + Makefile.modules: SER_MOD_INTERFACE/KAMAILIO_MOD_INTERFACE cleanup after commit #1f70d062b0b9cf1e + +commit a94a7e0360b30d05f48720d81b7ba4268b6384f6 +Author: Henning Westerholt +Date: Sun Oct 7 09:25:44 2018 +0200 + + cdp: remove a SER_MOD_INTERFACE usage, cleanup after commit #1f70d062b0b9cf1e -commit 574a0d245bf1864ca6b855081fd76c721fd19532 +commit 9dcab6fcc9e40253e3f9b451af533fe02b96a7c3 +Author: Henning Westerholt +Date: Sun Oct 7 09:16:20 2018 +0200 + + kam_to_sr.sh: add a note that this script is now obselete + +commit e4a408385c6b56c2f623a131d92246484cfb2720 Author: Daniel-Constantin Mierla -Date: Fri Jun 1 18:48:27 2018 +0200 +Date: Sat Oct 6 22:34:41 2018 +0200 - pv: debug message with intermediate message to evaluate by pv_evalx() + siputils: use spve fixup instead of pvar - (cherry picked from commit 03698a4b2ec49896c08a3989403d7e33ff9fb844) + - it includes the later, plus more flexibility to allow static or + dynamic strings -commit 12ddd127343f1be98a4556aadd9ccfeafc3fbdc7 -Author: Dmitri Savolainen -Date: Fri Jun 1 10:38:40 2018 +0300 +commit 1f99806fa2db09b9ac6da7fbeb388a93c7638f13 +Author: Henning Westerholt +Date: Sat Oct 6 18:04:00 2018 +0200 + + Makefile.defs: cleanup the CPUTYPE/mtune definitions for i386 and x86_64 + + - Makefile.defs: cleanup the CPUTYPE/mtune definitions for i386 and x86_64 + - revert change c925278b8ee3492f71a from 2011 for gcc SUSE 4.5.x, now not needed + - use for current gcc (>= gcc 4.2) the generic mtune, which is now available + - From the gcc manual: + "Produce code optimized for the most common IA32/AMD64/EM64T processors. + If you know the CPU on which your code will run, then you should use the + corresponding -mtune or -march option instead of -mtune=generic. But, if + you do not know exactly what CPU users of your application will have, then + you should use this option. + As new processors are deployed in the marketplace, the behavior of this + option will change. Therefore, if you upgrade to a newer version of GCC, + code generation controlled by this option will change to reflect the + processors that are most common at the time that version of GCC is released. + - unify opteron usage, use equivalent athlon64 mtune for old compilers instead + - simplify x86_64 gcc logic, remove now redundant 4.2.x if case + - there should be no performance implications, as we compile without debugging + - we prefer right now to have proper debugging, this would break with agressive + optimization + +commit 13ea0ae72b0213125e8797dbfc143eb1e774726d +Author: Kamailio Dev +Date: Fri Oct 5 21:46:30 2018 +0200 - dialog: check CSeq careful with track_cseq_updates - - to avoid null pointer access for malformed messages - - (cherry picked from commit 59c7bf4f43a8cd5dcb0555835a064d88679956c5) + modules: readme files regenerated - dispatcher ... [skip ci] -commit fa87c0be79e7e12f3ec57c8ec532f0240b7cdb31 -Author: Victor Seva -Date: Tue Jun 5 11:16:16 2018 +0200 +commit d753fc32b8aaa70990ec764be33cd9b0bd5f044a +Author: Henning Westerholt +Date: Fri Oct 5 21:39:37 2018 +0200 - pkg/kamailio/deb: version set to 5.1.4 + presence: small spelling fix (bellow -> below) -commit 942445c2c3844ae5d2692d7c734cb1375caed849 -Author: valentin -Date: Tue Mar 20 16:15:57 2018 +0100 +commit 54a61e648c06cb8f5a1888d8ad43d411f80f229d +Author: Henning Westerholt +Date: Fri Oct 5 21:39:25 2018 +0200 - ims_isc: initial fix of issue #1168 - - Function isc_match_filter() got a new local variable firstflag in - order to handle the case where a FAILURE_ROUTE callback is - received before the first AS has been contacted. - The firstflag is also forwarded to function isc_forward() as - parameter. + tm: small spelling fix (bellow -> below) -commit d67b2f9874ca23bd69f18df71b8f53b1b6151f6d +commit 586b766adae1d2476d6bb50e3ac17324d16c9a9b Author: Henning Westerholt -Date: Sun Jun 3 20:59:32 2018 +0200 +Date: Fri Oct 5 21:39:10 2018 +0200 - core: improve header safe guards for Via handling - - (cherry picked from commit ad68e402ece8089f133c10de6ce319f9e28c0692) + dispatcher: small spelling fix (bellow -> below) -commit 7de9b687355f714d327b3c74a0fc63c85c9d1aee -Author: Christoph Valentin -Date: Fri Apr 6 15:29:11 2018 +0200 +commit 82220a00e534c954ba2a9ec37f1b7cfc9c34660f +Author: Henning Westerholt +Date: Fri Oct 5 21:38:27 2018 +0200 - ims_usrloc_scscf: bugfix Contct is removed when old Contct expires - - in function unlink_contact_from_impu() (in file impurecord.c) an - assignment "=" is used instead of a comparision operator "==". This - leads to mess, when old contact expires. + core: small spelling fix (bellow -> below) + +commit 1ff60247a2996b9478e0611f99e9b825e22cb6ab +Author: Henning Westerholt +Date: Fri Oct 5 21:38:14 2018 +0200 + + misc: small spelling fix (bellow -> below) -commit 9aee0374e1db8733a220d37fbc53517353aee4dd +commit 1015636bb7d2f73451e8293b6ebb7f0ea9b84142 +Author: Henning Westerholt +Date: Fri Oct 5 21:38:04 2018 +0200 + + docs: small spelling fix (bellow -> below) + +commit d3a45846f31961af6779241ddedd71fb70730a74 +Author: Henning Westerholt +Date: Fri Oct 5 21:37:27 2018 +0200 + + COPYING: small spelling fix (bellow -> below) + +commit 433c10d1ca04a34a50f8bd039ef027feb5b6cbd4 Author: Daniel-Constantin Mierla -Date: Wed May 30 20:17:11 2018 +0200 +Date: Fri Oct 5 08:19:37 2018 +0200 - carrierroute: rename boolean type conflicting with clang sdtbool - - In file included from carrierroute.c:51: - ./cr_db.h:92:2: error: expected identifier - false = 0, - ^ - /usr/lib/clang/9.1.0/include/stdbool.h:33:15: note: expanded from - macro 'false' - #define false 0 + Makefile.defs: version set to 5.2.0-pre0 - (cherry picked from commit 0a14914fc1f98c18b9b75f66fe2e71f15147c9bf) + - code in master branch is frozen - no new features till branching 5.2 + - start of testing period -commit e3a78848857ee4a12211f10e091209ee2431b4b6 +commit d5ebf1f3af69d2ed060a1c1a43b57f8439281423 Author: Daniel-Constantin Mierla -Date: Wed May 30 18:04:44 2018 +0200 +Date: Fri Oct 5 07:22:14 2018 +0200 - topos: skip handling local DMQ messages + Makefile.defs: version set to 5.2.0-dev9 - (cherry picked from commit 7ff8d4284f20763e8e47f9b24e4604867a242e4a) + - end of development for 5.2.x release series -commit 0c17c1c8ba43967025f13a87507e6877490ed229 -Author: Olle E. Johansson -Date: Wed May 30 12:48:26 2018 +0200 +commit 88e8ae6f41c465bca0130434793a183617f6c887 +Author: Kamailio Dev +Date: Fri Oct 5 07:31:52 2018 +0200 - db_cluster remove old svn ID tags - - (cherry picked from commit be82892a68342287d37de90ddb74c1f66a37e28f) + modules: readme files regenerated - htable ... [skip ci] -commit 4cf3f3e84bcd45eb32545de9fa71d80769bd9603 +commit fb63da5ff6fca08b1b1153aae9e495baf04806ff +Merge: 0eb8c03c9 57f87fcb3 Author: Daniel-Constantin Mierla -Date: Tue May 29 22:49:42 2018 +0200 +Date: Fri Oct 5 07:19:43 2018 +0200 - core: kemi - more log-level message shortcut functions + Merge pull request #1667 from kamailio/cchance/ht-dmq-sync - (cherry picked from commit f854f2c27bee1b1e4f43565ff1865b88c27387c9) + htable: added startup synchronization over dmq -commit fd163baf20ab28354bb7cbf92ffd7e7c4d7eff3b +commit 0eb8c03c9c73d14d288a4993b30fecf6e244be13 +Merge: 6685a7977 454798654 Author: Daniel-Constantin Mierla -Date: Tue May 29 13:39:04 2018 +0200 +Date: Fri Oct 5 07:19:27 2018 +0200 - app_jsdt: exported KSR.pv.getw(...) + Merge pull request #1666 from kamailio/lazedo/is-uri - (cherry picked from commit 616b68904e0741ebcdb70e3c7f66b3b6d1254a8d) + siputils: add is_uri function -commit 7d6dddfbf2ccadaf749496a4288f176b191350f2 -Author: Daniel-Constantin Mierla -Date: Tue May 29 13:29:36 2018 +0200 +commit 6685a79778ade7821d521b23d791ed3ac80938a8 +Author: Kamailio Dev +Date: Thu Oct 4 17:01:39 2018 +0200 - stun: catch udp ping 0000 when trying to parse stun headers - - - avoid useless debug message - - info message made debug if the size of received packet is too small - for a stun header - - (cherry picked from commit 7e08fc8d2b74657d6e6171effbab2770482d693e) + modules: readme files regenerated - corex ... [skip ci] -commit 7e763c727076af3a3a35db4fc840e857ba00ae46 +commit 61405d0f0139622f78d81daa634caff86f5b3970 Author: Daniel-Constantin Mierla -Date: Mon May 28 15:33:21 2018 +0200 +Date: Thu Oct 4 16:52:00 2018 +0200 - lib/srdb1: increased the safety check for max db url to 1023 - - - was 255, too small for large connection strings needed for no-sql - - reported by GH #1545 - - (cherry picked from commit 0a9ebbbdfe0cd4c137338adbacf5c5890222708a) + corex: docs for via_use_xavp_fields() -commit 96eec5f5aaa99288ef59097cc39c6322993521ab +commit b81e049f568c162d03c4d146a16f9d6c20898905 Author: Daniel-Constantin Mierla -Date: Sun May 27 10:56:00 2018 +0200 +Date: Thu Oct 4 16:47:52 2018 +0200 - rls: allocate size for normalized uri for cloning buffer - - - it can be longer than pres uri, when proto prefix needs to be added + corex: new function via_use_xavp_fields(mode) - (cherry picked from commit 93932a4ff18760d8fc8c59bd08984fd00cfd7759) + - set/unset the flag for building local Via using fields from + via_xavp_fields xavp -commit 71f328f8ab2f41ed83749c77eb4b9c3b9ca378c2 +commit 75a034d032d01e62cceff77baed9285ffcc27ee2 Author: Daniel-Constantin Mierla -Date: Fri May 25 12:01:00 2018 +0200 +Date: Thu Oct 4 16:47:25 2018 +0200 - app_sqlang: fix for executing kemi functions with 4 or more params - - - more combinations for 4 params - - (cherry picked from commit d86b67bbde300e4aa1be7ea7c5bdb21469ece03c) + xhttp: updates for new signature of via_builder() -commit 7999ddc6b9b7289cd1f1fe620719e1486649ed87 +commit 2caa05bd1c3b08692833407f7405928d346aec22 Author: Daniel-Constantin Mierla -Date: Fri May 25 11:57:15 2018 +0200 +Date: Thu Oct 4 16:47:07 2018 +0200 - app_python: fix for executing kemi functions with 4 or more params - - - more combinations for 4 params - - (cherry picked from commit 551e4d372892d1d5c7803c3812d0bd4613efaf36) + tm: updates for new signature of via_builder() -commit b25d7002fe58fff7e876fa3e9818ec0cec873c1a +commit d9b1f42718c0ffcaa5c5338b231d5be77e347be0 Author: Daniel-Constantin Mierla -Date: Fri May 25 11:49:25 2018 +0200 +Date: Thu Oct 4 16:46:38 2018 +0200 - app_jsdt: fix for executing kemi functions with 4 or more params - - - more combinations for 4 params - - (cherry picked from commit 81d517f0a3dcd769dc84ff019c58e248ef7eb466) + xmlrpc: updates for new signature of via_builder() -commit f1fbf3d6d6e4461e6f0440b042121fe45eb04730 +commit 6e4c04781af65feff92dfdbb04c76d64878c355e Author: Daniel-Constantin Mierla -Date: Fri May 25 11:41:37 2018 +0200 +Date: Thu Oct 4 16:45:14 2018 +0200 - app_lua: fix for running kemi functions with 4 or more parameters - - - added new combinations for 4 params case - - reported by GH #1544 + core: new global parameter xavp_via_fields - (cherry picked from commit 52f246fbcc9097f77b6a64d15a4ff74e03577ba8) + - set the name of xavp from where to take Via header field: address and + port + - use them to build local Via header -commit dace75ab9a294c34bec07d07b328be9474b7e4f3 -Author: Daniel-Constantin Mierla -Date: Fri May 25 11:34:11 2018 +0200 +commit 454798654c2b2acd252df411d64e55bee0a70f52 +Author: lazedo +Date: Thu Oct 4 11:10:57 2018 +0000 - core: kemi - more combinations for function prototypes - - (cherry picked from commit 6528c9cbc5a89128d4892f1a526c76747b42448c) + siputils: add is_uri function -commit a1a397bbf6cd6a01ccd505b7b85d448478d27cbe +commit eba52922121a5ab9e0eeef113b738549c8275612 Author: Daniel-Constantin Mierla -Date: Thu May 24 10:08:17 2018 +0200 +Date: Thu Oct 4 14:15:21 2018 +0200 - sanity: updated docs to reflect default value for default_checks param - - - reported by GH #1542 - - (cherry picked from commit 6ff985605b3fbb6aa350af4c21fc73afb8cf122f) + cores: updates for FL_ADD_XAVP_VIA_PARAMS -commit 5fc19fd9159c649a6a21ad20193f69eb9e34509d +commit 5c0dbcb62eb1e6be91b3c28ea9987566e3249342 Author: Daniel-Constantin Mierla -Date: Wed May 23 20:43:48 2018 +0200 +Date: Thu Oct 4 14:14:37 2018 +0200 - topos_redis: proper length value when comparing to insert INVITE branch + core: renamed FL_ADD_XAVP_VIA to FL_ADD_XAVP_VIA_PARAMS - (cherry picked from commit 2a3ca5942291d29de05b14338a36cecbec11f129) + - match better the purpose of the internal flag -commit cc1ff15335a81971aa891231cbea7c8fd03261e0 +commit e3134724116c89caaa795b5d20612fd4a4b30d7e Author: Daniel-Constantin Mierla -Date: Wed May 23 20:42:51 2018 +0200 +Date: Thu Oct 4 10:13:14 2018 +0200 - tm: set msg for log_prefix before running failure_route - - - reported by GH #1531 - - (cherry picked from commit eb2f25ca0810f966d089da3aa1e32e3e98a4ab16) + Makefile.defs: detect gcc v8.x + +commit 0ce6c07f526ae58476e2a4a426de83a8ec9f734c +Author: Kamailio Dev +Date: Thu Oct 4 08:31:38 2018 +0200 + + modules: readme files regenerated - siputils ... [skip ci] -commit 0cd09d42878ed0125bfad480e9706a81b96ab2bd +commit 840d8edc3cae5a921aaa14e62f170613bc8da844 Author: Daniel-Constantin Mierla -Date: Wed May 23 18:43:22 2018 +0200 +Date: Thu Oct 4 08:21:10 2018 +0200 - core: qm malloc - wrapper to print execution file and line for qm_debug_frag() + siputils: note that is_first_hop() works only for IP addresses in record route - (cherry picked from commit f3109d4dcdc4ef810ccf4a8d17f28f7fce42271c) + - this is done for reply handling -commit ad9817f9d6df0aabe4888b8b2d489a5ca061bd14 +commit e5f6e83557a73c0597ddac8f2f23d99631339657 Author: Daniel-Constantin Mierla -Date: Tue May 22 20:21:02 2018 +0200 +Date: Wed Oct 3 10:53:28 2018 +0200 - topoh: more verbose debug messages when decoding r-uri - - (cherry picked from commit 5a0086fb5d54cf0411180a8426ea49ad440f147a) + core: async task - handle return code for fcntl(...) -commit 4cf03cdac8f4f31dbc5fa716ac9b5416a99c4a60 +commit 9d6356a4dfe4d455958208face87616126ca49f3 Author: Daniel-Constantin Mierla -Date: Tue May 22 13:46:58 2018 +0200 +Date: Wed Oct 3 10:47:50 2018 +0200 - core: cfg.lex - removed redundant token defining max_branches - - (cherry picked from commit 420fa5e581af5668cdecd0c97b555f4d673105f7) + kex: proper range for array access of reply stats per code class -commit 44a31db68237ca3a43382a20a75e95e6e800bd3e +commit 522c338abff05634b6eff2a50e2827abf748902c +Merge: 6c15fc825 a0db2cb02 Author: Daniel-Constantin Mierla -Date: Sun May 20 21:17:47 2018 +0200 +Date: Wed Oct 3 09:16:15 2018 +0200 - app_jsdt: implemented kemi KSR.pv.getw(...) + Merge pull request #1664 from mslehto/Wsometimes_uninitialized - (cherry picked from commit 3647cc1a9b2e85e71657ba3dd3bba21c6bdc5ff5) + sipcapture: initialize variable + +commit 6c15fc825da9e3b943ac3513219f4f6529ea8efc +Author: Victor Seva +Date: Tue Oct 2 16:13:32 2018 +0200 + + pkg/kamailio/deb: version set 5.2.0~dev8 [skip ci] -commit b8602fc0f3ea9f3e7bba593c2d8486e5bd60a882 +commit 1ff3185a13247759fdb324eac9857981371aeda2 Author: Daniel-Constantin Mierla -Date: Sat May 19 19:33:56 2018 +0200 +Date: Tue Oct 2 15:35:48 2018 +0200 - app_sqlang: added KSR.pv.getw(...) - - (cherry picked from commit cb97be77664625a4fb454bdd6d5c84c8a2c7adb3) + Makefile.defs: version set to 5.2.0-dev8 -commit e62762cb657912f22c7a0e97f9a43b63d4c8dce3 +commit d63548dc311df5f2550e788fc026d9ec7c7dd2f4 Author: Daniel-Constantin Mierla -Date: Fri May 18 09:03:04 2018 +0200 +Date: Tue Oct 2 15:33:51 2018 +0200 - app_python: added KSR.pv.getw() to kemi expors - - - wrapper function for returning the value + Makefile.defs: enabled clang compile warning flags -Wunused-variable -Wuninitialized + +commit a0db2cb021e45fe56f8b54121efa31bf071c8709 +Author: Mikko Lehto +Date: Tue Oct 2 16:08:06 2018 +0300 + + sipcapture: initialize variable - (cherry picked from commit e8b434f13f56b2f34d5b30bf728c4685c488e63c) + > sipcapture.c:2580:5: warning: variable 'corrtmp' is used uninitialized whenever 'if' condition is false + > [-Wsometimes-uninitialized] + > if(correlation_id) { + > ^~~~~~~~~~~~~~ -commit 8f3d8495297d459e5802a5dc86dab4f57e047941 +commit afb7ef77faab405a4da0c7f601f35358a1130238 Author: Daniel-Constantin Mierla -Date: Fri May 18 08:48:37 2018 +0200 +Date: Tue Oct 2 15:00:29 2018 +0200 - app_python: added KSR.pv.getw(...) - - (cherry picked from commit 115fa38f427b1bc3730add9078c44219b25960cb) + tm: safty checks when destroying the tm cell -commit 91649cd46bf88d80f4fbcaccecb03e3a8fbae577 -Author: Victor Seva -Date: Tue May 15 22:11:52 2018 +0200 +commit 5485afbf498dbacd6f0d1a32ec9629158abda62f +Author: Kamailio Dev +Date: Tue Oct 2 12:31:39 2018 +0200 - db2_ldap: fix compilation warning - - > ld_fld.c:831:19: warning: unused function 'db_double2ldap_str' [-Wunused-function] - > static inline int db_double2ldap_str(struct sbuf* buf, db_fld_t* fld) - > ^ - > 1 warning generated. - - (cherry picked from commit 5b1355aa3d9404a5165b0afbfdac384fe9cf785a) + modules: readme files regenerated - peering ... [skip ci] -commit 0c04b6f8b7f532147e03c1c4bb706e4a6501ab35 -Author: Victor Seva -Date: Tue May 15 20:18:02 2018 +0200 +commit 7e1112abd6949600cfabb163466e1557e5baa296 +Author: Juha Heinanen +Date: Tue Oct 2 13:21:37 2018 +0300 - db_perlvdb: fix compilation warning - - > db_perlvdb.c: In function 'db_perlvdb_bind_api': - > db_perlvdb.c:98:24: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] - > dbb->replace = perlvdb_db_replace; - > ^ - - (cherry picked from commit dbae2561720c97200d8e58e1e6c408a943e3c07b) + modules/peering: added a note that the module is obsolete -commit f42886f1ab9bb61610fca462ee6dc5698fef3ec6 +commit 8b02e9be516f653734396decadcc9d2246f5a03e Author: Daniel-Constantin Mierla -Date: Tue May 15 07:54:24 2018 +0200 +Date: Tue Oct 2 12:21:18 2018 +0200 - app_lua: kemi - exported KSR.pv.getw("$...") - - - get the value of the pseudo-variable if it is not $null and the string - "<>" if it is $null - - useful to use in building log messages without testing if the variable - is set, otherwise lua throws error while trying to concatenate null - value - - (cherry picked from commit c3e36a1eb2ff70f94b83a42de3e901f4ba142813) + sdpops: removed unused variable -commit 649e3766f4159a366a1befe49f132637239e7e9a -Author: Sergey Safarov -Date: Mon May 21 21:43:31 2018 +0000 +commit cb984a53016762cb0932ed4dec4c75edb8997c0f +Author: Daniel-Constantin Mierla +Date: Tue Oct 2 12:05:09 2018 +0200 - tls: Fixed build tls module on Alpine dist - - (cherry picked from commit 9bdc1eba76f03cd009d7f04906f13bdb6579f511) + tm: macro to define the ptr address for tm cell uac field -commit e5745ca3d058f82e957a761b4b800f869a7ca2a9 -Author: Muhammad Shahzad -Date: Tue May 8 08:15:47 2018 +0200 +commit 19e29ec302fc0d0d9ee3df6bbf6690223ef69323 +Author: Kamailio Dev +Date: Tue Oct 2 12:01:31 2018 +0200 - db_perlvdb: updated code and documentation for latest db api - - - GH #1525 - - (cherry picked from commit 1a15e985de8cc4a5c836dacd0df4afdb6b6efb1b) + modules: readme files regenerated - sdpops ... [skip ci] -commit 256d06bc1902f59354fb0bee37a1e34510714318 -Author: uts09 -Date: Mon May 7 22:30:04 2018 +0200 +commit 23a76ee461afbd29232c388f0890abe7848dba10 +Merge: 649f9eb31 6a86d0bd1 +Author: Mikko Lehto +Date: Tue Oct 2 12:50:54 2018 +0300 - misc/examples/ims: replaced deprecated mi_fifo with jsonrpcs - - - submitted via PR #1524 - - (cherry picked from commit e17853d8804fa7f10688676d313014ac6e313215) + Merge pull request #1659 from mslehto/sdpops_o_line -commit fcd3974e85b549c85cb7fb3a11e9d019b6adaf1d +commit 649f9eb315198f169e74f20605745a89ad80f09b +Merge: fe19995ba c1bb32440 Author: Daniel-Constantin Mierla -Date: Mon May 7 08:55:46 2018 +0200 +Date: Tue Oct 2 11:26:32 2018 +0200 - db_perlvdb: added const specifiers to get rid of warnings + Merge pull request #1662 from sergey-safarov/spec - (cherry picked from commit 6a152024a40abdb89842aaee418088fe3fb23ae2) + pkg/docker: updated submodule + +commit 6a86d0bd1371dd7268968101c1c437b2754dc8ac +Author: Mikko Lehto +Date: Tue Oct 2 11:50:17 2018 +0300 + + sdpops: add PV documentation -commit 052cfbd844b662cac17910f55111ad8c4388fd44 +commit fe19995ba150beca0acf6f4bdc1bb92f3c8348e1 Author: Daniel-Constantin Mierla -Date: Sun May 6 09:19:09 2018 +0200 +Date: Tue Oct 2 08:59:56 2018 +0200 - core: dns cache - print status as field in rpc structure - - (cherry picked from commit 1822d974ff1704cca3a1db5fce0507be47af3928) + tm: reset the tm cell content during free -commit 1cac068d1acdd44081a1c4e65a317a4b208a08bb -Author: surendratiwari3 -Date: Sat May 5 12:48:31 2018 +0530 +commit dd9615e7b0e20a2f63f380ee16837def985676aa +Author: Juha Heinanen +Date: Mon Oct 1 20:43:43 2018 +0300 - misc:kemi_lua append_hf to append - - (cherry picked from commit 5ceb3b857d448fed1e819812dcb4a9724243cdb8) + modules/lcr: tried to test unsigned int values against both DB1_INT + and DB1_UINT -commit 7998b253bd6ed2e589f94d18a85aec99914a31ce -Author: Daniel-Constantin Mierla -Date: Sat May 5 09:21:14 2018 +0200 +commit c814f9fb6aa20ae18253f0d165795516a8869085 +Author: Luis Azedo +Date: Mon Oct 1 13:57:00 2018 +0100 - db_perlvdb: updated the db api exported fields - - (cherry picked from commit c7aa0a9e3796b1fcd70305a2878d62bf251a9b5e) + nathelper: initialize local variable -commit e86116142f4c30ba5f9afbeebf558506e775986f -Author: Daniel-Constantin Mierla -Date: Sat May 5 08:49:32 2018 +0200 +commit 3892c78ac59a7d894a5dc8804c20df07b52cc795 +Author: Luis Azedo +Date: Mon Oct 1 13:51:08 2018 +0100 - db_perlvdb: proper lookup for app_perl module - - - reported by shaheryarkh@gmail.com + Revert "nathelper: fix call to alter_mediaip" - (cherry picked from commit 1226ae471627547ef00c651b78b37e1c397adc23) + This reverts commit 17c14a966ff3ba67ce858dfe424d7cdf5100d4fa. -commit ed235c5a5671fa9011e489e2ab1ff0307a18d1cd -Author: Daniel-Constantin Mierla -Date: Sat May 5 08:44:41 2018 +0200 +commit c1bb32440e25a2c0751b9fc4b11d829ee6bbf636 +Author: Sergey Safarov +Date: Mon Oct 1 14:08:04 2018 +0000 - core: rpc dns.view outputs proper formatted structure - - - previously it was doing sort of printf to emulate structures - - (cherry picked from commit ab9e9eba2bdd70a6bac296b88331a137c6a3cbd0) + pkg/docker: updated submodule -commit 04bd1288ba84223695c5e01e8f587fd3d2f08440 +commit d66fc7146267417a7a0a0cee22a0148bf94d0b6a Author: Daniel-Constantin Mierla -Date: Sat May 5 07:36:56 2018 +0200 +Date: Mon Oct 1 10:45:52 2018 +0200 - dispatcher: declare vars at beginning of the block in rpc command + db_mysql: added parameter unsigend_type - (cherry picked from commit c73a22abb1691e3c25b5f599e5f387540f152913) + - if set to 1, then the module converts unsigned column value to + DB1_UINT or DB1_UBIGINT -commit e4cca93ff255b391ae5c4cfedf3ccc5f0b41456c +commit 239079819d148ac41af802a8a28929a3fff0e56b Author: Daniel-Constantin Mierla -Date: Fri May 4 14:18:11 2018 +0200 +Date: Mon Oct 1 08:34:21 2018 +0200 - core: rpc dns.view returns an array of records - - (cherry picked from commit 648dd937831654d40a9d615319693b87db31ef94) + registrar: coherent code formatting -commit 75e29b91ebb54fc5ad3ce5ccbdc9230cf2b4f11d -Author: surendratiwari3 -Date: Fri May 4 09:33:36 2018 +0530 +commit 202f4b1aeca9e8d40b8791d6de3205fa643ff9a8 +Author: Daniel-Constantin Mierla +Date: Mon Oct 1 08:31:29 2018 +0200 - Module: htable:: event_callback_mode to int - - (cherry picked from commit 896c5e1c76e6836bedaf66f9b832020a0d70c04b) + lib/srdb1: cast types to get rid of compile warnings -commit 1295aadf9055be1542b4436d84fd7595ca616f1c +commit 7c64387ab0694c9be9f502c3bca017b0235c7716 Author: Daniel-Constantin Mierla -Date: Thu May 3 21:19:59 2018 +0200 +Date: Mon Oct 1 08:28:38 2018 +0200 - htable: docs for event_callback_mode parameter - - (cherry picked from commit e72a41906da417cedb81ef8216c3c084fbb4902d) + lib/srdb1: handle DB1_UINT and DB1_UBIGINT for db version check -commit 89a91f11f5bdb87d91f5b2003ef7bfe15329c9e7 +commit feaafdb268001680fce461b62c3e81636667eb8e Author: Daniel-Constantin Mierla -Date: Thu May 3 21:10:12 2018 +0200 +Date: Sun Sep 30 21:51:41 2018 +0200 - htable: added parameter event_callback_mode - - - control when event_route[htable:init] is executed: 0 - after all - modules were initialized; 1 - in first worker process; (default 0) - - fixes use with kemi framework by using value 1, because after module - initialization the kemi framework is not ready, being set up per child - process - - reported by GH #1519 + core: test if a module exports functions before converting to core struct - (cherry picked from commit 1b8ab8458806106a51de26afd06be5e3a15188b0) + - reported by Juha Heinanen -commit 981fd4dc2ca4ef49544385b1b82b0dce57a673a0 +commit 727aef1f1e347857a46c54b0a3b922cc5f65106c Author: Daniel-Constantin Mierla -Date: Thu May 3 20:47:37 2018 +0200 +Date: Sun Sep 30 08:26:00 2018 +0200 - core: dns - print index and remove per record type printing added previously - - - type is already printed at the top of the structure - - (cherry picked from commit 6285b5ebe02d39bf77baa8f29d16de246dc1ad77) + db_unixodbc: removed history and svn id -commit 4b174a25e895545e4e101b23ad4d6cd4b399f38f -Author: Daniel-Constantin Mierla -Date: Thu May 3 14:39:10 2018 +0200 +commit bf5be06f9b6b3ec6ad68c57f4075af5ba3aa23c4 +Author: Kamailio Dev +Date: Sat Sep 29 09:01:41 2018 +0200 - core: print rr type for rpc dns.view - - (cherry picked from commit b72e0b6984e87b42f0a578a6b220a28a80e67737) + modules: readme files regenerated - tls ... [skip ci] -commit b30e500576ba1e4e31b530c5bee6369c7d37f336 +commit ee8c58e727261ea66096950b3f5bb1a0e7d73646 Author: Daniel-Constantin Mierla -Date: Wed May 2 08:18:40 2018 +0200 +Date: Sat Sep 29 08:54:39 2018 +0200 - usrloc: removed useless set of db type for expire column - - (cherry picked from commit 943724e62c2b3bb98a37d9f496cc6c76ecb976cb) + tls: docs about using db table with kamcli -commit e0c84fcd3159ed81d66461c9b14f3859069fc773 -Author: Konstantin Poliakov -Date: Wed May 2 08:15:39 2018 +0200 +commit 6daafa0c83a55db4064e3f816d224283f5c0c563 +Author: Richard Fuchs +Date: Fri Sep 28 17:42:11 2018 -0400 - usrloc: use UL_DB_EXPIRES_SET() inside get_all_db_ucontacts() - - - fix matching date field for some backends, such as mongodb, as well as - obey ul_expires_type value - - (cherry picked from commit 944dc1dc1e6261a3c179ff11bf3531e379eb9f35) + db_redis: fix reconnection failure bug -commit d75068d2ecd12189c0cc238ed0737856a4e34d73 -Author: Konstantin Poliakov -Date: Mon Apr 30 23:57:19 2018 +0300 +commit 57f87fcb3a973735681dba5c9e9484c5664db3aa +Author: Charles Chance +Date: Fri Sep 28 19:09:28 2018 +0200 - nathelper: moved var declaration into the begining of function. - - (cherry picked from commit 2fb84e5e101b61bbaedc18d8b37188cbc6b1cee8) + htable: added startup synchronization over dmq -commit c5df8556f2c4189c01e4ddf3f9a1309916750286 -Author: Konstantin Poliakov -Date: Sun Apr 29 21:07:19 2018 +0300 +commit eed07762bee58f2fb8053d99865313fcbdd8b140 +Author: Daniel-Constantin Mierla +Date: Fri Sep 28 18:30:51 2018 +0200 - nathelper: it doesn't ping contacts if ping_nated_only=0 - - - nathelper sends ping only if nat flag is specified, but if ping_nated_only=0 it should ping all contact in any case. - - (cherry picked from commit b34cf58a3a88e5ed2b2aa6aa9e5df0e5bb1808f9) + db_flatstore: handle DB1_UINT and DB1_UBIGINT DB APIv1 types -commit cefd474c13756b2a37b5969620ab8c0153fa9ed8 -Author: Daniel-Constantin Mierla -Date: Fri Apr 27 08:56:32 2018 +0200 +commit 17c14a966ff3ba67ce858dfe424d7cdf5100d4fa +Author: lazedo +Date: Thu Sep 27 13:10:18 2018 +0100 - cfgutils: update route_if_exists() to have same behaviour as route() - - - do not run the route block as a top route - - related to GH #1503 - - (cherry picked from commit 9670bd80550b9e0c2af1d5d61df618292346ba28) + nathelper: fix call to alter_mediaip -commit 03dd59249d17c55c749d4a4e806843f7f407e4ea +commit ee548d8c5c0e5dc0be09edcacac70a33e205b693 Author: Henning Westerholt -Date: Mon May 7 09:36:53 2018 +0200 +Date: Fri Sep 28 15:18:39 2018 +0200 - core: improve to header check guards, str consists of length and pointer - - (cherry picked from commit 281a6c6b6eaaf30058b603325e8ded20b99e1456) + db_mysql: add support for unsigned integers in INT and BIGINT DB1 API -commit f0dce0c9992929b57bc1a9161af73e3692119926 -Author: Carsten Bock -Date: Thu Apr 26 11:38:44 2018 +0200 +commit c66bb0b5594def785edab0fe9a8101f1c126fdb1 +Author: Daniel-Constantin Mierla +Date: Fri Sep 28 15:22:03 2018 +0200 - ims_charging: Use the "custom_user_avp" also in other places, where the user is retrieved (aligning request with the docs) + db_redis: handle DB1_UINT and DB1_UBIGINT DB APIv1 types -commit f0fbe297a47c658b63623b2c5912cdf379b3f7fd +commit fd023a9d4408ed9138e25b3bebf91f4ccccd6599 Author: Daniel-Constantin Mierla -Date: Wed Apr 25 14:43:42 2018 +0200 +Date: Fri Sep 28 15:04:31 2018 +0200 - db_mongodb: clone bson UTF8 value into DB val structure - - - the bson iterator invalidates or reuses the memory after several interations - - initial patch by Konstantin Poliakov , GH #1508 - - (cherry picked from commit 1ef70d68599db092fa71b9b8b7cd3fdcd54f8a99) + db_mongodb: handle DB1_UINT and DB1_UBIGINT DB APIv1 types -commit 7fdace3485a20de08ffc99a090987b81ac9a9e10 -Author: Daniel-Constantin Mierla -Date: Wed Apr 25 14:08:00 2018 +0200 - - tls: condition on libressl version for declaring BIO data functions - - - it is required only for LIBRESSL_VERSION_NUMBER < 0x20700000L - - fixes compilation on Alpine linux - - part of GH #1511 - - (cherry picked from commit cffd8bd88f140487db8149184e15e08ff3d71f44) +commit 2f2761e47f38f704f213349c254823f9df6a9698 +Author: Victor Seva +Date: Fri Sep 28 14:49:31 2018 +0200 + http_async_client: fix module export -===================== 2018-04-24 Version 5.1.3 Released ================== +commit ecb8ab2d71b7f427583179f5d4fac83c0ba738a2 +Merge: 8b66dcb32 474fa9dff +Author: Federico Cabiddu +Date: Fri Sep 28 14:45:47 2018 +0200 -===================== Changes Since Version 5.1.2 =========================== + Merge pull request #1654 from grumvalski/non_blocking_async_socket + + Non blocking async socket -commit 5f5f7fd506bbde1ac159cbebf133e499dc06427a (HEAD -> 5.1) -Author: lyokha -Date: Tue Apr 24 14:46:32 2018 +0200 +commit 8b66dcb321f7ea16a5a7a6d776706a8ce428e0f7 +Author: Victor Seva +Date: Fri Sep 28 14:41:51 2018 +0200 - textops: reinitialize new tr_param_t object for tr_txt_parse_re() + topos_redis: fix module export - - avoid segfault when running fparam_free_restore() on - such an object immediately after creation, because its field "next" - contains garbage +commit 71299f04850e52835fa59872403b541448a18145 +Author: Victor Seva +Date: Thu Sep 27 15:32:31 2018 +0200 - (cherry picked from commit 38b8fbdf940b273cf541678fd22af7dd4d63ab3d) + utils: fix format truncation warning + + > conf.c: In function 'update_filter': + > conf.c:211:31: warning: ':' directive output may be truncated writing 1 byte into a region of size between 0 and 1000 [-Wformat-truncation=] + > snprintf(buf, BUFSIZE, "%s:%s", tmp, token); + > ^ + > conf.c:211:5: note: 'snprintf' output 2 or more bytes (assuming 1002) into a destination of size 1000 + > snprintf(buf, BUFSIZE, "%s:%s", tmp, token); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -commit f300f27140ba7fc313850fb2d70a9fbfc3064801 -Author: Daniel-Constantin Mierla -Date: Tue Apr 24 12:41:48 2018 +0200 +commit 93ff141ba43fde74dff0440273da54e939125b05 +Author: Victor Seva +Date: Thu Sep 27 14:39:45 2018 +0200 - Makefile.defs: version set to 5.1.3 + ims_registrar_scscf: use memcpy() instead of strncpy() + + > common.c: In function 'extract_aor': + > common.c:88:2: warning: 'strncpy' output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(_a->s, "sip:", 4); + > ^~~~~~~~~~~~~~~~~~~~~~~~~ -commit e1fd2ed4bfdc2704f1c89f1b64d852599c0b6726 -Author: yuri-r -Date: Tue Apr 24 06:39:07 2018 -0400 +commit 1062d636fe3a5b79b0ee789e36fd205ea4b87fb3 +Author: Victor Seva +Date: Thu Sep 27 14:34:41 2018 +0200 + + presence:use memcpy() instead of strncpy() + + > subscribe.c: In function 'send_2XX_reply': + > subscribe.c:74:2: warning: 'strncpy' output truncated before terminating nul copying 9 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(hdr_append.s, "Expires: ", 9); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:77:2: warning: 'strncpy' output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s, CRLF, CRLF_LEN); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:79:2: warning: 'strncpy' output truncated before terminating nul copying 10 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s, "Contact: <", 10); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:90:5: warning: 'strncpy' output truncated before terminating nul copying 14 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s, ";transport=tcp", 14); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:95:5: warning: 'strncpy' output truncated before terminating nul copying 14 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s, ";transport=tls", 14); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:100:5: warning: 'strncpy' output truncated before terminating nul copying 15 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s, ";transport=sctp", 15); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:105:5: warning: 'strncpy' output truncated before terminating nul copying 13 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s, ";transport=ws", 13); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > subscribe.c:116:2: warning: 'strncpy' output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(tmp.s+1, CRLF, CRLF_LEN); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + > In file included from subscribe.c:39: + > utils_func.h: In function 'ps_fill_local_contact': + > utils_func.h:142:3: warning: 'strncpy' output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(p, "sip:", 4); + > ^~~~~~~~~~~~~~~~~~~~~ + +commit b81068ebbbde47196ab2f181e849154cc7877969 +Author: Victor Seva +Date: Thu Sep 27 14:28:18 2018 +0200 - ims_charging: fixed check result code at mscc level (#1504) - - * ims_charging: fixed check result code at mscc level - - according to RFC 4006 the Result-Code in Multiple-Services-Credit-Control AVP is optional. - resume_on_initial_ccr() stops proceeding CCA if no Result-Code in MSCC and goes to error1 even though - the Result-Code on CCR itself is 2001 (SUCCESSFUL) + mohqueue: use memcpy() instead of strncpy() - * ims_charging: fixed check result code at mscc level + > mohq_funcs.c: In function 'notify_msg': + > mohq_funcs.c:1475:3: warning: 'strncpy' output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation] + > strncpy (&pbody->s [pbody->len], SIPEOL, 2); + +commit a8eed67b8076fd931ffa74691d3275f4003c3021 +Author: Victor Seva +Date: Thu Sep 27 14:22:08 2018 +0200 + + imc: use memcpy() instead of strncpy() - according to RFC 4006 the Result-Code in Multiple-Services-Credit-Control AVP is optional. - resume_on_initial_ccr() stops proceeding CCA if no Result-Code in MSCC and goes to error1 even though - the Result-Code on CCR itself is 2001 (SUCCESSFUL) + > imc_cmd.c: In function 'imc_handle_list': + > imc_cmd.c:810:2: warning: 'strncpy' output truncated before terminating nul copying 9 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(p, "Members:\n", 9); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~~ + +commit 127c8cb4bbf3047c7222be7ff0fb202765dd6db1 +Author: Victor Seva +Date: Thu Sep 27 13:37:16 2018 +0200 + + dmq: use memcpy() instead of strncpy() - (cherry picked from commit 352440d299f1b9f431cc05397f4ea6a7b5967c8a) + > notification_peer.c: In function 'create_IP_uri': + > notification_peer.c:100:3: warning: 'strncpy' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(plist, "sips:", 5); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~ + > notification_peer.c:103:3: warning: 'strncpy' output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation] + > strncpy(plist, "sip:", 4); + > ^~~~~~~~~~~~~~~~~~~~~~~~~ -commit 314aa22404647dc5619bc66f9f415a0bb405e14e -Author: Daniel-Constantin Mierla -Date: Tue Apr 24 12:36:20 2018 +0200 +commit fea91f05261555994cbeeb1acfaf2232324a39bf +Author: Mikko Lehto +Date: Fri Jun 8 12:29:37 2018 +0300 - pkg/rpm: version set to 5.1.3 + sdpops: fetch and manipulate origin line sess-version through pseudo-variable -commit db8fa7d50cc420c0def4e56e1e1d85db33065cc8 -Author: Daniel-Constantin Mierla -Date: Tue Apr 24 12:35:41 2018 +0200 +commit e1a5b5cefc18f194256ddd5790e11cde7447387e +Author: Mikko Lehto +Date: Fri Jun 8 12:28:39 2018 +0300 - pkg/alpine: version set to 5.1.3 + core: parse SDP origin line sess-version field -commit 39b73a0f765f189219e06eafc0e041da20ca0688 +commit 474fa9dffd60058cfaad8362d96f0d65ed5f828b +Author: grumvalski +Date: Thu Sep 27 13:54:01 2018 +0200 + + async,db_mysql,db_unixodbc: return -1 and free memory if sending task to the async worker fails + +commit f24ea7d3a5482b4e74e0bd682e2f10cca06e615e +Author: grumvalski +Date: Tue Nov 14 09:45:00 2017 +0100 + + core: new parameter async_nonblock + +commit 7f0fb0e3ced01bc7cb496d75d130ab6b357d613b Author: Victor Seva -Date: Tue Apr 24 10:35:55 2018 +0200 +Date: Fri Sep 28 14:23:20 2018 +0200 - pkg/kamailio/deb: version 5.1.3 + topos_redis: fix compilation on precise -commit b422e257333b403e88ac16c714662fd11e2de938 -Author: Daniel-Constantin Mierla -Date: Tue Apr 17 08:58:03 2018 +0200 +commit 86f2be8ff9254aa18853f29cedd69147d9fcf110 +Author: Victor Seva +Date: Fri Sep 28 14:22:59 2018 +0200 - drouting: docs - added several section ids - - (cherry picked from commit c5764f003c8f425c881cda7dc73ee5eab0e71825) + ndb_redis: fix compilation on precise -commit 5bbb6a41467575a1ccfdb3a103d1d8f8f14be6d9 -Author: Daniel-Constantin Mierla -Date: Mon Apr 16 19:30:09 2018 +0200 +commit df3bd3b9740dfb3992bc376b190c8dec69559c9f +Author: Victor Seva +Date: Fri Sep 28 14:22:08 2018 +0200 - counters: docs - format section ids - - (cherry picked from commit 4bab8e5587f59132afb21e29c5a08e71df3c6f8b) + db_redis: fix compilation on precise -commit b89f643e12ac6359b4ffd9c173fee4870992b31a -Author: Dmitri Savolainen -Date: Mon Apr 16 19:43:50 2018 +0300 +commit 723f761682a962370f5e5c5e61a069818e0ce1f0 +Author: Markus Bönke +Date: Fri Sep 28 12:09:38 2018 +0200 - dialog: typo fix for DLG_IFLAG_DMQ_SYNC flag value - - (cherry picked from commit ad427fc19c56110f66df86b7b49e23c00313610a) + outbound: updated mod_interface -commit ffa97a1b920df367e23f88cd6c6a4bdb9401fec4 -Author: Dmitri Savolainen -Date: Mon Apr 16 19:32:05 2018 +0300 +commit c8fe00ec04632f0cf11c3f8acdbdeca7caa514ea +Author: Markus Bönke +Date: Fri Sep 28 12:08:55 2018 +0200 - dialog: restore keep-alive after restart - - (cherry picked from commit a821ff61029a4e8a9f220d60f95bd7b5a545f9b4) + ndb_mongodb: updated mod_interface -commit 7b35a9e194b51ec9b2b5a2a70bedce4ae6af5a33 -Author: Daniel-Constantin Mierla -Date: Sat Apr 14 12:14:37 2018 +0200 +commit ee69bda9c1bfa9ec5452f5ac91861c79d94fdf39 +Author: Markus Bönke +Date: Fri Sep 28 12:08:06 2018 +0200 - lcr: docs - added many section ids - - (cherry picked from commit 681a104eeed6982d17b15701491bdff35662bf82) + mtree: updated mod_interface: -commit 11ee34a0edca1eaf942fdf9825f1a75c3f2f5648 -Author: Victor Seva -Date: Fri Apr 13 10:25:17 2018 +0200 +commit 1407b682d2080dfb8791b54deef448aaa2ffe43e +Author: Markus Bönke +Date: Fri Sep 28 12:07:22 2018 +0200 - ndb_mongodb: fix deprecation warning - - Since 1.5.0 mongoc_collection_find() is deprecated - > http://mongoc.org/libmongoc/1.5.0/mongoc_collection_find.html - - (cherry picked from commit c70d831aee5a95613de69568d8f1863788e0a074) + ipops: updated mod_interface -commit 0ca60d730a6c4a81706940190aa9da859e7798e3 -Author: Daniel-Constantin Mierla -Date: Fri Apr 13 08:23:18 2018 +0200 +commit 3661bccf26748e3ebd0328f68d180b55be06e465 +Author: Markus Bönke +Date: Fri Sep 28 12:05:24 2018 +0200 - nat_traversal: use the new function names for basic timer processes - - (cherry picked from commit 3d9dffd4b01fb1486d64824f971dbb1be112cdb6) + ims_usrloc_pcscf: updated mod_interface -commit f9e0bc365c60cada649fc3e6b7d9054b19266230 -Author: Daniel-Constantin Mierla -Date: Thu Apr 12 14:51:15 2018 +0200 +commit 7628bcac405493c2061fece26f5751d2cd6c75c1 +Author: Markus Bönke +Date: Fri Sep 28 12:04:36 2018 +0200 - topos: reuse uuid for requests withing dialog - - - related to GH #1496 - - (cherry picked from commit 63e5a1f6d3f801136180bf2cb8a042d8af779f65) + ims_ipsec_pcscf: updated mod_interface -commit 1eea8119c3dc5478f1e8974bd7cccabcfd532a7d -Author: Daniel-Constantin Mierla -Date: Sun Apr 8 09:45:06 2018 +0200 +commit 0ac7ec353979f304ba5bb2b4e6760c673b4f4d11 +Author: Markus Bönke +Date: Fri Sep 28 12:03:40 2018 +0200 - dialog: added missing documentation for end_timeout parameter - - (cherry picked from commit 65df297db29192b2214a737208518db5cc7bff84) + db_unixodbc: updated mod_interface -commit e4dc6ccbc9b9e63ea4300098952cd7b0e4c3b881 -Author: Claudiu Boriga -Date: Thu Apr 5 15:29:37 2018 +0300 +commit a0834e4944f7be610198b85fb349f0ac84063540 +Author: Markus Bönke +Date: Fri Sep 28 12:02:20 2018 +0200 - rtpengine: Add description for metadata flag - - (cherry picked from commit 1e712ed93aef8ab96ee7a9760f89ebc0fd02caff) + db_sqlite: updated mod_interfacee -commit c9f6db1bfeb0381a76a30f1df38f538a5bc1cc04 -Author: Daniel-Constantin Mierla -Date: Tue Apr 3 09:27:19 2018 +0200 +commit c852e19bfe33fb52d8f63255bee4ee5947a3b2d3 +Author: Markus Bönke +Date: Fri Sep 28 12:01:14 2018 +0200 - ipops: mask subnet address for ipv6 comparison - - - coherent with ipv4 behaviour - - (cherry picked from commit a5dd60c8d7e04731f12108838a3c82149e04ef9c) + db_berkeley: update mod_interface + +commit 47e00f6fdbaa8dfeaee36b0e984838ec23a6f6f0 +Author: Markus Bönke +Date: Fri Sep 28 11:52:47 2018 +0200 + + app_mono: updated mod_interface + +commit ea18f3d6fa442aafb2b1f0219361292873768d8e +Author: Markus Bönke +Date: Fri Sep 28 11:50:33 2018 +0200 + + app_lua: update mod_interface + +commit e896048896967c6f817bc2fc06e4d2898f37bc76 +Author: Markus Bönke +Date: Fri Sep 28 11:49:08 2018 +0200 -commit 055bbcddbc072545f32698ebeeb15c63e1eabab8 + alias_db: update mod_interface + +commit 8f98b5ac8ce91dcba7ca33a5ad648826a2e528e6 Author: Daniel-Constantin Mierla -Date: Tue Apr 3 09:24:11 2018 +0200 +Date: Fri Sep 28 12:02:20 2018 +0200 - ipops: use proper variable for ipv6 subnet comparison - - (cherry picked from commit 162c304d1264044ac1a46a379b75bafb4c91bcfd) + registrar: updated to the new mod interface -commit d7c1754c57443b81925ffb6e09a7e3f56d97e58a +commit 75e3ce594df5e155140864529797e7ae529fc5d7 Author: Daniel-Constantin Mierla -Date: Tue Apr 3 09:11:37 2018 +0200 +Date: Fri Sep 28 11:37:25 2018 +0200 - ipops: mask subnet address when comparing - - - allow using full ip address when specifying subnet parameter - - more flexibility on using values from sip message - - GH #1250 - - (cherry picked from commit 1f675c68b3ed2b2e0a497fecd942c9213f0de058) + log_custom: fixed typo in destroy function name for mod exports -commit 300c0f4d026157728e9c0d5152a070b970bdef2f +commit 9de732266bd115cb52a5e4d786b22f91c5caec21 Author: Daniel-Constantin Mierla -Date: Mon Apr 2 08:46:09 2018 +0200 +Date: Fri Sep 28 11:35:27 2018 +0200 - topos: skip local generated request not part of a dialog - - (cherry picked from commit 6d2312b8b0913f2f48e0f951c9578924e1d14f1d) + topoh: removed unused stats field in mod exports -commit 43819d7d5acd4be0f2615e523c8f17a260cbf367 +commit 472e902d9e7bfd5a147743bf1df2d462a419adba Author: Daniel-Constantin Mierla -Date: Fri Mar 30 17:15:26 2018 +0200 +Date: Fri Sep 28 11:32:31 2018 +0200 - sqlops: proper function prototypes for kemi exports to get num rows and cols - - (cherry picked from commit 684f98ace6ec50d5c52b8f6e14fe184079a6206f) + app_jsdt: updated to the new mod interface -commit 1fd326b2d4ff0480b24f993f66c376b6576197ce +commit c3ef2e983755cda002363b56269728d52b496b97 Author: Daniel-Constantin Mierla -Date: Fri Mar 30 13:32:01 2018 +0200 +Date: Fri Sep 28 11:26:29 2018 +0200 - dispatcher: fixed kemi exports param types - - (cherry picked from commit 1d1eeafc88979df41e2dcb6f2c8b41d16695fd7d) + db_mysql: updated to the new mod interface -commit a0f8f33c5197b4fee5c2dedc85abbdb9e836b152 +commit fc3269f5c30f7f55d9503136feda083601677d8c Author: Daniel-Constantin Mierla -Date: Fri Mar 30 13:15:48 2018 +0200 +Date: Fri Sep 28 11:21:20 2018 +0200 - app_lua: test if number of parameters is enough for kemi funtions - - (cherry picked from commit cc661d776621a5f2d4370eb364402c2a53242cc7) + db_perlvdb: updated to the new mod interface -commit 0abe8f957e6c1242ab0962be8b66be976197494c -Author: Guillaume Bour -Date: Tue Mar 27 21:56:49 2018 +0200 +commit bccfec30703a2526f899d0cc422c87778afaab85 +Author: Daniel-Constantin Mierla +Date: Fri Sep 28 11:17:43 2018 +0200 - keepalive: cleanup rpc output (#1476) - - (cherry picked from commit b8a75c1c4fda079515606eb59273945842aff1be) + db_postgres: updated to the new mod interface -commit 9be00ceba0d814f6ad973279fc386d60b5c8e9ac +commit 097940c77f9e527e79feed64edf37162d76cb8ab Author: Daniel-Constantin Mierla -Date: Sun Mar 25 06:34:49 2018 +0200 +Date: Fri Sep 28 11:07:32 2018 +0200 - dialog: skip printing profiles and vars in terminated state for rpc dialog list - - - they can be delelted at that point, not being referenced by the same - field - - (cherry picked from commit 8bc037bc87ced907b8b2e59a2c5fcb45291836fd) + p_usrloc: updated to the new mod interface -commit 742f4924eb515d6b481b8295fb611e723619ebe0 -Author: Henning Westerholt -Date: Fri Mar 23 21:49:17 2018 +0100 +commit b2033ecebca0d06462bcb9c935ced675a13de551 +Author: Federico Cabiddu +Date: Fri Sep 28 11:21:06 2018 +0200 - nathelper: Support for 192.0.0.0/29 as NATed source (pull request GH#1488) - - (cherry picked from commit 804d6b85bdbe55b32edacdbd895b0ad763bf619f) + db_oracle: converted to the new module interface -commit 4b9a95275c9f0b445f19b02ee60eec479d3c2fb9 -Author: Henning Westerholt -Date: Fri Mar 23 21:48:55 2018 +0100 +commit 0598da70fb37f8007797a2adfe7fb4a832f6fd02 +Author: Charles Chance +Date: Fri Sep 28 11:18:32 2018 +0200 - nat_traversal: Support for 192.0.0.0/29 as NATed source (pull request GH#1488) - - (cherry picked from commit 32f1671bee21d5f8d52b5febf50ddc7b26f6919a) + db_mongodb: updated to new module interface format -commit 7153e802288112658c6012488867596aba6232ac -Author: Henning Westerholt -Date: Fri Mar 23 21:43:11 2018 +0100 +commit 28b228826bebeb5751a0450da785c23f0a2650a7 +Author: Charles Chance +Date: Fri Sep 28 11:16:08 2018 +0200 - ipops: Support for 192.0.0.0/29 as NATed source (pull request GH#1488) - - (cherry picked from commit 3848b5286b74894ed162e1aae8c80ee3d703c21f) + db_flatstore: updated to new module interface format -commit e4f1a229068e0cd774a32b4db4431aac6fbf5555 -Author: Daniel-Constantin Mierla -Date: Sat Mar 24 04:19:27 2018 +0100 +commit 8fdc4da6f253700caec14b11349a44a5aee2d233 +Author: Federico Cabiddu +Date: Fri Sep 28 11:11:59 2018 +0200 - jsonrpcs: example accessing the jsonrpc response for jsonrpc_exec() - - (cherry picked from commit 0fcac52fc9e6445f986c9a5a9ee1b5230030035b) + dialog: converted to the new module interface -commit 19b23dac012b17d783f8db1f0b43a28abc7fd3fb -Author: Daniel-Constantin Mierla -Date: Fri Mar 23 08:17:31 2018 +0100 +commit 5cad9b0c15761a5a5d5a36c8b07a79f5970ec968 +Author: Victor Seva +Date: Fri Sep 28 11:10:45 2018 +0200 - rr: docs - added section ids - - (cherry picked from commit 7907cd15b5aacef8990e50dc19055a4e9b8e4359) + db_redis: updated to the new mod interface -commit 4fb73546fd94f43e48de03025260639418064fe5 -Author: Daniel-Constantin Mierla -Date: Wed Mar 21 14:59:00 2018 +0100 +commit 95d62cc6696cc83e038a63786e872bbe9cfd10cf +Author: Victor Seva +Date: Fri Sep 28 11:09:15 2018 +0200 - phonenum: docs - updated pv names to match c code - - (cherry picked from commit 70a61e0bfa0640fbba8d6cfe57f6ad4c6a431b84) + db_text: updated to the new mod interface -commit 1b571a66a48794e69593227f19d44f0f4a849f6c -Author: Daniel-Constantin Mierla -Date: Wed Mar 21 14:49:26 2018 +0100 +commit d34188b3676c2bd75a92b83b1854a36266abf405 +Author: Mikko Lehto +Date: Fri Sep 28 12:05:39 2018 +0300 - phonenum: build cctel from formatted number - - (cherry picked from commit 54c6a03704767a3dc15eb633ce1628e93c99a8ff) + dialplan: converted to the new module interface -commit 2a7fbdea7516896fb06b351caece3f6c37c684cb -Author: Daniel-Constantin Mierla -Date: Wed Mar 21 14:48:58 2018 +0100 +commit b2fae6d72c716162b348003fb4f871c5c760494d +Author: Victor Seva +Date: Fri Sep 28 11:07:17 2018 +0200 - phonenum: fixed lenght in pv name comparisons - - (cherry picked from commit 2196c677785fc4df4f4f1c03831eff679dcd5363) + debugger: updated to the new mod interface -commit 760aee932aafc7f4c0207c10aabb5a094fd975dd -Author: Daniel-Constantin Mierla -Date: Tue Mar 20 16:48:26 2018 +0100 +commit 9b247d5ce6d5851f86f946624287567fd7b86f9b +Author: Charles Chance +Date: Fri Sep 28 11:04:44 2018 +0200 - core: check for result of dlopen() pointers - - (cherry picked from commit a3d9816d3881eb9743a14cb1306533469a821d47) + db_cluster: updated to new module interface format -commit c459054927fd0c805d7d090c363660094ef30f63 -Author: Daniel-Constantin Mierla -Date: Sun Mar 18 11:04:55 2018 +0100 +commit 987b7ef8fbc3ce189b7770a1be6781153f00109c +Author: Charles Chance +Date: Fri Sep 28 11:01:56 2018 +0200 - uri_db: updated database name in docs - - (cherry picked from commit ae1367bf3a6706b9db742ff6e20e6d11f79d5b02) + db_cassandra: updated to new module interface format -commit 87fb715ff3a0d687aefba01567f08e54e87fe897 -Author: Daniel-Constantin Mierla -Date: Sun Mar 18 11:04:29 2018 +0100 +commit 9a25c5a411e54107e0486880ff0a233886f27ade +Author: Charles Chance +Date: Fri Sep 28 10:55:16 2018 +0200 - speeddial: updates to db url example - - (cherry picked from commit ea18525e27120943204a75470855a35fbc8cc46a) + diversion: updated to new module interface format -commit e160730c2b6d2ec69ece0ac5d560d0ef35447491 -Author: Daniel-Constantin Mierla -Date: Sun Mar 18 11:03:58 2018 +0100 +commit 2cdecbd44f89ceedf2013fe4ad71de4839ec9fbb +Author: Charles Chance +Date: Fri Sep 28 10:50:15 2018 +0200 - rtpproxy: small updates to example cfg - - (cherry picked from commit 6162a74ad858c6a7421f461cd1483cc8d69c12c1) + rabbitmq: updated to new module interface format -commit 70dc29bffaa92d06edb84891f9e548bc8c86ab99 -Author: Daniel-Constantin Mierla -Date: Sun Mar 18 11:03:37 2018 +0100 +commit 997c867373419e2ff8c07b021b41212797fcf12a +Author: Charles Chance +Date: Fri Sep 28 10:48:34 2018 +0200 - p_usrloc: updated path to db scripts in docs - - (cherry picked from commit a8827449e4c3c43e3f25abb7f5b27b2e1d1ab1b7) + pua_xmpp: updated to new module interface format -commit d6aabb749d1be55ae2f2b4c6584024244f541edc -Author: Daniel-Constantin Mierla -Date: Sun Mar 18 11:03:06 2018 +0100 +commit 35521e59e691c728b8fa4f4c06ccf9fce99904a8 +Author: Charles Chance +Date: Fri Sep 28 10:47:27 2018 +0200 - cnxcc: updated application name in example - - (cherry picked from commit bb0940fd01a0188bc82d0608ac054fec5715ac56) + pua_usrloc: updated to new module interface format -commit fff68b42d62f9e5d1ef28f06a1f84e493c50280b -Author: Daniel-Constantin Mierla -Date: Sun Mar 18 11:02:36 2018 +0100 +commit fec533be272e8ebd1de2ec0ee86daa8e380a6571 +Author: Charles Chance +Date: Fri Sep 28 10:45:44 2018 +0200 - auth_diameter: updated application name - - (cherry picked from commit 7228a9e413f7d51411961b8ece7281ecf597a9e2) + pua_rpc: updated to new module interface format -commit a76ee50d96b7a713065c8e823ea8b4dafd9a53aa -Author: Daniel-Constantin Mierla -Date: Sat Mar 17 08:36:53 2018 +0100 +commit 8a91bf39a1924ed9758db3c5bb4027f2d4fd4587 +Author: Charles Chance +Date: Fri Sep 28 10:39:11 2018 +0200 - tm: removed inline for exported functions to config - - - they are assigned to a structure field, cannot be optimized for inline - execution, avoid warnings in static analysis - - (cherry picked from commit 04d5a6a0ee8c230423b7bc7be0afe5d568fe8555) + pua_reginfo: updated to new module interface format -commit 3e7d1a914769a96373cb2d003acb05f821fb9090 -Author: Daniel-Constantin Mierla -Date: Thu Mar 15 08:55:22 2018 +0100 +commit 8e8a103f9861e71716740845b8a2a154d52fd15b +Author: Charles Chance +Date: Fri Sep 28 10:38:02 2018 +0200 - etc/kamailio.cfg: do not relay to foreign network if auth is not enabled - - - anyone can use a local account and flood external systems - - (cherry picked from commit 41f41d6d2850cdd5ab1a1b5d55bbb7ebd697ff7a) + pua_json: updated to new module interface format -commit 95db7165963d12ba8660bb947910146f432fa86f -Author: Daniel-Constantin Mierla -Date: Fri Mar 16 15:12:29 2018 +0100 +commit af2c3c0cd29953a660d713574000bd1def121662 +Author: Charles Chance +Date: Fri Sep 28 10:32:17 2018 +0200 - dispatcher: exported more functions to kemi interface - - (cherry picked from commit 55ed25e1413c2fa5340138b7703c73db1df967de) + pua_dialoginfo: updated to new module interface format -commit c9693c18aeed8efc36905702221cd466bedcb9df -Author: Henning Westerholt -Date: Thu Apr 12 21:30:26 2018 +0200 +commit 7633f3b2ff82b317aee9f100d12ed4594ec39c83 +Author: Charles Chance +Date: Fri Sep 28 10:30:07 2018 +0200 - msilo: remove not working tm parameter in the example cfg, reported from Abdul Basit - - - remove the not working, too small tm parameter in the example cfg - - has been not changed in the last 10 years, probably not valid anymore - - reported from Abdul Basit on sr-users - - (cherry picked from commit 22b13d4d44cb0dbd71b87deab42af5f7c8ea932f) - -commit 6770fe866dc6ed301b536a6132dc50e9844e720e -Author: Lucian Balaceanu -Date: Wed Apr 4 10:52:56 2018 +0300 - - carrierroute: fixed duplicate options definition error when parsing src file - - - added logic to reset_prefix_opts to reset all target_options fields (including "visited") - - (cherry picked from commit dc8faaf57a9c85b7133f112bdedd328a9520eb73) - -commit ff5a879bb52bd2537735b453d0d5655dc837dcc3 -Author: Daniel-Constantin Mierla -Date: Fri Mar 23 08:33:09 2018 +0100 - - evrexec: use route_get() in modparam callback - - - routing blocks might not have been parsed yet - - (cherry picked from commit d2479c96891db6656dbe880c6600d18f5fa38e33) - -commit f44a02672d6937deafda21f99a912fe55a3d96d6 -Author: sergey-safarov -Date: Tue Mar 20 21:20:11 2018 +0300 - - textops: Fixed remove_hf_exp arguments params (#1485) - - (cherry picked from commit f3cfb4910ae0fd197757d2ec2362b9715205e21e) - -commit 5df0d505d220addf43f459b29cc80f9aecef19dc -Author: Daniel-Constantin Mierla -Date: Wed Mar 14 11:15:51 2018 +0100 - - auth_ephemeral: do pkg-config for libcrypto if exists - - - discover all the libs to link against - - related to GH #1473 - - (cherry picked from commit 021e7e53585f78b56356c98f25bd731c51f96f9a) - -commit 3994fcd94e1d3291f4d14083f12b85a3b11ca148 -Author: Daniel-Constantin Mierla -Date: Wed Mar 14 10:01:43 2018 +0100 - - misc/examples/kemi: enable lua script reload in example config - - (cherry picked from commit e129965129b2377970a28fabd26b3be9b483c81b) - -commit 2f66b1dfe12455534f94060a0f68bc3f8ac0f81d -Author: Daniel-Constantin Mierla -Date: Tue Mar 13 14:41:14 2018 +0100 - - nathelper: docs - mention UDP for SIP nat pinging contact addresses - - (cherry picked from commit 82efea41d7a01c041ea6ff85cc864cfdf2fd1ba5) - -commit 26c623ee6ffe35098c5edc109a16711cc487204a -Author: Daniel-Constantin Mierla -Date: Tue Mar 13 09:02:37 2018 +0100 - - core: small improvements to help text - - (cherry picked from commit 31e21ff23a0d8bff1f7a88a56aa4ab01d93e2cf3) - -commit 5f5f2638b50e079717952b5b279529e7647ce684 -Author: Daniel-Constantin Mierla -Date: Fri Mar 9 10:37:06 2018 +0100 - - db_mongodb: check mongo-c-driver version at least 1.5.0 to use projection - - - reported by GH #1479 - - (cherry picked from commit cdbee5a536920c4fab3ec619c8467c152d6f110a) - -commit 63c93af189e7e5db92a392e0d176e71bda64290e -Author: kelchy -Date: Fri Mar 9 07:31:22 2018 +0000 - - db_mongodb: add error logger for failed query - - (cherry picked from commit 2a5d66fda013197aa5fbe4828cc7f6e61a74a9d6) - -commit 01338702bac81a9b53d72c4415f37aa4483ce865 -Author: Olle E. Johansson -Date: Thu Mar 8 13:08:08 2018 +0100 - - app_jsdt Minor update to documentation - - (cherry picked from commit 7b0ad6b1a11687d035d4be92202ae1379f07fb20) - -commit 6275646db39c9c6b48eb4afffd1e71b89ea3e504 -Author: AntonyA -Date: Wed Mar 7 14:39:17 2018 +0800 - - core: invoke KEMI ksr_onsend_route() - - This will invoke ksr_onsend_route() unconditionally in the cfgengine. - - (cherry picked from commit 4494b60c430f5e5c6a3a3eb4c025f206a9c3a1f7) - -commit 6e2ab8089fd4d4b3ca0a23e240765474e6648b3c -Author: Daniel-Constantin Mierla -Date: Thu Mar 8 08:54:48 2018 +0100 - - kamctl: set default PID_FILE to /var/run/kamailio/kamailio.pid - - - this being now the path used by default kamailio options - - (cherry picked from commit 6abd8472b764f88c5c054becb440fda8fff47349) - -commit 20fa560da4868eb454c064baad397975d25c4098 -Author: Daniel-Constantin Mierla -Date: Wed Mar 7 22:29:12 2018 +0100 - - async: docs - some improvements to examples - - (cherry picked from commit 15731d40ff1af78bf568d19bdbe4704d35931afd) - -commit 63aca341454d29c5820a3cbd055fc19ad0c2e5d4 -Author: Daniel-Constantin Mierla -Date: Tue Mar 6 23:30:40 2018 +0100 - - db_text: small updates to sample config used in docs - - (cherry picked from commit 7738461dda1595ee71cbda47bd129e3f13ebc77d) - -commit 48c8f7751d701c8a6dd538280c5c1fa6129d141d -Author: Daniel-Constantin Mierla -Date: Mon Mar 5 21:56:04 2018 +0100 - - app_perl: do dlerror() after dlsym() fails to find exports - - - some OSes do not reset dlerror after a successful dlsym(), pointing to - an older error case - - reported by GH #1465 - - (cherry picked from commit 795edca9215391f7c8f646895c083f8ac8853341) - -commit 289eb37432bfc61855234893daa6be27d40f8788 -Author: Daniel-Constantin Mierla -Date: Sat Mar 3 07:39:45 2018 +0100 - - core: check return of dlsym() before dlerror() handling - - - cope with the case when dlerror is not reset by dlsym - - related to GH #1465 - - (cherry picked from commit 045d44762ce7cd267e64849c1c138d45b1fa040f) - -commit 94842499ffd4cc1fdea40e45af996c8e2efc82cc -Author: Sergey Safarov -Date: Sat Mar 3 12:32:23 2018 +0000 + pua_bla: updated to new module interface format - pkg/docker: Updated reference to packaging scripts +commit a2b6fafe85be9afe52bba0d9607bb3e785c7edc4 +Author: Charles Chance +Date: Fri Sep 28 10:25:51 2018 +0200 -commit 0928fa7ef1652e0646b08a118592094753ec18c6 -Author: Victor Seva -Date: Mon Mar 5 09:34:36 2018 +0100 + pua: updated to new module interface format - srloc: missing documentation for module parameter 'server_id_filter' - - (cherry picked from commit fa9947c7295f364235f9f6417fc44fa486bf0c87) +commit 8ce137f461cec709d61b901895afbc3864171d8a +Author: Charles Chance +Date: Fri Sep 28 10:24:02 2018 +0200 -commit 4c840b7e9144e0540e97be5c9d3444b38a901a27 -Author: Daniel-Constantin Mierla -Date: Fri Mar 2 16:15:19 2018 +0100 + print_lib: updated to new module interface format - kamctl: fixed the name of rpc command for dialplan reload - - (cherry picked from commit 9b7bb4ea6c100f5f33d2dddc9061febf33c47f5e) +commit fc7973f174cf73d9b2315364d58a573f114a9897 +Author: Charles Chance +Date: Fri Sep 28 10:21:40 2018 +0200 -commit 9b3aa0c75bb2b4a643713c428d1a8a3d2d1c9e5c -Author: Sergey Safarov -Date: Fri Mar 2 14:15:15 2018 +0000 + print: updated to new module interface format - pkg/kamailio/obs: Fixed kamailio tmpfiles creation durring rpm installation +commit 5006c2b01995ac823914df398fece67733e9bc09 +Author: Charles Chance +Date: Fri Sep 28 10:14:22 2018 +0200 -commit db97127276fc116ef55874cc4b0171936ed50ff8 -Author: Richard Fuchs -Date: Fri Mar 2 08:34:55 2018 -0500 + presence_xml: updated to new module interface format - rtpengine: allow dual usage of DTLS flag and DTLS= switch - - fixes regression from ff209e978 - - fixes #1468 - - (cherry picked from commit 0d89dc5e3c4c06084af8aae03e9b705673289703) +commit 5486cce6969c9ae5f880e368dccf353005178fb3 +Author: Charles Chance +Date: Fri Sep 28 10:12:56 2018 +0200 + presence_reginfo: updated to new module interface format -===================== 2018-03-01 Version 5.1.2 Released ================== +commit 1e84686aa29633eebcf8894065264c4ae290ad57 +Author: Charles Chance +Date: Fri Sep 28 10:11:08 2018 +0200 -===================== Changes Since Version 5.1.1 =========================== + presence_profile: updated to new module interface format -commit fbea348d0b2a09a08a4a9de4e9ebf65f689d63c5 -Author: AnthonyA -Date: Thu Mar 1 21:28:21 2018 +0800 +commit cfca446fae0ec1a350bbf6cd122e48ca3eefc7b1 +Author: Charles Chance +Date: Fri Sep 28 10:08:39 2018 +0200 - app_python: KEMI accept int-int-str for t_continue - - - t_continue() needs int-int-str arguments; enable in apy_kemi.c - - (cherry picked from commit 0ca711665e1299269ca2ca1e566af6e40749f22a) + presence_mwi: updated to new module interface format -commit e4b76b0eb7637e404611b28dad1f063f1433bc9e -Author: Daniel-Constantin Mierla -Date: Thu Mar 1 16:40:18 2018 +0100 +commit ae2ea8b443ef47aa7a0f138c5e693707f0585a90 +Author: Charles Chance +Date: Fri Sep 28 10:06:47 2018 +0200 - Makefile.defs: version set to 5.1.2 + presence_dialoginfo: updated to new module interface format -commit 9ec0cc9d4a4ca70ce2ef13d6830cb5e30f4112c5 -Author: Daniel-Constantin Mierla -Date: Thu Mar 1 16:01:35 2018 +0100 +commit b0bec3a2017a575d9f5ad364876a9f4f2fe392f3 +Author: Charles Chance +Date: Fri Sep 28 10:04:29 2018 +0200 - pkg/rpms: updated version to 5.1.2 in spec files + presence_conference: updated to new module interface format -commit 49dee7f498e1001ce3e29c1691a7ec322392baca -Author: Daniel-Constantin Mierla -Date: Thu Mar 1 14:28:47 2018 +0100 +commit 378eebb17c6d0b714ed7c64445931c664b604bb4 +Author: Charles Chance +Date: Fri Sep 28 10:02:10 2018 +0200 - db_mongodb: use projection iterator to convert bson for result - - (cherry picked from commit 899ab355fb58e22eaa02336e9b5b1f2f53dba375) + presence: updated to new module interface format -commit ece17deeba435ed19c16fc2a227d351fd6013f86 +commit 45203ca7ed6111e3c682230e2f93bccbfb8add95 Author: Daniel-Constantin Mierla -Date: Thu Mar 1 12:56:18 2018 +0100 +Date: Fri Sep 28 11:02:56 2018 +0200 - db_mongodb: iterate on projection fields for matching cols in result - - (cherry picked from commit aab4f5db964bf1980729ed8b7770f550bb86b72b) + sipdump: updated to the new mod interface -commit cc92737d06359d1812ec7bed22e4c253ae7ba2e9 +commit 7407c5776492e73d2532cb7ac8cce569eb86f73a Author: Daniel-Constantin Mierla -Date: Thu Mar 1 08:29:32 2018 +0100 +Date: Fri Sep 28 10:58:09 2018 +0200 - db_mongodb: create projection field to set the list of returned column - - (cherry picked from commit d50498cf483cd22ac4e62af5aaa86fc27654f640) + sipjson: updated to the new mod interface -commit 3d3798d192c782eb2c4796b758831a7a33ec1ac4 +commit 56040f83e9a90ef9667fbd956554e388d0c5a899 Author: Daniel-Constantin Mierla -Date: Wed Feb 28 18:02:54 2018 +0100 +Date: Fri Sep 28 10:55:18 2018 +0200 - misc/examples: added log_prefix to basic and oob examples - - (cherry picked from commit b32c5fc2582bd590b4385f28630c96cacfed3a86) + siptrace: updated to the new mod interface -commit 654aa457ecec7d35061dbb151fd786a303cba473 -Author: Jerzy Ptak -Date: Wed Feb 28 12:29:45 2018 +0000 +commit 219936d9cad3d815c8585c47534b665779e73917 +Author: Federico Cabiddu +Date: Fri Sep 28 11:01:48 2018 +0200 - rtpengine: added support for DTLS transports - - - added ability to explicitly request DTLS transports: - UDP/TLS/RTP/SAVP and UDP/TLS/RTP/SAVPF - - (cherry picked from commit 99695c2827d0ff6e3d25f144678f07548016415d) + seas: converted to the new module interface -commit a4c5397f87daa2513ed9fdc4f8f8d532cc10852e -Author: Sergey Safarov -Date: Mon Feb 26 08:43:46 2018 +0000 +commit 030a2b9f0d0d3dc3363329186f32aa67d77ecbf4 +Author: Mikko Lehto +Date: Fri Sep 28 11:57:45 2018 +0300 - pkg/docker: Updated reference to packaging scripts + sca: converted to the new module interface -commit c827d37a229ea5b38e41fdabe9d1dcd3725dec9c -Author: Victor Seva -Date: Thu Mar 1 09:12:07 2018 +0100 +commit 85f4e9860835d3de784d3b6bf0b2da149c45a8ef +Author: Mikko Lehto +Date: Fri Sep 28 11:53:51 2018 +0300 - pkg/kamailio/deb: version set to 5.1.2 + rls: converted to the new module interface -commit fe6656c981d7a0f9efc745261d7dd13ff1f37fac -Author: lazedo -Date: Wed Feb 28 16:24:22 2018 +0000 +commit 522f95f3f128211cfc82777e812997f67ba06e60 +Author: Mikko Lehto +Date: Fri Sep 28 11:49:31 2018 +0300 - kazoo: free envelope only on normal response - (cherry picked from commit 6c40983bf04a23bd7394c247980f21c5f2d6d817) + regex: converted to the new module interface -commit 03aa0b7340dd9b752502f765885eff1f08ea41e2 -Author: Daniel-Constantin Mierla -Date: Wed Feb 28 11:16:02 2018 +0100 +commit 1793a6aaf92b2b820f82a05db9ae082cc8dc9638 +Author: Mikko Lehto +Date: Fri Sep 28 11:47:11 2018 +0300 - registrar: downgraded some warning messages at startup - - (cherry picked from commit ceff642b25f8b464515446ed696da43c1f638d21) + ratelimit: converted to the new module interface -commit 34e21ce10787094cfe0ce7a3013c4f503cc15d35 -Author: Daniel-Constantin Mierla -Date: Wed Feb 28 10:36:11 2018 +0100 +commit 845a66f3c2c9ba257f2530c2f4a01c2fad4126e9 +Author: Mikko Lehto +Date: Fri Sep 28 11:42:56 2018 +0300 - cfgutils: fix kemi wrappers for locking functions - - - sip_msg_t* argument was missing, reported by GH #1459 - - (cherry picked from commit c9cd7b9212291e7d0846103cd2d4c8613dd667a1) + qos: converted to the new module interface -commit 5041f3483ee9d579e144f77f5e43e1e406121e8a -Author: Daniel-Constantin Mierla -Date: Tue Feb 27 13:10:19 2018 +0100 +commit 6ad118aa05cb27ebb80aa6125b7a68678f87f368 +Author: Mikko Lehto +Date: Fri Sep 28 11:37:12 2018 +0300 - json: docs - more details about the result of json_get_field() - - - reported by GH #1542 - - (cherry picked from commit 6a64100105e7ac0ae8a952a2e3770d7534615796) + prefix_route: converted to the new module interface -commit 96d4a01287945a58b3b7c8dfc06bd41acd00d213 -Author: Daniel-Constantin Mierla -Date: Tue Feb 27 11:01:23 2018 +0100 +commit 0d1bf37863e94a43a4085549e679591f95edc4e9 +Author: Mikko Lehto +Date: Fri Sep 28 11:30:49 2018 +0300 - core: main - use fprintf() if daemon_status_send() fails at shut down - - - avoid race with syslog() when processes are killed - - reported by GH #1454 - - (cherry picked from commit 54774017325fe2e24ee7c5d64b343ad0097c8332) + sanity: converted to the new module interface -commit fc77e25b48c4ec1b9988925faa50d00c4fd296b3 +commit 7eb68617ebd996785d8f012e4f47c02e37965138 Author: Mikko Lehto -Date: Tue Feb 20 01:32:39 2018 +0200 - - tm: flag core to use forced socket when uac socket is set - - - without flag SND_F_FORCE_SOCKET probing by dispatcher module - and route script function t_uac_send() will choose incorrect source socket - - (cherry picked from commit 7da5e5b0a1f4520c7fdd7eeb23b4b58ecc27be22) +Date: Fri Sep 28 11:19:33 2018 +0300 -commit 438e11a04c488a8f53555c54d1a12b50213cd342 -Author: Daniel-Constantin Mierla -Date: Mon Feb 19 10:29:46 2018 +0100 + sctp: converted to the new module interface - registrar: set current time before checking registered() conditions - - - patch by Dmitri Savolainen, closes GH #1267 - - (cherry picked from commit 5b5d55bd377b0572efaceeb0feb164bf5dd26bf0) +commit 4bf3677673e948c26544427254dccf095a6a80cc +Author: Mikko Lehto +Date: Fri Sep 28 11:16:09 2018 +0300 -commit fe299de412d3fd997151d27bd5b162cfdbd3aa62 -Author: lazedo -Date: Sat Feb 17 14:33:07 2018 +0000 + stun: converted to the new module interface - dispatch: change log level to debug for rpc list empty list - - when dynamically loading/querying the dispatcher list at runtime, empty dslist logs as error which misleads log monitoring tools looking for real errors - - (cherry picked from commit ca230986b7f4ea84746c47df177ac21b19fd70a3) +commit 5e8cc8cfa676b92c9468ea22eb202608584bcdc0 +Author: Mikko Lehto +Date: Fri Sep 28 11:13:28 2018 +0300 -commit f0d3a3f02cccf3b6c4cf17531ad77fb06d491b86 -Author: Daniel-Constantin Mierla -Date: Sun Feb 18 08:24:36 2018 +0100 + speeddial: converted to the new module interface - CONTRIBUTING.md: added developer access section - - (cherry picked from commit 2bfb71472014cabf6a6fb0fdac1421d50486d775) +commit 82361db3d2a6377dab92d3a47d7df191fd24695f +Author: Mikko Lehto +Date: Fri Sep 28 11:08:57 2018 +0300 -commit 9b4d75f4ab8fbd9d8b136aaf183beed9eafaa069 -Author: Daniel-Constantin Mierla -Date: Sat Feb 17 20:32:27 2018 +0100 + siputils: converted to the new module interface - CONTRIBUTING.md: note about personal branches of developers - - - prefix with `developerid/` when creating a personal branch inside - Kamailio GIT repository - - (cherry picked from commit 05e06cb01a2fbef6c3077ca46a1ef5dac1488a7f) +commit ed9d5c06a514325de6c6641c8219d18ddc5df9bd +Author: Mikko Lehto +Date: Fri Sep 28 11:05:44 2018 +0300 -commit 190f1a462025a2f03f5f57d50510c6f2e47b5a1d -Author: Daniel-Constantin Mierla -Date: Fri Feb 16 09:04:14 2018 +0100 - - presence: keep first dialog node reference to compare name with next nodes - - - there can be intermediary nodes of other type making the match fail - - related to GH #1425 - - (cherry picked from commit 29d09b38fab5a1ee8d7f6f82818e3d3446d4dd8b) - -commit 8abe7b8ddff6bfc98a09b59c443487ce4ab612d4 -Author: Mikko Lehto -Date: Thu Feb 15 16:57:28 2018 +0200 - - main.c: fix argument help typo - - (cherry picked from commit 324f3f2347e24e3335a32b8310a76a7bc4a0550a) - -commit 1864fc0828621f6d0189bc66041b9891248d0d38 -Author: Mikko Lehto -Date: Thu Feb 15 17:17:28 2018 +0200 - - siptrace: improve module parameter error logging - - (cherry picked from commit 9d594b2d61d113ee13c5c6c6985d07d5e2c8b76a) - -commit 5f6f8cf461cf79faeb69c191d6f3168982d32536 -Author: Daniel-Constantin Mierla -Date: Wed Feb 14 11:24:37 2018 +0100 - - utils: kamdbctl - updated help message for migrate command - - (cherry picked from commit 52a8def8d2a3e83170ab554a85b26d977d99f51a) - -commit ae15fe5ec20c08c80fc9722fc63c0a4b358704c9 -Author: Daniel-Constantin Mierla -Date: Wed Feb 14 11:23:55 2018 +0100 - - core: atomic - updated email addres in warning message - - (cherry picked from commit 65fab0d02271c242d6e43e499198ee1da2275a4b) - -commit 64e6301bbe512fcb51bf612e22d4d9ca4b795bdc -Author: Daniel-Constantin Mierla -Date: Tue Feb 13 08:41:13 2018 +0100 - - tls: small updates to tls config - - (cherry picked from commit a0b6b3abe1beab33e11a52ff601c9cc50f7e2d56) - -commit 894b1abf8ae3e04b28d32aaf59eab08582a11d00 -Author: Daniel-Constantin Mierla -Date: Mon Feb 12 10:15:47 2018 +0100 - - presence: return on having a full match on states in xml document - - - better handling after previous commit, related to GH #1427 - - (cherry picked from commit 92451536a0ef985ff1d16c5531c232cd657532e1) - -commit 09bb7fd210e63d75c64cc768bff4d080ff46f791 -Author: Daniel-Constantin Mierla -Date: Mon Feb 12 10:07:00 2018 +0100 - - presence: check if all related dialog states are terminated - - - fix for incorrect dialog state for multiple dialogs xml body - - reported by GH #1427 - - (cherry picked from commit 76b40abd6534a5af0164601e48e525b9a5915930) - -commit be398ec0c8301053dc2db61dc4a88c50fe874aaf -Author: lazedo -Date: Wed Feb 7 14:42:25 2018 +0000 - - schema: allow null value for active_watchers user-agent column - - some UAs not sending Userg-Agent header on SUBSCRIBE - - (cherry picked from commit 7653124c2d3615e4f6229f12b699063f65b7afea) - -commit dbcdde19ab5fef461efea62b62861d2488c2ed81 -Author: Daniel-Constantin Mierla -Date: Fri Feb 9 13:52:58 2018 +0100 - - CONTRIBUTING.md: note about formatting the code - - - use clang-format or match the style of the existing component - - (cherry picked from commit 32564156a4ad3efd93099d7ae2c98758cf4ec9b0) - -commit 9d3096d0ce0b2b4e16b558abba15128cc2aafb1c -Author: Vicente Hernando -Date: Thu Feb 1 11:23:42 2018 +0100 - - textops: mismatch parenthesis in doc - - (cherry picked from commit 508befcbddc7b88b6a68b188d881b52943682cc8) - -commit 7d906b442b3852cfa9c39b26bbe2b43e25214756 -Author: Daniel-Constantin Mierla -Date: Mon Feb 5 12:45:05 2018 +0100 - - maxfwd: remove useless asign in is_maxfwd_lt() - - (cherry picked from commit adbdaabeef2d24882185f21fa1399da6468e1301) - -commit 09f588a5b643a3fe8dbf0a0d2cd11dc8bf62a1f8 -Author: Ovidiu Sas -Date: Fri Feb 2 14:30:53 2018 -0500 - - textops: documentation updated for is_audio_on_hold() - - (cherry picked from commit fad36ca8bc3526f71f8bb3af46afe3bb2a0f1789) - -commit 1b6cb70710a9bdbda012c5df27c5a52900e9cff2 -Author: Ovidiu Sas -Date: Fri Feb 2 14:25:20 2018 -0500 - - textops: is_audio_on_hold() returns hold type - 1 - RFC2543 hold type (the connection IP is set to null IP) - 2 - RFC3264 hold type (inactive or sendonly attr) - - (cherry picked from commit 9f735ef803bfc8b6722f71a2bef00b071ab1ca1b) - -commit b99e6f3fd454528a80d0b51ce632ed9e606e816e -Author: Ovidiu Sas -Date: Fri Feb 2 14:23:08 2018 -0500 - - parser/sdp: distinguish between RFC2543 and RFC3264 media hold type - - (cherry picked from commit 51be5b7a889e394927cce1009a09e1c2f52123ca) - -commit 9d9ae2047a966c8c293a4001c6e53b0c7fdb34e2 -Author: Daniel-Constantin Mierla -Date: Fri Feb 2 18:11:10 2018 +0100 - - app_squirrel: imported last version of squirrel interpreter - - - master branch - - (cherry picked from commit 8233e5191d23f64d879d81aa4bc4e5b17cf68ffe) - -commit 15ea8f68ca77ad558eefa55f98f014e4f3e816f2 -Author: Daniel-Constantin Mierla -Date: Thu Feb 1 15:06:08 2018 +0100 - - misc/examples/kemi: convert port to string in log messages - - (cherry picked from commit 7612f67001c57d6adf339cd318e48ad828123213) - -commit 6b6c3043583c29d6c6bfca2cca13526834ccd923 -Author: Daniel-Constantin Mierla -Date: Wed Jan 31 21:20:16 2018 +0100 - - app_python: adjusted the note about incomplete implementation for rpc reload - - (cherry picked from commit 9e16ac869646ff62f648f9a822ffcc12a4614037) - -commit 7a17f43cf318f791cb6f325487f2c1d709417ffa -Author: Richard Fuchs -Date: Wed Jan 31 12:10:16 2018 -0500 - - rtpegnine: honour the 'setid_default' variable in all instances - - (cherry picked from commit 39d98127268afdfa841e7c80ce26185fe8d0673c) - -commit cabe86f64f0cb0ec37eb24c055c85d8a9316591a -Author: Daniel-Constantin Mierla -Date: Mon Jan 29 09:14:40 2018 +0100 - - modules/ims*: Makefile updates - - - use KAMAILIO mod interface define - - bits of updates in the comments - - (cherry picked from commit d40c65a9834d6e0c12ee24e0fde5b75be94593e5) - -commit d942adeb777916af737e96a0b0190d0d500855d8 -Author: Daniel-Constantin Mierla -Date: Sat Jan 27 16:25:25 2018 +0100 - - modules/ims*: define KAMAILIO_MOD_INTERFACE instead of the old variant - - (cherry picked from commit 014958e62302819630ead306baa8e765b062196f) - -commit b65be9c7ddb6f7c05227eb6c6c3503a26611a971 -Author: Armen Babikyan -Date: Thu Jan 25 17:36:55 2018 -0800 - - websocket: check bounds before reading mask - - (cherry picked from commit 4fabe253a1eb0f9b494521cfa98365523a93adcf) - -commit ec47df23265c33a75893e1fe589f3081c918c9aa -Author: Armen Babikyan -Date: Thu Jan 25 17:19:28 2018 -0800 - - websocket: handle unrecognized subprotocol better - - (cherry picked from commit 91c388147a9328743582a92c6f1184141aa268fb) - -commit dda84fd78cf1f53894978feb71209282babedcbb -Author: Daniel-Constantin Mierla -Date: Thu Jan 25 15:03:27 2018 +0100 - - pua: proper safety check on subs->extra_headers->s for subscribe_cbparam() - - - dicovered via GH PR #1409 - - (cherry picked from commit cda1d086c164052a5b79b54a8d0e5cf6e5fb3e1c) - -commit d5140f1cfa24cd2b868282e96f33f577394fe126 -Author: Daniel-Constantin Mierla -Date: Wed Jan 24 11:44:33 2018 +0100 - - nathelper: fixed interpretation of flags param for add_rcv_param() - - - add as uri param when the flags are set and different than 0 - - small typo in log message - - (cherry picked from commit 08df9d1b11ff3fcfe241ce179560431145be8216) - -commit c52820bc9c7cccf32993943e0e12dd3703ff0822 -Author: Daniel-Constantin Mierla -Date: Wed Jan 24 09:21:30 2018 +0100 - - sipt: Makefile - define KAMAILIO_MOD_INTERFACE - - (cherry picked from commit e62fa8f7813a0d22f4db30a99bcee541103f21b3) - -commit dcbee573a2027042fd180db6beda89a39f026631 -Author: Daniel-Constantin Mierla -Date: Wed Jan 24 09:21:17 2018 +0100 - - janssonrpcc: Makefile - define KAMAILIO_MOD_INTERFACE - - (cherry picked from commit cd0e1bd26cc31c001707ce98d084310979071fb0) - -commit 06c2ec25dcbdc93bfae23f8931714010fbfebb83 -Author: Daniel-Constantin Mierla -Date: Wed Jan 24 09:21:05 2018 +0100 - - jansson: Makefile - define KAMAILIO_MOD_INTERFACE - - (cherry picked from commit 86589cdda4f5390099165670d68d49f5c8b44af1) - -commit 24a81e1c829762fb0b7c1daae42f7a111b6ce4eb -Author: Daniel-Constantin Mierla -Date: Wed Jan 24 09:20:33 2018 +0100 - - cnxcc: Makefile - define KAMAILIO_MOD_INTERFACE - - (cherry picked from commit 22421845cfcc0eab194ac510bfc378f72765a059) - -commit 427145b9cdadf01a18b3f38ffdb14094154a647a -Author: Daniel-Constantin Mierla -Date: Tue Jan 23 17:33:39 2018 +0100 - - ctl: proper handling of optional param specifier (*) in rpc scan - - (cherry picked from commit a9972863681059c647af4bafd0d9a20f7648c801) - -commit cc638e4cd6d6f4ff9aca0bf6c9d6c940a3e64e59 -Author: Daniel-Constantin Mierla -Date: Mon Feb 12 09:12:26 2018 +0100 - - topos: revert "topos: set uuid fields before checking contact/rr fields" - - This reverts commit 97532ca18f595d89edf9b0b6e6688847aa38dd44. - - (cherry picked from commit be6a419a5b0d6fe3922219a30788ad527a313fd6) - -commit 8794d6d60549683120e22b3b150674e686a29ba0 -Author: Daniel-Constantin Mierla -Date: Thu Feb 8 19:13:08 2018 +0100 - - rtpengine: get again body pointer only when read_sdp_pv is set - - - reported by GH #1434 - - (cherry picked from commit 75c4ca0bb69bd4f1ba42c6d964697737813fa81e) - -commit 0e1fdeea9cc5f6948f8b3e19c1350718288278ba -Author: Daniel-Constantin Mierla -Date: Mon Feb 12 08:24:56 2018 +0100 - - core: kemi - eol for debug message - - (cherry picked from commit 0476993b7c341bcc7a994ab52986b89f240bd3b0) - -commit df9389a613e16f15b860af60222abe43ca367d09 -Author: Daniel-Constantin Mierla -Date: Mon Feb 12 08:21:19 2018 +0100 - - app_lua: do lua_checkstack() to ensure enough capacity on Lua stack - - - Lua doesn't do automatic management of the stack - * http://www.lua.org/manual/5.1/manual.html#3.2 - - do exit on insufficient capacity - - based on the report by GH #1433 - - (cherry picked from commit f6d69d87abdc48df22135c79ee2309248248ca8e) - -commit c1ec6b02139475abe7da276cd36de4ebb9709ea2 -Author: Daniel-Constantin Mierla -Date: Sun Feb 11 09:37:05 2018 +0100 - - presence: set user agent db field to empty string if no value is found - - (cherry picked from commit 4654f8b4f341a6c9f8cf4daafc7d618871c95e1b) - -commit 5cd6530e68ef311a59acbec180588a498f2a32dc -Author: Daniel-Constantin Mierla -Date: Sat Feb 10 22:05:42 2018 +0100 - - tmx: allocate space to store ending 0 for branch value - - - reported by Alfred Farrugia and Sandro Gauci - - (cherry picked from commit e1d8008a09d9390ebaf698abe8909e10dfec4097) - -commit 358f63a7a452923a28f7d5ea682c4dc9cde10d25 -Author: lazedo -Date: Fri Feb 9 23:19:40 2018 +0000 - - kazoo: verify timer - (cherry picked from commit 00330db3864dbc7df20c76f413beb73a6d60189c) - -commit 72e9c0d00b78cccca79cd6547628d914a8fbb03c -Author: lazedo -Date: Fri Feb 9 21:38:03 2018 +0000 - - kazoo: fix blocked sockets & zones - - (cherry picked from commit a5212922c9bdf9560b45cdf6c0786a1fa651a232) - -commit df7c94863d9d75533a4430af84ba3647ac4decf6 -Author: Guillem Jover -Date: Tue Feb 6 18:22:51 2018 +0100 - - pkg/kamailio/deb: wait for kamailio to exit before returning on sysvinit stop action - - We should not return until the service has been fully terminated, - otherwise a subsequent start might break as it can consider itself - as already running. And once the old instance stops there's nothing - left running. - - This also makes it possibe to remove a sleep in the restart action. - - (cherry picked from commit 4cc60ede961554220cd265bd212407f42d5b8262) - -commit 732a3153a0a41d5f951fff85de607f0b46ae73da -Author: Juha Heinanen -Date: Mon Feb 5 21:58:04 2018 +0200 - - lcr: fixed checking if there is more uris available for next_gw - - plus some clang format changes - - reported by Daniel - - (cherry picked from commit f73470163b081f5c877dddff9c08e94073b0cc4b) - -commit 45233bf5d736b7f47390d150d41511702212183b -Author: Ovidiu Sas -Date: Fri Feb 2 14:08:41 2018 -0500 - - textops: update documentation for is_audio_on_hold() - - (cherry picked from commit def7be2a3a60039c21c0711153152533b8ceb836) - -commit f17dd0d8c884f0264a1bfb64124caa69e119ca23 -Merge: 9ec46e949 df97c48f9 -Author: Daniel-Constantin Mierla -Date: Mon Jan 29 20:17:26 2018 +0100 - - Merge pull request #1415 from christoph-v/wrong_query_buffer_assignment_5.1 - - ims_usrloc_scscf: assignment of length missing for query_buffer in db_link_contact_to_impu() - 5.1 - -commit 9ec46e94915294f2824abe828c0a1ec66e82c808 -Merge: 47821c587 acbc230e8 -Author: Daniel-Constantin Mierla -Date: Mon Jan 29 20:17:10 2018 +0100 - - Merge pull request #1414 from christoph-v/missing_record_route_assignment_5.1 - - ims_usrloc_scscf: missing assignment of record_route (5.1) - -commit df97c48f94e8c8ce28ca0624bc3cfe4a86c89259 -Author: Christoph Valentin -Date: Thu Jan 25 13:13:07 2018 +0100 - - ims_usrloc_scscf: assignment of length missing for query_buffer in - db_link_contact_to_impu() - - When writing to query_buffer with the help of the snprintf() function, - the result of the functio is written to variable query_buffer_len - instead of to the query_buffer.len itself. This leads to core dump - in some cases. Replaced "_" by "." in "query_buffer_len =" - - (cherry picked from commit 11c179ab232222f1c78f19557032afd49bef7324) - -commit acbc230e8f24ac838598631d9366f23d05218d73 -Author: Christoph Valentin -Date: Thu Jan 25 13:37:59 2018 +0100 - - ims_usrloc_scscf: missing assignment of record_route - - In update_subscriber() function, when the rs is assigned to the subs, - it is missing the record_route component, which leads to core dump in - some scenarios. - - (cherry picked from commit 595b8fe06165328366865328e43c14a9ca23c386) - -commit 47821c5871d188ac04b6e366717a314a8d710699 -Author: lazedo -Date: Tue Jan 23 10:20:52 2018 +0000 - - kazoo: change string parameters to PARAM_STR - - (cherry picked from commit 3018595d13dde08d15e8063cecb42a01ea271b66) - - -===================== 2018-01-22 Version 5.1.1 Released ================== - -===================== Changes Since Version 5.1.0 =========================== - -commit d3c6227d998f46388338de5a5be8684e02c529a2 -Author: Daniel-Constantin Mierla -Date: Mon Jan 22 15:31:46 2018 +0100 - - Makefile.defs: version set to 5.1.1 - -commit b631f7e715658fcff15bee6daa889519aa687adf -Author: Daniel-Constantin Mierla -Date: Mon Jan 22 15:30:33 2018 +0100 - - pkg/distros: updated version to 5.1.1 - -commit 246b40b5048a6c751747fe827f046bb8e0034bed -Author: Daniel-Constantin Mierla -Date: Mon Jan 22 15:30:09 2018 +0100 - - pkg/rpms: updated version in spec files - -commit 7f8a398dd18d240efd8eb4377251a8752b321a1e -Author: Alexandr Dubovikov -Date: Mon Jan 22 10:52:15 2018 +0100 - - modules/sipcapture fixed LM_ERR to LM_DBG - - (cherry picked from commit c2949fe2dc4d1156657cd6bc1683da83eda2a809) - -commit 501fdfe94211eb525d775738a2f6c77499033447 -Author: Daniel-Constantin Mierla -Date: Mon Jan 22 11:56:40 2018 +0100 - - sctp: removed unused goto label - - (cherry picked from commit f6232ee6d5d7fed67b6510c8c5ab8e7f6273274e) - -commit 70bc83c52c6bfe38fd5daa60c3aa449521a063fa -Author: Daniel-Constantin Mierla -Date: Mon Jan 22 10:53:05 2018 +0100 - - siptrace: fixed unused variable warnings - - (cherry picked from commit 7dae4ec9e4be87d5a3406fe2ddeb98328beb1125) - -commit e9549e27efaf920e6f0b3d4c7a81129b705326e9 -Author: Daniel-Constantin Mierla -Date: Sun Jan 21 13:20:55 2018 +0100 - - rls: removed local variable contact, unused inside rls_handle_subscribe() - - (cherry picked from commit 2aebb2bf1f3d71a0dc7eca847af2aa127ff54453) - -commit 730fad39599c39b1a5c3faa1d9bb9c49db61439b -Author: Daniel-Constantin Mierla -Date: Sun Jan 21 13:17:46 2018 +0100 - - rls: rls_get_service_list() - set to NULL the content of rootdoc pointer - - - its a function parameter and expects to be set by the function - - (cherry picked from commit 5e58d48c980f5e413f47271dd342ee0630722bbb) - -commit 5c19d9bcf87a4c5595aa4b0706c45917ca75858d -Author: Daniel-Constantin Mierla -Date: Sat Jan 20 11:45:51 2018 +0100 - - uri_db: ki_check_uri_realm() has three string params for kemi exports - - (cherry picked from commit 4fa92be97bca8da3ce5bf5181ef9262006b4fb9d) - -commit f243c5d2da214bad59adcdc7d702d8da61c5d69f -Author: Daniel-Constantin Mierla -Date: Sat Jan 20 11:44:59 2018 +0100 - - textops: proper parameter types for kemi exports - - (cherry picked from commit 23450310fe6095f612d328871380012f189ac1c3) - -commit 96c2294eb1a56b67c11d32e8fab55dd75a5fd26d -Author: Daniel-Constantin Mierla -Date: Sat Jan 20 11:44:31 2018 +0100 - - textops: fixed mixmatching types for exported kemi functions - - (cherry picked from commit fb904abd968eb44e797ee7bc08c5705e69de2fc7) - -commit a0de4bce7c09d361e2d912ebe8cfcb76a72dac5c -Author: Daniel-Constantin Mierla -Date: Sat Jan 20 11:43:13 2018 +0100 - - msilo: set parameter names in prototypes - - - used in genrating the index for kemi exports - - (cherry picked from commit 4fbbc544c2c860c24ab3e8d4a4eb362f7f626ee8) - -commit bc8dd9263715479f682062b1fb5a16e265fc4ae0 -Author: Daniel-Constantin Mierla -Date: Sat Jan 20 11:42:44 2018 +0100 - - cnxcc: fixed kemi export for signature for ki_get_channel_count() - - (cherry picked from commit c668854d05e548bf9d138778307891e914cc565e) - -commit 54f3a3d98682e159988c57fa3e3cf28f6b41a121 -Author: Victor Seva -Date: Mon Jan 22 10:37:52 2018 +0100 - - pkg/kamailio/deb: set version to 5.1.1 - -commit a88346c6106653a9ffa60ad41e143f62dd8af1ea -Author: Victor Seva -Date: Mon Jan 22 08:58:26 2018 +0100 - - http_async_client: cleanup avps/xavps after exec route on Http worker - when suspend_transaction is false - - (cherry picked from commit ad46b115bedec01c52c5a9dcde0756db85ee61ec) - -commit f5e9533b0149fdb3f000d2c837075b01051982d4 -Author: Carsten Bock -Date: Thu Jan 18 20:11:50 2018 +0100 - - CDP: Safety checks and warnings for adding applications to a peer definition - - (cherry picked from commit 72bbf9280879475dcdbda59f00b75a274885abaa) - -commit a7a087879b850db336c8611349d533b58b552e43 -Author: Daniel-Constantin Mierla -Date: Thu Jan 18 17:40:42 2018 +0100 - - siptrace: use formatted print for addresses inside trace_onreq_out() - - (cherry picked from commit 219072f0ef43eff1a5d4947f6fd71f2fd4fb7d1f) - -commit ee21e28cb2632d4a7c421c93fae0974795435ea7 -Author: Daniel-Constantin Mierla -Date: Wed Jan 17 22:23:35 2018 +0100 - - exec: more info in log messages when uri parsing fails - - (cherry picked from commit 74c9f53aa736b9d2581666a8a75bc685156447f4) - -commit f622be60abe31bc4d0618b92caddced4fb5a0287 -Author: Daniel-Constantin Mierla -Date: Wed Jan 17 22:18:20 2018 +0100 - - exec: clang format the code - - (cherry picked from commit 34ec1fc381916ee2ce7b08afce413bf2aa427a55) - -commit d23c5d782aaef224e283766e8faeb9a1119bd279 -Author: Daniel-Constantin Mierla -Date: Wed Jan 17 15:05:59 2018 +0100 - - exec: small typo in log message - - (cherry picked from commit 8a501f2be2860b1bfd0b9a3d1f63d85f4654fd01) - -commit c60e7025761f7b4a767c8219304cf248f63fbd45 -Author: Daniel-Constantin Mierla -Date: Tue Jan 16 16:00:37 2018 +0100 - - tm: handle rpc tm.t_uac_start only with From and To headers - - - reported by GH #1393 - - (cherry picked from commit 6feb28266210a8210d31d7dac49cf3ea3da06164) - -commit 040a8d2c5863527ac3d26afbd04b7a14ebb11652 -Author: Daniel-Constantin Mierla -Date: Tue Jan 16 09:06:36 2018 +0100 - - topos: print warn message when local address is not set - - (cherry picked from commit ce9f67581f45a00fd879329ffc918b2a7ef9b8d0) - -commit be8070c3a9fe4c33ad017f9272e76ebcf63494d2 -Author: Daniel-Constantin Mierla -Date: Tue Jan 16 08:46:39 2018 +0100 - - topos: docs - more explicit info about required use of record_route() - - (cherry picked from commit 4e659b5f3cd9b176e3bf2e20ceebf34d9734707b) - -commit 11cfb840ad58445b19ec27f73653bb5a43da0318 -Author: Daniel-Constantin Mierla -Date: Sun Jan 14 06:04:22 2018 +0100 - - topos: set uuid fields before checking contact/rr fields - - (cherry picked from commit 97532ca18f595d89edf9b0b6e6688847aa38dd44) - -commit 8d3a0145cd603f5e323cb5ea6de0cef220a5ac53 -Author: Daniel-Constantin Mierla -Date: Mon Jan 15 16:43:18 2018 +0100 - - topos_redis: store tags in transaction records - - (cherry picked from commit 883d49d5ed2cc6140c583559d0f61bde3fa6fdb5) - -commit a812a627729eda9b6520d805524603e068624573 -Author: Daniel-Constantin Mierla -Date: Mon Jan 15 16:34:23 2018 +0100 - - topos: store and load tags in transaction record - - (cherry picked from commit 5b2b06ceff61144c5f0cbddacdfcaee18a2e8eff) - -commit e900b9450f0f9e8c3adab1610ee0dccc35419d48 -Author: Daniel-Constantin Mierla -Date: Mon Jan 15 12:48:51 2018 +0100 - - core: tcp - typedefed structs - - (cherry picked from commit edb3d6d848c9ccf85b077950ecf6aec7acf3e5b6) - -commit 84e451d44269da540969fc562f5d9813de940cdc -Author: Daniel-Constantin Mierla -Date: Sun Jan 14 09:52:25 2018 +0100 - - db2_ops: proper check for memory allocation pointer - - - check result codes for registering script callbacks - - (cherry picked from commit 1f9366ab5978ee4aa8fd3cefea0393c94889c26e) - -commit 407b257d4ef56730e04888259764ca6f25e4855d -Author: Daniel-Constantin Mierla -Date: Sat Jan 13 19:28:34 2018 +0100 - - pipelimit: docs - more details about timer interval and limit values - - (cherry picked from commit 93cfd4e8581fed04d4e596ed7f3d284c53fc5501) - -commit 8a2d2c90d9116744dcc9f54f10b7439b4fa450b4 -Author: Daniel-Constantin Mierla -Date: Sat Jan 13 18:49:15 2018 +0100 - - pipelimit: remove mutiplying the limit with timer interval for TAILDROP alg - - - the limit is documented as per interval, not per second (closes GH #1390) - - renamed macro for default limit to use module specific prefix - - (cherry picked from commit 1880f1f8be4b51cec2a0567580828e9ac449947d) - -commit fd9fa1787e28e8e072459e620f5798cf3541d042 -Author: Daniel-Constantin Mierla -Date: Fri Jan 12 14:17:10 2018 +0100 - - siptrace: simplified internal sip_trace() function using now formatted print - - (cherry picked from commit 788f81af006f481b23606451d225a86b6b02aac8) - -commit 08fd66009294baa4a02e83aee9d48b70fe3ab834 -Author: Daniel-Constantin Mierla -Date: Fri Jan 12 09:50:36 2018 +0100 - - drouting: option to use a static structure for computing ac max val - - (cherry picked from commit b3e14fc9bd379ad77c13ade0bc60dc32f1d55ade) - -commit c98cd35dec2eaac78a24150d8f0c5501142d2866 -Author: Daniel-Constantin Mierla -Date: Thu Jan 11 12:16:47 2018 +0100 - - drouting: free max val for time recurrence struct on update if already set - - - reported by Uri Shacked - - (cherry picked from commit e0f95ea7fc691f976564b07436848673c633195d) - -commit 2c790c0c2ccdeb1978bd5ac34d0cd1c469d944d3 -Author: Daniel-Constantin Mierla -Date: Thu Jan 11 11:50:18 2018 +0100 - - siptrace: use same value for "any" address - - - two variants were used: any:255.255.255.255:5060 and - any:255.255.255.255, now any:255.255.255.255:5060 is used everywhere - through a define - - (cherry picked from commit 2ae4d19a5948d771980853bf38aeef8c1553faec) - -commit 53e21ff455f42905cbd4ee5100d2c44bcb75b71c -Author: Daniel-Constantin Mierla -Date: Thu Jan 11 11:44:51 2018 +0100 - - siptrace: replaced sequeces of string concatenations with safer formatted print - - - used to build proxy-like addresses - - (cherry picked from commit 2e46081424240dfb3767da74b0818249dff46802) - -commit 03d584a5db8a71515a2dc3e8f1b3e24e8bfecf13 -Author: Daniel-Constantin Mierla -Date: Wed Jan 10 12:52:04 2018 +0100 - - pua: safety check on tuple_id len - - (cherry picked from commit 2bb33a88881eacb94e2af54d564cdffc00478cea) - -commit 257d351cddef0a8607f93b7cd7c82c7cc282bb1b -Author: Daniel-Constantin Mierla -Date: Tue Jan 9 10:06:34 2018 +0100 - - siptrace: retrieve and use the len of proto when building the address - - (cherry picked from commit 8f51d6b1624ebca08e71061e0c18c68101595201) - -commit 4d56c16c38b92f0f2ce07daadb9cbb2983be243e -Author: Daniel-Constantin Mierla -Date: Tue Jan 9 10:00:31 2018 +0100 - - siptrace: siptrace_copy_proto() converted to macro - - (cherry picked from commit aaf3b2e35bf58ad19b2b375f26909b102b7d512f) - -commit 67a796cf731421819b6a5d85a387b9692c07539b -Author: Daniel-Constantin Mierla -Date: Mon Jan 8 12:33:57 2018 +0100 - - siptrace: use safety macros to copy values building address buffers - - (cherry picked from commit ed4a2bc477ebaf60d2fa82a3993dd5a61b54d9d3) - -commit d446a4fa070c00db940010c0be02822bd80c91dd -Author: Daniel-Constantin Mierla -Date: Mon Jan 8 11:34:39 2018 +0100 - - siptrace: define max size for address buffers - - - use struct types - - (cherry picked from commit f9b98c647d2de1c279d370a5fb5b49201c117d8a) - -commit c7dd9321976c2fed34b58d1cdcdf306642b98005 -Author: Daniel-Constantin Mierla -Date: Mon Jan 8 11:33:24 2018 +0100 - - core: typedefed struct onsend_info to onsend_info_t - - (cherry picked from commit 697c19b016fb1b0f7678716f31462d3f54d60719) - -commit b05f1eb0248c6a48288d67ffbca309101b9a441f -Author: Daniel-Constantin Mierla -Date: Mon Jan 8 11:27:34 2018 +0100 - - core: typedefed struct proxy_l to proxy_l_t - - (cherry picked from commit a41db4b0f56eccb8fb12c3c8257fd677d6c62537) - -commit d54d3244f9496b7963ff8b722ea04317774b7ad2 -Author: Hugh Waite -Date: Thu Jan 4 21:16:08 2018 +0000 - - pkg/kamailio/obs: Move ims_ocs module to ims RPM - - This module has a dependancy on libkamailio_ims.so so it belongs within - the IMS RPM. - - (cherry picked from commit 6a7ea3d489175659cbfcca4088a8cd26b9352273) - -commit 0c2daaf795c5dab543c2b38acddd27db9a9a6751 -Author: Hugh Waite -Date: Thu Jan 4 21:01:08 2018 +0000 - - pkg/kamailio/obs: Minor improvements to kamailio.init file - - Use $PROG instead of uninitialised $DESC - Pass the .cfg file name as a parameter when starting and checking config - Use the pidfile when stopping to allow parallel instances - - (cherry picked from commit f06cad16ddd38771f29bfba29161bfa3ec76354f) - -commit 73a5f47e07cafbddb4382c371f6c61d226e49c75 -Author: Daniel-Constantin Mierla -Date: Fri Jan 5 09:08:36 2018 +0100 - - snmpstats: safety checks on hdr variable - - (cherry picked from commit 74c02fdb1cd04d674046c38bc2f5193f91da4edf) - -commit 93e1da2a8313e19084f13caacfc21faa5761df86 -Author: Daniel-Constantin Mierla -Date: Fri Jan 5 09:06:07 2018 +0100 - - snmpstats: check the return code when registering statistics - - (cherry picked from commit 5b00ef8bb31fb029b2d4dedae40e2c7a54841fe6) - -commit 19e32304bfd2ba49cf936db043d26b4766db9eaf -Author: Daniel-Constantin Mierla -Date: Fri Jan 5 09:04:54 2018 +0100 - - http_client: cast parameter to curl function to avoid warnings - - (cherry picked from commit bab289f36b189a2836ef51acc9e26aed422a7dad) - -commit 651ff06669f1a286fe93a2b6a3599bac1ea65027 -Author: Daniel-Constantin Mierla -Date: Thu Jan 4 09:40:54 2018 +0100 - - rls: pass dbf structure by pointer instead of value to function param - - (cherry picked from commit 5097954ce5dbbd1094a022f3ae014c77e389aecb) - -commit 9159c87cac34630e5657d46cfbc009d4848c5b0e -Author: Daniel-Constantin Mierla -Date: Thu Jan 4 09:39:31 2018 +0100 - - presence: pass dbf structure by pointer instead of value to function param - - - passing large values is not optimal - - (cherry picked from commit aad751ab54f37f3482641488929133296974025e) - -commit 79a09341c2df408254975a7749133a64a01a0a9d -Author: Daniel-Constantin Mierla -Date: Tue Jan 2 12:22:18 2018 +0100 - - core: print more details about process when doing child init - - (cherry picked from commit 71f11210b6b36cf69aaf3c8318bba9da3334c4e0) - -commit 4b4346000f8de5026619caac39f2ade38cf17038 -Author: Daniel-Constantin Mierla -Date: Tue Jan 2 12:09:56 2018 +0100 - - core: pt - helper function to get description for current process - - (cherry picked from commit 5c4309e47b0f66c3c4a98145a956bfe0b2ce0953) - -commit 3091e65d9ee1ce4c524f1ef359d6164e8fb4d033 -Author: Daniel-Constantin Mierla -Date: Tue Jan 2 10:51:28 2018 +0100 - - mohqueue: handle return code for pv_parse_format() - - (cherry picked from commit 571c9993bb42a1c22a575874f186cfef06af19e8) - -commit 383cce7a1f5eb4229bb6a7982352062675d6f88d -Author: Daniel-Constantin Mierla -Date: Mon Jan 1 14:50:18 2018 +0100 - - auth_identity: use app name to set curl user agent - - (cherry picked from commit 741d39251468429788846c8386f445eeede2f7ba) - -commit 23e6e6787daed0e4268ab416dde5bb990e6ee679 -Author: Daniel-Constantin Mierla -Date: Mon Jan 1 13:39:58 2018 +0100 - - xcap_client: cast curl setopt params to avoid analyzer warnings - - (cherry picked from commit 1f5ba1a5ac2f652cd3a374200411767286803f9f) - -commit bc9f93c2b4029307ed0549365883605465fb4017 -Author: Daniel-Constantin Mierla -Date: Sun Dec 31 10:52:05 2017 +0100 - - websocket: print len in debug messages when decoding frame - - (cherry picked from commit 2865a1f16490cadb1c07864f270976d7311373a9) - -commit 39c698d637def67f79a095279d2ca1afa2ccaca8 -Author: Daniel-Constantin Mierla -Date: Sun Dec 31 10:47:16 2017 +0100 - - websocket: clang format the code - - (cherry picked from commit fa7688bb321bbee3d8d6d6c5692c0d142c0830a3) - -commit a6ad018a1d7d796272bc0cb07f7540c711990e37 -Author: Daniel-Constantin Mierla -Date: Sun Dec 31 10:39:16 2017 +0100 - - websocket: early check for frame size to fit max buf size - - - avoid decoding a large buffer and then fail - - allocate BUF_SIZE+1 for fragment buffer, coherent with other recv - buffers - - (cherry picked from commit 3302687e2b995ee9faab1655e6bb5e5d4a0dbc87) - -commit 95e0976ce7e1976664f5ae107936e94e6fd618f0 -Author: Daniel-Constantin Mierla -Date: Sat Dec 30 16:57:42 2017 +0100 - - core: resolve - early safety checks to deal faster with broken dns responses - - (cherry picked from commit 20752cf945d4ba0660d321d73efff5c93f6d20a8) - -commit 461b03d166729c41502c683a6e425dd7daf04d03 -Author: Daniel-Constantin Mierla -Date: Fri Dec 29 11:18:04 2017 +0100 - - jsonrpcc: init sockaddr_in structure - - (cherry picked from commit 539abf29103875f7412b7b3b95c5f6663a7afbe8) - -commit 27787c332b9ea256e135486e1b4f38f54711ca19 -Author: Daniel-Constantin Mierla -Date: Fri Dec 29 11:17:25 2017 +0100 - - janssonrpcc: use size of data type to allocate memory - - (cherry picked from commit dba589a52bddc2833c41c91287a328d22fbc2712) - -commit ea7900b1e0557d09d0eb6bd233ae424bcf694cf2 -Author: Daniel-Constantin Mierla -Date: Fri Dec 29 11:14:56 2017 +0100 - - core: resolve - use unsigned short int to match dns result types - - (cherry picked from commit b46d113e941c5429914069be48faa181ba1e805e) - -commit f2650f0b0d829f70a44f29afe5cf9236b274a497 -Author: Daniel-Constantin Mierla -Date: Thu Dec 28 17:05:22 2017 +0100 - - dialog: replaced inline function with a single log with a macro - - - makes possible to get the file name and line of its usage - - (cherry picked from commit eb016670220c20f1156be838ca6645265b64eacc) - -commit 7e8e7e57608e54de4b81c7522cbec89cc89bcb4c -Author: Daniel-Constantin Mierla -Date: Wed Dec 27 09:18:46 2017 +0100 - - snmpstats: free allocated vars in case of error during init snmp tables - - (cherry picked from commit 4d4c91a709aff0b9b15fcc02b44de2106e65903e) - -commit 85555549bac9be735ad81b8deff6c8bd6615ed56 -Author: Daniel-Constantin Mierla -Date: Tue Dec 26 09:52:33 2017 +0100 - - snmpstats: free table_info in case of error for SIPStatusCodesTable - - (cherry picked from commit 172cfd3494db462593da2d04feb6528f9ad3a84c) - -commit 087b629506261576509efde32ac83e86349e3aee -Author: Daniel-Constantin Mierla -Date: Mon Dec 25 21:51:05 2017 +0100 - - snmpstats: init sigaction var and close fd in case of errors - - (cherry picked from commit 0b7b291ab153472c7d371c29e0c4dfa20c492f08) - -commit 5a03a7a0a014b14b2e528453cc1641aa0fc9e69d -Author: Daniel-Constantin Mierla -Date: Sun Dec 24 08:53:21 2017 +0100 - - topos_redis: store and load local side contacts for branch - - (cherry picked from commit 98a993661cd4fbb574844fbfb012a052cc8e6989) - -commit 171e3b9f197ffebaa2b1a1959ba109bb442764a2 -Author: Daniel-Constantin Mierla -Date: Fri Dec 22 16:54:50 2017 +0100 - - tm: handle success return code by forward_request() for e2e ACK - - - forward_request() returns 0 on success, propagate 1 to config wrapper - - (cherry picked from commit 52111974b4571e0562e8e731df80f48dbc504915) - -commit aa75f8543a665b6aac3da2dcf5be10df6a04852e -Author: Daniel-Constantin Mierla -Date: Fri Dec 22 16:54:29 2017 +0100 - - core: forward - add note about return code of forward_request() - - (cherry picked from commit 05509f322d5b4ce23b6e5918f4d6bc4e48678202) - -commit a573d8faabfe7f34083cd8efff25fde1c5276cb8 -Author: Vicente Hernando -Date: Fri Dec 22 15:01:35 2017 +0100 - - app_lua: update doc about LUAJIT variable and building against LuaJIT libraries. - - (cherry picked from commit 55e3b72692d500a988b085c73fefa87e91ff068b) - -commit 7d6d22f8312eda3487f1826d385d85116dbfd18e -Author: Vicente Hernando -Date: Fri Dec 22 12:11:45 2017 +0100 - - app_lua: LUAJIT variable to build agains LuaJIT compiler - - (cherry picked from commit 41ff35e2ec3f735f818c19cec6697c913dc1a0f7) - -commit 54190cdec461b5f85bebb9467159292ea37dd216 -Author: Daniel-Constantin Mierla -Date: Fri Dec 22 09:01:06 2017 +0100 - - sctp: clang format the code - - (cherry picked from commit ed5a3b04c79fbe071900d53a207c14a379679092) - -commit 7b5f6f7624e5a6bb47a1ccfb3d29bf15dced6f9c -Author: Daniel-Constantin Mierla -Date: Fri Dec 22 08:55:51 2017 +0100 - - sctp: note about using recent versions for libsctp and kernel - - (cherry picked from commit 12f313c6c7c9b6a9c12d8ee2693cb955c16afe35) - -commit 108047648d5f614aea5939060e502bd764ed9954 -Author: Daniel-Constantin Mierla -Date: Fri Dec 22 08:49:36 2017 +0100 - - sctp: removed risky workaround for dealing with old libksctp versions - - - writing over the size of field may have unexpected results - - (cherry picked from commit b8fb6f9f453a7ab72ea578e8469ae88a831ca0e9) - -commit f23191b8cf85efd5e7cb973608e893b038155a44 -Author: Daniel-Constantin Mierla -Date: Thu Dec 21 17:07:15 2017 +0100 - - evapi: detect the OS darwin as substring - - - adjust condition to suit analyzer - - (cherry picked from commit 81687628bc5fb90a6b126cd2b89c8725a4c3caab) - -commit 8428dbeff259e9d80e9715fb682a52ac271b094b -Author: Daniel-Constantin Mierla -Date: Wed Dec 20 13:56:25 2017 +0100 - - phonenum: Makefile rules to remove cpp object file - - (cherry picked from commit f170b300857510e91c7a78454be45b68326fc7b3) - -commit fe02ca6c76ab969277a1b5e9092a229b1a4a502b -Author: Dmitri Savolainen -Date: Wed Dec 20 13:07:35 2017 +0300 - - pv: correct sbranch params appending - - - some params (like dest uri) were not appended to branch - due to a copy-paste typo - - (cherry picked from commit e66f109c0d2cf657387ee1e0745ff2d55eebcaaa) - -commit 120bd10b63a948f7179e1335b78692c858932938 -Author: Daniel-Constantin Mierla -Date: Wed Dec 20 09:36:54 2017 +0100 - - call_control: keep reference to allocated buffer used for params - - (cherry picked from commit 37f6e1e7640b29263e85be9e8958ee14912e20a1) - -commit 5d3be2314434cc5207f9f87773ba8e1fe342f743 -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 12:04:29 2017 +0100 - - snmpstats: clang format the code - - (cherry picked from commit db0b73b0c69014aa0dee41a78d07800812c10746) - -commit 23b03bec84ec605472225373b0f83ee63c0cf35f -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 11:20:30 2017 +0100 - - snmpstats: keep sockets list pointer global - - - they are allocated and content could be referenced at runtime, thus no - free - - free allocated variables in case of errors - - (cherry picked from commit 8bc890f595005090479cad1670b4360817f307af) - -commit ff37363db2d85178a56b2c3cff51b099a98b2d17 -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 11:05:45 2017 +0100 - - db_berkeley: clang-format the code - - (cherry picked from commit bbedfa4c3db1b8ae02cabb1fa6b2748b7031c8e8) - -commit 789e6126195c00120f1ac79c1e1dec4aa9910df6 -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 10:06:59 2017 +0100 - - app_java: fix writing over the size of allocated buffer - - (cherry picked from commit 441acf646fa9cf2fd1733f05397a43245b98d322) - -commit 2673911a9866953661e95de7f6d63bc9c0524cb4 -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 10:02:42 2017 +0100 - - app_java: clang format the code - - (cherry picked from commit fddc58b97796904a17bb2d01f4480e095a5c4cda) - -commit dda0e156a9dc973d1d2cbcd39ce72f240895f034 -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 09:58:57 2017 +0100 - - app_java: global variables declared in c files - - - some renamed to avoid global reference conflicts due to common naming - - (cherry picked from commit c828cf872fe629381a8c9be24058d63add881071) - -commit 258d9009e8cd9f01863304ebbffeb4d7d5656626 -Author: Daniel-Constantin Mierla -Date: Tue Dec 19 09:04:13 2017 +0100 - - app_java: declare global variable in c file instead of header file - - (cherry picked from commit 93606c35ffdcd55ab98c5704880a6d5375aae299) - -commit 958d096dfdb1b569b1f00a6d11c3382926eb85b0 -Author: Carlos Cruz -Date: Thu Dec 14 17:52:26 2017 +0100 - - doc: time_mode param used for cdrs too - - (cherry picked from commit 49dd734c241be1531bf11bb5d1b3f4a658b35031) - -commit fb97acea191903ce28c8950cb95f9201ac516793 -Author: Carlos Cruz -Date: Thu Dec 14 16:33:04 2017 +0100 - - acc: use acc.time_mode to save cdrs in gmtime - - - reuse acc.time_mode modparam for cdr entries, storing start_time and - end_time in gmtime if time_mode is 4. - - GH #1358 - - (cherry picked from commit 63f747a9adcba51562b7ec6848d1f6454374bfa4) - -commit 2001fa779952d424032b8bc074f2c40a4171255a -Author: Daniel-Constantin Mierla -Date: Thu Dec 14 14:55:27 2017 +0100 - - kamctl: use VERIFY_USER variable to control if user check is done - - - help automating some commands such as acl grant - - (cherry picked from commit 28f107d0eb48c59f0b89dbd9fc0fa24c599ed5f9) - -commit 2dc91981abe7492ee55588ff0026892f055a712c -Author: Daniel-Constantin Mierla -Date: Tue Dec 12 09:49:04 2017 +0100 - - pua_rpc: use RPC flags for callbacks - - (cherry picked from commit 4d28f007d71d6b49486483ddc4b5307ea36506d5) - -commit 59de2edd14cdc6ca1744269f46e3c93b10d189e0 -Author: Daniel-Constantin Mierla -Date: Tue Dec 12 09:48:45 2017 +0100 - - pua: renamed MI flags to reflect use of RPC - - (cherry picked from commit 5c7bc8a3c1a289111c08334cc4500291f01324aa) - -commit d07ecc133d297adfc9a791f1d8eecf3e7250cbf7 -Author: Daniel-Constantin Mierla -Date: Wed Jan 17 22:48:11 2018 +0100 - - core: udp server - continue when failing to print debug with received chars - - - reported by GH #1403 - - (cherry picked from commit 099e784a250581d0c124d6110d3953bfc0716930) - -commit 476a922ad4d50b05a95e43c20c4a2b8b6a98a78f -Author: Daniel-Constantin Mierla -Date: Wed Jan 17 22:37:10 2018 +0100 - - core: udp server - cast printed debug chars to unsigned - - - reported by GH #1403 - - (cherry picked from commit 64a391a2408b1d34569947f8b028915ec3462e6d) - -commit 038b47b4d5157d61cfbce27acba6cf0ed345f3b9 -Merge: 63d328097 434f66ac4 -Author: Daniel-Constantin Mierla -Date: Tue Jan 16 08:49:05 2018 +0100 - - Merge pull request #1401 from sergey-safarov/docker - - pkg/docker: Updated reference to kamailio-ci (dockerfiles) repo - -commit 63d328097c43a27f72e3f59143f1b5add563febe -Author: Daniel-Constantin Mierla -Date: Sun Dec 24 08:50:51 2017 +0100 - - topos: update contact only for INVTE requests within dialog - - (cherry picked from commit 914e56b4bdb553234eaa9a0025e1cdf0c84001b6) - -commit 5cba238409e4e4b6381d291024eea1c3ed8cb5b4 -Author: Daniel-Constantin Mierla -Date: Sat Dec 23 19:42:36 2017 +0100 - - topos: sotre and load local side contacts in branch record - - - recover them on retransmissions, otherwise no contact header is added - on initial request routing - - reported by GH #1356 - - (cherry picked from commit dd1872fb5f876fc004c320a1daba55a5ce6f3dc2) - -commit 93ff80f39971589ab48ffa6a4903cae86948861f -Author: Daniel-Constantin Mierla -Date: Mon Jan 15 15:20:35 2018 +0100 - - textopsx: docs - fixed example for change_reply_status() - - (cherry picked from commit 6e1e7fe306ebf97fb27b8a1d9e4f57e139d418f2) - -commit 434f66ac4385c8aa1fcf6547041e03fab89bd90e -Author: Sergey Safarov -Date: Mon Jan 15 08:25:55 2018 -0500 - - pkg/docker: Updated reference to kamailio-ci (dockerfiles) repo - -commit b433948421f94258c636fcef88601e35360f0102 -Author: Timmo Verlaan -Date: Sat Jan 13 10:43:06 2018 +0100 - - nathelper: allow port to be specified in force_socket, fixes #1298 - - (cherry picked from commit 64cf6ee50f569cd398f66ad8d7921acf2e5627bc) - -commit 94e88ae464f7463a95fd89987e930c6b0c52285d -Author: Timmo Verlaan -Date: Wed Jan 10 16:30:04 2018 +0100 - - nathelper: fix force_socket documentation - - (cherry picked from commit bfdb6ae670464ca9ff5dbb2d4d9cf5a02afd36f6) - -commit 860dc28675993bc22644d7d2547747714066c02b -Author: Seudin Kasumovic -Date: Thu Jan 4 14:18:34 2018 +0100 - - erlang: fix missing to free memory used for param specification - - - ensure to destroy fixup param specification when send erlang message - - (cherry picked from commit 90ee13d21db9a57a9d4a855b857dd152f645500d) - -commit a6480c2b8f63ed02aebc13152b8c36149acaf92b -Author: Seudin Kasumovic -Date: Wed Jan 3 23:19:22 2018 +0100 - - erlang: fix restore index of parsed tuple - - Avoid to change origin index while parsing tuple. - - (cherry picked from commit 74778f3ac75432d475e9d54dc56f9c3b95c178a5) - -commit 867f8d18ed2a1c8c2af4e382942ca0d15789e8cb -Author: Seudin Kasumovic -Date: Wed Jan 3 23:17:16 2018 +0100 - - erlang: fix possible memory corruption - - Allocate sufficient memory for the terminating null of the string. - - (cherry picked from commit 13c71a14bfe4d2ee650521086bbae9920f95fcaa) - -commit cb5d201bf313955305e66c976bf77d87c7295ba9 -Author: Seudin Kasumovic -Date: Wed Jan 3 23:12:48 2018 +0100 - - erlang: fix never used value assigned to a variable - - (cherry picked from commit 6542a367638ec5f8a2b62994f8c309e7a2533962) - -commit f85f1033c5a30bc1b62758358da74254140de9f4 -Author: Seudin Kasumovic -Date: Wed Jan 3 23:08:23 2018 +0100 - - erlang: fix unreachable code - - (cherry picked from commit c061d6688c505544aecfc39a43e8c60d48875790) - -commit b8558289d363ac7591a63be136f013171542a655 -Author: Seudin Kasumovic -Date: Wed Jan 3 23:04:30 2018 +0100 - - erlang: improve error handling - - Ensure check value returned from function and log error. - - (cherry picked from commit b43609dec2c4089e02b11fd23099ab01b2ebc956) - -commit 1bf7918a01bd0e7528a7706421935d10bd11198d -Author: Seudin Kasumovic -Date: Wed Jan 3 23:00:22 2018 +0100 - - erlang: fix bad free - - Avoid to free non-pointer, likely causing a crash later. - - (cherry picked from commit 3680a1a6ec6971e79deb76daafc89cf2fe206c60) - -commit 4d8e0755ba8169e8d5655d5b571a02d6c8ac6afb -Author: Seudin Kasumovic -Date: Wed Jan 3 22:57:39 2018 +0100 - - erlang: fix memory leaks - - Ensure free used memory if parse of params failed. - - (cherry picked from commit 074eda76b3c2cb418832fd4b24436bf7f109b89e) - -commit a262553c9fe89f1543c9bf4275da3f9b07efada5 -Author: Seudin Kasumovic -Date: Wed Jan 3 22:51:52 2018 +0100 - - erlang: fix use of an uninitialized variable - - Ensure to initialize variable before use. - - (cherry picked from commit a379ef730bc129b630325672c9a39aa8c59139b9) - -commit aac37ac2aed455da79c406cc597ccc74d9138322 -Author: Seudin Kasumovic -Date: Wed Jan 3 22:26:09 2018 +0100 - - erlang: fix copy into fixed size buffer of node name - - Use length of node name string to avoid write past the end of the - fixed-size destination buffer. - - (cherry picked from commit 53a76a4ae828cf08fbdebe08918706bd7d7d76d2) - -commit 6e85e29f96fe0bafc3fafb815dc8b9e82ff0bee0 -Merge: f7ffaee47 edbfa1eae -Author: Daniel-Constantin Mierla -Date: Tue Jan 2 17:53:12 2018 +0100 - - Merge pull request #1388 from oyvindkolbu/5.1 - - usrloc: partion column name can be set via modparam - -commit edbfa1eae2df1b932dff0bf5b7182ef09592a37d -Author: Oyvind Kolbu -Date: Fri Dec 15 12:11:04 2017 +0100 - - usrloc: partion column name can be set via modparam - - (cherry picked from commit b933b2a7bf631b157bf81b86afffe6b8a43a0308) - -commit f7ffaee4726f31fede5ae639354b3bea5af55e0e -Author: Victor Seva -Date: Fri Dec 22 18:08:17 2017 +0100 - - http_async_client: fix initialization of tls_client_* and tls_ca_path module parameters - - fixes #1340 - - (cherry picked from commit 7c61d3f82bd0779a530f921bd69cd4b1b32e4e05) - -commit 4ec28f2c31f943b76508fd563bc43c4d9752de45 -Author: Bastian Triller -Date: Thu Dec 21 15:28:36 2017 +0100 - - pkg/kamailio/deb: fix module names in pkg description [skip ci] - - fix module names in description of package kamailio-extra-modules - - (cherry picked from commit 655db30d904275cf60c625323b38f2982746679e) - -commit 3a3dab1f62f196bb44e39fc88fb74310431358c1 -Author: Daniel-Constantin Mierla -Date: Wed Dec 20 19:42:10 2017 +0100 - - core: tcp - pass updated recv info to receive_msg() inside hep3_process_msg() - - - based on GH #1379 - - credits for troubleshooting and initial patch submission to - Amit Zigelman - - (cherry picked from commit ef28b61db70d32036ae6fdce72de7f8de94d3370) + uac_redirect: converted to the new module interface -commit f4be0308407d5539de0f3926f5325c272d7561ac -Author: Daniel-Constantin Mierla -Date: Sat Dec 16 12:20:26 2017 +0100 +commit 5617ce3c313a29ba62deb23d1fec7013ed2cd7e2 +Author: Mikko Lehto +Date: Fri Sep 28 11:01:38 2018 +0300 - app_sqlang: set architecture flags for squirrel interpreter - - - reported by GH #1372 - - (cherry picked from commit 38dc4dc10e63cb6c94d2cca30bae2a669114404a) + uac: converted to the new module interface -commit 578e60227859eaead7828924c08d40ae62f6228d -Author: Victor Seva -Date: Fri Dec 15 11:16:11 2017 +0100 +commit 7ecfe6af3c368efa78ad5a59c42c7d088e41d900 +Author: Mikko Lehto +Date: Fri Sep 28 10:57:44 2018 +0300 - db_mongodb: fix deprecation warning - - Since 1.5.0 mongoc_collection_find() is deprecated - > http://mongoc.org/libmongoc/1.5.0/mongoc_collection_find.html - - (cherry picked from commit 0ea71ce3cdfb1bcd837f96d8e36e1b296f24a9d6) + tsilo: converted to the new module interface -commit 788f220cd9673ed662399b610e8613478ec8a9ec +commit 169365c9cbdf993308e79fcb9f386adddbb4da61 Author: Victor Seva -Date: Fri Dec 15 10:50:58 2017 +0100 +Date: Fri Sep 28 10:59:10 2018 +0200 - xmpp: fix gcc 7 warnings - - > CC (gcc) [M xmpp.so] xode.o - > xode.c: In function 'xode_get_tag': - > xode.c:346:77: warning: comparison between pointer and zero character constant [-Wpointer-compare] - > if(parent == NULL || parent->firstchild == NULL || name == NULL || name == '\0') return NULL; - > ^~ - > xode.c:346:72: note: did you mean to dereference the pointer? - > if(parent == NULL || parent->firstchild == NULL || name == NULL || name == '\0') return NULL; - > ^ - > CC (gcc) [M xmpp.so] xstream.o - > xstream.c: In function '_xode_put_expatattribs': - > xstream.c:34:20: warning: comparison between pointer and zero character constant [-Wpointer-compare] - > while (atts[i] != '\0') - > ^~ - > xstream.c:34:12: note: did you mean to dereference the pointer? - > while (atts[i] != '\0') - > ^ - > CC (gcc) [M xmpp.so] xode_from.o - > xode_from.c: In function '_xode_put_expatattribs': - > xode_from.c:35:20: warning: comparison between pointer and zero character constant [-Wpointer-compare] - > while (atts[i] != '\0') - > ^~ - > xode_from.c:35:12: note: did you mean to dereference the pointer? - > while (atts[i] != '\0') - > ^ - - (cherry picked from commit 8994daba2b60bf020f982f108ab560f9aa68723f) + sipcapture: updated to the new mod interface -commit 2b5c88eda48fc50a582318d8ccdfa7c121806ee6 -Author: Victor Seva -Date: Fri Dec 15 10:44:26 2017 +0100 +commit 7e80003fd9f9cb2effeaf923558325faadead2b2 +Author: Federico Cabiddu +Date: Fri Sep 28 10:55:36 2018 +0200 - auth_radius: fix gcc 7 warning - - > CC (gcc) [M auth_radius.so] sterman.o - > sterman.c: In function 'extract_avp': - > sterman.c:78:61: warning: comparison between pointer and zero character constant [-Wpointer-compare] - > if(!q && p == vp->strvalue && vp->strvalue + sizeof(char) != '\0') { - > ^~ - > sterman.c:78:33: note: did you mean to dereference the pointer? - > if(!q && p == vp->strvalue && vp->strvalue + sizeof(char) != '\0') { - > ^ - - (cherry picked from commit 35b3d3c32d775ccea28f36d81a0b84e4a168db89) + rtjson: converted to the new module interface -commit 0ed489410b0cd3f34cb030af9ac434bb494fe3ba +commit 5b6ba549ab9bab7482e5a52424b2823e90e16544 Author: Victor Seva -Date: Fri Dec 15 10:35:55 2017 +0100 +Date: Fri Sep 28 10:56:04 2018 +0200 - uac: fix gcc 7 warning - - > CC (gcc) [M uac.so] uac_reg.o - > uac_reg.c: In function 'reg_ht_add': - > uac_reg.c:558:81: warning: ?: using integer constants in boolean context [-Wint-in-bool-context] - > uac_reg.c:502:13: - > p = p + ((bsize)?(bsize):(dst)->len) + 1; \ - > ~~~~~~~ - > uac_reg.c:558:81: - > reg_copy_shm(&nr->callid, &str_empty, reg_keep_callid ? UAC_REG_TM_CALLID_SIZE : 0); - > uac_reg.c:502:14: note: in definition of macro 'reg_copy_shm' - > p = p + ((bsize)?(bsize):(dst)->len) + 1; \ - > ^~~~~ - - (cherry picked from commit ea056fe4cc4c7b0dce9aaa1423d2fa3d89804b69) + rtpengine: updated to the new mod interface -commit 37d56a80ac28acb35190016f3459c4f85c4fdc81 +commit ea21e8d5541c9add11800111eb1083a295aaa7c4 +Author: Federico Cabiddu +Date: Fri Sep 28 10:53:42 2018 +0200 + + rtimer: converted to the new module interface + +commit ca4a43b6cc09823f433897ebffef0b40c8b934cf Author: Victor Seva -Date: Fri Dec 15 10:14:35 2017 +0100 +Date: Fri Sep 28 10:53:23 2018 +0200 - sms: fix gcc 7 warning #1369 - - > CC (gcc) [M sms.so] libsms_modem.o - > libsms_modem.c: In function 'initmodem': - > libsms_modem.c:230:36: warning: '%s' directive writing up to 128 bytes into a region of size 91 [-Wformat-overflow=] - > clen=sprintf(command,"AT+CPIN=\"%s\"\r",mdm->pin); - > ^~ - > libsms_modem.c:230:8: note: 'sprintf' output between 12 and 140 bytes into a destination of size 100 - > clen=sprintf(command,"AT+CPIN=\"%s\"\r",mdm->pin); - > ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - (cherry picked from commit 537a40b4745099f3265242377c39057a680fc3ee) + rr: updated to the new mod interface + +commit 879f48ca5b088349e02d5e5bf9390247c662a559 +Author: Federico Cabiddu +Date: Fri Sep 28 10:51:22 2018 +0200 + + nsq: converted to the new module interface -commit 22077f9c04934ccf6dbbc840592d085cea58d6ea +commit 19460b83f99a6bf6a199eb00aa167b85f5a48e02 Author: Victor Seva -Date: Thu Dec 14 20:39:21 2017 +0100 +Date: Fri Sep 28 10:51:17 2018 +0200 - travis-ci: enable parallel builds on stretch and sid based images - - (cherry picked from commit 9a262f816261fdaf371fbfd34b6460b6221df9ef) + phonenum: updated to the new mod interface -commit aaef146868dfd3117f7130a95c908d47de0cb56f +commit bb14e545c30db50585777da97132a49fcb7f7c6b Author: Daniel-Constantin Mierla -Date: Thu Dec 14 14:05:39 2017 +0100 +Date: Fri Sep 28 10:48:37 2018 +0200 - core: events - fix getting str pointer for EXTRA_DEBUG log message - - - reported by GH #1367 - - (cherry picked from commit 49a12679ffa20ccef4d9cc14c426d4d5c2567816) + smsops: updated to the new mod interface -commit 83a28b3906c6262e4909aac284958e8b9aa024a3 +commit 3466b0c868c9f16fb1b4542e29eb1c9817661378 Author: Daniel-Constantin Mierla -Date: Thu Dec 14 08:23:13 2017 +0100 - - group: use proper variable to get the domain - - - mode debug messages - - closes GH #1363 - - (cherry picked from commit f4a1a9b3b79a0437bc2fa5e68fc82d1415af1a5e) +Date: Fri Sep 28 10:45:32 2018 +0200 + sms: updated to the new mod interface -===================== 2017-12-11 Version 5.1.0 Released ================== +commit 090041014dfc26563151a9b87b97b45721291ac9 +Author: Daniel-Constantin Mierla +Date: Fri Sep 28 10:40:45 2018 +0200 -===================== Changes Since Version 5.0.0 =========================== + snmpstats: updated to the new mod interface -commit 0a7156ccfe0baa53f7305f1824b6ddf79d9310b8 +commit 8a87b0b88807a55fdeaa1ab27e60d4abad9f472b Author: Daniel-Constantin Mierla -Date: Mon Dec 11 16:29:12 2017 +0100 +Date: Fri Sep 28 10:35:30 2018 +0200 - pkg/kamailio/deb: version set to 5.1.0 + sqlops: updated to the new mod interface -commit 99ae8b40ee9df01830d33cdc6daa872eb7650e2b +commit 9f7afb9c682ecacd3ea39dc19985fe461138bbb8 Author: Daniel-Constantin Mierla -Date: Mon Dec 11 16:10:02 2017 +0100 +Date: Fri Sep 28 10:32:27 2018 +0200 - pkg/obs: set v5.1.0 for obs spec + ss7ops: updated to the new mod interface -commit 2c169f609322a89d9f346ec598d4cbc12f7ff0c2 +commit 1cb84c9d1d9feec5ee932fb859a08eedcf0e5ef4 Author: Daniel-Constantin Mierla -Date: Mon Dec 11 15:39:09 2017 +0100 +Date: Fri Sep 28 10:27:27 2018 +0200 - ChangeLog: content updated for v5.1.0 + statistics: updated to the new mod interface -commit cc0ece7af411038afd0340c16ccabea985bbc7ff -Author: Daniel-Constantin Mierla -Date: Mon Dec 11 15:27:43 2017 +0100 +commit e43ca2bc805c7d13e733c095ade9c55d4340ecf3 +Author: Victor Seva +Date: Fri Sep 28 10:46:27 2018 +0200 -commit cc0ece7af411038afd0340c16ccabea985bbc7ff -Author: Daniel-Constantin Mierla -Date: Mon Dec 11 15:27:43 2017 +0100 + peering: updated to the new mod interface + +commit 9b9b7ad7a8e0b6b13a11bcf054ccbe0bf9bac215 +Author: Victor Seva +Date: Fri Sep 28 10:43:59 2018 +0200 - Makefile.defs: version set to 5.1.0 + osp: updated to the new mod interface -commit 01a3818582bc2c4baf8d94ee88e4a38d7cc10f28 -Author: Daniel-Constantin Mierla -Date: Mon Dec 11 15:16:20 2017 +0100 +commit f5b2b161d2f0c69d8c467ea28eb372ef27b15d97 +Author: Victor Seva +Date: Fri Sep 28 10:41:02 2018 +0200 - pkg: updated version in some old spec files + nosip: updated to the new mod interface -commit 5e59f021f057d8b72348ab4819262b6b7c92d8c1 -Author: Daniel-Constantin Mierla -Date: Mon Dec 11 14:51:58 2017 +0100 +commit 79d1e6aeb5512ec776d6621d06b0bdfccb828d6f +Author: Victor Seva +Date: Fri Sep 28 10:39:06 2018 +0200 - ChangeLog: imported the commit logs for v5.1.0 + nathelper: updated to the new mod interface -commit 604957b93e711c901238a62291a184471f524985 -Author: Daniel-Constantin Mierla -Date: Mon Dec 11 14:40:44 2017 +0100 +commit 2c4af88de08283b6e6c998046fad3c6e07305eb0 +Author: Federico Cabiddu +Date: Fri Sep 28 10:39:49 2018 +0200 + + ndb_redis: converted to the new module interface + +commit fb43a51d3cb8f7d8a10e0ac21377f1d48ba61931 +Author: Federico Cabiddu +Date: Fri Sep 28 10:37:54 2018 +0200 - core: README - INSTALL small updates for v5.1.0 + ndb_cassandra: converted to the new module interface -commit 7b4b17219cc7e54aaa5c0eeb989d5992dffcb545 +commit c520cf35bf72c7da2ce6814c53e702f04f1b6f02 +Author: Federico Cabiddu +Date: Fri Sep 28 10:35:17 2018 +0200 + + nat_traversal: converted to the new module interface + +commit b5b487283eed424a3764fb44b8ad912de382df3e Author: Victor Seva -Date: Mon Dec 11 12:45:20 2017 +0100 +Date: Fri Sep 28 10:34:35 2018 +0200 - pkg/kamailio/deb: xenial needs libbson-dev too for libmongoc-dev - - (cherry picked from commit 55525d28864eba285bef3eff1d513b0769dd8ba4) + msrp: updated to the new mod interface + +commit 671c4e36ce7529afa9352bacbb01fe98dc9e8f54 +Author: Federico Cabiddu +Date: Fri Sep 28 10:33:33 2018 +0200 -commit 8e2b33aeff4adee4c8b458040a2a657ffc0f01fd + msilo: converted to the new module interface + +commit 87f6229b54c00946245497f785e17eae8ab84354 Author: Victor Seva -Date: Mon Dec 11 11:15:20 2017 +0100 +Date: Fri Sep 28 10:32:09 2018 +0200 - pkg/kamailio/deb: kamailio-mongodb-modules [skip ci] - - (cherry picked from commit 84967d08aa52b7b70c8263829fa4c2429709025f) + misc_radius: updated to the new mod interface -commit 24ad1ff7b9acc4ff699054d9b22f251bd6da6248 +commit dc67e46666b2fba36195bcc7b48606080b45cf1a Author: Victor Seva -Date: Mon Dec 11 09:25:21 2017 +0100 +Date: Fri Sep 28 10:30:27 2018 +0200 - pkg/kamailio/deb: integrate xenial libgeocoding change [skip ci] - in backports/xenial script - - * add wrap-and-sort on all scripts - - (cherry picked from commit 9420a2ffc50f5eddd113f2e4b43da35076497ff2) + mediaproxy: updated to the new mod interface -commit a2a0d0a9b3a744c28e9e319b52287e8073649849 -Author: Daniel-Constantin Mierla -Date: Sun Dec 10 09:34:29 2017 +0100 +commit 741e1de8fb3857e9c8a41d8da95821937fe70426 +Author: Victor Seva +Date: Fri Sep 28 10:27:16 2018 +0200 - pkg/deb: ubuntu xenial has a dedicated package for libgeocoding - - - other debian varians have it inside libphonenumber - - (cherry picked from commit 9063113be66678103f509d98f24a74fa211b9a68) + matrix: updated to the new mod interface -commit bf023ac2e04010f647147e9c68324d2337554464 -Author: Daniel-Constantin Mierla -Date: Sun Dec 10 09:21:52 2017 +0100 +commit 68bd21b3db7de94476184bea1271623134f0cb9f +Author: Federico Cabiddu +Date: Fri Sep 28 10:31:38 2018 +0200 - db_berkeley: removed inline declaration that break the linking - - (cherry picked from commit 373e99fd593814b55b307d0dc4a29e0c53f34850) + mqueue: converted to the new module interface -commit 85a46bdd92963589f3d3575e8c3c2d33597bae38 -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:49:57 2017 +0100 +commit 4122e85deafaeb20ca3fddf3581e368aafa2c94b +Author: Federico Cabiddu +Date: Fri Sep 28 10:30:07 2018 +0200 - ims_usrloc_scscf: remove inline to functions that break the symbol linking - - (cherry picked from commit 5b35d7e372a0c0fb8d0047eb952066939cd98463) + mohqueue: converted to the new module interface -commit d8fe696139c776e10b605e396f4e8c6d7a9e842f -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:49:35 2017 +0100 +commit 8603098e9506ee30cb1671710f93ff945fc26eae +Author: Federico Cabiddu +Date: Fri Sep 28 10:28:34 2018 +0200 - ims_charging: remove inline to functions that break the symbol linking - - (cherry picked from commit 4e03e218cbfa06253d22f85eb21c27a0951ff50e) + memcached: converted to the new module interface -commit 5bde5d47e944cd55e1d1476c46b5f24d20ef0838 -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:47:50 2017 +0100 +commit f2d328b6c6edf3d476f6083929cac989635572b2 +Author: Federico Cabiddu +Date: Fri Sep 28 10:26:37 2018 +0200 - db_perlvdb: remove inline to functions that break the symbol linking - - (cherry picked from commit 8dc82f3ac87502dcf149f7b46367bfc3c45f2621) + maxfwd: converted to the new module interface -commit 17ad3546e38dde4c893fd6e3394615e34c88466e -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:47:33 2017 +0100 +commit 6a246bc4be37f0db208daf8adaa7921689d54829 +Author: Federico Cabiddu +Date: Fri Sep 28 10:24:23 2018 +0200 - cdp: remove inline to functions that break the symbol linking - - (cherry picked from commit 76a262f4c39ecb48410f0cb531cf144baf8105e6) + malloc_test: converted to the new module interface -commit 4133939a898d1e1c6d40c5a7292353c4de9819eb -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:46:07 2017 +0100 +commit 75e21e66186e3397d5b8fb4ecce93d4b434b6550 +Author: Victor Seva +Date: Fri Sep 28 10:24:12 2018 +0200 - auth_diameter: init socketfd variable - - - remove inline to functions that break the symbol linking - - (cherry picked from commit f3a37060232c2a666e9709f4071ced344a44b1e3) + mangler: updated to the new mod interface -commit 1052fae5d616bc42e1fda5165e7ccd46c87dbbc7 +commit 90a4a33b175fbc415e8f6aecb85762dcd00c2343 Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:45:08 2017 +0100 +Date: Fri Sep 28 10:23:38 2018 +0200 - phonenum: linking with libphonenumbers requires -lgeocoding - - (cherry picked from commit 3e80324168536fbb97a592254725f2aa6ea589af) + topos_redis: updated to the new mod interface -commit 4fcf33efe44cf903129623477557778c9be218cf +commit 7c957bb6c19d959acba95c10f119105d86a9b6f8 Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:44:28 2017 +0100 +Date: Fri Sep 28 10:21:15 2018 +0200 - misc_radius: fixed name of function exported to cfg - - (cherry picked from commit 9a21a25a831d1ce241785eba92819be71af861ef) + topos: updated to the new mod interface + +commit ec6632664d3d40c7d9856be2b0919c57ffd01d78 +Author: Victor Seva +Date: Fri Sep 28 10:21:28 2018 +0200 + + log_systemd: updated to the new mod interface + +commit a569008ea084a6b22a15349e7f8bbd0bfe90925f +Author: Victor Seva +Date: Fri Sep 28 10:19:15 2018 +0200 + + ldap: updated to the new mod interface + +commit 678b1d656b3c4ad3da160dbe34e0fd19a9409748 +Author: Federico Cabiddu +Date: Fri Sep 28 10:20:47 2018 +0200 + + log_custom: converted to the new module interface -commit e27ad201d430636a4b699054dffea4e4b4dc967a +commit 3ac217e6a4547ae451b3f9557a76d08e36225fe6 +Author: Federico Cabiddu +Date: Fri Sep 28 10:19:10 2018 +0200 + + lcr: converted to the new module interface + +commit 4fb89df5c223079147ca23a24f5d0ead4a6c6d0b Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:43:22 2017 +0100 +Date: Fri Sep 28 10:18:02 2018 +0200 - acc_diameter: use acc api to parse extra string - - - remove inline to avoid missing symbol in linker - - (cherry picked from commit fc65848a680006a37b71dbdad21bdc9902eff22f) + uid_auth_db: updated to the new mod interface -commit 2c640b4415bfbf8d733ca8e7913c31d6ad22bc90 +commit f8f601d84a9719dc4268cc3e254cdf4c3d6085f1 Author: Daniel-Constantin Mierla -Date: Sat Dec 9 13:41:29 2017 +0100 +Date: Fri Sep 28 10:15:31 2018 +0200 - rls: define cfg function with two parameters even one is used - - (cherry picked from commit 03c4439c0bbe40209ded86ca8ddddd496893ecfc) + uid_avp_db: updated to the new mod interface -commit b60b639a31d26d02aabea22d55b40773a23d5a4b -Author: lazedo -Date: Fri Dec 8 19:36:20 2017 +0000 +commit aa214a7570179a5dafaff5ea07e251ee6c384c28 +Author: Federico Cabiddu +Date: Fri Sep 28 10:16:39 2018 +0200 - presence: update record_route in database - (cherry picked from commit e52547956462ad53032be95ff5f2701785dfdd2a) + kex: converted to the new module interface -commit 98528af1b87526395339aa3ed2d176b77b897740 -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 09:23:38 2017 +0100 +commit 092cecf3cdb407e62a8fed98f49c88030663f846 +Author: Victor Seva +Date: Fri Sep 28 10:16:38 2018 +0200 - kamctl: regenerated scripts to create database structure for presence + keepalive: updated to the new mod interface -commit e5a19d4e073b6cd8c910896792bb44c80b9c12ec -Author: lazedo -Date: Wed Nov 29 10:15:27 2017 +0000 +commit c621b92791bd370725d944cb905565e70d5bdada +Author: Federico Cabiddu +Date: Fri Sep 28 10:14:07 2018 +0200 - schema: allow null in active_watchers reason - - (cherry picked from commit 2eccc2342b929fea96bd006f386948f483e62d06) + ims_usrloc_scscf: converted to the new module interface -commit a4f2a398c6bf3009955d43c4bfcae76d0c5fa23f -Author: Daniel-Constantin Mierla -Date: Sat Dec 9 08:55:25 2017 +0100 +commit e088ef7f583c4af256a689cfa4a6356c2dad88e8 +Author: Victor Seva +Date: Fri Sep 28 10:12:43 2018 +0200 - ipops: exported functions to kemi framework - - (cherry picked from commit c11af868d6c945a0a83a3b20c1b46319f139b2c5) + kazoo: updated to the new mod interface -commit 47f3147385e827e309f49d13d4b7bcaeb8aef752 -Author: Daniel-Constantin Mierla -Date: Fri Dec 8 23:08:25 2017 +0100 +commit d280a9c7cd72a2735bfcb52b7fc860d423e7b14a +Author: Federico Cabiddu +Date: Fri Sep 28 10:12:03 2018 +0200 - ipops: use sip_msg_t type - - - set cfg functions signatures with two parameters - - (cherry picked from commit d88572eeb90ca63a07aac15a719a99e5c77b18af) + ims_registrar_scscf: converted to the new module interface -commit a0bbb14169eb82ffe5936c0fe73a5cc943407e83 +commit db499f51885dad58727575d9285b81911999ec84 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:47:39 2017 +0100 +Date: Fri Sep 28 10:09:35 2018 +0200 - sipdump: safety check for received address - - (cherry picked from commit f6a05336de65bb929854c5843e5aa821901b63eb) + uid_domain: updated to the new mod interface -commit b8698724134095814339701c19f0d02bb37caa89 +commit 98c80f23dcea3eb1b4ed1b47674d443a18450a18 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:44:56 2017 +0100 +Date: Fri Sep 28 10:03:24 2018 +0200 - rls: avoid walking a null string - - (cherry picked from commit 5f62d05180c7148f3899732dfc0da44034a314f8) + uid_uri_db: added missing field in end struct placeholder -commit 7b4a653abef51afe6a6289048ed989ba969c1310 +commit d5f47f6610927b12b2a10ce2ce16a35590d9a63f Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:44:01 2017 +0100 +Date: Fri Sep 28 10:02:55 2018 +0200 - pua: safety check for params values - - (cherry picked from commit a009a5bf4f145b4e877e5ba41d218607c30849ec) + uid_gflags: updated to the new mod interface -commit 968722b7b6769c1416cc35b23969b06ce3416181 +commit ca967192b792d2cb07ffce4c9bc47862169d285b Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:43:17 2017 +0100 +Date: Fri Sep 28 09:57:38 2018 +0200 - auth_ephemeral: init the return code - - (cherry picked from commit 236b0b4bca0ce8931bd06fd88720f3293b651682) + uid_uri_db: updated to the new mod interface -commit d86963283cd7a58d94929959ca09ed31ae9bd116 +commit dcc8c0ecd54f2a00c19c4a0d3031aca358a91d5e Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:42:19 2017 +0100 +Date: Fri Sep 28 09:52:37 2018 +0200 - tls: safety checks for select values - - (cherry picked from commit 084364becd2f6f5d6e620721cb0837466c3a2f31) + textops: proper name in comment for mod init callback in mod exports -commit 9c4c8b14ddcb26b9514fb91f660b18ba12ea4572 -Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:41:53 2017 +0100 +commit e9ef6b90a4b2c4e224641c9def282d43ed19bda4 +Author: Federico Cabiddu +Date: Fri Sep 28 10:09:07 2018 +0200 - core: select - init proto string to udp - - (cherry picked from commit da31e70a2c63454dd7126d6ed47be977f36c73f0) + ims_registrar_pcscf: converted to the new module interface -commit 8f1872a27b406cfcd3300595c06ab53cb79eb082 -Author: Daniel-Constantin Mierla -Date: Fri Dec 8 16:41:35 2017 +0100 +commit 7b70c77fc13482ea17e066ce3cec7231a5b80531 +Author: Victor Seva +Date: Fri Sep 28 10:07:58 2018 +0200 - core: receive - clang format the code - - (cherry picked from commit b9bbeeb11df841845d9f00897008fedf2c2eb9b6) + jsonrpcs: updated to the new mod interface -commit edb3c0abfc2712aef8e6ec562aa0d2170dc81120 -Author: Daniel-Constantin Mierla -Date: Fri Dec 8 15:18:05 2017 +0100 +commit a2b385de1fa82fa2fe5b996d75c592cb2670987d +Author: Federico Cabiddu +Date: Fri Sep 28 10:05:06 2018 +0200 + + ims_qos: converted to the new module interface - db2_ops: safety check for input parameter - - (cherry picked from commit 1be7a6903ace085e7518fa0d358a4ca899ee938f) +commit 3ad0798764493efebc1d4bfd6546a8b3b29108f8 +Author: Victor Seva +Date: Fri Sep 28 10:02:11 2018 +0200 -commit e5d96dec3f986a2d98ea5e3c09da1fac3f45c14a -Author: Daniel-Constantin Mierla -Date: Fri Dec 8 15:01:18 2017 +0100 + jsonrpcc: updated to the new mod interface - db_postgres: avoid potential double free if sb url parsing fails - - (cherry picked from commit 3614b4e66d1b57dc722139fc0e1ccd8d838f13ee) +commit 6bc75fd2eab0879fc612dc958d61648bb58bc94d +Author: Federico Cabiddu +Date: Fri Sep 28 10:01:53 2018 +0200 -commit c31f33de17067cbe29042b4558f28aad59ec25f0 -Author: Daniel-Constantin Mierla -Date: Fri Dec 8 14:51:26 2017 +0100 + ims_ocs: converted to the new module interface - cplc: null terminate log string - - - reset field to avoid double free - - (cherry picked from commit 66051f400c0a1dcd472f0c9a7957b24e9cb54a07) +commit 7319f418f43cbe4cbe48c0f9ffa8975f571ffb20 +Author: Federico Cabiddu +Date: Fri Sep 28 09:58:12 2018 +0200 + + ims_isc: converted to the new module interface -commit bca9c74a4ab320452e0c4e313ef796730648b071 +commit e7b2d62670de08e71fdbfa7ec84877d1572b13fb Author: Victor Seva -Date: Fri Dec 8 14:25:49 2017 +0100 +Date: Fri Sep 28 09:57:32 2018 +0200 - Makefile.groups: add evrexec module to extra group - - (cherry picked from commit abc9c4f73f215cf7955c14cb47944fc880eaded3) + json: updated to the new mod interface -commit 6e358a40a8493877f0e953e42d730706b93e6b01 +commit a4edcc32f14488ac6441beb8f9720be40ab47cc0 Author: Victor Seva -Date: Fri Dec 8 14:16:52 2017 +0100 +Date: Fri Sep 28 09:54:25 2018 +0200 - pkg/kamailio/deb: phonenum requires libphonenum >= 7 - - * remove jessie support - - (cherry picked from commit c804420cd30519f6a67d916b4e9201424c293690) + janssonrpcc: updated to the new mod interface -commit bdd347b1f6c4eeaf9aaf07967d945deda84b835e -Author: Victor Seva -Date: Fri Dec 8 12:29:12 2017 +0100 +commit 5744e2e87d876e500bfb345df061bedb8e2dc80f +Author: Federico Cabiddu +Date: Fri Sep 28 09:53:54 2018 +0200 - pkg/kamailio/deb: kamailio-phonenum-modules [skip ci] - - (cherry picked from commit 5a2fcd525a211fe9e1b3c05788b67e6deda2c269) + ims_icscf: converted to the new module interface -commit de22721f09fd3776586a020d1dfa373f69a88cbd -Author: Victor Seva -Date: Fri Dec 8 09:32:46 2017 +0100 +commit 9083c37bafc7e065d21ba58e481fe3a69069f01d +Author: Federico Cabiddu +Date: Fri Sep 28 09:49:45 2018 +0200 - pkg/kamailio/deb: geoip2 module [skip ci] - - fix #1352 - - (cherry picked from commit f4f2b7b201d1cc5bbb0cc915835873a1e03270ac) + ims_diameter_server: converted to the new module interface -commit 39d85037b30837024c4efd83318bff826f5e9877 +commit 604e5ea2c21f908ac5db291e8dd49dfd28d08dc1 Author: Victor Seva -Date: Fri Dec 8 12:42:17 2017 +0100 +Date: Fri Sep 28 09:46:36 2018 +0200 - travis-ci: use kamailio/pkg-kamailio-docker:5.1-stretch + jansson: updated to the new mod interface -commit f70d8d0833c0873166f5703890276f10828e1f1a +commit 2544164e765efcb1ad7d1b932466573be0f0160b Author: Daniel-Constantin Mierla -Date: Fri Dec 8 12:17:07 2017 +0100 +Date: Fri Sep 28 09:02:58 2018 +0200 - app_python: enabled rpc command to reload the script - - - reload command performs the mod_init and child_init operations - - not tested yet - - (cherry picked from commit 22975d721b2ff573594575f5975fc9eff141b3e2) + textops: updated to the new mod interface -commit 1bd6a69ff894626f16c6ff678c817a1ca418f506 +commit 1784e2a47593dabb7f69e6387e18722be2594242 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 10:53:18 2017 +0100 +Date: Fri Sep 28 08:29:25 2018 +0200 - core: kemi - removed redundant anchor operation - - (cherry picked from commit 7ed21aabfab384ae3ea8c2e683d62256cb3f0713) + topoh: updated to the new mod interface -commit 38ac5f15029a2f5f94f8065c0e37590247956426 +commit e41b385a9f1680e4c2fec9718a28bf85f449362b Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:47:01 2017 +0100 +Date: Fri Sep 28 08:24:28 2018 +0200 - tm: restore backup char inside ki_t_check_status() - - (cherry picked from commit cae249d58c1155c2f13c56e8f1251fcadb5483c0) + textopsx: updated to the new mod interface -commit 68055f304519addc05669e0820dd501b2a62ae5c +commit 7f79c64ce1fe405e7ad9bc43b0a2d92d57e7aaa3 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:31:21 2017 +0100 +Date: Fri Sep 28 08:16:35 2018 +0200 - textopsx: proper check for null value inside ki_modify_hf() - - (cherry picked from commit 5d813bb3abd1a9a0ee080bf67db2f5502772a3be) + imc: updated to the new mod interface -commit e1cee88559ca075ef48afbffd11acc8e970610f2 +commit e7f95bd9cb3f6541e00ef434dc8515cb4450448e Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:27:11 2017 +0100 +Date: Fri Sep 28 07:29:49 2018 +0200 - rabbitmq: proper test of pv cache lookup return - - (cherry picked from commit de4a32b02ddaf94b0ad4ed06a0b4fa5bb9c1a10e) + uri_db: update to the new mod interface -commit 4628c97ad0ef95fd2f11459eac99edfcd9c33c85 +commit 088169b4712332d47dc39241807130550520f9e6 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:25:12 2017 +0100 +Date: Thu Sep 27 23:54:04 2018 +0200 - presence: increased the size of db update arrays in update_subs_db() - - (cherry picked from commit 816d2cd44d96245b5a5b53505d6fbc350bda378c) + app_python3: updated to the new mod interface -commit ef849f0dcb61f45b5c253f6102c403bfab783994 +commit 2322ca52fd841496ca3b92f570c49bfb9905ae72 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:22:20 2017 +0100 +Date: Thu Sep 27 23:47:51 2018 +0200 - peering: check return code when parsing all headers - - (cherry picked from commit 9e0fbfd9a79764fb283b6a6864e6519e167fff82) + app_ruby: updated to the new mod interface -commit b530e917009cf0babf0f535ec9e60c0e6e016a5b +commit 60263460c367b016ae33f8ae02fc99b9a082df52 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:20:02 2017 +0100 +Date: Thu Sep 27 23:43:32 2018 +0200 - lcr: safety checks for parms of kemi functions - - (cherry picked from commit c0c374ef15a99eef745570dd78926f6248187493) + app_sqlang: updated to the new mod interface -commit 01c6561c679ba338400a93e9648ad90df0cb5dbc +commit 16cd005eab74b6f6aa78941a818d3577e81a644d Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:07:40 2017 +0100 +Date: Thu Sep 27 23:38:43 2018 +0200 - http_client: fixed safety check looking up var names - - (cherry picked from commit 74215ac16878cc00cf29ae0fc89dfc9aa9ed9399) + app_python: updated to the new mod interface -commit 924c7aa4b778c361b3b6245e71740d2dce3bc22e +commit dccdc44637f4184f8e9de3a4f2cba1c85ca56c2e Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:04:35 2017 +0100 +Date: Thu Sep 27 23:34:01 2018 +0200 - crypto: fixed safety check looking up var names - - (cherry picked from commit 98f35707fb00c8fa3512faff3b42a56a9e45e241) + tmrec: updated to the new mod interface -commit c53c136622c378a59587486a23506e199829e4b8 +commit 8b1ca47bf9c39b4d50919a3b44a7c6b6840e4d9e Author: Daniel-Constantin Mierla -Date: Fri Dec 8 09:01:18 2017 +0100 +Date: Thu Sep 27 23:18:16 2018 +0200 - auth_radius: safety check for r variable - - (cherry picked from commit 1e5ea9beeb3055e0303eef992ffa87f61d8f0bf9) + usrloc: updated to the new mod interface -commit b2db2741e5f973791a68910fac46a0a863523da9 +commit 5311f0b2dd60f1a351136d78dea4964fb6a43bd4 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 08:58:20 2017 +0100 +Date: Thu Sep 27 23:13:36 2018 +0200 - core: kemi - break when matching the header name - - (cherry picked from commit 4dca6d5d79ecea23a202727d1a9637dad15ef174) + utils: updated to the new mod interface -commit 5441aa81c7d1b8154f5e95200a1bc0d0e9552289 +commit 54cc1fa77e65f77920ef658b64d2c9653ef9eeed Author: Daniel-Constantin Mierla -Date: Fri Dec 8 08:57:59 2017 +0100 +Date: Thu Sep 27 23:10:07 2018 +0200 - core: pvapi - set prev variable when dropping from cache - - (cherry picked from commit 2fe07249426b1ae9b368a1d1ffc7f2d5b881c704) + uuid: updated to the new mod interface -commit 7fef1fe169c587f3d6af3916cbcfde11570c920e +commit 04d56512cd1b058a042b4982af71e1f1453341b7 Author: Daniel-Constantin Mierla -Date: Fri Dec 8 08:57:17 2017 +0100 +Date: Thu Sep 27 23:06:52 2018 +0200 - app_mono: safety check beforing accessing field inside pointer - - - zero terminated allocated strings - - (cherry picked from commit 53c27ac3eb3e762110bd5cf54e55ddd85a7973a1) + websocket: updated to the new mod interface -commit 35a1fd35d8072c20e394186621e9925ad3e67066 +commit 118f5840499ad3aa03875e48e9963c8c2463e0fe Author: Daniel-Constantin Mierla -Date: Fri Dec 8 11:50:23 2017 +0100 +Date: Thu Sep 27 22:58:25 2018 +0200 - kamctl: regenerate db creation scripts + dispatcher: updated to the new mod interface -commit 5047ed8a10e346064820c7064ac08e7024dd00d3 -Author: sergey-vb -Date: Fri Dec 8 08:50:11 2017 +0200 +commit 1dbe466cf3fe31618466d1c7ab6c4c280efb75f2 +Author: Charles Chance +Date: Thu Sep 27 18:17:24 2018 +0200 - schema: add indexes to topos Mysql tables (#13) - - * topos: update topos_d.xml - - To optimize DB query speedup I propose to add few indexes. - - * topos: update topos_t.xml - - To optimize DB query speedup I propose to add few indexes. - - (cherry picked from commit 66718c2a77ae4cc427d8a06b4fa308224a5b3d48) + http_client: updated to new module interface format -commit d18ff6384d881f40db34dfce49b4584bc4faba2b -Author: lazedo -Date: Wed Dec 6 17:38:19 2017 +0000 +commit f364229954b0767a20b6a64c0c33cd594214fdf1 +Author: Charles Chance +Date: Thu Sep 27 18:15:36 2018 +0200 - presence: extra columns updated for dbmode 2 - - we noticed some phones and upstream clusters sending - diferent route / contact after initial subscription. - - this commit adds contact and record_route to updated columns for dbmode = 2 - also adds user_agent to initial save - and a simple fix for getting the correct message in debug - - (cherry picked from commit c0bc38616cb9a2923e35545fa86a663686bc6746) + http_async_client: updated to new module interface format -commit 56a9993c81123c4ee95ecc347aee28abbecb7e2a -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 15:24:44 2017 +0100 +commit 543429bf3f453e73827c2f81ced762688467d772 +Author: Charles Chance +Date: Thu Sep 27 18:09:44 2018 +0200 - log_systemd: fixed typo in previous commit - - (cherry picked from commit 41d66fa2293386bcc3765d6025c2f9b1bd89cd16) + htable: updated to new module interface format -commit 46df53778bf30ca88b5b7c64b0d3e2aebba306c7 -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 15:05:54 2017 +0100 +commit 34c13c081716d1a393f4fbf7047cfb80a863b5a9 +Author: Charles Chance +Date: Thu Sep 27 18:07:27 2018 +0200 - sca: exported functions to kemi framework - - (cherry picked from commit 73e9139c5246d3882474d8c9c613105bcbc6d90a) + group: updated to new module interface format -commit cce6599d36f9a42baa2bc6e9d24a444985f573a0 -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 14:44:00 2017 +0100 +commit 3f26dbbcd2a7d50fedcd0c66ca426e51053d3f99 +Author: Charles Chance +Date: Thu Sep 27 18:06:09 2018 +0200 - sca: get cfg int parameter in wrapper functions - - (cherry picked from commit 3ecd1958a5dfa8b21e67e52fc4f329dc58bffbf8) + geoip2: updated to new module interface format -commit 83df0d3348bcbb4ffbb48def0bd4cfe76614d22b -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 14:43:11 2017 +0100 +commit 5c9076ef4c42e3a718ce1b16d10dc41a71ca4397 +Author: Charles Chance +Date: Thu Sep 27 18:04:26 2018 +0200 - log_systemd: exported functions to kemi framework - - (cherry picked from commit 6668999dfee8c77a1b8329eee38265b536386845) + geoip: updated to new module interface format -commit 43df11808a1eef6a9db77efcf3137122783a7875 -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 14:19:57 2017 +0100 +commit b12e99625c70724b2ebee05ca8ed8afb42dfb401 +Author: Charles Chance +Date: Thu Sep 27 17:55:58 2018 +0200 - counters: exported functions to kemi interface - - (cherry picked from commit 2c2ae33d639671fe3596df23aaee5087c7c70d86) + exec: updated to new module interface format -commit 592774ff1c326bb4f1fe3bca26adcd8afbe1cf5c -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 10:52:15 2017 +0100 +commit 74dac0041d0be402068609fe156151814186781c +Author: Charles Chance +Date: Thu Sep 27 17:52:38 2018 +0200 - msilo: exported functions to kemi framework - - (cherry picked from commit 778a7a68618cb1d148b929bd80db4113a0ca0f46) + evrexec: updated to new module interface format -commit d01dfedd8361328c24acc350805fe438d93bcdc1 -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 10:05:47 2017 +0100 +commit 76d70212f4c796eced62e0db1c52d22e2b41e154 +Author: Charles Chance +Date: Thu Sep 27 17:50:30 2018 +0200 - rls: exported functions to kemi framework - - (cherry picked from commit 90bd1b06f98cccff6419dcb1991fde686a37a34e) + evapi: updated to new module interface format -commit 9b0bc6c17555aba525b53ce6f879b058c93b0449 -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 08:35:23 2017 +0100 +commit ced11e97dc366275f258273b27365daeacda95c6 +Author: Charles Chance +Date: Thu Sep 27 17:37:27 2018 +0200 - rabbitmq: functions exported to kemi framework - - (cherry picked from commit 97b1fa994dfb5f463dd06b2f201423e19db5e508) + erlang: updated to new module interface format -commit 481a5cf29a0fafd987faa0d4a7a165fc8258de3d -Author: Daniel-Constantin Mierla -Date: Thu Dec 7 08:34:55 2017 +0100 +commit 20b28577831656857ec837d0d28e23dd71426698 +Author: Charles Chance +Date: Thu Sep 27 17:28:02 2018 +0200 - auth_ephemeral: variants of auth functions exported to kemi - - (cherry picked from commit 4861c7e831697bd0f139c87485c3dfb601a34599) + enum: updated to new module interface format -commit 0e0f8555457c53ef7925e7b721e9263c92460f1f -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 21:16:35 2017 +0100 +commit 421615699a480fd857163d340a1be158f5e5eab3 +Author: Charles Chance +Date: Thu Sep 27 17:25:59 2018 +0200 - rabbitmq: clang format the code - - (cherry picked from commit 759e9d530c75e8c6c9d54764162cd17a8d8fe78e) + drouting: updated to new module interface format -commit 85cd536f8ea9e80c2b09addd6ecb6bc10f8a5047 -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 21:11:11 2017 +0100 +commit 27303ede6e159092c535ad7406f16d901e8861bb +Author: Charles Chance +Date: Thu Sep 27 17:18:55 2018 +0200 - uac_redirect: exported get_redirects() variants to kemi framework - - (cherry picked from commit 5a5bc72a66d2129aae8a8e200c905ff326e9f659) + domainpolicy: updated to new module interface format -commit 0c5816740984eb94e66144a140de8485e585681b -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 20:00:50 2017 +0100 +commit 81418bba82db6ccb613e47e2cbb7381bee39e7e2 +Author: Charles Chance +Date: Thu Sep 27 17:16:07 2018 +0200 - benchmark: documentation for register parameter - - (cherry picked from commit 9c01580fd858f995dc8e680545f628f4716a77a4) + domain: updated to new module interface format -commit 16ff4d966ce7e53716bbfb5e19e9a7b63811d2be -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 19:56:32 2017 +0100 +commit 9001c5b359e994818c9d5000d91fc2ff37661f5c +Author: Charles Chance +Date: Thu Sep 27 17:13:20 2018 +0200 - benchmark: exported functions to kemi framework - - - new parameter 'register' - register a timer id, required when using - kemi framework, because there is no fixup mechanism to register timer - ids based on function params - - (cherry picked from commit f382c10e18248423c2f8f4fb3469f7faea1504e3) + dnssec: updated to new module interface format -commit 31425aa48b8f19e52781b151341241b58967aff5 -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 18:10:12 2017 +0100 +commit de660bbbfac3c1b0b722266795844383aa60232d +Author: Charles Chance +Date: Thu Sep 27 17:01:19 2018 +0200 - group: is_user_in() exported to kemi framework - - (cherry picked from commit 9139bd2991a28a6a1ef67692e76e71ba807913d8) + dmq_usrloc: updated to new module interface format -commit aca608f2419498dbb3e805b572344b22975386cb -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 17:00:41 2017 +0100 +commit 12be0542840db5fcd3eff89af4c184e9ee2beb92 +Author: Charles Chance +Date: Thu Sep 27 16:57:12 2018 +0200 - http_async_client: exported query function to kemi interface - - (cherry picked from commit f04c812b2af2d933e61b0d643bd245cc91c5f3eb) + dmq: updated to new module interface format -commit a78a9d84d25862e0ca28909799f838ac15705bba -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 16:50:39 2017 +0100 +commit 567128f000c2baae26ee31c88d37c5ec652ee12e +Author: Henning Westerholt +Date: Thu Sep 27 18:25:32 2018 +0200 - tm: t_check_status exported to kemi framework - - (cherry picked from commit 3de068a8897917d088993923f3028ca98aadc765) + pdb: adapt to new module interface -commit 2773c98604575c6472359eb360e5c979257f51b1 -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 16:38:56 2017 +0100 +commit 369f383424df3e5e760eb26cf10fe318c4bebe3a +Author: Federico Cabiddu +Date: Thu Sep 27 18:24:27 2018 +0200 - userblacklist: exported user check functions to kemi framework - - (cherry picked from commit 50c055a880f16cbb6c1a74b4ef82248bc3519f01) + ims_dialog: converted to the new module interface -commit 2c75d2707d74966eddf2fe4b4338f56b0dabcb3d -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 15:52:25 2017 +0100 +commit 5652ca0011c07bf704f5e36d867b4650e76889f0 +Author: Federico Cabiddu +Date: Thu Sep 27 18:22:33 2018 +0200 - uri_db: functions exported to kemi framework - - (cherry picked from commit 2de661667ce0452a0095cd60d4913007045bb628) + ims_charging: converted to the new module interface + +commit ea86a5abd2ac12f5283e9a00c2179230aa0d137c +Author: Federico Cabiddu +Date: Thu Sep 27 18:21:05 2018 +0200 + + ims_auth: converted to the new module interface + +commit 7be8bd7916e16c54b9880b47fa6aaa143c1816a3 +Author: Victor Seva +Date: Thu Sep 27 18:19:55 2018 +0200 -commit 7b158195c4617a55ce19b09a1e64f32feaac68ca + db2_ops: converted to the new module interface + +commit f4136f02c9721ce782b008020bab9fd8483a91f6 Author: Daniel-Constantin Mierla -Date: Wed Dec 6 12:31:28 2017 +0100 +Date: Thu Sep 27 18:19:08 2018 +0200 - mediaproxy: export functions to kemi framework - - (cherry picked from commit a04368528a3350a14038101a4bf17b4b742e362d) + xcap_server: updated to the new mod interface -commit fa6f5c35fa24fd1467ddd153ad0a056288a92403 +commit 3afde1a3214ff1c665ecc87e6dbb5195ca39a3a0 Author: Daniel-Constantin Mierla -Date: Wed Dec 6 11:43:38 2017 +0100 +Date: Thu Sep 27 18:16:55 2018 +0200 - ndb_mongodb: exported functions to kemi framework - - (cherry picked from commit 74208c2160ffb6200dd6a8982fd4d94a2c00d879) + xcap_client: aligned fields -commit b9f172bb2b925c0eaf810b4eb597fd366e076384 +commit 966a6f848aec1f77bc9ab847570dcd54a228a6b2 Author: Daniel-Constantin Mierla -Date: Wed Dec 6 11:19:00 2017 +0100 +Date: Thu Sep 27 18:16:08 2018 +0200 - async: use t_continue_cb() for executing via kemi framework - - (cherry picked from commit 6bdf8119c1103b92e179144216bc19bbc8cdae0d) + xcap_client: updated to the new mod interface + +commit a95d448c5bc33869777fe55ecf78409ba85f3262 +Author: Mikko Lehto +Date: Thu Sep 27 19:17:59 2018 +0300 + + statsd: updated to the new module interface + +commit 35137bba70a83484bd69156925564d21cf67ccd6 +Author: Mikko Lehto +Date: Thu Sep 27 19:12:42 2018 +0300 + + timer: updated to the new module interface -commit d83991d7daeea39f9e5900a1438e6279057488d8 +commit ec9cf7abf0180136dd34c9c142f6979ea96d88c5 +Author: Federico Cabiddu +Date: Thu Sep 27 18:18:02 2018 +0200 + + cfg_rpc: converted to the new module interface + +commit f96d7cbfcfbabd5b6f483fce720b721463d541db +Author: Federico Cabiddu +Date: Thu Sep 27 18:15:34 2018 +0200 + + cfg_db: converted to the new module interface + +commit 816d0d3e6b9e4d3295a466c26f9d697e3bfccbfb +Author: Victor Seva +Date: Thu Sep 27 18:14:42 2018 +0200 + + db2_ldap: converted to the new module interface + +commit 12e26d06c58c170881db00b2bbe3d45e146245dc +Author: Federico Cabiddu +Date: Thu Sep 27 18:11:15 2018 +0200 + + cdp_avp: converted to the new module interface + +commit c539ba21bdd0d91299facde38e422140aa33f0eb +Author: Henning Westerholt +Date: Thu Sep 27 18:10:04 2018 +0200 + + core: remove two now redundant variables after module interface changes + +commit 73ed54c536d46027357e1c161aac64ae77029cd4 Author: Daniel-Constantin Mierla -Date: Wed Dec 6 08:51:39 2017 +0100 +Date: Thu Sep 27 18:01:57 2018 +0200 - http_async_client: exported functions to kemi framework + cplc: updated to the new mod interface - (cherry picked from commit b7d170607ccc1ecac6cb2bf210790c8382386f2a) + - start the cpl aux process -commit 859e4bea6df65de31e6836bc6ab5d739faab2552 -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 08:51:09 2017 +0100 +commit 93181cfd63d6e8b9018c698911e5f402d3fbc63b +Author: Federico Cabiddu +Date: Thu Sep 27 18:06:32 2018 +0200 + + cdp: converted to the new module interface + +commit d3a332142c69af850a2617e20e7f0147b02a335c +Author: Henning Westerholt +Date: Thu Sep 27 18:02:28 2018 +0200 + + ipops: adapt to new module interface + +commit 0181a3593a0944eb070bd387de3153bc0dfd7429 +Author: Victor Seva +Date: Thu Sep 27 18:01:49 2018 +0200 + + ctl: converted to the new module interface + +commit b116dcc6d95160e431593e5491f475801cc9b887 +Author: Mikko Lehto +Date: Thu Sep 27 19:00:10 2018 +0300 + + tpcops: updated to the new module interface + +commit 41ba444afd92921c392334982f308fa5ee9da44b +Author: Mikko Lehto +Date: Thu Sep 27 18:57:39 2018 +0300 - tmx: exported the rest of the functions to kemi framework - - (cherry picked from commit 08de83884bc40c5b426136c5dcb796e369c50027) + statsc: updated to the new module interface -commit e6ef2547888b59370dda5c355df1319d1e8ea416 -Author: Daniel-Constantin Mierla -Date: Wed Dec 6 08:50:23 2017 +0100 +commit c2f161075ae6dcd7fadeae7d0e29dbe62607b5ab +Author: Mikko Lehto +Date: Thu Sep 27 18:53:50 2018 +0300 - tm: allow execution of t_continue with callback name - - - t_continue_cb() exported to tm api - - (cherry picked from commit 020f6b1ed77be268a981633cea8543cfc9521604) + sst: updated to the new module interface -commit 8804e7a18ddfaef4b6da584664e17bdda7000351 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 17:22:24 2017 +0100 +commit d32d511eaaddc36a17251ee55b427a4e93e2a4bd +Author: Mikko Lehto +Date: Thu Sep 27 18:40:09 2018 +0300 - http_async_client: propagate route name to https async callback - - - lookup actions in target process, rather than in originating one - - (cherry picked from commit 2469b7963ac612e323478e172da4ab0e3a1773a9) + sipt: updated to the new module interface -commit ba1a1588e4f8249ecfdda2eb261d3891087ccdaa -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 16:54:21 2017 +0100 +commit e459e096ed790f2daebab04ac992c1b0c96d4f6a +Author: Federico Cabiddu +Date: Thu Sep 27 17:58:53 2018 +0200 - http_async_client: use directly the core fixup helper - - (cherry picked from commit ad68b65693936240a0101938de1bd466cb5e1bd0) + call_obj: converted to the new module interface -commit a79c89807cb7e7c4a2d3756bc72bb9b659033724 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 16:50:59 2017 +0100 +commit 660c53fb86e04549720ae6647d12a2fc7ba1b2d0 +Author: Federico Cabiddu +Date: Thu Sep 27 17:55:59 2018 +0200 - http_async_client: use route_lookup() instead of route_get() - - - avoids creating a useless route block structure - - (cherry picked from commit 1f8bc9fd5a4067b25994e87e27801d9df5cb5eb7) + call_control: converted to the new module interface -commit 1c243828254b8f17a9834b502cb2a80006dccb87 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 16:45:27 2017 +0100 +commit 7a314c4c0671a32bc11288f4f8e5d68e1a25df6e +Author: Victor Seva +Date: Thu Sep 27 17:53:35 2018 +0200 - http_client: exported functions to kemi framework - - (cherry picked from commit 8141ccaf6a0367cae57b6033e7720674c4eb889b) + crypto: converted to the new module interface -commit 7733c84fcc421b0408f0c6bd3ec1e4335607a958 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 15:20:55 2017 +0100 +commit 8551f40e956c4b9d8b9d829354802d53f6a30ad7 +Author: Federico Cabiddu +Date: Thu Sep 27 17:53:01 2018 +0200 - http_client: clang format the code - - (cherry picked from commit 56a357a7cbd85e2ef69ab4508f26a1510cde16d6) + blst: converted to the new module interface -commit 09cc9abb57636bbf01b9128b1d79db3e7ca042e4 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 15:13:47 2017 +0100 +commit 3d3fe706eb8d6e4a8ba5ff0fb91ebf455a4430ff +Author: Henning Westerholt +Date: Thu Sep 27 17:50:58 2018 +0200 - crypto: exported functions to kemi interface - - (cherry picked from commit e7d1e96007683efcc193e0f6df16a1acb02be6b8) + h350: adapt to new module interface -commit a9275cb5a1e5176b87e6c1f3e90c5b7183f13b0d +commit d4d4aebd2ddff0a73ba3b451bc450f86ebae843f Author: Daniel-Constantin Mierla -Date: Tue Dec 5 13:19:17 2017 +0100 +Date: Thu Sep 27 17:50:33 2018 +0200 - dmq: exported functions to kemi framework - - (cherry picked from commit 2b7ae0f01ae7f9ee9a9ccf12ef9ffad24a76764f) + xhttp: updated to the new mod interface -commit 855a13a938fcee7e05546a40c07a17470a2f295b +commit 4fb4fac93ea34bd72b24cbdcbce09361e6fda19c Author: Daniel-Constantin Mierla -Date: Tue Dec 5 12:10:24 2017 +0100 +Date: Thu Sep 27 17:41:29 2018 +0200 - dmq: use core fixup helper functions directly - - (cherry picked from commit 727b5c5fed1e0972b80f005a801089a4afa2f114) + xhttp_pi: updated to the new mod interface -commit b3ad080bb34eb3ec80043b3562b63b9a99f0529d +commit 07fb4676268ed5445c61f09858394d32ebaa595a Author: Daniel-Constantin Mierla -Date: Tue Dec 5 11:55:51 2017 +0100 +Date: Thu Sep 27 17:38:05 2018 +0200 - topos: update contact in branch record before sending response - - - might be updated in config execution - - reported by GH #1339 - - (cherry picked from commit ebf570f83c878363dfd1f53882de9a0f907f5971) + xhttp_rpc: updated to the new mod interface -commit 066410bfb78eb9980d599aec76523a8a7af74978 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 11:23:00 2017 +0100 +commit 08be2bbabe9be885cb20cc31effe68e5a8717614 +Author: Federico Cabiddu +Date: Thu Sep 27 17:48:21 2018 +0200 - nat_traversal: exported functions to kemi framework - - (cherry picked from commit 04cfb0662be9cc429e66b79545daf578993dab1f) + app_java: fix conversion to new module interface -commit ec9199a5e1993610e50ccc043fdee6fb9d073edf -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 11:09:55 2017 +0100 +commit 9c71c6c695faee676f6f976325b5f8cda0902ed4 +Author: Victor Seva +Date: Thu Sep 27 17:45:03 2018 +0200 - nat_traversal: clang format the code - - (cherry picked from commit 3bad00732994813bc21c84d41342772783a5bddd) + counters: converted to the new module interface -commit 508328d51fc7c42a1bd5dc0a038acedc78500281 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 10:54:07 2017 +0100 +commit 00cafe2124681c2b95b3e5fd38a89d9f4b5320c1 +Author: Federico Cabiddu +Date: Thu Sep 27 17:44:17 2018 +0200 - misc_radius: exported functions to kemi framework - - (cherry picked from commit 95da4cda2c68ff25f7e14501a28cfe2ec0ebc50f) + benchmark: converted to the new module interface -commit 90a116e77a39e8c25f3ae4c91021da6e50b94103 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 09:19:29 2017 +0100 +commit 4cec8cb1faefd85508dad1ec3e2454379c7ba0fb +Author: Federico Cabiddu +Date: Thu Sep 27 17:42:28 2018 +0200 - misc_radius: fixed accessing str* params after previous commit - - (cherry picked from commit 613350632c842c1775e1b5696b4cda4c96e5ba4c) + avpops: converted to the new module interface -commit 96f30cbe88f9c6587894b18208cda8752f3a0114 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 09:17:49 2017 +0100 +commit 608f2262f139322a8fed9bc873fd7f91d266333e +Author: Henning Westerholt +Date: Thu Sep 27 17:38:39 2018 +0200 - misc_radius: use spve fixup helper instead of pvar - - - simplifies getting params - - (cherry picked from commit f06e4d4b81e0df1009c3f2bbc54f0be1bb4a5d32) + gzcompress: adapt to new module interface -commit b833df0382d5194973134db477cb837b643f29b8 -Author: Daniel-Constantin Mierla -Date: Tue Dec 5 08:21:58 2017 +0100 +commit e7c13822fd2f8b2cd8d40dbaa8cad1acd67b0a75 +Author: Federico Cabiddu +Date: Thu Sep 27 17:39:05 2018 +0200 - misc_radius: clang format the code - - (cherry picked from commit f283fe291917f67320061af3e35259859e448408) + avp: converted to the new module interface -commit cdce438952ee97e91552e2d706db5587104bf1f0 -Author: Daniel-Constantin Mierla -Date: Mon Dec 4 16:54:52 2017 +0100 +commit b87c570e65c1794d1fb725af74735396c49d1015 +Author: Victor Seva +Date: Thu Sep 27 17:35:46 2018 +0200 - auth_radius: exported functions to kemi framework - - (cherry picked from commit cf043326abc792317335954fe75927f8294fa40e) + corex: converted to the new module interface -commit 444b2134fa252f409ae53b493e78ac03b49d3cab +commit 7575f706f8a0fe67c1c0870324bfe76fa7fde7a2 Author: Daniel-Constantin Mierla -Date: Mon Dec 4 16:03:52 2017 +0100 +Date: Thu Sep 27 17:32:04 2018 +0200 - auth_radius: use core fixup helper functions - - (cherry picked from commit fe0c386cebebbf6c68b598269ecdfc25bfe1bcc2) + xmlops: updated to the new mod interface -commit 63ef6271da5a8a1867e45756776e60aa532b1939 +commit 161baf2f705f34284886277433ce1aa80bba3eb9 Author: Daniel-Constantin Mierla -Date: Mon Dec 4 15:50:06 2017 +0100 +Date: Thu Sep 27 17:29:58 2018 +0200 - acc_radius: clang format the code - - (cherry picked from commit 7453fc5f8da8fed0941d5d8c759cec97e0647bfd) + xmpp: updated to the new mod interface -commit 39b93755fa75bb9212397c300d48f6155ec10f30 +commit 7c68d66d70e7205f1117d41f11c2868dda73b1d6 Author: Daniel-Constantin Mierla -Date: Mon Dec 4 15:47:40 2017 +0100 +Date: Thu Sep 27 17:25:21 2018 +0200 - auth_radius: clang format the code - - (cherry picked from commit 1c07ddb50cf56ea9566effb8ff7ada3de8f1d48b) + xmlrpc: updated to the new mod interface -commit 81581e707df098a19be21316668b157b5d84b75a +commit 1b58c043aa2243f0aa1fe9ad6e5d728ed9b75576 Author: Daniel-Constantin Mierla -Date: Mon Dec 4 13:09:03 2017 +0100 +Date: Thu Sep 27 17:21:27 2018 +0200 - acc_radius: functions exported to kemi framework - - (cherry picked from commit afbc1a7099eb59dcd8c11a202c9abb1bcf972751) + xprint: updated to the new mod interface -commit 0a327ed62b47bd56b7b7463c2552d2c66397e897 -Author: grumvalski -Date: Thu Nov 30 15:06:27 2017 +0100 +commit f74197cfd3cdc0e8a6c9f1fceac2720a02e2bafe +Author: Daniel-Constantin Mierla +Date: Thu Sep 27 17:15:21 2018 +0200 - tm: make t_run_local_req reentrant - - - avoid crash when local-request event route is triggered inside another one - - (cherry picked from commit 97b15611ad87e36dd17ba76a77cb8817d974806b) + tls: updated to the new mod interface -commit 90b1b0e1f00f72dcac7f7ef1c734ea43afd1cd83 +commit c56e0eea168b25e0ebe2527dce0ecb71ce01423c Author: Daniel-Constantin Mierla -Date: Mon Dec 4 12:49:41 2017 +0100 +Date: Thu Sep 27 17:11:25 2018 +0200 - jansson: fix the include guard in header file - - (cherry picked from commit d17a48c186b0b8066518db2106037fe925846d2e) + tmx: updated to the new mod interface -commit cd8a9d4225d95a358fc901ebec58ee0aa83aecbb +commit c2e9d850ebc683c120aeba1d1e3ef0720bd6ce33 Author: Victor Seva -Date: Mon Dec 4 11:40:36 2017 +0100 +Date: Thu Sep 27 17:28:03 2018 +0200 - pkg/kamailio/deb: version set to 5.1.0~rc3 + cnxcc: converted to the new module interface -commit cc11eac314b6611285665dd5d15310b56a61e28c -Author: Daniel-Constantin Mierla -Date: Mon Dec 4 09:33:01 2017 +0100 +commit 99ecb5327aba33977b37c144db7f2b963ef5ee5a +Author: Mikko Lehto +Date: Thu Sep 27 18:28:40 2018 +0300 - Makefile.defs: version set to 5.1.0-rc3 + sdpops: converted to the new module interface -commit 3929986622b502660b870916bcd7f015282a6a1c -Author: Daniel-Constantin Mierla -Date: Mon Dec 4 09:21:54 2017 +0100 +commit d3ea60f5e6357579a979cbaeb170f0cd959d52aa +Author: Mikko Lehto +Date: Thu Sep 27 18:25:23 2018 +0300 - core: pv - use active values for pv buffer slots and size - - - during startup, param value and active can be different, up to the - moment when the config is completely loaded - - (cherry picked from commit a156c625b434dc0bc19c43ece524f90b1179d881) + rtpproxy: converted to the new module interface -commit 5aff4422815f6842d8ecfd028451a13be22d7374 -Author: Daniel-Constantin Mierla -Date: Mon Dec 4 09:03:28 2017 +0100 +commit e988fe2c6370b054f41cf9b71dcbf3ab2d610eeb +Author: Mikko Lehto +Date: Thu Sep 27 18:21:26 2018 +0300 - core: fix setting pv_cache_limit param - - (cherry picked from commit ef7398589aaff02d6521171ff569726db6996c6a) + pipelimit: converted to the new module interface -commit 83612695acc49fae39d0abf8376747618a694012 -Author: Daniel-Constantin Mierla -Date: Fri Dec 1 11:07:07 2017 +0100 +commit bc8af6edc4f8060d203d8c2719dd9b9ba75b8298 +Author: Mikko Lehto +Date: Thu Sep 27 18:14:52 2018 +0300 - test/unit: 3.sh - updates for using db root password with kamdbctl - - (cherry picked from commit f5ea35bc424f34c64ee71a745db93326f597c4a1) + pdt: converted to the new module interface -commit ec7d89da1cce4060969b4a7bd7db64ffa23c1b3d -Author: Daniel-Constantin Mierla -Date: Fri Dec 1 11:05:21 2017 +0100 +commit c882709fa15088abcf92122c3a51e5bf2d38247a +Author: Mikko Lehto +Date: Thu Sep 27 18:09:39 2018 +0300 - kamctl: expose db root password variable used by kamdbctl.mysql in kamctlrc - - - DBROOTPW can be now set in kamctlrc - - targeting use for automatic testing - - (cherry picked from commit 313805136d22ed79d1c4900753247032240d5a5b) + pike: converted to the new module interface -commit b243f7605e25b4467c72f85bb10159af5bfa38ed -Author: Daniel-Constantin Mierla -Date: Fri Dec 1 10:47:41 2017 +0100 +commit b46edc679e6daa271618a9bae5903299b66be0af +Author: Mikko Lehto +Date: Thu Sep 27 18:00:46 2018 +0300 - test/unit: 24.sh - removed invalid comment about mysql - - (cherry picked from commit ebe117cae681c373a3e9f32e3fb392e31605039f) + permissions: converted to the new module interface -commit 26bd009c4963e4acb1e0eb52d0f5c9f17096d412 -Author: Timo Teras -Date: Wed Nov 29 19:53:29 2017 +0100 +commit cd2193220fff4a54308c1ad20a42553c63d280f1 +Author: Federico Cabiddu +Date: Thu Sep 27 17:27:22 2018 +0200 - mtree: use cast to unsigned char for accessing _mt_char_table array - - - switched the index from unsigned int to unsigned char - - simplifies the code by avoiding the tests for exceeding the size of the - array - - error message extended to print the full string - - slightly modified version of PR #1343 - - (cherry picked from commit ae18e409d71d2d4eccb4604bb6f29a121309b54e) + auth_xkeys: converted to the new module interface -commit dab49483e419dd810c7b5133bf64063df0ad6696 -Author: Daniel-Constantin Mierla -Date: Wed Nov 29 10:57:06 2017 +0100 +commit 74eba5fdfa734bf42abda90200f178b1223fe9a5 +Author: Henning Westerholt +Date: Thu Sep 27 17:26:40 2018 +0200 - ndb_redis: detect argument specifiers for redis_cmd() with three params - - - check if %s or %d is part of the command, because it makes the redis - api expect more params to the commands and can crash if none is found - - reported by GH #1342 - - (cherry picked from commit 75bbbe4059cb6fde4c74fa9157f400a24e6f7496) + userblacklist: adapt to new module interface -commit 1007b74b66267c31d12b60c53b231e73e74b0931 -Author: Daniel-Constantin Mierla -Date: Wed Nov 29 08:33:38 2017 +0100 +commit f33ba318b20cbd2b34d278a7e2c4e64129b9e68d +Author: Federico Cabiddu +Date: Thu Sep 27 17:25:23 2018 +0200 - ldap: use core fixup function for ldap_search() - - (cherry picked from commit 209032fc134afb90e4e12b194d1368ed9fb67ee9) + auth_radius: converted to the new module interface -commit 68f2d70858bca7ec3ba373dc4716e342c1c8e522 -Author: Daniel-Constantin Mierla -Date: Tue Nov 28 17:51:33 2017 +0100 +commit bab6d46604a23261599299b9d801fdc64afe3a59 +Author: Federico Cabiddu +Date: Thu Sep 27 17:22:49 2018 +0200 - ldap: clang format the code - - (cherry picked from commit 855d5d0f976e89962c541a34690dcb212e127e6b) + auth_identity: converted to the new module interface -commit b529300cc809ddecc58b35d347cfc3973e7980de -Author: Daniel-Constantin Mierla -Date: Tue Nov 28 13:25:35 2017 +0100 +commit c81dbfc38e9e248a5ec995427e5c204b7ee7cfa8 +Author: Henning Westerholt +Date: Thu Sep 27 17:21:35 2018 +0200 - tcpops: exported functions to kemi framework - - (cherry picked from commit 9f353bad0036f602e4f1ec39096658c1c7809a9b) + carrierroute: adapt to new module interface -commit 1de066ee6e6360056dad4c6d19b3413f26e4759c -Author: Daniel-Constantin Mierla -Date: Tue Nov 28 10:48:24 2017 +0100 +commit 2763dbabe977fcb165002fffa5f546df5e4d2b6d +Author: Federico Cabiddu +Date: Thu Sep 27 17:17:26 2018 +0200 - core: timer - use uint type instead of short for flags and slow index - - - get rid of unused padding field - - (cherry picked from commit 3d22063ebd4cfa8b54ec3e83a04e92770c6d7319) + auth_ephemeral: converted to the new module interface -commit d6da47896040ebf82ff5f0b6d31cd7e662216f5f -Author: Daniel-Constantin Mierla -Date: Tue Nov 28 10:37:26 2017 +0100 +commit 83fd48412547013d3dda885a8ffe1040bb861dd6 +Author: Federico Cabiddu +Date: Thu Sep 27 17:13:37 2018 +0200 - cnxcc: removed unused variable - - (cherry picked from commit 7bdf8f003bbf5e153d7835d09533c7e22377e8db) + auth_diameter: converted to the new module interface -commit a874ac693bdeaaf913f3a260f0ed0294ea3668f2 -Author: Daniel-Constantin Mierla -Date: Fri Dec 1 13:43:42 2017 +0100 +commit a4977b0cc782d86f51cd11abd71e30148b09bc58 +Author: Federico Cabiddu +Date: Thu Sep 27 17:11:07 2018 +0200 - core: more checks when printing udp recv debug message - - (cherry picked from commit 0e0cd2be0c77f84575526a39c6e3baa199e18d02) + auth_db: converted to the new module interface -commit f3340967e2979f4ec7de2cc1c828f35028a65306 -Author: lazedo -Date: Wed Nov 29 11:00:01 2017 +0000 +commit fa509adb67bc5a92e28aa392f3b1eaeadbf94b28 +Author: Federico Cabiddu +Date: Thu Sep 27 17:09:10 2018 +0200 - nat_traversal: handle local generated transactions (#1344) - - * nat_traversal: fix local generated transactions - - * nat_traversal: handle TMCB_RESPONSE_SENT only for FAKED_REPLY - - * nat_traversal: free allocated buffer - - (cherry picked from commit 886f14e11e3e5fe9d2bc56fd37d2102ae5b99645) + auth: converted to the new module interface -commit 36ec5c4dd9f66a93bc18c7a1ee428bd6f1e0064c -Author: lazedo -Date: Wed Nov 29 04:14:07 2017 +0000 +commit 7a7d5586262547b8a601515435eae3bc3cbe2e52 +Author: Federico Cabiddu +Date: Thu Sep 27 17:03:05 2018 +0200 - presence: update contact in update_subs_db - (cherry picked from commit 49272f23b22445415721766709bf5841865e8609) + async: converted to the new module interface -commit 1e05eaa12e97ddddf761a6356c134bccc99aff11 -Author: Victor Seva -Date: Mon Nov 27 09:48:51 2017 +0100 +commit 1ab5d488db3be6f6c0ab2a20fad93f6ad1fed49d +Author: Federico Cabiddu +Date: Thu Sep 27 16:59:52 2018 +0200 - pkg/kamailio/deb: version set to 5.1.0~rc2 + app_perl: converted to the new module interface -commit 5d66d4b4d9775de463e031b849d96a3fd201f986 +commit 283326223125ba655e58f866721d73b2f2459172 Author: Daniel-Constantin Mierla -Date: Mon Nov 27 09:41:55 2017 +0100 +Date: Thu Sep 27 16:59:31 2018 +0200 - Makefile.defs: version set to 5.1.0-rc2 + tm: updated to the new mod interface -commit c0908af8c2f7c7fb98c4c263d063e7e3f95b9dd5 -Author: Daniel-Constantin Mierla -Date: Mon Nov 27 07:20:06 2017 +0100 +commit 00aca069545d7c2f61480bb6629c00ed00e8dad9 +Author: Victor Seva +Date: Thu Sep 27 16:55:20 2018 +0200 - textops: exported multipart functions to kemi - - (cherry picked from commit 5295a4f5eac08c1bb100bf554a995833c434c4dc) + cfgutils: converted to the new module interface -commit b2c42031cdad58aecf88444ed5ba6ff2ac14ba5e -Author: Daniel-Constantin Mierla -Date: Sun Nov 26 18:18:36 2017 +0100 +commit f31143937d6bf5af162f8d2b8eaeed7eb58130ad +Author: Mikko Lehto +Date: Thu Sep 27 17:51:49 2018 +0300 - textops: simplified the code for set_multipart_body() - - - use formatted string instead of a sequence of allocs and memcopy - - split helper function to have a wrapper for evaluating the cfg - function params - - (cherry picked from commit 043894a539e3e73f7add2e66179aecb71066313a) + path: converted to the new module interface -commit 03bba9fcf51dc1ee66d3144c610812a264bef191 -Author: Daniel-Constantin Mierla -Date: Sun Nov 26 13:09:13 2017 +0100 +commit 4bd09051b91016aac4c2f958913d5292b1b27c9c +Author: Federico Cabiddu +Date: Thu Sep 27 16:49:09 2018 +0200 - cnxcc: exported functions to kemi framework - - (cherry picked from commit b1899d28061e3df8e333230588127fc41f949566) + app_java: converted to the new module interface -commit c2f41bf302e497c97e918cd8c0b616dd2d3eaba2 -Author: Samuel -Date: Sun Nov 26 21:49:49 2017 +0100 +commit 2e72b67149bd133749a0ca6843dec42892b4248f +Author: Victor Seva +Date: Thu Sep 27 16:42:32 2018 +0200 - nathelper: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit 3c64668df34fb0708a34ae103d78c8884f8337cf) + cfgt: converted to the new module interface -commit 2b4c29062d0b616c83e8c85724bbe4f5fbe0698f -Author: Samuel -Date: Sun Nov 26 21:48:02 2017 +0100 +commit 9de8f8a7ca6d68b4912a382557d0dc15f285b4fe +Author: Federico Cabiddu +Date: Thu Sep 27 16:43:16 2018 +0200 - maxfwd: Updating code formatting - - - Utilize same formatting as all other KEMI exports - - (cherry picked from commit ca75ae0e0db9ac6efb42f97245d8f3ba8f8986a0) + acc_radius: converted to the new module interface -commit 2b6af1cea0232f428d5a1c1b03e4ed58cc63b6f3 -Author: Samuel -Date: Sun Nov 26 21:45:14 2017 +0100 +commit b447329acb16f0b0fcaaf46af65800454818309c +Author: Federico Cabiddu +Date: Thu Sep 27 16:39:28 2018 +0200 + + acc_json: converted to the new module interface + +commit bfcd7de88acadc62efa22dad3595fedbf906dbe4 +Author: Federico Cabiddu +Date: Thu Sep 27 16:34:53 2018 +0200 + + acc_diameter: mixed/modinterface - lcr: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit bb35d3aff777ac3a125a10cd0fba3f6dc1586516) +commit 39275ebcc0ddbe66d5ee5cd33ad27e6bb56c4d8c +Author: Federico Cabiddu +Date: Thu Sep 27 16:32:00 2018 +0200 -commit 35b8b54a46c0f42ff85752c1fc5b113f1f34b8ec -Author: Samuel -Date: Sun Nov 26 21:43:13 2017 +0100 + acc: converted to the new module interface - kex: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit ac0ff86a0a7c29782903a385e7dda7be298a678f) +commit f102ec2eb416a5f4252229a25c7821ce7e83922b +Author: Daniel-Constantin Mierla +Date: Thu Sep 27 16:22:31 2018 +0200 -commit b3f8845bcb0b3395c2de52b422ca2df55c57fb4b -Author: Samuel -Date: Sun Nov 26 21:41:06 2017 +0100 + xlog: converted to the new module interface - debugger: correcting function utilized by KEMI - - - Since constants are used as arguments on the called function I suppose the parameters are not necessary on the parent function - - (cherry picked from commit fcc4908fdbb555c09b8431f25211d93a90e2fac3) +commit 7f616322ea7b1fe0506e8677141cff4e8358cbaf +Author: Daniel-Constantin Mierla +Date: Thu Sep 27 16:22:10 2018 +0200 -commit c45e00b33fac09097d2d360c4f7cfe37f86a96d2 -Author: Samuel -Date: Sun Nov 26 21:33:19 2017 +0100 + sl: converted to the new module interface - xhttp: updating name of function and parameter type - - - Updating the name to reflect the original name. Mismatch between export and function declaration with regards to the type of parameters. - - (cherry picked from commit 74c0dc87e1cfc4f25ac5ebae3f4ad9317ed8ca9e) +commit e9b1d5840da7e34e1201e4ef1416d8eb759413db +Author: Daniel-Constantin Mierla +Date: Thu Sep 27 16:21:53 2018 +0200 -commit 12ce193bca67d3f18666a43006981312face863c -Author: Samuel -Date: Sun Nov 26 21:14:09 2017 +0100 + pv: converted to the new module interface - textopsx: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters +commit 1f70d062b0b9cf1e6ccf79108d94c3778ebea352 +Author: Daniel-Constantin Mierla +Date: Thu Sep 27 16:19:39 2018 +0200 + + core: unified module exports interface - (cherry picked from commit c921556e77b787d2462d251e7f1fa928bd22467a) + - have a single module interface by merging the ser and kamailio ones -commit 216e7ced7188f03f252c8efc127fc196e36e831b -Author: Samuel -Date: Sun Nov 26 21:11:41 2017 +0100 +commit 9ccc072cf089b57cbda07dc7bfdb335fd2b5daf3 +Author: Victor Seva +Date: Thu Sep 27 18:28:34 2018 +0200 - sipcapture: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit 171b7ada1cc2bd658b8b05efde0c5681ac9c4eed) + pkg/kamailio/deb: enable verbose builds -commit c6f1ac98d7b544cb454dcf51ed3fb3668826855c -Author: Samuel -Date: Sun Nov 26 21:10:23 2017 +0100 +commit df2d3019f64ec97d2466a06863a0c39cfe52a1fd +Author: Henning Westerholt +Date: Thu Sep 27 15:19:32 2018 +0200 - rtpengine: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit ede35768d58fcadb484eafc2babc72ec3be42b87) + json: small whitespace cleanup in mod exports -commit b6629e300453c8a80c44da0563383d35960c0362 -Author: Samuel -Date: Sun Nov 26 21:08:39 2017 +0100 +commit ac2c2386890366769332150bab1de127482c300f +Author: Henning Westerholt +Date: Thu Sep 27 15:16:48 2018 +0200 - permissions: correcting KEMI allow_address - - - Updating which function KEMI function allow_address actually calls upon + Delete ISSUE_TEMPLATE.md - (cherry picked from commit c39905759ec8f2d888e17e6e8e6590d2e42504ff) + delete issue template file, not needed anymore after customized version -commit 551069342576ed1d9d5b68065cc9cd0fa9e4a958 -Author: Samuel -Date: Sun Nov 26 20:55:19 2017 +0100 +commit 2e0c7fed43071302977cbf1df7dbb0783f1f7c8e +Author: Henning Westerholt +Date: Thu Sep 27 15:14:50 2018 +0200 - path: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit 2fda4db20ef258ac09c3680b8fab50b988a90f43) + Update issue templates -commit 02f6ef0c3ffa648b30d5bee20187a6193a277e35 -Author: Samuel -Date: Sun Nov 26 20:45:44 2017 +0100 +commit 9f7bd4e18d04ea96fb956b697d232676c2d4705e +Author: Henning Westerholt +Date: Thu Sep 27 15:06:48 2018 +0200 - dialog: updating the exported expected parameters to match the functions - - - Mismatch between export and function declaration with regards to the quantity of parameters - - (cherry picked from commit ed2c91533960c2b94a1394a671292c07d94b049b) + Update issue templates -commit 49ab70feb630634977a11809d40b60a1344df352 +commit 8c1e60cfb67f82cab70c8130d4f035ce7e294f17 +Merge: 8bc56bbc2 4223fdd1e Author: Daniel-Constantin Mierla -Date: Sat Nov 25 09:18:23 2017 +0100 +Date: Thu Sep 27 12:41:40 2018 +0200 - rtpengine: proper check for empty string inside add_rtpengine_socks() - - - reported by GH #1325 + Merge pull request #1653 from adubovikov/master - (cherry picked from commit 991fe9b28e0e201309048f3b38a135037e40357a) + sipcapture: added RPID parser for PPI field -commit 5c44038e0c4dfae0ad0042222f2138161e3c1b11 -Author: Vasiliy Ganchev -Date: Fri Nov 24 13:54:13 2017 +0200 +commit 8bc56bbc23ef888ebbfbe54732ffe7f82bd7082d +Author: Victor Seva +Date: Thu Sep 27 12:29:42 2018 +0200 - http_client: add missed useragent parameter + ims_usrloc_scscf: fix compilation warning - While preparing query_params, "useragent" was missed - add it. - - (cherry picked from commit 65a777f3316fb3a3adfa61739a091bb9d61582a8) + >impurecord.c:1243:16: warning: equality comparison with extraneous parentheses [-Wparentheses-equality] + > if ((contact == impucontact->contact)) { + > ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ + >impurecord.c:1243:16: note: remove extraneous parentheses around the comparison to silence this warning + > if ((contact == impucontact->contact)) { -commit f561a37efe35e33ac73172e7808bfc1f451b005b -Author: Daniel-Constantin Mierla -Date: Sat Nov 25 08:13:20 2017 +0100 +commit f1f5ec13937ae14aee0c1610dd1dcd2e1100966b +Author: Kamailio Dev +Date: Thu Sep 27 12:31:37 2018 +0200 - textops: fixed name of in_list() function export to kemi - - - reported by GH #1332 - - (cherry picked from commit ebd51daea816a6bab3436e24de22d23d079d7c91) + modules: readme files regenerated - tls ... [skip ci] -commit d47f62e185cc5891269943806cf4774de3e5db7d +commit b08df6d531513ecf472f4642ddf180bffac46f58 Author: Daniel-Constantin Mierla -Date: Sat Nov 25 08:09:49 2017 +0100 +Date: Thu Sep 27 12:19:34 2018 +0200 - textops: kemi search_append() and search_append_body() have two params + tls: updates to overview section - - reported by GH #1333 - - (cherry picked from commit b524d25a3ba327d7a52544489d847932f1ee1a28) + - GH #531 -commit 107c37675cbc6956a448c44b66e8d2f7ecab713c +commit 65860790056bc847dc4320ee31424bd458f998fd Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:50:05 2017 +0100 +Date: Thu Sep 27 12:00:35 2018 +0200 - app_lua: count also the special function when generating the rpc response + tls: renamed sip-router_cert.sh to tls_cert.sh - (cherry picked from commit f95fda89d4532ba333aed835c72f102a7c032980) + - it is specific to the module, not the flavour of the application -commit 98e99c38d72bffbf3fbd58e5f8b4da03b15224d6 +commit 45f7312fdb2fc08db627872f01485c50386bf169 Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:39:27 2017 +0100 +Date: Thu Sep 27 11:57:20 2018 +0200 - app_lua: print special kemi functions via rpc - - (cherry picked from commit 7cbece0e2e60f8c334bea97333b029d51e5b7e33) + tls: removed the old very basic sample config -commit 25f1a480becfa0dc4359b03e862ec9cb1176aff7 -Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:15:42 2017 +0100 +commit 4223fdd1e49d9bbcd36d2daebda09c7cbbbfde41 +Author: Alexandr Dubovikov +Date: Thu Sep 27 12:08:10 2018 +0200 - app_sqlang: detect if a kemi function was already added in exports list - - (cherry picked from commit e177266e8f113f1541b31496f9fb0c71ac751f17) + fixed typo -commit 1dbc2f40554a72ce4757ccbb0501b2568c602c3c -Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:11:44 2017 +0100 +commit deb3f4ab1516d33c3781927149e92c96cf789008 +Author: Alexandr Dubovikov +Date: Thu Sep 27 11:59:42 2018 +0200 - app_jsdt: detect if a kemi function is already in exported list - - (cherry picked from commit 48d55652fa36cb2b20540d1ebc7665476dfb1b1e) + module/sipcapture: added RPID parser for PPI field -commit a56d3f8552d3926e8b69bd5cd0bdcd8d83a1f97f -Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:05:58 2017 +0100 +commit 9bd0486982836348539c1767cb4d711f397eb649 +Author: Kamailio Dev +Date: Thu Sep 27 11:46:41 2018 +0200 - app_lua: updated paths to included files from core in the ctl tool - - (cherry picked from commit 50a9e2ec1cb86590a067dc23b2298b96a12bc232) + modules: readme files regenerated - db_unixodbc ... [skip ci] -commit ba8bc6a23aed88625512b963862fe719650ea3f6 +commit 864149a1fcd38ab5c4e75c18c6fe70e60345545b +Merge: 31e287173 636c8b5ab Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:04:13 2017 +0100 +Date: Thu Sep 27 11:32:13 2018 +0200 - app_python: updated the ctl tool to generate the exports + Merge pull request #1652 from mbodbg/master - (cherry picked from commit f4c6365f2678e5c30d4a1fc287206b82a7eee459) + db_unixodbc: added section ids, updated application name -commit d56ec1c20796e9a32790d880c0ab9a4ee579216e -Author: Daniel-Constantin Mierla -Date: Fri Nov 24 19:00:34 2017 +0100 +commit 636c8b5ab16bbac4a8a9db70476ffd93bf2d13cf +Author: Markus Bönke +Date: Thu Sep 27 11:17:49 2018 +0200 - app_lua: updated the utils/app_lua_ctl - - (cherry picked from commit ac8cc0a3735325ec79a4a634eea6bcdcea4affe7) + db_unixodbc: added section ids, updated application name -commit 68c7ea18ebfe3d26e53fbe04713b6a2ee44a428c +commit 31e2871739a0b7a212d6d335f3ade7eefd48454c Author: Daniel-Constantin Mierla -Date: Fri Nov 24 18:48:09 2017 +0100 +Date: Thu Sep 27 07:46:35 2018 +0200 - drouting: removed unused variable - - (cherry picked from commit 6c7bc0390fc1d9972ca9fc330c25dd9b29f2476a) + topos_redis: Makefile - detect if pkg-config gives hiredis in include path -commit 7093572c5ca65f805e4421d6d821eb06dd1a6dcd -Author: Daniel-Constantin Mierla -Date: Fri Nov 24 18:42:07 2017 +0100 +commit 133917db7a033218e54931b6cf532552d274af6c +Author: Kamailio Dev +Date: Wed Sep 26 20:16:30 2018 +0200 - app_lua: detect if a kemi function was already added in the exports list - - (cherry picked from commit d98a005ac57b957231f8bda26c711bf7c7260049) + modules: readme files regenerated - db_redis ... [skip ci] -commit 57f11e58aa6c17c9276ea78f8fc38d1768b6ae61 +commit ee95675177466a7ae5f9575db300df32e42661f2 Author: Daniel-Constantin Mierla -Date: Fri Nov 24 15:15:19 2017 +0100 +Date: Wed Sep 26 18:25:11 2018 +0200 - cnxcc: docs - added parameters to functions + db_redis: use SHARE_DIR define for default value of schema path param - (cherry picked from commit b24cae28dcb8ba3289e0320a1e406e4667371258) + - point to the folder where the schema files are deployed by make + install -commit fac694b66257f20b6d6a70bc5671c4d0e5764a40 +commit 41c4391f5d98b1f5128774b81b4923e66cb9cc0d Author: Daniel-Constantin Mierla -Date: Fri Nov 24 14:48:38 2017 +0100 +Date: Wed Sep 26 18:23:17 2018 +0200 - cnxcc: use fixup function helper for core to get string and int params - - (cherry picked from commit 41953f192185989b5ba3ee7154202b6c390fe84c) + Makefile.defs: propagate share dir target via -DSHARE_DIR compile switch -commit 9fd7d3cead49b935e53be3b814874dba5b3e5136 +commit c583fa740083b4b246c39bcf8e55622d1d66cb2c Author: Daniel-Constantin Mierla -Date: Fri Nov 24 14:44:12 2017 +0100 +Date: Wed Sep 26 18:14:34 2018 +0200 - core: mod_fix - typedefed struct to pvs_fixup_t + db_redis: docs for verbosity param, default values for other params - (cherry picked from commit 3205c5970652bba56e2e3904a565491503fb6206) + - bits of formatting -commit 71b5f6df20f6a13ad43a3ff6eacbfb10ff1e0dc2 +commit 2bf7b94146971ad3cbefe167c52036a18c8566c0 Author: Daniel-Constantin Mierla -Date: Fri Nov 24 12:37:54 2017 +0100 +Date: Wed Sep 26 18:00:24 2018 +0200 - cnxcc: clang format the code + db_redis: control printing all db tables via parameter verbosity - (cherry picked from commit db004a73d21c29a6a375d46eb15a6ba0b58910a7) + - the list can be long and the output can make waching logs harder for + rpc commands that connect/disconnect each time -commit 7a054ff4aeef952940f28d6f75e46761ff72b919 +commit 616689bf8b76d64e4b0eadd5a108fbcfa7e726a7 Author: Daniel-Constantin Mierla -Date: Fri Nov 24 11:04:52 2017 +0100 +Date: Wed Sep 26 14:51:58 2018 +0200 - lcr: exported functions to kemi framework + db_redis: detect if pkg config for hiredis gives lib name in path - (cherry picked from commit a8b4bd942794c864d8455ca9fb144c1daa76e164) + - try to cope with inconsistency of output for pkg-config --cflags in + older and newer debian/ubuntu distros -commit 5d9d92328ac0b7fd4315dae76cf62dae1e4d5112 +commit 08d001bb8e0ac336dc84e0541a9cf0104f6d9ee3 Author: Daniel-Constantin Mierla -Date: Fri Nov 24 10:05:45 2017 +0100 +Date: Wed Sep 26 14:41:14 2018 +0200 - lcr: exported load_gws() variants to kemi framework + ndb_redis: detect if pkg config for hiredis gives lib name in path - (cherry picked from commit 8fbf7d83b1dbeedf1ee53895aadbf6e99321432d) + - try to cope with inconsistency of output for pkg-config --cflags in + older and newer debian/ubuntu distros -commit 57942a0b20b0bf57d40c6266aaf855e526148fb1 -Author: Daniel-Constantin Mierla -Date: Fri Nov 24 09:45:02 2017 +0100 +commit dc6057be7baafa5b4d1d385a0af4031fe3a05e73 +Author: Kamailio Dev +Date: Wed Sep 26 13:31:57 2018 +0200 - lcr: clang format the code - - (cherry picked from commit e8a79182a76b306fad13c9cb12eb9f2c4c658b14) + modules: readme files regenerated - http_client ... [skip ci] -commit 989be5fe82b0b6ad503a804353e1519c1698d406 -Author: Daniel-Constantin Mierla -Date: Thu Nov 23 18:55:07 2017 +0100 +commit 9c6ec4a85b23d4e2795800b632ac9855f2028fec +Author: Barry flanagan +Date: Tue Sep 25 09:56:11 2018 +0100 - ndb_redis: exported redis_cmd() and redis_free() to kemi framework + Fix Typeo: authmetod -> authmethod - (cherry picked from commit a9ef7fe010492710e0a81a4505337accb5e1fea6) + Exported parameter for authmethod was mis-spelled as authmetod. -commit ae6c62f17a92e43bd83f2993cc188892241c3158 +commit 2bfef63949f2577a7b7ff80bbcc97250884dd26f Author: Daniel-Constantin Mierla -Date: Thu Nov 23 15:58:03 2017 +0100 +Date: Tue Sep 25 13:08:18 2018 +0200 - http_client: print url in log messages if query return code is not ok + dispatcher: test pkg malloc return in relative weights function - - safety check for search of end-of-line in a one line result type - - (cherry picked from commit ccbd1176242632fae2af39a168e4692dcf7ebcf9) + - declare vars at the beginning -commit 4268a9b36d741d72cb412729c1619b6a087a00d4 +commit b0e12c7ede93a47cc3912285a5ee4eef647f0b69 +Merge: b4b358f1f fe35aab46 Author: Daniel-Constantin Mierla -Date: Thu Nov 23 12:45:04 2017 +0100 +Date: Tue Sep 25 13:04:23 2018 +0200 - app_python: documented rpc commands + Merge pull request #1650 from jchavanton/issue_1649 - (cherry picked from commit cbaceaf891e16e9b0a1ef4883b8fec5e33698a86) + dispatcher: fix syncronization problem with -commit b9b0f7b480ff5003a19a9d3e86712caf156aefa5 +commit b4b358f1fe79362babe637921666b3d6001407b4 Author: Daniel-Constantin Mierla -Date: Thu Nov 23 12:40:19 2017 +0100 +Date: Tue Sep 25 10:09:15 2018 +0200 - app_python: implemented rpc command to list kemi functions - - - kamctl rpc app_python.api_list - - (cherry picked from commit bea0b53ce57f08ab9fc019c19f616b3b67795d64) + db_redis: Makefile - added -I/usr/include/hiredis for old distro -commit 41bfcaab0d403d2290d353e9fa522af22b72e8f6 +commit 806bf49bc9142c80f991d8441c84d7ba5316c0c3 Author: Daniel-Constantin Mierla -Date: Thu Nov 23 11:48:49 2017 +0100 +Date: Tue Sep 25 10:06:41 2018 +0200 - tm: fixed condition in via_matching() - - - introduced in previous commit - - (cherry picked from commit 4bd1d70c2804ee2a1d29bd911275aa241577cfc1) + ndb_redis: Makefile - added -I/usr/include/hiredis for old distro -commit be53e5d24707d8248a904124a6c88913b6eb0174 -Author: Daniel-Constantin Mierla -Date: Thu Nov 23 09:50:30 2017 +0100 +commit c8daa313031a9560670f829c4bdd482058f3d303 +Author: Kamailio Dev +Date: Tue Sep 25 09:01:59 2018 +0200 - tm: default port checking in via_matching() - - (cherry picked from commit 5fabdea4d86c527a2e38caaae7a54884367d6a7c) + modules: readme files regenerated - ndb_redis ... [skip ci] -commit eb746c0b6486b2cef6d9a5ffd0a0b37c11637101 +commit 4b5ad86748a4f53ec1ca3d0043984cfdcef0ae75 Author: Daniel-Constantin Mierla -Date: Thu Nov 23 00:10:18 2017 +0100 +Date: Tue Sep 25 08:47:08 2018 +0200 - drouting: exported next_routing() to kemi framework - - (cherry picked from commit 57c14e65d3cea754c88374b8dd1d67cb5be3f295) + ndb_redis: note about $redisd(key) variable -commit b6c1b0e35e5ce9ea9ad938f7681f6d3f4668b1eb +commit 52a08a7375a86966b9f179b8e416eea1e06f7973 Author: Daniel-Constantin Mierla -Date: Thu Nov 23 00:07:04 2017 +0100 +Date: Tue Sep 25 08:23:33 2018 +0200 - drouting: updates to documentation - - (cherry picked from commit ce96966593c9f7e12595b74c2a6bf50b248e64c8) + ndb_redis: $redisd(...) - pv that exports defined values by redis lib -commit 2178c95ccdc14086b3f23deba9fb836b65695525 +commit 6794815cf9b1f4dae0a4a7791d16e56fe7dcceb6 Author: Daniel-Constantin Mierla -Date: Wed Nov 22 23:48:43 2017 +0100 +Date: Mon Sep 24 20:05:26 2018 +0200 - drouting: exported functions to kemi interface - - (cherry picked from commit 51837d8dd4bb42d4ad59da39ab9be9f5db58231e) + db_redis: fixed compile warning on testing array address -commit b4f53652d39a65e4dc5364e801038e9e4f67708c +commit 510cfca61d2df1dcc2baa492c9f1f2f3b129ceb7 Author: Daniel-Constantin Mierla -Date: Wed Nov 22 23:31:17 2017 +0100 +Date: Mon Sep 24 19:59:23 2018 +0200 - drouting: use core fixup helper functions - - (cherry picked from commit db6eae95e2c9a17eef8f823c30a39812429158d3) + db_redis: updated include paths for pkg-config usage -commit 89bdf5edb485e636f3592c37ac9ce5e1458b868b +commit 3f0ca2f88afbd0819df2e4fecf603b72f757b3f4 Author: Daniel-Constantin Mierla -Date: Wed Nov 22 19:15:16 2017 +0100 +Date: Mon Sep 24 19:55:34 2018 +0200 - dialog: proper description of is_in_profile() to match the code - - - reported by GH #1320 - - (cherry picked from commit d319c449c8c15334ed913633cfece869a7d955aa) + ndb_redis: updated include paths for pkg-config usage -commit 2541ea693b69dc705ff5e1ba0e8218fe7a6aaf5d +commit bfcb600ed7bc94898f86d4ce1225c36a972b5916 Author: Daniel-Constantin Mierla -Date: Wed Nov 22 17:52:34 2017 +0100 +Date: Mon Sep 24 19:49:38 2018 +0200 - misc/examples: fixed position of ] in log message from kemi examples - - - based on a reporte by GH #1324 - - (cherry picked from commit d9ca0f6fcbd479dc82f75d301e43e45daf36a658) + ndb_redis: replaced printf with dbg, formatted sentinel code and long lines -commit 5ae1d7e8ee0673fc22adff5a1a6a09d5a91c9945 -Author: Daniel-Constantin Mierla -Date: Wed Nov 22 10:25:14 2017 +0100 +commit fe35aab46536e7ccc709ea8556049b675bcc8d2b +Author: Julien Chavanton +Date: Fri Sep 21 15:21:42 2018 -0700 - tsilo: exported functions to kemi framework + dispatcher: fix syncronization problem with - (cherry picked from commit 19f7d568a7bb17a88dd06f0b78775a559a1ca683) + relative weight based load distribution, issue #1649 -commit 75bb317825fdf3c9fb0f6c1e97235a7ed37344cf -Author: Daniel-Constantin Mierla -Date: Wed Nov 22 09:04:50 2017 +0100 +commit c11f9d5284dbc2eaefeb6569d3af0caabb28d4d1 +Author: Kamailio Dev +Date: Mon Sep 24 16:01:32 2018 +0200 - textopsx: exported header management functions to kemi framework - - (cherry picked from commit 80bed453cfcc5ec8753e4bb823097e711b1b5385) + modules: readme files regenerated - db_redis ... [skip ci] -commit 7f4cdb2f3c94ef7869db767906b344844c27006f +commit 5c71f59324cd0ced6f73577acd56e234337dfd30 Author: Daniel-Constantin Mierla -Date: Wed Nov 22 07:58:26 2017 +0100 +Date: Mon Sep 24 15:56:10 2018 +0200 - textops: split the code for msg_apply_changes() - - - exported msg_set_buffer(...) to kemi framework - - (cherry picked from commit 0a626a257dceb0c7cee13bf4ed173b644a5e5fd7) + db_redis: fixed typos from previous commit + +commit 76b1f3bfae32490547c5b1500ab7356bcf463e9e +Author: Richard Fuchs +Date: Mon Sep 24 09:46:19 2018 -0400 + + rtpengine: add block_media and unblock_media function calls + +commit cc2714a8df27c4e4a5e179bc0443600ec673ff63 +Author: Kamailio Dev +Date: Mon Sep 24 15:46:28 2018 +0200 + + modules: readme files regenerated - db_redis ... [skip ci] -commit 4bb2267e65af9079699b7248b86c1b64f3803fae +commit d4cd77119b55478a6bd35b76a9e7c196c0a71698 Author: Daniel-Constantin Mierla -Date: Tue Nov 21 22:36:54 2017 +0100 +Date: Mon Sep 24 15:39:27 2018 +0200 - textops: more functions exported to kemi - - (cherry picked from commit 18ebd5fe71baee236c8b2ee720028c5c90f622c5) + db_redis: docs about keys format and sample records -commit bfbc06a33a1f06e11d45ca2ea15fba110c9abb61 -Author: Sergey Safarov -Date: Sat Nov 25 14:00:30 2017 -0500 +commit 1d24e36d95b97e41bc76949bdd8ba2a24babdffe +Author: Daniel-Constantin Mierla +Date: Mon Sep 24 15:01:57 2018 +0200 - pkg/docker: Updated reference to docker scripts + tm: warn message on unexpected fcount value -commit fdb253d2be5aa48d483407aa3646562880b578cb -Author: Sergey Safarov -Date: Sat Nov 25 16:23:24 2017 -0500 +commit 434518953c507b41b80adaf1a39b7b8f1e9a3048 +Author: Daniel-Constantin Mierla +Date: Mon Sep 24 14:27:23 2018 +0200 - pkg/kamailio/alpine: Added sqlang, rabbitmq, sqlang packages + mem: f_malloc - better log message on ignoring double free -commit 4b5a889cf438138d0846ee9adcd8785ea2b94a95 -Author: Ovidiu Sas -Date: Sat Nov 25 17:51:33 2017 -0500 +commit 2cd82d39fe0fccf3237eb9947fd16b0be15c2270 +Author: Daniel-Constantin Mierla +Date: Mon Sep 24 14:22:12 2018 +0200 - xmlrpc: define _XOPEN_SOURCE to 600 - - - needed for snprintf() and variants - - reported by GH #1312 - - (cherry picked from commit 6e680c71b6a5d1571a38023427335922946a4160) + mem: q_malloc - better log message on ignoring double free -commit 0ef5bef4738af52a8a7b173cfd662a04a4d568dd -Author: Sergey Safarov -Date: Tue Nov 7 16:45:27 2017 -0500 +commit 7385c1dcfe8c7a31047a2b44c650874b49624b71 +Author: Kamailio Dev +Date: Mon Sep 24 10:46:34 2018 +0200 - pkg/kamailio/alpine_docker: Alpine docker scripts moved to subproject + modules: readme files regenerated - uac_redirect ... [skip ci] -commit a7049edf431b8b8f8c80040b3b005c2e00d44eca -Author: Juha Heinanen -Date: Fri Nov 24 10:18:33 2017 +0200 +commit 37fb1b68675c637c4d9bbfbc27572b2c748ad673 +Author: Mikko Lehto +Date: Sat Sep 22 10:21:19 2018 +0300 - modules/nathelper: check also transport protocol when determining - if ;alias parameter needs to be added by add_contact_alias() call - - (cherry picked from commit 93c81f5326acc2aefaca01c347f79c972727d0bf) + core: fix comment typo -commit 096de8d0979a71005e3f52146252365b53ab6197 -Author: Phil Lavin -Date: Thu Nov 23 10:22:42 2017 +0000 +commit f788766522cb0f9bb8bca42954337889198462ee +Author: Mikko Lehto +Date: Tue Aug 14 09:42:37 2018 +0300 - rtpengine: fixed segfault when using read_sdp_pv - - - Obtain body pointer fresh from the SIP message as when using read_sdp_pv - the body pointer is overwritten + uac_redirect: fix documentation typo -commit ae981250ab3b03a4163aa89e62161a9ec9db6e3c -Author: Victor Seva -Date: Tue Nov 21 12:24:43 2017 +0100 +commit f7ac556e699d323e816c14a554122c87d38b3a83 +Author: Mikko Lehto +Date: Thu Aug 9 14:35:17 2018 +0300 - pkg/kamailio/deb: version set to 5.1.0~rc1 + rtpproxy: fix comment typo -commit bf5d692c062da250813e5faa41ee4812ec77c2f2 -Author: Daniel-Constantin Mierla -Date: Tue Nov 21 11:47:49 2017 +0100 +commit 62790cc279550fef9ce3f7a6c0ee8dcc055f9625 +Author: Mikko Lehto +Date: Fri Jun 30 22:31:09 2017 +0300 - Makefile.defs: version set to 5.1.0-rc1 + src: Fix misspelled Kamailio -commit d60dd300e6e0444e984f62a18ffbbe63f8ba0fdf +commit 9113defb29b152cf41a961f7e82b1630d30464bd +Merge: 491e19eb4 e7ff1a13a Author: Daniel-Constantin Mierla -Date: Tue Nov 21 11:37:23 2017 +0100 +Date: Mon Sep 24 09:29:38 2018 +0200 - http_client: fixed the name of exported function http_client_query() with 4 params + Merge pull request #1646 from rromrrom/stats_by_method - (cherry picked from commit 4b3e7c4a988afdc93a3c337ea97e1f8c13730a79) + kex: Extend kamailio rcv_replies statistics -commit efe85046528b89e4068c02e3fe74b621fa73e1af +commit 491e19eb47384162cba64fd9f043e77574ce5017 Author: Daniel-Constantin Mierla -Date: Tue Nov 21 11:02:38 2017 +0100 +Date: Fri Sep 21 12:51:08 2018 +0200 - core: pv - new parameters to control the size of pv cache - - - pv_cache_limit - the limit how many pv declarations in the cache - after which an action is taken. Default value is 2048 - - pv_cache_action - specify what action to be done when the size - of pv cache is exceeded. If 0, print an warning log message when - the limit is exceeded. If 1, warning log messages is printed and - the cache systems tries to drop a $sht(...) declaration. Default is 0 - - This tries to cope better with the situation of declaring too many - variables when using kemi scripts - - (cherry picked from commit 6dc9ee1701019c8db994710c11f7e05447cbae92) + tls: update to default session id value to reflect major version -commit b26e95db1ab7d40999009225cc55b9ce773867fa +commit 9e13c9512b48ab9522f508465c6031e7b4a96086 Author: Daniel-Constantin Mierla -Date: Tue Nov 21 11:02:11 2017 +0100 +Date: Thu Sep 20 16:56:04 2018 +0200 - htable: added function to free $sht(...) pv name + core: use memcpy() instead of strncpy() - (cherry picked from commit 507c3c6f44467546d9441c0989610171f50f7edc) + - avoid gcc 8.2 warning: ‘strncpy’ output truncated before terminating nul -commit f66bd3bf2a143ce2a1b3f88b8aa0c5d65c3ec800 +commit 55575264332e07611c269873c9ce0b5a63c35454 Author: Daniel-Constantin Mierla -Date: Tue Nov 21 10:12:07 2017 +0100 +Date: Thu Sep 20 16:45:48 2018 +0200 - core: pv - increased the size for pv and transformation hash tables - - (cherry picked from commit 877b2c8fc40cd2e385fae7da713ef63dbd9bbabd) + core: use parentesis to surround condtion on raw_ipip header size -commit 2d459560451bcc850a44cd93899891b079efcd8a +commit daad89a516f1f298ef8f71505d7ab93b35fe76db Author: Daniel-Constantin Mierla -Date: Mon Nov 20 18:23:48 2017 +0100 +Date: Thu Sep 20 16:37:15 2018 +0200 - utils/kamctl: updated man pages + path: use memcpy() instead of strncpy() - (cherry picked from commit cb58fc376d3ed2d4c075282f2efe6721bf19d94e) + - avoid gcc 8.2 warning: ‘strncpy’ output truncated before terminating nul -commit 24eb13ded637958e7380085a540137e937fab574 +commit 4be1c60bb67d191f8a2715253a7cbcb2ea412d85 Author: Daniel-Constantin Mierla -Date: Mon Nov 20 17:21:50 2017 +0100 +Date: Thu Sep 20 16:32:09 2018 +0200 - app_python: aliased load to script_name parameter - - - load is used to specify what scripts needs to be loaded among the - modules implementing kemi + dispatcher: use memcpy() instead of strncpy() - (cherry picked from commit 4ca055ab34e4dfcf244491257906563b571fb748) + - avoid gcc 8.2 warning: ‘strncpy’ output truncated before terminating nul + copying 4 bytes from a string of the same length [-Wstringop-truncation] -commit 77b00c2ae89414f9864e7384483466feace852b6 +commit c4ce16fce6da24e6dc7e732117419cf3ce788d56 Author: Daniel-Constantin Mierla -Date: Mon Nov 20 09:54:43 2017 +0100 +Date: Thu Sep 20 13:07:00 2018 +0200 - core: kemi - more core functions exported to kemi framework - - (cherry picked from commit aec6c31b5acb43a5123fe29cccba623ffebe0b2b) + kamailio.cfg: added via1 sanity check in default config -commit 7f6764d3dd7abaf5ed190b44d22f213f1f225ba5 +commit 0d14ce8bf45ada579f7ec85793d358a5fa32e4b7 Author: Daniel-Constantin Mierla -Date: Sun Nov 19 22:14:40 2017 +0100 +Date: Wed Sep 19 09:03:10 2018 +0200 - core: kemi - support for short header name in hdr remove and search - - - KSR.hdr.is_present("hname") - function to search if a header is - present - - (cherry picked from commit 97f975fa5c2d2186f860e0deada4b5412c529ee5) + nathelper: exported fix_nated_sdp() variants to KEMI framework -commit 920aa01cf590aba7fafb81633b498a33d84e12a5 +commit 89676b9774ecc0f72272b7027821a9531dc1a6ea Author: Daniel-Constantin Mierla -Date: Sun Nov 19 21:50:25 2017 +0100 +Date: Wed Sep 19 08:33:14 2018 +0200 - core: kemi - function for branch flags with index have two int params - - (cherry picked from commit e4b7cd2a3e362917ff28f2f532d8d39ef9e53a4f) + registrar: use sruid_next_safe() -commit 3cacf80402be3c1bf3fae9db6a05ab74445b9040 +commit fd30ccf4473d43d98cfb0d896c47d4824c089bce Author: Daniel-Constantin Mierla -Date: Sun Nov 19 12:07:16 2017 +0100 +Date: Wed Sep 19 08:11:36 2018 +0200 - textops: several functions exported to kemi framework - - (cherry picked from commit a1508e63ff59665701b8901a79b14a3aa88eab9c) + usrloc: use sruid_next_safe() -commit 72078c4281f316d7728f54b3219a713c2481b39f +commit 06de508301a9dff63c671991d47944ef91cf91d2 Author: Daniel-Constantin Mierla -Date: Sun Nov 19 11:15:41 2017 +0100 +Date: Tue Sep 18 14:18:49 2018 +0200 - core: kemi - simplified anchor location for hdr append and insert functions - - (cherry picked from commit 7ab180c8ed3976148a23a0d0a727d1dcab1d9e72) + htable: proper parameter type for sht_setxs() kemi export -commit a430ff9555d0d412d364666e468cc78895265ab8 -Author: Daniel-Constantin Mierla -Date: Sun Nov 19 11:10:04 2017 +0100 +commit b3614e8b9e4192722a4577a59f071ec93f29664a +Author: Carsten Bock +Date: Tue Sep 18 10:31:57 2018 +0200 - core: kemi - exported hdr.append_after() and hdr.insert_before() - - - kemi functions to add a header after another one and insert a header - before another one - - (cherry picked from commit 0df40557879bc8c64c917d54b61fd106147be7b1) + ims_charging: In case of tel: URI => type MSISDN, skip the "tel:" from the URI + +commit 25cf75d6a7cc040883ada7bb7988aad0b6dde663 +Author: Carsten Bock +Date: Tue Sep 18 10:30:05 2018 +0200 + + ims_registrar_scscf: Copy AOR for lookup, so unlock udomain properly unlocks the domain. Should fix issue Github #1647 -commit 8318c3504018f39b7ec145197a663b517a2b4717 +commit f088d2afe4153b9e440a4293211c78f5a25af691 Author: Daniel-Constantin Mierla -Date: Sun Nov 19 08:55:43 2017 +0100 +Date: Mon Sep 17 16:17:55 2018 +0200 - test/unit: 19.sh - remove usrloc record by ruid + core: if nosip msg hooks skip handling the packet, stop sip routing processing + +commit e7ff1a13a244eb4b034a53774a00eeec0895e1d9 +Author: Roman Romanchenko +Date: Mon Sep 17 16:43:01 2018 +0300 + + kex: Extend kamailio rcv_replies statistics - (cherry picked from commit d848d133301bead7a6e3d9b3e6f3ffa2329fd825) + - ability to count reply groups for each SIP method added. + - statistics for 2xx and 4xx replies on invite added + +commit 9f8e2d43b748a9e78f18f748aba6b5965be01808 +Author: Victor Seva +Date: Mon Sep 17 12:13:23 2018 +0200 + + pkg/kamailio/deb: set version 5.2.0-dev7 -commit 3f10b021d6f60eeb2cf19056a93f55aa1f563374 +commit 6e3e86c2bae81232f73b391d0cd47b5e4415a0b8 Author: Daniel-Constantin Mierla -Date: Sun Nov 19 08:54:25 2017 +0100 +Date: Mon Sep 17 11:48:37 2018 +0200 - test/unit: print same messages when running all or individual unit tests - - - some explanatory comments in Makefile - - (cherry picked from commit 52c766bf3c54402cf403a58188952968a8520b68) + htable: better handling of unsupported matching operator -commit f2116e24670e8bcd169c0d9ae846b918c86c55c9 +commit 13bb3732aff23abbb1ba1114f1697095c09d584c Author: Daniel-Constantin Mierla -Date: Sat Nov 18 16:26:29 2017 +0100 +Date: Mon Sep 17 11:45:15 2018 +0200 - nathelper: export add_rcv_param(flags) to kemi interface - - (cherry picked from commit 6b65ff70d505680fa3904f659c47d466e77b38c6) + htable: use proper variable to set the expire along with the value -commit 6a3e11240be8e34614cf604897778a521e44b720 +commit 891202ec3cb477a802309eee9f18563ff8bf91d4 Author: Daniel-Constantin Mierla -Date: Sat Nov 18 16:19:55 2017 +0100 +Date: Mon Sep 17 11:14:27 2018 +0200 - nathelper: allow variable for nat_uac_test() parameter - - (cherry picked from commit 2815150bf74cdda26c12d05f25d6b67adf033dc1) + app_ruby: print type of result in case of execution failure -commit 1d54d51664b1f10d2afbfd20c143ddaf4fd6a71e +commit 3311bc10c69cbb8f1a8ea6834bec4cbfd76da7cd Author: Daniel-Constantin Mierla -Date: Sat Nov 18 16:07:19 2017 +0100 +Date: Mon Sep 17 10:37:53 2018 +0200 - nathelper: support to use variable for flags param of add_rcv_param() - - (cherry picked from commit d2120dae8bb76dfaa7057883c1f10950d35d4e48) + Makefile.defs: version set to 5.2.0-dev7 -commit 626573483e3184313cd54712f35ec054a3688706 +commit 1e04e9c65906e51d2747a3c9e9ca44d911a3365f Author: Daniel-Constantin Mierla -Date: Sat Nov 18 15:56:18 2017 +0100 +Date: Sun Sep 16 11:32:02 2018 +0200 - nathelper: clang format the code + htable: exported KSR.htable.sht_setxs(htname, itname, sval, exval) - (cherry picked from commit bcc5a66815ea21a762c22a8222afc621b42bb94d) + - renamed KSR.htable.sht_setiex() to KSR.htable.sht_setxi() -commit 69fb3b9b274b618ce4bf03c61ae03e11db8d0593 +commit 9d3a126cecbb051393dd79f7ae4d6c7ac6b9880b Author: Daniel-Constantin Mierla -Date: Fri Nov 17 14:33:46 2017 +0100 +Date: Sat Sep 15 14:08:54 2018 +0200 - core: test if ipv6 address starts with [ for subst snd lumps - - - safer than the test against cached socket address known to be without - [], allowing to pass any address value to be used - - reported by GH #1315 - - (cherry picked from commit 2cb94f28d7d214d22ccdb6a5b993b391f61ea15b) + htable: exported KSR.htable.sht_setiex(htname, itname, ival, exval) -commit 705fc77c076f6f7431295992d117db3e59c5c9fb -Author: Surendra Tiwari -Date: Fri Nov 17 11:39:55 2017 +0000 +commit a52e7cb1eec84a20432cb959a29a24ee1a8993dd +Author: Henning Westerholt +Date: Sun Sep 16 11:09:12 2018 +0200 - nat_traversal: correcting the ipv6 contact in fix_contact - - - fix_contact for ipv6 addres,add the [] to the host part of contact header - - (cherry picked from commit 4838bca79d5eb82d133b295d6e601c1924d7ac11) + app_python: workaround in Makefile for MacOS, fall-back to python if python2 not available -commit 804adb80204fc862d7a6cbb8007aa0202d7d6f7e -Author: Daniel-Constantin Mierla -Date: Fri Nov 17 13:05:53 2017 +0100 +commit 31498ca574c931f1a7e12619e725c8b151a3e7bd +Author: Henning Westerholt +Date: Sun Sep 16 10:26:58 2018 +0200 - nathelper: allow variable for flags parameter of fix_nated_sdp() - - (cherry picked from commit 4d93fb69805deea8c23ae2aa8b8743cc24ff2925) + app_python: fix python call in Makefile (python -> python2), reported by GH #1645 -commit 9f8c93ea28255a197c21bccbc6801ea2c1cdd27c +commit 7a02461169418f5ca4f6ea61494a0bb979eb47fd Author: Daniel-Constantin Mierla -Date: Fri Nov 17 11:02:04 2017 +0100 +Date: Fri Sep 14 14:09:40 2018 +0200 - core: udp - print up to first 100 chars from received packet - - (cherry picked from commit 83c370414cb288b113ad4f075a2261e7d701d6d3) + htable: internal function to update item expire along with the value -commit 055f6d29bb9becc1e15155fa77010806b84476a2 +commit fba9ea8823bf9beb009c5d857d674fa7bc665a37 Author: Daniel-Constantin Mierla -Date: Thu Nov 16 15:43:46 2017 +0100 +Date: Fri Sep 14 10:54:56 2018 +0200 - drouting: note in docs about supported characters in prefix values + htable: exported sht_setex(...) to kemi framework - - these are the digits (0..9), +, * and # - - (cherry picked from commit 8a40437e54d9a5f2e3141c3434fd672a9f2d0e13) + - API function to set expires value for an item: -commit 678abb0c5049d56c21bfc88f70873ed82f60e524 +commit 317701dc3d1ddb27395ded873a3055af2d029a5a Author: Daniel-Constantin Mierla -Date: Thu Nov 16 15:34:17 2017 +0100 +Date: Fri Sep 14 08:51:47 2018 +0200 - drouting: clang format the source code - - (cherry picked from commit e76a0acfccdd2a76252f220a2b530b19c5dfa1ba) + core: more info in log message when sendto() fails -commit 13f8a6a3f8ff61fc2da119e4587fa80de4e91a95 -Author: Daniel-Constantin Mierla -Date: Thu Nov 16 14:33:28 2017 +0100 +commit fc968236cf76ea6e67dcd74211b0e39e81b65d21 +Author: lazedo +Date: Thu Sep 13 12:36:00 2018 +0100 - drouting: removed svn ids and history - - (cherry picked from commit 2dd28a6285b688606b69691d33000d30f877c9a4) + auth: allow challenge from failure/onreply routes -commit 41d17a914c0364e044ca336c613a702fc5b08426 +commit 18fa51b8121e34e76c9a9935ed8e168aa9a70ebc Author: Daniel-Constantin Mierla -Date: Wed Nov 15 08:53:07 2017 +0100 +Date: Thu Sep 13 12:39:58 2018 +0200 - xcap_client: removed empty section for functions in docs - - (cherry picked from commit 86cbc43788b140dbbd3f35c7245a81dcbfa2d291) + sanity: reset sanity reply info before starting the checks -commit fcf13e1694ee29a758053be21cdce677e9afa6ff -Author: Victor Seva -Date: Tue Nov 14 11:44:35 2017 +0100 +commit c3258c2c7d3ce64a1ecb1c187b440b48e1544af3 +Author: Kamailio Dev +Date: Thu Sep 13 12:31:33 2018 +0200 - app_sqlang: allow select compiler using CC - - (cherry picked from commit 6efcf9afa764b264dc6b8fe3b8a478942bde7e6e) + modules: readme files regenerated - sanity ... [skip ci] -commit 8ff9cdc48effc50bbe3b6642276cbcce9ccd7bfe +commit af7e6e55182da0bf44a159e21df8948556bf71ae Author: Daniel-Constantin Mierla -Date: Tue Nov 14 08:30:10 2017 +0100 +Date: Thu Sep 13 12:24:53 2018 +0200 - xcap_server: added section ids in docs - - (cherry picked from commit ba3f64ec28da4b7bcaf9cbd07b74575034bb950a) + sanity: send 500 reply if sanity info is not set for the current request -commit dff21f989f134cc35a32002d865611cd9872678d +commit aa7c4beafbfee054872a4fa05a7d2a2f105e431e Author: Daniel-Constantin Mierla -Date: Mon Nov 13 21:57:42 2017 +0100 +Date: Thu Sep 13 12:17:19 2018 +0200 - etc/kamailio.cfg: added log_prefix - - - removed commented port example - - (cherry picked from commit 387e2a805a58d3a44e80331575d4a072f5a541fd) + sanity: docs for noreply param and sanity_reply() function -commit f0395bf20816a96f688643d61a4b19706624db78 -Author: Ovidiu Sas -Date: Thu Nov 16 09:54:08 2017 -0500 +commit 83789bed83388f8b53339b6b93abc33e4d9d62c1 +Author: Daniel-Constantin Mierla +Date: Thu Sep 13 11:04:06 2018 +0200 - xhttp_rpc: fix array printing + sanity: option to skip sending the reply internally - (cherry picked from commit 41754b645f986175f3385498057bae8bd33646af) + - new mod param 'noreply' - if set to 1, no reply is sent internally; + default is 0 + - new function - sanity_reply() that can be used in config to send a + reply with a code and reason set by the module when detecting a problem + inside sip message -commit 7dbd6983db0aadbd37af246d7bc169add68f4945 -Author: Victor Seva -Date: Mon Nov 13 15:24:44 2017 +0100 +commit 8a8fcc25a2e8faa8ef4d7b69207ac66fabc22827 +Author: Kamailio Dev +Date: Thu Sep 13 10:01:52 2018 +0200 - pkg/kamailio/deb: kamailio-nth add less as default - - * most is not available on all distributions - - (cherry picked from commit c4e5d9bf4438561fe8a87361b462eff38dc88d93) + modules: readme files regenerated - sanity ... [skip ci] -commit fc3842545afee3c62005f9845600b75b8c48bba9 -Author: Victor Seva -Date: Mon Nov 13 13:59:05 2017 +0100 +commit 5572b37a7a83074c9c3b9d5a07640d040b3fe51f +Author: Daniel-Constantin Mierla +Date: Thu Sep 13 09:47:14 2018 +0200 - pkg/kamailio/deb: remove lintian errors for old distributions - - * we are using a newer version of lintian, so new errors are detected - - (cherry picked from commit a56d67d3b7e0d4f5014f91b6b413c5861afc3560) + sanity: updates to the checks that can be done -commit 9e49676173d7f333c9b5c995321a76b23768b8e9 -Author: Victor Seva -Date: Mon Nov 13 12:08:08 2017 +0100 +commit e548172654b17140489f7432c34411b39c74471d +Author: Daniel-Constantin Mierla +Date: Thu Sep 13 09:41:26 2018 +0200 - pkg/kamailio/deb: add lsb-base + sanity: check for top Via header - fixes lintian error: - > E: kamailio: init.d-script-needs-depends-on-lsb-base etc/init.d/kamailio - - (cherry picked from commit 574ad1fc96fa207a5a30fba66977d27e50ea1da1) + - existing ones for Via are disabled/useless -commit f9a908461731852befc067ef579b5f2f9439e8ed -Author: Victor Seva -Date: Mon Nov 13 12:07:28 2017 +0100 +commit e59ff0c2c9895e9232923d0fe4d644b825ad20fd +Author: Daniel-Constantin Mierla +Date: Thu Sep 13 08:55:54 2018 +0200 - pkg/kamailio/deb: wrap-and-sort -sat + sanity: do not send reply if mandatory headers are missing - (cherry picked from commit 2dd971a970dbec87713177b52a32a667ebfa802c) - -commit c1cbd84f5cf0e25fd50fd2493402e6a0ab23ba6d -Author: Victor Seva -Date: Sun Nov 12 20:22:54 2017 +0100 - - pkg/kamailio/deb: version set to 5.1.0~rc0 + - reply cannot be constructed properly + - send replies in case of failures for digest checks (GH #1543) + - coherent use of msg vs _msg -commit a291d452a4aee57493003831b200bd7595742e25 +commit 56c8a21d3ab00014ade59f4c721228ff327b1625 Author: Daniel-Constantin Mierla -Date: Sun Nov 12 12:39:30 2017 +0100 +Date: Wed Sep 12 15:35:34 2018 +0200 - Makefile.defs: version set to 5.1.0-rc0 + sanity: do no try to send reply on missing From/To body - - branch for stable release series 5.1.x has been created + - removed redundant check of ACK, being done in reply wrapper -commit 8c25d80678da5911a9a62153bd64b45a5ba17ad8 +commit 93c8b40bb08c8e0d1cc4440e5261fc1965cc6a21 Author: Daniel-Constantin Mierla -Date: Sun Nov 12 12:30:54 2017 +0100 +Date: Wed Sep 12 12:03:11 2018 +0200 - app_sqlang: import of last squirrel interpreter - - - fixes macro conflict with mac os c++ libs - - (cherry picked from commit c6e5288e22ef188ada7ab980a359015d75393779) + tm: t_reply() skip sending reply if FL_MSG_NOREPLY is set -commit 2e27ab3c3e5c71970d5b83fe6fff1e50b571ac4d -Author: Kamailio Dev -Date: Sun Nov 12 12:16:29 2017 +0100 +commit 7c39625e94a3c8cb5a2e1879454b4ce7f1888a93 +Author: Daniel-Constantin Mierla +Date: Wed Sep 12 11:53:12 2018 +0200 - modules: readme files regenerated - registrar ... [skip ci] - - (cherry picked from commit dda77dd0a289731c23f15322701f8b77e9cfacde) + sl: skip sending reply if FL_MSG_NOREPLY is set -commit d4edeb823290e47cafa7952d4a029d7cfae9723a +commit 8a2a7ee6d12db57dd32127f56cea31d58d8a74c9 Author: Daniel-Constantin Mierla -Date: Sun Nov 12 12:08:02 2017 +0100 +Date: Wed Sep 12 10:26:58 2018 +0200 - acc: check if async task workers are active before doing async insert + sanity: set internal flag FL_MSG_NOREPLY if From/To headers are broken -commit 437b38305fcb733fa7a1a1e07a29370614beaacd -Merge: 550cb6f77 f43f40079 +commit 37e9d645f12401fc0394bec2bc813e3e7f191255 Author: Daniel-Constantin Mierla -Date: Sun Nov 12 12:03:54 2017 +0100 +Date: Wed Sep 12 10:18:46 2018 +0200 - Merge pull request #1311 from grumvalski/async_unixodbc - - db_unixodbc: added support for async queries + core: parse msg - added internal flag to skip sending a reply -commit 550cb6f775af01b29b38a8fbddfd5d01bf0983f5 -Merge: 0facb02dd 616a89f28 +commit e2b0106f15b73444c39fd9dd208299dd934c6b75 Author: Daniel-Constantin Mierla -Date: Sun Nov 12 12:01:57 2017 +0100 +Date: Wed Sep 12 10:17:56 2018 +0200 - Merge pull request #1310 from kamailio/cchance/registrar + sanity: remove use of EXTRA_DEBUG define - registrar: added server_id to ulc pv attributes + - allow seeing dbg messages useful for troubleshooting + +commit 275290bd7387b7794c4ae1bef1c94ee07007bece +Author: Kamailio Dev +Date: Wed Sep 12 08:47:05 2018 +0200 + + modules: readme files regenerated - textops ... [skip ci] -commit 0facb02ddecee62ab31ba9bebdc9980e08294049 -Merge: 3177a6fe5 282cb4395 +commit 64097569eccad8185117255a6018a32615c9945d Author: Daniel-Constantin Mierla -Date: Sun Nov 12 12:01:33 2017 +0100 +Date: Wed Sep 12 08:40:01 2018 +0200 - Merge pull request #1309 from kamailio/cchance/usrloc + textops: docs - note about how to add additional headers for a body part - usrloc: copy server_id when updating contact in memory + - GH #1632 -commit f43f40079d43b2893789c0787703f56464d9c033 -Author: grumvalski -Date: Sun Nov 12 10:53:58 2017 +0100 +commit 1db7dc4de6588131b4340390b5996141940b7ef0 +Author: Daniel-Constantin Mierla +Date: Tue Sep 11 23:12:02 2018 +0200 - db_unixodbc: added support for async queries + jsonrpcs: set global active context to delayed value for async commands + + - GH #1640 -commit 3177a6fe5497fd0e0c0fc736e641f6e1e02853d0 -Author: Kamailio Dev -Date: Sat Nov 11 11:01:33 2017 +0100 +commit 1501e20b65f63c64a89b84196dc925cef79b7c76 +Author: Daniel-Constantin Mierla +Date: Tue Sep 11 20:31:07 2018 +0200 - modules: readme files regenerated - corex ... [skip ci] + jsonrpcs: print flags in error message when rpc reply is not initialized -commit dfbffd71ed01fe72022babd3836966299283994b +commit deb2904d73a7a540f8eb6e2e8722185b7f0a9a99 Author: Daniel-Constantin Mierla -Date: Sat Nov 11 08:14:37 2017 +0100 +Date: Tue Sep 11 16:50:25 2018 +0200 - corex: documentation for corex.debug rpc command + tls: proper upper limit for tls connection lifetime + + - GH #1639 -commit 05f388adf04060978b995bdc83605d2faf2359f5 +commit bc41d0bc75f1b41f0185eeed37d5514525ef27be Author: Daniel-Constantin Mierla -Date: Sat Nov 11 08:08:40 2017 +0100 +Date: Tue Sep 11 16:41:55 2018 +0200 - corex: rpc command to control debug level + dialog: update active and early dialogs stats for dmq operations - - corex.debug - get the equivalent for former mi command + - related to GH #1591 -commit 616a89f281bfe77c4d31719dc3d7bd27de5c6bac -Author: Charles Chance -Date: Fri Nov 10 13:52:01 2017 +0000 +commit 83adc8963ef2fa324297beb70ca295a871931c95 +Author: Daniel-Constantin Mierla +Date: Tue Sep 11 12:34:36 2018 +0200 - registrar: added server_id to pv attributes + htable: export sht_sets() and sht_seti() to kemi framework -commit 2a80ed8030419ca15c4a954ea83531bb131e66b0 +commit 35dec4c20d78f49ba242229c877894d70c94705c Author: Daniel-Constantin Mierla -Date: Fri Nov 10 09:51:48 2017 +0100 +Date: Mon Sep 10 19:38:34 2018 +0200 - tm: use relayed_code for active type check in TMCB RESPONSE OUT + tm: set uas rb type along with the buffer when relaying replies - - relayed_msg can be a fake reply and accessing the status field causes - a crash (issue introduced by previous patch) + - ensure it is same reply code used in outgoing buffer -commit 313265ace229ed5d6ebd75ff6eff959e78820880 +commit 0ea62995ab026737411f3106a4584ba4ba640426 Author: Daniel-Constantin Mierla -Date: Fri Nov 10 09:27:16 2017 +0100 +Date: Mon Sep 10 17:22:54 2018 +0200 - dialog: use a variable for timeout of dialogs in end state + tm: typedefs renamed to match better module and common pattern + + - were not used so far -commit 74825c896dacd3f39948395cebfcf7b6e0730b51 +commit 1aad02edc6b9ffb104900cbc624f0853166ae926 Author: Daniel-Constantin Mierla -Date: Fri Nov 10 09:23:34 2017 +0100 +Date: Mon Sep 10 17:15:30 2018 +0200 - dialog: set the end time stamp immediately after going into deleted state + tm: activ_type field renamed to rbtype in struct retr_buf - - checks to see if time stamps are set when testing if dialogs lasted - too long in intermediary states + - better matching the purpose and do not use a typo word + - field t_active changed from char to short for better mem align -commit 282cb4395b5c31476f97a168f509b2904727e88a -Author: Charles Chance -Date: Thu Nov 9 15:11:03 2017 +0000 +commit 5b223a2e8a92f351b8eab756f5256fda7645ff21 +Author: Daniel-Constantin Mierla +Date: Mon Sep 10 15:03:44 2018 +0200 - usrloc: copy server_id when updating contact in memory + tm: update uas rb activ_type when overwriting realyed_code + + - otherwise could end up skipping the execution for TMCB_RESPONSE_OUT tm + callback, affecting acc, ... -commit 785a3ccc743f429107c3dfae78d43705918aa4e6 +commit f21554c6befaddbc82016d5d498e11ab3720c404 Author: Daniel-Constantin Mierla -Date: Thu Nov 9 15:54:46 2017 +0100 +Date: Mon Sep 10 09:18:27 2018 +0200 - tm: run TMCB_RESPONSE_OUT callback only if the response code is still the active one + acc: more debug message when checking if acc should be done -commit 33302f87cb2bd8b94a1e338d8a3171a41a055bf2 +commit 75040f62238d6181dc9aec977588c63d15dc5cbc Author: Daniel-Constantin Mierla -Date: Thu Nov 9 14:55:47 2017 +0100 +Date: Mon Sep 10 08:19:02 2018 +0200 + + rtpengine: safety check for tm uas.request field - tm: use define for unset flags of run_trans_callbacks_with_buf() +commit ac65216b26449c05e27aaf772ade75477128a7d7 +Author: Kamailio Dev +Date: Sun Sep 9 15:32:03 2018 +0200 + + modules: readme files regenerated - htable ... [skip ci] -commit 4b19cda766732adc7788b7a5ebcf256c58a35c32 +commit 40518b640f1811dd65196bd08e0460dff4e7040a Author: Daniel-Constantin Mierla -Date: Thu Nov 9 07:03:02 2017 +0100 +Date: Sun Sep 9 09:01:11 2018 +0200 - db_mysql: coherent indentation and whitespacing + htable: docs for sht_rm(htname, itname) -commit 60db119bf8388f047cb7f7e2ce9f2e740b5abb8d +commit f5661587f8547bc878965342aa36ce5e462d3e9a Author: Daniel-Constantin Mierla -Date: Thu Nov 9 06:42:49 2017 +0100 +Date: Sat Sep 8 08:23:13 2018 +0200 - core: warning when a task is pushed but no workers + htable: added sht_rm(htname, iname) - - helper functions to get the number of workers + - api function to remove an item from hash table -commit 103173e6258a4c2a6d8c65306320fe2e01d036f2 -Author: Daniel-Constantin Mierla -Date: Wed Nov 8 11:59:31 2017 +0100 +commit af66d5a186e26a5ad612f2dd47ab24b8336ae03f +Author: Kamailio Dev +Date: Fri Sep 7 15:46:27 2018 +0200 + + modules: readme files regenerated - tm ... [skip ci] + +commit 17145075e77c7f962703ce401e879887a5717265 +Author: Henning Westerholt +Date: Fri Sep 7 15:16:34 2018 +0200 - phonenum: set record after phone number lookup and return pv attributes + tm: document event_route[tm:local-response] -commit 5e54b72fe8afa6710a51c65ed942b671ab0249d9 +commit 1e67fdd53a1c6dc3964d25e891caad24029b7887 Author: Daniel-Constantin Mierla -Date: Wed Nov 8 09:30:06 2017 +0100 +Date: Fri Sep 7 09:00:04 2018 +0200 - misc/examples: updates for basic and advanced configs for v5.1 + tls: cast to usigned for computing available size for read -commit 25b96858e0f89d13cd2093e15fa8d1178c691278 -Merge: b2ea3cb25 189630e9d +commit db00d11d6a30cb779cecfae73487de6d05b6b915 Author: Daniel-Constantin Mierla -Date: Wed Nov 8 09:49:21 2017 +0100 +Date: Fri Sep 7 08:22:53 2018 +0200 - Merge pull request #1307 from armenb/uac_max_message_size - - uac: increase UAC message size to 32kbytes + core: tcp - more safety check to avoid jumping out if receive buf for ws proto -commit b2ea3cb2530f17d2b91139155ce163df1d812f74 -Merge: 54e3ce210 e3e90b2e1 +commit da59f7a2bb32b6c5995313249475207f9ca22790 Author: Daniel-Constantin Mierla -Date: Wed Nov 8 09:48:37 2017 +0100 +Date: Thu Sep 6 19:26:06 2018 +0200 - Merge pull request #1306 from armenb/evapi_logging + dmq: fixed KEMI export for handle_message() after last commit adding int param - evapi: Change NOTICE logging to DBG + - new function handle_message_rc(...) exported to kemi -commit 189630e9df209431cb800617d98d215bfd3031a4 -Author: Armen Babikyan -Date: Wed Nov 8 00:36:21 2017 -0800 - - uac: increase UAC message size to 32kbytes - -commit e3e90b2e1864db5e417c5db1208e042ce818a810 -Author: Armen Babikyan -Date: Wed Nov 8 00:33:40 2017 -0800 - - evapi: Change NOTICE logging to DBG - -commit 54e3ce2103423fd08e9f18425f86af5ea04ed85f +commit 66245384f4598350699228249c7e79e37d30a5ff Author: Kamailio Dev -Date: Wed Nov 8 01:01:26 2017 +0100 +Date: Thu Sep 6 16:16:23 2018 +0200 - modules: readme files regenerated - textopsx ... [skip ci] + modules: readme files regenerated - rtpengine ... [skip ci] -commit 8443b3e28a3f44a127ab8de6b8ee329f2f796e12 -Author: Mikko Lehto -Date: Wed Nov 8 01:48:11 2017 +0200 +commit 6bb63e2a59b795d19b24acc67adb9335c6abd363 +Author: Richard Fuchs +Date: Thu Sep 6 10:07:10 2018 -0400 - textopsx: fix documentation typo + rtpengine: fix docs xml (broken in e528fce) -commit f6ccf52b1559a6e242484072765b8d223da4ec73 -Author: Victor Seva -Date: Tue Nov 7 16:21:17 2017 +0100 +commit b80400e59aa4ef0e148335e3532ff33f7b371904 +Author: Kamailio Dev +Date: Thu Sep 6 15:46:29 2018 +0200 - pkg/kamailio/deb: version set to 5.1.0~pre1 + modules: readme files regenerated - rtpengine ... [skip ci] -commit 3ca5b6d5c2cfe44845c178a23b90bfe7e3630c86 -Author: Daniel-Constantin Mierla -Date: Tue Nov 7 16:09:45 2017 +0100 +commit e528fce4b61112f78b0081fcb0d53ef440cafce7 +Author: Richard Fuchs +Date: Thu Sep 6 04:16:35 2018 -0400 - Makefile.defs: version set to 5.1.0-pre1 + rtpengine: add block_dtmf and unblock_dtmf -commit f7ac76e5d6522160469628025e685f9572daa6a6 -Author: Daniel-Constantin Mierla -Date: Tue Nov 7 15:35:42 2017 +0100 +commit 4625c7509e60a087389d22267c8cc10595593a54 +Author: Kamailio Dev +Date: Thu Sep 6 13:16:28 2018 +0200 - core: etc - sample m4 templates for config moved to misc/examples/mixed + modules: readme files regenerated - dispatcher ... [skip ci] -commit ab691444295243265bbbaea6312dbea345055825 +commit 8a64560e1037afe723dbd8c3c26ce198258f35fb +Merge: 8d4653cc2 3f9c38be1 Author: Daniel-Constantin Mierla -Date: Tue Nov 7 15:33:37 2017 +0100 +Date: Thu Sep 6 13:15:00 2018 +0200 - core: etc - basic and advanced configs relocated to misc/examples/pkg + Merge pull request #1636 from kamailio/gv/ds_ping_from - - they are not installed by default anymore - - use 'make install-cfg-extras' to get them installed in the target etc folder + dispatcher: add ping_from attribute -commit b61994af4c3765e18fa1b200289d65f64530f815 +commit 8d4653cc2e0113bcec4397657e27b8c19b1849a7 Author: Daniel-Constantin Mierla -Date: Tue Nov 7 13:15:46 2017 +0100 +Date: Thu Sep 6 12:57:56 2018 +0200 - auth_radius: fixed sample dictionary file install + tls: tls.cfg - more sample tls domain profiles - - avoid overwriting previous versions of the dictionary + - small edits to explanatory comments -commit c46d26b513fc293494b75fecfaa6dac4d2085897 -Author: Daniel-Constantin Mierla -Date: Tue Nov 7 13:20:46 2017 +0100 +commit d008a559e00d161c0e2415d6dbbcd88c9349357b +Author: Kamailio Dev +Date: Thu Sep 6 11:31:38 2018 +0200 - core: etc - moved sample tls ca folder to misc/tls-ca + modules: readme files regenerated - tls ... [skip ci] -commit d7d37df391fa2e0731667352b0afd7317f46b737 +commit ae17309bf9f9866c469547971c3853b5c677f434 Author: Daniel-Constantin Mierla -Date: Tue Nov 7 13:18:15 2017 +0100 +Date: Thu Sep 6 11:21:51 2018 +0200 - core: etc - moved reasons files to misc/reasons + tls: docs - more details about content of tls.cfg -commit 7464ce3c9c9c742dbb06501190b17cbcad6b45b9 +commit 14b27ed9377c62df4fa9f230b9aa9490fea98294 Author: Daniel-Constantin Mierla -Date: Tue Nov 7 13:15:57 2017 +0100 - - core: moved radius dictionary files from etc to auth_radius module - -commit acdfa070da60f6e8f1d5c9c82a394bcc0a5db041 -Merge: 2ac35536b cf26bbe33 -Author: Federico Cabiddu -Date: Tue Nov 7 13:08:10 2017 +0100 +Date: Thu Sep 6 10:03:21 2018 +0200 - Merge pull request #1302 from vitalikvoip/tsilo_fix + tls: check tls domain cfg duplication after parsing all attributes - tsilo: fix internal data structures + - allows definition of domain profiles with same address but different + server_name (SNI) -commit 2ac35536b38918bc83fafe0e8563e95ab3fc774b -Author: Sergey Safarov -Date: Tue Nov 7 12:58:01 2017 +0100 +commit 1180b17ebd847455e52399341cdb724d6c9241e5 +Merge: 4ce701bd9 8b3c399a2 +Author: Daniel-Constantin Mierla +Date: Wed Sep 5 19:14:10 2018 +0200 - pkg/kamailio/obs: added package for sipcapture daemon + Merge pull request #1633 from sergey-safarov/spec_update - - includes config and system files - - worked from PR #1106 + pkg/kamailio: Updated RPM spec file -commit cc12bc17587df3e4f2e02dbd05bee4946bda6d5c +commit 4ce701bd910f516b5668e5068ee20e88b5fbf881 +Merge: 7dbe407d3 76087baf7 Author: Daniel-Constantin Mierla -Date: Tue Nov 7 10:53:05 2017 +0100 +Date: Wed Sep 5 19:13:45 2018 +0200 - dialog: parse all headers before getting the message attributes for dialog + Merge pull request #1630 from sergey-safarov/master - - some headers can appear many times + pkg/docker: Updated subproject -commit cf26bbe33307067141dc1abb21fb7c53cb0e5ecc -Author: Vitaliy Aleksandrov -Date: Tue Nov 7 11:24:01 2017 +0200 +commit 7dbe407d31c0dbf9c1bb69d1fd11b8e7607c9766 +Author: Daniel-Constantin Mierla +Date: Wed Sep 5 14:59:37 2018 +0200 - tsilo: fix internal data structures + tls: added server_name_mode attribute for tls domain profiles - - avoid crash by fixing "first" and "last" pointers of of the ts_entry_t after ts_urecord_t deletion + - define how to match server_name (SNI): + * 0 - match only the domain + * 1 - match the domain and subdomains + * 2 - match only the subdomains -commit 684059ca5bb76e2006a9560ac1efa8c3540d3a58 -Author: Charles Chance -Date: Mon Nov 6 15:39:41 2017 +0000 +commit 3f9c38be11416f7abe5c4448088ba66d2d3e6aad +Author: Giacomo Vacca +Date: Wed Sep 5 14:35:52 2018 +0200 - dmq_usrloc: include server_id in replicated contacts + dispatcher: add ping_from attribute -commit 76718ed2622be33d3aa28621889e02338e886094 +commit 6cfc60875063b9c75ef3a09d879e0e47b92935ea Author: Daniel-Constantin Mierla -Date: Mon Nov 6 12:54:18 2017 +0100 +Date: Wed Sep 5 13:01:19 2018 +0200 - core: tcp - execute receive msg after nonsip-hook for hep3 packets + tls: allow defining a tls profile (domain) for any address + + - token 'any' or 'all' can be used instead of the address + [server:any] or [client:any] + - useful when the IP address/port to listen on is not known upfront or + many addresses are used to listen on + - such profiles can be defined many times and must have server_name attribute + (for SNI) -commit b0de27c797b60d75db882d2da606e9e38ebd5304 +commit 2fc11f183d8fcedeb35559c5236ad7159a6a5864 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 17:14:11 2017 +0100 +Date: Wed Sep 5 11:48:02 2018 +0200 - core: tcp - fixed condition to match HEP3 packet header + core: tcp - improved safety check for available byte in tcp read buffer -commit 875ac29b629f570ada81462c384e2abe9952a249 +commit 1262884a47719fd0349a9ce8553d70e167d5b05a Author: Daniel-Constantin Mierla -Date: Sun Nov 5 13:44:15 2017 +0100 +Date: Tue Sep 4 18:55:20 2018 +0200 - core: tcp - print first characters if matching hep3 header fails + pv: added transformation {s.unbracket} + + - return value without surrounding (), [], {} or <> -commit c70f094138033b987bb5b276363de2388d86d47a -Author: Kamailio Dev -Date: Sun Nov 5 11:31:25 2017 +0100 +commit 74f95d902d43e6eb7c3af42d2d4fcb5fd029c28b +Author: Daniel-Constantin Mierla +Date: Tue Sep 4 17:25:00 2018 +0200 - modules: readme files regenerated - msrp ... [skip ci] + app_jsdt: fixed typo in exporting KSR.pv.getvs(...) -commit 872ef07aec3aaf72d5ade9360fc5eb5e72aa5668 +commit 1891c31204d59dd2270d8ea925259578145dc8f6 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 11:22:22 2017 +0100 +Date: Tue Sep 4 15:56:43 2018 +0200 - sipcapture: documentation for event_callback parameter + app_jsdt: exported KSR.pv_getvn(...) and KSR.pv.getvs(...) -commit d56a48ac7390199e893ea478704c9589c4a14012 +commit d453bdd36a6cd569978a1d19e41d55b28c2b4e13 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 11:22:06 2017 +0100 +Date: Tue Sep 4 11:52:58 2018 +0200 - msrp: fixed module name in event_callback example + tcpops: more debug messages when executing event route -commit 58014d8915e550848fbf9eacb505d91fd99e24a3 -Author: Daniel-Constantin Mierla -Date: Sun Nov 5 11:16:31 2017 +0100 +commit be55865fb2601cc9141d6f3fb5ad0affd7507102 +Author: Kamailio Dev +Date: Tue Sep 4 11:31:32 2018 +0200 - sipcapture: ability to run event route callback via kemi framework - - - parameter event_callback has to be set to kemi callback function name + modules: readme files regenerated - htable ... [skip ci] -commit 19dda2ca945b88295f1b608034950cf59621185e -Author: Giacomo Vacca -Date: Sat Nov 4 18:26:21 2017 +0100 +commit dec17cb6af275789c4ae804d5e1004a9f77010a3 +Author: Daniel-Constantin Mierla +Date: Tue Sep 4 11:25:21 2018 +0200 - http_async_client: null terminated CURLOPT_ - - (cherry picked from commit 574a11d8c0c20d3d0c058726609df8ed4e5b68dc) + htable: proper return on match for sw operator whith rm functions -commit a69aab1c652b6645edf0349ecf7134f8dcd6b35e -Author: Kamailio Dev -Date: Sun Nov 5 10:46:32 2017 +0100 +commit 232c541ab6a084011380d94569215d599725e588 +Author: Daniel-Constantin Mierla +Date: Tue Sep 4 11:12:16 2018 +0200 - modules: readme files regenerated - msrp ... [skip ci] + htable: docs for sht_has_name(...) and sht_has_str_value(...) -commit 97589070ec1568d4554b02c3de33b9d2ec519371 +commit 37eb8b00c22da64df3d9f38645354af19c407bf5 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 10:33:09 2017 +0100 +Date: Tue Sep 4 11:04:59 2018 +0200 - core: tcp - more debug messages when reading hep3 packets + htable: new functions sht_has_name(...) and sht_has_str_value(...) + + - sht_has_name(htable, op, mval) - return >0 if there is an item + matching its name with mval based on operator op + - sht_has_str_valye(htable, op, mval) - return >0 if there is an item + matching its string value with mval based on operator op -commit 8400eb35826e1beadb9022ae8d7c153c78c2beda +commit 2806831045cdb8f110737a87470382c28c5ce094 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 10:23:23 2017 +0100 +Date: Tue Sep 4 10:08:12 2018 +0200 - sipcapture: documentation for event routes + htable: exported sht_rm_name() and sht_rm_value() to KEMI -commit 765a4d9016d6b545c5d6dbb49a298acfb93e8041 +commit d68c1bcb350bce2f1951b604f97e246734e43b84 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 10:10:44 2017 +0100 +Date: Tue Sep 4 09:48:02 2018 +0200 - msrp: documentation for event_callback parameter + pv: increased transformation buffer slots from 4 to 8 -commit f13d709e044148d7b5ac53df9bbce22c9c71b9fd +commit 533e8f5cca940652f8507a272b076d51161432bd Author: Daniel-Constantin Mierla -Date: Sun Nov 5 10:04:15 2017 +0100 +Date: Tue Sep 4 09:46:01 2018 +0200 - msrp: execute event callback via kemi framework + pv: new transformation {s.unquote} - - parameter event_callback has to be set to the name of kemi function + - return the value without surrounding double/single quotes (" or ') -commit 96bb1aeb8f4392f97fa0cfe229841c7d640e62e2 -Author: Kamailio Dev -Date: Sun Nov 5 09:16:22 2017 +0100 +commit 5e0440aa27154c263fc883f3a7cb9680805af6c3 +Author: Daniel-Constantin Mierla +Date: Mon Sep 3 20:51:59 2018 +0200 - modules: readme files regenerated - db_mongodb ... [skip ci] + kamctl: regenerated db schema files -commit 2fce31ce4ed59fc99f826ea1ecbc7b022321e6c1 +commit 01045cc2e2f2b86e109c661ca1748809cda68b7a Author: Daniel-Constantin Mierla -Date: Sun Nov 5 09:02:17 2017 +0100 +Date: Mon Sep 3 20:48:39 2018 +0200 - sipcapture: fixed missing end of section tags for float2int() docs + lib/srdb1: schema - removed rpid and email_address columns from subscriber + + - they are not used by auth_db module + - version number not needed to be updated, no default queries being affected + - GH #858 -commit 2d74f9854239442b7bf63b701f40bbc2013c2ba7 +commit 9121118444e638223c789641618ed4145a67b0f3 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 08:59:18 2017 +0100 +Date: Mon Sep 3 14:50:16 2018 +0200 - db_mongodb: added Remarks section to collect details about specific requirements + htable: exported sht_rm_value_re() and sht_rm_name_re() to kemi + + - GH #1614 -commit ef40fe7d15161585ea552f75bbe588bd7bd66799 +commit 23a4632ffacedf5b80b1be4a47cab6fddec90502 Author: Kamailio Dev -Date: Sun Nov 5 08:46:38 2017 +0100 +Date: Mon Sep 3 13:01:47 2018 +0200 - modules: readme files regenerated - sipcapture ... [skip ci] + modules: readme files regenerated - rr ... [skip ci] -commit 6643f0e667a83b6d812b334e2a2bbf02f1ccdb26 +commit 096461d90c5fd301fdfb77a52e2906e3f591f643 Author: Daniel-Constantin Mierla -Date: Sun Nov 5 08:39:11 2017 +0100 +Date: Mon Sep 3 12:49:39 2018 +0200 - sipcapture: docs - replaced mi examples with rpc + rr: docs for ignore_sips parameter -commit 776a3143948445c68f8a7b4cabba0c1a21f9f6ad +commit 65a50a5b4a4e37d940f9a33ec6c0d8079249de59 Author: Daniel-Constantin Mierla -Date: Sat Nov 4 10:20:50 2017 +0100 +Date: Mon Sep 3 12:27:41 2018 +0200 - sipcapture: updated the docs for functions + rr: ignore_sips - new parameter to control use of sips schema - - missing parameters to existing functions and docs for float2int() + - if set to different than 0, then record-route headers will be added + with sip schema even if r-uri comes with sips. Allow interoperability + with some UAs messing up routing when sips is used + - default is 0 - use sips schema if in r-uri (existing behaviour) -commit 422f9ea87029716674972e4c387dfd362058ad49 -Author: Henning Westerholt -Date: Sat Nov 4 23:28:32 2017 +0100 +commit 8cebf48eeee70d23c6cf827e24b2f5fabda669ab +Author: Daniel-Constantin Mierla +Date: Mon Sep 3 09:54:39 2018 +0200 - cfg: fix spelling error in load module statement related to jsonrpcs + core: parse via - set len for host/port_str only if there is a value -commit 0956257ae6fdc0a801ce109017089ac18018e63b +commit f8723954bf67359c92e8cd09ac6915f64ad1ce71 Author: Daniel-Constantin Mierla -Date: Fri Nov 3 18:10:22 2017 +0100 +Date: Mon Sep 3 09:23:38 2018 +0200 - htable: fix rpc dump json format - - - slot items have to be inside an array + dispatcher: more debug messages when updating dst -commit c7b93907c95c2a9e8d72b6c43668d70d8a2a9025 +commit 3fef2b3c18f83add1af13c2b84303b507e27aeca Author: Daniel-Constantin Mierla -Date: Fri Nov 3 13:57:06 2017 +0100 +Date: Mon Sep 3 09:23:08 2018 +0200 - core: tcp read - removed unused variable + core: xavp - more debug details when printing xavp -commit 32d1c9530fd64459da33dce60a25f319d65f7cb9 -Author: Kamailio Dev -Date: Fri Nov 3 13:31:21 2017 +0100 +commit 76087baf7bc2e71f226da859bd938f13db4ad814 +Author: Sergey Safarov +Date: Sat Sep 1 15:45:17 2018 +0000 - modules: readme files regenerated - usrloc ... [skip ci] + pkg/docker: Updated submodule -commit 7c52ffb920ec0552a8720833223a54813affe8ee -Author: Daniel-Constantin Mierla -Date: Fri Nov 3 13:21:11 2017 +0100 +commit c9b3ed04a7ab49cbc2063b44f66f50366d7a3ba5 +Author: Sergey Safarov +Date: Sat Sep 1 19:55:32 2018 +0000 - usrloc: more docs for db_insert_null parameter + pkg/kamailio/alpine: Added function to build package from local git tree -commit db8f664aa72a4fabc9a5f5c4b06d629fd4c8946a -Author: Daniel-Constantin Mierla -Date: Fri Nov 3 13:02:05 2017 +0100 +commit 8b3c399a27e6c7deed978d3b74bda4fc066f6540 +Author: Sergey Safarov +Date: Sun Sep 2 19:30:37 2018 +0000 - pua_usrloc: no publish requests at shutdown time - - - operations are useless, being related to db operations - - safer for races between modules during cleanup, reported by GH #1287 + pkg/kamailio: Updated RPM spec file -commit 8a56a10903c8c63409e92575d105e1e07f483a69 -Author: Victor Seva -Date: Fri Nov 3 10:11:33 2017 +0100 +commit 6fadac0fc8107a80663da7f975f066738151456b +Author: Daniel-Constantin Mierla +Date: Sun Sep 2 12:42:37 2018 +0200 - pkg/kamailio/deb: version set to 5.1.0~pre0 + textopsx: use functions from core to apply changes -commit d340582267174ccb0a5d816049c582fe75d2177b +commit 8e581a3ebe71eedb41ac7a41538e6b1b2b391744 Author: Daniel-Constantin Mierla -Date: Fri Nov 3 09:23:38 2017 +0100 +Date: Sun Sep 2 12:33:17 2018 +0200 - evapi: enable tcp keepalive on client connections + core: functions to apply changes and update internal sip msg buffer -commit 9193afeb3e4041f16e13d07520b69ed33129db31 +commit 37c27ef7b42e2db7ea5754d4fe96854debc54b66 Author: Kamailio Dev -Date: Fri Nov 3 09:16:31 2017 +0100 - - modules: readme files regenerated - evapi ... [skip ci] - -commit feb987dbb2c761006056136dae24731d957367db -Author: Daniel-Constantin Mierla -Date: Fri Nov 3 09:10:25 2017 +0100 +Date: Fri Aug 31 21:01:29 2018 +0200 - evapi: documentation for max_clients parameter + modules: readme files regenerated - dmq ... [skip ci] -commit 4643c51032b8d28c1dede12792c1e1737fdb60e8 -Author: Daniel-Constantin Mierla -Date: Fri Nov 3 09:07:55 2017 +0100 +commit 18c1eb2c05c9eadea240677db27576caaef0950c +Merge: 0d2dd5b0a bce08905d +Author: Charles Chance +Date: Fri Aug 31 19:50:05 2018 +0100 - evapi: allow setting max number of clients via param + Merge pull request #1626 from kamailio/dmq_handle_message-return - - reported by GH #1290 + dmq: add optional "continue" parameter to dmq_handle_message() -commit bb91d6c4fa88324c31d3b7a91687057e0ae8bfa0 -Author: Daniel-Constantin Mierla -Date: Fri Nov 3 08:46:08 2017 +0100 +commit bce08905dc0bea2f9bce44460dcaee4e786b9bd2 +Author: Emmanuel Schmidbauer +Date: Fri Aug 31 14:17:26 2018 -0400 - evapi: do close() on client socket if libev detects it is gone - - - handle socket values for valid range >=0 + dmq: add optional parameter to dmq_handle_message() -commit 95bd694e75c250d8b26cac071bff2e48e0eb9062 -Author: Daniel-Constantin Mierla -Date: Fri Nov 3 08:26:36 2017 +0100 +commit 0d2dd5b0a2c4c910e27ae7162d72f446ff92e365 +Author: Henning Westerholt +Date: Fri Aug 31 19:12:19 2018 +0200 - evapi: dispatcher worker to send event data directly - - - instead of trying to send over internal socket, which is open only for - reading in this process + uac: remove unused variable 'none' compiler warning, reported from Juha -commit c31535072a04273b52a5cbc015e7ed1423d5dc33 +commit 35aef078dfbcb92de9591eea2841b3ba0f9682f6 Author: Daniel-Constantin Mierla -Date: Fri Nov 3 08:23:29 2017 +0100 +Date: Fri Aug 31 12:43:44 2018 +0200 - db_mysql: do not set reconnect field explicitely for newer mysql versions + core: Makefiles - catch unavailbility of docbook2man tool - - exposed with MariaDB 10.2 - - include mysql.h instead of mysql_version.h - - reported by GH #1296 + - print an info message instead of ending up in execution error of + Makefile rule trying to generate man pages from xml files + - DOCBOOK var renamed to DOCBOOKMAN to be more suggestive for its + purpose + - related to GH #1624 -commit b8a76ac176dfe2a10349b17072ed84e4b914bd8f -Author: Daniel-Constantin Mierla -Date: Thu Nov 2 10:50:03 2017 +0100 +commit aede7c4835dd516cea75a5191d1ae6af3460c3c8 +Author: Kamailio Dev +Date: Fri Aug 31 11:31:46 2018 +0200 - Makefile.defs: version set to 5.1.0-pre0 + modules: readme files regenerated - sipjson ... [skip ci] -commit 3642f1f1fa0a5c34ed2e61988b93e4ecb7d4596e +commit e913fa83f87b34e236817b8db60341fe5a193a3d +Merge: 6c5fc2132 db3b9dbd4 Author: Daniel-Constantin Mierla -Date: Thu Nov 2 10:47:50 2017 +0100 +Date: Fri Aug 31 11:24:38 2018 +0200 - core: try to handle hep3 over tcp/tls from reader + Merge pull request #1628 from rromrrom/crash_on_empty_string - - avoid going through longer processing path - - done only global parameter tcp_accept_hep3 is set + tm: crash on memcpy fix -commit 5940e759a754644d29e4145eea648ede45b4b356 +commit 6c5fc21329bac531b64c1350c10e3d0490aefef6 Author: Daniel-Constantin Mierla -Date: Thu Nov 2 08:42:58 2017 +0100 +Date: Fri Aug 31 11:20:08 2018 +0200 - regex: free unused tmp pkg memory for reloaded patterns - - - use memset instead of for loop to init allocated memory to 0 - - few bits of code formatting + sipjson: docs - updates to serialize options and sample json section -commit 1de15c06b982b4b4a0d9860b51c2178745cd9af0 +commit 4b3a7d37ce9d91bcd0367712de5ca1f2668eaebe Author: Daniel-Constantin Mierla -Date: Wed Nov 1 16:46:20 2017 +0100 - - core: safety checks to catch enclosed ipv6 addresses or hostnames in via build +Date: Fri Aug 31 11:14:27 2018 +0200 -commit e6abb9302c8b127b7ac15cd7e24075845e271bf1 -Author: Surendra Tiwari -Date: Wed Nov 1 16:34:32 2017 +0100 - - core: remove condition for ipv6 outbound socket to build via header - -commit 612e96d8a2cc2a9ac31a7fb05508084fb82dbcf5 -Author: Oyvind Kolbu -Date: Wed Nov 1 16:28:22 2017 +0100 - - pkg/obs: enable the same modules for RHEL 7 as for Centos 7 + sipjson: added options to serialize To and CSeq attributes - - GH #1293 + - c and t mode options -commit 223b8e4736fe8c803366b49e064438a5985182e1 -Author: Daniel-Constantin Mierla -Date: Wed Nov 1 10:31:47 2017 +0100 +commit db3b9dbd48f7bb74abf08b0e97bcac15015df719 +Author: Roman Romanchenko +Date: Fri Aug 31 12:02:43 2018 +0300 - sipcapture: exported functions to kemi framework + tm: crash on memcpy fix + + - in some cases tag is not initialized and lead to crash. + Memory pointer check before writing to added. -commit 2ffee710e208fee7facaa013d3b233b264781b25 +commit 957b43ddea8dad434736e800a16581d49ccb2478 Author: Daniel-Constantin Mierla -Date: Wed Nov 1 09:58:45 2017 +0100 +Date: Fri Aug 31 10:19:06 2018 +0200 - sipcapture: removed unused param from w_float2int() - - - dedicated wrappers for cfg exported report_capture() variants + tls: docs - some updates to sample tls.cfg -commit d0175784c466bc2717e5a71e9081958b7493110b -Author: Daniel-Constantin Mierla -Date: Wed Nov 1 09:45:37 2017 +0100 +commit bae838eb61f9852f6ef70b2c3f0dcaf71d880105 +Author: Tsvetomir Dimitrov +Date: Fri Aug 31 09:58:24 2018 +0300 - sipcapture: remove unused parameter to w_sip_capture() - - - dedicated wrappers for cfg exported sip_capture() variants + misc/examples/ims/pcscf: Add ifdef guards for ipsec_*() calls -commit 1708de3f4be4cc74a76a2d36d2cdca38ba918b8f -Author: Daniel-Constantin Mierla -Date: Wed Nov 1 09:28:28 2017 +0100 +commit 7f848ef96f8dbe27b71d4436ffaf2291e488aac7 +Author: Kamailio Dev +Date: Thu Aug 30 12:31:37 2018 +0200 - sipcapture: clang format the code, added missing copyright header + modules: readme files regenerated - uac ... [skip ci] -commit 5addc451e07a4dce0c4d24585ed841b903166b10 +commit 84f30a2207084457d7053535e1ae84bd8ea855ec Author: Daniel-Constantin Mierla -Date: Wed Nov 1 09:17:02 2017 +0100 +Date: Thu Aug 30 12:20:44 2018 +0200 - siptrace: exported functions to kemi framework + uac: docs - fixed types of some params and removed trailing white spaces -commit 0504bf23a1dc188b7121f835db1c47ef3f49c397 +commit 056b98d6717af79eb4f40a5d02cd343bdac8c628 Author: Daniel-Constantin Mierla -Date: Tue Oct 31 18:11:43 2017 +0100 +Date: Thu Aug 30 12:17:36 2018 +0200 - siptrace: split code from one single big file + sipjson: serialize reply status code and reason phrase in default attributes -commit e1ef9f7ffb8a720f9dfd6602bb8e36070148a706 +commit 4f8a2becb5d9aa53eeaca1f6bdba7e55bdfe4ebb Author: Kamailio Dev -Date: Tue Oct 31 17:16:25 2017 +0100 +Date: Thu Aug 30 10:31:29 2018 +0200 - modules: readme files regenerated - textops ... [skip ci] + modules: readme files regenerated - uac ... [skip ci] -commit be51e338830f960cc27845136feaee4f101ed2c1 -Author: Ovidiu Sas -Date: Tue Oct 31 12:13:51 2017 -0400 +commit 505d42ad214848420335542132b44ab7180a7b65 +Author: Daniel-Constantin Mierla +Date: Thu Aug 30 10:23:19 2018 +0200 - textops: documentaton updated for is_audio_on_hold() - - reported by Julia Boudniatsky + uac: docs for reg_active param and uac.reg_active rpc command -commit ccf71c68f7c0af4ac761e2e0c2dc1ac11662261f +commit 49f354276df3cfc2cdb0f85b5a1839f86733aead Author: Daniel-Constantin Mierla -Date: Tue Oct 31 12:31:26 2017 +0100 +Date: Thu Aug 30 10:16:14 2018 +0200 - acc: allow accounting only for external accounting engine + uac: reg_active - new parameter to control if remote registrations are active - - have accounting via external engines without a need to have log flag set + - default 1 (active) + - can be changed at runtime via rpc command uac.reg_active 0|1 -commit 3492ea4c1783fd3a56ad159e98d6dbab76e9bd4e -Author: Daniel-Constantin Mierla -Date: Tue Oct 31 08:43:07 2017 +0100 +commit 094d36ae1f28dd22310c59ee0fab85e382c43c2e +Author: Kamailio Dev +Date: Thu Aug 30 08:16:53 2018 +0200 - xhttp_rpc: exported functions to kemi framework + modules: readme files regenerated - sipjson ... [skip ci] -commit 8d55e51f6c7e7c3381f397023f6553b921ae173f +commit 2a636f593597fae4082923a9aee78b9963eccbc1 Author: Daniel-Constantin Mierla -Date: Tue Oct 31 08:37:51 2017 +0100 +Date: Thu Aug 30 08:06:12 2018 +0200 - xhttp_pi: export functions to kemi framework + sipjson: docs - added sample of output content -commit 982eaff9d55e4269216b88be7d21233dfe280e5a +commit 97de3d8aef8cf1e8475b42d3b81cf20d31f99f4d Author: Daniel-Constantin Mierla -Date: Tue Oct 31 08:31:26 2017 +0100 +Date: Wed Aug 29 12:08:18 2018 +0200 - xcap_server: functions exported to kemi framework + sipjson: link root object to json structure -commit 47f2731503faf84b1e666753bcb2db03772224b4 +commit 1d33a04b551394f50b4e27ff48a366c563b72dce Author: Daniel-Constantin Mierla -Date: Mon Oct 30 18:30:45 2017 +0100 +Date: Wed Aug 29 11:47:04 2018 +0200 - cfg_rpc: cfg.list rpc command returns an array of string values + sipjson: added module version define -commit c15249cd9aa1756262d20636e5b12a3a1ebcf1b2 +commit d1ccbc11aeaab5fbd2c169458e95d09a48fbeed7 Author: Daniel-Constantin Mierla -Date: Mon Oct 30 17:51:12 2017 +0100 +Date: Wed Aug 29 11:21:56 2018 +0200 - msrp: functions exported to kemi framework + sipjson: exported sj_serialize(...) to kemi framework -commit 1b38ad5ea0a17ea63d0319919ebeceaa043d8e0f -Author: Kamailio Dev -Date: Mon Oct 30 15:01:28 2017 +0100 +commit 779115c943ccecfe767836f7324d704b1bc633c5 +Author: Daniel-Constantin Mierla +Date: Tue Aug 28 17:31:22 2018 +0200 - modules: readme files regenerated - auth ... [skip ci] + Makefile.groups: added sipjson module to group extra -commit 8ca3cede7429efb49efa2491ca733cf4e3fd8e16 -Author: Mikko Lehto -Date: Mon Oct 30 15:30:45 2017 +0200 +commit 120aad0fb98b437b5e7cfd06fabb8f02c6dc90cc +Author: Daniel-Constantin Mierla +Date: Tue Aug 28 17:28:42 2018 +0200 - tm: add RPC call tm.stats to documentation + sipjson: new module to serialize sip message attributes into a json doc -commit 9ed210ad397d0ad36c020b960a799e918482765f -Author: Mikko Lehto -Date: Mon Oct 30 15:44:08 2017 +0200 +commit d014e2c726001268133a4b1bddaff77495a7be1d +Author: Daniel-Constantin Mierla +Date: Tue Aug 28 09:56:28 2018 +0200 - auth|pua_reginfo: fix common documentation typo + app_python3: implemented KSR.pv.getvs(...) an KSR.pv.getvn(...) -commit e5b77a64f47dd103eebfe3dfe1208c050dd50a9d -Author: Mikko Lehto -Date: Mon Oct 30 14:42:02 2017 +0200 +commit 453190fb28c5e4f3190d54c59a4845cbf3e7cd75 +Author: Daniel-Constantin Mierla +Date: Mon Aug 27 12:39:16 2018 +0200 - tm: fix documentation typos and changed or obsolete paths + app_python: implemented KSR.pv.getvs(...) and KSR.pv.getvn(...) -commit 9e5820f0c98b86824fcafe128fbfe0d37173479a +commit b7047205287a0fde12b3568bd0cd0425eeb68fcd Author: Daniel-Constantin Mierla -Date: Mon Oct 30 10:37:33 2017 +0100 +Date: Mon Aug 27 12:38:35 2018 +0200 - registrar: do not return 0 in some cases of failure for save() + app_lua: rmode 1 corresponds to int returned value -commit 80a78412d6ad02251d1bd64dd9ce72acd1742fa6 -Author: Kamailio Dev -Date: Sun Oct 29 09:17:01 2017 +0100 +commit c1701cf3e57adbf8448c414bfb8ba10426a69104 +Author: Daniel-Constantin Mierla +Date: Mon Aug 27 12:18:47 2018 +0200 - modules: readme files regenerated - rtimer ... [skip ci] + app_python: give scan format to PyArg_ParseTuple() via param -commit 666656c27b8d01d490523f0a7e15de57ff42bad5 +commit 22749d33e7d93422a69233a6fb0e60f2f2267c88 Author: Daniel-Constantin Mierla -Date: Sun Oct 29 09:13:31 2017 +0100 +Date: Mon Aug 27 12:16:58 2018 +0200 - rtimer: doc - updated examples, enhancements for use with kemi + app_python3: give scan format to PyArg_ParseTuple() via param -commit 1b14fdee7414d84b2c7181958bf29df3256299a7 +commit 89c65fa3210ab0682d4cb699d732ac1653ba0221 Author: Daniel-Constantin Mierla -Date: Sun Oct 29 09:06:52 2017 +0100 +Date: Mon Aug 27 10:47:34 2018 +0200 - rtimer: support for execution of kemi callback functions + app_sqlang: implemented KSR.pv.gete(...) -commit 8a0de1b9f29b0bcd3c13166911c24c01ef9c72ba +commit de5561ddbf821348b76b6e2ed044f10a0cec017a Author: Daniel-Constantin Mierla -Date: Sun Oct 29 09:02:46 2017 +0100 +Date: Mon Aug 27 10:43:39 2018 +0200 - rtimer: save the route name in the internal structure + app_ruby: implemented KSR.pv.gete(...) -commit 37cf1433af55a8744dfccee873699e17b06b8ac4 +commit 7bd55ca760a2b1aed8da431b61370c750742ff84 Author: Daniel-Constantin Mierla -Date: Sun Oct 29 08:57:33 2017 +0100 +Date: Sun Aug 26 10:37:38 2018 +0200 - timer: revert to use of route_get() + ipops: exported KSR.ipops.is_in_subnet(...) - - route block is searched prior of being declared due to modparam - callback + - match the function name from kamailio.cfg + - so far it was exported as KSR.ipops.ip_is_in_subnet(...) -commit 62827f1d883aa0cdd6ba6807958629b9a4f65d06 -Author: Kamailio Dev -Date: Sat Oct 28 15:16:53 2017 +0200 +commit d92216ebdb94c4a068437c083c9f1809ddfa8857 +Author: Daniel-Constantin Mierla +Date: Sun Aug 26 09:53:03 2018 +0200 - modules: readme files regenerated - timer ... [skip ci] + app_jsdt: implemented kemi KSR.pv.gete(...) -commit 7b8d3389338e7194201eeff18399822cc2188bc2 +commit a837f69aacc93c55f89a91bcbb0f1cfbe539ab7c Author: Daniel-Constantin Mierla -Date: Sat Oct 28 08:58:26 2017 +0200 +Date: Sat Aug 25 16:15:46 2018 +0200 - timer: doc - example using the module via kemi + app_python3: implemented KSR.pv.gete(...) -commit 570112934d693029229d9809cd2de98a1ce4cc7a +commit 63498d6c2180645562f495077d6b414b12b39820 Author: Daniel-Constantin Mierla -Date: Sat Oct 28 08:50:56 2017 +0200 +Date: Sat Aug 25 16:13:25 2018 +0200 - timer: allow execution of kemi callbacks on timer - - - route block name is used as kemi function name + app_python: implemented KSR.pv.gete(...) -commit a69e47ce762108e0399bdfb6784649ebf3a34394 +commit fd3656fba3fe5dcb472836f935e2b4781b02251e Author: Daniel-Constantin Mierla -Date: Sat Oct 28 08:36:42 2017 +0200 +Date: Sat Aug 25 16:01:39 2018 +0200 - timer: removed svn id + app_lua: proper return 'nil' for $null values of pvs -commit 4ccfc2b6845cccb04a2814c1d71c18de1e0efdff +commit 1576dc7cf504a3a30e83919222f1b8441e4207b5 Author: Daniel-Constantin Mierla -Date: Fri Oct 27 19:19:09 2017 +0200 +Date: Fri Aug 24 11:43:53 2018 +0200 - timer: save route name inside timer action structure + app_lua: new KEMI pv functions KSR.pv.getvn(...) and KSR.pv.getvs(...) + + - KSR.pv.getvn(pv, ival) - return the value of pv if not null, + otherwise return the int value ival + - KSR.pv.getvs(pv, sval) - return the value of pv if not null, + otherwise return the str value sval -commit e4800a83439cb04eb3a5d4e106ad767a3d6776a5 +commit e361e5ec2883775d14d92d46659d062b31c45f33 Author: Daniel-Constantin Mierla -Date: Fri Oct 27 16:44:56 2017 +0200 +Date: Fri Aug 24 11:02:32 2018 +0200 - timer: use route_lookup() instead of route_get() to find a route block - - - avoids creating an empty route block structure - - split code for dedicated cfg function wrapper + tm: added fcount field for free operations debugging -commit 17f5db5b934a6ba35835aa99545d79deb99b35af -Author: Kamailio Dev -Date: Fri Oct 27 15:31:22 2017 +0200 +commit 927d738d0e1585ccbccc878ab55c219ae737091d +Author: Daniel-Constantin Mierla +Date: Fri Aug 24 10:52:26 2018 +0200 - modules: readme files regenerated - timer ... [skip ci] + tm: more debug messages for reply relay -commit 25a775cf44bc9c88ce8b6afc906968e2677dbf37 +commit 085e2c2ea5f85616c037b083495094a2232c405a Author: Daniel-Constantin Mierla -Date: Fri Oct 27 15:11:49 2017 +0200 +Date: Fri Aug 24 09:11:11 2018 +0200 - timer: docs - split selects from functions section + core: more accurate debug messages when forwarding a reply -commit e9d0e799309b807b2376fd3eb30bd74a36997168 +commit e4d2ca28ee2d42683d7604c6a767a201b6babbed Author: Daniel-Constantin Mierla -Date: Fri Oct 27 15:01:41 2017 +0200 +Date: Fri Aug 24 08:50:36 2018 +0200 - timer: use typedefs, updated log macros + core: debug message when dropping a sip reply -commit 3386e34593da78fcbf6f72f45ad2e6e8d3a72525 +commit f3312715943867f76c8753eba992dad5859d8c2f Author: Daniel-Constantin Mierla -Date: Fri Oct 27 14:52:22 2017 +0200 +Date: Fri Aug 24 08:38:00 2018 +0200 - timer: code formatting + app_lua: split function for returning pv null value -commit 0a3ba3ca39d7215a9ac6b8906768e2835f6de353 -Merge: 0eaf73bd8 22e4031cd -Author: Charles Chance -Date: Fri Oct 27 11:34:32 2017 +0100 +commit b98cb43b1ea33706fe133f6585c0705892663ae6 +Author: Daniel-Constantin Mierla +Date: Thu Aug 23 23:06:11 2018 +0200 - Merge pull request #1284 from kamailio/cchance/dialog + app_lua: kemi - exported KSR.pv.getw("$...") - dialog: remove replicated dialog from profile as soon as gets to term… + - get the value of the pseudo-variable if it is not $null and the empty string + ("") if it is $null -commit 0eaf73bd84589ede4b0f87a7a16820e5b2a4ff41 -Merge: a29312f65 7dad4f5a8 -Author: Daniel-Constantin Mierla -Date: Fri Oct 27 10:43:06 2017 +0200 +commit e4f3849f35ae556e317c365d56b14212e48d1dab +Author: Dmitri Savolainen +Date: Thu Aug 23 11:58:36 2018 +0300 - Merge pull request #1260 from sergey-safarov/spec_update + drouting: fix crush for empty username in ruri - pkg/kamailio: Created readme for centos, fedora, opensuse, oracle, rhel dists + - uri like sip:@host crushed kamailio -commit a29312f650518fadff8122a8d2ece6c01594d0e1 +commit f8220f53da4494d88e3b371d4cfc6a6b3baca909 Author: Kamailio Dev -Date: Fri Oct 27 09:31:39 2017 +0200 +Date: Thu Aug 23 17:16:52 2018 +0200 - modules: readme files regenerated - acc ... [skip ci] + modules: readme files regenerated - misc_radius ... [skip ci] -commit 2a157d6f0951124ca8a3aba7171dfb91c68625b7 -Author: Mikko Lehto -Date: Fri Oct 27 10:16:09 2017 +0300 +commit b2b2b981e641eb3b83dd9afd09c8668b8a239741 +Author: Victor Seva +Date: Thu Aug 23 16:59:11 2018 +0200 - sl: document event routes + update mailing list URL -commit 7ee62dfa4c2290e657a55b609053755f91faa4ee -Author: Mikko Lehto -Date: Fri Oct 27 10:11:31 2017 +0300 +commit 26449dc2da3b47dd71265e8103de5957bd2245f4 +Author: Juha Heinanen +Date: Thu Aug 23 11:53:34 2018 +0300 - sl: use documentation entities + modules/auth: fixed path in auth.xml -commit fab551a87b40b35ca99845df52071980458cdd51 -Author: Mikko Lehto -Date: Fri Oct 27 10:07:38 2017 +0300 +commit e2994b6ac4846c869894a2783304782854f96f57 +Author: Tsvetomir Dimitrov +Date: Thu Aug 23 10:57:44 2018 +0300 - sl: fix typos and format in documentation and code + ims_ipsec_pcscf: Fix memory leaks in cmd.c -commit e875863f1b23217454061f61b90e82ce4ff7be8b -Author: Mikko Lehto -Date: Fri Oct 27 10:02:42 2017 +0300 +commit bf6d926d5d22f99c1a2776aaeb9ec705b58592c5 +Author: Daniel-Constantin Mierla +Date: Wed Aug 22 16:49:32 2018 +0200 - acc: documentation typo + jansson: exported jansson_get(...) to kemi framework + + - jansson.get(...) -commit 41aa50ae4ee31657f8eb61fcb949d188cda8cff4 -Author: Mikko Lehto -Date: Fri Oct 27 10:02:02 2017 +0300 +commit 8f5b70ca81e1d49c926a6174191ffe8d7097e3cc +Author: Tsvetomir Dimitrov +Date: Wed Aug 22 16:00:39 2018 +0300 - dialog: documentation text format + misc/examples/ims/pcscf/route: Update the rest of the routing scripts for P-CSCF with IPSec support; Fix Rx_AAR() calls. -commit dee1dc349a5aad9c84a22701d88e2eafa6a22b5c -Author: Mikko Lehto -Date: Fri Sep 29 09:13:56 2017 +0300 +commit c4daee863519b1795c605e3896506e5ec7e26a41 +Author: Tsvetomir Dimitrov +Date: Wed Aug 22 15:08:15 2018 +0300 - mtree: doc typo + misc/examples/ims/pcscf: Add support for IPSec in the P-CSCF examples -commit 3f1f706b8b1fa5da9da56420d069fc231dd9d784 +commit f6921b92d382db3c0a72bd1d97eb46d1f4aee2d7 Author: Daniel-Constantin Mierla -Date: Thu Oct 26 21:16:36 2017 +0200 +Date: Wed Aug 22 12:03:52 2018 +0200 - kex: setdsturi() hanldes vars params + sdpops: cast in dbg message to avoid compile warning on 32b systems -commit a6efe6d7e1a205a9d0c2d5c6c165fe337c4de814 +commit 9c79375861575bafbda5e39a6e1b178eda05f610 +Merge: 0bd3c9eaf 62e0af095 Author: Daniel-Constantin Mierla -Date: Wed Oct 25 22:56:47 2017 +0200 +Date: Wed Aug 22 11:00:05 2018 +0200 - app_python: safety checks for self var pointer + Merge pull request #1623 from lasseo/pua_reginfo_crashfix + + pua_reginfo: fix crash and issue during load -commit 22e4031cdcc7ba7c90553bd569e289043c0c64cf -Author: Charles Chance -Date: Wed Oct 25 15:29:07 2017 +0100 +commit 62e0af0957a6c7e3c2ea9711cf64ad51f4b2e594 +Author: lasseo +Date: Tue Aug 21 22:10:04 2018 +0000 - dialog: remove replicated dialog from profile as soon as gets to terminated state + pua_reginfo: fix crash and issue during high load + + - do not release a already deleted entry, as this causes a crash - - matches local (non-replicated) behaviour introduced in edf61ac + - use sruid_next_safe instead of sruid_next as it has been seen during load that same sruid returned on multiple threads -commit 384a5338762fbc17bb63a24fcfc2dfe968626070 -Merge: cafabcf65 ed4757c58 +commit 0bd3c9eaf356d65b9620fb7ec8c6ebc1e0a47782 Author: Daniel-Constantin Mierla -Date: Wed Oct 25 14:43:01 2017 +0200 +Date: Tue Aug 21 12:06:20 2018 +0200 - Merge pull request #1283 from dunst0/patch-1 - - dispatcher: undeclared UINT32_MAX on FreeBSD missing header + kamctl: added mtree management command -commit ed4757c5886f0fc93d3eeec9f01885b63c6dc9c8 -Author: Rick -Date: Wed Oct 25 14:37:42 2017 +0200 +commit 79c16cd9bdabb3670b2a7618656ca9cf2f9687b1 +Author: Daniel-Constantin Mierla +Date: Tue Aug 21 09:05:34 2018 +0200 - dispatcher: undeclared UINT32_MAX on FreeBSD missing header - - - on FreeBSD is for UINT32_MAX the header needed + htable: test if there is a db table associated with htable for rpc reload -commit cafabcf658c203d07bd170b2ccbf8282600c19a0 -Merge: 991d73c27 c110c6b27 +commit ff90e2223825889c2eea108d2fc02190535960fc Author: Daniel-Constantin Mierla -Date: Wed Oct 25 12:07:20 2017 +0200 +Date: Tue Aug 21 08:47:01 2018 +0200 - Merge pull request #1282 from oyvindkolbu/gcc-7 - - Support gcc 7+. + htable: typo in rpc result status text for reload command -commit 991d73c27c7b119c13c09f46ac8efc93460dc91f -Merge: d581c007a 247e9bf28 +commit 8a1c5b01f7c82571e3763ac4caff71b1d318e732 Author: Daniel-Constantin Mierla -Date: Wed Oct 25 12:05:34 2017 +0200 +Date: Tue Aug 21 08:39:54 2018 +0200 - Merge pull request #1279 from vitalikvoip/usrloc_fix - - Usrloc fix + utils/kamctl: removed the option of executing mi commands -commit d581c007ac29aea2c70fbeecdcebda701c37aa37 -Merge: ba7f663a0 d63d33bbd +commit c216abc532df9f22b023d26b46bd6322a217cdfe Author: Daniel-Constantin Mierla -Date: Wed Oct 25 12:03:27 2017 +0200 +Date: Tue Aug 21 08:30:00 2018 +0200 - Merge pull request #1280 from sergey-safarov/alpine + mtree: rpc reload without table name reloads all tables - pkg/kamailio/alpine_docker: Added support ssh git repo url + - lost feature in rpc which was available in mi command + +commit ebb1377e9f07f00afccdce50b113d05fec1693b5 +Author: Daniel-Constantin Mierla +Date: Mon Aug 20 16:18:02 2018 +0200 + + http_client: Makefile - removed useless var for xml config -commit c110c6b2741739ff5f45953bfd0d46b9f3b888dc -Author: Øyvind Kolbu -Date: Wed Oct 25 11:25:40 2017 +0200 +commit d006e7ac00c4bd7079decf829568bd20973d7742 +Author: Kamailio Dev +Date: Mon Aug 20 15:01:38 2018 +0200 - Support gcc 7+. + modules: readme files regenerated - app_lua ... [skip ci] -commit ba7f663a0f1da799fc7a8be9b86039af2862f287 +commit 2d0baf4d1c23f251030ef1924cbb7a324c6406f4 Author: Daniel-Constantin Mierla -Date: Wed Oct 25 10:17:12 2017 +0200 +Date: Mon Aug 20 14:49:45 2018 +0200 - dialog: safety check for handling http replies in cseq update code - - - reported by GH #1277 + app_lua: docs for log_mode parameter -commit a21ea97800c7d7d3b082a9b1d57887e125d83d68 +commit 92421ec9e377d5422b686554dca738e3a0492435 Author: Daniel-Constantin Mierla -Date: Wed Oct 25 10:16:43 2017 +0200 +Date: Mon Aug 20 14:47:48 2018 +0200 + + app_lua: new module parameter - log_mode + + - control what is printed in log messages by module + - if bit 1 is set, the it prints the KEMI exports - core: parser - typedef'ed msg_start struct to msg_start_t +commit 9811a92e6341d3da48946bbe6f1810cc4cfa6bae +Author: Kamailio Dev +Date: Mon Aug 20 12:01:53 2018 +0200 -commit d63d33bbd0883cffc5d6e34a336331697ce13005 -Author: Sergey Safarov -Date: Tue Oct 24 10:26:30 2017 -0400 + modules: readme files regenerated - registrar ... [skip ci] - pkg/kamailio/alpine_docker: Added support ssh git repo url +commit 9cc01c03e7c6a2ee110569aff5c78ef0f71e573c +Merge: e0ae8f185 2e1bbee47 +Author: Daniel-Constantin Mierla +Date: Mon Aug 20 11:58:44 2018 +0200 + + Merge pull request #1622 from lz1irq/master + + registrar: add event_callback parameter and relevant documentation -commit 1bb3aeaaeb220af6471a7a54dead308dc05380e5 +commit e0ae8f18503fcd26cde027360b8fd37223105ab7 Author: Daniel-Constantin Mierla -Date: Tue Oct 24 12:38:12 2017 +0200 +Date: Mon Aug 20 11:38:44 2018 +0200 - presence_dialoginfo: removed svn id, history, coherent indentation + core: parser - more details in log messages for parsing headers -commit 247e9bf28ed900d980bf193708d2409cce3261d7 -Author: Vitaliy Aleksandrov -Date: Thu Oct 19 16:00:32 2017 +0300 +commit 1af0bd744b955e7618085b12d2a9911e677af2f8 +Author: Daniel-Constantin Mierla +Date: Mon Aug 20 11:12:34 2018 +0200 - usrloc: fix format of the ul.dump json reply - - - create "Domains" array instead of a single "Domain" object. + app_python3: init cfg vars framework in child init -commit dfcba5fbcc5046a12babd3c6e93555f89ffa9cbe -Author: Vitaliy Aleksandrov -Date: Fri Oct 20 15:39:30 2017 +0300 +commit 17a33388138c2510e9e483c0526948772a1478f4 +Author: Daniel-Constantin Mierla +Date: Mon Aug 20 11:11:45 2018 +0200 - usrloc: fix usrloc slot lock in ul.dump rpc procedure + app_python: init cfg vars framework only in child init - - unlock usrloc slot when "ul.dump brief" fails during aor struct creation + - apy init is executed in other parts as well -commit b57c83c936bf729bda3174803cacbf006552f2dc -Author: Daniel-Constantin Mierla -Date: Mon Oct 23 14:35:43 2017 +0200 +commit 2e1bbee47b69d4599b9a2fd1c80203e68f4537a0 +Author: Ivaylo Markov +Date: Sat Aug 18 18:00:46 2018 +0300 - jsonrpcs: use select on udp socket to work on non-blocking mode + registrar: docs for event_callback parameter -commit f9a59248dccfb95453a48d63ac5ad90bc6c745e5 -Author: Daniel-Constantin Mierla -Date: Mon Oct 23 10:46:01 2017 +0200 +commit 98f05b7b0de4b328a71e1ff5eca175ad690a4888 +Author: Ivaylo Markov +Date: Sat Aug 18 17:46:00 2018 +0300 - pua_dialoginfo: debug message to show whether avps are used or not + registrar: add event_callback parameter - - adjusted code format to avoid very long line + This allows usage of the `usrloc:contact-expired` event route with + KEMI routing configurations. -commit 904e7435cc4206a9058602b12ba23a1d733674db +commit 8601f89bcc309e5676647019a13246578540ad71 Author: Daniel-Constantin Mierla -Date: Mon Oct 23 10:33:28 2017 +0200 +Date: Sat Aug 18 09:28:02 2018 +0200 - pua_dialoginfo: removed svn ids, history, done indentation + jsonrpcs: store id attribute inside context for async response -commit 9c3883a7856d6fb12d103baf3f784107a7c3914c -Author: Daniel-Constantin Mierla -Date: Sun Oct 22 09:49:22 2017 +0200 +commit 27caae0fe28d6768ad80a52fe4a3cfaa65eca4db +Author: Kamailio Dev +Date: Fri Aug 17 10:46:47 2018 +0200 - jsonrpcs: use same socket for dgram transport + modules: readme files regenerated - jsonrpcs ... [skip ci] -commit 17697e4bcabcec62d4393c6ae60fabec7d1c8e98 +commit 1eabace61965e9e77f18a63a71faa9d45de4b550 Author: Daniel-Constantin Mierla -Date: Sat Oct 21 12:19:41 2017 +0200 +Date: Fri Aug 17 10:33:58 2018 +0200 - jsonrpcs: init fifo stream via mod init callback + jsonrpcs: docs - updates to reflect better the transports and capabilities -commit 70fa5b79e413e162427f5a8ffad3357252c517e2 -Author: Daniel-Constantin Mierla -Date: Sat Oct 21 12:10:29 2017 +0200 +commit 3c7dd38aecd3ee63edcb9ab418ce3a3fcc2c6a8a +Author: Henning Westerholt +Date: Wed Aug 15 22:58:31 2018 +0200 - jsonrpcs: init dgram sockets via mod init callback + pipelimit: remove unused variable 'ret', fix compile warning -commit a2b862a74c77bc71238d9b8c9ef19ddb629c75ce +commit 989ea3d60ac30d7ecf5a65094c941bc2dcf76629 Author: Daniel-Constantin Mierla -Date: Sat Oct 21 11:47:35 2017 +0200 +Date: Wed Aug 15 16:45:38 2018 +0200 - jsonrpcs: set rank PROC_RPC for fifo and dgram processes + lib/srdb1: cast for signed comparison -commit d4f11b6ffc459faf5c6577cc3374420c1469baeb +commit ec0c583b5b054d06691a2c0d90be195f6ed51cdd Author: Daniel-Constantin Mierla -Date: Fri Oct 20 11:23:06 2017 +0200 +Date: Wed Aug 15 12:22:58 2018 +0200 - jsonrpcs: updated the name of module in description of extra procs + tm: safety check for t->uas.request for forwarding local requests -commit 3a1e8807d340dd7907b310006a18a7e82e795d2b -Author: Victor Seva -Date: Thu Oct 19 10:31:51 2017 +0200 +commit 2cb677247ccbb31bc76c0fd0ed0cd8e2b5b933eb +Author: Armen Babikyan +Date: Wed Aug 8 13:46:46 2018 -0700 - pkg/kamailio/deb: fix kamailio-berkeley-modules dependence + permissions: check for db_url being set on reload -commit 9364b1691412ec1d3d59ca8a801613470e079c1d -Author: Daniel-Constantin Mierla -Date: Thu Oct 19 08:58:59 2017 +0200 +commit 9f459dccf84be7d7d0fbce89ca9165f7d1c4d66b +Author: Henning Westerholt +Date: Tue Aug 14 19:35:20 2018 +0200 - jsonrpcs: proper propagation of rpc fault code and message + db_mysql: improved fix in commit 1736723cc2a15 - it did not worked for mariadb + + - improved fix in commit 1736723cc2a15 - it did not worked for mariadb + - Reason is that MariaDB increased its numbering scheme, they are now at 10.x + - MariaDB 10 is still using my_bool type, added few more #ifs to fix this -commit cae9b5655b1779e4f968f9ab16a5bae41151e4a4 +commit 3afb9659ab8b25ff8cfbe4fc706396b83db51021 Author: Daniel-Constantin Mierla -Date: Wed Oct 18 18:41:20 2017 +0200 +Date: Tue Aug 14 11:05:17 2018 +0200 - sipdump: details of running processes written in meta file + app_python: ensure cfg framework is initialized for child init callback + + - reported by GH #1618 -commit 9483efe6af26a2a8b08ee132e8ed2afe25e71cbc +commit 4d9f342f8a7050d9c5f7754622ddb918edb16a99 Author: Daniel-Constantin Mierla -Date: Wed Oct 18 18:41:01 2017 +0200 +Date: Tue Aug 14 10:46:41 2018 +0200 - xmlrpc: fix handling the optional param spec on no more params + core: more detailed error message when no config option to route requests -commit 87d71619e7896d3d333bb6c15d4c00616add71a6 -Author: Daniel-Constantin Mierla -Date: Wed Oct 18 18:36:26 2017 +0200 +commit a295bff374def68acbd2cf5a4b81003820c49778 +Author: Kamailio Dev +Date: Tue Aug 14 10:46:33 2018 +0200 - jsonrpcs: fix handling the optional param spec on no more params + modules: readme files regenerated - app_lua ... [skip ci] -commit 7ffa6a4fd2b4daf9edf0f46d5be0bb9cc06e00d7 +commit 788d84e8e7112555fc373a15e63f63d7ac157807 Author: Daniel-Constantin Mierla -Date: Wed Oct 18 18:35:31 2017 +0200 +Date: Tue Aug 14 10:42:22 2018 +0200 - usrloc: log message when rpc ul.add does not get proper params + topos: declare variable at the beginning of the block -commit 6bfdbbcda638265409be1f22bd19eda8beed24ff +commit 7788aa4b396b27fe86bd535a0ded024531c5e75a Author: Daniel-Constantin Mierla -Date: Wed Oct 18 09:11:58 2017 +0200 +Date: Tue Aug 14 10:41:48 2018 +0200 - sipdump: write a meta file along the data file - - - store there the common details (runtime environment attributes) + app_lua: docs - more examples for lua_run() -commit 4de01bbf3c0a80e67554285988a92fcf18ff9f2b -Author: Daniel-Constantin Mierla -Date: Tue Oct 17 07:45:58 2017 +0200 +commit 901d2c8c34c1585531808d3ebcbd6788fa40ae8c +Author: Kamailio Dev +Date: Tue Aug 14 10:02:13 2018 +0200 - geoip: fixed typo in definition of gip variable + modules: readme files regenerated - topos ... [skip ci] -commit ad84dd05e678a180663c857637154bac1b159c27 -Author: Victor Seva -Date: Tue Oct 17 09:03:07 2017 +0200 +commit e04b8fc2a18d76991bc0e48a07b4a0c925597255 +Merge: b3b9b37a8 8454dac69 +Author: Daniel-Constantin Mierla +Date: Tue Aug 14 09:58:48 2018 +0200 - pkg/kamailio/deb: buster files + Merge pull request #1596 from jchavanton/topos_contact_host + + topos: adding param contact_hostname -commit 6b021e199cfdfaac3e4723320742377e9da1e1d0 -Author: Victor Seva -Date: Tue Oct 17 09:02:16 2017 +0200 +commit b3b9b37a8feae5361f527478670d6ca403efac96 +Merge: 8a6680361 f6f68cb91 +Author: Daniel-Constantin Mierla +Date: Tue Aug 14 09:56:30 2018 +0200 - pkg/kamailio/deb: add buster support + Merge pull request #1610 from armenb/armenb/loglevel_then_log_prefix - * remove buildserver.net reference from backports + core: print log_prefix after loglevel for more intuitive parsing -commit 9c064ff672df7c3e65b4b2891899bfaa460469dd -Author: Victor Seva -Date: Mon Oct 16 12:11:13 2017 +0200 +commit 8a66803610f2c822f319899cd2bf8675615348bc +Author: Henning Westerholt +Date: Mon Aug 13 21:17:38 2018 +0200 - pkg/kamailio/deb: set version 5.1.0~dev8 + tmx: bug fix in cancel for current branches in helper, reported in GH #1620 -commit f819890018e339ce416b9da51fb44bd719449228 +commit d6eff66b185d442d0848a03c5b4681d6ab74373a Author: Kamailio Dev -Date: Mon Oct 16 11:46:21 2017 +0200 +Date: Mon Aug 13 20:46:34 2018 +0200 - modules: readme files regenerated - sipdump ... [skip ci] + modules: readme files regenerated - uac ... [skip ci] -commit 02074c81158b0927778e5f2daaae8da953580f2f -Merge: 8596e84b2 cf0814d06 -Author: Juha Heinanen -Date: Mon Oct 16 12:41:48 2017 +0300 +commit 00ba2193d60e8255ea863a99b52e86f841f16bdb +Author: Henning Westerholt +Date: Mon Aug 13 20:42:50 2018 +0200 - Merge branch 'master' of github.com:kamailio/kamailio + uac: fix typo in module README -commit 8596e84b20f93cf73963b0c61e15dbb049b2276a -Author: Juha Heinanen -Date: Mon Oct 16 12:40:43 2017 +0300 +commit ada68095882368a7e05329a52e53a57b2bc818d1 +Author: Daniel-Constantin Mierla +Date: Mon Aug 13 14:04:55 2018 +0200 - sipdump: enable param now defaults to 0 + core: more detailed debug message if new uri is too long -commit cf0814d06bbb1fcd88020d2bce27482142ed7b7e +commit 88887fe7e7cd87e953eeb5a5bb998e693db08df8 Author: Daniel-Constantin Mierla -Date: Mon Oct 16 11:04:17 2017 +0200 +Date: Mon Aug 13 13:34:35 2018 +0200 - Makefile.defs: version set to 5.1.0-dev8 + ims_ipsec_pcscf: cast const param to get rid of compile warning -commit cb4f97b4eb985727182c0ce8f595d3affe663cff -Author: Daniel-Constantin Mierla -Date: Mon Oct 16 11:03:14 2017 +0200 +commit b16e63616d68e3a1406d1b5df7812ea5841d6b22 +Author: Kamailio Dev +Date: Mon Aug 13 13:31:49 2018 +0200 - sipdump: fixed compile warnings on unused variables - - - reported by Juha Heinanen + modules: readme files regenerated - app_lua ... [skip ci] -commit 599f3659a5e4463104f73251c2215723a61cda4b +commit f1f6c303baab87523d54b97af38c0a5718cf0d2f Author: Daniel-Constantin Mierla -Date: Mon Oct 16 10:58:21 2017 +0200 +Date: Mon Aug 13 13:22:59 2018 +0200 - Makefile.groups: added sipdump and phonenum modules + app_lua: docs - more details about lua_run() params -commit 12b2a249577ad175692c49d040891fa1ffae7244 +commit c681adedc7284b9e681d37ad87a30251c02e3508 Author: Daniel-Constantin Mierla -Date: Mon Oct 16 10:54:44 2017 +0200 +Date: Mon Aug 13 11:31:25 2018 +0200 - phonenum: new module to do lookup on phone numbers - - - relies on libphonenumber to get the attributes associated with the - phone number + usrloc: set server_id for rpc ul add command -commit 14a3bd9eae7f3cb6af9d4b6e4250ab6c468c8b9f -Author: Daniel-Constantin Mierla -Date: Sun Oct 15 10:01:25 2017 +0200 +commit 38980e895db042aa802c0d3cb5762dbefd0732d7 +Author: Kamailio Dev +Date: Fri Aug 10 16:47:03 2018 +0200 - sipdump: write proto and af for each sip message + modules: readme files regenerated - ims_ipsec_pcscf ... [skip ci] -commit 868208c0bd26bd9d8f72e548075606c4f3c82f33 -Author: Daniel-Constantin Mierla -Date: Sat Oct 14 11:16:00 2017 +0200 +commit 4db1c7b472a0ccc2307c9dfb6197fbf0cc20e8ef +Author: Tsvetomir Dimitrov +Date: Thu Aug 9 13:55:02 2018 +0300 - sipdump: log src and dst ip and port + ims_ipsec_pcscf: Clean ipsec SAs and policies on module init/deinit -commit 3565caf3b0f2ac28f7d2993213e4d3ef6a21a2fb +commit fe9da5b3a5d687c7f6dd041ab45e4edc5821c413 Author: Daniel-Constantin Mierla -Date: Sat Oct 14 10:43:45 2017 +0200 +Date: Tue Aug 7 23:43:42 2018 +0200 - core: set receive infor for sr event SREV_NET_DATA_IN + pv: $msg(hdrs_len) - return the length of all headers -commit 344df7099435dcc76bf052cf2a020b3512ad153b +commit cf0964f0246c29366788c011dfddc09b2ab3bf33 Author: Daniel-Constantin Mierla -Date: Sat Oct 14 10:42:52 2017 +0200 +Date: Mon Aug 6 16:46:39 2018 +0200 - core: added field for receive info inside sr_event_param_t + pv: $msg(fpart) - return first line and the headers -commit 62d9eb79b9c461df8a21eba928a31f8bd4d85c48 -Author: Daniel-Constantin Mierla -Date: Sat Oct 14 10:41:32 2017 +0200 +commit bc97a8d622acd4aae95a384285a565cb700dd8a8 +Merge: 9ac132ba3 f1247ea26 +Author: ng-voice GmbH +Date: Wed Aug 8 10:41:51 2018 +0400 - core: compacted typedefs for ip addr structs + Merge pull request #1617 from tdimitrov/concatsms + + smsops: Add support for concatenated SMS in decode_3gpp_sms() -commit 986094362b8ff384cc0378a7028425ea092609aa -Author: Daniel-Constantin Mierla -Date: Fri Oct 13 12:32:52 2017 +0200 +commit f1247ea2652a96fd22052dcfc41f4d953624de5c +Author: Tsvetomir Dimitrov +Date: Sun Jul 29 21:43:34 2018 +0300 - sipdump: implemented sipdump.enable rpc command + smsops: Add support for concatenated SMS in decode_3gpp_sms() -commit cdafc5a6a0a3487101820d608ffa5973d7464d00 -Author: Daniel-Constantin Mierla -Date: Fri Oct 13 12:20:05 2017 +0200 +commit 9ac132ba3a47f13cf7b58839dde34a04348340c9 +Author: Sergey Safarov +Date: Tue Aug 7 09:21:31 2018 +0000 - core: helper function to print ip address in a buffer with square brackets + pkg/kamailio: Defined correct dependences for perl module (#1613) -commit 18b996262fb1c7bde94b494ce837754dc82c9e7e +commit f177124dfd72a9f6569797ad8b4d3945e39f7cd7 Author: Daniel-Constantin Mierla -Date: Fri Oct 13 12:19:30 2017 +0200 +Date: Sun Aug 5 23:42:21 2018 +0200 - core: fix bitwise test for priting socket details + pv: $msg(hdrc) returns the number of headers in sip message -commit f662a62519f99e046caf03063147104af22ec3c3 +commit 941afa771b43ce5abb825ed487354750cfc71e51 Author: Daniel-Constantin Mierla -Date: Fri Oct 13 12:18:32 2017 +0200 +Date: Sat Aug 4 23:55:00 2018 +0200 - core: fix for bitwise test in core rpc command + blst: small formatting bits -commit 9c3958e77c2f6bfcf7a66e36b05a163447f33c5b -Author: Kamailio Dev -Date: Fri Oct 13 11:01:45 2017 +0200 +commit 2d9923d7f862ad14eb935f5af23280436d0c34eb +Author: Victor Seva +Date: Fri Aug 3 11:15:04 2018 +0200 - modules: readme files regenerated - nat_traversal ... [skip ci] + pkg/kamailio/deb: add libmnl-dev for new ims_ipsec_pcscf module -commit c7f40f8a2acbfad5c755aa32bdbb39a491899e2b +commit 1736723cc2a15bb75c26711675712a966161b722 Author: Daniel-Constantin Mierla -Date: Thu Oct 12 10:57:19 2017 +0200 +Date: Fri Aug 3 00:28:49 2018 +0200 - sipdump: new module saving sip traffic and additional details into local files + db_mysql: replaced my_bool with bool - - aiming to help troubleshooting during development or testing, - especially when dealing with SIP over TLS with forward privacy + - mysql 8.0.1 removed my_bool and suggests use of bool: + * https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html + - use stdbool.h, it defines bool in C99, which should be old enough to + be everywhere, otherwise it may require some ifdefs to get it for older + but still alive systems + - reported by GH #1602 -commit 642dcef14271bc1376a54f8afe3a159d4e831ba6 -Author: Daniel-Constantin Mierla -Date: Thu Oct 12 09:34:59 2017 +0200 +commit 89d1bc390696567498c9add4972001acf2b445d5 +Author: Henning Westerholt +Date: Thu Aug 2 23:04:18 2018 +0200 - nat_traversal: added section ids in docs + Makefile.groups: add new modules ims_ipsec_pcscf to ims group -commit bbb9c3353324f41e94e5b5fd9dc8020c0edfcf3d -Author: Kamailio Dev -Date: Wed Oct 11 18:31:26 2017 +0200 +commit 687dad98cd7476f8bb17bb238efc58461cabdba5 +Merge: 6891bb963 e79257c4c +Author: Charles Chance +Date: Thu Aug 2 16:27:03 2018 +0100 - modules: readme files regenerated - db_postgres ... [skip ci] + Merge pull request #1611 from kamailio/cchance/methods + + core: update first line parser to recognize new method IDs -commit 7d27b682cc6259b1f6bcd21584b9f1d5bbfc9a36 -Author: Daniel-Constantin Mierla -Date: Wed Oct 11 18:27:50 2017 +0200 +commit e79257c4cbdf1954fddec1c06f3c1cfa34037293 +Author: Charles Chance +Date: Thu Aug 2 16:02:32 2018 +0100 - db_postgres: documentation for lockset parameter + core: update first line parser to recognize new method IDs + + - bring up to date with new methods added in 4fe95ab -commit 60f177bf04cd116b1e34f5563f594da327af8c09 +commit 6891bb963f427cbcfd17029fb43b3fcb350a670c Author: Daniel-Constantin Mierla -Date: Wed Oct 11 18:23:19 2017 +0200 +Date: Thu Aug 2 10:43:28 2018 +0200 - db_postgres: clang format of the code + ims_ipsec_pcscf: added README file -commit 33ecbbbaf8054220372637ac89ac4e4a7c7748d0 -Author: lazedo -Date: Wed Oct 11 06:22:42 2017 +0100 +commit e46ef1050d4b5e1b2442ea450fa370ed713a9cb8 +Merge: e6a7a3f37 ee5d2b541 +Author: Daniel-Constantin Mierla +Date: Thu Aug 2 10:33:16 2018 +0200 - kazoo : increase max url size to 512 + Merge pull request #1605 from tdimitrov/ipsec + + ims_ipsec_pcscf: sec-agree implementation for IMS -commit b87ac3440ae38526cca15dd26625e481e331d51e +commit e6a7a3f37e80683d941321a6e10b636f0bfb4478 Author: lazedo -Date: Wed Oct 11 06:21:23 2017 +0100 +Date: Wed Aug 1 19:01:32 2018 +0000 - kazoo : add consumer key if appropriate + presence: limit the number of subscriptions handled in timer_dbonly + + due to the way update_db_subs_timer_dbonly handles the query to the + database (getting all records), if for some reason a burst of + terminating subscriptions occurs, most likely there will be no package + memory to process all expiring subscriptions. + + this commit uses the same pattern as other routines in presence by using + db_fetch_query with fetch_rows parameter module. + + because we create the subs in the loop and then call handle_expired_subs + to avoid locking issues the subscription should already be deleted from + the database when it returns from handle_expired_subs, there's no reason + to issue the last delete, and that was removed. -commit 48791fae1ba8508b18856d90e85a93df003b1e3b -Author: Kamailio Dev -Date: Tue Oct 10 11:46:38 2017 +0200 +commit 3d0e1f796eb359689b75eebbb04cd09c6ee6807a +Author: Daniel-Constantin Mierla +Date: Thu Aug 2 00:16:26 2018 +0200 - modules: readme files regenerated - dialog ... [skip ci] + dialog: run run_load_callbacks() on child_init for rank PROC_INIT + + - proper test for create_cbs + - based on PR #1606 and #1607 by kosza -commit 59b58035bfe8e722a696db889d5295254092ae90 -Author: Daniel-Constantin Mierla -Date: Tue Oct 10 11:33:22 2017 +0200 +commit f6f68cb91a1a1143d5cd64f7a847002cd897eb8b +Author: Armen Babikyan +Date: Wed Aug 1 13:57:16 2018 -0700 - dialog: documented optional sdp body for rpc bridge command + core: print log_prefix after loglevel for more intuitive parsing -commit 4267e1ef7c9ffaac606964fb1b2d64334754b5d9 +commit 3924afe2917e64066ea796597104b0e00358b180 Author: Daniel-Constantin Mierla -Date: Mon Oct 9 18:27:28 2017 +0200 +Date: Wed Aug 1 22:55:06 2018 +0200 - tm: updated some structs to typedefs + topos_redis: execute end dialog function only for BYE request + + - reported by GH #1608 -commit 9c9366473280c52d7f79348637a56264420d48fc +commit a1627221ba6dc2921356c691ca51e3dea3f9e82f Author: Kamailio Dev -Date: Mon Oct 9 16:46:17 2017 +0200 +Date: Tue Jul 31 14:17:02 2018 +0200 - modules: readme files regenerated - path ... [skip ci] + modules: readme files regenerated - carrierroute ... [skip ci] -commit fa8441fb92460d235d8aa7cbf2611b07dfa6230b -Merge: 08f817957 3c04bda00 +commit a1f5fbe2c18246d4afefa44fd8a52612a5182a46 Author: Daniel-Constantin Mierla -Date: Mon Oct 9 16:32:20 2017 +0200 +Date: Tue Jul 31 13:59:44 2018 +0200 - Merge pull request #1261 from dunst0/feature/flowTokenAndReceived + dmq: release resources instead of just doing continue to next job - path: insert flow token in path header with received + - for cases when processing of the job is not fully completed -commit 08f817957d1f262aaf5ef4b927c1e9c64a70ec9c -Author: Kamailio Dev -Date: Mon Oct 9 16:31:28 2017 +0200 +commit 4a64fb95680b9efac47c79888f2a68bdcfb29ad6 +Author: Daniel-Constantin Mierla +Date: Mon Jul 30 13:58:29 2018 +0200 - modules: readme files regenerated - db_flatstore ... [skip ci] + carrierroute: docs - removed mi commands section -commit c203af8d977cd977f2614d22fab84fead07dc25a -Merge: b8d5c7fbe 4571f168e -Author: Daniel-Constantin Mierla -Date: Mon Oct 9 16:29:17 2017 +0200 +commit ee5d2b54145d9869c1fa92bd9365fde83f0b02d6 +Author: Tsvetomir Dimitrov +Date: Mon Jul 30 10:59:16 2018 +0300 - Merge pull request #1262 from jchavanton/db_flatstore_delimiter - - db_flatstore: encode delimiter param + ims_ipsec_pcscf: sec-agree implementation for IMS -commit b8d5c7fbe994bb581c1e78285f08ec1980f6b89f -Author: Lucian Balaceanu -Date: Mon Oct 9 16:05:01 2017 +0300 +commit de429e10eab9154eb1935d08537db6757dcd2b70 +Author: Daniel-Constantin Mierla +Date: Sun Jul 29 23:32:45 2018 +0200 - p_usrloc: location.sql missing INSTANCE_COL + topos: docs - ids for sections with event routes -commit f9115fc5fcdc0f4348e3c38b72117e09ce670226 -Merge: fa9483160 9be2a9665 -Author: Lucian Balaceanu -Date: Mon Oct 9 15:36:23 2017 +0300 +commit 674ab0749960398fdddfde3772376b1b2461c107 +Author: Kamailio Dev +Date: Fri Jul 27 22:17:20 2018 +0200 - Merge pull request #1266 from asiplas/master - - p_usrloc: Fix #1265: missing columns in location.sql file. + modules: readme files regenerated - uac ... [skip ci] -commit fa948316059a140ee906d386c5a2a3123e9c370c +commit f8c46e6395ed9cc4cbcf062a823a9530bdec62c9 Author: Kamailio Dev -Date: Mon Oct 9 12:47:04 2017 +0200 +Date: Wed Jul 25 15:01:39 2018 +0200 - modules: readme files regenerated - mediaproxy ... [skip ci] + modules: readme files regenerated - pipelimit ... [skip ci] -commit e49512ce80693aa2638d9fca940ded5a889cd2f9 +commit 1cec5e80036808badf19c8c72ec243b504f56e28 Author: Daniel-Constantin Mierla -Date: Sun Oct 8 22:54:00 2017 +0200 +Date: Fri Jul 27 22:00:47 2018 +0200 - misc_radius: end separator for examples in docs - - - added section ids + uac: docs - more details about execution of event_route[uac:reply] -commit 9be2a96651f743af0a22d0534ee9fc90e857d484 -Author: Andrew Siplas -Date: Sun Oct 8 05:41:00 2017 -0400 +commit 487fbf45cea288e743cbb87e352e76bb1bc05b87 +Merge: b0e5768eb a84a3ea61 +Author: Charles Chance +Date: Thu Jul 26 13:51:21 2018 +0100 - p_usrloc: Fix #1265: missing columns in location.sql file. + Merge pull request #1601 from kamailio/cchance/dlg_dmq - Add columns referenced by [p_usrloc_mod.c](https://github.com/kamailio/kamailio/blob/6c01e2692d5ff56dda54d21469d32c4d3dcbfbff/src/modules/p_usrloc/p_usrloc_mod.c#L65) + dialog: unset DMQ flag on replicated dialog removal -commit 9cc48208ec92f3e12be53e8054603e0ee248675f -Author: Daniel-Constantin Mierla -Date: Sat Oct 7 23:17:39 2017 +0200 +commit a84a3ea618f0e602a8892c37fce7f4e72ab7371c +Author: Charles Chance +Date: Thu Jul 26 12:07:33 2018 +0100 - mediaproxy: code formatting using clang + dialog: unset DMQ flag on replicated dialog removal + + - prevents looping back to other nodes + - reported by Patrick Murphy on sr-users list -commit 5535a612445ea71a938e427e0ed7e3f7ea5d88cf -Author: Daniel-Constantin Mierla -Date: Sat Oct 7 23:11:01 2017 +0200 +commit b0e5768ebc62bcf1f08246ec613de1ba71d6365e +Author: Charles Chance +Date: Wed Jul 25 14:00:16 2018 +0100 - mediaproxy: added section ids in docs + dmq: allow startup even if initial nodelist is empty -commit 6c01e2692d5ff56dda54d21469d32c4d3dcbfbff -Author: Daniel-Constantin Mierla -Date: Fri Oct 6 01:20:25 2017 +0200 +commit bca756f88ce36ab3c7297c7bc4d2cab9009b09fe +Author: Charles Chance +Date: Wed Jul 25 13:58:41 2018 +0100 - maxfwd: applied clang format + dmq: include non-active nodes when requesting initial node list -commit 1f54f3d21a81badb4ba43c6adb88195bdd2c42f1 -Author: Daniel-Constantin Mierla -Date: Fri Oct 6 01:16:10 2017 +0200 +commit 3d2b3868e01bab478408d9f0619db2c9918b72b0 +Author: Charles Chance +Date: Wed Jul 25 13:56:59 2018 +0100 - maxfwd: fixed location for section id of maxfwd_process + dmq: improve bus stability and reduce unnecessary state transfer + + - prevents split cluster in certain scenarios (e.g. GH issue #1349) + - add 'pending' state for new, locally added nodes, until confirmed + - continue to probe nodes marked as inactive/disabled so that they + are eventually removed (but still exclude from normal replication) -commit e4cb62486644cdca753fe6c7768bd738ee19c8a5 +commit 173f4e901f0c0e4671965514cb39146eb652f100 Author: Daniel-Constantin Mierla -Date: Thu Oct 5 17:34:13 2017 +0200 +Date: Wed Jul 25 14:56:13 2018 +0200 - presence_conference: removed history and svn ids + pipelimit: documentation for rpc command pl.list -commit c6e921e45f1257913848110189eab82a34aa2f8b -Author: Victor Seva -Date: Thu Oct 5 13:17:18 2017 +0200 +commit d5b6568529a26fb21b0aef9634354ade63aee802 +Author: Daniel-Constantin Mierla +Date: Wed Jul 25 14:48:29 2018 +0200 - core: add safety check to rval_get_tmp_str() + pipelimit: added rpc command pl.list - See #1263 + - get the details of one or all pipes in json format + - old pl.stats and pl.get_pipes print details in a string -commit 3c04bda005430206dd1b9da4f11b474ab8fea363 -Author: Rick Barenthin -Date: Wed Oct 4 17:41:39 2017 +0200 +commit 79aa72011ae551c6f82816f352fce7582e371f93 +Author: Daniel-Constantin Mierla +Date: Wed Jul 25 14:10:00 2018 +0200 - path: insert flow token in path header with received + core: removed unused MAX_LISTEN - - added the possiblity to have the received parameter and flow toke - in the add_path_received function + - it was printed in version output, not having any relevance anymore -commit 4571f168ea1d8d51ed31a5dd7e581ecc84b53d00 -Author: Julien Chavanton -Date: Tue Oct 3 16:53:26 2017 -0700 +commit fcf1d3d778a903852b6e21103a23bd7fd6e3bbc9 +Author: Daniel-Constantin Mierla +Date: Tue Jul 24 16:10:16 2018 +0200 - db_flatstore: encode delimiter param + topos: keep original contact in 3xx responses sent out - using ""%" HEX HEX" mechanism for escaping from RFC 2396 + - reported by Andrew Pogrebennyk -commit 376731b0fdcebb68c721ee4e4bcdd3f6dc3fcd7d +commit 2dfe895f52b2eac95dc0a9721bdb94225f28e827 Author: Kamailio Dev -Date: Wed Oct 4 13:46:38 2017 +0200 +Date: Mon Jul 23 23:16:36 2018 +0200 - modules: readme files regenerated - domainpolicy ... [skip ci] + modules: readme files regenerated - http_async_client ... [skip ci] -commit d94a65cbd0a86e1869037bbcfa261bc4219be908 -Author: Daniel-Constantin Mierla -Date: Wed Oct 4 13:42:30 2017 +0200 +commit 45874202fd76f70c601b7ee7e22e950d06968d87 +Author: Henning Westerholt +Date: Mon Jul 23 22:58:23 2018 +0200 - domainpolicy: removed empty rpc section - - - added several section ids + http_async_client: fix doc example regarding http_req_id -commit 465c9355a7d16c2c11c0f12b7346f8d42d693212 -Author: Kamailio Dev -Date: Tue Oct 3 17:16:26 2017 +0200 +commit ab6e63dcb31551a9b534f26eeae883153fd1af39 +Author: Daniel-Constantin Mierla +Date: Mon Jul 23 14:08:38 2018 +0200 - modules: readme files regenerated - xhttp_pi ... [skip ci] + misc/examples: added minimal config sample for anycast -commit f6f8b802749b2234e700fbd9cde8b847a54cab83 -Author: Ovidiu Sas -Date: Tue Oct 3 11:02:27 2017 -0400 +commit 5c3df566887e8c37d3144d4191b36fc9eba24c34 +Author: Daniel-Constantin Mierla +Date: Mon Jul 23 13:58:12 2018 +0200 - xhttp_pi: fix documentation examples + uac: call event route for uac_req_send() for second response + + - done in case the request is resent after a 401/407 + - GH #1598 -commit f460607b5b0903c0937e5272c18d1c4fed38d42d +commit 1ac4527ac8f05dbb48e3ab9e2aa9790ae86f179f Author: Daniel-Constantin Mierla -Date: Tue Oct 3 15:38:29 2017 +0200 +Date: Sun Jul 22 07:27:32 2018 +0200 - cplc: added section ids in docs + uac: uac_send - small bits of formatting -commit ae7e19fa77693f7c574a66ee6c773e781cea6a86 +commit 25e4ac2e60eb13116960c3824a5eefa896b6774d Author: Kamailio Dev -Date: Mon Oct 2 19:31:18 2017 +0200 +Date: Fri Jul 20 19:46:44 2018 +0200 - modules: readme files regenerated - cnxcc ... [skip ci] + modules: readme files regenerated - kex ... [skip ci] -commit f5430eb0ad6134539d5eb4369e4c60bdb5fa4a63 +commit d2841c66304196cbe73c76517f284e49aa0c76b9 Author: Daniel-Constantin Mierla -Date: Mon Oct 2 19:11:26 2017 +0200 +Date: Fri Jul 20 19:40:42 2018 +0200 - cnxcc: added section ids in the docs + kex: docs - note that is_myself() does not match with default ports -commit d84451d9a1b144b5aee4678df051cb65e8db2595 -Author: Federico Cabiddu -Date: Mon Oct 2 11:03:59 2017 +0200 +commit 44c9bba899f7c66f54605c5ba20adaadd6c3e065 +Author: Daniel-Constantin Mierla +Date: Fri Jul 20 18:06:34 2018 +0200 - siptrace: fix memory leak in hlog + misc/examples: added a minimal proxy sample config -commit 7dad4f5a8c41923d4792baad42b93461e0dbb019 -Author: Sergey Safarov -Date: Mon Oct 2 04:50:48 2017 -0400 +commit df817340df65abd116e6f9d49a3a32b4d1c0d470 +Author: Daniel-Constantin Mierla +Date: Fri Jul 20 17:59:36 2018 +0200 - pkg/kamailio: Created readme for centos, fedora, opensuse, oracle, rhel dists + pv: using * for header name matches any header for $hdr(name) + + - e.g., $hdr(*) is body of first header, $(hdr(*)[-1]) is body of last + header -commit b24c3093feeb49bd6e9e508a6947fb3926c4ea8f +commit 4f13c9a291eeeb2f3d3b7654308b13396fe020af Author: Daniel-Constantin Mierla -Date: Mon Oct 2 09:50:56 2017 +0200 +Date: Thu Jul 19 10:28:24 2018 +0200 - app_python: added section ids in docs + dialog: safety check for dialog hash table inside dlg_get() + + - GH #1594 -commit 9229cb397e3afebd5e25e67713e4df9b6d622192 -Author: Daniel-Constantin Mierla -Date: Sun Oct 1 08:21:55 2017 +0200 +commit 8454dac69187516921a20686c9d9085a5db6728b +Author: Julien Chavanton +Date: Tue Jul 17 09:29:40 2018 -0700 - app_mono: added section ids + topos: adding param contact_host -commit 0b0d282e8db3c230b11a78aa5e37f3ab3fba990b -Merge: c5ffc265c de93509c3 +commit 6c94217d68bdde980bd4b77bdc6d22062bd650ee +Merge: 5054ddf7e 077196035 Author: Daniel-Constantin Mierla -Date: Sun Oct 1 08:15:00 2017 +0200 +Date: Wed Jul 18 12:03:59 2018 +0200 - Merge pull request #1259 from sergey-safarov/libressl + Merge pull request #1593 from adil-mafzool/master - pkg/kamailio/alpine: Set of updates alpine packaging and docker + kamailio always retries deleted RTPEngine Nodes which generates PDD -commit de93509c3335d6969eac5389a3f5715b98222ba2 -Author: Sergey Safarov -Date: Sat Sep 30 16:17:22 2017 -0400 +commit 5054ddf7e9b28a67ad3809e2363d7af2302dc0c0 +Author: Kamailio Dev +Date: Tue Jul 17 08:31:33 2018 +0200 - pkg/kamailio/alpine_docker: Fixed missed symbolic links + modules: readme files regenerated - textops ... [skip ci] -commit cbb8d801d5e4836d922483c61f29eb7e02a4f360 -Author: Sergey Safarov -Date: Sat Sep 30 15:14:52 2017 -0400 +commit 81889c76a6c2023f580225fda4905a1106bf779a +Author: Daniel-Constantin Mierla +Date: Tue Jul 17 08:16:19 2018 +0200 - pkg/kamailio/alpine_docker: Allow build docker image from forked repos + textops: docs - fixed function name in example for replace_hdrs() -commit 756a0d63083d5fbcca3426842db16bc4d06c4a32 -Author: Sergey Safarov -Date: Sat Sep 30 05:59:33 2017 -0400 +commit fc412f96b8fa13561c8ddd0df259754ffe3a9b20 +Author: Kamailio Dev +Date: Tue Jul 17 08:16:57 2018 +0200 - pkg/kamailio/alpine: Removed custom kamailio.cfg, now used default + modules: readme files regenerated - textops ... [skip ci] -commit c5ffc265cf83c7e329ee8d21c3bafba78b670c58 -Merge: 563004ca5 d98e7570c +commit c1a7be3f793b49c6df202502de23873099c88b9b Author: Daniel-Constantin Mierla -Date: Sat Sep 30 14:23:21 2017 +0200 +Date: Tue Jul 17 08:03:02 2018 +0200 - Merge pull request #1258 from sergey-safarov/alpine - - pkg/kamailio/alpine_docker: Docker args now passed to kamailio #1252 + textops: docs for replace_hdrs() -commit d98e7570c458fb4992c6e49395b099a09bb5e133 -Author: Sergey Safarov -Date: Sat Sep 30 05:26:49 2017 -0400 +commit 21ad31f75e11adf2789c387b356cc5af5d29e3b4 +Author: Daniel-Constantin Mierla +Date: Tue Jul 17 07:50:50 2018 +0200 - pkg/kamailio/alpine_docker: Docker args now passed to kamailio #1252 + textops: added replace_hdrs(re, sval) + + - replace matching regexp with sval inside sip headers part -commit 6e809f6126f9da45c1c12488b68f342a14260086 -Author: Sergey Safarov -Date: Sat Sep 30 05:19:55 2017 -0400 +commit 9c7f22a2df8ac5469cee82a7fd94d87029fc5046 +Author: Kamailio Dev +Date: Mon Jul 16 14:17:04 2018 +0200 - pkg/kamailio/alpine removed mi_fifo from config file. - pkg/kamailio/alpine_docker: Removed workaround for non existent module mi_fifo + modules: readme files regenerated - kex ... [skip ci] -commit 563004ca54cb31d19e3bd9e30633c9f860070883 +commit 1cad8353e3fc04b2b8486fd490b57591a2cc0a9a Author: Daniel-Constantin Mierla -Date: Sat Sep 30 09:23:34 2017 +0200 +Date: Mon Jul 16 14:03:43 2018 +0200 - auth_radius: added section ids in docs + kex: docs - note about stats.fetch in the section for stats.get_statistics -commit dc15a8cd44fa17bb5ad12bf418c78af9f6e071e1 +commit 951df23f8ab9f4428e143949f1e580f76b4d8fc9 Author: Daniel-Constantin Mierla -Date: Fri Sep 29 18:58:49 2017 +0200 +Date: Sat Jul 14 09:20:29 2018 +0200 - htable: do not fork clean timer if no auto-expire is defined + topoh: try to use sip uri parameters for decoding - - match the same condition used in mod init to declare the extra process - - reported by GH #1237 + - when UA adds user=phone, turns the uri type in tel mapped over sip + uri, default params pointing to tel params + - reported by GH #1541 -commit 711917153a4be290fd7e405c2c5578fe42ef9aff +commit 464bf61788e86551509c08e07f9eed2a9bba0b58 Author: Daniel-Constantin Mierla -Date: Fri Sep 29 18:21:53 2017 +0200 +Date: Sat Jul 14 08:14:07 2018 +0200 + + textops: set the buffer size for re transformation to 8196 + + - 2048 is rather small for handlin message body + - reported by #1592 + +commit 0771960358b6450af8e1f75f838915f366f04a95 +Author: Muhammad Zaka +Date: Fri Jul 13 16:56:56 2018 +0100 - kamctl: do not set privileges on drouting tables without id for pgsql + rtpenegine: fixed rtpp_node permanent deletion causing PDD - - reported by #1256 + rtpp_node->rn_recheck_ticks was never set this means in-memory rtpengine were + never permanently deletion causing PDD for the calls requiring rtpengine -commit 21808cd59b56c0e60f4c06b30615697438e41a55 +commit 1a20bcaa35db4aa80d6460dfb0fb9c70026248c9 Author: Daniel-Constantin Mierla -Date: Fri Sep 29 14:41:31 2017 +0200 +Date: Fri Jul 13 14:04:43 2018 +0200 - pkg/kamailio: removed gentoo symlink + core: mem - added shm_address_in(p) + + - return 1 if pointer p is inside shared memory zone, 0 otherwise -commit 1542b5bf2a34b597e6b98870829f2248822b6294 +commit 74dcbe875d3978ba7e16bb346ea8c034468237e0 Author: Kamailio Dev -Date: Fri Sep 29 14:16:30 2017 +0200 +Date: Fri Jul 13 13:01:44 2018 +0200 - modules: readme files regenerated - rtpengine ... [skip ci] + modules: readme files regenerated - dialog ... [skip ci] -commit 67f2e8d93ba670c88b5fc89f74d21f3fa097244d -Merge: f90e78511 45b4d35f7 -Author: Richard Fuchs -Date: Fri Sep 29 08:03:29 2017 -0400 +commit 8dd610eddca40810af92d2d7131e7e3dd8323554 +Author: Daniel-Constantin Mierla +Date: Fri Jul 13 12:47:53 2018 +0200 - Merge pull request #1253 from claudiupb/implement-stop-recording - - Add stop_recording function, and make start/stop_recording functions accept flags + dialog: removed invalid closing section tag from previous commit + +commit 6c06e84db693698dde6b7cd50aeffc111073f1a3 +Author: Daniel-Constantin Mierla +Date: Fri Jul 13 12:45:40 2018 +0200 + + textops: docs for replace_hdrs_str() -commit f90e785114c7dd738ca7ce7e70d72dd92cbd7136 +commit 3577cc9497a0fcde5a3d004c74281bfbe75d8923 Author: Daniel-Constantin Mierla -Date: Fri Sep 29 13:11:50 2017 +0200 +Date: Fri Jul 13 12:42:09 2018 +0200 - sqlops: keep string values zero-terminated inside db result structure + textops: new function replace_hdrs_str() + + - replace the matched string in the headers zone -commit d3b7f0d390dd430d40a1d47112f076f4b21e3afe -Author: Daniel-Constantin Mierla -Date: Fri Sep 29 09:58:04 2017 +0200 +commit 6d87a1abacc1383c241f1aa9d3c6f1a182213273 +Author: Kamailio Dev +Date: Fri Jul 13 12:31:43 2018 +0200 - kamctl: added db subcommand to mange records in version table + modules: readme files regenerated - dialog ... [skip ci] -commit 6d4367e4ab1e7e2d38b94b942f2383e3878a1e7a +commit c005354f58c493250a3428c58ebeb8fc46e6a0b2 Author: Daniel-Constantin Mierla -Date: Fri Sep 29 09:28:08 2017 +0200 +Date: Fri Jul 13 12:25:05 2018 +0200 - domain: proper output format for rpc dump command - - - arrays have to be used to list domains and attributes + dialog: docs for rpc command dlg.stats_active -commit 0a3c3d1c7066d9a6fd7460b5f60a013717815ce1 +commit ebb149066690f7d96f45e1639e0c5ca9616bbbe0 Author: Daniel-Constantin Mierla -Date: Fri Sep 29 09:09:19 2017 +0200 +Date: Fri Jul 13 12:17:04 2018 +0200 - kamctl: regenerated the db creation scripts + dialog: new rpc command dlg.stats_active - - reported by #1254 + - return stats about active dialogs by scanning internal hash table -commit 9339850b0c6ad13b796afe37f84db81d00aa3861 -Author: Daniel-Constantin Mierla -Date: Thu Sep 28 12:32:22 2017 +0200 +commit ce0a16b3426f500d66eb987ea9c0dd59f25018a4 +Author: Kamailio Dev +Date: Fri Jul 13 11:02:19 2018 +0200 - xhttp_pi: updated the path for installation of pi_framework.xml + modules: readme files regenerated - dialog ... [skip ci] -commit 5cf921b7a5956276d281003a39160e6c7cef9e78 +commit c0aa8ab52e635c8b3173fdef77b25925e44cd4d4 Author: Daniel-Constantin Mierla -Date: Thu Sep 28 12:29:26 2017 +0200 +Date: Fri Jul 13 10:46:48 2018 +0200 - misc/examples: reorganized examples in subfolders + dialog: docs - notes about special values for optional parameters -commit aed158be91db54561aae11669d5c7942f4a26aa6 +commit 832fcfd839a193e5631df6c8ff1d2a84565d3822 Author: Daniel-Constantin Mierla -Date: Thu Sep 28 11:59:48 2017 +0200 +Date: Fri Jul 13 10:39:29 2018 +0200 - pkg/ser: removed long time unmaintained ser packaging specs + dialog: handle . for optional body parameter for rpc dlg.bridge_dlg - - use pkg/kamailio specs as a reference if still want to package ser + - consider as parameter not provided and use the default SDP string + - "" or "_" behaves as provided body is empty string and the request has + no body -commit 8cd2eaa48c59d961379c1040e4373dcc398d2aaf -Author: Daniel-Constantin Mierla -Date: Thu Sep 28 11:58:25 2017 +0200 +commit ab6f9d54084d8c91939864c758ffd2fcb750c8f9 +Author: Kamailio Dev +Date: Thu Jul 12 19:31:28 2018 +0200 - pkg/ser: added readme with not that ser packaging specs are removed + modules: readme files regenerated - textops ... [skip ci] -commit 1473be69e191c6873cfc4e2501999ebeb8a45159 -Author: Victor Seva -Date: Thu Sep 28 08:41:57 2017 +0200 +commit b15353177f9acb8a52941f073c360753f0138145 +Author: Daniel-Constantin Mierla +Date: Thu Jul 12 16:27:24 2018 +0200 - cfgt: format code using clang-format + textops: docs for replace_body_str(...) -commit 1c0dd4cf9cd131ce1844dbbe7dc20f30f5e8a010 -Merge: 68876da3d 31b9af0c2 -Author: Konstantin M -Date: Wed Sep 27 16:19:09 2017 +0300 +commit 6c1ec5fd0bb9abcfefd14a46ad3801cfb2ba36a3 +Author: Daniel-Constantin Mierla +Date: Thu Jul 12 16:24:30 2018 +0200 - Merge pull request #1248 from kamailio/revert-924-vseva/fix_app_python + textops: new function replace_body_str(mkey, rval, rmode) - Revert "app_python: fix compiler warning" + - replace a string inside message body -commit 31b9af0c2c524afc84b2b03d5c2d2bdac8f12daf -Author: Konstantin M -Date: Wed Sep 27 16:15:41 2017 +0300 +commit 48524f0ce8934c4f6a46b38a1af1fff92078eb3d +Author: Daniel-Constantin Mierla +Date: Thu Jul 12 15:58:13 2018 +0200 - Revert "app_python: fix compiler warning" + permissions: exported allow_address_group() to kemi framework -commit 68876da3de9211ac493094f012b44f06f327dd1b +commit e7734e604fc7b0e6cc24454b53c9670c91ce5c05 +Merge: ab118fab7 ea390d69d Author: Daniel-Constantin Mierla -Date: Wed Sep 27 14:24:57 2017 +0200 +Date: Thu Jul 12 15:47:09 2018 +0200 - textops: replace body functions exported to kemi framework + Merge pull request #1590 from surendratiwari3/app_lua_child_fix + + app_lua : fixing bug for setting set SR lib version for lua 52 -commit 43b1f9de4538c0739a133c0181a4df97c23c5769 -Author: Victor Seva -Date: Wed Sep 27 14:02:47 2017 +0200 +commit ea390d69d946314f93bfeeef77b4421f0c04cba3 +Author: surendratiwari3 +Date: Wed Jul 11 16:37:01 2018 +0000 - pv: remove unused variable - - > pv_core.c: In function 'pv_get_protoid': - > pv_core.c:1259:6: warning: unused variable 's' [-Wunused-variable] - > str s; - > ^ + app_lua: fixing bug for setting global table lua -commit 91bec00a1451f026ccfa5c42d1b945d15ced664e -Author: Victor Seva -Date: Wed Sep 27 13:57:54 2017 +0200 +commit ab118fab76bc38abf245f7e3f19741489201defc +Author: Kamailio Dev +Date: Wed Jul 11 18:46:24 2018 +0200 - kex: fix compiler warning - - > core_stats.c: In function 'stats_fetch_all': - > core_stats.c:521:7: warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized] - > if(m==NULL) { - > ^ - > CC (gcc) [M kex.so] mod_stats.o + modules: readme files regenerated - nathelper ... [skip ci] -commit fcbaac36dfc755ed52bd3ec8abba4dc52934a348 +commit 8f7eca3cdadd42ae2bf30a603b5b50c95f33937e Author: Daniel-Constantin Mierla -Date: Wed Sep 27 12:15:40 2017 +0200 +Date: Wed Jul 11 18:39:19 2018 +0200 - textops: replace() and replace_all() exported to kemi framework + nathelper: docs - note about the behavior of ping_nated_only=0 with sipping_flag set -commit 45b4d35f725839f5391957adf761dc1b9625fa23 -Author: Claudiu Boriga -Date: Wed Sep 27 11:40:50 2017 +0300 +commit 1be693d432cd0ec3ce2cd68847791689143ae351 +Author: Daniel-Constantin Mierla +Date: Wed Jul 11 18:27:08 2018 +0200 - rtpengine: make start_recording and stop_recording accept flags + nathelper: send always SIP ping if ping_nated_only=0 and sipping_flag is set + + - reported by GH #1587 -commit 4bdbf01319f8bc86f1feb9ee0fb995f776cea652 +commit 3806ca121194d54bbd03ff257ec62505b15d0941 Author: Daniel-Constantin Mierla -Date: Wed Sep 27 09:39:31 2017 +0200 +Date: Wed Jul 11 18:01:48 2018 +0200 - pv: new var $csb - shortcut to get the CSeq header body + rr: exported is_direction() to kemi framework + + - rework of the patch from GH #1589 -commit c8e2c77c28a6aed6996c05060fa3d24c3e0a933a +commit ade1cad69b659e5b0923e548d3c04f550204e793 Author: Daniel-Constantin Mierla -Date: Wed Sep 27 09:33:29 2017 +0200 +Date: Wed Jul 11 15:21:54 2018 +0200 - pv: new var $prid - get protocol id (int value) + nathelper: safety check for sipping_from when building SIP keepalive request + + - reported by GH #1587 -commit ce5362dc460ed9ecc477bd8103904a009ebb3f6c -Author: Claudiu Boriga -Date: Tue Sep 26 15:49:59 2017 +0300 +commit 20ebfcf3156912d83c087156ec3e8eb15ae26c25 +Author: Daniel-Constantin Mierla +Date: Wed Jul 11 12:42:27 2018 +0200 - rtpengine: add stop_recording function + permissions: exported allow_source_address_group() to kemi framework -commit d61e4aa8ef2882ba2b40bf27b0f17ebdcfa074dc -Merge: 98634783f 982cc452c -Author: Konstantin M -Date: Tue Sep 26 23:20:18 2017 +0200 +commit a9a1dfb7bdfab175153d1d0778752e6096651fe0 +Author: Kamailio Dev +Date: Wed Jul 11 11:46:41 2018 +0200 - Merge pull request #924 from linuxmaniac/vseva/fix_app_python - - app_python: fix compiler warning + modules: readme files regenerated - permissions ... [skip ci] -commit 98634783f1c7268e73fc39acabf9c4778e53e799 -Author: Ovidiu Sas -Date: Tue Sep 26 10:40:07 2017 -0400 +commit 9ede3f273b4e478b875369da5b92ff963ee21573 +Author: Victor Seva +Date: Wed Jul 11 11:39:20 2018 +0200 - utils/db_oracle: update Makefile for oracle 12.2 client + usrloc: fix RPC ul.add optional received param value when unset + + fix #1586 -commit 0529cc90ef9402c33944e9e1570c295f5fad6d80 -Author: Ovidiu Sas -Date: Tue Sep 26 10:39:18 2017 -0400 +commit 852706359470d586238e7df2c1aec2511e272d04 +Author: Daniel-Constantin Mierla +Date: Wed Jul 11 11:38:58 2018 +0200 - db_oracle: update Makefile for oracle 12.2 client + permissions: docs - elaborated more the help for allow_trusted() -commit b356c73494da7ef53447a5c7615bebeb8eb9a9e2 -Author: Federico Cabiddu -Date: Tue Sep 26 15:32:20 2017 +0200 +commit a9dbc22d9203a91b8eb465fea3b897f38593383a +Author: Daniel-Constantin Mierla +Date: Wed Jul 11 11:30:48 2018 +0200 - http_async_client: null terminate the request id in the callback + permissions: set from uri buffer to empty if not a sip message + + - adjustments after merging GH #1584 + - avoid using garbage content from the declaration of the buffer + - renamed parameter name to properly suggest is From header URI, given + that R-URI is also part of matching -commit 9425c8d582c0ed0e133dc64f64345d9e3e7e059a +commit 581f80a09af73fd917834b5bcbca6143016b419d Author: Kamailio Dev -Date: Tue Sep 26 10:16:47 2017 +0200 +Date: Wed Jul 11 10:47:04 2018 +0200 - modules: readme files regenerated - auth ... [skip ci] + modules: readme files regenerated - permissions ... [skip ci] -commit 4e2c3f2b41859767f13bef237b93ea7101f36d12 +commit ad2425c34e1ced6e044db28d996d1211cd75e294 +Merge: bfb1f5a68 caaef0457 Author: Daniel-Constantin Mierla -Date: Tue Sep 26 10:06:36 2017 +0200 +Date: Wed Jul 11 10:41:54 2018 +0200 - auth: explicit listing of status codes for replies in docs of challenge functions + Merge pull request #1584 from rromrrom/allow_trusted_3 + + permissions: Improve From pattern matching in kamailio permissions mo… -commit 47bfa060e6b182167c5d0b21cbaebf5b1c0bb8d2 -Author: Daniel-Constantin Mierla -Date: Mon Sep 25 15:13:58 2017 +0200 +commit caaef0457e3c5e061ee961588394a1105e0c5850 +Author: Roman Romanchenko +Date: Mon Jul 9 13:58:00 2018 +0300 - dialog: adjusted debug messages when updating attributes + permissions: Improve From pattern matching in kamailio permissions module + + - allow_trusted() now can take optional parameter of value to match. + - provided parameter will be used instead of From header in match_res() and match_hash_table() + - documentation extended with 3-arguments allow_trusted() function description -commit ed9a2cd7a938095ef923a263b8a2a3760e8396de -Author: Daniel-Constantin Mierla -Date: Sun Sep 24 11:50:31 2017 +0200 +commit bfb1f5a6879cc35ff638987bd2552ee1a24904c7 +Author: Kamailio Dev +Date: Tue Jul 10 10:17:10 2018 +0200 - tm: print tm cell in rpc tm.list output + modules: readme files regenerated - textops ... [skip ci] -commit 7261ac9fd36b6ea4a70695363b14b91d884e0c81 -Merge: 6fee88bec f083513f0 +commit a60734e552d2520fdd0253d5413c507c2e2974d7 Author: Daniel-Constantin Mierla -Date: Sun Sep 24 11:27:03 2017 +0200 +Date: Tue Jul 10 10:03:14 2018 +0200 - Merge pull request #1246 from kamailio/timer-xavp - - timer: reset xavp using common function + textops: documentation for replace_str(...) -commit 6fee88bece2903d787b5cd03905da4d381f2cf1a -Merge: 185db312e f21eaf124 +commit 5cdf195d709dc0235170961af2003b70bcc2ecb6 Author: Daniel-Constantin Mierla -Date: Sun Sep 24 11:26:36 2017 +0200 +Date: Tue Jul 10 09:56:02 2018 +0200 - Merge pull request #1245 from sergey-safarov/alpine + textops: added replace_str(match, repl, mode) - pkg/kamailio/alpine: Packaged rabbitmq, sctp, radius modules and created docker scripts + - replace a string with another in the message buffer after the first + line. The parameter mode coltrols if first ("f") match or all ("a") + should be replaced + - alternative to replace() that avoids regexp overhead when bare string + can be matched -commit f083513f0139156e3b0f1ce68cb934b687d0a56d -Author: lazedo -Date: Sat Sep 23 11:56:58 2017 +0100 +commit acb90b6634e65a21c655e9bb94c1af00c138e6d4 +Author: Daniel-Constantin Mierla +Date: Mon Jul 9 15:41:33 2018 +0200 - timer: reset xavp using common function + app_jsdt: restore JS stack after executing a function -commit f21eaf124344becced5008488dd862382e971323 -Author: Sergey Safarov -Date: Sat Sep 23 06:35:20 2017 -0400 +commit fee610899711cc9e2accd777250e1983b9282737 +Author: Kamailio Dev +Date: Mon Jul 9 15:31:42 2018 +0200 - pkg/kamailio/alpine: Packaged db_berkeley, app_python, app_perl, db_perlvdb, topos_redis + modules: readme files regenerated - sanity ... [skip ci] -commit 185db312ed91bba6c997a42a84c4da1e4ce2319f +commit eb96593d0f1bb60fe6e955daa1a1b91ef65c69bd Author: Daniel-Constantin Mierla -Date: Sat Sep 23 09:30:08 2017 +0200 +Date: Mon Jul 9 15:25:43 2018 +0200 - janssonrpcc: do not lock in mod destroy + app_lua: restore top index to lua stack after executing a function - - all children are killed already and if lock was already set results in - a deadlock + - could be related to GH #1577 -commit 291649821f4d19790072ffaf9aefc41891a3551d +commit 3ddf9de8f0345db6a5fb0c632784b38482687891 Author: Daniel-Constantin Mierla -Date: Sat Sep 23 09:29:10 2017 +0200 +Date: Mon Jul 9 10:26:11 2018 +0200 - jsonrpcc: do not declare variables in header files - - - avoid declaration in each .c that includes the .h + sanity: note that params for sanity_check(...) can be vars -commit 5fde5e87a0dba18c7d1d1cd97ef4e89536cc10c5 -Merge: 5389f903c 894e64ae6 +commit 7bc82ef842316449cbebeddf594a0e2975855242 Author: Daniel-Constantin Mierla -Date: Sat Sep 23 07:58:38 2017 +0200 +Date: Mon Jul 9 10:20:42 2018 +0200 - Merge pull request #1242 from gaaf/random-fixes + core: cfg struct - pack structures that use a dynamic array at the end - Random fixes - -commit 38d746e6181990d61f2fd7fd88599690a987bfec -Author: Sergey Safarov -Date: Fri Sep 22 18:07:50 2017 -0400 + - compiler padding to alling fields results in wrong offset for last + field which is computed as `sizeof(struct) - 1 + - GH #1583 - pkg/kamailio/alpine: Packaged rabbitmq, sctp, radius modules - -commit 089c96ab3ad470424581e56808ccf7196711b413 -Author: Sergey Safarov -Date: Fri Sep 22 10:05:01 2017 -0400 +commit f66bbb5b6da13ad627bf0c8ee50bdbad9c93b43c +Author: Daniel-Constantin Mierla +Date: Sun Jul 8 08:54:47 2018 +0200 - pkg/kamailio/alpine_docker: Added docker packaging scripts + sanity: allow vars in params -commit 50694326b33a73e73c982f0fa575e5f67ccdf427 -Author: Sergey Safarov -Date: Fri Sep 22 05:12:46 2017 -0400 +commit 95fc59a0bcddae3e174c4baf3f47a6cd2a15791b +Author: Daniel-Constantin Mierla +Date: Sat Jul 7 10:01:09 2018 +0200 - pkg/kamailio/alpine: Removed unnecessary patches + core: define core tokens before parsing config file -commit 5389f903c1fea9d7bcc709e84d81249a36dcb3de -Merge: 7326e7233 b2d233adf +commit 9a3bb8d2141c67ec1147085948ea38103ca6090d Author: Daniel-Constantin Mierla -Date: Fri Sep 22 14:26:05 2017 +0200 +Date: Sat Jul 7 09:08:18 2018 +0200 - Merge pull request #1241 from sergey-safarov/spec_update11 + core: added config defines for application version - pkg/kamailio/obs: Updated obs spec + - three tokens are defined for version X.Y.Z: + * KAMAILIO_X, KAMAILIO_X_Y, KAMAILIO_X_Y_Z -commit 894e64ae69f485ee8b764092d255c65ab7740da7 -Author: Alex Hermann -Date: Fri Feb 24 14:23:57 2017 +0100 +commit 4c52bd84068ca48a09bc971f32fdf028a889ee96 +Author: Daniel-Constantin Mierla +Date: Fri Jul 6 16:01:18 2018 +0200 - janssonrcp-c: Fix segfault in mod_destroy + pv: new class of variables - $ksr(attr) - Check variable before dereferencing it. + - get attributes of kamailio sip router instance + - implemented attributes: + * ver - return version string + * verval - return version value -commit 305dbe7197f87d8e14bb75f14553852c8e3c9b8c -Author: Alex Hermann -Date: Mon Feb 20 18:30:27 2017 +0100 +commit 7c1b33cfdc8f2c613644d561dc3738c697217efb +Author: Daniel-Constantin Mierla +Date: Fri Jul 6 15:18:00 2018 +0200 - json: Add fixup_free function for json_get_field + mohqueue: replaced SER_VER with VERSIONVAL -commit efe9d554a912edb0ffc5ae8e7176adc5bcc44a5e -Author: Alex Hermann -Date: Tue Oct 6 12:35:38 2015 +0200 +commit df9479643d43adf7a657a6b39371142d1d8a702e +Author: Daniel-Constantin Mierla +Date: Fri Jul 6 15:15:05 2018 +0200 - cfgutils: Remove debug statements in sleep functions + Makefile.defs: renamed define name SER_VER to VERSIONVAL - Too much noise when debug logging is on - -commit d6a374d707f23afddfc007edfeae40b01836b3c0 -Author: Alex Hermann -Date: Mon Feb 20 18:26:01 2017 +0100 - - cfgutils: Properly handle 'exit' when from route_if_exists() + - the value is the number computed by the rule: - exit is supposed to exit the routing script. route_if_exists() wasn't - handling the exit, so script would continue to run after 'exit'. - -commit 92e404b3676aa57bca531096cddc14d58e06c789 -Author: Alex Hermann -Date: Mon Jan 2 19:22:03 2017 +0100 - - cfgutils: Allow pv in check_route_exists() and route_if_exists() + $(VERSION) * 1000000 + $(PATCHLEVEL) * 1000 + $(SUBLEVEL) - These functions are somewhat useless if a dynamic parameter is not allowed. + Example: for kamailio 5.1.4, that is 5001004 -commit 194d1bd1d1b86a92ee51bb32d88c105eb6130910 -Author: Alex Hermann -Date: Mon Jan 2 19:21:19 2017 +0100 +commit b1cfec77e66cb0221dca4c6acea4d3fbb26e0f97 +Author: Kamailio Dev +Date: Fri Jul 6 10:32:09 2018 +0200 - cfgutils: Add fixup_free functions to (u)sleep functions + modules: readme files regenerated - uac ... [skip ci] -commit b2d233adf6bd3678f0fdcca3cc355a0edfc23944 -Author: Sergey Safarov -Date: Thu Sep 21 15:48:57 2017 -0400 +commit d369e0dc61148937a7f565e5b9fbb3d93d6397ac +Author: Daniel-Constantin Mierla +Date: Thu Jul 5 22:25:55 2018 +0200 - pkg/kamailio/obs: Added support of OpenSUSE Tumbleweed + uac: documentation for uac_reg_refresh() -commit 9889eaf0d05c743352a298f03e095c7445f56ce9 -Author: Sergey Safarov -Date: Thu Sep 21 15:59:30 2017 -0400 +commit f5628c8cb2d0d0603d56487ce47350914869ec1e +Author: Daniel-Constantin Mierla +Date: Thu Jul 5 22:21:27 2018 +0200 - pkg/kamailio/obs Fixed build of perl module + uac: exported cfg function uac_reg_refresh(luuid) -commit 7326e7233890db9877992fda7ce8e969fd59be73 +commit e62355f21538f679c56261db155939ec5dc38559 Author: Daniel-Constantin Mierla -Date: Fri Sep 22 09:22:52 2017 +0200 +Date: Thu Jul 5 13:19:25 2018 +0200 - ims_registrar_pcscf: added default license header for new files + lib/srdb1: support types for unsigned int and unsigned long long + + - defined db types DB1_UINT and DB1_UBIGINT -commit 1fe5970917f21e9d69127635e04ba8ae585e2da4 +commit 92bff1de198bef619809bc008c809148b7129c8b Author: Kamailio Dev -Date: Thu Sep 21 16:46:26 2017 +0200 +Date: Thu Jul 5 12:32:04 2018 +0200 - modules: readme files regenerated - kex ... [skip ci] + modules: readme files regenerated - blst ... [skip ci] -commit 6457634c963c0f65aaf4f3ce6573490609637f74 +commit aec6e77727ffccb5708f03c019aa95d54de66dbb Author: Daniel-Constantin Mierla -Date: Thu Sep 21 16:41:41 2017 +0200 +Date: Thu Jul 5 12:27:00 2018 +0200 - kex: more details about rpc stats.fetch output + uac: docs for uac_reg_enable() and uac_reg_disable() -commit 40273d15a4bf574da1b31d9a5ec4be7c4b6eb879 +commit 79e2844744a3ab17f4ef6d33d4877048fec4e53d Author: Daniel-Constantin Mierla -Date: Thu Sep 21 16:36:59 2017 +0200 +Date: Thu Jul 5 12:13:02 2018 +0200 - kex: documentation for rpc stats.fetch + uac: remote registrations - added uac_reg_enable() and uac_reg_disable() + + - alternatives to the RPC commands to enable/disable remote + registrations from kamailio.cfg (e.g., when receiving a registration + from upstream) -commit 931831bec1048c6d5671c2451a1c490893863c8d +commit 3c1b7f5bdfe8d1b99aa314573b73597ba8f5a657 Author: Daniel-Constantin Mierla -Date: Thu Sep 21 16:32:35 2017 +0200 +Date: Thu Jul 5 01:43:57 2018 +0200 - kex: new rpc command - stats.fetch - - - similar to stats.get_statistics, but with more json friendly output + blst: docs - better highlighting of examples in readme -commit e6e031775bb38da9ee2e994e9845daeff6a5392d +commit 7f034bf845eb65beaf2dc09594ab496998aa97a7 Author: Daniel-Constantin Mierla -Date: Thu Sep 21 15:32:14 2017 +0200 +Date: Wed Jul 4 21:16:57 2018 +0200 - websocket: removed legacy stats with typos + nat_traversal: use ipv6 address with surrounding square brackets in pv value -commit ffac3c32fcff789bc4712f1b54f052445d33e089 +commit 1d53ea3dba4e59b05b2e92ecc973c44159b9bb36 Author: Daniel-Constantin Mierla -Date: Wed Sep 20 13:40:22 2017 +0200 +Date: Wed Jul 4 13:06:48 2018 +0200 - topos_redis: safer size for snprintf buf to allow space for numbers + sdpops: exported sdp with media functions to kemi framework -commit 0c47c62aa29607c4f903afda451104da027cea67 -Merge: be80d9597 52f9bc1e9 -Author: ng-voice GmbH -Date: Wed Sep 20 13:26:32 2017 +0200 +commit 450649c417a4b1c149185d7d0bdac35e392a89c3 +Author: Daniel-Constantin Mierla +Date: Wed Jul 4 10:26:56 2018 +0200 - Merge pull request #1238 from tdimitrov/sec-agree + app_java: Makefile - USE_GCJ set to yes - ims_registrar_pcscf: Add support for sec-agree parameters parsing + - be compatible with current behavior to avoid breaking CI and package + building procedures -commit be80d95972d879d9d99e971ec03235160223ddae -Merge: 634efd6b0 4fc13e27c +commit 3422f3c87b9d19444723cf59d30665cb49019127 Author: Daniel-Constantin Mierla -Date: Wed Sep 20 13:25:47 2017 +0200 +Date: Wed Jul 4 10:21:25 2018 +0200 - Merge pull request #1240 from sergey-safarov/alpine + app_java: Makefile - condition on USE_GCJ to compile with gcc or not - pkg/kamailio/alpine: Added packaging script for Alpine dist. + - GH #1487, patch built reusing part of the one from A. Messina + - set USE_GCJ=yes if OS has GCC with Java compiler, by default it is + USE_GCJ=no (gcc 7 has removed gcj) -commit 634efd6b066c8302847aa4d72a4b5abda40eed75 -Author: Sergey Safarov -Date: Wed Sep 20 13:21:44 2017 +0200 +commit 94902f678ffa31fbb6f3a0231730d7d6bd2239a1 +Author: Daniel-Constantin Mierla +Date: Wed Jul 4 10:06:16 2018 +0200 - tls: fixed initialization when LibreSSL is used + INSTALL: removed notes for gentoo - - port from OpenBSD + - GH #1530 -commit bdd16faefc3e6abe8e824f53f370b51993958b62 -Merge: 65ed9b065 e77ca376f +commit 1d78456562418b785126af09761c12571ef2394d Author: Daniel-Constantin Mierla -Date: Wed Sep 20 13:17:19 2017 +0200 +Date: Wed Jul 4 09:18:52 2018 +0200 - Merge pull request #1230 from sergey-safarov/spec_update11 + core: test if address for IPv6 is IP format in lump substitutions - pkg/kamailio/obs: Updated obs SPEC file + - reported by GH #1581 -commit 4fc13e27c1a0047cf6cf3909b77736c6307c1ee3 -Author: Sergey Safarov -Date: Wed Sep 20 05:56:59 2017 -0400 +commit 4e2290facad0768daa636df387e438d4ff931588 +Author: Daniel-Constantin Mierla +Date: Tue Jul 3 08:34:06 2018 +0200 - pkg/kamailio/alpine: Added packaging script for Alpine dist. + blst: removed unused parameter -commit 65ed9b065c497266a4ecd9760e7c168c69b4c6e8 +commit f5ef3919b42541ac6daa1c3ea2ed7c1707f4dd01 Author: Daniel-Constantin Mierla -Date: Tue Sep 19 11:45:46 2017 +0200 +Date: Tue Jul 3 15:59:48 2018 +0200 - core: tcp - increased the size for flags field in connection struct + blst: more functions exported to kemi framework -commit e77ca376f72e8ce4d18c1f76d31b3f90913d94ad -Author: Sergey Safarov -Date: Sat Sep 9 05:41:27 2017 -0400 +commit b87b65237401420328b2afccdec69f45f1ada826 +Author: Kamailio Dev +Date: Tue Jul 3 15:01:37 2018 +0200 - pkg/kamailio/obs: Updated SPEC file + modules: readme files regenerated - benchmark ... [skip ci] -commit 52f9bc1e9ec2747426bc347745df9d1892021fce -Author: Tsvetomir Dimitrov -Date: Tue Jul 18 17:18:11 2017 +0300 +commit 4ccbb45ecfe5d691ee2a423ffa21f1586ae0cf1b +Merge: a8d4ca293 71d1c7213 +Author: Daniel-Constantin Mierla +Date: Tue Jul 3 14:51:18 2018 +0200 - ims_registrar_pcscf: Add support for sec-agree parameters parsing + Merge pull request #1580 from kamailio/bench_branch_pull + + Bench branch pull -commit 593f929f3678150423b50b68293ac6267ddcb4a3 -Author: Victor Seva -Date: Mon Sep 18 09:25:18 2017 +0200 +commit a8d4ca293dba19b4b44110e9e7f5be71ce3c090b +Author: Daniel-Constantin Mierla +Date: Tue Jul 3 09:50:00 2018 +0200 + + topos: detect first direction for dlg requests before linking contact + + - related to GH #1571 + +commit 3c12f9dacab41ef38dec5c4f53732f8e03308ea0 +Author: Kamailio Dev +Date: Tue Jul 3 09:01:40 2018 +0200 + + modules: readme files regenerated - topos ... [skip ci] + +commit 56f473bbebc0d992843e91e07b67f4ccc533266c +Author: Daniel-Constantin Mierla +Date: Tue Jul 3 08:55:28 2018 +0200 - pkg/kamailio/deb: version set to 5.1.0-dev7 + topos: documentation for event_mode param and event_route[topos:msg-sending] -commit 76149e02e4a73bfd6e24200b21b05c981776741e +commit 40d971af44b60b2c14dcc22693d41ec4ee4af33b Author: Daniel-Constantin Mierla -Date: Mon Sep 18 09:17:40 2017 +0200 +Date: Tue Jul 3 08:46:58 2018 +0200 - Makefile.defs: version set to 5.1.0-dev7 + topos: execute event_route[topos:sending] with current sip message to be sent + + - if drop is used, then the message processing with topos is skipped + - event route is executed after event_route[topos:outgoing] + - new parameter event_mode to control what event_route blocks are + executed -commit 3759c26c486c879a798b41a186870fda0f546506 +commit 8505c9eacdd95f21600ba1c45d7e746eb1c6b980 Author: Kamailio Dev -Date: Mon Sep 18 09:16:49 2017 +0200 +Date: Tue Jul 3 08:32:08 2018 +0200 - modules: readme files regenerated - statsc ... [skip ci] + modules: readme files regenerated - phonenum ... [skip ci] -commit e97c7c8b5ac983206423daff5b2b0ce016eb5392 +commit a6c5ec17ed37e901b6d2a01e691e130a8a96e3c2 Author: Daniel-Constantin Mierla -Date: Mon Sep 18 09:02:02 2017 +0200 +Date: Tue Jul 3 08:22:19 2018 +0200 - pv: exported pvx.evalx() to kemi framework - - - the equivalent of pv_evalx() + phonenum: listed ccname attribute for cfg variable -commit 24e09eeafc489b2d37c759ccedc0cdb65ebe2613 +commit 675f2d6eef14bc77e82fc9677208a7f507236f33 Author: Daniel-Constantin Mierla -Date: Sun Sep 17 21:17:39 2017 +0200 +Date: Mon Jul 2 21:51:26 2018 +0200 - statsc: small updates to docs + phonenum: added ccname attribute + + - get code for country name + - GH #1576 -commit c8a8e368d5145a5ad5298fea04cfd79a764ce05a +commit 961c2b3df008bb6df78c2e62dc943ebacd4db9b2 Author: Daniel-Constantin Mierla -Date: Sun Sep 17 19:23:31 2017 +0200 +Date: Mon Jul 2 12:53:04 2018 +0200 - ipops: removed svn id, history; coherent indentation + tm: more explicit debug message when not matching reply to transaction -commit b38455c90c858044e474a4d864f5f7156a8f08cf -Author: Kamailio Dev -Date: Sun Sep 17 11:01:58 2017 +0200 +commit 71d1c721321d523553ac4975e6c2df95cc56a197 +Author: Vicente Hernando +Date: Mon Jul 2 12:33:43 2018 +0200 - modules: readme files regenerated - usrloc ... [skip ci] + benchmark: documentation for RPC functions timer_list and timer_name_list -commit d6af9b8146ae6fc6fda692e669fb334ba1a959bd -Author: Daniel-Constantin Mierla -Date: Sun Sep 17 10:56:35 2017 +0200 +commit 91e84d94cb267bf6f16e97b535433fee19a184a6 +Author: Vicente Hernando +Date: Mon Jul 2 11:17:22 2018 +0200 - usrloc: updated docs for rpc ul.add command + benchmark: RPC commands timer_list and timer_name_list -commit e0b8227051ff5cd7d021888b3cf2cfb183bf7d58 +commit 30745c2b92e526d7f352a56bc4e292fe2d36ee92 Author: Daniel-Constantin Mierla -Date: Sun Sep 17 10:49:18 2017 +0200 +Date: Mon Jul 2 10:02:50 2018 +0200 - usrloc: rpc ul.add can set also received and socket fields + blst: exported several functions to kemi framework -commit dc8644a0326d90f2c766e3462762fc3dfdf73669 +commit aa4f8532ea5a85245216bf4e8fb4e07e37db76ed Author: Daniel-Constantin Mierla -Date: Sun Sep 17 10:26:18 2017 +0200 +Date: Mon Jul 2 09:42:15 2018 +0200 - usrloc: helper function to test if a rpc parameter is set or not + blst: export functions to ANY_ROUTE - - useful for optional parameters which can be given '0' or '.' value to - indicate that it is not intended to be set + - simplified from masking route types -commit 0954a069ac92c70e190875fdc05150a7d2004ddb +commit af9b6a47cc6600dc6d6036edda36d2ffc2de04d0 Author: Daniel-Constantin Mierla -Date: Sun Sep 17 10:08:37 2017 +0200 +Date: Thu Jun 28 09:37:38 2018 +0200 - usrloc: test first if all params are retrieved for rpc ul.add - - - avoid logging unset values + dispatcher: small polishing of sample config file -commit 0e38dabe44e475e8054d3905e553637977dd26e1 +commit 3e2803602873f3151b568a3f1a0a998aa16634f2 Author: Daniel-Constantin Mierla -Date: Sat Sep 16 23:09:44 2017 +0200 +Date: Thu Jun 28 10:45:06 2018 +0200 + + sdpops: exported sdp_print() to kemi framework - msrp: updates to log macros +commit cf98d1fa997e9b3e818c57d226613a50be0248b1 +Author: Kamailio Dev +Date: Wed Jun 27 10:46:54 2018 +0200 + + modules: readme files regenerated - auth_xkeys ... [skip ci] -commit 574f2d4d40fbdecf379292d65ad0218e8ecaab10 +commit 0d4f48d168167df5fc6be38721cab69115637dae Author: Daniel-Constantin Mierla -Date: Sat Sep 16 23:05:33 2017 +0200 +Date: Wed Jun 27 10:41:40 2018 +0200 - rtpproxy: removed function name from log messages + auth_xkeys: docs - fixed name of the function in example -commit cb0869db90c3e808dcd2f0a06d24544e32e26802 -Merge: f47f42ac1 b103fefdd +commit 14180b449d8feb9ae9adcb74926d64138b7cd750 Author: Daniel-Constantin Mierla -Date: Sun Sep 17 10:05:13 2017 +0200 +Date: Tue Jun 26 18:31:26 2018 +0200 - Merge pull request #1236 from jchavanton/dispatcher_latency_fix - - dispatcher: latency fix stdev calculation + auth_db: set id for section not title tag of is_subscriber() -commit b103fefdd871af95c3f7e1ac7b1605b5ea5b402a -Author: Julien Chavanton -Date: Fri Sep 15 09:34:19 2017 -0700 +commit 48de203fda213749ac1e6fdb081c22dd701f85c4 +Author: Daniel-Constantin Mierla +Date: Mon Jun 25 17:33:29 2018 +0200 - dispatcher: latency fix stdev calculation - - - adding linking to lm library + app_python: support for functions with more combinations of 4 params -commit f47f42ac12ad111b3bad52aa2d495fbed5ef395d +commit 08f942c9efc4e898de3985d25379b88a9ffe73a4 Author: Daniel-Constantin Mierla -Date: Fri Sep 15 09:27:07 2017 +0200 +Date: Mon Jun 25 17:24:09 2018 +0200 - core: tcp_read_headers() safety checks for parsed pointer - - - reset if it is out of read buffer range and the state is H_SKIP_EMPTY + app_sqlang: support functions with more combinations of 4 params -commit 35ee3a4b0357820bf31b3aa68323dcb7df267e94 +commit 734d0842072ce5e99813591833364ddef0bebc64 Author: Daniel-Constantin Mierla -Date: Fri Sep 15 09:00:18 2017 +0200 +Date: Mon Jun 25 17:18:37 2018 +0200 - core: tcp_read_ws() - safety checks for very large advetised lenght - - - use unsigned for lenght to avoid going negative on large read values + app_ruby: support for functions with more than 2 parameters -commit e01eb3ae4e40a9e510df1f784b738fd043884fbc -Author: Kamailio Dev -Date: Thu Sep 14 18:31:25 2017 +0200 +commit ef90af6335d0f3d54686f6e039ff3bab4e5c4729 +Author: Daniel-Constantin Mierla +Date: Mon Jun 25 17:07:30 2018 +0200 - modules: readme files regenerated - dispatcher ... [skip ci] + app_jsdt: support for more combinations of fuctions with 4 params -commit 68395d51c2d7dc7c9956daeababcaeba7e2ded24 -Merge: 18c512e31 12a25ed74 +commit 94ec7c778f0a98b91b6518575748875b6034edf0 Author: Daniel-Constantin Mierla -Date: Thu Sep 14 18:21:24 2017 +0200 +Date: Sat Jun 23 13:09:52 2018 +0200 - Merge pull request #1234 from jchavanton/dispatcher_latency_monitoring - - dispatcher: latency statistics + app_jsdt: updated duktape js engine to v2.2.1 -commit 18c512e31a2601a97b244f05b65ae92c0efba08e -Author: Kamailio Dev -Date: Thu Sep 14 14:01:25 2017 +0200 +commit bb14964dd8337d0946c7e233ff3cc81f22e8e1bb +Author: Daniel-Constantin Mierla +Date: Fri Jun 22 19:54:51 2018 +0200 - modules: readme files regenerated - registrar ... [skip ci] + jsonrpcc: init and update cfg framework for io handler process + + - GH #1520 -commit 5a1555ca8d52b112b4d4671583aeb0ed44422016 -Merge: 62ea33a6e c31501bc0 -Author: Juha Heinanen -Date: Thu Sep 14 14:46:23 2017 +0300 +commit 3e7ff1f3613db1c5de559bbf259a621647a5424b +Author: Daniel-Constantin Mierla +Date: Fri Jun 22 13:29:17 2018 +0200 - Merge branch 'master' of github.com:kamailio/kamailio + app_python: support for more combinations of functions with 4 params -commit 62ea33a6e9585e25362bd669c2f1cd11321dc119 -Author: Juha Heinanen -Date: Thu Sep 14 14:44:41 2017 +0300 +commit 8ff9f0dc0c00e80ad3a9add41823ca3dc101b94e +Author: Daniel-Constantin Mierla +Date: Fri Jun 22 13:24:09 2018 +0200 - increased location table contact field size from 255 to 512 + app_lua: support for more combinations of functions with 4 params -commit c31501bc09c440bf1e1f8507ceed38277f18375c +commit 134577590f1d3b18508119449198fb03d5c19b4f Author: Kamailio Dev -Date: Thu Sep 14 10:01:22 2017 +0200 +Date: Fri Jun 22 10:46:55 2018 +0200 modules: readme files regenerated - tm ... [skip ci] -commit d811aee59aff3d5acf48983c6858f1ecd3d5d436 +commit 8a12e15b7a7c597f39a69f5bfdb265e42d5a778d +Merge: 752e875fa 926fbc976 Author: Daniel-Constantin Mierla -Date: Thu Sep 14 09:46:19 2017 +0200 +Date: Fri Jun 22 10:34:45 2018 +0200 - tm: documentation for rpc tm.clean command + Merge pull request #1534 from armenb/armenb/relay_100 + + tm: add relay_100 config parameter to support stateless operation -commit 8f0fc94aaa6db96ef209c6136240d98ef566a004 +commit 752e875faece8233d39f8c91d7d553517ee94cd6 +Merge: 3c4bc85f6 99472814b Author: Daniel-Constantin Mierla -Date: Thu Sep 14 09:21:08 2017 +0200 +Date: Fri Jun 22 10:32:49 2018 +0200 - tm: rpc command to clean long time expired transactions + Merge pull request #1563 from surendratiwari3/evapi_async_relay_kemi - - try hard clean after 90 seconds since lifetime elapsed - -commit 12a25ed74585b7516e2eddb61e9175b466c86941 -Author: Julien Chavanton -Date: Mon Sep 11 15:15:49 2017 -0700 + Modules: Evapi async_relay export to kemi - dispatcher: latency statistics - -commit 90ab9e4f301c48ba9f080014330b933457d68e96 +commit 3c4bc85f6ded3e5d123bf057c716c86ff0da8d9f +Merge: 5bafb32fa faafff585 Author: Daniel-Constantin Mierla -Date: Wed Sep 13 18:07:34 2017 +0200 +Date: Fri Jun 22 10:28:07 2018 +0200 - usrloc: use app name in UL rpc UA, shift from mi to rpc in strings + Merge pull request #1568 from kmduk/py3_kemi_function_calls - - coherent indentation + app_python3: fix kemi function call argument type checks -commit 7d041c41d06773a5198f4e1a6461bdb1bd5b5351 -Author: Kamailio Dev -Date: Wed Sep 13 11:46:55 2017 +0200 +commit 5bafb32fa3dd0aefdb5e0c1a8bbd94638fe1022d +Author: Daniel-Constantin Mierla +Date: Fri Jun 22 10:11:56 2018 +0200 - modules: readme files regenerated - dialog ... [skip ci] + topos: debug log messages with linked contact addresses -commit e23c50aed89be717c0bc76e6fbfc902cf3deacb6 +commit ecfb1b6c9abcaa662155f67b56516fd2d0750fe7 Author: Daniel-Constantin Mierla -Date: Wed Sep 13 11:43:04 2017 +0200 +Date: Fri Jun 22 09:23:01 2018 +0200 - dialog: small updates to docs + topos: print warn message of missing record-route only for initial requests -commit e04716f4f9325fa5290555823132455ea599daac -Author: Daniel-Constantin Mierla -Date: Tue Sep 12 16:10:10 2017 +0200 +commit 926fbc97643364f79d09bde290c39faa357d3a6f +Author: Armen Babikyan +Date: Thu Mar 8 23:35:48 2018 -0800 - seas: added guards to several include files - - - bits of formating and removal of inline history + tm: add relay_100 config parameter to support stateless operation -commit 81ad6adb6456490bce9dfe019c22857713669a52 -Merge: 6eb9f46bc 9741bee7a -Author: Lucian Balaceanu -Date: Tue Sep 12 17:00:38 2017 +0300 +commit 31deafdab78c8852fd419109fde5e2eb0898f27a +Author: Daniel-Constantin Mierla +Date: Thu Jun 21 09:08:29 2018 +0200 - Merge pull request #1233 from hdikme/master - - carrierroute: warning for the same carrier/domain having routes with only 0 probability + rtpengine: print warning message if setting TOS for socket fails -commit 9741bee7af8136b35af8e6279e530aa0ad54f574 -Author: Huseyin Dikme -Date: Tue Sep 12 15:37:17 2017 +0200 +commit 04fffc77bb0dba4c13d76347a3352894b2821846 +Author: Henning Westerholt +Date: Wed Jun 20 17:43:43 2018 +0200 - carrierroute: warning for the same carrier/domain having routes with only 0 probability - - - While starting kamailio or reloading the routes, if the same carrier/domain pairs do not have - any route with a probability other than 0 (zero) then an error log will be printed on the screen. - Besides, the log "invalid dice_max value" in the cr_func.c has been made more clear. + pdbt and pdb_server: add version output to help and as a dedicated switch -commit 6eb9f46bc413b72f41423673f1ad1083775760c4 +commit f42e5420f5f761bd08952b221a3f60ac925d6c99 Author: Daniel-Constantin Mierla -Date: Mon Sep 11 23:16:39 2017 +0200 +Date: Wed Jun 20 08:30:20 2018 +0200 - uid_auth_db: removed history, updated log macros + ims_charging: check if the session to be linked is actually part of list + + - issue reported and patch suggested by GH #1549 -commit 6fa1e72a8e8b74876432afe47830d2ee22b1caf6 +commit a0594f0e70dd860a22e94733f965b151ff99e641 +Merge: 9a72a8ab2 f2db229ae Author: Daniel-Constantin Mierla -Date: Mon Sep 11 23:15:29 2017 +0200 +Date: Wed Jun 20 08:27:49 2018 +0200 - uid_uri_db: fixed log message + Merge pull request #1562 from christoph-v/bugfix_prm18_0001045_contact_remove + + ims_usrloc_scscf: bugfix erraneous unlinking of deleted contact -commit 06a5bb4cff0319a19660b711e7d987b30a939345 -Author: Juha Heinanen -Date: Mon Sep 11 22:21:26 2017 +0300 +commit 9a72a8ab26b281102bd6813d6c80adac6aecb88b +Merge: 78c689749 18f7771a8 +Author: Daniel-Constantin Mierla +Date: Wed Jun 20 08:26:29 2018 +0200 - modules/lcr: remove extra prefix_column param + Merge pull request #1561 from tdimitrov/pcscf-secagree-dealloc + + Proper deallocation for the ipsec parameters in contact for IMS PCSCF modules -commit 227b49c4a0049b72079101d3e4c407755d0b2fb0 +commit 78c6897492d7846acdcf5af21c4c8839aff0b09b Author: Kamailio Dev -Date: Mon Sep 11 09:31:34 2017 +0200 +Date: Tue Jun 19 19:16:29 2018 +0200 - modules: readme files regenerated - p_usrloc ... [skip ci] + modules: readme files regenerated - dispatcher ... [skip ci] -commit dd5a040840dddcf6fa7f91a2433332f81850eeae -Author: Lucian Balaceanu -Date: Mon Sep 11 10:20:24 2017 +0300 +commit 3c41036806dc1468ecf53b6753dc430df639b02b +Author: Daniel-Constantin Mierla +Date: Tue Jun 19 19:03:53 2018 +0200 - p_usrloc: updating documentation + dispatcher: docs - fixed closing tag for xml itemizedlist -commit 43a12b88aa7ae018d92815628debe4c924e2b58f -Author: Lucian Balaceanu -Date: Mon Sep 11 10:18:17 2017 +0300 +commit 1c8d5206c26c4c3897761cdd38341182a143087f +Author: Kamailio Dev +Date: Tue Jun 19 19:01:38 2018 +0200 - p_usrloc: value checks for db_ops_ruid, db_update_as_insert + modules: readme files regenerated - dispatcher ... [skip ci] -commit f5a329ff0ce0e433c5ff8a7bfdc815819dcf1022 +commit 8446409d77fe82a38eec772bbcf92bea34d44e35 Author: Daniel-Constantin Mierla -Date: Sun Sep 10 11:34:13 2017 +0200 +Date: Tue Jun 19 18:53:13 2018 +0200 - uid_uri_db: removed history, updated application name - - - adjustments to log messages and indentation + dispatcher: documentation for ds_select_routes() -commit f60a3cfa3070a4782038dcf9f2169562220cc396 +commit 3933a64c464acfb285ea10175b6ef699ed464543 Author: Daniel-Constantin Mierla -Date: Sun Sep 10 10:25:18 2017 +0200 +Date: Tue Jun 19 18:34:00 2018 +0200 - jsonrpcc: more debug messages if init fails + dispatcher: new function ds_select_routing(rules, mode, [limit]) - - coherent indentation and whitespacing + - select target addresses from a combination of groups and algorithms, + control where the first destination is pushed and optionally set a limit -commit 0281dc351ca4cde8d3343164cc3091d02808f3cb -Author: Daniel-Constantin Mierla -Date: Sat Sep 9 23:12:43 2017 +0200 +commit faafff585f5726ae2c27e247cb2d9e216840552b +Author: kmduk +Date: Tue May 1 14:12:18 2018 +0100 - uid_gflags: fixed rpc commands doc strings - - - converted log macros - - coherent indentation and whitespacing + app_python3: fix kemi function argument checking and add support for nsss calls (as used by xhttp_reply) -commit ccfe8c422135dff4b63db4b577973ff6790ebaf9 +commit 6d9ff00f2dc0a893162b2aa8aa28b0a835b58a2e Author: Daniel-Constantin Mierla -Date: Fri Sep 8 10:35:00 2017 +0200 +Date: Tue Jun 19 15:48:48 2018 +0200 - prefix_route: added header define guards - - - sanitization of log messages + core: fixup helper for functions with spve, spve and igp params -commit e27ba180ab9801e6b32bfb31aad1c02d28f7e559 +commit 458d40eb9cb202a18724062ffd0ea455e4d75d6d Author: Daniel-Constantin Mierla -Date: Thu Sep 7 15:29:09 2017 +0200 +Date: Tue Jun 19 08:22:58 2018 +0200 - snmpstats: removed wrong function name from log message + presence: dmq - init jdoc var earlier for proper cleanup in case of errors -commit 99ea089cb410c18e26bf29feb6ed14bf404988ff +commit a19a18e376a054460eb194d7d5c37687af06d4a5 Author: Daniel-Constantin Mierla -Date: Thu Sep 7 15:18:27 2017 +0200 +Date: Tue Jun 19 08:18:36 2018 +0200 - sl: exported sl_forward_reply() to kemi framework + json: removed obsoleted libsjon macro is_error() -commit c4bd6709cf3abb1fb0685fc89641d85c6752eb34 -Author: Kamailio Dev -Date: Wed Sep 6 20:46:22 2017 +0200 +commit 4a1293f38b75bcf63fbd2a7ee4410d3b10d1f6a7 +Author: Daniel-Constantin Mierla +Date: Tue Jun 19 08:09:14 2018 +0200 - modules: readme files regenerated - lcr ... [skip ci] + json: free pv in case of failure inside json_tr_eval() -commit b0f941e1ef9a013472ea42bade3c8ecae9111768 -Author: Juha Heinanen -Date: Wed Sep 6 21:34:56 2017 +0300 +commit 9317175c71c2c4a613e3b25a401f27c6316fcb34 +Author: Julien Chavanton +Date: Fri Jun 15 14:50:20 2018 -0700 - modules/lcr: improved description of prefix_column param + dialog: dlg stats incremented twice -commit b672d8ef63715cf816390a05ce7a441377c3e468 -Author: Daniel-Constantin Mierla -Date: Wed Sep 6 11:13:16 2017 +0200 +commit f665c7651d14442cac10163051ab49166907dd12 +Author: Kamailio Dev +Date: Mon Jun 18 13:01:44 2018 +0200 - tm: reset T_ASYNC_CONTINUE once t_continue() callback is executed - - - by having it still set, the reply field was not reset, causing to free - an invalid pointer when transaction was destroyed, reported by Vitaliy - Aleksandrov - - set reply of suspended request branch to FAKED_REPLY on continue, - the code was already set to 500 - make it coherent with the local - replied transactions - - reset cloned reply under lock for suspended reply branch and free it - later via backup pointer - safer if someone risks to access the - suspended reply branch (should happen now, just future proof) + modules: readme files regenerated - dispatcher ... [skip ci] -commit 8599f6fca16367a3e2a0dd4a638c667459482cd5 +commit 4e4053ca0312bc856321203613e9a6a026b7a3cd Author: Daniel-Constantin Mierla -Date: Wed Sep 6 09:09:13 2017 +0200 - - tm: more info in some log messages - -commit e90184ede69a1c162da640d2df0d44198c2059bf -Author: Kamailio Dev -Date: Tue Sep 5 13:31:18 2017 +0200 +Date: Mon Jun 18 12:53:20 2018 +0200 - modules: readme files regenerated - p_usrloc ... [skip ci] + dispatcher: documentation for ds_db_extra_attrs param -commit fda5be331d24342beb5b50e7171b4a3be9c5b4fc -Author: Lucian Balaceanu -Date: Tue Sep 5 14:21:40 2017 +0300 +commit 433577ddfca4cbfc1147168297dba611f89a5a00 +Author: Daniel-Constantin Mierla +Date: Mon Jun 18 12:45:19 2018 +0200 - p_usrloc: add config framework support for certain parameters + dispatcher: new paraemter ds_db_extra_attrs - The following params are now configurable via kamcmd cfg: - expire_time, db_err_threshold, failover_level, db_ops_ruid, - db_update_as_insert + - allow specifying database table columns to be loaded in the attrs + field -commit 303294547399610a4eedcd382631e7d442fd76ad -Author: Kamailio Dev -Date: Tue Sep 5 08:01:33 2017 +0200 +commit 927ddcf084b637385df103fb489d843e0255f4f8 +Author: Daniel-Constantin Mierla +Date: Mon Jun 18 10:00:14 2018 +0200 - modules: readme files regenerated - presence_xml ... [skip ci] + db_perlvdb: unref in case of error -commit 6fbaac0d9383da5fe30ea9d2e9671ab3dffd9694 +commit 67d5aac30d7e44f0d19e41df88fce39f67192483 Author: Daniel-Constantin Mierla -Date: Tue Sep 5 07:55:09 2017 +0200 +Date: Mon Jun 18 09:47:15 2018 +0200 - presence_xml: small adjustments, added section ids + tm: t_serial - safety checks for xavp search result -commit 498e6a96fa101863170399e237cad66a8620a9e6 +commit f8ae1b6278ade0f1fb73b536774f936e2d66373a Author: Daniel-Constantin Mierla -Date: Mon Sep 4 16:13:01 2017 +0200 +Date: Mon Jun 18 09:33:23 2018 +0200 - pkg/obs: more details in the readme + app_ruby: removed wrong assignment -commit 2406f79169aac6a94a4a8f26aa50dd6291d821ec -Author: Sergey Safarov -Date: Mon Sep 4 16:08:36 2017 +0200 +commit 606a8d6915f385460776b0d682b6471d2176db7f +Author: Daniel-Constantin Mierla +Date: Mon Jun 18 09:29:17 2018 +0200 - pkg/kamailio/OBS: Added RPM packaging scripts for openSUSE Build Service + sipt: use static buffer to avoid pkg leak inside sipt_get_redirection_number() -commit db00b5fd0ecd65ee6164fdfeac3df90bdd2a4393 +commit 5f91017c0393faa02201ccc3693fee6381ea691a Author: Daniel-Constantin Mierla -Date: Sun Sep 3 10:22:40 2017 +0200 +Date: Mon Jun 18 09:22:10 2018 +0200 - alias_db: docs - added section ids + log_custom: check return code for udp send -commit ab08d6def9fa060cb6568bc13eec328078dd4e04 -Author: Daniel-Constantin Mierla -Date: Sun Sep 3 10:18:57 2017 +0200 +commit 2f278aa565e2ee991205f109dc887b106d7d9c24 +Author: Henning Westerholt +Date: Sun Jun 17 17:23:05 2018 +0200 - auth_db: docs - small cleanups + dispatcher: fix compile warning - unused variable 'buf' in ds_add_xavp_record -commit 25c9e1b5f6bb81ef1ec730b8400cdef66c119089 -Author: Daniel-Constantin Mierla -Date: Sat Sep 2 13:28:21 2017 +0200 +commit 74847c386f627ba89a0cb282e85d653388d45e24 +Author: Henning Westerholt +Date: Sun Jun 17 17:13:51 2018 +0200 - xmlrpc: coherent indentation and white spacing + core: better protection against invalid name lookup in DNS caching support -commit ec15b23f25ba2502a661157ae69b4dc1db923f66 +commit 94385af9143e4b320f05dad501ccb5c446b5048b Author: Daniel-Constantin Mierla -Date: Fri Sep 1 12:00:06 2017 +0200 +Date: Fri Jun 15 13:33:45 2018 +0200 - core: main - don't count wtimer secondary process separately - - - it is registered via sr_wtimer_init() - - fixes the extra empty entry in process table reported by Juha Heinanen + dispatcher: fixed the conflict in the function names and api -commit bffb6b8374b087799b1979e2ba935dc130436987 +commit 145e3a1e461dd53fb1e06bae619d20a09dcffe75 Author: Daniel-Constantin Mierla -Date: Fri Sep 1 11:58:54 2017 +0200 +Date: Fri Jun 15 11:50:31 2018 +0200 - core: pt - debug messages when registering app processes + core: raw sock - reset the rcv_msg and proper test for totlen -commit 83724225ebc3ed778e7bacb487e3d3376e47e504 -Author: Daniel-Constantin Mierla -Date: Thu Aug 31 15:48:54 2017 +0200 +commit d988af9dcdfd739fe33aa3b381c9668367647b8b +Author: Kamailio Dev +Date: Fri Jun 15 09:01:57 2018 +0200 - core: tcp - print reason in tcp emit closed event debug message + modules: readme files regenerated - dispatcher ... [skip ci] -commit f74cddd78df3f37f6ea827fc1787796c601572b3 +commit 540450a223a536e0ee8f63ae62c45b5f6c6bb522 Author: Daniel-Constantin Mierla -Date: Thu Aug 31 12:38:20 2017 +0200 +Date: Fri Jun 15 08:55:24 2018 +0200 - db_text: fix computing absolute path to db using cfg dir - - - reported by GH #1224 + dispatcher: documentation for ds_set_dst() and ds_next_domain() -commit 2683b20d7b62f60ce53ed6692a42ed6b19fee972 +commit b55b6fa199828669e48354c10607541d9ae05184 Author: Daniel-Constantin Mierla -Date: Thu Aug 31 11:31:33 2017 +0200 +Date: Fri Jun 15 08:54:02 2018 +0200 - db_text: more details in log message when nr of columns is too small + dispatcher: added ds_set_dst() and dst_set_domain() + + - unlike the ds_next_...() variants, these functions just push to + destination the current xavp_dst, without consuming it -commit 1d8c6e4330fc069ed6606e0b966ece76053909b8 -Author: Daniel-Constantin Mierla -Date: Thu Aug 31 11:20:17 2017 +0200 +commit 3b412293c559c955bb2447cb24cb3ab27efb9ad9 +Author: Andreas Granig +Date: Thu Jun 14 15:49:11 2018 +0200 - tm: skip empty lists when listing transactions via rpc tm.list + db_redis: Fix memleaks on delete + + Make sure to release pkg memory on delete operations. + Improve error handling to avoid segfault on broken connection. + Warn on full table scans to help improve key definition. -commit 53afec4962e2dc3ec0971ba97da94f37c57780d3 -Author: Daniel-Constantin Mierla -Date: Thu Aug 31 11:19:50 2017 +0200 +commit 502d503d77a6fc0420db1cace84e839c3b593b9e +Author: Kamailio Dev +Date: Thu Jun 14 15:31:36 2018 +0200 - core: clist - helper macro to test if a clist is empty + modules: readme files regenerated - dialog ... [skip ci] -commit e34d70fbffc22f3c2173b960afcfbb6166060002 +commit a10d04ddca3a357e8e589a4c3eaba7989dce7de9 Author: Daniel-Constantin Mierla -Date: Thu Aug 31 10:00:03 2017 +0200 +Date: Thu Jun 14 15:29:16 2018 +0200 - tm: show ref count, lifetime, uas request mode in rpc tm.list + dialog: docs - fixed example for rpc dlg.terminate_dlg -commit e6b9cfeea47c7e377bbd030543a94437aaa54467 +commit 5daba2fad6e757192e7ca4b90f1267f5e4dd0923 Author: Kamailio Dev -Date: Wed Aug 30 21:01:25 2017 +0200 +Date: Thu Jun 14 10:31:49 2018 +0200 - modules: readme files regenerated - tm ... [skip ci] + modules: readme files regenerated - usrloc ... [skip ci] -commit ec62424d2e1a9ff697f077c90eda27c08515e75e +commit f20c90e9adb98f3957134ef809dd0be1cac011f9 Author: Daniel-Constantin Mierla -Date: Wed Aug 30 20:55:20 2017 +0200 +Date: Thu Jun 14 10:29:55 2018 +0200 - tm: documentation for tm.list rpc command + usrloc: docs for version_table parameter -commit 9fe9543d3d9b700fc51e4227a2a08e9715aa4eb2 +commit da922966f0576cd500b455bfa3dca792611b14eb Author: Daniel-Constantin Mierla -Date: Wed Aug 30 20:53:25 2017 +0200 +Date: Thu Jun 14 10:27:42 2018 +0200 - tm: new rpc command tm.list + usrloc: new parameter version_table - - list details of the transactions + - set it to 0 to disable checking the version for location table -commit 8d9459b7de28de90993e7e26c827298c7b2d08a4 -Author: Victor Seva -Date: Tue Aug 29 12:58:41 2017 +0200 +commit 1d4ee7720c6f609077e4497189103f9a950f4194 +Author: Edwin Fine +Date: Wed Jun 13 19:40:04 2018 +0000 - tls: fix sanitization of log macros commit a8b30d340f9d + core: fix Makefile.defs errors to include raw socket support + + Compiling kamailio on `linux`, `gnu_kfreebsd`, and `freebsd` - + unless `RAW_SOCKS` is set up otherwise - + should automatically enable raw sockets, according to `Makefile.defs` + [L97][]: + + # enable raw sockets + RAW_SOCKS ?= yes + ifeq ($(RAW_SOCKS),1) + RAW_SOCKS = yes + endif + + By all indications, if `RAW_SOCKS` is unset, set to `1`, or set to `yes` + before this `ifeq` statement, it will be set to `yes` after the `endif`. + + The issue arises later on in `Makefile.defs` [L1758][] (and also + [L1808][] and [L1892]): + + #os specific stuff + ifeq ($(OS), linux) + # by default use futexes if available + use_futex= yes + C_DEFS+=-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD \ + -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H \ + -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER -DHAVE_IP_MREQN + ifneq ($(RAW_SOCKS), yes) ### <--- The issue ### + C_DEFS+= -DUSE_RAW_SOCKS + endif + + Clearly, the `ifneq` should be `ifeq`. + + This commit fixes the issue by making the above changes, and `kamailio` + should compile on Linux - by default - with raw sockets support unless + `RAW_SOCKS` is explicitly set prior to evaluation to something other + than `yes` or `1`. + + [L97]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L97 + [L1758]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L1758 + [L1808]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L1808 + [L1892]: https://github.com/kamailio/kamailio/blob/a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65/src/Makefile.defs#L1892 -commit a8b30d340f9d19daac10ed987707adf7327ef420 +commit 5f7eee55c648cfa1b5b5662648fc9133daa6d6b6 Author: Daniel-Constantin Mierla -Date: Tue Aug 29 12:03:50 2017 +0200 +Date: Thu Jun 14 08:04:31 2018 +0200 - tls: sanitization of log macros + sqlops: increased the length of printed query part in case of errors -commit fcc4b8ed537714c2ab5bbb7de221e0218e913d24 +commit a57a96f8fea3a5f7bff068ab0ea0d4c17c15bb65 Author: Kamailio Dev -Date: Mon Aug 28 12:31:32 2017 +0200 +Date: Wed Jun 13 09:16:56 2018 +0200 - modules: readme files regenerated - rtpengine ... [skip ci] + modules: readme files regenerated - dispatcher ... [skip ci] -commit 5272f4e4e302e44ad870bd8b8936c2517848c0ca +commit 5799e2722ad1d7df24548a0e19319b56a78a126b Author: Daniel-Constantin Mierla -Date: Mon Aug 28 12:25:09 2017 +0200 +Date: Wed Jun 13 09:01:07 2018 +0200 + + dispatcher: detailed the subfields of xavp_dst for xavp_dst_mode param + +commit 99472814b19f50e30beda1840c5e969938027cac +Author: surendratiwari3 +Date: Wed Jun 13 03:08:52 2018 +0000 + + Modules: Evapi async_relay export to kemi + +commit f2db229ae450d6443da51950976e92d5eaa7ecd0 +Author: frie +Date: Fri May 25 17:27:01 2018 +0200 - rtpengine: documented the flag for call recording + ims_usrloc_scscf:bugfix erraneous unlinking of deleted contact - - reported by GH #1221 + impurecord.c: corrected small bug in remove_impucontact_from_list() -commit 2d79d1fc20ee1cd056b1b4b453c557671ae99f08 +commit 793788196669499aa633e2495a372449ba4db4e0 Author: Daniel-Constantin Mierla -Date: Sun Aug 27 11:11:17 2017 +0200 +Date: Tue Jun 12 11:51:34 2018 +0200 - auth: removed module and function names from logs + dispatcher: docs - updated sample config -commit 08496ed43a4c99a082192a2d9d22eacfbb242a16 +commit c9e5b863c7f6fa37752a34aab87bca36951a0c9d Author: Daniel-Constantin Mierla -Date: Sat Aug 26 16:29:53 2017 +0200 +Date: Tue Jun 12 10:14:49 2018 +0200 - core: cfg vars - updated log macros + dispatcher: add xavp after the previous one + + - more natural way to add the xapvs and fixes the case when limit was + given and destinations with lower priority made it in the xavp -commit c2657fd4a4e88e6f86ff9eef3b9fa2dd641c240c +commit 151299d057f858277d32c360221f7a93542c40d3 Author: Daniel-Constantin Mierla -Date: Fri Aug 25 12:10:47 2017 +0200 +Date: Tue Jun 12 10:14:26 2018 +0200 - core: cfg struct - updated log macros, coherent indentation + core: xavp - new helper function xavp_add_value_after() -commit b325a7711ac405e5598f7fbd224fb1b8e84221cf -Author: Juha Heinanen -Date: Fri Aug 25 10:29:44 2017 +0300 +commit f056213ca78c94419450f45fd3b26e9328c1a731 +Author: Daniel-Constantin Mierla +Date: Tue Jun 12 09:49:38 2018 +0200 - modules/lcr: fixed testing if dont_strip_or_prefix_flag is set + core: xavp - helper functions to get last by name and add after an item -commit 38f10f867d8f234d7193eb47b9e176e50d5b021e +commit 21addddda9a520f6f1aace3ac3f25de897e60e4d Author: Daniel-Constantin Mierla -Date: Thu Aug 24 12:20:29 2017 +0200 +Date: Tue Jun 12 09:48:44 2018 +0200 - core: forward - coherent whitespacing and log macro update + dispatcher: store socket pointer in xavp instead serializing address to string -commit ec6850c167a196c3f28d218b3ad1c31f7926b4fa +commit d82ccbd9480c96e12b7fa668a1a950e2873a834c Author: Daniel-Constantin Mierla -Date: Wed Aug 23 11:18:54 2017 +0200 +Date: Tue Jun 12 09:23:59 2018 +0200 - core: cfg group vars - updated log macros + core: xavp - extended to hold a bare void pointer value + + - useful to link data that doesn't need cloning or freeing -commit 6a69220ec8f46528d1c02295452e59462d02d0f5 +commit d445ae6bdb9adbf6c35c8518e21c7657dfc6583a Author: Kamailio Dev -Date: Tue Aug 22 12:31:44 2017 +0200 - - modules: readme files regenerated - statsc ... [skip ci] +Date: Tue Jun 12 09:16:43 2018 +0200 -commit febcf7cdb29896fb7bc02585b4ac36a5fba5e3ae -Author: Olle E. Johansson -Date: Tue Aug 22 12:30:12 2017 +0200 - - usrloc Fix README typo + modules: readme files regenerated - dispatcher ... [skip ci] -commit 4c7fbb1d6c33ffa6b1630e2b15bcc60934e4dcb3 -Author: Olle E. Johansson -Date: Tue Aug 22 12:22:58 2017 +0200 +commit f6960f8771fc0689f6923c58a3e5d683434a6a11 +Author: Daniel-Constantin Mierla +Date: Tue Jun 12 09:01:18 2018 +0200 - statsd Fix strange formatting for apostrophes in the html files by actually using an apostrophe + dispatcher: added defines for dst address update operations -commit f2f6e7ec171fab9dcf8ad7d6c6b25438a54b32af -Author: Olle E. Johansson -Date: Tue Aug 22 12:19:54 2017 +0200 +commit 422e7dbd0bebc14d6a4cc43e7f59326de00f24b0 +Author: Daniel-Constantin Mierla +Date: Tue Jun 12 08:37:38 2018 +0200 - statsc Fix typo in RPC command naming + dispatcher: docs updated removing avp params and adding xavp params -commit a91b2b68c667afb39854ac94fbcfa9cbe6dc49cb -Author: Kamailio Dev -Date: Mon Aug 21 17:01:27 2017 +0200 +commit 11ff4226dea81582fd97661701142abbf5348911 +Author: Daniel-Constantin Mierla +Date: Tue Jun 12 08:35:15 2018 +0200 - modules: readme files regenerated - avp ... [skip ci] + dispatcher: use xavps instead of avps + + - removed avp names parameters + - new parameters: + - xavp_dst - name of the xavp to store destination records + - xavp_dst_mode - control the fields added to xavp_dst + - xavp_ctx - name of the xavp to store context attributes + - xavp_ctx_mode - control the fields added to xavp_ctx -commit e6b6d26d831b937832969459692b3b06a776a033 +commit 7585a57037f6ef21cda376b16b0077fa981eceac Author: Mikko Lehto -Date: Fri Aug 11 22:45:03 2017 +0300 +Date: Mon Jun 11 19:04:20 2018 +0300 - core, modules: fix common documentation typo + src/Makefile: adjust Makefile to populate REPO_ variables in autover.h again -commit 4e219ebae59be64009dc59a28cb158ae4a51db50 -Author: Mikko Lehto -Date: Fri Aug 11 13:32:50 2017 +0300 +commit ebd207ade41ccdfec687d85e210c32ffe9a7e6b0 +Author: Kamailio Dev +Date: Mon Jun 11 18:16:43 2018 +0200 - topoh: fix documentation typo + modules: readme files regenerated - mqueue ... [skip ci] -commit c2e74aa28ce20ec9f9eb19197aa829e9c9672a1d +commit f46fc58f88b41563ada32b2abb13cf47161eeb5a Author: Mikko Lehto -Date: Wed Aug 9 16:47:11 2017 +0300 +Date: Fri Jun 8 12:34:02 2018 +0300 - nathelper: fix documentation typo + sdpops: fix documentation typo -commit ff6e3f4d5a48f2673d4ec33b9a293ddc43c34781 +commit 9ba37fd602a67066bd49f6959350ea1fd72d5e47 Author: Mikko Lehto -Date: Wed Aug 9 10:08:19 2017 +0300 +Date: Wed May 30 10:13:43 2018 +0300 - siputils: fix example typo + mqueue: fix typo in variable name documentation -commit 40d7308fb6d194a6c5c40c3a6b338cba9c87b253 +commit 21c219bcdd3f74a029582cd353c5f91d91a46f3d Author: Mikko Lehto -Date: Tue Aug 8 18:35:38 2017 +0300 +Date: Wed May 23 22:11:00 2018 +0300 - registrar: fix statistic documentation typo + rtpproxy: mark RPC call with proper tag and small typo fix -commit 6452e86bcc3e4b927a2e511f3c7a9f464a69ac66 +commit c1d106161819b86427a9ea7a6e6502c1922d4b6f Author: Mikko Lehto -Date: Thu Jul 27 19:03:42 2017 +0300 +Date: Sun Apr 15 14:21:58 2018 +0300 - sipcapture: documentation typo + tmx: fix documentation typo -commit 496f538e2ce8be9ed852a7bf8b1fe118b8971998 -Author: Kamailio Dev -Date: Mon Aug 21 16:46:27 2017 +0200 +commit 18f7771a8ce74e03b942a41095c6325f43ddb32f +Author: Tsvetomir Dimitrov +Date: Mon Jan 22 13:33:26 2018 +0000 - modules: readme files regenerated - siptrace ... [skip ci] + ims_usrloc_pcscf: Update comment for free_security() -commit 309895b0a3494f3ac476646779dfd0605e0857f1 -Author: Mikko Lehto -Date: Mon Aug 21 17:21:16 2017 +0300 +commit 2a0bef409ddd9d8e29963553bb3c4e2e77d36ffb +Author: Tsvetomir Dimitrov +Date: Mon Jan 22 13:36:03 2018 +0000 - siptrace: mention trace_mode in overview - - - text by Daniel Tryba + ims_registrar_pcscf: Updated security_t deallocation in sec_agree.c. Fix parsing of ealg parameter. -commit e129b809e258d94ea39d66c847db3a19eae2b708 -Author: Olle E. Johansson -Date: Mon Aug 21 10:57:34 2017 +0200 +commit 72f5eaeeef0239ebd16a2d645b83e83eb1a2b506 +Author: Daniel-Constantin Mierla +Date: Mon Jun 11 12:36:22 2018 +0200 - http_client Free the old object when the new can't be allocated properly + tm: force free cell in UNREF_FREE() if transaction is unlinkled from timers -commit 4447dc8619f7136bca127efadaad4bce6f8e0e91 +commit 5fe2a1a1c67b550431dcae3c98701073f7edd953 Author: Daniel-Constantin Mierla -Date: Mon Aug 21 07:43:44 2017 +0200 +Date: Mon Jun 11 12:10:16 2018 +0200 - core: parser contact - removed history, updated log macros + tm: backup and restore T and T_branch in t_continue() - - coherent indentation + - it may be required to cleanup old T states after t_continue() is + finished -commit 12c57dbee20d809ee6b43fc56fdb37e38bd60916 -Author: Kamailio Dev -Date: Sun Aug 20 08:01:29 2017 +0200 +commit cddcdb3db2745ef43b5b892a20c3bd1aae439bae +Author: Victor Seva +Date: Thu Jun 7 13:47:36 2018 +0200 - modules: readme files regenerated - kex ... [skip ci] + ims_registrar_pcscf: fix #1556 -commit 804f9e85ce84d45dcb6a7b4d5202b050b5289cc4 -Author: Daniel-Constantin Mierla -Date: Sun Aug 20 08:00:41 2017 +0200 +commit 55d115e255b1d87121922f689b93870b84e1b2b4 +Author: Henning Westerholt +Date: Sun Jun 10 22:39:35 2018 +0200 - kex: documentation for core.modules rpc command + core: dns name to IP conversion - actually stop processing in error case -commit 5ead6c080d2a9c3e5e6adc56a717003bef37c9dd -Author: Daniel-Constantin Mierla -Date: Sat Aug 19 07:05:03 2017 +0200 +commit dd4dc5361ae97b743c202360723df3cacac3259f +Author: Henning Westerholt +Date: Sat Jun 9 00:58:54 2018 +0200 - core: digest parser - converted old log macros + core: udp server - remove deactivated functionality from 2008, not valid anymore - - coherent indentation + Remove decaticated functionality related zero terminated SIP messages in UPD server. + 15 years ago this was a bug, but now with binary payloads its not valid anymore. + No change in functionality. -commit 1121ee05e982625e31045416473b00be1caf481c -Author: Daniel-Constantin Mierla -Date: Fri Aug 18 07:24:20 2017 +0200 +commit 1cd6c8da2f006a1e46ab573b4168bf2415ed2f69 +Author: Henning Westerholt +Date: Sat Jun 9 00:49:32 2018 +0200 - core: added rpc command core.modules + core: cleanup dns cache DNS_LU_LST define, unchanged since 2007, no function change - - list the names of loaded modules + Cleanup DNS caching DNS_LU_LST define, unchanged since 2007. The alternative + implementation has been not seen any testing. No change in functionality. -commit 4072b0f9fbc084a4f4640e1b4272b7f8495cd1bb -Author: Daniel-Constantin Mierla -Date: Thu Aug 17 13:42:59 2017 +0200 +commit 3741a8abb4b867a6a758be11d27b3d6906978b18 +Author: Henning Westerholt +Date: Sat Jun 9 00:09:14 2018 +0200 - core: parser - use case insensitive comparison to get header by name - - - same for next sibling header - - GH #1217 + docs: remove documentation about removed dns related defines as well -commit bf97c8acd67c0151c70da812402d3eef79388f83 -Author: Daniel-Constantin Mierla -Date: Thu Aug 17 13:23:08 2017 +0200 +commit f1bcda4e2e2d37ec2b5556e95b61b03907df6366 +Author: Henning Westerholt +Date: Sat Jun 9 00:06:23 2018 +0200 - pv: small adjustments for {s.corehash} transformation + core: cleanup dns cache defines, no function change - - use standard uint32_t type and internal function to convert to str + cleanup core dns cache defines, they were set since 2006 for a bit additional debugging, + no change in functionality -commit 38c85975e3b4a9f1dc548f7bda1f54726fba3d44 -Merge: 468008610 74563696f -Author: Daniel-Constantin Mierla -Date: Thu Aug 17 12:46:01 2017 +0200 +commit e963851b5391e0f6267788d1bdaf5be576ca7466 +Author: Henning Westerholt +Date: Fri Jun 8 23:52:29 2018 +0200 - Merge pull request #1218 from kamailio/corehash_trans + core: cleanup resolver defines, no function change - pv: add string corehash transform + cleanup core resolver defines, they were set since 2007 for a bit additional debugging, + no change in functionality -commit 4680086105bb41f03a1180be03d7acce113d465a -Author: Olle E. Johansson -Date: Thu Aug 17 10:00:42 2017 +0200 - - http_client Move some logging to debug to avoid annoying messages - -commit 534546e6514056eb5d7f2b46d9c6acf7cb4931ce -Author: Kamailio Dev -Date: Thu Aug 17 07:31:41 2017 +0200 +commit 861c52ca6a9ca3bd6be5e89df92c1f65b46002f4 +Author: Edwin Fine +Date: Fri Jun 8 14:45:12 2018 -0400 - modules: readme files regenerated - dialog ... [skip ci] + packaging: Fix typo in kamailio.spec + + There is a number of occurrences of `%bcond_with|without rebbitmq`. Since the condition to include the `rabbitmq` package (line 633) is `%if %{with rabbitmq}`, this conditional statement would not have the intended effect. If this was not a deliberate typo for some reason, this commit fixes the issue by changing all `%bcond_with|without` occurrences of `rebbitmq` to `rabbitmq`. -commit afc678e9db29f3cf83aff0f24d7affdae5be6cba -Author: Daniel-Constantin Mierla -Date: Thu Aug 17 07:28:07 2017 +0200 +commit 4a55a2b40b91f282d7fd8f0e3c3ae22bcf56d9dc +Author: Henning Westerholt +Date: Fri Jun 8 21:16:51 2018 +0200 - dialog: documentation for dlg_set_ruri() + core: make dns name to IP conversion more robust for IPv4 and IPv6 -commit 87ca7a1b078f0c8d85b0d7e1cc43773cd238037e -Author: Daniel-Constantin Mierla -Date: Thu Aug 17 07:17:49 2017 +0200 +commit 6a478a2432e04652f2f5ef5919101dd166d9ee2d +Author: Henning Westerholt +Date: Fri Jun 8 18:09:08 2018 +0200 - dialog: added dlg_set_ruri() - - - sets the r-uri of requests within dialog with the correspondong contact - address stored in dialog structure - - convenient function as alternative to checking direction and then - setting by assigning to $ru from $dlg(*contact) + core: bug fix in function reference for full preprocessor defines output -commit 74563696fa064b7cbe169e9af1020ba840c8b8ab -Author: lazedo -Date: Thu Aug 17 03:04:20 2017 +0100 +commit 94e7a4d862909886ef9ed9426532eee32f0262d9 +Author: Kamailio Dev +Date: Fri Jun 8 11:01:48 2018 +0200 - pv: add string corehash transform - - optional size parameter to return the slot if supplied - example $(var(myvar){s.corehash}) returns the hash - $(var(myvar){s.corehash, 32}) returns the slot + modules: readme files regenerated - sdpops ... [skip ci] -commit 059884554528731261d600adc9bc2f1a75583bfb +commit f34654a2a0e7127ac7a2094cb8bc261e4a9c4e50 Author: Daniel-Constantin Mierla -Date: Wed Aug 16 12:33:51 2017 +0200 +Date: Fri Jun 8 10:53:03 2018 +0200 - core: updated mailing list address in CONTRIBUTING.md + sdpops: docs - note that second param of ki_sdp_get_line_startswith() can have pv -commit 893c68d5cbbab35d842aa7275c57d692770e0fff +commit 8ba8dcfe425afcbca32a82e0b1fc46124f86f603 Author: Daniel-Constantin Mierla -Date: Wed Aug 16 09:15:03 2017 +0200 +Date: Fri Jun 8 10:51:09 2018 +0200 - pv: implemented {uri.scheme} transformation + sdpops: allow vars in second parameter for sdp_get_line_startswith() - - GH #592 + - export sdp_get_line_startswith() to KSR kemi framework -commit 219ddbb54bb787a8f0673014c16e749eef40bdf4 +commit 4106769466e842f971d8aeab38cb2343cb90efdf Author: Daniel-Constantin Mierla -Date: Tue Aug 15 15:47:49 2017 +0200 +Date: Fri Jun 8 10:48:59 2018 +0200 - uac: use kam_rand() instead of rand() - - - do kam_srand() when module is initialized + core: helper fixup function for none and spve parameters -commit 539a6eefa469a4394f4e6dfbe6a9affba3e2f440 -Author: Henning Westerholt -Date: Tue Aug 15 15:28:02 2017 +0200 +commit 7e5e5ca4ccf21e2644ed8e82bc5225f4432b1247 +Author: Daniel-Constantin Mierla +Date: Fri Jun 8 09:19:46 2018 +0200 - app_sqlang: - - - fix a few copy and paste errors in the docs (probably from app_jsdt) - - regenerate README + topos: docs - added section ids to parameters -commit f3f3ed2b343fc2f33f14e903f927a138e3c3adb4 +commit caefbb2c97eed2313d5cca95fa7a510a96237377 Author: Kamailio Dev -Date: Tue Aug 15 15:16:24 2017 +0200 +Date: Thu Jun 7 17:31:39 2018 +0200 - modules: readme files regenerated - tls ... [skip ci] + modules: readme files regenerated - cfgt ... [skip ci] -commit cb7810c939da9c8f4385b530539487528ac8705d -Author: Daniel-Constantin Mierla -Date: Tue Aug 15 15:09:37 2017 +0200 +commit 7d21723205ad02374364c3f0143b618d1a649d4d +Author: Victor Seva +Date: Thu Jun 7 17:10:20 2018 +0200 - tls: docs for event_route[tls:connection-out] and event_callback param + cfgt: documment that pv module has to be loaded in order to work -commit 5a889756a5386d6df86bd2ae11ac68595200fd65 -Author: Daniel-Constantin Mierla -Date: Tue Aug 15 14:56:40 2017 +0200 +commit 92f8fdabcffd84e315d749bae8ded3490f8de014 +Author: Victor Seva +Date: Thu Jun 7 15:31:14 2018 +0200 - tls: completed the code for event_route[tls:connection-out] + core: unset routename when default_routename is set - - event route executed after the connect to destination is done - - using drop() in the event route marks connection for no-send data, so - nothing is sent over it, being also closed - - added also support for kemi interface - - new mod param: event_callback - specify the name of kemi callback - function + fix #1536 -commit 3214be4589471cd2fff9a9a4b763fc05cdb71c6d +commit 513a176394247a3378ee218bf9df611da7296061 Author: Daniel-Constantin Mierla -Date: Tue Aug 15 14:48:16 2017 +0200 +Date: Thu Jun 7 13:05:04 2018 +0200 - core: tcp - new flag F_CONN_NOSEND (mark connection for no-send data) + dispatcher: print runtime details in rpc command output - - if flag set, the data is not sent over the connection - - can be set by drop() inside event_route[tls:connection-out] + - contains dialog loads per destination if the call load algorithm is enabled -commit b44fc5293e343077db0bdea27501fd3aec3dfa11 +commit 20eb9951a574a5ef3163d975bd0c360471d09180 +Merge: f5792d1c6 8a274cb47 Author: Daniel-Constantin Mierla -Date: Tue Aug 15 14:46:48 2017 +0200 +Date: Thu Jun 7 12:44:53 2018 +0200 - core: forward - coherent indentation and whitespacing + Merge pull request #1555 from sergey-safarov/my-master + + pkg/kamailio/centos: Removed not updated packaging files -commit b3b95b5b701a7f7ebf9532a172cd31b6dca699ff +commit f5792d1c61702526f6382d4250c16ba0deacff6f Author: Daniel-Constantin Mierla -Date: Tue Aug 15 09:50:35 2017 +0200 +Date: Thu Jun 7 12:40:13 2018 +0200 - topos: use INVITE transaction record to route BYE if dlg has no B-contact + core: new rpc command - core.ppdefines_full + + - print preprocess defines with their details -commit f8c6ece395a9601499c01f368c645d1d441a1789 +commit c33cb7afd02b1ee92e462574ba54b671895ee8c0 Author: Daniel-Constantin Mierla -Date: Tue Aug 15 09:01:50 2017 +0200 +Date: Thu Jun 7 11:58:08 2018 +0200 - rls: removed unused variable + core: use a structure for preprocessor defines - - reported by Juha Heinanen + - used to be an array of two str + - store type of define operation in structure -commit 1fe94fe8129649703c92a87ebd402068faa66624 -Author: Victor Seva -Date: Mon Aug 14 23:29:41 2017 +0200 +commit 8a274cb474799428b4ec838da53000fedd16abd8 +Author: Sergey Safarov +Date: Thu Jun 7 09:51:19 2018 +0000 - pkg/kamailio/deb: version set to 5.1.0-dev6 + pkg/kamailio/centos: Removed not updated packaging files -commit bcff1c15521b6841b747b6992e6ebb9850b7dd02 +commit 586566c19a85a611d389062ca1f1de271e1891c3 Author: Daniel-Constantin Mierla -Date: Mon Aug 14 14:51:09 2017 +0200 +Date: Thu Jun 7 10:34:42 2018 +0200 - topos: added few debug messages when managing headers and ruri + nsq: removed obsolete json is_error() macro -commit ad7e226dfc9fd3398a891534cf67f0a02d64bf4d +commit 7d3766614832ef22433e36ef0791fa41796829a2 Author: Daniel-Constantin Mierla -Date: Mon Aug 14 14:24:22 2017 +0200 +Date: Thu Jun 7 10:33:26 2018 +0200 - topos_redis: load INVITE branch record when dealing with PRACK + kazoo: replaced obsolete json is_error() macro -commit 9dc27fa6615dc22050448ce592f63e9533afaaf2 +commit c087b1d1dd06a1fd417998fe0a51dedcfe02e8c6 Author: Daniel-Constantin Mierla -Date: Mon Aug 14 14:05:30 2017 +0200 +Date: Thu Jun 7 10:10:36 2018 +0200 - topos_redis: load contact fileds for branch and insert INVITE extra branch + core: pv - default number of buffer slots set to 40 - - for INVITE store branch value on a key with call-id and to-tag when - the reply is received + - it was 10 + - allow handling more chained evaluations in large strings -commit 874a7d50779a582d1de809a3d57b4a07c3a1fbd9 +commit 6eedbab99a500d71a1a66cbf8a1a94ae88f47b05 Author: Daniel-Constantin Mierla -Date: Mon Aug 14 13:26:22 2017 +0200 +Date: Thu Jun 7 09:26:11 2018 +0200 + + topos: use method_id to match KDMQ + +commit d746967485b17d2530418e059da0cd31f10d9396 +Author: Kamailio Dev +Date: Wed Jun 6 18:16:40 2018 +0200 - topos: increased defined value for tps nr keys + modules: readme files regenerated - dispatcher ... [skip ci] -commit fbf8f68ed1f8df9af7ed60cb14d379e571550a03 +commit a9c89c4b437cf9a7bda2233f050bde702704c82e Author: Daniel-Constantin Mierla -Date: Mon Aug 14 13:15:52 2017 +0200 +Date: Wed Jun 6 18:01:56 2018 +0200 - topos: load contact fields for transaction record + dispatcher: docs for ds_attrs_none param -commit 5f4f5102219ba2f3de820f795f8e1e9af64d5bf9 +commit d1cb26446742d1734eb8aac1b970e8128a1db041 Author: Daniel-Constantin Mierla -Date: Mon Aug 14 09:10:26 2017 +0200 +Date: Wed Jun 6 17:56:46 2018 +0200 - presence: pass pointer to subs_t for pres_update_status() + dispatcher: new param ds_attrs_none - - passing content of a large structure may be inneficient at runtime + - if set to 1, "none=yes" is set in the attrs for those records that + have no attrs value, to ensure that corresponding avps for records don't + get mixed up -commit 30f1c139a144fd321f4c91928f2976a42d791733 -Author: Kamailio Dev -Date: Mon Aug 14 08:46:55 2017 +0200 +commit f3f14c6d85a7055c3a729ec46b83ff2a179ac397 +Author: Daniel-Constantin Mierla +Date: Wed Jun 6 14:34:56 2018 +0200 - modules: readme files regenerated - drouting ... [skip ci] + dispatcher: safety check for null value of attrs field in database -commit 361162ba1c5209890f2a8f1c60887a0aa7ed9783 -Merge: 00b2d6a17 9875e64a9 +commit f94770840029c1c73ab129f4b71fcb0cf146d808 Author: Daniel-Constantin Mierla -Date: Mon Aug 14 08:45:24 2017 +0200 +Date: Wed Jun 6 10:24:18 2018 +0200 - Merge pull request #1212 from gbour/drouting-w-keepalive + tm: free new tm cell in case of error if it was not referenced - drouting: pull out unavailable destinations for sort_order 1 and 2 + - part of t_uac_prepare(), reported by GH #1554 -commit 00b2d6a170848e9e354252f9f1c3d049619efcd6 -Merge: 97d8ebc96 363cc61d6 -Author: Daniel-Constantin Mierla -Date: Mon Aug 14 08:43:35 2017 +0200 +commit 226a6aa06fc46ead24e262afd382af64452ae080 +Author: Victor Seva +Date: Wed Jun 6 09:44:00 2018 +0200 - Merge pull request #1214 from sergey-safarov/spec_update10 - - pkg/kamailio/centos/7: Update CentOS spec file + examples: remove execute mode from text file -commit 363cc61d63fac8e4a9bcf4f7994de30f6a30b73d -Author: Sergey Safarov -Date: Sun Aug 13 12:05:34 2017 -0400 +commit 657d2699784d9fc35f66382f9f137f0b80301018 +Author: Daniel-Constantin Mierla +Date: Wed Jun 6 09:02:15 2018 +0200 - pkg/kamailio/centos/7: Update CentOS spec file + core: kemi - is_method_in() support for kdmq, get, post, put, delete -commit 97d8ebc966aba71efb3a964e71b00736db51401b +commit e9be20215b8e995bac698b54b7960cdaa9b60798 Author: Daniel-Constantin Mierla -Date: Sun Aug 13 11:07:42 2017 +0200 +Date: Wed Jun 6 08:10:15 2018 +0200 + + topos: fix condition to match KDMQ method - sipcapture: safety checks for values inside w_float2int() +commit f8acb422cc909227ec4bd40c324d25c9a1cee1c6 +Author: Kamailio Dev +Date: Tue Jun 5 17:16:45 2018 +0200 + + modules: readme files regenerated - dispatcher ... [skip ci] -commit 3d2359b5a349efe4d6571ec0953e5c4aae54a165 +commit 3b72de3fb66bc7162771887502b420b3ce0179fb +Merge: aec8c5f8d 1d3040028 Author: Daniel-Constantin Mierla -Date: Sat Aug 12 08:59:06 2017 +0200 +Date: Tue Jun 5 17:08:33 2018 +0200 - rls: replace sprintf with safer snprintf + Merge pull request #1533 from jchavanton/congestion_lb - - compact printing headers in 200ok function by doing it once in a - snprintf, instead of combination of many sprintf and strncpy + dispatcher: congestion detection load balancing -commit bb536c3dae01865c42e556989e8aca5be85b20fe -Author: Daniel-Constantin Mierla -Date: Sat Aug 12 08:48:21 2017 +0200 +commit aec8c5f8d2b06fb96621aa881652d19a266d4e3d +Author: Kamailio Dev +Date: Tue Jun 5 16:46:41 2018 +0200 - rls: proper handling of return code for parse from/to uri + modules: readme files regenerated - rtpengine ... [skip ci] -commit 5be6d11ecd99670cf85cece3a534e10f3f015c52 +commit 9383174b32b6b49dd9f0757450abadb45690515f Author: Daniel-Constantin Mierla -Date: Sat Aug 12 08:27:15 2017 +0200 +Date: Tue Jun 5 16:34:48 2018 +0200 - topos_redis: removed unused variables + rtpengine: docs - updated some of rtpproxy occurences to rtpengine -commit 92daa0bb98e9d7c997e9f6ca4994d48134e07acc -Author: Daniel-Constantin Mierla -Date: Sat Aug 12 08:26:55 2017 +0200 +commit 97fa06d85ebb4a512ae6d6a35ab0e8189a397226 +Merge: ae22ba7eb 0d0fb3aae +Author: ng-voice GmbH +Date: Tue Jun 5 06:33:46 2018 +0200 - evapi: removed unused variable + Merge pull request #1528 from omnicate/master + + ims_diameter_server: Allow binary data transcoding -commit 41f6d98cc19e514de6d0aea05cc1d17be3d95065 +commit ae22ba7eb41259f9def7e1e0e30b755214e26234 Author: Daniel-Constantin Mierla -Date: Sat Aug 12 08:26:22 2017 +0200 +Date: Mon Jun 4 11:27:08 2018 +0200 - acc_diameter: removed unused variable + core: msg translator - skip last ; from xavp serialized in via params -commit 85def4c200e216dce5d3d8e53461a69ab408fa3c -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 16:11:19 2017 +0200 +commit 2c6dae75628f5e426e81e71c203765f9c4bb5633 +Author: Kamailio Dev +Date: Mon Jun 4 08:31:55 2018 +0200 - core: tcp - print str error in debug message if faling to write to connection + modules: readme files regenerated - corex ... [skip ci] -commit 125db2c3650843aae2927a4625e3d42a755fa309 -Merge: 9df27ff7a 4e760394b -Author: ng-voice GmbH -Date: Fri Aug 11 15:54:28 2017 +0200 +commit e19f6f23f942ffbd940cbd194c405cae45dd38e0 +Author: Daniel-Constantin Mierla +Date: Sun Jun 3 10:54:50 2018 +0200 - Merge pull request #1213 from christoph-v/ims_get_body_coredump - - ims_auth: fixed rare core dump, due to null ptr check + corex: send_data() and sendx() exported to kemi framework -commit 9df27ff7afbf1cf8ee7b3afd1741355e9f6f866e +commit f5422833fbb42149d3a47450d863f0e5e1d29c6b Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:38:39 2017 +0200 +Date: Sun Jun 3 10:46:54 2018 +0200 - tm: updated for the new shm global locking functions + corex: docs - send() updated to send_udp() + + - example for send_tcp() -commit 1ec6964249dc5db4bd69c612b626466cae896c41 +commit 3f2e41aff06f7e158e0a1547f1413eaca3f4b9c6 Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:37:33 2017 +0200 +Date: Sun Jun 3 10:42:55 2018 +0200 - core: main.c - updates for shm unlock in shutdown cleanup + corex: send() renamed to send_udp() - - test if shm was initialized before global unlock + - reflect better that it uses UDP always, similar to send_tcp() -commit 13a1e6c23576ab3797af6fefde6fcbbd2d0b83e3 +commit 706a72f14362d4bfb609ec45856de6b4339c9563 Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:31:40 2017 +0200 +Date: Sun Jun 3 10:37:58 2018 +0200 - core: mem/tlsf_malloc - shared memory locking implemented internally + corex: documentation for sendx() function -commit bccdcf3c456ef450399be337131fcf33e97eb57a +commit cf11f16c605ae83af5f1683a066db4340012b0c6 Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:26:25 2017 +0200 +Date: Sun Jun 3 10:33:21 2018 +0200 - core: mem/q_malloc - shared memory locking implemented internally + corex: added sendx(uri, socket, data) + + - send data to destination uri by using local socket -commit fcff3426798a925dffd32b75569b9d86e0f131c3 +commit b8ab2db0480cf584a1e838aea3740547441bf639 Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:24:29 2017 +0200 +Date: Sat Jun 2 16:22:58 2018 +0200 - core: mem/f_malloc - shared memory locking implemented internally + core: parse methods recognize more by id -commit 13bdd0e15883a07d396210b8a372c1b51786f2a9 +commit 4fe95ab7db7f3fca83578bb7e2b2f478828793d3 Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:21:59 2017 +0200 +Date: Sat Jun 2 12:48:24 2018 +0200 - core: mem/shm - shared memory api updated to allow locking by manager + core: parser - assign ids for more methods - - instead of generic global lock, allow memory manager to handle locking - for shared memory + - KDMQ and HTTP method types GET, POST, PUT and DELETE -commit cc9033be4cbbd5330febecaec3c5718703c0267c -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 15:10:38 2017 +0200 +commit ad68e402ece8089f133c10de6ce319f9e28c0692 +Author: Henning Westerholt +Date: Sun Jun 3 20:59:32 2018 +0200 - tm: use standard shm malloc to store to-tag set + core: improve header safe guards for Via handling -commit 4e760394b63ab0bf3ca6deb1d527c96f800a834d -Author: Valentin Christoph -Date: Fri Aug 11 14:43:36 2017 +0200 +commit 07f710bdbbf99ff2bc75218b6d972481eaaba1e4 +Author: Henning Westerholt +Date: Sun Jun 3 19:01:26 2018 +0200 - ims_auth: fixed rare core dump, due to null ptr check - - The ims_auth module reads the value from the Content-Length header - of a REGISTER request, before decoding the message body. - Due to a missing null pointer check, reading this value leads - to core dump in case the Content-Length header is missing. + core: small formatting fix - if has no brackets -commit 751c181fe4477861e3aa300b78e115b8642d12f4 -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 12:07:27 2017 +0200 +commit e7ee14f0d168c36c62cd6bef58334db1f0871470 +Author: Henning Westerholt +Date: Fri Jun 1 22:46:37 2018 +0200 - core: new parameter - verbose_startup - - - control if printing routing tree and udp probing buffer debug messages - should be printed at startup - - default 0 (don't print); set to 1 to get those debug messages + topos: fix warning about uninitialized variable -commit fe441c4561a8be852c2baae6568e48ef8203210d -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 12:03:54 2017 +0200 +commit 5aa636bc94728db1284ac90e922d0a222d20d7c5 +Author: Henning Westerholt +Date: Fri Jun 1 22:46:23 2018 +0200 - core: mem - fix printing shm memory manager name + ss7ops: fix warning about uninitialized variable -commit 401ec2f71fd237b3974114803cb61030172240ae -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 11:36:06 2017 +0200 +commit 42265d011f40f4f8ec90799489db120b156ef6e1 +Author: Henning Westerholt +Date: Fri Jun 1 22:46:03 2018 +0200 - core: mem - initial framework to support many shm pools + sipt: fix warning about uninitialized variable -commit eb277e854d94eaca3a29d0856e9c903d04df0fd5 -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 11:06:24 2017 +0200 +commit b07d4d0e5c9c5db07d4d0806e6a1540b73b6c333 +Author: Henning Westerholt +Date: Fri Jun 1 22:45:26 2018 +0200 - core: mem - extend pkg/shm init function for latest api fields + cfgutils: fix warning about uninitialized variable -commit 2415416df6bd4c599c7fde57fbaa541e2e37f9c7 +commit 03698a4b2ec49896c08a3989403d7e33ff9fb844 Author: Daniel-Constantin Mierla -Date: Fri Aug 11 10:21:08 2017 +0200 +Date: Fri Jun 1 18:48:27 2018 +0200 - sms: avoid overflowing ending 0 by sprintf() + pv: debug message with intermediate message to evaluate by pv_evalx() -commit 617e8c40608c5e2ac97dd4b39d9ab739a779b9bb -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 09:46:29 2017 +0200 +commit 02aa489232a4683e21a918f5621cd7ccaf4ed981 +Author: Kamailio Dev +Date: Fri Jun 1 10:17:07 2018 +0200 - acc_diameter: few updates to make cleaner avp handling + modules: readme files regenerated - sipt ... [skip ci] -commit 26c94b32baec05a064beca7064e2f44eff9ca3ef -Author: Daniel-Constantin Mierla -Date: Fri Aug 11 09:14:27 2017 +0200 +commit 53a52f9b2caa1fd04e30747ce46f8a22834991a0 +Author: valentin +Date: Tue Mar 20 16:15:57 2018 +0100 - topos: per contact and rr specific processing for receiving PRACK + ims_isc: initial fix of issue #1168 - - records are taken from INVITE branch record + Function isc_match_filter() got a new local variable firstflag in + order to handle the case where a FAILURE_ROUTE callback is + received before the first AS has been contacted. + The firstflag is also forwarded to function isc_forward() as + parameter. -commit 9875e64a95da6186ab616f1c560fc245916ac517 -Author: Guillaume Bour -Date: Thu Aug 10 21:35:54 2017 +0200 +commit 21b9694d4eb18e146692dedc2a2337216d58b5c2 +Author: sergey-vb +Date: Fri Jun 1 10:08:42 2018 +0200 - drouting: pull out unavailable destinations for sort_order 1 and 2 + sipt: added functions to work with forwarding info - - destinations are monitored with keepalive module (when 'enable_keepalive' option is set) - - it was already supported for sort_order 0 in a previous commit + - new variables as part of $sipt(...) -commit a3e8003274ded1420d2af677246a48ef5c743a3c +commit ca2b8117d20ba507f698990cf1bbbd908882ea71 +Merge: 618eb74ae 59c7bf4f4 Author: Daniel-Constantin Mierla -Date: Thu Aug 10 14:05:13 2017 +0200 +Date: Fri Jun 1 10:00:38 2018 +0200 - core: store advertise addr for new sockets created from interface name + Merge pull request #1552 from snen/dlg_cseq_nullpointer_fix - - reported by GH #1209 + dialog: check CSeq careful with track_cseq_updates -commit 10be086500d37d19674235b04cb302a0f34983fc -Author: Kamailio Dev -Date: Thu Aug 10 13:01:57 2017 +0200 +commit 618eb74ae930c43353e53314d432de789a236168 +Author: Daniel-Constantin Mierla +Date: Fri Jun 1 09:50:28 2018 +0200 - modules: readme files regenerated - carrierroute ... [skip ci] + app_ruby: exported kemi KSR::X.modf(...) -commit bc3666ba9ff46fbaafa97483d5c9ee2f574a2d2c -Merge: 4e8eeaf99 5328dc6d5 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 13:00:57 2017 +0200 +commit 59c7bf4f43a8cd5dcb0555835a064d88679956c5 +Author: Dmitri Savolainen +Date: Fri Jun 1 10:38:40 2018 +0300 - Merge pull request #1211 from dunst0/fix/carrierroute-README + dialog: check CSeq careful with track_cseq_updates - carrierroute: update to readme to precise that decsavp need to be an avp + to avoid null pointer access for malformed messages -commit 4e8eeaf99dd024182d860f59207ae47c609093ca -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:55:11 2017 +0200 +commit 1f2dbe7d0f21dbe405787d32e48e8a59583ab679 +Author: Kamailio Dev +Date: Thu May 31 12:46:39 2018 +0200 - Makefile.defs: version set to 5.1.0-dev6 + modules: readme files regenerated - app_ruby ... [skip ci] -commit e0ff472acfbae9ad1077a3dc6f2309ea01a8fdf0 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:52:58 2017 +0200 +commit ba26117dc22d29913dcf48a15c097829b3892a6f +Author: Henning Westerholt +Date: Thu May 31 12:35:07 2018 +0200 - pua_dialoginfo: goto error in case of failures inside build_dialoginfo() + app_ruby: small spelling fix in docs -commit c50e80d19dc9f6099e03db973be7e66642f70ded -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:36:38 2017 +0200 +commit a557e628ac9d06488c0818da4e94d09ecd93170b +Author: Kamailio Dev +Date: Thu May 31 09:46:42 2018 +0200 - uid_auth_db: use reallocxf() to handle realloc failure + modules: readme files regenerated - app_ruby ... [skip ci] -commit 9b2229471a4e7b01b88a31ef9869c1ead706d5a7 +commit f9c7c127acf7320356e978eb13821b5e0a89f30d Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:36:22 2017 +0200 +Date: Thu May 31 09:40:11 2018 +0200 - rls: use reallocxf() to handle realloc failure + app_ruby: docs - added to example how to get value for pv -commit 6f6bff7aae8192d1715c501708d76721779326d0 +commit c173ab860670cbc03cb8cd3027e033ff67b02a45 Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:35:43 2017 +0200 +Date: Thu May 31 08:24:44 2018 +0200 - http_async_client: use reallocxf() to handle realloc failure + app_ruby: implemented KSR::PV kemi exports -commit 8ffd7473d46e5229cde1ab7623c3fa5fb1c6cce2 +commit 0a14914fc1f98c18b9b75f66fe2e71f15147c9bf Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:15:47 2017 +0200 +Date: Wed May 30 20:17:11 2018 +0200 - rtpproxy: use reallocxf() to handle realloc failure + carrierroute: rename boolean type conflicting with clang sdtbool + + In file included from carrierroute.c:51: + ./cr_db.h:92:2: error: expected identifier + false = 0, + ^ + /usr/lib/clang/9.1.0/include/stdbool.h:33:15: note: expanded from + macro 'false' + #define false 0 -commit 4a58b48876b829756c2bb6e483feb558d7fcfabb -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:15:36 2017 +0200 +commit acdace7c846ce68a990a2b201d93caad878a03e5 +Author: Kamailio Dev +Date: Wed May 30 18:31:35 2018 +0200 - rtpengine: use reallocxf() to handle realloc failure + modules: readme files regenerated - app_ruby ... [skip ci] -commit 46d1799fa37f12bd453c110b5e2c48055a03cd91 +commit 5e13f520a968f02224bf776268f1ebbceea8136f Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:15:23 2017 +0200 +Date: Wed May 30 18:24:45 2018 +0200 - db_text: use reallocxf() to handle realloc failure + app_ruby: docs - added note about use of uppercases for KEMI KSR submodules -commit 20012fa12f9db6b4c51bdc4f3e6969295c315cd5 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:15:09 2017 +0200 +commit fdc559303df4de8b47b3802473f0613c2d8aef1d +Author: Victor Seva +Date: Wed May 30 18:19:28 2018 +0200 - db_sqlite: use reallocxf() to handle realloc failure + pkg/kamailio/deb: version 5.2.0~dev6 -commit 21e9d2c77264ebae6f7349fe97ef21e85298697f +commit 7ff8d4284f20763e8e47f9b24e4604867a242e4a Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:14:18 2017 +0200 +Date: Wed May 30 18:04:44 2018 +0200 - clt: proper handling of ctl_realloc() failure + topos: skip handling local DMQ messages -commit 1486a47f018eb322957cc9e481e876536852a3ad +commit 1473e85da090083caa8ca880855b3ce948f147de Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:13:57 2017 +0200 +Date: Wed May 30 08:48:47 2018 +0200 - cnxcc: use reallocxf() to handle realloc failure + app_ruby: try to detect ruby lib version -commit 810f4196ab4ad0f0c72cbd31d8b54a82f4ddc9a1 +commit 18d8d1e28b1065bd3a367b04324fcec882a12125 Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:13:36 2017 +0200 +Date: Wed May 30 08:27:21 2018 +0200 - app_python: use reallocxf() to handle realloc failure + Makefile.defs: version set to 5.2.0-dev6 -commit 76ef8d98051971c4c46afe598afd9203560b48d6 +commit 3fbb0af0c4b3d17efe5cd2f7b44f7100f3393bba Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:13:18 2017 +0200 +Date: Wed May 30 08:26:15 2018 +0200 - app_lua: use reallocxf() to handle realloc failure + Makefile.groups: added group for app_ruby module -commit 27b6801ba4f6bffa80c52ad6edf1c8e5841e403e +commit 88b8ef1ec2e3affed2e4d362a5f352879f40dd14 Author: Daniel-Constantin Mierla -Date: Thu Aug 10 12:12:31 2017 +0200 +Date: Wed May 30 08:19:54 2018 +0200 - app_java: use reallocxf() to handle realloc failure + app_ruby: initial import of embedded ruby interpreter module + + - allow execution of ruby scripts using kemi exports -commit 027728ef16dd57383fe9ed62dff6143b7d464a98 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 11:50:29 2017 +0200 +commit f1cb109531bec2039cc9fab5a6314ce357225111 +Author: Victor Seva +Date: Wed May 30 13:41:52 2018 +0200 - lib/ims: use reallocxf() to cope properly with realloc failure + pkg/kamailio/deb: add support for Ubuntu bionic -commit 444894cb9a26ba2a33c5a49e6507ac9a3e02acf8 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 11:49:37 2017 +0200 +commit be82892a68342287d37de90ddb74c1f66a37e28f +Author: Olle E. Johansson +Date: Wed May 30 12:48:26 2018 +0200 - core: mem - avoid free(0) when realloc(0, size) fails + db_cluster remove old svn ID tags -commit e02990b561e306507a56b1557b44b6e00379ca45 +commit f854f2c27bee1b1e4f43565ff1865b88c27387c9 Author: Daniel-Constantin Mierla -Date: Thu Aug 10 11:48:50 2017 +0200 - - xmlrpc: use reallocxf() to free old pointer in case of failure - -commit 5328dc6d511a57ef47600f2724813124e082e53e -Author: Rick Barenthin -Date: Thu Aug 10 11:31:30 2017 +0200 +Date: Tue May 29 22:49:42 2018 +0200 - carrierroute: update to readme to precise that decsavp need to be an avp + core: kemi - more log-level message shortcut functions -commit 49217fb14e7cc5794c8a0a2774c33337c33438ab +commit 616b68904e0741ebcdb70e3c7f66b3b6d1254a8d Author: Daniel-Constantin Mierla -Date: Thu Aug 10 11:19:19 2017 +0200 +Date: Tue May 29 13:39:04 2018 +0200 - carrierroute: safety checks inside avp_name_fixup - - - reported by GH #1210 + app_jsdt: exported KSR.pv.getw(...) -commit 2a80448b07b39dece0770bd04014a12e2d0390d8 +commit 7e08fc8d2b74657d6e6171effbab2770482d693e Author: Daniel-Constantin Mierla -Date: Thu Aug 10 10:55:07 2017 +0200 +Date: Tue May 29 13:29:36 2018 +0200 - xprint: use pkg_reallocxf() to ensure old pointer is freed in case of failure + stun: catch udp ping 0000 when trying to parse stun headers - - fix also potential free of null + - avoid useless debug message + - info message made debug if the size of received packet is too small + for a stun header -commit 7bf71edc62b26a4812b19f13f5c01f980c8e55b3 +commit 0a9ebbbdfe0cd4c137338adbacf5c5890222708a Author: Daniel-Constantin Mierla -Date: Thu Aug 10 10:39:36 2017 +0200 +Date: Mon May 28 15:33:21 2018 +0200 - tm: relocated the crit log when branch was not set for reply transaction + lib/srdb1: increased the safety check for max db url to 1023 - - added after the safety check on not accessing invalid branch indexed - structure + - was 255, too small for large connection strings needed for no-sql + - reported by GH #1545 -commit d5fa8ec41292e0cc1aaf3454fde6a251eff07fed +commit 80e9988170ff678e26c916c18211f76884c02c0e Author: Kamailio Dev -Date: Thu Aug 10 09:16:28 2017 +0200 +Date: Mon May 28 08:01:55 2018 +0200 - modules: readme files regenerated - kex ... [skip ci] + modules: readme files regenerated - lcr ... [skip ci] -commit c06b1890a59fe6998fdef8d26def3568816ab8d7 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 09:08:13 2017 +0200 +commit 1d1047b8da930d5091704c25197df1b289d13b85 +Merge: 93932a4ff 7e97e8773 +Author: juha-h +Date: Mon May 28 08:47:14 2018 +0300 - kex: documentation for rpc command core.ppdefines + Merge pull request #1546 from cruzccl/lcr-rule_id-avp + + lcr: export rule_id_avp with matching rule id -commit 3324b33c7eb6036a984666e4294323f2cb015032 -Author: Daniel-Constantin Mierla -Date: Thu Aug 10 09:04:29 2017 +0200 +commit 7e97e87738f15017c732f74230c79c77cffca60f +Author: Carlos Cruz +Date: Fri May 25 18:34:18 2018 +0200 - core: added rpc command core.ppdefines - - - list preprocessor defines enabled in config + lcr: export rule_id_avp with matching rule id -commit 3469156e29565c03ea4a8e8bafe746eec06e3a83 +commit 93932a4ff18760d8fc8c59bd08984fd00cfd7759 Author: Daniel-Constantin Mierla -Date: Wed Aug 9 19:23:41 2017 +0200 +Date: Sun May 27 10:56:00 2018 +0200 - Makefile.groups: added acc_diameter to extra group + rls: allocate size for normalized uri for cloning buffer + + - it can be longer than pres uri, when proto prefix needs to be added -commit d05e4bffa921cb7daac24eda2ff7ddb09cde942d +commit b035558ec76a68ee17b612adb9dce116ed89c48c Author: Daniel-Constantin Mierla -Date: Wed Aug 9 15:28:59 2017 +0200 +Date: Fri May 25 12:09:32 2018 +0200 - acc_radius: coherent indentation and whitespacing + app_python3: fix for executing kemi functions with 4 or more params + + - more combinations for 4 params -commit 5cb612b7ff9bba75ec8e48dade06561810a77ccd +commit d86b67bbde300e4aa1be7ea7c5bdb21469ece03c Author: Daniel-Constantin Mierla -Date: Wed Aug 9 15:28:25 2017 +0200 +Date: Fri May 25 12:01:00 2018 +0200 - acc: relocated the code related to diameter accounting to acc_diameter + app_sqlang: fix for executing kemi functions with 4 or more params + + - more combinations for 4 params -commit 560c52cbd4f6f4f934cd907621979ce33a676821 +commit 551e4d372892d1d5c7803c3812d0bd4613efaf36 Author: Daniel-Constantin Mierla -Date: Wed Aug 9 15:27:47 2017 +0200 +Date: Fri May 25 11:57:15 2018 +0200 - acc_diameter: diameter accounting module with code relocated from acc + app_python: fix for executing kemi functions with 4 or more params + + - more combinations for 4 params -commit 60a35d4ea83fc0a6d2a29aa56ff94afc57eff9af +commit 81d517f0a3dcd769dc84ff019c58e248ef7eb466 Author: Daniel-Constantin Mierla -Date: Wed Aug 9 13:38:16 2017 +0200 +Date: Fri May 25 11:49:25 2018 +0200 - acc_radius: removed unused code left when split from acc module + app_jsdt: fix for executing kemi functions with 4 or more params + + - more combinations for 4 params -commit 8eb6e6a01d435955939ceddee82b3ba0a3ee93f8 +commit 52f246fbcc9097f77b6a64d15a4ff74e03577ba8 Author: Daniel-Constantin Mierla -Date: Wed Aug 9 13:37:20 2017 +0200 +Date: Fri May 25 11:41:37 2018 +0200 - acc: removed define for SQL_ACC + app_lua: fix for running kemi functions with 4 or more parameters - - it was enabled for more than 10 years and the module links to - lib/srdb1 anyhow + - added new combinations for 4 params case + - reported by GH #1544 -commit eff1e2c6a2ccceae1ddfc81298cbdcc789fcf6dd +commit 6528c9cbc5a89128d4892f1a526c76747b42448c Author: Daniel-Constantin Mierla -Date: Wed Aug 9 12:34:46 2017 +0200 +Date: Fri May 25 11:34:11 2018 +0200 + + core: kemi - more combinations for function prototypes - misc: removed obsolete folder +commit c2fd44b6101116dd6bfb4c14ef81ea87e5af6f6e +Merge: 61f19592b 2b1e895e1 +Author: ng-voice GmbH +Date: Thu May 24 10:30:22 2018 +0200 + + Merge pull request #1539 from christoph-v/bugfix_trash_expires - - content relocated to its own github repo: kamailio-obsolete + Bugfix trash expires -commit 8deecb1aef4ee33d12ee0da68bf3585162284820 +commit 61f19592b7a252357c444ec36d24650ad51dbe5c Author: Kamailio Dev -Date: Wed Aug 9 09:16:30 2017 +0200 +Date: Thu May 24 10:16:45 2018 +0200 - modules: readme files regenerated - acc ... [skip ci] + modules: readme files regenerated - sanity ... [skip ci] -commit 4a545bacf6517663830ca455b61a12ff38b22fe8 +commit 6ff985605b3fbb6aa350af4c21fc73afb8cf122f Author: Daniel-Constantin Mierla -Date: Wed Aug 9 09:12:50 2017 +0200 +Date: Thu May 24 10:08:17 2018 +0200 - acc: documented acc_request() function + sanity: updated docs to reflect default value for default_checks param + + - reported by GH #1542 -commit 42bdac92d1ad2f58d7c21f98c3b8483e86a39fb8 +commit 62a669f9f4125f88e60b2a1f621442a8ca923c82 +Merge: 2a3ca5942 0f8a879a2 Author: Daniel-Constantin Mierla -Date: Wed Aug 9 08:59:00 2017 +0200 +Date: Thu May 24 08:36:28 2018 +0200 - acc: added acc_request(reason, table) + Merge pull request #1527 from tdimitrov/pcscf_crash - - wrapper around acc_log_request() and acc_db_request(), writting acc - record to log and db backend (if db_url is set) + ims_registrar_pcscf: Update tmp security only if there are sec-agree … -commit 5989ab742685840019dea65c34df7a535d3950b8 -Author: Daniel-Constantin Mierla -Date: Tue Aug 8 21:35:06 2017 +0200 +commit 1d3040028ce84b62cc7a5d5beb82b6c72f02fe82 +Author: Julien Chavanton +Date: Thu Mar 29 23:14:21 2018 +0000 - path: fix offset to set ending 0 for received_format=1 + dispatcher: congestion detection load balancing + + Thanks to Amy Meyers for her help ! -commit 5f5697eac0089e9e2bc72323c6afa839b472ccbd +commit 2a3ca5942291d29de05b14338a36cecbec11f129 Author: Daniel-Constantin Mierla -Date: Tue Aug 8 17:20:33 2017 +0200 +Date: Wed May 23 20:43:48 2018 +0200 - http_async_client: safety check for shm malloc and do cfg_update() + topos_redis: proper length value when comparing to insert INVITE branch -commit 557bbe3042b31b8087d40a41b9d304e731ce06b9 +commit eb2f25ca0810f966d089da3aa1e32e3e98a4ab16 Author: Daniel-Constantin Mierla -Date: Tue Aug 8 17:19:47 2017 +0200 +Date: Wed May 23 20:42:51 2018 +0200 - http_async_client: named addition processes http async worker + tm: set msg for log_prefix before running failure_route - - reflects better the module + - reported by GH #1531 -commit f4fa310479ce824c9fd68a7ef443102c30a0c171 +commit f3109d4dcdc4ef810ccf4a8d17f28f7fce42271c Author: Daniel-Constantin Mierla -Date: Tue Aug 8 17:02:38 2017 +0200 +Date: Wed May 23 18:43:22 2018 +0200 - topos: link sip message attributes before PRACK handling + core: qm malloc - wrapper to print execution file and line for qm_debug_frag() -commit 39a72c3c000aef00a937863a221ecc7245e1c43a -Author: Daniel-Constantin Mierla -Date: Tue Aug 8 14:54:06 2017 +0200 +commit 3334a011f6de4dc7284e2875e0d08158f8859482 +Author: Kamailio Dev +Date: Wed May 23 16:31:59 2018 +0200 - core: mem_safety enabled by default + modules: readme files regenerated - p_usrloc ... [skip ci] -commit b84e680f9ccb7b6f1e2fa917ced3d5d82147d9ea -Author: Daniel-Constantin Mierla -Date: Tue Aug 8 14:21:55 2017 +0200 +commit bec6a75ac664a2c8834339b499f3b4f907312e48 +Merge: 9bdc1eba7 61c96f0cc +Author: Lucian Balaceanu +Date: Wed May 23 17:17:51 2018 +0300 - topos_redis: update the signature for branch record loading function + Merge pull request #1529 from hdikme/mdb_avail_ctl + + p_usrloc: new parameter "mdb_availability_control" has been created. -commit 4c5419d6f9a9a7a7b48ba1269b52d95923582083 -Author: Daniel-Constantin Mierla -Date: Tue Aug 8 14:21:15 2017 +0200 +commit 61c96f0cc8ddac3e0aa71046ec4021a90b629975 +Author: Huseyin Dikme +Date: Tue Mar 27 09:48:43 2018 +0200 - topos: load INVITE transaction record when processing PRACK + p_usrloc: new parameter "mdb_availability_control" has been created. + - The new parameter "mdb_availability_control" overwrites the "write_on_db" parameter based on the availability of master database. -commit e02691ce26f7fae28155bdc26b2e8e00632830e7 -Author: Daniel-Constantin Mierla -Date: Tue Aug 8 12:42:32 2017 +0200 +commit 9bdc1eba76f03cd009d7f04906f13bdb6579f511 +Author: Sergey Safarov +Date: Mon May 21 21:43:31 2018 +0000 - core: mem/sf_malloc - sanitization of the code + tls: Fixed build tls module on Alpine dist -commit 61c4dd2e30b17865fd52905d1bbac8a3cf6734a3 +commit 5a0086fb5d54cf0411180a8426ea49ad440f147a Author: Daniel-Constantin Mierla -Date: Tue Aug 8 12:06:47 2017 +0200 +Date: Tue May 22 20:21:02 2018 +0200 - core: mem/f_malloc - updated log macros + topoh: more verbose debug messages when decoding r-uri -commit 5879db76de1d5e3465d61c9530c7525d90e0fd87 -Author: Daniel-Constantin Mierla -Date: Tue Aug 8 12:01:55 2017 +0200 +commit 2b1e895e1a319b932a449c703a974c6ab8aafc6e +Author: Christoph Valentin +Date: Fri Apr 6 15:29:11 2018 +0200 - core: mem/q_malloc - updated log macros + ims_usrloc_scscf: bugfix Contct is removed when old Contct expires + + in function unlink_contact_from_impu() (in file impurecord.c) an + assignment "=" is used instead of a comparision operator "==". This + leads to mess, when old contact expires. -commit f7fb1d3e1687de0d051d2b224e7042cc5452a053 +commit 420fa5e581af5668cdecd0c97b555f4d673105f7 Author: Daniel-Constantin Mierla -Date: Tue Aug 8 11:44:00 2017 +0200 +Date: Tue May 22 13:46:58 2018 +0200 - core: mem/tlsf_malloc - implemented mallocxz() and reallocxf() + core: cfg.lex - removed redundant token defining max_branches -commit 3551b1a4e1fc14ff410a8f4bee8b443ed0c841e0 +commit 3647cc1a9b2e85e71657ba3dd3bba21c6bdc5ff5 Author: Daniel-Constantin Mierla -Date: Tue Aug 8 11:30:41 2017 +0200 +Date: Sun May 20 21:17:47 2018 +0200 - core: mem/q_malloc - implemented mallocxz() and reallocxf() + app_jsdt: implemented kemi KSR.pv.getw(...) -commit 1f195edf75e907fc6347d5646b724cede5733170 +commit cb97be77664625a4fb454bdd6d5c84c8a2c7adb3 Author: Daniel-Constantin Mierla -Date: Tue Aug 8 11:15:12 2017 +0200 +Date: Sat May 19 19:33:56 2018 +0200 - core: mem/f_malloc - implemented mallocxz() and reallocxf() + app_sqlang: added KSR.pv.getw(...) -commit 9ea86b94b2e26b21f4e3041e6298fd475797ceb3 +commit abf6039da53ba373c5e389e162d5b21a431fb3ee Author: Daniel-Constantin Mierla -Date: Tue Aug 8 10:42:59 2017 +0200 +Date: Fri May 18 09:05:04 2018 +0200 - core: mem - new functions for pkg/shm - mallocxz() and reallocxf() - - - pkg_mallocxz(size) / shm_mallocxz(size) - same as the corresponding - malloc function, but the allocated buffer is filled with 0. It is - equivalent of { p=malloc(size); if(p) memset(p, 0, size); } - - pkg_reallocxf(p, size)/shm_reallocxf(p, size) - same as the - corresponding realloc functions, but the old pointer is always freed, - even if the realloc operation fails. The BSDs have reallocf() + app_python3: added KSR.pv.getw(...) -commit 179a6e699a1021efa55d1ea097ceeb7a12575cc5 +commit e8b434f13f56b2f34d5b30bf728c4685c488e63c Author: Daniel-Constantin Mierla -Date: Tue Aug 8 10:08:10 2017 +0200 +Date: Fri May 18 09:03:04 2018 +0200 - tm: terminate local uac buffers with 0 + app_python: added KSR.pv.getw() to kemi expors - - received message buffer is terminated with 0 and many functions expect - that, so use of them in event_route[tm:local-request] may have ended - up in wrong behavior + - wrapper function for returning the value -commit 453f45af78190dad79bdc4f787ba5a18ca7f6392 +commit 115fa38f427b1bc3730add9078c44219b25960cb Author: Daniel-Constantin Mierla -Date: Tue Aug 8 09:51:43 2017 +0200 +Date: Fri May 18 08:48:37 2018 +0200 - xmlrpc: handle realloc failure + app_python: added KSR.pv.getw(...) -commit 1d06db87f88841f4aa540b4f1554bed31da2ec25 -Merge: 8c428bfae d8ab359fa -Author: Daniel-Constantin Mierla -Date: Mon Aug 7 21:57:13 2017 +0200 +commit 5b1355aa3d9404a5165b0afbfdac384fe9cf785a +Author: Victor Seva +Date: Tue May 15 22:11:52 2018 +0200 - Merge pull request #1204 from dunst0/fix/app_sqlang + db2_ldap: fix compilation warning - app_sqlang: fix static make and gcc in Makefiles + > ld_fld.c:831:19: warning: unused function 'db_double2ldap_str' [-Wunused-function] + > static inline int db_double2ldap_str(struct sbuf* buf, db_fld_t* fld) + > ^ + > 1 warning generated. -commit 8c428bfae9e51989734d3c1535bcac24581cfe15 -Merge: 9ce38204d 25f218099 -Author: Daniel-Constantin Mierla -Date: Mon Aug 7 21:56:15 2017 +0200 +commit 5a5475f372591b1be5c3dc7851ea509149131509 +Author: Victor Seva +Date: Tue May 15 20:25:00 2018 +0200 - Merge pull request #1206 from codyherzog/master + ims_usrloc_pcscf: fix compilation warning - textops: Fix 'offset exceeds message size' crash. + > pcontact.c:122:5: warning: enumeration value 'SECURITY_NONE' not handled in switch [-Wswitch] + > switch (_p->type) + > ^~~~~~ -commit 25f2180999dafb807068313c4a329a163dd99f92 -Author: codyherzog -Date: Mon Aug 7 12:46:27 2017 -0700 +commit dbae2561720c97200d8e58e1e6c408a943e3c07b +Author: Victor Seva +Date: Tue May 15 20:18:02 2018 +0200 - textops: Fix 'offset exceeds message size' crash. + db_perlvdb: fix compilation warning - Ensure that buffer is null terminated when subst_run() function is used. + > db_perlvdb.c: In function 'db_perlvdb_bind_api': + > db_perlvdb.c:98:24: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] + > dbb->replace = perlvdb_db_replace; + > ^ -commit 9ce38204d8a59e5d83cc50a2c809d1306346f9b7 +commit c3e36a1eb2ff70f94b83a42de3e901f4ba142813 Author: Daniel-Constantin Mierla -Date: Mon Aug 7 14:54:00 2017 +0200 +Date: Tue May 15 07:54:24 2018 +0200 - http_client: proper free for curl params in case of failover connection + app_lua: kemi - exported KSR.pv.getw("$...") + + - get the value of the pseudo-variable if it is not $null and the string + "<>" if it is $null + - useful to use in building log messages without testing if the variable + is set, otherwise lua throws error while trying to concatenate null + value -commit 1948fa5312b8ab836ace4ab76a383ed29b049ae6 -Author: Daniel-Constantin Mierla -Date: Mon Aug 7 14:21:08 2017 +0200 +commit 0d0fb3aae63ec4e05506b5dbeaea97f199e0400a +Author: sergey +Date: Tue Apr 24 10:14:11 2018 +0200 - kamailio.cfg: filter out sip scanner even when anti-flood is not enabled + change to ims_diameter_server module to allow binary data transcoding - - better protection with default installation + ims_diameter_server: handle binary data in json/Diameter + - parselist() added 'hexdump' key to receive binary array in json + - avp2json() added width parameter to snprintf to make proper hexdump + which is sent in json as 'data' -commit 37830f53b1f21fba5beef5d8e22913c431dcd708 +commit 066f0e8cdf19f35289772814c5dd6854691c92a3 Author: Daniel-Constantin Mierla -Date: Mon Aug 7 13:52:45 2017 +0200 +Date: Wed May 9 10:45:39 2018 +0200 - topos: use branch attributes to handle PRACK + core: kemi - remove unused variable from method check helper -commit 8be0f000f74cf08e0be6bc7d0a72cae948483416 +commit 3b3302e4178f22dd3aa47406598ce20fa0748c31 Author: Daniel-Constantin Mierla -Date: Mon Aug 7 13:39:38 2017 +0200 +Date: Wed May 9 10:44:07 2018 +0200 - tm: cleaner handling of dynamic regex param for t_check_status() + core: kemi - return bool for method test functions -commit 72e0ebcdcbc5ffcd7ea475334437e56b22e143d4 +commit 7c9125178b5b5d133919e0abc5bc687271783c5b Author: Daniel-Constantin Mierla -Date: Mon Aug 7 13:33:46 2017 +0200 +Date: Wed May 9 09:44:47 2018 +0200 - ctl: proper handling of realloc failure to avoid leak + core: kemi - use uppercase method value in helper function names + + - better matching with how is in sip message -commit 91ebd25726c7f4b8870e8934d60cdc7cb90d1970 +commit e6eabea9e7806a708b0af8a45b7390eceb51dfdb Author: Daniel-Constantin Mierla -Date: Mon Aug 7 12:23:18 2017 +0200 +Date: Wed May 9 09:23:07 2018 +0200 - path: fix for handling received parameter, issue added by format support + corex: exported kemi function to test if user-agend header is set - - reported by GH #1205 + - KSR.has_user_agent() - return 1 if User-Agent has value; -1 otherwise -commit 5f0792e7ee985b80601e6f952269bc48031e6356 -Author: Kamailio Dev -Date: Mon Aug 7 11:31:22 2017 +0200 +commit 0f8a879a212bd114aaa261a58e256f7fa51042c8 +Author: Tsvetomir Dimitrov +Date: Mon Mar 26 15:05:26 2018 +0000 - modules: readme files regenerated - topos ... [skip ci] + ims_registrar_pcscf: Update tmp security only if there are sec-agree params in the message -commit f6dc87151138e600d593a345109ba2028d2dc16f +commit dabcabd3025c2a8988379a40ca65c56fe9b2838b Author: Daniel-Constantin Mierla -Date: Mon Aug 7 11:23:53 2017 +0200 +Date: Wed May 9 09:07:49 2018 +0200 - topos: docs for event_callback param and event_route[topos:msg-outgoing] + corex: exported helper function to check if RURI has user field + + - KSR.has_ruri_user() - return 1 if user field is set, -1 otherwise -commit f16c0433e0190736b16d8346d1521e3c32b2e219 +commit d63638d44dc3959cf387a57eb9ce1004153e6030 Author: Daniel-Constantin Mierla -Date: Mon Aug 7 11:15:33 2017 +0200 +Date: Wed May 9 08:55:02 2018 +0200 - topos: added support for event_route[topos:msg-outgoing] + core: exported helper functions to match on specific sip methods - - executed when a request is sent out - - if drop() is used inside the event_route, then the request is no - longer handled with topos + - useful to make the kemi script easier to follow -commit f6b8bd17f167c0527fb240a9de71539e29b85f07 +commit e4f6a39b08cb6fb8bb40c635ebafc7795a239e3c Author: Daniel-Constantin Mierla -Date: Mon Aug 7 09:16:15 2017 +0200 +Date: Tue May 8 22:48:47 2018 +0200 - core: parser - converted old log macros + core: kemi - exported is_myself_suri() - - indentation adjustments + - return true if the source address is matching myself (useful to detect + when sending to itself) -commit 31726783dfba54c7c84b680ddd0bae879c0ee9d3 +commit bbef7d81e94a7cc048620571cd2f324184dbb5e9 Author: Daniel-Constantin Mierla -Date: Sun Aug 6 09:06:08 2017 +0200 +Date: Tue May 8 22:44:16 2018 +0200 - core: parse uri - converted log macros + core: kemi - support for MESSAGE in is_method_in() -commit 475ef89d6fc5780673c7e0091a78036e74f819db -Author: Daniel-Constantin Mierla -Date: Sat Aug 5 09:45:18 2017 +0200 +commit bcacfa0cf139e26b6f56a73b3d6cdf8c1a395210 +Author: Kamailio Dev +Date: Tue May 8 08:32:08 2018 +0200 - tls: updated log macros for config code + modules: readme files regenerated - db_perlvdb ... [skip ci] -commit 20af8da05513345ccb3d372e097c71a115ebe5a7 -Author: Kamailio Dev -Date: Fri Aug 4 15:16:23 2017 +0200 +commit 1a15e985de8cc4a5c836dacd0df4afdb6b6efb1b +Author: Muhammad Shahzad +Date: Tue May 8 08:15:47 2018 +0200 + + db_perlvdb: updated code and documentation for latest db api + + - GH #1525 + +commit e17853d8804fa7f10688676d313014ac6e313215 +Author: uts09 +Date: Mon May 7 22:30:04 2018 +0200 + + misc/examples/ims: replaced deprecated mi_fifo with jsonrpcs + + - submitted via PR #1524 + +commit 5ef91a63b8cd83daf51f195171f3ccbb14f02e6e +Author: Henning Westerholt +Date: Mon May 7 09:39:08 2018 +0200 + + core: improve existing DBG message, also output to tag + +commit 281a6c6b6eaaf30058b603325e8ded20b99e1456 +Author: Henning Westerholt +Date: Mon May 7 09:36:53 2018 +0200 - modules: readme files regenerated - websocket ... [skip ci] + core: improve to header check guards, str consists of length and pointer -commit 921c2f6a53108ac4ddc3e262a479a46650412bce +commit 6a152024a40abdb89842aaee418088fe3fb23ae2 Author: Daniel-Constantin Mierla -Date: Fri Aug 4 15:10:50 2017 +0200 +Date: Mon May 7 08:55:46 2018 +0200 - websocket: documentation for event_callback parameter + db_perlvdb: added const specifiers to get rid of warnings -commit e15f8d34c5cdf83e0b3560873cd5909de99d3f97 +commit 1822d974ff1704cca3a1db5fce0507be47af3928 Author: Daniel-Constantin Mierla -Date: Fri Aug 4 15:06:09 2017 +0200 +Date: Sun May 6 09:19:09 2018 +0200 - websocket: new parameter event_callback - - - allow setting the name of kemi function to be executed for event_route + core: dns cache - print status as field in rpc structure + +commit eb218806e5a1143eca2ce51741859c7ac7505f4b +Author: Henning Westerholt +Date: Sun May 6 18:47:14 2018 +0200 -commit 6752351b69cd991cd11f389f80cf73bd68ff5bb9 + tm: remove unused 'ret' variable in w_t_reply, compiler warning + +commit b4a837ca0f3426ca30e7f51a6c21113462f3463e +Merge: c7aa0a9e3 5ceb3b857 Author: Daniel-Constantin Mierla -Date: Fri Aug 4 14:36:42 2017 +0200 +Date: Sat May 5 09:37:27 2018 +0200 - websocket: use route_lookup() instead of route_get() + Merge pull request #1523 from surendratiwari3/kamailio_lua_config_append_hf - - avoid creating an empty route block structure if not defined in cfg + misc:kemi_lua append_hf to append -commit 1c7fc2feccba9ae1ad1f97e6fdd296f83dd5b097 +commit c7aa0a9e3796b1fcd70305a2878d62bf251a9b5e Author: Daniel-Constantin Mierla -Date: Fri Aug 4 13:50:05 2017 +0200 +Date: Sat May 5 09:21:14 2018 +0200 - misc/examples/kemi: fixed setting the failure route callback + db_perlvdb: updated the db api exported fields -commit 61d72c90a1a3fe34aad3cedb87a3e68529be34ac -Author: Kamailio Dev -Date: Thu Aug 3 21:31:22 2017 +0200 +commit 5ceb3b857d448fed1e819812dcb4a9724243cdb8 +Author: surendratiwari3 +Date: Sat May 5 12:48:31 2018 +0530 - modules: readme files regenerated - dispatcher ... [skip ci] + misc:kemi_lua append_hf to append -commit e84ee3becbf59a5afc63510596cd62bae36d1962 +commit 1226ae471627547ef00c651b78b37e1c397adc23 Author: Daniel-Constantin Mierla -Date: Thu Aug 3 18:54:19 2017 +0200 +Date: Sat May 5 08:49:32 2018 +0200 - dispatcher: documentation for parallel dispatching algorithm + db_perlvdb: proper lookup for app_perl module + + - reported by shaheryarkh@gmail.com -commit 2ce57c44fee4eef112163e5dd6c712a0c68c79af +commit ab9e9eba2bdd70a6bac296b88331a137c6a3cbd0 Author: Daniel-Constantin Mierla -Date: Thu Aug 3 18:46:26 2017 +0200 +Date: Sat May 5 08:44:41 2018 +0200 - dispatcher: new algorithm - parallel dispatching (12) + core: rpc dns.view outputs proper formatted structure - - send the request to all destinations from the setid at once - - aka parallel forking to all address, so the AVPs are no longer - set, not being needed for a re-routing + - previously it was doing sort of printf to emulate structures -commit d8ab359faa67586abd118af8c067aa2671470a43 -Author: Rick Barenthin -Date: Thu Aug 3 11:34:35 2017 +0200 +commit c73a22abb1691e3c25b5f599e5f387540f152913 +Author: Daniel-Constantin Mierla +Date: Sat May 5 07:36:56 2018 +0200 - app_sqlang: fix static make and gcc in Makefiles - - - app_sqlang now uses $(MAKE) and $(CC) variables in Makefiles, so it - builds on systems with gnu make named different then make and compiles - with different compiler than gcc + dispatcher: declare vars at beginning of the block in rpc command -commit d58fdb7c4e2e96a1bb2c64a47cc2b17e4bd03b4e -Author: Lucian Balaceanu -Date: Thu Aug 3 10:10:23 2017 +0300 +commit 648dd937831654d40a9d615319693b87db31ef94 +Author: Daniel-Constantin Mierla +Date: Fri May 4 14:18:11 2018 +0200 - p_usrloc: fix dereference before null check in code path + core: rpc dns.view returns an array of records -commit f567695de9ecbb5a5bffe4e212a294df2753a519 -Author: Lucian Balaceanu -Date: Thu Aug 3 09:56:22 2017 +0300 +commit 49bb4da2845abb9a2f271d97cce1a40bb77f0969 +Merge: 4bfcbc1fd 896c5e1c7 +Author: Daniel-Constantin Mierla +Date: Fri May 4 07:09:48 2018 +0200 - p_usrloc: remove unnecessary increment + Merge pull request #1522 from surendratiwari3/htable_event_callback_mode + + Module: htable:: event_callback_mode to int -commit a72abf8b1db2ecd8fabfd3e051d1bd61fd205a07 -Author: Lucian Balaceanu -Date: Thu Aug 3 09:48:22 2017 +0300 +commit 896c5e1c76e6836bedaf66f9b832020a0d70c04b +Author: surendratiwari3 +Date: Fri May 4 09:33:36 2018 +0530 - p_usrloc: fix out-of-bounds read + Module: htable:: event_callback_mode to int -commit 3c9b1d30f5350973bb6063ca207a3f0145f73ec5 -Author: Lucian Balaceanu -Date: Thu Aug 3 09:33:36 2017 +0300 +commit 4bfcbc1fd8bb412382a2271ae465dc799cf6f50f +Author: Kamailio Dev +Date: Thu May 3 21:31:27 2018 +0200 - p_usrloc: eliminate unused code + modules: readme files regenerated - htable ... [skip ci] -commit 2a67f79945475cfbe8d033b4df39018a73346db1 -Author: Lucian Balaceanu -Date: Thu Aug 3 08:25:27 2017 +0300 +commit e72a41906da417cedb81ef8216c3c084fbb4902d +Author: Daniel-Constantin Mierla +Date: Thu May 3 21:19:59 2018 +0200 - p_usrloc: fix resource leak + htable: docs for event_callback_mode parameter -commit 92f66e05b3b93c67acdaadfd2374cb91d01413f1 +commit 1b8ab8458806106a51de26afd06be5e3a15188b0 Author: Daniel-Constantin Mierla -Date: Thu Aug 3 07:29:57 2017 +0200 +Date: Thu May 3 21:10:12 2018 +0200 - dispatcher: define values for dispatching algorithms + htable: added parameter event_callback_mode + + - control when event_route[htable:init] is executed: 0 - after all + modules were initialized; 1 - in first worker process; (default 0) + - fixes use with kemi framework by using value 1, because after module + initialization the kemi framework is not ready, being set up per child + process + - reported by GH #1519 -commit b5bccd0f4e14909b4a0ba2ab3957b2ea9b28ed0c +commit 6285b5ebe02d39bf77baa8f29d16de246dc1ad77 Author: Daniel-Constantin Mierla -Date: Thu Aug 3 05:03:24 2017 +0200 +Date: Thu May 3 20:47:37 2018 +0200 - db_text: missing breaks in checking db types compatibility + core: dns - print index and remove per record type printing added previously + + - type is already printed at the top of the structure -commit b05f3637f9cc829470d04037f6f5b88e37819706 +commit b72e0b6984e87b42f0a578a6b220a28a80e67737 Author: Daniel-Constantin Mierla -Date: Thu Aug 3 05:02:41 2017 +0200 +Date: Thu May 3 14:39:10 2018 +0200 - cplc: safety checks for parameters + core: print rr type for rpc dns.view -commit 7bb4b7dcc23c582ec666c71c9475e46e4ca12709 +commit b4ad3105e11559bfe502523f60b085ea720a06a5 Author: Daniel-Constantin Mierla -Date: Wed Aug 2 16:30:24 2017 +0200 +Date: Thu May 3 09:50:57 2018 +0200 + + kamailio.cfg: small sample for number normalization on pstw gw routing + +commit 7c61624a7d8827387663b68b4bdcdf82a9c2ad51 +Author: Kamailio Dev +Date: Wed May 2 12:31:45 2018 +0200 - pipelimit: match algorithm name case insensitive + modules: readme files regenerated - sipcapture ... [skip ci] -commit d302422982aab79ec9af9b9d54d33dbf98dc7b63 +commit d867d8abfd503a2e7d979d4979d2b0a209d5c430 Author: Daniel-Constantin Mierla -Date: Wed Aug 2 09:03:02 2017 +0200 +Date: Wed May 2 12:18:57 2018 +0200 - tsilo: added section ids in docs + sipcapture: docs for sip_capture_forward(uri) -commit 00eb71da83347c9d2ea74feacec9c955f7b2a2e6 +commit 9853d9b4d3e7ee863170aa22acccfe8de810b435 Author: Daniel-Constantin Mierla -Date: Wed Aug 2 09:54:18 2017 +0200 +Date: Wed May 2 12:10:45 2018 +0200 - tls: explicit libssl v1.1+ cleanup when module is destroyed + sipcapture: added sip_capture_forward(uri) - - OPENSSL_cleanup() explicitely executed for libssl v1.1+ when tls - module is destroyed, to avoid being executed again on final exit - (due to atexit() callback), because at that moment shared memory - is already destroyed and attempts to access the locals will result - in cored dump - - retported by Victor Seva, GH #1189 + - forward the hep packet to another address + - the address has to bbe provided as parameter in sip uri format + - the function should be used inside event_route[sipcapture:request] + event_route[sipcapture:request] { + if(src_ip==1.2.3.4) { + sip_capture_forward("sip:2.3.4.5:5090"); + return 0; + } + } -commit 62f573d4ecbbebe5f0f2d3b39be7ad4c2b460e65 -Author: Alexander Lutay -Date: Tue Aug 1 23:20:41 2017 +0200 +commit 943724e62c2b3bb98a37d9f496cc6c76ecb976cb +Author: Daniel-Constantin Mierla +Date: Wed May 2 08:18:40 2018 +0200 - kamctl: fix dangerous 'rm -rf' code in case if variables are not defined + usrloc: removed useless set of db type for expire column -commit e39dd796a40fb01881858ccf4415fdcfa8529778 -Author: Kamailio Dev -Date: Tue Aug 1 13:31:30 2017 +0200 +commit 944dc1dc1e6261a3c179ff11bf3531e379eb9f35 +Author: Konstantin Poliakov +Date: Wed May 2 08:15:39 2018 +0200 - modules: readme files regenerated - uac ... [skip ci] + usrloc: use UL_DB_EXPIRES_SET() inside get_all_db_ucontacts() + + - fix matching date field for some backends, such as mongodb, as well as + obey ul_expires_type value -commit d1d2dda40e1ac787a021c4ea9f9e179870dea99a +commit cb80d6b93325787c336100c3710cda8f6d88c404 +Merge: 42a55edcf 2fb84e5e1 Author: Daniel-Constantin Mierla -Date: Tue Aug 1 13:30:26 2017 +0200 +Date: Wed May 2 08:13:06 2018 +0200 - uac: fixes for section ids in docs + Merge pull request #1516 from tiglat/tiglat/nathelper_doesnt_ping_all_contacts + + nathelper: it doesn't ping contacts if ping_nated_only=0 -commit af30ab2dcd6d67bc86f9ce86be0abf9014cbfd8d -Author: Sergey Safarov -Date: Sat Apr 22 10:37:32 2017 -0400 +commit 42a55edcfbdac1653ee5f85ff388a733f6c385f4 +Author: Daniel-Constantin Mierla +Date: Tue May 1 20:52:23 2018 +0200 - pkg/kamailio: Added systemd unit relanch after non null exit code. Fix of ticket 1085 + tm: readded w_t_reply_wrp() + + - needed for exports to inter-module api + - simplified version after changes in tm reply code + - reported by GH #1517 -commit 5e098077525b2d06834a03f69ea246835af6f11c -Author: Claudiu Boriga -Date: Tue Aug 1 10:40:02 2017 +0300 +commit 2fb84e5e101b61bbaedc18d8b37188cbc6b1cee8 +Author: Konstantin Poliakov +Date: Mon Apr 30 23:57:19 2018 +0300 - carrierroute: avoid ovverruning a fixed sized buffer + nathelper: moved var declaration into the begining of function. -commit 9c793833f4b56f02cf692533ad515d87d6341bf4 -Author: Claudiu Boriga -Date: Tue Aug 1 10:22:09 2017 +0300 +commit 20b0f29fa489b220d4460d079541d0f045458871 +Author: Kamailio Dev +Date: Mon Apr 30 18:01:35 2018 +0200 - carrierroute: avoid truncating value returned by fgetc + modules: readme files regenerated - tm ... [skip ci] -commit f152fc4586b42fb8a26b01d0c40e41e143972b9a -Author: Claudiu Boriga -Date: Tue Aug 1 10:15:44 2017 +0300 +commit 993dd0c808402ade144783d527b7db0e2227987d +Author: Henning Westerholt +Date: Mon Apr 30 17:47:09 2018 +0200 - carrierroute: check return value for fseek + tm: small spelling fix in docs (semd -> send) -commit 40615aaa64a6a2b3affa112502bec58eda47d9a0 -Author: Claudiu Boriga -Date: Tue Aug 1 09:55:30 2017 +0300 +commit 4c9bcb4cce43b3b8f25667d52d0aea98382e7db5 +Author: Daniel-Constantin Mierla +Date: Mon Apr 30 12:51:07 2018 +0200 - carrierroute: avoid comparing size_t types with negative values + usrloc: renamed global var matching_mode to ul_matching_mode + + - avoid exports conflict with the other usrloc alternative modules -commit f7f5b95f402e3bc3a5caa4e096a1ebdb165b20eb -Author: Claudiu Boriga -Date: Mon Jul 31 17:36:55 2017 +0300 +commit aeab281d0db468afb3175cf7511ff2d689984bf6 +Author: Kamailio Dev +Date: Mon Apr 30 08:31:54 2018 +0200 - carrieroute: remove logically dead code + modules: readme files regenerated - tm ... [skip ci] -commit 57503311555f5ffcda1c4e3b05df4248558ef50b -Author: Claudiu Boriga -Date: Mon Jul 31 17:32:13 2017 +0300 +commit 0ae7e00152538819dfe499a74f4de5e6d69ac14f +Author: Daniel-Constantin Mierla +Date: Mon Apr 30 08:19:45 2018 +0200 - carrierroute: check pointer before dereferencing it + tm: docs for t_send_reply() -commit 2fa71d29d988cd396607fc20c6271703b3eb656f -Author: Claudiu Boriga -Date: Mon Jul 31 17:15:55 2017 +0300 +commit b34cf58a3a88e5ed2b2aa6aa9e5df0e5bb1808f9 +Author: Konstantin Poliakov +Date: Sun Apr 29 21:07:19 2018 +0300 - carrierroute: avoid out-of-bounds access when resetting opts + nathelper: it doesn't ping contacts if ping_nated_only=0 + + - nathelper sends ping only if nat flag is specified, but if ping_nated_only=0 it should ping all contact in any case. -commit e5b8066e1e0f4a69a5d1161dd75aea67014314b5 +commit 672484e9e0be161f5f9f0b82afc027f4ef8097e4 Author: Daniel-Constantin Mierla -Date: Tue Aug 1 08:50:24 2017 +0200 +Date: Sat Apr 28 07:51:59 2018 +0200 - pua_xmpp: init printbuf_len and detect when no uri is provided + tm: added t_send_reply(code, reason) + + - create the transaction if it doesn't exist and send a stateful reply -commit f359625bf671a38ec0aa967e2632a4bbdbfe59af +commit a6c3b35dde900c718d8d010b0b8094b384b890d8 Author: Daniel-Constantin Mierla -Date: Tue Aug 1 08:49:19 2017 +0200 - - pua_reginfo: init vars to avoid accessing invalid value on error - -commit 07ade6c2bb1826ef797ba941213a617adad9190a -Author: Kamailio Dev -Date: Mon Jul 31 22:31:24 2017 +0200 +Date: Fri Apr 27 11:55:10 2018 +0200 - modules: readme files regenerated - keepalive ... [skip ci] + tm: removed no longer necessary wrapers for kemi t_reply() export -commit 183efe3a3955a0457129a9801e8721035eb435ea -Merge: 48c942ac4 2d4d66acd -Author: Guillaume Bour -Date: Mon Jul 31 22:20:43 2017 +0200 +commit 162d7feb00cf5d51be3375a5f5c1434b6abd8a4b +Author: Daniel-Constantin Mierla +Date: Fri Apr 27 11:47:20 2018 +0200 - Merge pull request #1196 from gbour/doc-module-keepalive + tm: avoid temporary clone of reason value for t_reply() - keepalive: improve documentation + - use str field instead of char* for internal _reply() parameter + - split the w_t_reply() to config wrapper and helper functions -commit 2d4d66acd5a99ae7b931b7f7e4e7d500d6b9ae96 -Author: Guillaume Bour -Date: Mon Jul 31 21:59:50 2017 +0200 +commit 9670bd80550b9e0c2af1d5d61df618292346ba28 +Author: Daniel-Constantin Mierla +Date: Fri Apr 27 08:56:32 2018 +0200 - keepalive: improve documentation + cfgutils: update route_if_exists() to have same behaviour as route() - - documents internal API - - GH #1082 + - do not run the route block as a top route + - related to GH #1503 -commit 48c942ac4d20e45f8fdf04aaab9779cab51d1813 -Author: Daniel-Constantin Mierla -Date: Mon Jul 31 20:23:53 2017 +0200 +commit 100a4be2b270e8a8331ba476842e5f7e1eabc1ea +Author: Victor Seva +Date: Thu Apr 26 14:06:14 2018 +0200 - db_text: free order by fields in case of early stage error in dbt_query() + pkg/kamailio/deb: version set to 5.2.0~dev5 -commit 676c96ed860be183bd69ad55c8062523afcc5248 -Author: Torrey Searle -Date: Mon Jul 31 17:03:52 2017 +0200 +commit dc647da7f2a8eb7b634a98d53ad1726d61f79b9b +Author: Daniel-Constantin Mierla +Date: Thu Apr 26 12:46:13 2018 +0200 - modules/sipt: fix bug in setting NAI of called party + Makefile.defs: version set to 5.2.0-dev5 -commit 32c5d9dd9f7a5e02ab428e5c16bf7406e4ff7856 -Author: Stefan Mititelu -Date: Mon Jul 31 16:02:47 2017 +0200 +commit 43d66872cd585c25133d1702f17bd839d1864c1a +Author: Carsten Bock +Date: Thu Apr 26 11:38:44 2018 +0200 - pkg/kamailio/centos/7: Add rabbitmq module + ims_charging: Use the "custom_user_avp" also in other places, where the user is retrieved (aligning request with the docs) -commit 9ee303d91ee9167759b4a01c2d94fbd646ee41f9 +commit 1ef70d68599db092fa71b9b8b7cd3fdcd54f8a99 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:57:48 2017 +0200 +Date: Wed Apr 25 14:43:42 2018 +0200 - Revert "pkg/kamailio/centos/7: Add rabbitmq module" + db_mongodb: clone bson UTF8 value into DB val structure - This reverts commit f7666ef2ab5ce5e1088728458d76c7e816fbc25c. + - the bson iterator invalidates or reuses the memory after several interations + - initial patch by Konstantin Poliakov , GH #1508 -commit 98c4f5e8c26f41db6b09547312a049293158cd53 +commit cffd8bd88f140487db8149184e15e08ff3d71f44 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:57:48 2017 +0200 +Date: Wed Apr 25 14:08:00 2018 +0200 - Revert "pkg/kamailio/centos/7: Remove kamailio-ims module dependency" + tls: condition on libressl version for declaring BIO data functions - This reverts commit bc4591f54844b7d7a28fa278fe9ee9ff421ba206. + - it is required only for LIBRESSL_VERSION_NUMBER < 0x20700000L + - fixes compilation on Alpine linux + - part of GH #1511 -commit bc4591f54844b7d7a28fa278fe9ee9ff421ba206 -Author: Stefan Mititelu -Date: Mon Jul 31 16:27:00 2017 +0300 +commit 38b8fbdf940b273cf541678fd22af7dd4d63ab3d +Author: lyokha +Date: Tue Apr 24 14:46:32 2018 +0200 - pkg/kamailio/centos/7: Remove kamailio-ims module dependency + textops: reinitialize new tr_param_t object for tr_txt_parse_re() + + - avoid segfault when running fparam_free_restore() on + such an object immediately after creation, because its field "next" + contains garbage -commit f7666ef2ab5ce5e1088728458d76c7e816fbc25c -Author: Stefan Mititelu -Date: Mon Jul 31 16:26:05 2017 +0300 +commit 352440d299f1b9f431cc05397f4ea6a7b5967c8a +Author: yuri-r +Date: Tue Apr 24 06:39:07 2018 -0400 - pkg/kamailio/centos/7: Add rabbitmq module + ims_charging: fixed check result code at mscc level (#1504) + + * ims_charging: fixed check result code at mscc level + + according to RFC 4006 the Result-Code in Multiple-Services-Credit-Control AVP is optional. + resume_on_initial_ccr() stops proceeding CCA if no Result-Code in MSCC and goes to error1 even though + the Result-Code on CCR itself is 2001 (SUCCESSFUL) + + * ims_charging: fixed check result code at mscc level + + according to RFC 4006 the Result-Code in Multiple-Services-Credit-Control AVP is optional. + resume_on_initial_ccr() stops proceeding CCA if no Result-Code in MSCC and goes to error1 even though + the Result-Code on CCR itself is 2001 (SUCCESSFUL) -commit d2fa6939e3ba075beb82d173c5d1a7330341c7d0 +commit ffa9bcc79d0cafdfad47aac1ff3ffa09842ae22d Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:53:27 2017 +0200 +Date: Mon Apr 23 09:22:23 2018 +0200 - pua: free in case of errors + pv: new variable $mbu - updated msg buffer + + - get the message buffer after applying changes + - the original buffer stays unchanged -commit 5238fe0a5c66cf559bc099bf5e2e0ced42390625 +commit 22f93ba67e4ee1f517c0e66138e2ba7c2d6db885 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:52:45 2017 +0200 +Date: Sun Apr 22 07:58:36 2018 +0200 - rtpengine: free rtpl if error inside fixup_set_id() + pv: exported xavp_params_implode() to kemi -commit 30166790b1b8addef006c7a933ac2c009a3998e2 +commit 5fb231b69f150494a8d51e2581635e98520866ad Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:42:19 2017 +0200 +Date: Sat Apr 21 21:16:04 2018 +0200 - presence_xml: do not allocate memory before getting presence node - - - useless operation in case of error + core: add extra via params from xavp -commit 30014025157f9ac79c98f1361a86974858ef8022 -Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:33:57 2017 +0200 +commit af6c8088d5e07c8487bc6eda6c528deaa15df0a5 +Author: Kamailio Dev +Date: Fri Apr 20 12:47:01 2018 +0200 - presence_dialoginfo: safety checks to avoid accessing null values + modules: readme files regenerated - pv ... [skip ci] -commit fda8de91d80a2aee7a3ec5e44e6fc1d918541254 +commit 42c8595e58e31806ecfc6201d47d7c5957e7522c Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:32:57 2017 +0200 +Date: Fri Apr 20 12:38:17 2018 +0200 - ctl: skip condition on already set name variable + pv: docs for xavp_params_implode(...) function -commit 44db76acb7523b3cd6816c77de45b71857b1a3c1 +commit d19a68be381fea741afe520340849cafd437d929 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:30:19 2017 +0200 +Date: Fri Apr 20 12:28:39 2018 +0200 - cplc: init time switch structures + pv: new function - xavp_params_implode(xname, pv) + + - serialize the subbfields of $xavp(xname) in params format (name=value;) + and set the output to variable pv -commit 3f96ede632ce9ef945086a1f384677151209fcc6 +commit 887278c5254e35ac1a617e5fc68347829d0ac185 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 15:27:50 2017 +0200 +Date: Fri Apr 20 11:58:20 2018 +0200 - cplc: init structures, fix parameter number in fixup + core: xavp - helper function to serialize subfields in a params list -commit 9a7fee2dac2f59c277d2634937c7449b9659a20d -Author: Daniel-Constantin Mierla -Date: Mon Jul 31 14:57:18 2017 +0200 +commit 499455c260ff83fb670886245f1c436dcef5eee0 +Author: Kamailio Dev +Date: Thu Apr 19 19:02:14 2018 +0200 - cfgt: check error case for mkdir() + modules: readme files regenerated - corex ... [skip ci] -commit 2f29115d8280ccf04ea823d5cf8f6621b8624edc +commit 63f596e412c4800c191c17498edd06433ca9a949 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 14:53:08 2017 +0200 +Date: Thu Apr 19 18:24:36 2018 +0200 - auth_identity: code clarity adjustments + corex: docs for via_add_xavp_params() function -commit 2140d0141b5a7551ebbd072d801ce2339020dac0 -Author: Mikko Lehto -Date: Mon Jul 31 13:08:58 2017 +0300 +commit 465516744241d1f82850bfb8be8a9a97c26b65bf +Author: Daniel-Constantin Mierla +Date: Thu Apr 19 18:17:32 2018 +0200 - sipcapture: keep hep buffer unmodified while getting PV $hep(NNN) + corex: new function via_add_xavp_params(flags) - - addition to GH PR #1191 + - control the flag for adding xavp fields to via params -commit 4068ddd3ca01795e5378a738756b2735508f5864 +commit b2e07731113d1ffb3072af86734b70ed2fa233a6 Author: Daniel-Constantin Mierla -Date: Mon Jul 31 08:20:08 2017 +0200 +Date: Thu Apr 19 18:16:59 2018 +0200 - rls: avoid access to item after free + core: added internal flag for adding xavp fields to via params -commit 24c4f357ecc83ded4c8890ed4440a0252191b0a9 +commit 97f8c975b006fed3ea817a62654d2957c8077d12 Author: Daniel-Constantin Mierla -Date: Sun Jul 30 18:33:55 2017 +0200 +Date: Thu Apr 19 17:50:48 2018 +0200 - ctl: safety check for closing fd + core: new core parameter xavp_via_params + + - set the name of the xavp whose subfields will be added as via params -commit 649b789ccde40778543f2a973a1c01495a2cba8b -Author: Daniel-Constantin Mierla -Date: Sun Jul 30 18:18:24 2017 +0200 +commit 9ae3eef958a48752836f392f8f23fbe775f98d81 +Author: Kamailio Dev +Date: Wed Apr 18 09:01:33 2018 +0200 - call_control: check return values and free in case of errors in fixup + modules: readme files regenerated - msilo ... [skip ci] -commit 950a9fa428e24242671e83980192db48819d5da6 -Author: Daniel-Constantin Mierla -Date: Sun Jul 30 11:16:01 2017 +0200 +commit 74ceb7f8ff8161ae9238ea75dbf486dbdfdf79e4 +Author: Kamailio Dev +Date: Wed Apr 18 08:31:57 2018 +0200 - mangler: free on errors inside sdp_mangle_port() + modules: readme files regenerated - jsonrpcs ... [skip ci] -commit c6464e2752f7cdaee95aee4d1b0da9317535ddd3 +commit 389c409cb51fd8cd8036aca081530720e61c42af Author: Daniel-Constantin Mierla -Date: Sun Jul 30 10:45:58 2017 +0200 +Date: Wed Apr 18 08:28:20 2018 +0200 - rtpproxy: safety checks for return codes, free on fixup errors + jsonrpcs: set pretty_format param to 1 by default + + - kamctl relies on it for some response processing -commit 590c8d9d23e578df38d332ebcfa64421bbedb604 +commit c5764f003c8f425c881cda7dc73ee5eab0e71825 Author: Daniel-Constantin Mierla -Date: Sun Jul 30 10:30:59 2017 +0200 +Date: Tue Apr 17 08:58:03 2018 +0200 - tls: removed useless checks + drouting: docs - added several section ids -commit 5c58ac726c1f96b6666cfd05e13a66328d46d020 +commit 4bab8e5587f59132afb21e29c5a08e71df3c6f8b Author: Daniel-Constantin Mierla -Date: Sun Jul 30 10:30:19 2017 +0200 +Date: Mon Apr 16 19:30:09 2018 +0200 - websocket: use NAME in log message, removed unreachable code + counters: docs - format section ids -commit 8b06397523c440fc20e509889c5fad01ed477d26 +commit 0dc595862baa62535efc7519330514aa30b552b1 +Merge: 2fcfc6666 ad427fc19 Author: Daniel-Constantin Mierla -Date: Sun Jul 30 10:18:24 2017 +0200 +Date: Mon Apr 16 19:19:22 2018 +0200 - xhttp_pi: several compiler warning fixes + Merge pull request #1502 from snen/dialog_fix_dmq_flag_value + + dialog: typo fix for DLG_IFLAG_DMQ_SYNC flag value -commit f06e09b3a83f88678318f4aabeb6afdbf5a46ff0 +commit 2fcfc6666621cd8108de251eb5cfba48f365d2c6 +Merge: 1d4f63c14 a821ff610 Author: Daniel-Constantin Mierla -Date: Fri Jul 28 10:45:07 2017 +0200 +Date: Mon Apr 16 19:18:48 2018 +0200 - db_text: safety checks before memsets inside dbt_build_where() + Merge pull request #1501 from snen/fix_dialog_options_restart + + dialog: restore keep-alive after restart -commit 2ea19b82b5e21d4499929cb56964ed43035c6122 -Author: Mikko Lehto -Date: Fri Jul 28 10:51:38 2017 +0300 +commit ad427fc19c56110f66df86b7b49e23c00313610a +Author: Dmitri Savolainen +Date: Mon Apr 16 19:43:50 2018 +0300 - sipt: free pkg memory on error + dialog: typo fix for DLG_IFLAG_DMQ_SYNC flag value -commit 3afd4acfea655cd3ae2758a4713d977305a296f4 -Author: Mikko Lehto -Date: Fri Jul 28 10:51:38 2017 +0300 +commit a821ff61029a4e8a9f220d60f95bd7b5a545f9b4 +Author: Dmitri Savolainen +Date: Mon Apr 16 19:32:05 2018 +0300 - db_text: free pkg memory before return on error + dialog: restore keep-alive after restart -commit ecf1ad77a2b9f69d5ae4f68fdc71cb1b10ebe729 -Author: Mikko Lehto -Date: Fri Jul 28 10:51:38 2017 +0300 +commit 1d4f63c147e99dfce0a9ef4ace6089c16f3fb35f +Author: Kamailio Dev +Date: Sun Apr 15 13:16:56 2018 +0200 - sipcapture: free allocated process memory before return + modules: readme files regenerated - app_lua ... [skip ci] -commit c8a804f5e3c3b12b64871d3989a87d79d8627afe -Author: Mikko Lehto -Date: Fri Jul 28 10:51:38 2017 +0300 +commit 40b7fa59c739275f1e8a3d35c71f5251695af6e9 +Author: Daniel-Constantin Mierla +Date: Sun Apr 15 13:03:14 2018 +0200 - sipcapture: fix custom field variable naming + app_lua: defaut value for reload parameter set to 1 + + - reload feature enabbled by default, set to 0 to disable -commit e8cd7643bbdf4b8f187a35bb0e707f4d6eda09b7 -Author: Mikko Lehto -Date: Fri Jul 28 10:51:38 2017 +0300 +commit 681a104eeed6982d17b15701491bdff35662bf82 +Author: Daniel-Constantin Mierla +Date: Sat Apr 14 12:14:37 2018 +0200 - siptrace: check auth_key_str.s before dereference + lcr: docs - added many section ids -commit 5ef8d7a9f8e1120ea245084d91c00c64e836f97a -Author: Daniel-Constantin Mierla -Date: Fri Jul 28 10:29:33 2017 +0200 +commit c70d831aee5a95613de69568d8f1863788e0a074 +Author: Victor Seva +Date: Fri Apr 13 10:25:17 2018 +0200 - registrar: restructured condition for clarity + ndb_mongodb: fix deprecation warning + + Since 1.5.0 mongoc_collection_find() is deprecated + > http://mongoc.org/libmongoc/1.5.0/mongoc_collection_find.html -commit f0939447e0099f8e5ef87cfbda6ea21ed7af9800 -Author: Daniel-Constantin Mierla -Date: Fri Jul 28 10:07:23 2017 +0200 +commit 1afac7f1e2df6f32e7a3ff3cef6e42c2f6ec2ea3 +Author: Henning Westerholt +Date: Fri Apr 13 17:57:07 2018 +0200 - rabbitmq: removed unreachable code + Revert "Makefile.modules: add cfg files in module docs also to Makefile, to re-create README on changes" + + - This reverts commit 91c36a1a9251bdd775370878437fcc1293b85ea9. + - needs more testing, will not work for some modules -commit 4572a7b100f2eaddb2eb4dbe4aa81a4833f8467e -Author: Daniel-Constantin Mierla -Date: Fri Jul 28 10:06:11 2017 +0200 +commit 91c36a1a9251bdd775370878437fcc1293b85ea9 +Author: Henning Westerholt +Date: Fri Apr 13 17:47:21 2018 +0200 - mangler: pkg free in case of errors + Makefile.modules: add cfg files in module docs also to Makefile, to re-create README on changes -commit 73a288e14ec8f7a67662842140d5eb02819b7738 +commit 3d9dffd4b01fb1486d64824f971dbb1be112cdb6 Author: Daniel-Constantin Mierla -Date: Fri Jul 28 09:47:03 2017 +0200 +Date: Fri Apr 13 08:23:18 2018 +0200 - janssonrpcc: couple of pkg free in case of errors + nat_traversal: use the new function names for basic timer processes -commit 9fe84d4ad1ec1eae6bcf44b4067b948d9a16e4dc -Author: Daniel-Constantin Mierla -Date: Fri Jul 28 09:31:16 2017 +0200 +commit 22b13d4d44cb0dbd71b87deab42af5f7c8ea932f +Author: Henning Westerholt +Date: Thu Apr 12 21:30:26 2018 +0200 - http_client: use strcpy() instead of strncpy() with sizeof dest buffer + msilo: remove not working tm parameter in the example cfg, reported from Abdul Basit - - padding the rest of dest buffer with 0 is inneficient + - remove the not working, too small tm parameter in the example cfg + - has been not changed in the last 10 years, probably not valid anymore + - reported from Abdul Basit on sr-users -commit b6c6da62fe9879a43a322ce7f9adac3eef5674e7 -Author: Daniel-Constantin Mierla -Date: Fri Jul 28 09:26:55 2017 +0200 +commit 279aa80aa6a60e45b7d4b67fa8075cb00d68fbaa +Author: Henning Westerholt +Date: Thu Apr 12 21:14:15 2018 +0200 - h350: coherent indentation, removed dead code and init lenght for str + core: small spelling fix in WARN message related to server id functionality -commit 49362355065d8f2aa5a58cf0b44aebf485015418 -Author: Kamailio Dev -Date: Fri Jul 28 10:16:22 2017 +0200 +commit 63e5a1f6d3f801136180bf2cb8a042d8af779f65 +Author: Daniel-Constantin Mierla +Date: Thu Apr 12 14:51:15 2018 +0200 - modules: readme files regenerated - avpops ... [skip ci] + topos: reuse uuid for requests withing dialog + + - related to GH #1496 -commit cbe051d7cd02b31c385b93284251d0a8daeeacc7 -Author: Mikko Lehto -Date: Fri Jul 28 10:50:57 2017 +0300 +commit aae5fee5c4edb15eaba69c4ddf092bbc7138059f +Merge: b472fd86a c43f09956 +Author: ng-voice GmbH +Date: Thu Apr 12 13:58:54 2018 +0200 - sctp: remove svn tags and history notes + Merge pull request #1497 from kamailio/vseva/fix_cdp + + cdp: fix compilation warning -commit aabba8141410a25a19667a3aa750f88081a04bd9 -Author: Mikko Lehto -Date: Fri Jul 28 10:50:57 2017 +0300 +commit c43f09956bd44115c437e59627088d0825aa27ec +Author: Victor Seva +Date: Thu Apr 12 13:49:12 2018 +0200 + + cdp: fix compilation warning + + > CC (clang) [M cdp.so] authstatemachine.o + > authstatemachine.c:748:3: warning: implicit conversion from 'int' to 'char' changes value from 209 to -47 [-Wconstant-conversion] + > set_4bytes(x, AAA_SUCCESS); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~ + > ./diameter.h:77:44: note: expanded from macro 'set_4bytes' + > (_b)[2]=((_v)&0x0000ff00)>>8;(_b)[3]=((_v)&0x000000ff);} + > ~ ~~~~^~~~~~~~~~~ + > authstatemachine.c:758:3: warning: implicit conversion from 'int' to 'char' changes value from 209 to -47 [-Wconstant-conversion] + > set_4bytes(x, AAA_SUCCESS); + > ^~~~~~~~~~~~~~~~~~~~~~~~~~ + > ./diameter.h:77:44: note: expanded from macro 'set_4bytes' + > (_b)[2]=((_v)&0x0000ff00)>>8;(_b)[3]=((_v)&0x000000ff);} + > ~ ~~~~^~~~~~~~~~~ + + > ocs_avp_helper.c:329:3: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion] + > set_4bytes(x, 86400); + > ^~~~~~~~~~~~~~~~~~~~ + > ./../cdp/diameter.h:77:44: note: expanded from macro 'set_4bytes' + > (_b)[2]=((_v)&0x0000ff00)>>8;(_b)[3]=((_v)&0x000000ff);} + > ~ ~~~~^~~~~~~~~~~ + +commit b472fd86a20071532799f977c2230e589c54e497 +Author: Kamailio Dev +Date: Thu Apr 12 12:32:13 2018 +0200 - modules: use Docbook tag for Kamailio wiki URL + modules: readme files regenerated - corex ... [skip ci] -commit 25b4d2be8121cfff67013810f3dd0c124713c9de -Author: Mikko Lehto -Date: Fri Jul 28 10:50:57 2017 +0300 +commit cf58e132fad925cb90fbe1193b8a568ba654e7cc +Author: Daniel-Constantin Mierla +Date: Thu Apr 12 12:28:33 2018 +0200 - (core|modules/kex): improve RPC method listing + corex: fixed prototype for few exported xflags functions to config -commit 436899e723c01ed5a86d5188fafc7225df690abf -Author: Mikko Lehto -Date: Fri Jul 28 10:50:57 2017 +0300 +commit 3d7ba76ec80e4135af1593c433d5e84fab44fedf +Author: Daniel-Constantin Mierla +Date: Thu Apr 12 12:25:52 2018 +0200 - rtpproxy: fix docbook tags + corex: documentation for via_add_srvid() -commit 97db3ee61079de6cc2466628dae0f5e489819e98 +commit 6f89332ebbeb43862236c8a6a5686535a4e6caeb Author: Daniel-Constantin Mierla -Date: Fri Jul 28 09:12:26 2017 +0200 +Date: Thu Apr 12 12:21:52 2018 +0200 - db_mysql: safer conditions inside sb_add() for db api v2 + core: guarded bitwise test -commit 22fc924aa928fe126156290a10c4be8048ba4f8b +commit 2e5b49d9f210a8a1cc8253e9a7ed31921fe0d853 Author: Daniel-Constantin Mierla -Date: Fri Jul 28 09:11:25 2017 +0200 +Date: Thu Apr 12 12:12:23 2018 +0200 - avp: clear code for unsupported parameter format + corex: added via_add_srvid() function -commit afe6d712d5ef52ac6f3fe8e6f69406779e3a740e +commit ded5a70ed6bec3513c18044bd8852989a1d3f680 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 18:26:28 2017 +0200 +Date: Thu Apr 12 09:51:10 2018 +0200 - app_python: removed condition on classname, it cannot be null + core: new internal msg flag to add srvid param to local via -commit 9219b2116fc2887c0c8c2ad39465087e324784fb -Author: Emmanuel Schmidbauer -Date: Wed Jul 26 09:56:00 2017 -0400 +commit 9ddf2b6b5679e508da25dbdc4807115349541ea9 +Author: Kamailio Dev +Date: Wed Apr 11 23:48:06 2018 +0200 - db_postgres: fix typo and whitespace + modules: readme files regenerated - acc ... [skip ci] -commit 34d0c5df45a6281847dddb9d67e42dac50150fbe -Merge: 6ddca2e08 dac238ac3 -Author: Alexandr Dubovikov -Date: Thu Jul 27 22:03:16 2017 +0200 +commit e0403459f582e9264379a36061f1ef09e788bedc +Author: Henning Westerholt +Date: Wed Apr 11 23:41:24 2018 +0200 - Merge pull request #1191 from mslehto/sipcapture-byteorder - - sipcapture: byteorder fixes + module docs: remove info for confidential security reports again from module FAQs -commit dac238ac3fdf2d0f47d6915508160b8160e9ab11 -Author: Mikko Lehto -Date: Thu Jul 27 22:43:04 2017 +0300 +commit cc6865cd7d0fc48709acd7685d315eb5575e45bd +Author: Andreas Granig +Date: Wed Apr 11 17:28:32 2018 +0200 - sipcapture: add missing or invalid byte order conversion + db_redis: Fix scanning large tables + + * When querying large tables (e.g. pre-loading location by usrloc), + make sure to use O(1) when adding keys by prepending them to list. + * Increase batch size of redis scan command to reduce number of + redis queries. + * Batch creation of DB_ROW entries to free up memory allocated by + redis in heap regularly. + * Fix more issues reported by coverity. -commit 6e43bf84a2afc4e83ce33b7a416d7b81f7dd5658 -Author: Mikko Lehto -Date: Thu Jul 27 22:37:03 2017 +0300 +commit 80ac75e0d5cba58cbf6bb5fbce35b56e7f4fbe86 +Author: Kamailio Dev +Date: Wed Apr 11 15:46:28 2018 +0200 - sipcapture: remove excess byte order conversion - - - buffer pointer `tmp` in hepv3_get_chunk() was assigned to hg->time_(µ)sec - - therefore everytime route script calls pseudovariables, part of original - `buf` was byte converted + modules: readme files regenerated - tmx ... [skip ci] -commit 6ddca2e08bc8159ed00c80f6857df58c81cbd97d +commit d87a6a012f7888ea74a0f25731fb6b442e4e38aa Author: Daniel-Constantin Mierla -Date: Thu Jul 27 18:19:53 2017 +0200 +Date: Wed Apr 11 15:41:21 2018 +0200 - ctl: remove useless assignment + tmx: docs - notes that flush x/flags is not needed when doing tm relay -commit 59234b8fae1295455e347e27519813e63bf8ffb0 +commit d0668c7736455dc1231d6a5403effb297fe9d741 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 18:19:00 2017 +0200 +Date: Wed Apr 11 15:09:40 2018 +0200 - core: dns cache - safety check for out of bounds index + tm: resync xflags on new t_newtran() attempt + + - have the same behaviour as for flags + - reported by GH #1490 -commit 15f226ae5317db747da1e7b6aca23ad7ba29fb59 -Author: Richard Fuchs -Date: Thu Jul 27 10:23:32 2017 -0400 +commit f54ce325ced4ac8c0361a2c736cc199b5b641a6d +Author: Daniel-Constantin Mierla +Date: Tue Apr 10 13:52:14 2018 +0200 - rtpengine: fix issues reported by Coverity + pv: added new transformation {uri.tosocket} + + - converts a sip uri to socket address format + - from sip:address:port;transport=proto to proto:address:port -commit 1f50cd26ba0db88fd5f2c33e2b44a461f471e760 +commit b96a31409a3671f5f89617901886d9b5ffc61c73 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 13:13:21 2017 +0200 +Date: Tue Apr 10 13:29:01 2018 +0200 - pv: remove useless condition + pv: new config variable $sas + + - return source address in socket format (proto:address:port) -commit 2d68418a6df8d814e60f992b3ae1d74fbb13a2f3 +commit 0537f584d5032146a627b6173114a7cdd213e384 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 13:09:02 2017 +0200 +Date: Tue Apr 10 13:28:34 2018 +0200 - msrp: use formated string instead of complex sequence of concatenation + core: added helper function to retrieve source address in socket format -commit 6d3a97d1c3e62f876bbb7a17927b2a40243ec268 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 13:08:19 2017 +0200 +commit 52e69b493083187313bce49e3b979c178df1e7ab +Author: Kamailio Dev +Date: Tue Apr 10 12:46:38 2018 +0200 - ldap: free in case of error cases + modules: readme files regenerated - corex ... [skip ci] -commit 67bd080310c5b8371d9943fa964e81154c916356 +commit d8e823d5e57a05fdf3f785c713566a766bdfd6b0 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 12:42:42 2017 +0200 +Date: Tue Apr 10 12:33:57 2018 +0200 - lcr: check return for rewrite_uri() and do memset with size of alloc + corex: added documentation for set_source_address() -commit 0fd33d766c471e0f0710bd6f84898462420bfbaa +commit 684ae26119e3921c6e7b39556339b4f1d77f7d36 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:34:35 2017 +0200 +Date: Tue Apr 10 12:28:53 2018 +0200 - imc: better check for buffer size limit + corex: added set_source_address() function -commit eb6c94626d02e5a6fc2c93328591c140853535da +commit 358e507ea449ce00450ee59ecfa50079831ab29f Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:33:44 2017 +0200 +Date: Tue Apr 10 10:55:58 2018 +0200 - http_client: safety check for lenght of retrieved headers + core: exposed parse_protohostport() prototype -commit 00f2cfd1efb81030c705cf4b4f6aa3ac582d3059 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:32:56 2017 +0200 +commit baf7d8137fde96ece0f29faaa8fb89b0a80ab657 +Author: Henning Westerholt +Date: Tue Apr 10 07:34:36 2018 +0200 - http_async_client: safety check for cell value + ndb_redis: fix error introduced commit in 95cfa343857e4: 'for' loop initial decl. + + - fix error related to sentinel patch, introduced in commit 95cfa343857e4 + - error: 'for' loop initial declarations are only allowed in C99 mode -commit 36202503c531e5e6e865da018a59a494da6d9dc3 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:30:22 2017 +0200 +commit 20dae0fb989b7fb1a73718fdf23a0a2bb00c1549 +Author: Henning Westerholt +Date: Mon Apr 9 21:33:41 2018 +0200 - drouting: handle errors in fixup function + corex: fix warning about unused ri variable in corex module -commit e238567daa77f68df05cce68051792c3d7559ab7 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:11:36 2017 +0200 +commit 1365c77d838d59ffbf8ffcba9971217eef6a1026 +Author: Kamailio Dev +Date: Mon Apr 9 14:01:30 2018 +0200 - domainpolicy: check if set dst uri fails + modules: readme files regenerated - tls ... [skip ci] -commit bda4f0a8f8c7f65360fa73f51fb4fac289a8d334 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:10:56 2017 +0200 +commit f3848b93de4e23521871f686cc1d4eb699ac303b +Merge: e0736610b 394878313 +Author: aalba6675 +Date: Mon Apr 9 19:58:45 2018 +0800 - dmq_usrloc: remove useless condition + Merge pull request #1484 from aalba6675/hsm-support + + tls: add support for OpenSSL engine and private keys in HSM -commit 220f2e3a36a7d7f00c77ef6f8cc495b3ff995b01 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 11:10:01 2017 +0200 +commit 394878313770a3b8b57a346a0a323effe8e88a4f +Author: AntonyA +Date: Thu Mar 15 21:41:29 2018 +0800 - dialog: extra headers for dlg_bridge() built with memcpy + tls: add support for OpenSSL engine and private keys in HSM + + - add support for OpenSSL engine and loading private keys from HSM + - for when kamailio is a TLS edge proxy and needs to use HSM + - currently we initialize the engine in worker processes as PKCS#11 + libraries are not guaranteed to be fork() safe + + - new config params + - engine: name the OpenSSL engine + - engine_config: an OpenSSL config format file used to bootstrap engines + - engine_algorithms: list of algorithms to delegate to the engine + + - tested with Gemalto SafeNet Luna (AWS CloudHSM) with RSA and EC private keys + TLSv1.2 and PFS cipher suites -commit a81a809897ff381526db38e71af38dfcdfa74f04 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:15:00 2017 +0200 +commit e0736610b5173cc6363d4fbc8b203e1602166956 +Author: Victor Seva +Date: Mon Apr 9 12:57:00 2018 +0200 - ctl: close opened sockets in case of errors + db_redis: fix compilation warning + + > CC (clang) [M db_redis.so] redis_table.o + > redis_table.c:728:27: warning: comparison of constant -1 with expression of type 'unsigned char' is always false [-Wtautological-constant-out-of-range-compare] + > if (c == EOF) { + > ~ ^ ~~~ + > redis_table.c:754:27: warning: comparison of constant -1 with expression of type 'unsigned char' is always false [-Wtautological-constant-out-of-range-compare] + > if (c == EOF) { + > ~ ^ ~~~ + > redis_table.c:794:40: warning: comparison of constant -1 with expression of type 'unsigned char' is always true [-Wtautological-constant-out-of-range-compare] + > if (c != '\n' && c != EOF) { + > ~ ^ ~~~ + > redis_table.c:807:20: warning: comparison of constant -1 with expression of type 'unsigned char' is always true [-Wtautological-constant-out-of-range-compare] + > } while (c != EOF); + > ~ ^ ~~~ -commit b81204e213a7ca14b95dda8a9191e622f78661dd +commit 95cfa343857e49d07f4126559e067848794b472a +Merge: 08836b313 cc8e62155 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:13:42 2017 +0200 +Date: Mon Apr 9 12:20:12 2018 +0200 - call_obj: fix convertion from uint32 to uint64 + Merge pull request #1493 from schmurfy/redis_sentinel + + ndb_redis: adds support for sentinel -commit a3d3239833a8ca91566a28de2217ec166601e64f +commit 08836b3138a64d6fbac292ae68deb6b84f669de1 +Merge: 8030c1666 e2b80c357 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:12:46 2017 +0200 +Date: Mon Apr 9 12:16:48 2018 +0200 - avp: typedef hdr name struct to simplify memory allocation + Merge pull request #1494 from sergey-safarov/spec_update + + RPM spec update -commit 67e87eb16059351f174fc6f4d740eed33b5ace6b -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:11:17 2017 +0200 +commit 8030c1666d905d4310e88d66a6b8db8892065839 +Author: Kamailio Dev +Date: Mon Apr 9 12:16:26 2018 +0200 - auth_diameter: avoid passing large structs as params and better error handling + modules: readme files regenerated - corex ... [skip ci] -commit ec4d74ad7c1d1b14a4f33f995845ac7b299540cf +commit b159d282227443a107080f1d3f19f6d74f257bc7 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:09:26 2017 +0200 +Date: Mon Apr 9 12:11:03 2018 +0200 - app_python: remove condition on classname, being set to non-null + corex: docs for set_send_socket() and set_recv_socket() -commit e19c1ec58c8c51defd91f3e2581544bea224c0bf +commit b04744aaf95b8ef791a69c93554919af47f67652 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:08:24 2017 +0200 +Date: Mon Apr 9 12:04:56 2018 +0200 - core: pvapi - remove useless condition + corex: added set_send_socket() and set_recv_socket() + + - options to set send and recv sockets with parameters containing + variables -commit 0cb33abe8b2196fb26baf459f66d9d7b9e920013 -Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:07:09 2017 +0200 +commit 53c7b196f85889999fe2d12b8a41db618bc10e64 +Author: Kamailio Dev +Date: Mon Apr 9 10:46:53 2018 +0200 - core: mem/f_malloc - explicit set to 0 for bit shifting greater than size + modules: readme files regenerated - dialog ... [skip ci] -commit 107dc767391902d5d3b000deecafb804c1c68c1b +commit 65df297db29192b2214a737208518db5cc7bff84 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:05:16 2017 +0200 +Date: Sun Apr 8 09:45:06 2018 +0200 - core: dns cache - avoid bitshifting with more than the size - - - avoid undefined behaviour as per C specs + dialog: added missing documentation for end_timeout parameter -commit f3c68a5013b5a33937dbf735453da29df75ae09e +commit 25c4b9eb56e0c75daaa98256c590947daa2b9906 Author: Daniel-Constantin Mierla -Date: Thu Jul 27 09:03:26 2017 +0200 +Date: Sat Apr 7 08:25:49 2018 +0200 + + dialog: print ref and end_ts in dialog list rpc output + +commit 66e3c96f49e25ef7d2441f95b20d34a138572231 +Author: Kamailio Dev +Date: Fri Apr 6 09:31:52 2018 +0200 - core: cfg - removed unreachable code + modules: readme files regenerated - dialog ... [skip ci] -commit 2dc6e4700012336ac15dc9b6190f6750648854aa +commit 7ff8f04079fc9c7e6710b43c3e893518f17ef48e Author: Daniel-Constantin Mierla -Date: Wed Jul 26 22:32:39 2017 +0200 +Date: Fri Apr 6 09:21:56 2018 +0200 - auth_diameter: removed svn id, history + dialog: documented dlg_db_load_extra() function + + - related to #1274 -commit 3fad937b03ee7ba9d229344a6d88592602e25e32 +commit 0f2f76115a058161061345477ee55126d7e43420 Author: Daniel-Constantin Mierla -Date: Wed Jul 26 18:53:14 2017 +0200 +Date: Fri Apr 6 09:21:02 2018 +0200 - lib/ims: proper check of the pointer returned by pkg_malloc; indentation fixes + dialog: added dlg_db_load_extra() function + + - load dialogs from database that are not yet in memory of current + kamailio instance -commit a2b1f2692603a952a56bf513c68871d172139ca6 +commit daf1e437ed5fbf076a08ca957ea07930813123d4 Author: Kamailio Dev -Date: Wed Jul 26 17:46:20 2017 +0200 +Date: Thu Apr 5 20:16:42 2018 +0200 - modules: readme files regenerated - uac ... [skip ci] + modules: readme files regenerated - textops ... [skip ci] -commit 7d414352e0544cfe1739f3e36cec2c23379ae902 +commit d6cd5655df83d233562ab557a0e73cb5e65f0b1c Author: Daniel-Constantin Mierla -Date: Wed Jul 26 17:37:28 2017 +0200 +Date: Thu Apr 5 20:03:23 2018 +0200 - uac: added note about default value for reg_db_url + textops: documentation for append_body_part_hex() -commit 16006cd97c4eccb4b45c459a8585649450bf5772 +commit 4deaa7e5333b9534fcb9cce59cd085abc138ab3f Author: Daniel-Constantin Mierla -Date: Wed Jul 26 12:17:17 2017 +0200 +Date: Thu Apr 5 19:54:33 2018 +0200 - dialplan: exported dp_match() and dp_replace() to kemi framework + textops: added function append_body_part_hex(...) + + - add a new part to the body, with its content provided in hexa (it is + converted to decimal before appending) -commit 35219960e2960359d4d8b17f1566da611554a152 +commit 8549789a595fa62dabe877781e6f8d89dbbff0b3 Author: Kamailio Dev -Date: Wed Jul 26 12:01:25 2017 +0200 +Date: Thu Apr 5 14:31:36 2018 +0200 - modules: readme files regenerated - pv ... [skip ci] + modules: readme files regenerated - rtpengine ... [skip ci] -commit e95091700857ff96d9e7c6508104a5ba5d5487ff -Author: Daniel-Constantin Mierla -Date: Wed Jul 26 12:00:20 2017 +0200 +commit 1e712ed93aef8ab96ee7a9760f89ebc0fd02caff +Author: Claudiu Boriga +Date: Thu Apr 5 15:29:37 2018 +0300 - pv: added section ids in the docs + rtpengine: Add description for metadata flag -commit ab1d3a3302760713722b2fd3ef41615c53b597dc -Author: Kamailio Dev -Date: Wed Jul 26 09:31:32 2017 +0200 +commit 0729d9fc2cde7caf3e21b3e609cd26b24e38c19b +Author: Andreas Granig +Date: Thu Apr 5 11:18:47 2018 +0200 - modules: readme files regenerated - dialplan ... [skip ci] + db_redis: Force table scan if no query keys given -commit 55a98c84112fcca6b917f1efd08e8da3b1a9ab69 -Author: Daniel-Constantin Mierla -Date: Wed Jul 26 09:24:59 2017 +0200 +commit 5b3266c3e410363a62afbad5762f1fb40883abda +Author: Victor Seva +Date: Wed Apr 4 16:40:48 2018 +0200 - dialplan: documentation for append_branch parameter + pkg/kamailio/deb: remove kamailio-carrierroute-modules package -commit 4c65f4fd4dda697e48757e06e011fa58a2000588 -Author: Daniel-Constantin Mierla -Date: Wed Jul 26 09:20:52 2017 +0200 +commit abc18701ae7b1a05d9bb1b1245875b8cf3385b68 +Author: Victor Seva +Date: Wed Apr 4 16:35:29 2018 +0200 - dialplan: added append_branch parameter + Makefile.group: move carrierroute to extra modules, don't depend on libconfuse - - control if the module should do append branch if r-uri or r-uri - username are changed inside failure route - - default value is 1 (append branch - preserves compatibility) + This reverts commit 2bb65fe9c1d60d3d2f561cba7c8b1fa800a8ecf3. -commit f3a96c82dae858da68d586a2ded97d7ae3c11a2e -Author: Kamailio Dev -Date: Tue Jul 25 19:46:22 2017 +0200 +commit 66e36e75a855e8170dd788a312061aff71991e18 +Author: Victor Seva +Date: Wed Apr 4 17:04:22 2018 +0200 - modules: readme files regenerated - dialplan ... [skip ci] + pkg/kamailio/deb: remove app_java from sid/buster + + See #1487 -commit 2cae9f8a301befb0a00f1831c9d5773924e35c10 -Author: Daniel-Constantin Mierla -Date: Tue Jul 25 19:40:34 2017 +0200 +commit 4f11fbef1ed90d1366cadfad82fa5afbeb0d56f6 +Author: Kamailio Dev +Date: Wed Apr 4 18:46:33 2018 +0200 - dialplan: added documentation for dp_match() and dp_translate() + modules: readme files regenerated - dialog ... [skip ci] -commit 2c105fa6a66e24a6d9e24f96b0f4c04b60ce0da9 +commit 7db5d4c4efb2131a7393e638f109ddbe746ffeff Author: Daniel-Constantin Mierla -Date: Tue Jul 25 19:06:05 2017 +0200 +Date: Wed Apr 4 18:36:03 2018 +0200 - dialplan: added dp_match() and dp_replace() functions + dialog: docs - documentation for h_id_start and h_id_step parameters - - alternatives to dp_translate() with dedicated required parameters - (avoiding second parameter of two variables separated by '/') - - dp_match(dpid, inval) - - dp_replace(dpid, inval, outvar) - - dpid can be interger or variable - - inval can be a static or dynamic (with vars) string - - outvar has to be a writable variable + - related to GH #1274 -commit e049d6db78d9a86049f88acc27188d726974054f +commit 8f9b6ea5637b26092e591585b82eb59ed2f42775 Author: Daniel-Constantin Mierla -Date: Tue Jul 25 19:00:46 2017 +0200 +Date: Wed Apr 4 18:34:55 2018 +0200 - core: added helper fixup for int and str dynamic parameters + dialog: added h_id_start and h_id_step parameters + + - allow to control how internal dialog hash id is generated to avoid + overalapping values across many instances of kamailio -commit 36b8c1a138548ea3689cac77e18ac304ec2ee0e5 -Author: Daniel-Constantin Mierla -Date: Tue Jul 25 14:36:51 2017 +0200 +commit e2b80c357895e087a17d357afcb2db7614eac4d5 +Author: Sergey Safarov +Date: Wed Apr 4 06:38:17 2018 +0000 - dialplan: increased the size for dialplan attributes to 256 + pkg/kamailio/obs: Removed libconfuse dependency for carrierroute module -commit c9ff171b4ce90671eebbef914e12e8d59521e621 -Author: Kamailio Dev -Date: Tue Jul 25 15:01:20 2017 +0200 +commit 8ce41cf1e15e367f0952b257841e3dfe60750f72 +Author: Sergey Safarov +Date: Wed Apr 4 07:28:32 2018 +0000 - modules: readme files regenerated - sipcapture ... [skip ci] + pkg/kamailio/obs: Added pua_json module -commit 2f872dcc684a345cff09a437ae4a3767613b5529 -Author: Mikko Lehto -Date: Tue Jul 25 15:53:52 2017 +0300 +commit dc8faaf57a9c85b7133f112bdedd328a9520eb73 +Author: Lucian Balaceanu +Date: Wed Apr 4 10:52:56 2018 +0300 - modules/sipcapture: improve nonsip_hook documentation + carrierroute: fixed duplicate options definition error when parsing src file + + - added logic to reset_prefix_opts to reset all target_options fields (including "visited") -commit b59771bb81bbe240b98113252df10377a75da700 -Author: Mikko Lehto -Date: Tue Jul 25 15:48:10 2017 +0300 +commit b27475511756b04fe4d4ee5f76bcc14e4186bc58 +Author: Kamailio Dev +Date: Wed Apr 4 09:01:55 2018 +0200 - modules/sipcapture: fix (param_export_t).name typo + modules: readme files regenerated - dialog ... [skip ci] -commit 1632bb7ced8aab774cc3c77abba1246c1a848a5b +commit f7ed7d289978490f374f4f3eea52e91dccc3752f Author: Daniel-Constantin Mierla -Date: Tue Jul 25 14:05:17 2017 +0200 - - pv: xavp related functions exported to kemi framework +Date: Wed Apr 4 08:47:25 2018 +0200 -commit 8db85222c3f82e8af1fbeb38eaabb9aec99ecab2 -Author: Kamailio Dev -Date: Tue Jul 25 14:01:22 2017 +0200 - - modules: readme files regenerated - pv ... [skip ci] + dialog: added end labels needed by dlg_db_load_callid() + + - they were removed by commit 27c23f57f70936e557d9566e6122958c2e032970 + not being used after a previous commit, but meanwhile this function was + developed -commit e9a132afc0fa4b02a7030c2c20ade65a1d693006 +commit 0180884c6111b6a1d88fc558acbc801718c011b8 Author: Daniel-Constantin Mierla -Date: Tue Jul 25 13:49:05 2017 +0200 +Date: Wed Apr 4 08:44:42 2018 +0200 - pv: notes about dynamic parameters for xavp to var funtions + dialog: documentation for dlg_db_load_callid() -commit 45506c4343ae03450e33a04b9f2e9a3196d57306 +commit 3d3f5ca116353cc618f52d5c2792f360377a63ca Author: Daniel-Constantin Mierla -Date: Tue Jul 25 13:45:28 2017 +0200 +Date: Wed Apr 4 08:35:22 2018 +0200 - pv: support for dynamic params for var to xavp functions + dialog: added function dlg_db_load_callid(val) + + - load dialog from database based on callid parameter + - related to GH #1274 -commit 78722ff2f1e290dc6ae41a4d718e9c4cea20926b -Author: Daniel-Constantin Mierla -Date: Tue Jul 25 10:54:20 2017 +0200 +commit 27047ba17cd600fcb4998cd0325cb0d77e008a5e +Author: Sergey Safarov +Date: Wed Apr 4 06:35:42 2018 +0000 - dialplan: catch error case from macro used inside dp_trans_fixup() + pkg/kamailio/obs: Added acc_json module -commit 34265457e7c09b56dec295b753fd8250ef8b0c41 -Author: Federico Cabiddu -Date: Mon Jul 24 15:16:21 2017 +0200 +commit a4318b11af06cf877747a5d720945e310fe45639 +Author: Sergey Safarov +Date: Wed Apr 4 06:27:09 2018 +0000 - tsilo: coherent locking in ts_append + pkg/kamailio/obs: packaged db_redis module -commit 0cf4ad7b4e839856eef4dc2cd76adacd1627ce7c +commit 2bb65fe9c1d60d3d2f561cba7c8b1fa800a8ecf3 Author: Daniel-Constantin Mierla -Date: Mon Jul 24 13:24:49 2017 +0200 +Date: Tue Apr 3 23:34:05 2018 +0200 - app_perl: free on error cases for modf execution + Revert "Makefile.group: move carrierroute to extra modules, don't depend on libconfuse" + + - this reverts commit 8dbfdc7b1213da2b614b4a6d90680ffd0e8a3fc8. + - avoid eventual Jenkins failures when building nightly deb packages + from master + - initial commit should be pushed along with related updates to deb + packaging specs -commit 0f3fb6b8cb04162be07e9246c23bcfa8b8e4e4e6 -Author: Daniel-Constantin Mierla -Date: Mon Jul 24 13:00:44 2017 +0200 +commit 8dbfdc7b1213da2b614b4a6d90680ffd0e8a3fc8 +Author: Henning Westerholt +Date: Tue Apr 3 22:03:07 2018 +0200 - xmlrpc: handle return codes + Makefile.group: move carrierroute to extra modules, don't depend on libconfuse + + - move carrierroute module to extra module group, as it don't depends on the + libconfuse library anymore -commit 96582d77583719d7bb9c5e5437198800ae9e7a12 -Author: Daniel-Constantin Mierla -Date: Mon Jul 24 12:22:00 2017 +0200 +commit 60fc36982d804466dd2a38f8c47e05e3cbf20ad9 +Author: Henning Westerholt +Date: Tue Apr 3 21:47:47 2018 +0200 - xcap_client: safety check for namespace variable + dialog: fix warning about wrong function prototype for dmq_send_all_dlgs(..) -commit e6e04f4c96e5fdd7a3a90f265fd6cb7470f1135b -Author: Daniel-Constantin Mierla -Date: Mon Jul 24 12:15:55 2017 +0200 +commit 27c23f57f70936e557d9566e6122958c2e032970 +Author: Henning Westerholt +Date: Tue Apr 3 21:46:18 2018 +0200 - xcap_client: removed unused api function get_elem() + dialog: fix warning about unused end label, left over from commit 5362d0f78ef -commit 8147009b34639304fb75d4f6c39269c49ee385ca -Author: Daniel-Constantin Mierla -Date: Mon Jul 24 12:15:09 2017 +0200 +commit 6f79e7ccf985ea06e9f50862b59ef7e5b535fe54 +Author: Kamailio Dev +Date: Tue Apr 3 21:46:45 2018 +0200 - xcap_client: handle return code for strchr() + modules: readme files regenerated - acc ... [skip ci] -commit 371293257d000c004f78068f15a4184df3dbd57b -Author: Daniel-Constantin Mierla -Date: Mon Jul 24 12:14:18 2017 +0200 +commit 049dbce568eafe985539675a935f0a46a128ea5f +Author: Henning Westerholt +Date: Tue Apr 3 21:37:15 2018 +0200 - presence_xml: fixed misleading error message + modules doc FAQ: change private contact to include only security issues -commit 4ba402434449ec9cb426d5200b12c5cec4d07ab4 +commit 1af3caf427d3268fe7caa8d8dbd4ff2f6f3ec59d Author: Daniel-Constantin Mierla -Date: Mon Jul 24 11:56:57 2017 +0200 +Date: Tue Apr 3 18:03:55 2018 +0200 - stun: link attribute when calling stun_parse_body() with an existing list + core: removed invalid lock release introduced by commit f775e4000e -commit f75eba63a1f0176adc8cd38846a0d1943471e10c -Author: Daniel-Constantin Mierla -Date: Mon Jul 24 11:44:21 2017 +0200 +commit cc8e62155614ebd83f4ac8ace513bb5cdfcd9f50 +Author: Julien Ammous +Date: Tue Apr 3 12:08:53 2018 +0000 - statsd: simplified error handling inside statsd_connect() + ndb_redis: adds support for sentinel -commit 711a5600330793b2ca787ce451f2ad48620dd639 +commit 4c4a8e3fcf4492b9acc87ff47df63b7ab0b35429 Author: Daniel-Constantin Mierla -Date: Mon Jul 24 11:38:51 2017 +0200 +Date: Tue Apr 3 10:12:03 2018 +0200 - statistics: free vars in case of error in fixup function + app_sqlang: updated to use kemi api sr_kemi_core_set_drop() -commit 6997738a7098ef56becfd40cb6e7c7864d1975f0 +commit 42f53e1ca7b0a5e246d470f7cf0b26aeca9b9c2a Author: Daniel-Constantin Mierla -Date: Mon Jul 24 08:26:38 2017 +0200 +Date: Tue Apr 3 10:11:51 2018 +0200 - sst: add 0 after memcpy + app_lua: updated to use kemi api sr_kemi_core_set_drop() -commit 823bad5f3aad5c77ff9986ecf4be2517df043788 +commit 84bf4ccbbaef10718853453c577202b241101684 Author: Daniel-Constantin Mierla -Date: Mon Jul 24 08:22:24 2017 +0200 +Date: Tue Apr 3 10:11:08 2018 +0200 - uid_uri_db: safer check for accessing to header + app_jsdt: updated to use kemi api sr_kemi_core_set_drop() -commit 021e49d6293cc156cd85791dfc9d59307e62fba0 +commit f5be717996b6e3ad6c9d98f1d856e48414faa405 Author: Daniel-Constantin Mierla -Date: Sun Jul 23 10:08:47 2017 +0200 +Date: Tue Apr 3 10:08:51 2018 +0200 - tm: refactored error handling for eval_uac_routing() + core: kemi - renamed drop prototype to sr_kemi_core_set_drop() + + - match the implementation after kemi API update for drop -commit 9c34b68ee840880dd6be37694de8e8255f8bfb45 +commit a5dd60c8d7e04731f12108838a3c82149e04ef9c Author: Daniel-Constantin Mierla -Date: Sun Jul 23 09:58:16 2017 +0200 +Date: Tue Apr 3 09:27:19 2018 +0200 - presence_conference: free xml array in case of error + ipops: mask subnet address for ipv6 comparison + + - coherent with ipv4 behaviour -commit dd0c6fb586a61cb7e2eed1093ccf8f5158761ae3 +commit 162c304d1264044ac1a46a379b75bafb4c91bcfd Author: Daniel-Constantin Mierla -Date: Sun Jul 23 09:42:21 2017 +0200 +Date: Tue Apr 3 09:24:11 2018 +0200 - msilo: reorganized tests to free db_res and build of extra headers + ipops: use proper variable for ipv6 subnet comparison -commit 65ac6de1aebd6143c44f35ef28f46c2cd3a56723 +commit 1f675c68b3ed2b2e0a497fecd942c9213f0de058 Author: Daniel-Constantin Mierla -Date: Sun Jul 23 09:01:07 2017 +0200 +Date: Tue Apr 3 09:11:37 2018 +0200 - mediaproxy: handle return pointer values + ipops: mask subnet address when comparing + + - allow using full ip address when specifying subnet parameter + - more flexibility on using values from sip message + - GH #1250 -commit 0efa76d80e159fd2a7516388fe2405ad4fb6c5b6 +commit 5362d0f78ef1542a882b96bc1b04285d1b2e69c1 Author: Daniel-Constantin Mierla -Date: Sun Jul 23 08:59:43 2017 +0200 +Date: Mon Apr 2 17:57:42 2018 +0200 - json: remove use of deprecated macro is_error() + dialog: merged functions related to loading records from db + + - select operation was done in a dedicated function without a good + reason, result being processed in another one -commit 5f9eba3eb42cdb8a5c2ec840cec29757d480e136 +commit 6d2312b8b0913f2f48e0f951c9578924e1d14f1d Author: Daniel-Constantin Mierla -Date: Sat Jul 22 08:35:01 2017 +0200 +Date: Mon Apr 2 08:46:09 2018 +0200 - memcached: handle error cases and alloc enough for null termination + topos: skip local generated request not part of a dialog -commit 449d435194338a4f3acf079774adcbef7ad7b794 +commit 127beb37ff647bc721407b9fa1d5cd61c20dd17d Author: Daniel-Constantin Mierla -Date: Sat Jul 22 08:34:01 2017 +0200 +Date: Sat Mar 31 13:07:55 2018 +0200 - nat_traversal: handle return values for errors + sqlops: exported sql_query_async() to kemi framework -commit 1891dcb958100b5383f40278c4d675474d309df4 -Author: Daniel-Constantin Mierla -Date: Sat Jul 22 08:33:22 2017 +0200 +commit 0f6c984feb31f316faaf89d4e83d172fc9c0fc4f +Author: Kamailio Dev +Date: Fri Mar 30 21:48:36 2018 +0200 - pdt: reorder checks to avoid null access + modules: readme files regenerated - acc ... [skip ci] -commit 9136ce8017660e92f624de6f7b8a07e50620dfa1 -Author: Daniel-Constantin Mierla -Date: Fri Jul 21 13:51:36 2017 +0200 +commit f167a0d107d8d266dcdf6ab3d3f649b1caae36e5 +Author: Henning Westerholt +Date: Fri Mar 30 21:37:19 2018 +0200 - xhttp: proper check for return of add lump rpl + module FAQs: fix help for private issues in module FAQs, alter docbook entitity + + - fix wording for private issues in module FAQs + - modules: acc, app_perl, cdp, cdp_avp, dialog, dispatcher, ims_dialog, + ims_registrar, ims_usrloc, nathelper, registrar, rtpengine, rtpproxy, + snmpstats + - change docbook entity to a more sensible name "kamailioprivatemail" -commit a2d010cea219fa1cd84d0cf84825f3cc63536530 +commit 684f98ace6ec50d5c52b8f6e14fe184079a6206f Author: Daniel-Constantin Mierla -Date: Fri Jul 21 13:51:19 2017 +0200 +Date: Fri Mar 30 17:15:26 2018 +0200 - xmlops: removed dead code return + sqlops: proper function prototypes for kemi exports to get num rows and cols -commit 08c404f245e55b37f71d4326afd959ecf1ea831c +commit 1d1eeafc88979df41e2dcb6f2c8b41d16695fd7d Author: Daniel-Constantin Mierla -Date: Fri Jul 21 13:50:07 2017 +0200 +Date: Fri Mar 30 13:32:01 2018 +0200 - xcap_server: proper test of retun code for add lump rpl + dispatcher: fixed kemi exports param types -commit e6c9474e456fb0673c87f87a325d9dc40aa10d32 +commit cc661d776621a5f2d4370eb364402c2a53242cc7 Author: Daniel-Constantin Mierla -Date: Fri Jul 21 10:27:57 2017 +0200 +Date: Fri Mar 30 13:15:48 2018 +0200 - core: cfg ctx - removed unused variable + app_lua: test if number of parameters is enough for kemi funtions -commit e7a89633c809345aabdcf68f120f01e7d52d116d -Author: Daniel-Constantin Mierla -Date: Fri Jul 21 10:11:07 2017 +0200 +commit 3c373fa7d9973197fcd367f11c61ed380d6eeb75 +Author: Henning Westerholt +Date: Fri Mar 30 00:21:20 2018 +0200 - cfg_rpc: hanlde return code inside cfg.reset rpc command + carrierroute: doxygen fixes -commit 1ed223dcccf4c2ea623db75fdda16adc924b916e -Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:57:39 2017 +0200 +commit b0b9c16cdc4deefb2ace276ce126c2cb3aa03129 +Author: Henning Westerholt +Date: Fri Mar 30 00:01:34 2018 +0200 - speeddial: simplified access to db_res and the free of it + tsilo: doxygen fixes -commit 8f460d16e84b9bc0b01463113c6e7e79d297f64e +commit ed87ecb6fc3d7e12cd30b2c7a1b3f2b01e58c96c Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:56:58 2017 +0200 +Date: Thu Mar 29 12:10:58 2018 +0200 - sqlops: free allocated pv list in case of error inside fixup_sql_pvquery() + core: kemi - renamed KSR.drop() to KSR.set_drop() + + - avoid confusion with the native config drop(), which does an exit as + well, not only setting the drop flag -commit bd5873c4e33188238633a8f6c48a0c5c28041179 -Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:56:10 2017 +0200 +commit 4bfcc38c665fd321aee8e6fea8324156ba583f84 +Author: Kamailio Dev +Date: Wed Mar 28 08:31:58 2018 +0200 - dialplan: free allocated vars in case of errors + modules: readme files regenerated - phonenum ... [skip ci] -commit f2796ceb0a127c1a6580a9d9582ec9bc0fba6081 +commit 4d2e1172be1184666275cacb7481dd691071954d Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:55:04 2017 +0200 +Date: Wed Mar 28 08:28:15 2018 +0200 - dialog: increase puid size for profile to ensure null termination + phonenum: documentation for phonenum_match_cn() -commit 06e1ad190ea62efc09a158f9c86d447d078d805b +commit 431e982157f687789c65e7cb74e3f68939a05730 Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:53:53 2017 +0200 +Date: Wed Mar 28 08:26:02 2018 +0200 - debugger: fix orig offset computation inside w_dbg_sip_msg() + phonenum: set the order of params for phonenum_match_cn() -commit 4363b863e9dcd3b31c1d2b2febd9b11c40ec3eec +commit cc7c066d98369e01ab6b8dfe699ce9131cfb239e Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:52:44 2017 +0200 +Date: Tue Mar 27 21:59:24 2018 +0200 - db_postgres: handle return code for setsockopt() + phonenum: new function phonenum_match_cn(...) + + - match a phone number within a specific country provided by country + code two letter -commit cbc5502e23f58b50cb11124defe0b7ad618899b6 -Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:52:11 2017 +0200 +commit b8a75c1c4fda079515606eb59273945842aff1be +Author: Guillaume Bour +Date: Tue Mar 27 21:56:49 2018 +0200 - db_cluster: free in case of error + keepalive: cleanup rpc output (#1476) -commit b441903c6c109aaa35c3b4781c268f9497a00fc6 +commit 2af701f0a1df5d3c705f614167c9e815ddcc1708 Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:51:26 2017 +0200 +Date: Mon Mar 26 09:37:19 2018 +0200 - avp: removed history, coherent indentation + tm: set xflags in private clone for execution on reply route -commit dc00778decd5a7c91208fb1ae31d875677a2b9de +commit 8bc037bc87ced907b8b2e59a2c5fcb45291836fd Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:45:18 2017 +0200 +Date: Sun Mar 25 06:34:49 2018 +0200 - app_python: free buf in case of get exception error + dialog: skip printing profiles and vars in terminated state for rpc dialog list + + - they can be delelted at that point, not being referenced by the same + field -commit 5c883b5ff70ad24befd5191be41502e6e35fec88 -Author: Daniel-Constantin Mierla -Date: Fri Jul 21 08:44:37 2017 +0200 +commit 0aaa50ce82030861bcc3bf5a300b7d0a96a61f0b +Author: Kamailio Dev +Date: Sat Mar 24 04:31:31 2018 +0100 - core: pvapi - added free_pvname_list() + modules: readme files regenerated - jsonrpcs ... [skip ci] -commit a4ee0d3fd0c1b4147d462c8275d0150e8e934e2f +commit 0fcac52fc9e6445f986c9a5a9ee1b5230030035b Author: Daniel-Constantin Mierla -Date: Thu Jul 20 21:55:34 2017 +0200 +Date: Sat Mar 24 04:19:27 2018 +0100 - ipops: replace return with goto error to release resources + jsonrpcs: example accessing the jsonrpc response for jsonrpc_exec() -commit a19a06f6c302a7fbac9b137cc1558d47730ead2f -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 20:34:57 2017 +0200 +commit 804d6b85bdbe55b32edacdbd895b0ad763bf619f +Author: Henning Westerholt +Date: Fri Mar 23 21:49:17 2018 +0100 - tsilo: check return code for parse_uri() + nathelper: Support for 192.0.0.0/29 as NATed source (pull request GH#1488) -commit 4ea9495681bca8e8eb559da1ff5887c524076f63 -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 16:44:36 2017 +0200 +commit 32f1671bee21d5f8d52b5febf50ddc7b26f6919a +Author: Henning Westerholt +Date: Fri Mar 23 21:48:55 2018 +0100 - app_python: implemented the read of 5 or 6 kemi str parameters + nat_traversal: Support for 192.0.0.0/29 as NATed source (pull request GH#1488) -commit ab627c14e6f06b8e568f9b6ab4e3cd396368d6bb -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 16:35:15 2017 +0200 +commit 3848b5286b74894ed162e1aae8c80ee3d703c21f +Author: Henning Westerholt +Date: Fri Mar 23 21:43:11 2018 +0100 - alias_db: simplify error handling for db query function + ipops: Support for 192.0.0.0/29 as NATed source (pull request GH#1488) -commit 35d2d50ca5a170bb6518c45bec482a8cd7625177 -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 16:25:42 2017 +0200 +commit b4fdeb01bd52427e9fa2cb8696b3b3631e871a79 +Author: Kamailio Dev +Date: Fri Mar 23 08:47:09 2018 +0100 - topos: handle return code for parse_headers() + modules: readme files regenerated - rr ... [skip ci] -commit af9c9c4798972f0112e7644bfa78e34476f77bda +commit d2479c96891db6656dbe880c6600d18f5fa38e33 Author: Daniel-Constantin Mierla -Date: Thu Jul 20 13:12:06 2017 +0200 +Date: Fri Mar 23 08:33:09 2018 +0100 - core: adjustments for cleaner compiler analyzing reports + evrexec: use route_get() in modparam callback + + - routing blocks might not have been parsed yet -commit 42d74f35e4d7be9f46314c1805a77983a7cdf6fb +commit 7907cd15b5aacef8990e50dc19055a4e9b8e4359 Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:31:00 2017 +0200 +Date: Fri Mar 23 08:17:31 2018 +0100 - uid_avp_db: better error handling + rr: docs - added section ids -commit c5cdd8dce66d94f69f773b5361ef2b477df47f06 -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:30:16 2017 +0200 +commit de7e4a423f37d094b941ae3f393448e7dacb5342 +Author: Kamailio Dev +Date: Thu Mar 22 08:47:02 2018 +0100 - uid_domain: avoid double free in case of error + modules: readme files regenerated - sqlops ... [skip ci] -commit dadd54a46f81ef05478e622a89a3bb739907cade -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:29:47 2017 +0200 +commit f464c780bf402eebadf0d95623b07b776e6a8258 +Author: Henning Westerholt +Date: Thu Mar 22 08:35:48 2018 +0100 - xmpp: close fd in case of write error + sqlops: fix doc error introduced in commit 7ce1ed71 -commit a859ff6e74b0cdc08f30c43adda865a74283b3c4 +commit dc0586bbf6743080f500800808593d6cc1007945 Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:28:58 2017 +0200 +Date: Thu Mar 22 04:45:40 2018 +0100 - xprint: safety checks for error cases + app_python: avoid releasing uninitialized gstate -commit ae7dce434e10ef570e1c6daa8ca5d9f800239ddf -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:28:32 2017 +0200 +commit e85f66f041ff25fa026d2ddc2116c2280be3857e +Author: Kamailio Dev +Date: Wed Mar 21 22:46:36 2018 +0100 - utils: handle error case for xcap auth status to free allocated structs + modules: readme files regenerated - msilo ... [skip ci] -commit 2dc19e5c78977416c15ebe93a4f4e6d72ed475a0 -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:25:20 2017 +0200 +commit 7ce1ed7105f184e1b41565e0c40c6d32fabaa974 +Author: Henning Westerholt +Date: Wed Mar 21 22:33:37 2018 +0100 - tls: free temporary buffer when fixing shm path name for config + sqlops: use database entities in docs -commit 45948fc933f99e6a960b835069b7e29d1ea788be -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:24:22 2017 +0200 +commit 79fce324edf84f4253d49a897c86f7099740d646 +Author: Henning Westerholt +Date: Wed Mar 21 22:32:58 2018 +0100 - tm: proper location of last rr for strict routing on local requests + speeddial: use database entities in docs -commit 1968b43731afdcec1bd40985176680c8af1be921 -Author: Daniel-Constantin Mierla -Date: Thu Jul 20 09:23:14 2017 +0200 +commit 2e4b862af6809222140671bd0200e610a08fbec2 +Author: Henning Westerholt +Date: Wed Mar 21 22:32:20 2018 +0100 - core: msg translator - switch condition to buf pointer instead of lenght - - - better correlation with returned value from functions + siptrace: use database entities in docs -commit 0b177a2bd4217320f51e6a621b8c237c33dbebb9 -Author: Kamailio Dev -Date: Wed Jul 19 16:31:29 2017 +0200 +commit 7171bab19bab04535ab1a8f30a8c8fb3293f4fc0 +Author: Henning Westerholt +Date: Wed Mar 21 22:31:47 2018 +0100 - modules: readme files regenerated - textops ... [skip ci] + mohqueue: use database entities in docs -commit 7a6d31935c7e8e29dd150412f1e6281fdf3efd53 -Author: Mikko Lehto -Date: Wed Jul 19 17:28:16 2017 +0300 +commit e82147166ae1961be827f6b05e00d80073d0880e +Author: Henning Westerholt +Date: Wed Mar 21 22:31:10 2018 +0100 - modules/textops: msg_apply_changes() comes from textopsx module + ims_usrloc_pcscf: use database entity in docs -commit 01771c42d3b96678a2d0ba08bc1e5c83191ada8d -Author: Daniel-Constantin Mierla -Date: Wed Jul 19 14:38:22 2017 +0200 +commit 90e96be7efab2a41417f3997fb06010ce0973d27 +Author: Henning Westerholt +Date: Wed Mar 21 22:30:30 2018 +0100 - core: dns case - init local proto to UDP if not provided for srv resolve + db_cluster: use database entity in docs -commit 632304b90f9af7151c99f98ec63ddbecca31df9c -Author: Daniel-Constantin Mierla -Date: Wed Jul 19 11:12:32 2017 +0200 +commit a315486e6061680a253629d90505c011fe544d94 +Author: Henning Westerholt +Date: Wed Mar 21 22:29:54 2018 +0100 - tm: copy branch flags in the new branch created by the dns failover + doc stylesheets: use kamailio default database -commit 2111a605760f998cc94329713f1d16cfbe0294bc -Author: Daniel-Constantin Mierla -Date: Wed Jul 19 11:03:49 2017 +0200 +commit 25ca18fdafae53e38c296852547f3d71155681ec +Author: Henning Westerholt +Date: Wed Mar 21 22:20:46 2018 +0100 - path: handle return code when getting the values for cfg parameters + msilo module: fix openser DB URL in docs and example cfg -commit e5e850bf4d35e50303b6827f1578e9492dcbae1e -Author: Daniel-Constantin Mierla -Date: Wed Jul 19 10:52:49 2017 +0200 +commit 6b39875c2f0d6f475171232890e0c80c09685787 +Author: Henning Westerholt +Date: Wed Mar 21 22:04:57 2018 +0100 + + usrloc: doxygen docs fixes + +commit fbff4a8709e12f699098c23626dc6e75f620b978 +Author: Kamailio Dev +Date: Wed Mar 21 15:01:31 2018 +0100 - app_sqlang: removed dead code + modules: readme files regenerated - phonenum ... [skip ci] -commit 150e420b0906dcba9daac86f8447ba2684062a2c +commit 70a61e0bfa0640fbba8d6cfe57f6ad4c6a431b84 Author: Daniel-Constantin Mierla -Date: Wed Jul 19 10:52:29 2017 +0200 +Date: Wed Mar 21 14:59:00 2018 +0100 - app_jsdt: removed dead code + phonenum: docs - updated pv names to match c code -commit 5937adf01f7c3e2382a1f2dc149a677fe6cd26f1 +commit 54c6a03704767a3dc15eb633ce1628e93c99a8ff Author: Daniel-Constantin Mierla -Date: Tue Jul 18 23:24:07 2017 +0200 +Date: Wed Mar 21 14:49:26 2018 +0100 - auth_ephemeral: use dedicated enum type for auth return codes - - - reorder safety checks not to access msg structure if null + phonenum: build cctel from formatted number -commit 85ac764bf89009dac758aa178317f15acb42f44d +commit 2196c677785fc4df4f4f1c03831eff679dcd5363 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 16:44:47 2017 +0200 +Date: Wed Mar 21 14:48:58 2018 +0100 - core: allow event_route blocks to run ONEVENT_ROUTE|REQUEST_ROUTE functions - - - preserve compatibility with old behaviour that allowed REQUEST_ROUTE - functions to be used inside event_route + phonenum: fixed lenght in pv name comparisons -commit ba8ee4b8f921da886391a67088776e8afa5e773b -Author: Victor Seva -Date: Tue Jul 18 16:40:54 2017 +0200 +commit f80bfac4c8f91144248a5569fb3c844e0ab84159 +Author: Kamailio Dev +Date: Wed Mar 21 08:31:56 2018 +0100 - pkg/kamailio/deb: version set to 5.1.0-dev5 + modules: readme files regenerated - nathelper ... [skip ci] -commit bc6d715631a2d48206987dd03e955fbb15634dc8 -Author: Daniel-Constantin Mierla -Date: Tue Jul 18 16:07:03 2017 +0200 +commit f327fbb8fbb61a2298aa05dec5e265d266d3e44e +Author: Henning Westerholt +Date: Wed Mar 21 08:22:27 2018 +0100 - Makefile.defs: version set to 5.1.0-dev5 + nathelper: small docs addition related to nat_uac_test() -commit e4ebacba9bfd7566436d72a77fd55a1b71066955 -Author: Daniel-Constantin Mierla -Date: Tue Jul 18 15:59:57 2017 +0200 +commit f3cfb4910ae0fd197757d2ec2362b9715205e21e +Author: sergey-safarov +Date: Tue Mar 20 21:20:11 2018 +0300 - auth_db: use the dedicated return types to avoid mixing values in int vars + textops: Fixed remove_hf_exp arguments params (#1485) -commit 41e9af5833ff49e36a646a8cbe47d835f73661f0 +commit 3ada08521de545f76e7d85d6fdf900c576c67664 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 15:53:50 2017 +0200 +Date: Tue Mar 20 17:28:32 2018 +0100 - auth: use the dedicated types for return codes instead of generic int + core: flags - moved xflags functions out of disabled ifdef zone -commit 2a19f9e6f4203800707e0a63753e0ee1c4bb4685 +commit a3d9816d3881eb9743a14cb1306533469a821d47 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 15:32:32 2017 +0200 +Date: Tue Mar 20 16:48:26 2018 +0100 - siputils: log messages for error cases + core: check for result of dlopen() pointers -commit b70d744ad2a3603a8e7701de59542b1bf804a63c +commit 77beeb5d765119f46589a9d519123256fb8a9138 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 15:02:23 2017 +0200 +Date: Mon Mar 19 15:05:50 2018 +0100 - core: defined EVENT_ROUTE as (REQUEST_ROUTE|ONEVENT_ROUTE) + core: new parameter kemi.event_route_callback - - ONEVENT_ROUTE is (1<<9) - - should allow diferentiating between REQUEST_ROUTE and EVENT_ROUTE - blocks execution + - set the name of kemi function to be executed for core event route + equivalet + - default value is not set (no callback function name). If set to + "none", it is also not executed. + - callback function receives a string parameter with the name of the event + - execute kemi event callback for "core:worker-one-init" -commit 9657cfef255497dd58c1a15cc573d69d8d410048 -Author: Daniel-Constantin Mierla -Date: Tue Jul 18 14:54:23 2017 +0200 +commit 22bd6ca04dd20951a20aca77ec9a8cb46cdf73f9 +Author: Andreas Granig +Date: Mon Mar 19 17:37:29 2018 +0100 - tm: small cleanups for sane rutime handling + db_redis: Fix various pointer and memory issues + + Issues discovered by coverity: + * Fix mem leaks in error handling + * Fix potential null pointer deref + * Fix potential out-of-memory cases -commit 0225f89a658172d0652e0da14549ee03653114d2 -Author: Daniel-Constantin Mierla -Date: Tue Jul 18 09:11:12 2017 +0200 +commit eda57ef94bf79605d7b15fe50379913bf76f4fa5 +Author: Kamailio Dev +Date: Sun Mar 18 11:17:06 2018 +0100 - core: pt - check to avoid two times closing unneeded sockets + modules: readme files regenerated - p_usrloc ... [skip ci] -commit e7fc7ca28e02f3dd25cab2723ed4c8dbfa835200 +commit ae1367bf3a6706b9db742ff6e20e6d11f79d5b02 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 09:10:11 2017 +0200 +Date: Sun Mar 18 11:04:55 2018 +0100 - core: kemi - define the size for printing params signature in help msg + uri_db: updated database name in docs -commit febccd6808d0729fca1bbf452d43c253ca79249a +commit ea18525e27120943204a75470855a35fbc8cc46a Author: Daniel-Constantin Mierla -Date: Tue Jul 18 09:09:29 2017 +0200 +Date: Sun Mar 18 11:04:29 2018 +0100 - core: dns - safety checks for port and proto pointers + speeddial: updates to db url example -commit 65593cc23bc89349fb42566cbd7eb2bbf8744db9 +commit 6162a74ad858c6a7421f461cd1483cc8d69c12c1 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 09:08:14 2017 +0200 +Date: Sun Mar 18 11:03:58 2018 +0100 - core: daemonize - proper chown for pgid file instead of pid file + rtpproxy: small updates to example cfg -commit 3deee5be0fa9c68f35ddb273fd86e22af91ced99 +commit a8827449e4c3c43e3f25abb7f5b27b2e1d1ab1b7 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 09:07:18 2017 +0200 +Date: Sun Mar 18 11:03:37 2018 +0100 - core: cfg ctx - catch condition when there are no changes to be committed + p_usrloc: updated path to db scripts in docs -commit 27186f1d951c89c033bb02c6b446a630e1fce5d3 +commit bb0940fd01a0188bc82d0608ac054fec5715ac56 Author: Daniel-Constantin Mierla -Date: Tue Jul 18 08:24:15 2017 +0200 +Date: Sun Mar 18 11:03:06 2018 +0100 - core: locking - rec lock init condition fixed + cnxcc: updated application name in example -commit 6090f7d9de0c71b25bd66c3525b25de7d02a5aa1 +commit 7228a9e413f7d51411961b8ece7281ecf597a9e2 Author: Daniel-Constantin Mierla -Date: Mon Jul 17 16:08:45 2017 +0200 +Date: Sun Mar 18 11:02:36 2018 +0100 - core: tcp read - set own handling for ECONNRESET + auth_diameter: updated application name -commit de8cd078385fd29c6ed9d5645dad14f8c6a97a0e +commit 04d5a6a0ee8c230423b7bc7be0afe5d568fe8555 Author: Daniel-Constantin Mierla -Date: Mon Jul 17 15:55:38 2017 +0200 +Date: Sat Mar 17 08:36:53 2018 +0100 - core: added log messages in case of errors + tm: removed inline for exported functions to config - - safer null string termination for description buffers + - they are assigned to a structure field, cannot be optimized for inline + execution, avoid warnings in static analysis -commit 882449e3c0b1ac44cf810d079f696187af007451 -Author: Daniel-Constantin Mierla -Date: Mon Jul 17 15:54:13 2017 +0200 +commit 3293b4f7ff087d53e22fe846c4b085ac954f13b5 +Author: Kamailio Dev +Date: Fri Mar 16 15:31:56 2018 +0100 - core: msg translator - unified error handling to simplify freeing allocated memory + modules: readme files regenerated - dispatcher ... [skip ci] -commit 2654fbb0c02fd8df82ecd6b8514e031952997104 +commit b02480d48459b8cdcb13525e0cf74f820dbf4887 Author: Daniel-Constantin Mierla -Date: Mon Jul 17 07:55:36 2017 +0200 +Date: Fri Mar 16 15:14:59 2018 +0100 - core: handle error case also for socket fd 0 - - - avoid fd leak warnings by code analyzer + dispatcher: updated docs for ds_list_exists() -commit 5250fa3302a4cb9bf9572ded6fb65fa9c067f08d +commit 39295cbb78f8395f63e89b2dfff87f0a72b6a3f9 Author: Daniel-Constantin Mierla -Date: Sun Jul 16 11:40:16 2017 +0200 +Date: Fri Mar 16 15:13:14 2018 +0100 - app_python: proper condition to free srcbuf in exception handling + dispatcher: added ds_list_exists() as alias to ds_list_exist() -commit 5ea16d8de71324e2eeb3c833cde76c52bdc8ac67 +commit 55ed25e1413c2fa5340138b7703c73db1df967de Author: Daniel-Constantin Mierla -Date: Sun Jul 16 11:29:36 2017 +0200 +Date: Fri Mar 16 15:12:29 2018 +0100 - avpops: few more pkg free in case of errors in fixup functions + dispatcher: exported more functions to kemi interface -commit 51009ab4f4aa6a229fab5abb94d4340f1178868b +commit 41f41d6d2850cdd5ab1a1b5d55bbb7ebd697ff7a Author: Daniel-Constantin Mierla -Date: Sun Jul 16 10:08:06 2017 +0200 +Date: Thu Mar 15 08:55:22 2018 +0100 - avpops: several pkg free in case of errors in fixup functions + etc/kamailio.cfg: do not relay to foreign network if auth is not enabled - - cleaner pkg usage summary in case of errors at start up + - anyone can use a local account and flood external systems -commit 3d6bf976944580a06a9019966e4af5850bc9b7d8 -Author: Kamailio Dev -Date: Sun Jul 16 09:01:26 2017 +0200 +commit d81494abea2780dae6106076be3ec549372ef30f +Author: Henning Westerholt +Date: Wed Mar 14 22:30:00 2018 +0100 - modules: readme files regenerated - sdpops ... [skip ci] + db_cassandra: another doxygen fix -commit cad4b8f456d3508a2ec3196c89a4a8e3ce9d9d32 -Author: Daniel-Constantin Mierla -Date: Sun Jul 16 08:55:30 2017 +0200 +commit 4525e0562479496b7ff49a2a168fe452f3cdea4b +Author: Henning Westerholt +Date: Wed Mar 14 21:59:41 2018 +0100 - sdpops: more details for sdp_with_transport() docs + db_mongodb: doxygen fixes -commit a545a1ad3367fef4e8a5a4a4cd4f9157623f6cf9 -Merge: 19f37c944 e3ea10ccf -Author: Federico Cabiddu -Date: Sat Jul 15 14:50:30 2017 +0200 +commit 3071e888bc279a691d9f896bbdd67df01a5f56ae +Author: Henning Westerholt +Date: Wed Mar 14 21:59:24 2018 +0100 - Merge pull request #1187 from grumvalski/sockets_list_fix - - core: build reply of core.sockets_list as an array + db_flatstore: doxygen fixes -commit 19f37c944748c72a7069a4fd5e3d8c6160a1e557 -Author: Daniel-Constantin Mierla -Date: Sat Jul 15 09:25:44 2017 +0200 +commit 7ec9dd32fcd5454b7d9d584ec790a9a10af9d20a +Author: Henning Westerholt +Date: Wed Mar 14 21:55:20 2018 +0100 - core: dns cache condition for both proto ws and wss + db_unixodbc: doxygen fixes -commit 6b82a103650fd0036490cf02dffcc5ad50c6f669 -Author: Daniel-Constantin Mierla -Date: Sat Jul 15 09:09:04 2017 +0200 +commit ab5b49a54719813bfb5f6657dd5aea21c49ffc4d +Author: Henning Westerholt +Date: Wed Mar 14 21:51:50 2018 +0100 - auth_xkeys: use the right size when initializing xkeys list + db_cassandra: doxygen fixes -commit 59dde423db52e7a8c69072685c99cd6a11440017 -Author: Daniel-Constantin Mierla -Date: Sat Jul 15 09:05:18 2017 +0200 +commit cab2021913eb597812bde529d697f931aa885e82 +Author: Henning Westerholt +Date: Wed Mar 14 21:46:26 2018 +0100 - speeddial: add missing break when handling blob db result type + db_postgres: doxygen fixes -commit e3ea10ccfcd94af0e7ce6908a1e378b4a9555b93 -Author: grumvalski -Date: Fri Jul 14 15:53:41 2017 +0200 +commit 841ae83233634e8c33c102d0b1684923758136f7 +Author: Henning Westerholt +Date: Wed Mar 14 21:34:15 2018 +0100 - core: build reply of core.sockets_list as an array + db_berkeley: doxygen fixes -commit 5a577ab37719d48fb9a6bc1b200c8892d95ccbdc -Author: Daniel-Constantin Mierla -Date: Sat Jul 15 09:01:38 2017 +0200 +commit f15eeabc2a219a3ee5bc966115add50de977ff85 +Author: Henning Westerholt +Date: Wed Mar 14 21:33:45 2018 +0100 - cnxcc: safety check for credit data search return value + db_mysql: doxygen fixes -commit 5f891d732443dc065b89b1895601ad429d696c33 -Author: Daniel-Constantin Mierla -Date: Sat Jul 15 08:56:04 2017 +0200 +commit 9aedcb548037a34b61a37ebe3e9baeb9755c9c49 +Author: Henning Westerholt +Date: Wed Mar 14 21:29:04 2018 +0100 - db_sqlite: free con in case of error at open time + lib srdb1: small fix/extension in README -commit 8353b0341ada19d6f0611e0aa693bfa20db0b51c -Author: Daniel-Constantin Mierla -Date: Sat Jul 15 08:41:09 2017 +0200 +commit 1f180628c9817442cecd3219ac6be0dc2fc88da2 +Author: Kamailio Dev +Date: Wed Mar 14 17:46:30 2018 +0100 - app_python: several free of allocated vars in case of errors + modules: readme files regenerated - tmx ... [skip ci] -commit 15de1f06b94588ed0764ab3a3b0cd1202b5c1cb6 +commit 32102e43272f8c101121e5edb94b7e5077d985a9 Author: Daniel-Constantin Mierla -Date: Fri Jul 14 14:40:15 2017 +0200 +Date: Wed Mar 14 17:36:34 2018 +0100 - app_lua: safer alloc size for hdr operations + tmx: documentation for t_flush_xflags() function -commit beffbad6d0a727232599ec6d15a0d7c6c37d6ddc +commit dc2838649343f1a75cd4443ae3004f0916ea7068 Author: Daniel-Constantin Mierla -Date: Fri Jul 14 14:33:36 2017 +0200 +Date: Wed Mar 14 17:35:44 2018 +0100 - cfg_rpc: cast void* for set-int to avoid compiler warnings in reset command + tmx: added t_flush_xflags() function -commit 15aaff16dd0c6d290885cd39390813d183851f35 -Author: Daniel-Constantin Mierla -Date: Fri Jul 14 14:32:14 2017 +0200 +commit 137c3db340b1e4139b6ddb444a220ce5928b2191 +Author: Kamailio Dev +Date: Wed Mar 14 13:16:24 2018 +0100 - core: cfg ctx - formatting for cfg reset + modules: readme files regenerated - corex ... [skip ci] -commit 7c795adaf0f3899567a9769fecbbb300387837be +commit fd20e46b280535753b9bf1b32da80a637a8fea26 Author: Daniel-Constantin Mierla -Date: Fri Jul 14 14:25:57 2017 +0200 +Date: Wed Mar 14 13:03:48 2018 +0100 - pdb: avoid unaligned pointer address + corex: documentation for xflags management functions -commit dc0765c04c3cb5d8981551e3f28ee6871fc803ff +commit 63fc16e77ade9c682ec8489269517f4a5e77a999 Author: Daniel-Constantin Mierla -Date: Fri Jul 14 14:11:14 2017 +0200 +Date: Wed Mar 14 13:02:16 2018 +0100 - core: set its own id for EVENT_ROUTE + corex: functions to manage extended flags - - having it as alias to REQURST_ROUTE can hide execution of undexpected - script callbacks + - setxflag(idx), resetxflag(idx), isxflagset(idx) + - idx can be between 0 and 63 + - requested via GH #1288 -commit 666c9d1fcdde00dbdd2e87ff797e554af6d72b5c +commit 0aae63818588952280e901ea2c529cb936ce5cf6 Author: Daniel-Constantin Mierla -Date: Fri Jul 14 08:21:40 2017 +0200 +Date: Wed Mar 14 13:00:23 2018 +0100 - pua_dialoginfo: fixed condition in mod init checking avp names + core: added xflags field to sip_msg_t + + - holds extended flags - 64 new flags in addition to the old 32 flags -commit 9dadfe9234d26d3b8b8ea0603b3f8fa13f96913c -Author: Ovidiu Sas -Date: Thu Jul 13 18:23:43 2017 -0400 +commit 021e7e53585f78b56356c98f25bd731c51f96f9a +Author: Daniel-Constantin Mierla +Date: Wed Mar 14 11:15:51 2018 +0100 - htable: improve some error logs + auth_ephemeral: do pkg-config for libcrypto if exists + + - discover all the libs to link against + - related to GH #1473 -commit a5316a8cb6a0476fca44fad43b4c560100994329 +commit e129965129b2377970a28fabd26b3be9b483c81b Author: Daniel-Constantin Mierla -Date: Thu Jul 13 17:32:14 2017 +0200 +Date: Wed Mar 14 10:01:43 2018 +0100 - rls: updated CONT_COPYDB() macro definition to use ; - - - the ; is added when using the macro - - otherwise potential unexpected error by usage in expressions + misc/examples/kemi: enable lua script reload in example config + +commit 29c637c3b3018f5e326c6f6af956ade665b72860 +Author: Henning Westerholt +Date: Tue Mar 13 23:36:42 2018 +0100 + + memcached module: several doxygen parameter fixes -commit 833830baccc4968d8a8fd56f2fd8b4a4bfef3612 -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 17:29:35 2017 +0200 +commit bb5abe0dd4774dfa990242509f96d04bbd8aacbc +Author: Henning Westerholt +Date: Tue Mar 13 23:04:06 2018 +0100 - pua: updates for CONT_COPY() macro + ims_dialog module: several doxygen fixes -commit c0196f10790aacb4053db5c3452645ec32e7894a -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 17:19:33 2017 +0200 +commit 0e96fbca8e6a8fdb2edb56ea336b76d4b25e4666 +Author: Henning Westerholt +Date: Tue Mar 13 22:36:09 2018 +0100 - presence_xml: ensure that node name lenght is at least 9 - - - needs to accomodate 'provide-xyz' inside get_final_notify_body() + prefix_route module: small doxygen group fix -commit 0eda1dde62a6d3d805f0ae32db67055aa0705ce8 -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 17:13:46 2017 +0200 +commit 064c6a846d3cac3ab4f325ffbea7c0c0b94deb34 +Author: Henning Westerholt +Date: Tue Mar 13 22:35:38 2018 +0100 - presence_xml: safety check for lenght of node name in xml transformations + jsonrpcs module: small doxygen group fix -commit 9d01c307f23675589d95d8d00c9fd289ac30372b -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 16:50:05 2017 +0200 +commit a214112bc90024ec15e79c9edf0eda678c7ff8e2 +Author: Henning Westerholt +Date: Tue Mar 13 22:35:09 2018 +0100 - presence: wrap error macro in do {} while(0), safety checks - - - free ws_list pointer when sphere is enabled - - copy macros not ended with ; in definition -- done it when using + dns module: small doxygen group fix -commit b4db01f09ca646ef1a6473a8c66ccf7120537b53 -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 09:32:24 2017 +0200 +commit 4c001cf6c2c00de3c64b56207fba3394109b447d +Author: Henning Westerholt +Date: Tue Mar 13 22:34:49 2018 +0100 - ndb_redis: do not free pointers in the array in pv name parse function - - - restore last char in cmd in case of error for redisc_exec() + textops module: small doxygen grouping fix -commit d0ac74742f6aeb71492d2a9cab747162cdc5ddf8 -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 09:03:54 2017 +0200 +commit 88fb9344c4ca946fba872b269d4c44fce330f06a +Author: Henning Westerholt +Date: Tue Mar 13 22:13:50 2018 +0100 - lib/srdb1: db_table_version() can handle DB1_BIGINT and DB1_DOUBLE values - - - in case of views or other database engine, the type for version value - can be different that DB1_INT. If it is a number, cast it to int - - extracted from GH #1186 by Emmanuel Schmidbauer - + utils module: small doxygen fix -commit b94ba19595b06556c84f450b9e1b24d6479cec61 -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 08:53:39 2017 +0200 +commit 5a3bce67345f10cdc1bb934fbd314d3ba1939e99 +Author: Henning Westerholt +Date: Tue Mar 13 22:13:09 2018 +0100 - db_postgres: safety checks for new constraint structures - - - bits of code formating + topos module: a few doxygen fixes -commit d12f96af28e170c3197a47af5840e5e30639adf6 -Author: Daniel-Constantin Mierla -Date: Thu Jul 13 08:49:51 2017 +0200 +commit f489f1cf9d6fad4e6d2e531eda9baa4ca0e803dd +Author: Henning Westerholt +Date: Tue Mar 13 22:12:31 2018 +0100 - db_postgres: added missing break for INT8OID results - - - instead of DB1_BIGINT, the result type ended to be DB1_DOUBLE + module xhttp_rpc: small doxygen group fix -commit 97b5d71ef7c3d5828e0d467216d00372801e04ec -Author: Kamailio Dev -Date: Wed Jul 12 21:01:19 2017 +0200 +commit 720c44e3c54fa3455fb9a5f0b82f585bcef97945 +Author: Henning Westerholt +Date: Tue Mar 13 22:11:55 2018 +0100 - modules: readme files regenerated - mqueue ... [skip ci] + module xhttp_pi: small doxygen group fix -commit a8a6fdd89384ad66e1b526e839fca84c8cd66c31 -Author: Ovidiu Sas -Date: Wed Jul 12 14:56:58 2017 -0400 +commit 886b4a06fa85a5996b04d2dc81023c70e4dc933e +Author: Henning Westerholt +Date: Tue Mar 13 22:11:29 2018 +0100 - mqueue: fix typo in documentation - - thanks to Daniel-Constantin Mierla for spotting it + lib trie: small doxygen group fix -commit 4bfc1f4d052b52d4d8119a65065c8e1c608ca750 -Author: Kamailio Dev -Date: Wed Jul 12 19:46:16 2017 +0200 +commit c1404ed04008cc1619e04372a1f68991af8c189e +Author: Henning Westerholt +Date: Tue Mar 13 22:09:54 2018 +0100 - modules: readme files regenerated - mqueue ... [skip ci] + core: several doxygen docs fixes -commit df6af83d627de3de4669c887065c3a5357fa5f7b -Author: Ovidiu Sas -Date: Wed Jul 12 13:33:45 2017 -0400 +commit fb9f873842d57752daa1036b4c615fb656c11136 +Author: Henning Westerholt +Date: Tue Mar 13 22:08:02 2018 +0100 - mqueue: doc updates for queue size + db_unixodbc: fix a small mismatch between header, impl. and doxygen docs -commit f6c41abedecc987f570c100030fbc47cdaca2790 +commit 22716f0b4ac922491359e3719089497269ceadd0 Author: Kamailio Dev -Date: Wed Jul 12 15:16:41 2017 +0200 +Date: Tue Mar 13 14:46:36 2018 +0100 - modules: readme files regenerated - dialog ... [skip ci] + modules: readme files regenerated - nathelper ... [skip ci] -commit f2058b1ac158eea31b49943382a849738014d0e0 +commit 82efea41d7a01c041ea6ff85cc864cfdf2fd1ba5 Author: Daniel-Constantin Mierla -Date: Wed Jul 12 15:02:14 2017 +0200 +Date: Tue Mar 13 14:41:14 2018 +0100 - dialog: documented early_dialog and noack_dialog parameters + nathelper: docs - mention UDP for SIP nat pinging contact addresses -commit 3c6b3ecbe14162d810286bac8f8aec87a5567e6f +commit 31e21ff23a0d8bff1f7a88a56aa4ab01d93e2cf3 Author: Daniel-Constantin Mierla -Date: Wed Jul 12 14:53:59 2017 +0200 +Date: Tue Mar 13 09:02:37 2018 +0100 - dialog: new parameters - early_timeout and noack_timeout - - - early_timeout - set the interval in seconds after which the dialogs in - early state (not answered yet) are destroyed. Default value is 300. - - noack_timeout - set the interval in seconds after which the dialogs - that were answered with 200ok but didn't receive the ACK are marked - for termination (lifetime set to 10 more seconds). Default value 60. + core: small improvements to help text -commit 34db0b1f5b0d57e938a7a74ce9787b9c1e63bf46 -Author: Daniel-Constantin Mierla -Date: Wed Jul 12 13:10:36 2017 +0200 +commit 118a829b30344b394a60c325075aec7bf877428c +Author: Henning Westerholt +Date: Tue Mar 13 08:44:47 2018 +0100 - pv: added transformations for base58 - - - {s.encode.base58} - - {s.decode.base58} + core: doxygen fix and small grouping extension for trie lib -commit a937c093b183c57badcd09c8d996c4f8ad60b2a7 -Author: Daniel-Constantin Mierla -Date: Wed Jul 12 12:59:21 2017 +0200 +commit 9868f2c04eb816d546e375a1d572e1c27f6f99d9 +Author: Henning Westerholt +Date: Tue Mar 13 08:30:37 2018 +0100 - core: added base58 encoding and decoding + doxygen: fix doxygen comment grouping for cds lib -commit 272783e770c440c7a19ab986c1d757ebe8217905 -Merge: 76911ea02 13c84b827 -Author: Federico Cabiddu -Date: Wed Jul 12 10:52:25 2017 +0200 +commit a716cdc04b4afffc605bd485d20fa0dc749a07bf +Author: Henning Westerholt +Date: Mon Mar 12 22:59:01 2018 +0100 - Merge pull request #1185 from grumvalski/core_rpc_fmt - - Adapt some core rpc command to json + doxygen: update doxygen configuration to version 1.8.x -commit 76911ea023f2a1b261015aa8569380e7f286be2e -Author: Kamailio Dev -Date: Wed Jul 12 10:46:34 2017 +0200 +commit 5a84ca7a2e3f3cdcde0ff444aee272eb0a8c5561 +Author: Henning Westerholt +Date: Mon Mar 12 21:59:10 2018 +0100 - modules: readme files regenerated - cplc ... [skip ci] + core: receive.c optimization, add a few unlikely compiler builtin in error path -commit 027871f7a91cf288d36029a4f339801e8b620d10 -Author: Oriol Capsada -Date: Tue Jul 11 22:44:16 2017 +0200 +commit f775e4000e1e0dfb2bfb0957d80bcae51be8441c +Author: Henning Westerholt +Date: Mon Mar 12 21:48:47 2018 +0100 - cplc: use route names to set proxy_route modparam + core: small refactoring in receive.c related to route_locks addition - - Changed proxy_route modparam type to string. The route to be executed - needs to be defined by name as the current id definition led to some - unpredictable behavior. - -commit 13c84b8275f2539e8ca03bec38b79110043d75d2 -Author: grumvalski -Date: Wed Jul 12 09:11:16 2017 +0200 + - small refactoring in receive.c related to route_locks functionality addition + - consolidate a few of the conditional branches for cidlockset in receive path + - makes the code easier to understand for only a few lines of code duplication - core: return aliases list as an array in core.aliases_list - -commit 38f514064a326f759e0e88adeffd03b32b35d6c0 -Author: grumvalski -Date: Wed Jul 12 09:04:13 2017 +0200 +commit 430696019c23e7c019cb463ac84f76762ee9c2f1 +Author: Henning Westerholt +Date: Mon Mar 12 21:31:57 2018 +0100 - core: set RET_ARRAY flag for core.sockets_list command + core: performance optimzation for commit af3f94dd, add unlikely compiler builtin + + - performance optimization for commit af3f94dd, default deactivated + - this affect a really hot code path in the core receive part + - add unlikely compiler builtin_expect, like in other places of the core -commit 5f83e703422dadd39b6ba55ee9f6f798ee692755 -Merge: 68a8dc88c cfc6e364b +commit af3f94dd22626894548d2ee2066cf11c806410a3 Author: Daniel-Constantin Mierla -Date: Tue Jul 11 15:17:21 2017 +0200 +Date: Mon Mar 12 16:44:25 2018 +0100 - Merge pull request #1183 from athonet-open/xmlrpc-array-value + core: new parameter route_locks_size - xmlrpc: add tag to array elements + - if set, kamailio creates a group of recursive locks used to sync on + execution of request_route and reply_route based on hashing ID of + Call-ID header. In other words, if a message has triggered the execution + of request_route or reply_route, any other message with the same Call-ID + waits until the other one finishes the execution. + - it should help when messages belonging to the same dialog come quickly + one after the other and config execution results in sending them out in + reverse order. There are some old UA implementations not able to cope + properly with this case (e.g., pstn gateways). + - be very carefull when eanbling it, it can affect performances, use + only when strictly needed + - note also that hashing over Call-ID means that there could be + collisions and different Call-ID values can result in same hash ID + - default value is 0 - feature not enabled + - set it to a positive integer number, it should be higher than the over + all number of processes created by kamailio, can be much higher -commit 68a8dc88cbef9b08d3c1d06ca867494a36bdf527 +commit 2d117b8ce6ae97a7220369160b1eeb8b264bcac8 Author: Daniel-Constantin Mierla -Date: Tue Jul 11 15:11:13 2017 +0200 +Date: Mon Mar 12 14:54:43 2018 +0100 - topos_redis: implementation for update branch storage function + core: locking - added api functions for recursive lock sets -commit cec4393d55ee8a8d5c71efba2a31b25aec8540d6 -Author: Daniel-Constantin Mierla -Date: Tue Jul 11 14:56:58 2017 +0200 +commit 4348049e4f455309523bfbf285d0f462c57c9c49 +Author: Andreas Granig +Date: Mon Mar 12 16:21:27 2018 +0100 - topos: added functions to update branch fields in storage + db_redis: Fix free(0) on inserting null value -commit 0db25fd898d6b2d2929c09df55eb8a1f30412ff7 -Author: Carsten Bock -Date: Tue Jul 11 14:38:53 2017 +0200 +commit aca63625a97cf3934b79d5207f12e7802a17b288 +Author: Kamailio Dev +Date: Mon Mar 12 13:31:35 2018 +0100 - ims_ocs: Added example database schema + modules: readme files regenerated - usrloc ... [skip ci] -commit cfc6e364b4a9be95e2e7e48b1a8e5a86324b35f3 -Author: Alberto Sartori -Date: Tue Jul 11 14:09:11 2017 +0200 +commit 7fdbdd44c85bce7efbd19a3bdf5dcd52970e3197 +Author: Konstantin +Date: Mon Mar 12 15:25:18 2018 +0300 - xmlrpc: add tag to array elements + usrloc: cleanup by server_id. (#1480) - - add call to `add_xmlrpc_reply(reply, &value_prefix)` to `rpc_array_add` function - - add call to `add_xmlrpc_reply(reply, &value_suffix)` to `rpc_array_add` function + * usrloc: cleanup by server_id. + + * usrloc: reverted README file changes. + + * usrloc: moved server_id db request assignment under conditional command. -commit de953dfb93cfc3a14295f4167af01e522444b066 +commit 97d71334ca56cdcd9573ed605adfe26a24696a0a Author: Daniel-Constantin Mierla -Date: Tue Jul 11 12:36:07 2017 +0200 +Date: Mon Mar 12 13:05:35 2018 +0100 - kamctl: refreshed db creation scripts for sql databases + app_python3: check and use kemi reply route callback name -commit b8e9d2697a13c2cdb367aabf4966d6fa09a1319f +commit 12bd6d04c44b5c7d129ed539153afafe899d1df7 Author: Daniel-Constantin Mierla -Date: Tue Jul 11 12:35:27 2017 +0200 +Date: Mon Mar 12 12:53:59 2018 +0100 - lib/srdb1: make (setid,url) unique key instead of primary - - - conflicts with autoincrement in mysql + app_jsdt: check and use kemi reply route callback name -commit 50e79b69418967cdb4598a2b69f064885520ec2a +commit 1f1fe5e29f6f49a849e4a5da717a92e02db1fcad Author: Daniel-Constantin Mierla -Date: Tue Jul 11 12:28:32 2017 +0200 +Date: Mon Mar 12 12:53:36 2018 +0100 - kamctl: regenerated db creation scripts + app_sqlang: check and use kemi reply route callback name -commit 9c74b35b06465c9dde23971e342846491fa41c2c +commit a41533b44959dd2b9fd310c8363fd60884ac3303 Author: Daniel-Constantin Mierla -Date: Tue Jul 11 12:28:03 2017 +0200 +Date: Mon Mar 12 12:53:16 2018 +0100 - lib/srdb1: added autoincrement id column for rtpengine + app_python: check and use kemi reply route callback name -commit 09ce80506410b8ef648adb8919492de6f6dad7f5 +commit f0fe6b351cc1e40327356dbbc14229dd462df050 Author: Daniel-Constantin Mierla -Date: Tue Jul 11 09:04:39 2017 +0200 - - textops: remove hf with regex functions exported to kemi framework +Date: Mon Mar 12 12:52:36 2018 +0100 -commit 507533e3c332a225248c8a23a5bf509946709c1b -Author: Kamailio Dev -Date: Mon Jul 10 19:31:21 2017 +0200 - - modules: readme files regenerated - cfg_rpc ... [skip ci] + app_lua: check and use kemi reply route callback name -commit ac30274feaccd0a1715aee13daafc364cf73de7c -Merge: cd17ca911 245a28b66 +commit 77b0c9355b13013ddeb3cab62de1bb21e0eb74f7 Author: Daniel-Constantin Mierla -Date: Mon Jul 10 19:23:56 2017 +0200 +Date: Sun Mar 11 10:23:07 2018 +0100 - Merge pull request #1181 from hdikme/master + core: new parameter kemi.reply_route_callback - configuration reset function (cfg.reset) + - set the name of kemi callback function to be executed on receiving a + sip reply (equivalent of reply_route) + - default: ksr_reply_route + - set to empty or "none" to skip execution of this callback -commit cd17ca9113031b979fe403255388105ecee0fe73 +commit 96a1367ef9c0977c4b7ae378ad76ec22d393e990 Author: Daniel-Constantin Mierla -Date: Mon Jul 10 17:08:33 2017 +0200 +Date: Sat Mar 10 12:18:28 2018 +0100 - xlog: free vars in case of errors in fixup functions + app_python3: renamed main files to match module name -commit b5af70a2b464cae1058ec53bb8dbea5ca07e6d4e +commit ba992b122eec30c5022d4c3e77af4e2f6eb0752a Author: Daniel-Constantin Mierla -Date: Mon Jul 10 11:27:47 2017 +0200 +Date: Sat Mar 10 08:24:21 2018 +0100 - tm: several checks for return codes for better error handling + app_python3: skip execution of child_init() for rank PROC_INIT + + - this is a particular execution in main process after all modules were + initialized, not in a forked child process -commit 23ee80c8d71b9bac63ebe6117620cffc8900c2a9 +commit 988cc68d62b8a00a69786e43f99417c05572aef6 Author: Daniel-Constantin Mierla -Date: Mon Jul 10 11:27:12 2017 +0200 +Date: Sat Mar 10 08:21:20 2018 +0100 - evapi: close server socket if fnctl() fails + app_python: skip execution of child_init() for rank PROC_INIT + + - this is a particular execution in main process after all modules were + initialized, not in a forked child process -commit 95fd884f3096ef5e72f98c3cb89939b75ee7232e -Author: Kamailio Dev -Date: Mon Jul 10 10:01:37 2017 +0200 +commit 11e918e1bb8cd1fce4ead00cc532669618b539ba +Author: AntonyA +Date: Mon Mar 5 16:23:59 2018 +0800 - modules: readme files regenerated - topos ... [skip ci] + app_python: call PyOS_AfterFork() in child -commit 05b31ddbfad71cae5c4cab24b57b1d606c74a7c8 -Author: Carsten Bock -Date: Mon Jul 10 09:57:20 2017 +0200 +commit 60816e1eb9f83fbe4803f1096fdb15e3be390594 +Author: AntonyA +Date: Mon Mar 5 16:23:09 2018 +0800 - topos: Safety check for database storage + app_python3: call PyOS_AfterFork() in child -commit 3868a27b7358c9a98ed2c240deb41e9ce524b8f5 -Author: Carsten Bock -Date: Mon Jul 10 09:56:07 2017 +0200 +commit d12eba62bfaefa0db85e66cb21678c9cccda658b +Author: Andreas Granig +Date: Fri Mar 9 10:20:52 2018 +0100 - topos: Add missing doc for storage parameter + db_redis: Fix free(0) on update -commit 56f6efc176b0c2a1a69754c55a50b1a5661f7b95 -Author: Carsten Bock -Date: Mon Jul 10 09:54:08 2017 +0200 +commit cdbee5a536920c4fab3ec619c8467c152d6f110a +Author: Daniel-Constantin Mierla +Date: Fri Mar 9 10:37:06 2018 +0100 + + db_mongodb: check mongo-c-driver version at least 1.5.0 to use projection + + - reported by GH #1479 - topos_redis: Fix Typo in error-message +commit cb2e90295695432dc7b984e1f68abee01a6469de +Author: Andreas Granig +Date: Fri Mar 9 10:10:52 2018 +0100 -commit c0125e049f1c34afe7411f763f9f57c7a00109a8 + db_redis: Fix null free in delete + +commit d96429c95459a85e5a3d558fe4c139ae1c9c14d6 Author: Daniel-Constantin Mierla -Date: Sun Jul 9 10:21:20 2017 +0200 +Date: Fri Mar 9 09:45:49 2018 +0100 - evapi: handle return code for fcntl + app_sqlang: check if kemi onsend_route callback name is set -commit bf9d697c31ad2c7614aa37997c4772df8e8d25a7 +commit d6fbff7d8f6e4368e29bf5e52efda024ebe3dab9 Author: Daniel-Constantin Mierla -Date: Sun Jul 9 10:01:17 2017 +0200 +Date: Fri Mar 9 09:45:34 2018 +0100 - async: free var in case of fixup error + app_python3: check if kemi onsend_route callback name is set -commit 3cbae6841c80de89fc7c72b73c1695e3788c1819 +commit b9c3286e47d602f194dd750dce4759ad0d9f578c Author: Daniel-Constantin Mierla -Date: Sat Jul 8 09:39:05 2017 +0200 +Date: Fri Mar 9 09:45:23 2018 +0100 - usrloc: rpc flush to return error in case of failure + app_python: check if kemi onsend_route callback name is set -commit b28e2943b8d171628f81057a352507b2a56b91a4 +commit 9bbef2560cb14c64de9face52e843d0ab3524e6a Author: Daniel-Constantin Mierla -Date: Sat Jul 8 09:38:13 2017 +0200 +Date: Fri Mar 9 09:45:10 2018 +0100 - registrar: free var in case of pv name error + app_lua: check if kemi onsend_route callback name is set -commit 070057a5d66e2f5dd4bcf90d96f8f8ceeca3a433 +commit 31aee7380ba1aa0cb6eddeaae709829087504aae Author: Daniel-Constantin Mierla -Date: Sat Jul 8 09:37:04 2017 +0200 +Date: Fri Mar 9 09:44:10 2018 +0100 - auth_db: small reorder to do the check before accessing the fields + app_jsdt: check if kemi onsend_route callback name is set -commit 5530fe31fe89a4dfe9e17cbe56c0cd83cb8f45ab +commit b7ea6973ff17b31b814c3fb0c40f52aae364ed8b Author: Daniel-Constantin Mierla -Date: Sat Jul 8 09:35:57 2017 +0200 +Date: Fri Mar 9 09:29:29 2018 +0100 - lib: dtrie - removed duplicate check for same value + core: new parameter kemi.onsend_route_callback + + - allow setting the name of the function to be called by kemi framework + as equivalent of onsend_route {} + - default value: ksr_onsend_route + - set to empty string or "none" to skip the execution of this kemi + callback -commit f401938a4f5a5b6eb1089b2c85372a69f07ce777 -Author: Daniel-Constantin Mierla -Date: Sat Jul 8 09:35:13 2017 +0200 +commit 2a5d66fda013197aa5fbe4828cc7f6e61a74a9d6 +Author: kelchy +Date: Fri Mar 9 07:31:22 2018 +0000 - acc: free parameter in acc fixup in case of error + db_mongodb: add error logger for failed query -commit f632b879272e6db24d83f0c0881d8708a7aecfc7 -Author: Kamailio Dev -Date: Fri Jul 7 14:16:23 2017 +0200 +commit e87cad921057a6bdf1619384b6acab8d207eb5c8 +Author: Richard Fuchs +Date: Thu Mar 8 10:16:22 2018 -0500 - modules: readme files regenerated - textops ... [skip ci] + rtpengine: explicitly handle new option flags (transcoding) -commit c593d7492ddb957a862dd31b5ce9e09fdf54a8e5 -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 14:10:04 2017 +0200 +commit 61279f2e64e950a4a53694c06ff1228f233d24f9 +Author: Kamailio Dev +Date: Thu Mar 8 16:01:24 2018 +0100 - textops: documentation for remove_hf_exp(...) + modules: readme files regenerated - db_redis ... [skip ci] -commit d7972d83b3f12f64d4f70d8e6eacb88ec34648f1 -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 14:03:52 2017 +0200 +commit c9f2aa71b2e0d4a4f71b3da92f97306e86f93eea +Author: Andreas Granig +Date: Thu Mar 8 15:54:24 2018 +0100 - textops: new function remove_hf_exp(match, skip) + db_redis: Align schema with usrloc expires_type default - - remove header fields that do not match regex ''skip', but match regex - 'match' + Since expires_type is DATETIME by default, use "time" type in + upstream schema for location table. -commit 851367053d6b4d64161a50fa7408d0dd750922d5 -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 14:03:29 2017 +0200 +commit 1b831f8dab3fb9f7c0c4562fee6d192face16e56 +Author: Kamailio Dev +Date: Thu Mar 8 13:16:28 2018 +0100 - core: fixup helper function for two regex parameters + modules: readme files regenerated - app_jsdt ... [skip ci] -commit 4220c41f9a443d275cf94e1db3a33fbd3ca14d1b -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 13:33:16 2017 +0200 +commit 7b0ad6b1a11687d035d4be92202ae1379f07fb20 +Author: Olle E. Johansson +Date: Thu Mar 8 13:08:08 2018 +0100 + + app_jsdt Minor update to documentation + +commit 956cad7e070c7d1936c7fef5666e72db1a0578ac +Author: Sergey Safarov +Date: Sat Mar 3 12:32:23 2018 +0000 + + pkg/docker: Updated reference to packaging scripts + +commit 4494b60c430f5e5c6a3a3eb4c025f206a9c3a1f7 +Author: AntonyA +Date: Wed Mar 7 14:39:17 2018 +0800 - dispatcher: try to add sip: scheme to dst uri, if initial parse fails + core: invoke KEMI ksr_onsend_route() - - operation done when records are loaded from database or file + This will invoke ksr_onsend_route() unconditionally in the cfgengine. -commit 86e349463c7d573e9a5e68bd3984ecc95808adb4 +commit 6abd8472b764f88c5c054becb440fda8fff47349 Author: Daniel-Constantin Mierla -Date: Fri Jul 7 09:53:38 2017 +0200 +Date: Thu Mar 8 08:54:48 2018 +0100 - pv: free var in case pkg alloc failure + kamctl: set default PID_FILE to /var/run/kamailio/kamailio.pid + + - this being now the path used by default kamailio options -commit 080bffeb53181131f8fb8fab0ddcb771bbdd37dc -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 09:48:53 2017 +0200 +commit 42610691aa3b19fe47caed0b186a10253e6aaabd +Author: Kamailio Dev +Date: Wed Mar 7 22:31:26 2018 +0100 - jsonrpcs: safety vars init and release checks + modules: readme files regenerated - async ... [skip ci] -commit 72b4cc243d48cf4ee2302afd45c7ef1a290b7d16 +commit 15731d40ff1af78bf568d19bdbe4704d35931afd Author: Daniel-Constantin Mierla -Date: Fri Jul 7 09:31:37 2017 +0200 +Date: Wed Mar 7 22:29:12 2018 +0100 - textops: fixed whitespacing and few malloc size adjustmets for safety + async: docs - some improvements to examples -commit 7987122d25003dd4b5f0ce47caf3e5c9811917b3 -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 09:29:41 2017 +0200 +commit d1d151e8ef792be4a711fcd183ff0b43a48fb204 +Author: Henning Westerholt +Date: Wed Mar 7 09:57:01 2018 +0100 - textopsx: free in case of error inside sel_hf_value_name() + README: change twitter handle to the new one -commit 74653204f45195944acc42979d0939cef9513cd4 +commit 7738461dda1595ee71cbda47bd129e3f13ebc77d Author: Daniel-Constantin Mierla -Date: Fri Jul 7 09:10:14 2017 +0200 +Date: Tue Mar 6 23:30:40 2018 +0100 - msrp: safety checks to avoid analyzer reports + db_text: small updates to sample config used in docs -commit 92be111419f8884976dc3f6125e6df9db2f116a5 -Author: Daniel-Constantin Mierla -Date: Fri Jul 7 09:03:01 2017 +0200 +commit e94f1b93c1f69d605c03b02121a1dbfd9cbe00db +Author: Henning Westerholt +Date: Tue Mar 6 08:41:31 2018 +0100 - topos_redis: increase the array size used for storage ops + db_unixodbc: data converting log improvement - errors should be logged as such -commit 61d3d4ad675032b7a1fc059acef68e81c40b4eba -Author: Daniel-Constantin Mierla -Date: Wed Jul 5 15:30:36 2017 +0200 +commit 8cc0ee0899a6767d34b0a3b06871273b0a6f72b2 +Author: Henning Westerholt +Date: Tue Mar 6 08:41:14 2018 +0100 - rls: added missing license headers, coherent indentation + db_posgres: data converting log improvement - errors should be logged as such -commit 245a28b666c027f3d697c92863fd54a837ff4d62 -Author: Huseyin Dikme -Date: Tue Jul 4 14:41:37 2017 +0200 +commit 8c592dc54e7e963cb608b2b71c1549d9c61bac7a +Author: Henning Westerholt +Date: Tue Mar 6 08:41:01 2018 +0100 - cfg_rpc: configuration reset function has been implemented - - - rpc_reset function enables to reset all the variables of a certain group to their initial values. - e.g.: kamcmd cfg.reset core. - Above given example will reset all variables of the configuration group "core". + db_mysql: data converting log improvement - errors should be logged as such -commit 89334293299f817d4ac2774ae60611839a031c73 -Author: Huseyin Dikme -Date: Tue Jul 4 14:10:38 2017 +0200 +commit 3aaeb350f3cd63ecb8662ba1087bffceeb1321ea +Author: Henning Westerholt +Date: Tue Mar 6 08:38:15 2018 +0100 - core: cfg_get_default_value_by_name function has been implemented - - - As cfg_get_by_name function uses handle to reach variable values, - this function will use instead orig_handle in order to reach - the initial values when the config group was registered. Read-only - variables will not be returned since cfg_reset function uses this function - in order to set back the default values, and this cannot be implemented on read-only variables. + db_berkeley: data converting log improvement - errors should be logged as such -commit f8fa313fd372ffc94fad0c11dba76774c1e3002a -Merge: ceaafc67d 1391db0f3 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 12:33:11 2017 +0200 +commit 56cfefde6883e476ece14a8e45cc906cd9a2f015 +Author: Henning Westerholt +Date: Tue Mar 6 08:32:52 2018 +0100 - Merge pull request #1180 from smititelu/master + db_cassandra: fix warnings: enumeration value ‘DB1_UNKNOWN’ not handled in switch - dispatcher: Increase line buffer size + - fix warnings: enumeration value ‘DB1_UNKNOWN’ not handled in switch + - fix a C++ compilation issue related to variable declaration in a switch case -commit ceaafc67dae4f7e7424c8706ccea90c30eed45b6 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 12:29:08 2017 +0200 +commit 24d1b3b975ef82400adde37e9851143d7f1b4e4d +Author: Henning Westerholt +Date: Tue Mar 6 08:11:43 2018 +0100 - rls: reset vars to avoid double free in case of error + db_cassandra: remove a few unused variables (compiler warnings) -commit 97ac3b910dc955058fa4c08ad22ac01a4f31fe74 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 12:26:41 2017 +0200 +commit 5b0ab6ab1a3c0d3b0b1c0ae0964604044c62e93c +Author: Henning Westerholt +Date: Tue Mar 6 07:51:22 2018 +0100 - presence: reset vars to avoid double free in case of error + db_cassandra: fix compilation, adapt Makefile for system wide thrift installation + + - fix compilation after core restructuring (timer and mem includes) + - fix Makefile path, use system wide thrift installation (todo - should be probably autodetected) + - improve Makefile variable naming for include dir -commit 9a6182fa8b535bc19c43e905d6b6a110b0e830d2 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 12:17:54 2017 +0200 +commit 30aa62a5b66a1b16f9012466385bf235688b332e +Author: AntonyA +Date: Tue Mar 6 03:30:55 2018 +0000 - avp: return in case of error in avp select + app_python: fix jenkins build failure, reversed arguments -commit 22aa9043f179f4de8e90fc5946a7afb28060b6f6 +commit 795edca9215391f7c8f646895c083f8ac8853341 Author: Daniel-Constantin Mierla -Date: Tue Jul 4 12:17:36 2017 +0200 +Date: Mon Mar 5 21:56:04 2018 +0100 - xcap_server: reset server_name variable after free + app_perl: do dlerror() after dlsym() fails to find exports - - avoid re-use in the loop + - some OSes do not reset dlerror after a successful dlsym(), pointing to + an older error case + - reported by GH #1465 -commit 1391db0f349956795b8cf6936657fb974ec9b65f -Author: Stefan Mititelu -Date: Tue Jul 4 13:06:26 2017 +0300 +commit 2c828e19fe6e054681f234129aa70d0daab404f8 +Author: Kamailio Dev +Date: Mon Mar 5 09:47:22 2018 +0100 - dispatcher: Increase line buffer size + modules: readme files regenerated - usrloc ... [skip ci] -commit 56d1d317e4bac7130586541fed75be670ea0f9ce -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 12:00:47 2017 +0200 +commit fa9947c7295f364235f9f6417fc44fa486bf0c87 +Author: Victor Seva +Date: Mon Mar 5 09:34:36 2018 +0100 - mtree: access values before safety checks of variables + usrloc: missing documentation for module parameter 'server_id_filter' -commit e9cfb2bf5012cdbde36559f615b58e3a556bfc2d -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 11:52:53 2017 +0200 +commit 1bf9eac9d1531cf8e7492ba6c21f60493c309cee +Author: Henning Westerholt +Date: Sat Mar 3 19:28:25 2018 +0100 - dispatcher: log messages for hashing auth username + misc/db script: change e-mail adress in ser database scripts + + - change e-mail adress in ser database scripts to sr-dev list + - these scripts are probably obselete + - but this way we will at least notice if somebody tries to use them -commit b8ab9fcccd442e9e9ac887a7dc16b690213a6e28 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 11:11:41 2017 +0200 +commit 4d447560ccfb253e5b5627c9900d46458bfcbe5d +Author: Henning Westerholt +Date: Sat Mar 3 19:08:30 2018 +0100 - dialog: lookup kemi engine for event route execution + kamdbctl: remove not working db migrate command + + - remove db migrate implementation in kamdbctl, .base, .mysql and .db_berkley files + - it was not working for mysql anyway, and not implemented for berkleydb + - this state was already documtend some weeks ago in commit 52a8def8d2a3e831 -commit 609297d62a08d1d75550c2f5e7f7fd19b98fd104 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 09:59:10 2017 +0200 +commit 064804347421088e01c9f702933aa76ed59c7c13 +Merge: 8c1f1c16c 53e1326f2 +Author: henningw +Date: Sat Mar 3 19:03:27 2018 +0100 - dialog: safety checks and free of profiles in case of errors + Merge pull request #1467 from que273/master - - free partial list of profiles in dlg_set_timeout_by_profile() when no - more memory + sqlops: sqlops_do_query - Make result parameter optional in C API -commit 2ab0adee57aa82487adf7d3776835eca071afa27 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 09:08:04 2017 +0200 +commit 8c1f1c16c1d054cbc01dc26341f6770934d46ead +Author: AnthonyA +Date: Sat Mar 3 21:34:36 2018 +0800 - tmx: missing break in t_cancel_branches(others) + app_python3: improve exception debugging + + - print method name and arg on error -commit 6118d832d3ba0efb96820915520af3c8a9bf29de -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 08:57:36 2017 +0200 +commit f8b8cecb7d713b37e3184b4720c992296005a427 +Author: AnthonyA +Date: Sat Mar 3 21:33:48 2018 +0800 - core: msg translator - reworked error handling to free allocated buffers + app_python: improve exception debugging + + - print method name and arg on error -commit 98a6ef19bcfe14b7150183a9bec98854f5c0063b -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 08:44:50 2017 +0200 +commit 9831bba76bbdde62513c6b7f2c35e6cfe5a5a566 +Author: AnthonyA +Date: Thu Mar 1 12:50:52 2018 +0000 - core: free locl link structures not linked to listen sockets + app_python3: code cleanup -commit 0aa7571afe5c25bfffaf865595181470ac78f4d2 +commit 045d44762ce7cd267e64849c1c138d45b1fa040f Author: Daniel-Constantin Mierla -Date: Tue Jul 4 08:43:28 2017 +0200 +Date: Sat Mar 3 07:39:45 2018 +0100 - core: proxy - free in case of errors making proxy only from ip + core: check return of dlsym() before dlerror() handling + + - cope with the case when dlerror is not reset by dlsym + - related to GH #1465 -commit 1a5662b212ddcbea40ca33e34bfda0459802b756 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 08:41:34 2017 +0200 +commit 310c60cb34641f73ac0e8b48c9bf68efa5fb3533 +Author: AnthonyA +Date: Fri Mar 2 16:46:05 2018 +0000 - core: parser uri - add missing break to avoid useless assignments + app_python: don't hide the real exception on load failure + + - don't call PyErr_PrintEx() as this clears the error indicator -commit 126e76dc035bd1320cb103c39ad52849844e7448 -Author: Daniel-Constantin Mierla -Date: Tue Jul 4 08:40:29 2017 +0200 +commit 829941d0079cb7f46a20ec975252790fd17019ba +Author: AnthonyA +Date: Sat Mar 3 01:00:00 2018 +0800 - core: mem/qm - fixed pointer expressions in qm_check() debug function + app_python3: don't hide the real exception on load failure + + - don't call PyErr_PrintEx() as this clears the error indicator -commit 52f728f73914ab960389ff8afbf1a223f91f07e2 +commit 9b7bb4ea6c100f5f33d2dddc9061febf33c47f5e Author: Daniel-Constantin Mierla -Date: Tue Jul 4 08:39:39 2017 +0200 +Date: Fri Mar 2 16:15:19 2018 +0100 - core: cfg.y - fixed condition on case parsing + kamctl: fixed the name of rpc command for dialplan reload -commit e4f0facccb130599acfd0c4abbfd954a427c3d96 +commit 8926698e92675d712db318c335f30d4f43f1a53d Author: Kamailio Dev -Date: Mon Jul 3 19:01:39 2017 +0200 +Date: Fri Mar 2 15:31:30 2018 +0100 - modules: readme files regenerated - pua_reginfo ... [skip ci] + modules: readme files regenerated - json ... [skip ci] -commit 385995c27084bdca9ebc4a472f9ab41311416f35 -Author: Vasiliy Ganchev -Date: Mon Jul 3 18:56:52 2017 +0200 +commit bff50c44e32c48b5449e405f67ca02f7d8055ba0 +Author: Emmanuel Schmidbauer +Date: Thu Mar 1 15:22:06 2018 -0500 - pua_reginfo: use outbound proxy for PUBLISH requests + json: add new function json_get_string() to return string value without quotes -commit 4168a6c3221f95e50aa7a0769d1abecfa255fa10 -Merge: 3ce65db87 6002f2de7 -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 18:52:32 2017 +0200 +commit 630a697cd928d01f92f4de1b232567c52592df04 +Author: Sergey Safarov +Date: Fri Mar 2 14:15:15 2018 +0000 - Merge pull request #1175 from claudiupb/redis_enhance_debug - - ndb_redis: enhance debug info related to redis replies + pkg/kamailio/obs: Fixed kamailio tmpfiles creation durring rpm installation -commit 3ce65db8747ad7b382824f389c2b782a76dbb7a1 -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 17:02:02 2017 +0200 +commit 0d89dc5e3c4c06084af8aae03e9b705673289703 +Author: Richard Fuchs +Date: Fri Mar 2 08:34:55 2018 -0500 - cfgutils: more log messages for locking functions + rtpengine: allow dual usage of DTLS flag and DTLS= switch - - it was silent if locks set was not initialized properly which could - mislead at runtime, but not showing any error message - - if locks set size is too big, set it to 14 (this is used as power of 2) - -commit 6002f2de79b1f344bf9326763d63a1f978d0ddc7 -Author: Claudiu Boriga -Date: Mon Jul 3 15:49:16 2017 +0300 - - ndb_redis: enhance debug info related to redis replies - -commit 8eb84f76a6d52598bb2fd5d13b96fba4c6326b7f -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 14:58:59 2017 +0200 - - core: parse rr - reset head in case of parse error + fixes regression from ff209e978 - - avoid acessing an invalid pointer - - proper support if trying to parse into an existing rr list in a second - attempt (not the case so far) + fixes #1468 -commit dbd52dacae17eca5a48359c605a2d93607b7c041 -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 14:42:03 2017 +0200 +commit af6c1f709ad4343539a4e47c84ff94c2f237eb16 +Author: Victor Seva +Date: Fri Mar 2 13:29:15 2018 +0100 - core: avoid accessing freed structure in case of duplicated listen addresses + pkg/kamailio/deb: kamailio.service fix for /run in tmpfs + + See #1464 -commit b95e536335083ee6f1f67e2007463ac7e8403ec8 -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 11:53:21 2017 +0200 +commit 53e1326f25e57491343a86a52b7ddf7919acce12 +Author: Hugh Waite +Date: Thu Mar 1 22:54:18 2018 +0000 - enum: fixed code for country code length + sqlops: Add NULL parameter check to C/KEMI API functions + + - Check for NULL string parameters to prevent crashes + sqlops_do_query, sqlops_get_value, sqlops_is_null, sqlops_get_column, sqlops_reset_result, sqlops_num_rows, sqlops_num_columns, sqlops_do_xquery -commit 366104d2f79ccfa65850cd2e3bfb5ed8be467bc2 -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 11:45:26 2017 +0200 +commit 401838544fde5a11fbdf2b17f21a59ca34cc3db2 +Author: Hugh Waite +Date: Thu Mar 1 20:57:27 2018 +0000 - seas: avoid double free and leak + sqlops: sqlops_do_query - Make result parameter optional in C API + + - The sqlops_do_query wrapper function will fail if the 'sres' string parameter is NULL + - This change prevents a NULL string parameter from causing an error. + - The sql_do_query function already handles NULL parameters correctly. -commit b3030a2965889a788093b2c372c1d7ac9441e8cc -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 10:57:21 2017 +0200 +commit 4115608372a2a5c7c1c97067ecc8fbd2f07c1026 +Author: Henning Westerholt +Date: Thu Mar 1 21:40:05 2018 +0100 - enum: free variable in case of error and safety check for returned pointer + README.md: change kamailio twitter handle to the new one -commit 8b0a42ab64c02a1fa253ce156442bab64a4fe3db -Author: Daniel-Constantin Mierla -Date: Mon Jul 3 10:01:20 2017 +0200 +commit 0ca711665e1299269ca2ca1e566af6e40749f22a +Author: AnthonyA +Date: Thu Mar 1 21:28:21 2018 +0800 - rr: use macro to get parsed From in record_route_preset() + app_python: KEMI accept int-int-str for t_continue - - safety check for parsed pointer + - t_continue() needs int-int-str arguments; enable in apy_kemi.c -commit 72dc534a91cd7d6cb5c432f7a0e9db9eb8d77c35 -Author: Mikko Lehto -Date: Mon Jul 3 08:44:15 2017 +0300 +commit 899ab355fb58e22eaa02336e9b5b1f2f53dba375 +Author: Daniel-Constantin Mierla +Date: Thu Mar 1 14:28:47 2018 +0100 - core: mem/dl_malloc - fix preprocessor branch comment + db_mongodb: use projection iterator to convert bson for result -commit ff2e0d96a50eadf4e872865d43f0fbe15aef18bd +commit aab4f5db964bf1980729ed8b7770f550bb86b72b Author: Daniel-Constantin Mierla -Date: Sun Jul 2 12:22:33 2017 +0200 +Date: Thu Mar 1 12:56:18 2018 +0100 - core: dns cachec- safety check in log message before abort + db_mongodb: iterate on projection fields for matching cols in result -commit 08ac68485a27db18ae4774baff0734492f617c71 -Author: Daniel-Constantin Mierla -Date: Sun Jul 2 08:54:51 2017 +0200 +commit 5218edfe606437924e24ca693f5b3776fef0e551 +Author: Kamailio Dev +Date: Thu Mar 1 10:31:38 2018 +0100 - imc: proper condition on empty db result + modules: readme files regenerated - app_python ... [skip ci] -commit c874706539342d2d90e35cdf86fc7433c9b6b312 -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 08:03:29 2017 +0200 +commit 5b58c2b0b0bc9014d248ec60e3fe942863f7fe2a +Author: AntonyA +Date: Thu Mar 1 13:45:21 2018 +0800 - xprint: init var to get rid of compile warning + app_python: implement reloading of script + + - implements reloading of script + - the version is incremented by RPC and the version check + is performed in each worker on the next invocation of a + Python method -commit b1a6830c414ddcfb21fc07bc4995b756d617558e -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 08:02:23 2017 +0200 +commit 6d0f8994611b50faa7ef7d1299acf0c390a2eed1 +Author: Claudiu Boriga +Date: Fri Feb 23 16:12:42 2018 +0200 - siptrace: proper varible in log message when af is unknown + presence: test if event is dialog to avoid unnecessary xml parsing -commit 632380ff13dce5d5f1d1553797b7783fdc986c59 -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 08:00:56 2017 +0200 +commit b62d623578737a85dd18cacc66f4e71232b463aa +Author: Andreas Granig +Date: Thu Mar 1 09:59:34 2018 +0100 - http_client: move assign for download size after right side variable was set + db_redis: Update schema definition -commit 84a540817f1aebcf1992f31b315b1b8e19cd5777 +commit d50498cf483cd22ac4e62af5aaa86fc27654f640 Author: Daniel-Constantin Mierla -Date: Sat Jul 1 07:57:23 2017 +0200 +Date: Thu Mar 1 08:29:32 2018 +0100 - dbq_usrloc: statc str vars when their pointer is used out of function + db_mongodb: create projection field to set the list of returned column -commit 1151e7da7d60a515d9f0d4746c39d8b7d4cc5b34 -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 07:55:46 2017 +0200 +commit 5aaff5e434e3f424b9ebc3ce88f9c37bc9951bf5 +Author: AnthonyA +Date: Wed Feb 28 22:47:23 2018 +0800 - app_sqlang: safety check for kemi func params used in log message + app_python3: app_python compatible syntax for internal kemi modules - - incresed size for local buffers + Python 3 does not create a package-like hierarchy of modules. + import Router.Logger # doesn't work! + + Do some early imports so that kemi scripts which use + + import Router.Logger as Logger + + will continue to work. The affected modules are KSR.pv, KSR.x, Router.Core, + Router.Logger, and Router.Ranks. -commit 47818cfab2db8ae1df720e959084e7afc22b7876 -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 07:55:26 2017 +0200 +commit 8868e624755c1d53fb7dac7140347eb375d3959c +Author: Kamailio Dev +Date: Wed Feb 28 18:03:37 2018 +0100 - app_lua: safety check for kemi func params used in log message - - - incresed size for local buffers + modules: readme files regenerated - acc ... [skip ci] -commit 84f7905e66fb72ebc382034d1e858d06f5c16057 +commit b32c5fc2582bd590b4385f28630c96cacfed3a86 Author: Daniel-Constantin Mierla -Date: Sat Jul 1 07:54:18 2017 +0200 +Date: Wed Feb 28 18:02:54 2018 +0100 - app_jsdt: safety check for kemi func params used in log message - - - incresed size for local buffers + misc/examples: added log_prefix to basic and oob examples -commit 1cc3f0ddfc517ed2b1f7820f9feedee8a91d0ac7 -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 07:50:10 2017 +0200 +commit 625f487e93a4524f56fb4606c54a84d60313feab +Author: Florian Floimair +Date: Tue Feb 27 22:58:30 2018 +0100 - core: mem - updated defines for sys malloc and mem error log messages + lib: Fix typos in library documentation -commit cee1de72a2b28d002bc84dd205b7ecf9f285fdd4 -Author: Daniel-Constantin Mierla -Date: Sat Jul 1 07:48:04 2017 +0200 +commit 329ef8684b29f76cd57a129eff77962782aae845 +Author: Florian Floimair +Date: Tue Feb 27 23:14:18 2018 +0100 - Makefile.defs: compile with system malloc for pkg if MEMPKG=sys - - - if MEMDBGSYS=1, the use a debug variant for system malloc + lib/srdb2: Fix typos in library documentation -commit 8a6f57f59963e53bcf98dd39615db3980275d81b -Author: Kamailio Dev -Date: Fri Jun 30 15:31:22 2017 +0200 +commit 338e4b14b3d3a603d7bb045a38f7b5a840cf8a21 +Author: Florian Floimair +Date: Tue Feb 27 23:08:11 2018 +0100 - modules: readme files regenerated - http_client ... [skip ci] + lib/srdb1: Fix typos in library documentation -commit 279e622b53b636d49b207907c8f3fe60ff9e2cd3 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 15:17:46 2017 +0200 +commit e0a20aa3dcf97fcdffb5a7eef6b243cf87b0fe71 +Author: Florian Floimair +Date: Tue Feb 27 22:57:43 2018 +0100 - http_client: updated docs for http_client_query() + lib/cds: Fix typos in library documentation -commit 9c1d4cec94b47cd0b2e69e646f2fd14b84e3cf03 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 15:06:24 2017 +0200 +commit db525715c9a996536e4697305e35b1c4ada4cc2a +Author: Florian Floimair +Date: Tue Feb 27 22:50:27 2018 +0100 - http_client: allow providing headers to http_client_query() - - - lost from removed http_query() in utils + xprint: Fix typos in module documentation -commit fce9044ece62d6b5e81330de62fa1fa402145e68 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 14:15:55 2017 +0200 +commit b0e6906d760d620c259ada9cd1d0fa8c42353a80 +Author: Florian Floimair +Date: Tue Feb 27 22:49:12 2018 +0100 - http_client: move to next field before freeing item in fixup function + xmpp: Fix typos in module documentation -commit dbcd85746ec1ba4a3be1af920dd2b1aad632297e -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 14:02:20 2017 +0200 +commit 5db9ad76d1460c5f33a3bda20c72c4e2d6a9131f +Author: Florian Floimair +Date: Tue Feb 27 22:48:13 2018 +0100 - call_control: free pkg memory in case of errors when parsing params + xmlrpc: Fix typos in module documentation -commit e5134e8cb64828da5f607b7c74d490c8ffaf1702 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 13:46:21 2017 +0200 +commit 77c16bc7495e985801769dba4c57f4449e08ef6a +Author: Florian Floimair +Date: Tue Feb 27 22:46:38 2018 +0100 - call_obj: free current element in case of alloc failure to its field + xlog: Fix typos in module documentation -commit 145d10f5a2dcad3cbdb477aaabdc853bb606b355 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 13:36:26 2017 +0200 +commit 787166ebd1ecaa0361b79cec4d02f0d15f3a9e64 +Author: Florian Floimair +Date: Tue Feb 27 22:45:24 2018 +0100 - websocket: use sizeof over the type of the pointer to be allocated + xhttp_pi: Fix typos in module documentation -commit 5418f380ad55618004936102273b72f1f8e36113 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 13:32:18 2017 +0200 +commit e307bf0a6cf7bab3121d37f861a83e0a6f340db2 +Author: Florian Floimair +Date: Tue Feb 27 22:43:39 2018 +0100 - domain: use same condition to alloc and free local variable + xcap_server: Fix typos in module documentation -commit 4f587124998e665c5ab9df7fe14cfbb3a39a9ec8 -Author: Olle E. Johansson -Date: Fri Jun 30 11:00:35 2017 +0200 +commit 59dabc3ff4fe3d5c75eda895979d4b48699caa97 +Author: Florian Floimair +Date: Tue Feb 27 22:40:11 2018 +0100 - db_mysql Look for MariaDB as well as MySQL + usrloc: Fix typos in module documentation -commit ccb368e6420c1e4849867bcdbd136d0e9a8db67d -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 10:30:51 2017 +0200 +commit c44aa227b45b96e377cd00b00aa39d059d130e05 +Author: Florian Floimair +Date: Tue Feb 27 22:34:41 2018 +0100 - core: parse fline - cast number to char for print to avoid compile warning + userblacklist: Fix typos in module documentation -commit f461081a400b398a8c47b1cb338ffc4bf8bd2ede -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 10:11:50 2017 +0200 +commit a94367b5a728f8886310c566ed5bda8b9ad79a92 +Author: Florian Floimair +Date: Tue Feb 27 22:33:33 2018 +0100 - core: dns cache - catch unknown record type to avoid compile warnings + uri_db: Fix typos in module documentation -commit 17f907d5fa1267f434f422fb61e4b315e3eafb97 -Author: Daniel-Constantin Mierla -Date: Fri Jun 30 08:38:11 2017 +0200 +commit 1e0f745888f8e6ea7151b4f4f962018421fa07f1 +Author: Florian Floimair +Date: Tue Feb 27 22:32:00 2018 +0100 - kamctl: kamdbctl - proper use of DBPORT for postgres + uid_domain: Fix typos in module documentation -commit e703b10cab467a0bd2a147fe63177a29310ece81 -Author: Daniel-Constantin Mierla -Date: Thu Jun 29 09:33:19 2017 +0200 +commit 1907f2a788ef1b5548c2592e8751cf2f68e6f33b +Author: Florian Floimair +Date: Tue Feb 27 22:26:51 2018 +0100 - keepalive: removed duplicated typedef definition + uid_avp_db: Fix typos in module documentation -commit 6ad1744f13d8ceda7463024e6df37a7d229bc4cc -Author: Kamailio Dev -Date: Thu Jun 29 09:31:37 2017 +0200 +commit 38fa80f7cb275ef938f82648f72dd543bc966508 +Author: Florian Floimair +Date: Tue Feb 27 22:25:01 2018 +0100 - modules: readme files regenerated - permissions ... [skip ci] + uac_redirect: Fix typos in module documentation -commit 64c529d15262921bed26f7f4b15af043382bba36 -Author: Daniel-Constantin Mierla -Date: Thu Jun 29 09:27:33 2017 +0200 +commit 6a0316c650e6976565063ffc2b03a4e134c56da8 +Author: Florian Floimair +Date: Tue Feb 27 22:23:56 2018 +0100 - permissions: documented load_backends parameter + uac: Fix typos in module documentation -commit 4826ba749a3d8589d57bc5fcb38eeb6f9e840e02 -Author: Daniel-Constantin Mierla -Date: Thu Jun 29 09:21:22 2017 +0200 +commit 293778995ae84e189aca240d457ba66ae86061ea +Author: Florian Floimair +Date: Tue Feb 27 22:20:09 2018 +0100 - permissions: new parameter load_backends - - - control what backends should be loaded - - 1 - address table - - 2 - trusted table - - 4 - allow file - - 8 - deny file - - it can be a combination (sum) of the options to load many backends - - default value 0xffff (load all backends) + tsilo: Fix typos in module documentation -commit 5e8f84e9c7d3ef792ea8b0520087ae3e933fda39 -Author: Daniel-Constantin Mierla -Date: Wed Jun 28 17:22:34 2017 +0200 +commit b7e5e0405fe9535d6353bf90b1b0c829f4413c43 +Author: Florian Floimair +Date: Tue Feb 27 22:18:57 2018 +0100 - .github: added pull request template + topos: Fix typos in module documentation -commit bbe0370939ff8a14e931595389b6678817ff1056 -Author: Ilya Shipitsin -Date: Wed Jun 28 16:45:54 2017 +0200 +commit 657e762bf0e8daba1ab91e67439786a23c74a9f1 +Author: Florian Floimair +Date: Tue Feb 27 22:18:18 2018 +0100 - utils/db_berkeley: access variable after null pointer check + topoh: Fix typos in module documentation -commit 76efc9b7a1489007f9ff431e730ce4e86b446a6c -Author: Daniel-Constantin Mierla -Date: Wed Jun 28 11:41:15 2017 +0200 +commit 8c9a0629033b4ebf0240653081a982fd445aeabf +Author: Florian Floimair +Date: Tue Feb 27 22:16:49 2018 +0100 - tls: updated tls version selection for libssl 1.1.0 api - - - fixes compile warnings for deprecated TLSXY_method() functions + tmx: Fix typos in module documentation -commit e7c03ce6ce61119fbf5cb9f41b7abcd4c7138d58 -Author: Daniel-Constantin Mierla -Date: Wed Jun 28 10:26:43 2017 +0200 +commit 8355a5e21dadf0de36c8884fde1b54beb1ca3dd5 +Author: Florian Floimair +Date: Tue Feb 27 22:15:56 2018 +0100 - tls: dynamic locks not needed for openssl v1.1.0+ - - - openssl v1.1.0 is thread safe - - fixes the compile warnings for libssl 1.1.0 + tmrec: Fix typos in module documentation -commit 551413f0952429c3a360b5ccdeaeac48ea15ff8a -Author: lazedo -Date: Tue Jun 27 23:01:37 2017 +0100 +commit 52708b7fd721ec7aec651c9585348995584b4d73 +Author: Florian Floimair +Date: Tue Feb 27 22:15:02 2018 +0100 - kazoo: add json.count transformation + tm: Fix typos in module documentation -commit d5c602454a9af6ebce852f44dc88c4efa4bf036f -Author: lazedo -Date: Tue Jun 27 23:00:43 2017 +0100 +commit 0295ba09d3144b56162acf1ba1865e3eb3246586 +Author: Florian Floimair +Date: Tue Feb 27 22:10:27 2018 +0100 - kazoo: add $kzRK to accdess routing key of the payload + tls: Fix typos in module documentation -commit a1d64dea035c1b54c285c4d2d16add414db46795 -Author: Kamailio Dev -Date: Tue Jun 27 16:46:21 2017 +0200 +commit 75a7af5cb1abcb0b0a8d829590eab4d18771b592 +Author: Florian Floimair +Date: Tue Feb 27 22:07:51 2018 +0100 - modules: readme files regenerated - path ... [skip ci] + timer: Fix typos in module documentation -commit 43f91aa76fd293eb08442a710baa8cb63146e067 -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 16:42:53 2017 +0200 +commit 16cf43c25c1f3a59fe68152a89a6601cd6b0ba6a +Author: Florian Floimair +Date: Tue Feb 27 22:07:08 2018 +0100 - path: fixed the name of the parameter in enable_r2 example + textopsx: Fix typos in module documentation -commit 7fc44593b6e2f7b554de7aa2acc9037b6da045e6 -Author: Kamailio Dev -Date: Tue Jun 27 16:31:28 2017 +0200 +commit 2b948fb7f0905cecfb77eea19df1a1ed5af6a1ca +Author: Florian Floimair +Date: Tue Feb 27 22:05:51 2018 +0100 - modules: readme files regenerated - path ... [skip ci] + textops: Fix typos in module documentation -commit e1df92080a631b8c97c110d1e87f74fa1cd5ec9e -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 16:15:43 2017 +0200 +commit 986feaf4aa0d9d352bb7f3045529ab0a8eac88ae +Author: Florian Floimair +Date: Tue Feb 27 22:03:19 2018 +0100 - pv: new variables - $RAu and $RAut - - - $RAu - URI format for local socket where the SIP message was received, - without trasport parameter for UDP, using the advertised address if available - - $RAut - URI format for local socket where the SIP message was received, - always with transport parameter, using the advertised address if available + tcpops: Fix typos in module documentation -commit aa9129b71bb009176571a8cb5bde7221b2f92b75 -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 16:14:52 2017 +0200 +commit 178c4dfd8a1d20d5d98790314914d7e41f2c4d36 +Author: Florian Floimair +Date: Tue Feb 27 22:01:40 2018 +0100 - core: parser - get_rcv_socket_uri() with option to use advertised address + statsc: Fix typos in module documentation -commit 55b5b35430ccb7de904f6b1c48ff71e691344b9e -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 16:00:08 2017 +0200 +commit 487ae52fd16a1ecc7b3fab6590f5da59c583ed8a +Author: Florian Floimair +Date: Tue Feb 27 22:00:30 2018 +0100 - pv: $RAp returns also the int value for advertised port when available + sst: Fix typos in module documentation -commit adeab30b6bd26b8c4eddd4eb070cb11417401521 -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:54:55 2017 +0200 +commit df6d7b2d10b914c69ad9c90c39271112c82fa0e8 +Author: Florian Floimair +Date: Tue Feb 27 21:59:04 2018 +0100 - pv: new variables - $Ru and $Rut - - - $Ru - URI format for local socket where the SIP message was received, - without trasport parameter for UDP - - $Rut - URI format for local socket where the SIP message was received, - always with transport parameter + sqlops: Fix typos in module documentation -commit 1984d4a063a175803b2852c14dcadd8839b4ad83 -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:53:49 2017 +0200 +commit 3753e1e1b79a21b9980c9df8d06cdbe108adcd2a +Author: Florian Floimair +Date: Tue Feb 27 21:58:06 2018 +0100 - core: parser - helper function to return URI format for local rcv socket + speeddial: Fix typos in module documentation -commit a6d405b16ba745497ba9890c60541ffdb6cadeab -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:53:20 2017 +0200 +commit 65caa8a826744de4b359ca87b139cbf629ea519b +Author: Florian Floimair +Date: Tue Feb 27 21:57:17 2018 +0100 - path: fix for second path insert pointer + snmpstats: Fix typos in module documentation -commit 8f242cfb151bbe4fdf4101f4bde59083307e6f8a -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:52:54 2017 +0200 +commit 91890dd20012cd30a63a408b961cf95d304f399b +Author: Florian Floimair +Date: Tue Feb 27 21:55:23 2018 +0100 - path: documentation for enable_r2 and received_format parameters + sms: Fix typos in module documentation -commit e518e5e7a50be3510c896bd5f8a4cc38146631cc -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:09:18 2017 +0200 +commit f59b08effbf49341ac124aa2460bfdb169232fad +Author: Florian Floimair +Date: Tue Feb 27 21:53:58 2018 +0100 - rr: small formatting adjustments to doc examples + siputils: Fix typos in module documentation -commit 2c62b317065f36606cfb22822e65c00f129b4739 -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:04:31 2017 +0200 +commit 2dbd965cda5c91cfb3eec24d440a8a139bf2f572 +Author: Florian Floimair +Date: Tue Feb 27 21:51:17 2018 +0100 - path: option to add two path headers and use alias like received value - - - enable_r2 - add two path headers, one for incoming socket and one for - outgoing socket - - received_format - parameter to control if received value should be - in sip uri (as so far) or in contact-alias param format + siptrace: Fix typos in module documentation -commit 9c9da87943ad86fd4ca3ba8b007cebfcb7d9bc61 -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 15:02:30 2017 +0200 +commit af568ae56eb0fcacade3b2f984037c18a52f5168 +Author: Florian Floimair +Date: Tue Feb 27 21:50:10 2018 +0100 - core: remove inline from implementation of functions declared without it + sipt: Fix typos in module documentation -commit a69a5135cd70919c2207a0a747b1d850fd48d35c -Author: Daniel-Constantin Mierla -Date: Tue Jun 27 09:50:00 2017 +0200 +commit 588a035469116fa3429d53b9fd509602e21af9b8 +Author: Florian Floimair +Date: Tue Feb 27 21:49:08 2018 +0100 - core: mem/fm - replaced old log macros + sipdump: Fix typos in module documentation -commit c8f7be02e20f434f88c084c38b66d5dd34cf4dc1 -Author: Daniel-Constantin Mierla -Date: Mon Jun 26 08:21:43 2017 +0200 +commit 801b53fe87140c9e2d85baece36ec681199f109c +Author: Florian Floimair +Date: Tue Feb 27 21:48:35 2018 +0100 - corex: added $cfg(route) - return name of routing block for crt action - - - aliased $cfg(file) to $cfg(name) + sipcapture: Fix typos in module documentation -commit c3212783da0af2358bcf0bcf4b5da4a8f0629251 -Author: Daniel-Constantin Mierla -Date: Mon Jun 26 08:20:45 2017 +0200 +commit 97cfa936b0140744ffc4e072ec899796dd346758 +Author: Florian Floimair +Date: Tue Feb 27 21:47:13 2018 +0100 - core: added function to return route block name from crt action - - - renamed the function that returns cfg file name from crt action + seas: Fix typos in module documentation -commit 7dbf3fe5ec323571908b6bf3ef0d9e95e84d90dc -Author: Kamailio Dev -Date: Sun Jun 25 19:16:17 2017 +0200 +commit 4cc26c479df62ea13cb0c7da9a3df16e837fba41 +Author: Florian Floimair +Date: Tue Feb 27 21:43:24 2018 +0100 - modules: readme files regenerated - jsonrpcs ... [skip ci] + sdpops: Fix typos in module documentation -commit 797bd94487cc05269b973c0dcad542838d8acbef -Merge: f0f1a9a8d baf2d095b -Author: Mikko Lehto -Date: Sun Jun 25 20:13:35 2017 +0300 +commit c438413217abbeac87180ea8111cd79ed68d261c +Author: Florian Floimair +Date: Tue Feb 27 18:46:40 2018 +0100 - Merge branch 'mslehto/issue1161' + sanity: Fix typos in module documentation -commit f0f1a9a8db1f5238b0ace1d3f190d0d9f0b2628d -Author: Mikko Lehto -Date: Sun Jun 25 19:07:06 2017 +0300 +commit 8ba2806866387b6d0f61109b4c92e475847d5aa8 +Author: Florian Floimair +Date: Tue Feb 27 18:46:02 2018 +0100 - modules/jsonrpcs: add missing apostrophe to example + rtpproxy: Fix typos in module documentation -commit 3188da9abdf5b02d4596586b979478675d2c363d -Author: Kamailio Dev -Date: Sun Jun 25 10:16:40 2017 +0200 +commit 930b5768bd5f5405adb88889afbdffb4f7650058 +Author: Florian Floimair +Date: Tue Feb 27 18:43:55 2018 +0100 - modules: readme files regenerated - topoh ... [skip ci] + rtpengine: Fix typos in module documentation -commit 1b9e1f788d3c4c8ebaf81e252d07fe3200ca37e8 -Author: Daniel-Constantin Mierla -Date: Sun Jun 25 10:04:53 2017 +0200 +commit b57691eb70d0e9d88d9f69b1348345430c4d0ec9 +Author: Florian Floimair +Date: Tue Feb 27 18:40:39 2018 +0100 - topoh: documented event_callback parameter + rr: Fix typos in module documentation -commit ca3f2fc6dd2c94410b225d2efb82081b828ddd01 -Author: Daniel-Constantin Mierla -Date: Sun Jun 25 10:00:01 2017 +0200 +commit 17390ec036101181016522bb9db480d9f7ef0c10 +Author: Florian Floimair +Date: Tue Feb 27 18:38:51 2018 +0100 - topoh: documented uri_prefix_checks parameter + rls: Fix typos in module documentation -commit 66ab19a010f833a7c53f7f46de29a749609d5eef -Author: Daniel-Constantin Mierla -Date: Sun Jun 25 09:54:09 2017 +0200 +commit 63c9a626b366a902aa2665c61dce1248ff4d813e +Author: Florian Floimair +Date: Tue Feb 27 18:37:22 2018 +0100 - topoh: coherent whitespacing and indentation + registrar: Fix typos in module documentation -commit de3386e4a303adecc3eee809c05e0654b7a05065 -Author: Daniel-Constantin Mierla -Date: Sun Jun 25 09:48:26 2017 +0200 +commit 9d4d3fa23d2830843cb3e7ea8ff53480adaa445e +Author: Florian Floimair +Date: Tue Feb 27 18:35:11 2018 +0100 - topoh: option to disable uri prefix checks - - - some devices do not copy the exact URI as received in headers - (Contact, Record-Route) - they can add default port or mix parameters - - reported by GH #1165 + regex: Fix typos in module documentation -commit baf2d095b1d4dcc932ece9d48a6a8c397fa7b1a7 -Author: Mikko Lehto -Date: Sat Jun 24 12:26:30 2017 +0300 +commit 9b47f1b24ceb0e62dd06600b710c555441c37ac4 +Author: Florian Floimair +Date: Tue Feb 27 18:33:57 2018 +0100 - core/socket_info: use internal str2int() instead of strtol() - - - strtol() works only for null terminated strings - - fix for issue GH #1161 + ratelimit: Fix typos in module documentation -commit da07cc8c724724d89dfe02bbe8a980f241afc582 -Author: Daniel-Constantin Mierla -Date: Sat Jun 24 07:16:47 2017 +0200 +commit 416fd20a2daade33db1e8414f918fd51a3e4ad1a +Author: Florian Floimair +Date: Tue Feb 27 18:31:29 2018 +0100 - pv: coherent whitespacing and indentation for pv time code + pv: Fix typos in module documentation -commit 13f34f0effc936030baf82bbdd10285b98d6d790 -Author: Daniel-Constantin Mierla -Date: Sat Jun 24 07:10:48 2017 +0200 +commit e1015c154bafd0c4aa7e00ca5aa9798c8ba4c22f +Author: Florian Floimair +Date: Tue Feb 27 18:30:13 2018 +0100 - htable: removed useless mode param from ht_cell_value_add() - - - it was used only once with mode=1 + pua_xmpp: Fix typos in module documentation -commit 8ce1bcd52cd5117f920acce5f78683e974d4a3a4 -Author: Daniel-Constantin Mierla -Date: Sat Jun 24 07:06:03 2017 +0200 +commit 86ad4d482b2c5d4c4c886d8b48ebc902752633d0 +Author: Florian Floimair +Date: Tue Feb 27 18:28:16 2018 +0100 - htable: map $shtrecord() inner names over integer ids - - - avoid string comparison at runtime + pua_dialoginfo: Fix typos in module documentation -commit f18da4c9d6cc8d1ab061d68cbd8e9d988ebf2be6 -Author: lazedo -Date: Fri Jun 23 21:18:13 2017 +0100 +commit 0e83e66c724e8219d4f3071df8f258cd36a9d58c +Author: Florian Floimair +Date: Tue Feb 27 18:25:32 2018 +0100 - kazoo: use hardcoded max size of routing key + print_lib: Fix typos in module documentation -commit 56e07cf2bb281d0aa78517e919055de640468020 -Author: lazedo -Date: Fri Jun 23 21:09:54 2017 +0100 +commit d1ae148e22d9aa2b129dc9c5eafbc0f4663c2334 +Author: Florian Floimair +Date: Tue Feb 27 18:24:35 2018 +0100 - kazoo: max size of routing key + presence_xml: Fix typos in module documentation -commit 1b56c96487d0788a0cbb21da71589f7d8314e7f8 -Merge: 4514c9188 8e185ddf8 -Author: Daniel-Constantin Mierla -Date: Fri Jun 23 19:12:38 2017 +0200 +commit 318455a79af9af989e97e0dd3a0ac609d0955a8c +Author: Florian Floimair +Date: Tue Feb 27 18:22:57 2018 +0100 - Merge pull request #1163 from snen/presence_subcribe_delete_error - - presence: subsription double delete fix + presence_dialoginfo: Fix typos in module documentation -commit 4514c91883d67ee062582aed7b414633609cf6ac -Author: Daniel-Constantin Mierla -Date: Fri Jun 23 18:19:37 2017 +0200 +commit d93c7f2bda2028f4c89602e54b46b87a9032debc +Author: Florian Floimair +Date: Tue Feb 27 18:21:59 2018 +0100 - htable: do not call expired event route on get/add operations - - - have consistent behaviour with set operation - - avoid accessing the same (expired) item twice, second after being - removed if the item is accessed in the event route - - reported by GH #1152 + presence_conference: Fix typos in module documentation -commit 8e185ddf8e81af8d6283a87ec95116965235752a -Author: Dmitri Savolainen -Date: Fri Jun 23 18:57:00 2017 +0300 +commit b6c5fb1121ed51d3043612536448bdd1c3aab19e +Author: Florian Floimair +Date: Tue Feb 27 18:21:28 2018 +0100 - presence: subsription double delete fix - - - if timeout_rm_subs parameter set to "1" and NOTIFY timeout about expired subsription + presence: Fix typos in module documentation -commit fec6764a6fae602b80b114235e8b5426fac81abc -Author: Kamailio Dev -Date: Fri Jun 23 13:16:24 2017 +0200 +commit 9d847771aaec249392ca242e3582d240f78f1c86 +Author: Florian Floimair +Date: Tue Feb 27 18:17:43 2018 +0100 - modules: readme files regenerated - xhttp ... [skip ci] + pipelimit: Fix typos in module documentation -commit 1abb2fb0e05b90128a4be4314d5845ce3c1dee66 -Author: Daniel-Constantin Mierla -Date: Fri Jun 23 13:11:25 2017 +0200 +commit 7633a3d9a1aa7fc065390ff92251b8a55bfc0337 +Author: Florian Floimair +Date: Tue Feb 27 18:16:18 2018 +0100 - xhttp: fixed the docbook format + pike: Fix typos in module documentation -commit ff4e81eb977fbf6394cc53b4055a8b62efc5f4e4 -Author: Corey Farrell -Date: Thu Jun 22 22:09:56 2017 +0200 +commit 64d4abc93687b72cb8d88158bf4b45f91debed92 +Author: Florian Floimair +Date: Tue Feb 27 18:14:16 2018 +0100 - xhttp_rpc: removed unused static constants + peering: Fix typos in module documentation -commit f885de1abcfe6ed2e981527dbbfd82f71e189be5 -Author: Corey Farrell -Date: Thu Jun 22 22:08:52 2017 +0200 +commit 3e385b92730f6582ac91c688b2386a92c5bf30a6 +Author: Florian Floimair +Date: Tue Feb 27 18:12:56 2018 +0100 - xhttp_pi: removed unused static constants + pdb: Fix typos in module documentation -commit cc737b9d926aac26437ad37ba378012b60c9b494 -Author: Corey Farrell -Date: Thu Jun 22 22:07:47 2017 +0200 +commit d6b6e668cc973f8611cb41fe73d7b1498273e15a +Author: Florian Floimair +Date: Tue Feb 27 18:11:54 2018 +0100 - ims_auth: removed empty get_ha1() static function + p_usrloc: Fix typos in module documentation -commit e6aeda065cea8626ef5cd5fb7fee459b5ff43935 -Author: Corey Farrell -Date: Thu Jun 22 22:05:36 2017 +0200 +commit c3f4e31c7a4d0ca071273293cb074052e2ab8a4c +Author: Florian Floimair +Date: Tue Feb 27 18:08:54 2018 +0100 - carrierroute: undefine code related to mi commands - - - fixes compiler warnings for unused static symbols + osp: Fix typos in module documentation -commit 5326e1fe459983a32e62646c7bd8e6fc2d63f4f4 -Merge: 01afb3bb1 c2a27bc08 -Author: Daniel-Constantin Mierla -Date: Thu Jun 22 22:02:42 2017 +0200 +commit d64e327764ff71a9645c3c74e53d50aca1b642ec +Author: Florian Floimair +Date: Tue Feb 27 18:07:33 2018 +0100 - Merge pull request #1162 from SipSeb/master - - app_lua: add "NOTICE" loglevel to sr.log + nsq: Fix typos in module documentation -commit c2a27bc0875aaaec877c75e9b50fbf41011918b1 -Author: Sebastian Damm -Date: Thu Jun 22 16:22:49 2017 +0200 +commit be51972b2f7213c67c218c0ca63249f980e1a533 +Author: Florian Floimair +Date: Tue Feb 27 18:06:04 2018 +0100 - app_lua: add "NOTICE" loglevel to sr.log + nosip: Fix typos in module documentation -commit 01afb3bb1a06c929ffd5bd1f0aaee03df28764a0 -Author: Daniel-Constantin Mierla -Date: Thu Jun 22 08:45:36 2017 +0200 +commit bf368619a051478dbc6635566d93e9ff33bb5b3b +Author: Florian Floimair +Date: Tue Feb 27 18:05:22 2018 +0100 - pv: $siz - return source ip, with enclosing square brackets for ipv6 + ndb_redis: Fix typos in module documentation -commit a526764c65ffea767fecbb13021ba48304524882 -Author: Daniel-Constantin Mierla -Date: Wed Jun 21 23:58:11 2017 +0200 +commit 8598d138376883fd5927ee03e85b3903f2a72b1a +Author: Florian Floimair +Date: Tue Feb 27 18:03:49 2018 +0100 - core: updated log macros for parse rpid + ndb_mongodb: Fix typos in module documentation -commit 155160c73a95cd7647f246a4a19ea0962afdc5c3 -Author: Kamailio Dev -Date: Wed Jun 21 20:46:26 2017 +0200 +commit 9be60087faa5359d4752abc1b99b97c5277e9485 +Author: Florian Floimair +Date: Tue Feb 27 18:00:33 2018 +0100 - modules: readme files regenerated - pike ... [skip ci] + nathelper: Fix typos in module documentation -commit 59538b66e8b8f17512b3f73c160e5de734a85a8e -Author: Mikko Lehto -Date: Wed Jun 21 20:04:47 2017 +0300 +commit 99fc6441171bf6e3ff5db0080d0658cc4d4becaf +Author: Florian Floimair +Date: Tue Feb 27 17:57:54 2018 +0100 - core: parser - fix comment typo [skip ci] + nat_traversal: Fix typos in module documentation -commit 877f768de281f9422a68bc82d1e9f87462eb398d -Author: Mikko Lehto -Date: Wed Jun 21 20:03:28 2017 +0300 +commit e6a30626fac25905dfa959789d18878b76537aec +Author: Florian Floimair +Date: Mon Feb 26 23:07:41 2018 +0100 - modules/dispatcher: comment typo [skip ci] + mtree: Fix typos in module documentation -commit 1c8aa5b7d6569bd758d3f74c84310c4634f1ce7b -Author: Mikko Lehto -Date: Wed Jun 14 11:26:48 2017 +0300 +commit 76e47f1472f053191dc1e033db73dcd35101fa83 +Author: Florian Floimair +Date: Mon Feb 26 23:05:33 2018 +0100 - modules/pike: fix documentation typo [skip ci] + msilo: Fix typos in module documentation -commit f3e1a9b90952040a4275b81a57e4f78f8f235e5e -Author: Mikko Lehto -Date: Fri Jun 2 04:11:45 2017 +0300 +commit d71bcb77c08801783cc76ea6842cec8af1de1d8e +Author: Florian Floimair +Date: Mon Feb 26 23:04:22 2018 +0100 - modules: fix common typo [skip ci] + mqueue: Fix typos in module documentation -commit 16bfd2deedb5a66186b77e317453561c339b3c72 -Author: Mikko Lehto -Date: Fri Jun 2 03:36:51 2017 +0300 +commit b7577c82b1971c125a7a23899fadc4320d5e0267 +Author: Florian Floimair +Date: Mon Feb 26 23:03:43 2018 +0100 - examples, modules: fix common typo [skip ci] + mohqueue: Fix typos in module documentation -commit 20a961624bbe164d9120b7c9ac60df8ff1daaae4 -Merge: 10129d056 5a825ddf6 -Author: Daniel-Constantin Mierla -Date: Tue Jun 20 18:54:12 2017 +0200 +commit 9a5ce2fbd5000e26fd3cb2f113ce97ce58625ec4 +Author: Florian Floimair +Date: Mon Feb 26 23:02:16 2018 +0100 - Merge pull request #1158 from kamailio/pv-received-adv-address - - pv: add received ip/port pvars for advertised ip/port + misc_radius: Fix typos in module documentation -commit 5a825ddf6bd97f7a309ba7b663496c04a6895899 -Author: lazedo -Date: Tue Jun 20 15:24:09 2017 +0100 +commit 0f5a87e93c543bd70ab61a0e9d4efe36cc901bfc +Author: Florian Floimair +Date: Mon Feb 26 23:00:56 2018 +0100 - pv: add received ip/port pvars for advertised ip/port - - adds $RAi , $RAp - if advertise is not set, defaults to reveived ip/port + memcached: Fix typos in module documentation -commit 10129d056e3660a33b6ebc7b487b1de0f616dcc9 -Author: Daniel-Constantin Mierla -Date: Tue Jun 20 16:00:00 2017 +0200 +commit a7a8209451cdbe055b735f2487d2b6ab00d44cb6 +Author: Florian Floimair +Date: Mon Feb 26 22:59:59 2018 +0100 - core: faked msg - functions to get next fmsg with clear branches + mediaproxy: Fix typos in module documentation -commit 81dd019c6afc0681fe23e281c139a5c63188e02f -Merge: 84055140f 5f249318a -Author: Daniel-Constantin Mierla -Date: Tue Jun 20 15:42:34 2017 +0200 +commit 36cf3954321f497492a78b49abe247b4f3cd3ec3 +Author: Florian Floimair +Date: Mon Feb 26 22:59:10 2018 +0100 - Merge pull request #1157 from eloycoto/evapi - - evapi: Improved error message + maxfwd: Fix typos in module documentation -commit 84055140f04ca6e8296bdd4d03e02625e71a6ea1 -Merge: f51b27840 1d073ec52 -Author: Daniel-Constantin Mierla -Date: Tue Jun 20 15:41:50 2017 +0200 +commit afd691795951623b2e51ce713262fcc929ceea35 +Author: Florian Floimair +Date: Mon Feb 26 22:58:19 2018 +0100 - Merge pull request #1156 from adubovikov/master - - modules/topoh: fixed log's level. + matrix: Fix typos in module documentation -commit 5f249318adfe26b35426c2b43f4c3df31edc1de1 -Author: Eloy Coto -Date: Tue Jun 20 14:03:29 2017 +0100 +commit 45ca9066654c16acc5ad8dda8a31b8750d6c3792 +Author: Florian Floimair +Date: Mon Feb 26 22:57:15 2018 +0100 - evapi: Improved error message - - Signed-off-by: Eloy Coto + malloc_test: Fix typos in module documentation -commit 1d073ec529053c6bc649398578068f749e11d253 -Author: Alexandr Dubovikov -Date: Tue Jun 20 13:15:38 2017 +0200 +commit 189ec2f85edd2d4c38a1856f37d4990f89f17d91 +Author: Florian Floimair +Date: Mon Feb 26 22:52:44 2018 +0100 - modules/topoh: fixed log's level. + ldap: Fix typos in module documentation -commit f51b27840b434fd6c65c6ed15b67c949d644faa9 -Merge: f58958e92 b4619fe75 -Author: Daniel-Constantin Mierla -Date: Tue Jun 20 10:02:56 2017 +0200 +commit 24520249643a4346e3244731532f1cc2222ba7ce +Author: Florian Floimair +Date: Mon Feb 26 22:49:57 2018 +0100 - Merge pull request #1155 from adubovikov/master - - modules/topoh: fixed logical conditional and false jump in th_execute… + lcr: Fix typos in module documentation -commit b4619fe75ab7a8d87ea4b50450d6800e068bc62c -Author: Alexandr Dubovikov -Date: Tue Jun 20 09:50:38 2017 +0200 +commit a20650637876f396a49fcd6d2fddca63435d26d5 +Author: Florian Floimair +Date: Mon Feb 26 22:48:13 2018 +0100 - modules/topoh: fixed logical conditional and false jump in th_execute_event_route + kex: Fix typos in module documentation -commit f58958e92dbc263b72a77395e828a38c123766e6 -Author: Kamailio Dev -Date: Tue Jun 20 08:46:49 2017 +0200 +commit 4200f54ba660ae571f231528468315d547ef5a73 +Author: Florian Floimair +Date: Mon Feb 26 22:46:37 2018 +0100 - modules: readme files regenerated - db_sqlite ... [skip ci] + keepalive: Fix typos in module documentation -commit 8885a0392cf22b2217cbe2b05d8a412d38ba31b7 -Merge: 68db22bdf b35a11f24 -Author: Daniel-Constantin Mierla -Date: Tue Jun 20 08:34:30 2017 +0200 +commit 1d2757a4db79c28e4cc2c7b5b4d8818ae7435906 +Author: Florian Floimair +Date: Mon Feb 26 22:45:10 2018 +0100 - Merge pull request #1153 from jchavanton/db_sqlite_journaling - - db_sqlite: new param to set database journal mode + kazoo: Fix typos in module documentation -commit b35a11f24b9e66f967551345b92f3b050b2786bc -Author: Julien Chavanton -Date: Mon Jun 19 13:59:31 2017 -0700 +commit 3d6237941d2180954f4eae0ff97cb998a29877d5 +Author: Florian Floimair +Date: Mon Feb 26 22:40:24 2018 +0100 - db_sqlite: new param to set database journal mode + jsonrpcs: Fix typos in module documentation -commit 68db22bdfe50ff34df8e33bc06b80b5ad4844d7b -Author: Daniel-Constantin Mierla -Date: Mon Jun 19 16:26:00 2017 +0200 +commit cf26f1cbb0ebb3a5a87cabffcc4282eb6a290e65 +Author: Florian Floimair +Date: Mon Feb 26 22:39:08 2018 +0100 - core: do not execute clear_branches() on next faked msg - - - the function clears the global variables for branches + jsonrpcc: Fix typos in module documentation -commit f86976098695f2b7fb765d8c59da6da96d791235 -Author: Daniel-Constantin Mierla -Date: Sun Jun 18 08:32:04 2017 +0200 +commit 41f4acba8f000e4183d909019a67fd4bad4ebe0d +Author: Florian Floimair +Date: Mon Feb 26 22:36:08 2018 +0100 - cfgutils: core_hash() exported to kemi framework + janssonrpcc: Fix typos in module documentation -commit a75ab7d254dd3a2d0b5ab6e2872068cb6bb26082 -Author: Daniel-Constantin Mierla -Date: Sat Jun 17 22:32:00 2017 +0200 +commit 64fce8a98a554811574c04535cfb72f6e88adca2 +Author: Florian Floimair +Date: Mon Feb 26 22:34:49 2018 +0100 - cfgutils: exported abort and mem functions to kemi framework + jansson: Fix typos in module documentation -commit 24718a4f0a7579abf9f32967cce2b86e5973cc6d -Author: Daniel-Constantin Mierla -Date: Fri Jun 16 11:49:28 2017 +0200 +commit 2fa856dbed951cc11e0c283dbb629587e0e6ac54 +Author: Florian Floimair +Date: Mon Feb 26 22:31:47 2018 +0100 - mtree: avoid char array access over the size + ipops: Fix typos in module documentation -commit cde68845a9322f0dcd84cf13932e8cbbe6c0d544 -Author: Kamailio Dev -Date: Thu Jun 15 17:16:22 2017 +0200 +commit ee0a85df3ee0c71dcab7a53ff686ca3c737a05a9 +Author: Florian Floimair +Date: Mon Feb 26 22:30:06 2018 +0100 - modules: readme files regenerated - topoh ... [skip ci] + ims_userloc_pcscf: Fix typos in module documentation -commit 0530de0df83e30f9d5bc544e1716a5eb22d2c39d -Author: Daniel-Constantin Mierla -Date: Thu Jun 15 17:08:55 2017 +0200 +commit a039bc13120a29049f56a71b445428996f27c6da +Author: Florian Floimair +Date: Mon Feb 26 22:29:14 2018 +0100 - topoh: documentation for event_route[topoh:msg-outgoing] + ims_registrar_scscf: Fix typos in module documentation -commit f7d1d234a42198fc10e40c33e92cff5e8fc1af8e -Author: Daniel-Constantin Mierla -Date: Thu Jun 15 07:02:59 2017 +0200 +commit c2338343f596c4bdafae49211dad175f1d00d426 +Author: Florian Floimair +Date: Mon Feb 26 22:27:37 2018 +0100 - topoh: execute event_route[topoh:msg-outgoing] - - - it is executed when a message is going to be sent out - - if drop is used, then the message is no longer processed with topoh - (it will be sent out in clear) - - a faked message is provided for now to the config interpreter, but - send-to info is set to the real destination, so $sndto(ip) point to - real target address and can be used to decide whether to do or not - topoh processing for the message - - related to GH PR #1150 + ims_registrar_pcscf: Fix typos in module documentation -commit 03482fb24fb4e1057095918bc750ae713cb714ee -Author: Daniel-Constantin Mierla -Date: Thu Jun 15 07:01:55 2017 +0200 +commit e2aed9c77e5de7b8951713c760d9723c4e9b9267 +Author: Florian Floimair +Date: Mon Feb 26 22:26:40 2018 +0100 - core: dst info attribute set for SREV_NET_DATA_OUT + ims_qos: Fix typos in module documentation -commit 1d95163aef99c4a182a802f59200eb0c324e9c71 -Author: Daniel-Constantin Mierla -Date: Thu Jun 15 07:01:17 2017 +0200 +commit 1ebd5492cdb336e359d1b5a7d0290c70beddc36c +Author: Florian Floimair +Date: Mon Feb 26 22:24:39 2018 +0100 - core: added dst info to sr_event_param_t + ims_ocs: Fix typos in module documentation -commit 609061e9c33641f847fd339dd6a1ee600f4c7fe3 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 18:31:07 2017 +0200 +commit 656f326f287b8df0a090998fba2d26a95cdfb04e +Author: Florian Floimair +Date: Mon Feb 26 22:23:29 2018 +0100 - core: ip_addr.h - added typedefs for structures + ims_icscf: Fix typos in module documentation -commit c391cc0dfdf038c5258145b5ea0d0994213e44c9 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 18:11:28 2017 +0200 +commit a4cef6325f16cc9d0be4f4576d35f537ded41e5c +Author: Florian Floimair +Date: Mon Feb 26 22:21:56 2018 +0100 - core: ip_addr.h - coherent indentation and whitespacing + ims_dialog: Fix typos in module documentation -commit e3589c884a5975ba739124b5b19642ccf739a097 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 17:41:53 2017 +0200 +commit baddf311f38f59577f2fc227860b5d3aedaecc07 +Author: Florian Floimair +Date: Mon Feb 26 22:20:06 2018 +0100 - gzcompress: updates for core events API changes + ims_charging: Fix typos in module documentation -commit 3b0ffe28df3590d76d985d18b9f3b3b0bf9ce056 -Author: Kamailio Dev -Date: Wed Jun 14 13:46:27 2017 +0200 +commit c7b4f7108ebe3cc4c1671bf5339df51c3230fb77 +Author: Florian Floimair +Date: Mon Feb 26 22:18:18 2018 +0100 - modules: readme files regenerated - auth ... [skip ci] + ims_auth: Fix typos in module documentation -commit 9dc6da1fef7f9a70d257496881acda7e3dc07ed1 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:42:17 2017 +0200 +commit a6c752f82ad4bf973b3f27f6fbe0d82fd888ebdd +Author: Florian Floimair +Date: Mon Feb 26 22:16:05 2018 +0100 - auth: update name of the application in the docbook + imc: Fix typos in module documentation -commit 53e603f50640a0423936737f6bc7927208030d94 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:28:48 2017 +0200 +commit 1916d5b820f23b12f736e887c14e4a9b8f681a5d +Author: Florian Floimair +Date: Mon Feb 26 22:15:23 2018 +0100 - websocket: updates for core events API changes + http_client: Fix typos in module documentation -commit 2407bb9b0138f958567fad72288abbd95f6ef199 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:28:39 2017 +0200 +commit 0a73afec98c3fbb1f35381490fad73b49d284214 +Author: Florian Floimair +Date: Mon Feb 26 22:13:49 2018 +0100 - topos: updates for core events API changes + http_async_client: Fix typos in module documentation -commit bdec54be0a084f1a77cbce533a45c322a83dcc9c -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:28:23 2017 +0200 +commit 9d48bb4a1c211be6980c5b11a5805294976fd101 +Author: Florian Floimair +Date: Mon Feb 26 22:12:51 2018 +0100 - topoh: updates for core events API changes + htable: Fix typos in module documentation -commit 3cea0ddb40744153aaf5ce072e312d8f3f0cdeb0 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:28:12 2017 +0200 +commit 1913415e467ec7d44e76834f3fdb22f94c749ae6 +Author: Florian Floimair +Date: Mon Feb 26 22:09:15 2018 +0100 - stun: updates for core events API changes + gzcompress: Fix typos in module documentation -commit 9e2f8ac337216c94dbc138ee46e61c07ce8e5749 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:27:59 2017 +0200 +commit 806bb75de2e850ce38dfebf43be1583d26b717d1 +Author: Florian Floimair +Date: Mon Feb 26 21:52:32 2018 +0100 - tcpops: updates for core events API changes + geoip: Fix typos in module documentation -commit fa162f9b38f23c197d32bee7f99b250a0134d4b2 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:27:35 2017 +0200 +commit fc6f61caf8f922867ba41e8644547e064a9718be +Author: Florian Floimair +Date: Mon Feb 26 21:51:27 2018 +0100 - siptrace: updates for core events API changes + evrexec: Fix typos in module documentation -commit e67142d009d13b1143ea224f5480dfb37fc11a5a -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:27:18 2017 +0200 +commit 8771040820aff17f84109c58d2f0d27dd6a5056c +Author: Florian Floimair +Date: Mon Feb 26 21:49:08 2018 +0100 - sipcapture: updates for core events API changes + enum: Fix typos in module documentation -commit 5a9dfd76b7ba14ca26594501458e3e56c2582f23 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:26:58 2017 +0200 +commit 8ebefead1f6a133343b4a3a0d71fb34a45e3f3b8 +Author: Florian Floimair +Date: Mon Feb 26 21:48:09 2018 +0100 - nosip: updates for core events API changes + drouting: Fix typos in module documentation -commit a354ed2e96a877e52b4a7dad77177cc1c1f75259 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:26:47 2017 +0200 +commit 61151b323d51916cacf67870fc9e6990c0ad87e1 +Author: Florian Floimair +Date: Mon Feb 26 21:46:52 2018 +0100 - msrp: updates for core events API changes + domainpolicy: Fix typos in module documentation -commit 1b2198c8113240deb1c0c20d8d975c0aaf181953 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:26:37 2017 +0200 +commit fbf542ba32de30b9dd841ee15270ddcb5e5dc450 +Author: Florian Floimair +Date: Mon Feb 26 21:45:33 2018 +0100 - kex: updates for core events API changes + domain: Fix typos in module documentation -commit 4eec934a537551d78e833769c182f8020040a678 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:26:19 2017 +0200 +commit e58e34bf4c65067151c5d7fb1e79ec15041fc81d +Author: Florian Floimair +Date: Mon Feb 26 21:44:37 2018 +0100 - dialog: updates for core events API changes + dnssec: Fix typos in module documentation -commit 01d22cf7604051a09d64098d81203f66dfd2c863 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:26:04 2017 +0200 +commit 0a587bcb435ba9882ad5372cf3d374bed0d06bad +Author: Florian Floimair +Date: Mon Feb 26 21:44:02 2018 +0100 - debugger: updates for core events API changes + dmq_userloc: Fix typos in module documentation -commit c8807c08a5937351f20d091b1d60ec1e0218058c -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:25:48 2017 +0200 +commit 82f2969e42a290a300d9a33e958c1ce8edd83c42 +Author: Florian Floimair +Date: Mon Feb 26 21:43:12 2018 +0100 - corex: updates for core events API changes + dmq: Fix typos in module documentation -commit f7b01e775a5863afe8cfe9e2cf68e56dbdd4c236 -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:25:01 2017 +0200 +commit c1c1de5bf5ac52e589e069463e032453d1cba0ca +Author: Florian Floimair +Date: Mon Feb 26 19:52:30 2018 +0100 - cfgt: updates for core events API changes + dispatcher: Fix typos in module documentation -commit 4eb286bb65689cf1d8f08e45fe79f083e8eae9ec -Author: Daniel-Constantin Mierla -Date: Wed Jun 14 13:23:55 2017 +0200 +commit 0541b8310ee40548707d118a502d76041238cb6b +Author: Florian Floimair +Date: Mon Feb 26 21:39:28 2018 +0100 - core: internal events API use a structure as parameter instead of void* - - - opens the door for more flexibility in passing extra data to callbacks + dialog: Fix typos in module documentation -commit ad48f441ec9d0611b9c80d51c459099bb520f393 -Author: Victor Seva -Date: Tue Jun 13 15:39:00 2017 +0200 +commit 14c2dc72416a144d104ddad863e25c287326efac +Author: Florian Floimair +Date: Mon Feb 26 21:36:44 2018 +0100 - Makefile: deb rule, remove --no-sign and use -us -uc - - * --no-sign just works for stretch + debugger: Fix typos in module documentation -commit 693f11fcea45c77eeec95a748bbd4344621d72cc -Author: Kamailio Dev -Date: Tue Jun 13 15:16:20 2017 +0200 +commit 1adf196ac8d5f4f7f6c37c74899e8082a9cd07bb +Author: Florian Floimair +Date: Mon Feb 26 21:35:05 2018 +0100 - modules: readme files regenerated - keepalive ... [skip ci] + db2_ops: Fix typos in module documentation -commit b22a5061e00cd78288132d8d72c860ee2ca17425 -Author: Daniel-Constantin Mierla -Date: Tue Jun 13 15:09:04 2017 +0200 +commit 418debf8e5dc12fb7ecf03f98e70f7966062af22 +Author: Florian Floimair +Date: Mon Feb 26 21:34:14 2018 +0100 - keepalove: added notes in docs about how monitoring is done - - - closes GH #1082 + db2_ldap: Fix typos in module documentation -commit 2e6b93226052a02ab014a8ca27d0df5e076f4611 -Author: Daniel-Constantin Mierla -Date: Tue Jun 13 14:02:22 2017 +0200 +commit 2b79e50e4fe13cd64806d6396fdacd640a26e0ec +Author: Florian Floimair +Date: Mon Feb 26 21:30:47 2018 +0100 - kamailio.org: updated http links to git repository - - - use https in the urls + db_postgres: Fix typos in module documentation -commit 5fc6f087cbb81fa2b9180cdd066c9912289426df -Author: Daniel-Constantin Mierla -Date: Tue Jun 13 11:19:55 2017 +0200 +commit 7c050cbf8e33413141d2388505a97fbf95150144 +Author: Florian Floimair +Date: Mon Feb 26 21:30:03 2018 +0100 - sst: log message when rejecting due to condition on min-se + db_perlvdb: Fix typos in module documentation -commit 2ac39d963d02e6bc2ed056da1762ce286cf8d976 -Author: Victor Seva -Date: Mon Jun 12 13:16:01 2017 +0200 +commit 4b286a19153144d039ec80482df51c0dc00447cb +Author: Florian Floimair +Date: Mon Feb 26 21:28:26 2018 +0100 - pkg/kamailio/deb: version set to 5.1.0-dev4 + db_oracle: Fix typos in module documentation -commit c03600d743c09ffb90a1b5cb14263d7044f9e1ee -Author: Daniel-Constantin Mierla -Date: Mon Jun 12 11:41:39 2017 +0200 +commit feae90a2259bd1ab11aae07a43f8df85aa653659 +Author: Florian Floimair +Date: Mon Feb 26 21:27:18 2018 +0100 - Makefile.defs: version set to 5.1.0-dev4 + db_mysl: Fix typos in module documentation -commit 793a4a642d702fbaf403d9e523ed715dd6303619 -Author: Daniel-Constantin Mierla -Date: Mon Jun 12 09:10:08 2017 +0200 +commit ffd7ca02c812879e5c8873ac424ff716996cbd4a +Author: Florian Floimair +Date: Mon Feb 26 21:26:27 2018 +0100 - cfgutils: rand functions exported to kemi framework + db_mongodb: Fix typos in module documentation -commit a2b82a991b98919162d9c84e279a2139364241fd -Author: Daniel-Constantin Mierla -Date: Sun Jun 11 08:43:13 2017 +0200 +commit 471626506f51ad51991d528e9e3ddfbdf43b5070 +Author: Florian Floimair +Date: Mon Feb 26 21:25:58 2018 +0100 - .gitignore: updated paths to be ignored by git + db_flatstore: Fix typos in module documentation -commit 866fc857f111c78c77fff0231a1db37ec1c52a87 -Author: Daniel-Constantin Mierla -Date: Sun Jun 11 08:37:50 2017 +0200 +commit c8c6afa6c852cbcafb3d7931b4fddb983a86647f +Author: Florian Floimair +Date: Mon Feb 26 21:25:06 2018 +0100 - regex: exported functions to kemi interface + db_cluster: Fix typos in module documentation -commit ccc958a38a7897e5e69f34ae7f055c82f66e2494 -Author: Daniel-Constantin Mierla -Date: Sat Jun 10 09:27:33 2017 +0200 +commit 1f764833b32013e7fc807f1fe70851601083d810 +Author: Florian Floimair +Date: Mon Feb 26 21:21:40 2018 +0100 - app_jsdt: updated duktape js engine to v2.1.0 + db_cassandra: Fix typos in module documentation -commit d55d00b87276f0f53b6d72ac9c0c08121341e1da -Author: Daniel-Constantin Mierla -Date: Sat Jun 10 09:19:59 2017 +0200 +commit 7f0c9da536fa265afba4638db2d1052183c5dd83 +Author: Florian Floimair +Date: Mon Feb 26 21:20:07 2018 +0100 - auth_xkeys: exported functions to kemi framework + db_berkeley: Fix typos in module documentation -commit 69ba762794f585288ee367cbbdfdc6967b7b8f79 -Author: Daniel-Constantin Mierla -Date: Fri Jun 9 12:57:07 2017 +0200 +commit 97368eb5821fad5de9c0d76b2d84fe8036d82e0d +Author: Florian Floimair +Date: Mon Feb 26 21:17:22 2018 +0100 - app_sqlang: updates to the build system for sqlang libs + ctl: Fix typos in module documentation -commit f7c2c4db1f61c69b5f609d6ef31f40f241052d81 -Author: Daniel-Constantin Mierla -Date: Fri Jun 9 12:56:26 2017 +0200 +commit 80dcc94c6a37e3eb47ea0e88d13d3d48df71272c +Author: Florian Floimair +Date: Mon Feb 26 21:16:20 2018 +0100 - misc/examples: tunings to sqlang kemi script + cplc: Fix typos in module documentation -commit 9093f0d214e79bacf9a3a6a486f420bf92eed6f4 -Author: Daniel-Constantin Mierla -Date: Fri Jun 9 08:25:29 2017 +0200 +commit e3be01f5f1b55df9bac791dea1d0a5b0c34d9eb5 +Author: Florian Floimair +Date: Mon Feb 26 21:14:51 2018 +0100 - tm: exported severat t set functions to kemi framework + corex: Fix typos in module documentation -commit 42764f908c4bd8d2eedf0b940c3289cacd12362b -Author: Daniel-Constantin Mierla -Date: Fri Jun 9 08:21:50 2017 +0200 +commit ca26bd3249d37dc1e7dbf659a6339a12d145bdd0 +Author: Florian Floimair +Date: Mon Feb 26 21:13:29 2018 +0100 - tm: split wrappers for t set flags cfg functions + cnxcc: Fix typos in module documentation -commit 5e9b3121da46aa5e9e2f1347468cda211bd198c4 -Author: Daniel-Constantin Mierla -Date: Thu Jun 8 21:51:14 2017 +0200 +commit 6424809d24e35ce16b7241a7015acaa1a80589b7 +Author: Florian Floimair +Date: Mon Feb 26 21:12:22 2018 +0100 - tm: prefixed t set functions exported to config script + cfgutils: Fix typos in module documentation -commit 68045ff55f8e9972d0560ae0216b0fe1f28556d6 -Author: Victor Seva -Date: Thu Jun 8 13:45:03 2017 +0200 +commit aad68c28f40ff49cf0551702b2bee8764e3fc3c0 +Author: Florian Floimair +Date: Mon Feb 26 21:10:31 2018 +0100 - sca: fix core when release_appearance RPC command parameter has wrong index - - > #0 0x00007fd8bba5a067 in raise () from /lib/x86_64-linux-gnu/libc.so.6 - > #1 0x00007fd8bba5b448 in abort () from /lib/x86_64-linux-gnu/libc.so.6 - > #2 0x00007fd8bba53266 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 - > #3 0x00007fd8bba53312 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6 - > #4 0x00007fd8a4b16328 in sca_appearance_list_unlink_index (app_list=0x7fd8a603c528, idx=0) at sca_appearance.c:254 - > #5 0x00007fd8a4ae0372 in sca_rpc_release_appearance (rpc=0x7fd8b1162300 , ctx=0x7ffc2ce9eef0) at sca_rpc.c:504 - > #6 0x00007fd8b0f38abb in process_rpc_req (buf=0x1e5e744 "\241\003\067oZ\274Ƒ\027sca.release_appearance", size=12344, bytes_needed=0x7ffc2ce9effc, sh=0xfefefefefefefe00, - > saved_state=0xfefefefefefefe00) at binrpc_run.c:675 + cfgt: Fix typos in module documentation -commit 56c859785ba01047246f5ef9e7d7e454e16ee08d -Author: Daniel-Constantin Mierla -Date: Wed Jun 7 11:40:38 2017 +0200 +commit 393e93ba50af32494be5ecc8ddd67b4945982ea4 +Author: Florian Floimair +Date: Mon Feb 26 21:09:43 2018 +0100 - app_sqlang: detect arch for compiling squirrel lang libs + cfg_rpc: Fix typos in module documentation -commit 061d08c29eae94741a31d002d1e99a23908a0d0f -Author: Daniel-Constantin Mierla -Date: Wed Jun 7 11:19:27 2017 +0200 +commit f3e66f504ebfcb3c3854313593254391d45f4064 +Author: Florian Floimair +Date: Mon Feb 26 21:09:07 2018 +0100 - app_sqlang: proper jump in the exports array + cfg_db: Fix typos in module documentation -commit 7116d1c10e4f3224874ea689c209f1d2974806ce -Author: Daniel-Constantin Mierla -Date: Wed Jun 7 11:16:41 2017 +0200 +commit d58149c4651558cb3904ebb618e4adebc470f733 +Author: Florian Floimair +Date: Mon Feb 26 21:08:35 2018 +0100 - app_python: proper jump in the exports array + cdp_avp: Fix typos in module documentation -commit c62aa0a2ee76f89fdf437f56621137e9f9f65210 -Author: Daniel-Constantin Mierla -Date: Wed Jun 7 11:08:56 2017 +0200 +commit f525cd8817dad3cfd2ee66eba62177f9ecfc8ead +Author: Florian Floimair +Date: Mon Feb 26 21:07:29 2018 +0100 - app_lua: proper jump in the exports array + cdp: Fix typos in module documentation -commit da81321d73666d9df1f80c92031726af0c16e2a4 -Author: Daniel-Constantin Mierla -Date: Wed Jun 7 11:04:56 2017 +0200 +commit acb466cedea7bdae6c367f4f07a08b282cc14e5b +Author: Florian Floimair +Date: Mon Feb 26 21:05:01 2018 +0100 - app_jsdt: proper jump in the js exports array + carrierroute: Fix typos in carrierroute documentation -commit 4a3a6a75010de80bc5e41f5cd1d14fabf54b43cf -Author: Daniel-Constantin Mierla -Date: Tue Jun 6 18:06:04 2017 +0200 +commit b24db83757d9690665d86b16738ce3908e73da00 +Author: Florian Floimair +Date: Mon Feb 26 21:00:43 2018 +0100 - lib/srdb1: updated tables descriptions to generate link to module + call_control: Fix typos in module documentation -commit 684d969551abdf5688c1c841b1e19e86b2324a40 -Author: Daniel-Constantin Mierla -Date: Tue Jun 6 17:11:11 2017 +0200 +commit b539c307406c821bf6f6c9344015c1ec9c4430c4 +Author: Florian Floimair +Date: Mon Feb 26 20:58:26 2018 +0100 - lib/srdb1: updated url to modules docs + blst: Fix typos in module documentation -commit efe6966fa1691cbb762ec13aa11164b0989e3cb4 -Author: Daniel-Constantin Mierla -Date: Tue Jun 6 11:19:38 2017 +0200 +commit 9f61943a195b6c8dd6d641d7a4e6b5c5550c6169 +Author: Florian Floimair +Date: Mon Feb 26 20:57:25 2018 +0100 - core: throw yyerror on invalid cfg var definition + benchmark: Fix typos in module documentation -commit fbc6b275be1467871e26ea8c72f4ad6df724e2dd -Author: Daniel-Constantin Mierla -Date: Tue Jun 6 11:18:30 2017 +0200 +commit 140164c62d2dff79db9fff917e9884f6c95abc3e +Author: Florian Floimair +Date: Mon Feb 26 20:56:40 2018 +0100 - core: catch use of numbers or reserved tokens in cfg var definitions + avpops: Fix typos in module documentation -commit f0d5c35c139920630148a946cbaf4375d812730b -Author: Daniel-Constantin Mierla -Date: Tue Jun 6 10:52:18 2017 +0200 +commit 1c75ae946feae20d035e2e4fa78e8139b5883e3d +Author: Florian Floimair +Date: Mon Feb 26 20:53:45 2018 +0100 - ChangeLog: updates to reflect last major release + auth_xkeys: Fix typos in module documentation -commit 8e65fe4d7ac055b285798290c68fe378e2addbf6 -Merge: c7b5ce5f3 4f4179616 -Author: Daniel-Constantin Mierla -Date: Tue Jun 6 09:37:10 2017 +0200 +commit 43c16b3031c396512ac4594d1470e5feac9e2e6e +Author: Florian Floimair +Date: Mon Feb 26 20:51:59 2018 +0100 - Merge pull request #1149 from mslehto/deadcode - - Found some obsolete statements in nathelper + auth_radius: Fix typos in module documentation -commit 4f4179616db5dd3a6e48390a1227b896dd667d29 -Author: Mikko Lehto -Date: Mon Jun 5 21:51:25 2017 +0300 +commit 1d701a599df15f47e889509bab28f1d1490a6888 +Author: Florian Floimair +Date: Mon Feb 26 20:50:10 2018 +0100 - modules/nathelper: remove old unused code and macros - - - MI removed completely - - RTP proxy logic in modules/rtp[proxy|engine] + auth_ephemeral: Fix typos in module documentation -commit 37b90d1c91bcaa2281a4fa25980f31d9f2579d17 -Author: Mikko Lehto -Date: Mon Jun 5 21:43:18 2017 +0300 +commit 8217b643e8082b0627402c62cc5bed7fa552fc97 +Author: Florian Floimair +Date: Mon Feb 26 20:47:41 2018 +0100 - modules/nathelper: make variable declaration consistent + auth_db: Fix typos in module documentation -commit c7b5ce5f32663938665c56151f69ea067c1787ea -Author: Daniel-Constantin Mierla -Date: Sun Jun 4 16:04:16 2017 +0200 +commit 7614b78088afa983947e4b79fb9588291e70a12b +Author: Florian Floimair +Date: Mon Feb 26 20:46:29 2018 +0100 - doc/select_list: makefile - generate html with full section numbers + auth: Fix typos in module documentation -commit c43fa2c568ec3f6100b2094e4fb3dc8fc1247619 -Author: Daniel-Constantin Mierla -Date: Sun Jun 4 16:00:36 2017 +0200 +commit 5374199e91bbe72b5fadc105b2f0955d2b4e9ce8 +Author: Florian Floimair +Date: Mon Feb 26 20:40:00 2018 +0100 - doc/cfg_list: makefile - generate html with full section numbers + app_sqlang: Fix typos in module documentation -commit a80e3421dda08c00935bbac08e5b589175c51f5d -Author: Daniel-Constantin Mierla -Date: Sun Jun 4 15:36:44 2017 +0200 +commit 4d5602bc99ffaf3c829d95c65ec7329bbce38a05 +Author: Florian Floimair +Date: Mon Feb 26 20:39:07 2018 +0100 - doc/counter_list: makefile - generate html with full section numbers + app_python3: Fix typos in module documentation -commit 961418e68ab633328b7378a47ac94963438923a7 -Author: Daniel-Constantin Mierla -Date: Sun Jun 4 12:39:07 2017 +0200 +commit 58e6781a62b08b47511927ea984e892c800a2013 +Author: Florian Floimair +Date: Mon Feb 26 20:15:40 2018 +0100 - doc/rpc_list: makefile - generate html with full section numbers - - - new target to do updates over the generated html + app_python: Fix typos in module documentation -commit 66873cbec5249a21c048349f608e316febd1b313 -Author: Victor Seva -Date: Sun Jun 4 12:46:59 2017 +0200 +commit 66a7053ed7972a0257c8c4d042f358991f49553b +Author: Florian Floimair +Date: Mon Feb 26 20:14:54 2018 +0100 - pv: fix pv_var_to_xavp() and pv_xavp_to_var() functions - - * xavp was not properly created at pv_var_to_xavp() - * add proper xavp loop for pv_xavp_to_var() + app_perl: Fix typos in module documentation -commit dcda7189bc8add7bf7e254d516aa90d7751f13aa -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 15:17:55 2017 +0200 +commit 1d75cd7cc2cb42f5ab3dee9b4175aedb3615c195 +Author: Florian Floimair +Date: Mon Feb 26 20:09:51 2018 +0100 - doc/counter_list: regenreated files with lists of counters + app_lua: Fix typos in module documentation -commit 05cf5dbf22de0a4edd4de59cc77dede820fcddfd -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 15:17:04 2017 +0200 +commit 735021884c795f5880c8124839da2df8dae8ca34 +Author: Florian Floimair +Date: Mon Feb 26 20:08:37 2018 +0100 - doc/counter_list: updated makefile with the list of files exporting counters + app_jsdt: Fix typos in module documentation -commit c6a6e738b538069c24aa63e8e0525695118d4a52 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 15:16:29 2017 +0200 +commit b7bcd18ee9dbaf6cef16119ff5dfdfc79764ccab +Author: Florian Floimair +Date: Mon Feb 26 20:05:55 2018 +0100 - doc/scripts: updated the script searching for counters + app_java: Fix typos in module documentation -commit a434f0a487f57e34af884a7f27eeb490ef3c9ac3 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 14:51:05 2017 +0200 +commit 17fcca8151f91f603de58ee2dc63aba294975095 +Author: Florian Floimair +Date: Mon Feb 26 20:02:42 2018 +0100 - doc/rpc_list: remove html generated file + acc_json: Fix typos in module documentation -commit cc0867a823d8517413c00c7fe4e836442db4a878 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 14:30:08 2017 +0200 +commit 102111c7d6da0f55a947b39e6a142c769f23ba29 +Author: Florian Floimair +Date: Mon Feb 26 20:00:52 2018 +0100 - doc/select_list: regenerated the doc files with selects list + acc_diameter: Fix typos module documentation -commit 122328f95b1c1f3839fae69b7cb1297666afa506 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 14:28:46 2017 +0200 +commit 8ebf6bd0d1ba1e1b9018250f7c677b6ac060e073 +Author: Florian Floimair +Date: Mon Feb 26 20:00:08 2018 +0100 - doc/select_list: updated makefile with the list of files exporting selects + acc: Fix typos in module documentation -commit 6243100ac57f0ed08a95c1cb80e808ec0ab5b710 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 14:28:08 2017 +0200 +commit 6c40983bf04a23bd7394c247980f21c5f2d6d817 +Author: lazedo +Date: Wed Feb 28 16:24:22 2018 +0000 - doc/scripts: updated the perl script searching for selects + kazoo: free envelope only on normal response -commit 54b04fb7585a1c207e5d955671486b1da8207d46 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 13:46:59 2017 +0200 +commit 755ce7bfa5d0f15d3bd25ae7ac0d4c4deba05cb0 +Author: Kamailio Dev +Date: Wed Feb 28 16:01:35 2018 +0100 - doc/rpc_list: regenerated the docs with rpc commands + modules: readme files regenerated - rtpengine ... [skip ci] -commit 03fe3c57c8a86f088b40927a415a128bf6b55a05 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 13:45:35 2017 +0200 +commit ff209e978e732def77285e8045d7f3d0a561fde9 +Merge: ceff642b2 99695c282 +Author: Richard Fuchs +Date: Wed Feb 28 09:55:18 2018 -0500 - doc/rpc_list: updated makefile with list of files exporting rpc commands + Merge pull request #1460 from jerzyptak/rtpengine-add-dtls-transports + + rtpengine: added support for DTLS transports -commit d563c275a3eea5dab97357d79d27a09e87a49c2c -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 13:43:57 2017 +0200 +commit 99695c2827d0ff6e3d25f144678f07548016415d +Author: Jerzy Ptak +Date: Wed Feb 28 12:29:45 2018 +0000 - doc: updates to perl script searching the rpc commands + rtpengine: added support for DTLS transports + + - added ability to explicitly request DTLS transports: + UDP/TLS/RTP/SAVP and UDP/TLS/RTP/SAVPF -commit 01da68955c88ec4e603e082004ff7d3731773fea +commit ceff642b25f8b464515446ed696da43c1f638d21 Author: Daniel-Constantin Mierla -Date: Sat Jun 3 13:43:00 2017 +0200 +Date: Wed Feb 28 11:16:02 2018 +0100 - doc/cfg_list: do not skip tls module when searching for cfg vars + registrar: downgraded some warning messages at startup -commit 790066a255e4f437650f3263fbd316015ade7789 +commit c9cd7b9212291e7d0846103cd2d4c8613dd667a1 Author: Daniel-Constantin Mierla -Date: Sat Jun 3 12:07:50 2017 +0200 +Date: Wed Feb 28 10:36:11 2018 +0100 - doc/cfg_list: updated files with docs for cfg vars + cfgutils: fix kemi wrappers for locking functions + + - sip_msg_t* argument was missing, reported by GH #1459 -commit 5d9ee9fe75364a0cf93feccefdd5879e23dbfa52 -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 12:05:22 2017 +0200 +commit 086a529e294f195161f807710d77cdccf210c17f +Author: AntonyA +Date: Wed Feb 28 11:02:47 2018 +0800 - doc/cfg_list: updated Makefile with list of files exporting cfg vars + app_python3: KEMI accept int-int-str for t_continue - - paths to folders updated + - t_continue() needs int-int-str arguments; enable in apy_kemi.c -commit 03aa21841a3b88ddbe3dea197f5fe39569e4aa4c -Author: Daniel-Constantin Mierla -Date: Sat Jun 3 12:02:54 2017 +0200 +commit 62d7c838b5bcef04c3445b9eb9c6d73402f2b02f +Author: Andreas Granig +Date: Tue Feb 27 17:55:42 2018 +0100 - doc: updates to script for generating cfg var list + db_redis: Fix removal of correct queued command + + When calling db_redis_get_reply, remove oldest queued command + instead of newest. -commit a6dc1da2888da179920010eca538c08d1986af44 +commit 7102888b570ef8bc29b3b389d2500db6e7c4250e Author: Kamailio Dev -Date: Sat Jun 3 09:01:41 2017 +0200 +Date: Tue Feb 27 13:31:23 2018 +0100 - modules: readme files regenerated - acc ... [skip ci] + modules: readme files regenerated - json ... [skip ci] -commit e60e8b48897308319cbd6cad31c6874a9a24c47c +commit 6a64100105e7ac0ae8a952a2e3770d7534615796 Author: Daniel-Constantin Mierla -Date: Sat Jun 3 08:55:19 2017 +0200 +Date: Tue Feb 27 13:10:19 2018 +0100 - acc: removed useless revhistory from docs + json: docs - more details about the result of json_get_field() + + - reported by GH #1542 -commit 48852b606ccc65615c5e2d4776e1442e506c4616 +commit 54774017325fe2e24ee7c5d64b343ad0097c8332 Author: Daniel-Constantin Mierla -Date: Fri Jun 2 23:15:23 2017 +0200 +Date: Tue Feb 27 11:01:23 2018 +0100 - doc: updates to bookinfo for db tables + core: main - use fprintf() if daemon_status_send() fails at shut down + + - avoid race with syslog() when processes are killed + - reported by GH #1454 -commit 205920ee9ad98500803a882a72acc50cacfa45c2 -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 22:57:52 2017 +0200 +commit 3df9647e5751d70509ea3616039ddeb4b5f709cb +Author: AnthonyA +Date: Tue Feb 27 07:37:26 2018 +0800 - lib/srdb1: fixed autogenerate Makefile for db tables docbook + app_python3: fix missing GIL release in an error path -commit fd7795bf071b9ced641936b23febaca029d13249 -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 22:52:04 2017 +0200 +commit 609758beb0c70eb881158230bc402003016aebe0 +Author: Kamailio Dev +Date: Mon Feb 26 20:31:21 2018 +0100 - kamctl: regenerated mongodb spec files for db tables + modules: readme files regenerated - app_python3 ... [skip ci] -commit 013ed5ae2a72dfe10159ef4e9cf66ea9eabf07a7 -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 22:50:42 2017 +0200 +commit 7f463b313c6dee9d1b90a3aba631855035203e94 +Author: AntonyA +Date: Fri Feb 23 14:06:26 2018 +0800 - lib/srdb1: update rule to generate mongodb json spec file for db tables + app_python3: implement script reloading - - do not generate docbook files by default - -commit 1a79d6af112c409ec9db17dddfcaf0859b0f8e3b -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 22:37:20 2017 +0200 - - lib/srdb1: fixed rules for generating db tables docbook + Copy the method used in app_lua: the version of the script is incremented by RPC. + In python_exec.c:apy_exec() check for a newer version and reload the script. + + Set a lock so the script reload only occurs at depth 0 (in the unlikely case + that apy_exec() is called recursively). + + This is not thread-safe as we are using a process-wide lock: don't call back + into apy_exec() from a Python extension that uses threads. -commit 3740aa1d558850ae8ce4e47bbdd3356514859633 -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 20:30:15 2017 +0200 +commit 6568170a68a8850df164707bda87bb67eb7d6523 +Author: AnthonyA +Date: Tue Feb 20 21:14:48 2018 +0800 - lib/srdb1: sync'ed names of db table groups with modules + app_python3: update documentation + + - update documentation and python_examples/ to reflect the new module name + - fix typo arg->args in python_examples/handler.py -commit 2d37fd18889caffaa2bd77bf0994b753f26e97eb -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 20:15:09 2017 +0200 +commit 2c7099a7d0ce852663b189c67b43249957b6a281 +Author: Sergey Safarov +Date: Mon Feb 26 08:43:46 2018 +0000 - kamctl: added missing dr_groups to extra tables + pkg/docker: Updated reference to packaging scripts -commit ad84125965f8bdc7030e1041e73b3755063dc345 -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 20:06:02 2017 +0200 +commit 6eb4d67c1fd2349506bc0d0d6dbe27a26bad9926 +Author: Kamailio Dev +Date: Mon Feb 26 08:32:10 2018 +0100 - kamctl: regenerated database creation scripts + modules: readme files regenerated - auth ... [skip ci] -commit 5df2d12a409b84050221871d138478528e9fa058 +commit 025b22999e2826fdb4183e05b0008407551527d6 Author: Daniel-Constantin Mierla -Date: Fri Jun 2 20:03:57 2017 +0200 +Date: Mon Feb 26 08:22:31 2018 +0100 - kamctl: added rtpengine table to be created by kamdbctl + ims_dialog: updated application name -commit 85af6e08f5470cf4533c01badec8759713d897c9 +commit 998d26aef7fcccf52957076acd8fec6b81968b1c Author: Daniel-Constantin Mierla -Date: Fri Jun 2 20:01:13 2017 +0200 +Date: Sun Feb 25 08:01:53 2018 +0100 - kamctl: added drouting tables to be created by kamdbctl + auth: docs - adjustments to examples -commit 8409d05a349984e4a6aeb307b52b12181d0eb709 -Merge: 0bf901966 1528c1f2d +commit 45260517ce4b97387d98bcc7c303bcdec55e4114 Author: Daniel-Constantin Mierla -Date: Fri Jun 2 15:37:08 2017 +0200 +Date: Fri Feb 23 09:56:55 2018 +0100 - Merge pull request #1089 from sergey-safarov/spec_update7 - - pkg/kamailio: Fixed systemd unit failure on server boot + core: kemi - exported KSR.add_tcp_alias() and KSR.add_tcp_alias_via() -commit 0bf901966aac3026cd0ba4798f5689c66d7f7b4f +commit 3bccc76cb35ca768017e4f76cb9be8d4767b5b83 Author: Kamailio Dev -Date: Fri Jun 2 15:31:37 2017 +0200 +Date: Thu Feb 22 09:51:45 2018 +0100 - modules: readme files regenerated - ndb_redis ... [skip ci] + modules: readme files regenerated - db_redis ... [skip ci] -commit 3188ae670ba1b43dc939e13e745edc0b0066b657 -Merge: 2d771f563 f4a793ee3 +commit acf46decd2a369d8279bd7501c2e5d45f4b5b19c Author: Daniel-Constantin Mierla -Date: Fri Jun 2 15:27:48 2017 +0200 - - Merge pull request #1147 from claudiupb/redis_enhance_reply_access - - ndb_redis: enhance access to REDIS replies - -commit 2d771f563d19fccad0a28e56a5d99de571ef5da6 -Author: lazedo -Date: Tue May 30 01:48:03 2017 +0100 +Date: Thu Feb 22 09:45:29 2018 +0100 - htable: release pkg memory before returning + core: kemi - added KSR.is_method_in("mflags") - resets 'first' when esize == 0 + - check if current method matches one listed in the flags + - flags are: I (INVITE), A (ACK), B (BYE), C (CANCEL), R (REGISTER), + P (PUBLISH), S (SUBSCRIBE), N (NOTIFY), O (OPTIONS) + - KSR.is_method_in("IABC") + - more compact alternative to KSR.is_method(...) -commit 5cc05f9b47eaa829a945aa628d39d78bab7756bf -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 15:03:56 2017 +0200 +commit a1648fe782bf5c4a65c249403c3e13f8448bdfb1 +Author: Alex Balashov +Date: Wed Feb 21 05:20:28 2018 -0500 - benchmark: removed unnecessary casts to int* - - - initialize variables to 0 in rpc commands + db_redis: Some minor changes to documentation for more idiomatic English and additional clarity. -commit 407e3e435bf22809553e0466e2d59dd6f51c26ab -Merge: 7b5c62e59 6fe4146fa +commit 03c3a04bca378082a7e2bda3fa5aaaf117ce4579 Author: Daniel-Constantin Mierla -Date: Fri Jun 2 15:01:26 2017 +0200 +Date: Wed Feb 21 09:27:10 2018 +0100 - Merge pull request #1146 from kamailio/vhernando + core: kemi - exported functions to match myself for r-uri, from-uri, to-uri - benchmark: b/f avoid undefined bytes when int and long int sizes mism… + - KSR.is_myself_ruri(), KSR.is_myself_furi(), KSR.is_myself_turi() -commit 7b5c62e5988517e3e38082493056e6512aff08e7 +commit 224cdfe4999dfc1084f61dfe2130230d843f8296 Author: Daniel-Constantin Mierla -Date: Fri Jun 2 14:54:31 2017 +0200 - - tm: more functions exported to kemi interface - -commit f4a793ee33e7cc8266fd9010726a7372e56a379c -Author: Claudiu Boriga -Date: Fri Jun 2 15:06:20 2017 +0300 - - ndb_redis: enhance access to REDIS replies - - add support to access array within arrays - -commit 6fe4146fad49a6525faed599cc4681e43b7d7910 -Author: Vicente Hernando -Date: Fri Jun 2 14:20:24 2017 +0200 - - benchmark: b/f avoid undefined bytes when int and long int sizes mismatch. - -commit d0bfefd0f03962b61162eeb65fe01e8dff91674f -Author: Victor Seva -Date: Fri Jun 2 10:14:46 2017 +0200 +Date: Wed Feb 21 08:17:46 2018 +0100 - src/Makefile: fix make deb rules + db_redis: declare variable at beginning of function - * dpkg-buildpackage needs to be executed from the root of the project - * don't sign any file + - doing it inside for statement breaks compiling with less than C99 + - reported in Jenkings debs building log -commit 105376bea7de217d58f3558b8da0244d1f499ec5 -Merge: 2342f5212 cca31b30a -Author: Daniel-Constantin Mierla -Date: Fri Jun 2 10:34:27 2017 +0200 +commit 7da5e5b0a1f4520c7fdd7eeb23b4b58ecc27be22 +Author: Mikko Lehto +Date: Tue Feb 20 01:32:39 2018 +0200 - Merge pull request #1144 from linuxmaniac/vseva/fix_tm_leak + tm: flag core to use forced socket when uac socket is set - core: parser reset_path_vector() remove check for msg->msg_flags + - without flag SND_F_FORCE_SOCKET probing by dispatcher module + and route script function t_uac_send() will choose incorrect source socket -commit cca31b30aeb80c808b10c5f4f36285c1c55cd72a -Author: Victor Seva -Date: Fri Jun 2 10:19:25 2017 +0200 +commit 34293750753280229a6e546a12a8a59871d758b0 +Merge: fd9fe3a67 5fef3a6dc +Author: Richard Fuchs +Date: Tue Feb 20 12:21:35 2018 -0500 - core: parser reset_path_vector() remove check for msg->msg_flags + Merge pull request #1442 from hdikme/control_command_tos - * tm now uses shared memory for fake_req() so faked_req->path_vec - was leaking + rtpengine: setting tos value for the control commands -commit 2342f52126f0832f11d9ad3d7b364a703b8be871 -Author: Daniel-Constantin Mierla -Date: Thu Jun 1 18:02:29 2017 +0200 +commit 5fef3a6dc02543dcdced6f935da4b23f7702a050 +Author: Huseyin Dikme +Date: Thu Feb 15 16:17:55 2018 +0100 - tm: updated log macros in fifo code + rtpengine: setting tos value for the control commands + - A parameter "control_cmd_tos" has been created in order to set + the type of service for the control channel. -commit 09bce3d97acf54c289f1a2c6905175038502e7a0 -Author: Daniel-Constantin Mierla -Date: Thu Jun 1 10:01:27 2017 +0200 +commit fd9fe3a677cde97dbf00ef965c45e5b6a495edf7 +Author: Andreas Granig +Date: Tue Feb 20 11:12:57 2018 +0100 - nat_traversal: print keepalive file name in error messages + db_redis: re-do appended commands after reconnect + + Since hiredis sends out the pipelined command only after + calling redisGetReply(), we need a mechamism to queue up all + appended commands, so we can re-queue them once the connection + is re-established. + + This commit introduces a redis command queue used for pipelined + commands to re-do all appended commands in case of a connection drop + (which typically happens in db-mode write-through with very low + traffic, where redis would close the connection due to inactivity). -commit c1737dafeddc7c2f496d45e5df1b3da9c287494b -Author: Kamailio Dev -Date: Wed May 31 22:01:23 2017 +0200 +commit 2e51e189236d7f30bf3a4a8ae6e84705c965625e +Author: Daniel-Constantin Mierla +Date: Tue Feb 20 10:17:47 2018 +0100 - modules: readme files regenerated - ctl ... [skip ci] + Makefile.groups: created group for app_python3 module -commit ed383a384d0625c06959a289dc6a50b28869f68d -Author: Stefan Mititelu -Date: Wed May 31 22:37:12 2017 +0300 +commit 3439b5bf91fb438b39d27b54d428f22ed42b6b93 +Author: AnthonyA +Date: Fri Feb 16 21:37:33 2018 +0800 - ctl: fix default path for doc examples + app_python3: first release + + - use same symbols names as app_python so these two modules cannot be used together + - use GIL for thread management -commit c26ff896824956efb3f77e7d1146d84792da2782 +commit 39b9ce7b101dde6878f245731eda060f947412ba Author: Daniel-Constantin Mierla -Date: Wed May 31 16:15:36 2017 +0200 +Date: Tue Feb 20 07:17:04 2018 +0100 - dispatcher: log dst uri in error messages + siptrace: removed unused variables + + - reported by Juha Heinanen -commit 69dfb0faac87307ab2bb746b4e10d25a0279de70 -Author: Kamailio Dev -Date: Wed May 31 09:46:18 2017 +0200 +commit 285c9e091ebf74f29fe6e9f9c8e808604bc6da35 +Author: Daniel-Constantin Mierla +Date: Mon Feb 19 12:45:40 2018 +0100 - modules: readme files regenerated - pipelimit ... [skip ci] + db_redis: doc - fixed docentities in xml files -commit 06648b9ce868307eb487ced9bd3d61f249246a73 +commit 20692facbc01c3528a5dc0bca45bcfcccf1057a8 Author: Daniel-Constantin Mierla -Date: Wed May 31 09:31:57 2017 +0200 +Date: Mon Feb 19 12:41:09 2018 +0100 - pipelimit: updates to documentation for cfg functions + db_redis: doc - fixed value for docbook_dir in makefile -commit 93ba83a349564bf307654bf2891100071376eca2 +commit 2a88f6e832fb75813884373303fc493294dca09b Author: Daniel-Constantin Mierla -Date: Wed May 31 09:28:57 2017 +0200 +Date: Mon Feb 19 12:31:44 2018 +0100 - pipelimit: allow execution of cfg functions from several routing blocks + pua_json: docs - fixed pua_json.xml name in makefile -commit c4315a4755c555ac9a5c65649625e7678c470ca8 -Author: Kamailio Dev -Date: Wed May 31 09:31:47 2017 +0200 +commit ce8441dfb93ed2ba45c0ec70f613b21d9e237fed +Author: Daniel-Constantin Mierla +Date: Mon Feb 19 12:27:38 2018 +0100 - modules: readme files regenerated - ratelimit ... [skip ci] + json: docs - removed extra ending section tag -commit 44cc202959bd32e1a0c6e7926edce32cc8cb5f3f +commit 44023e7eb8ff6a23bc57b69f8695466e910bed4a Author: Daniel-Constantin Mierla -Date: Wed May 31 09:18:15 2017 +0200 +Date: Mon Feb 19 12:24:39 2018 +0100 - ratelimit: updates to documentation + presence: use < instead of < in xml docs -commit 61e715c0b4c013b63bebb014b33305a78e5b9558 +commit 5b5d55bd377b0572efaceeb0feb164bf5dd26bf0 Author: Daniel-Constantin Mierla -Date: Wed May 31 09:09:16 2017 +0200 +Date: Mon Feb 19 10:29:46 2018 +0100 - ratelimit: allow int or pv in parameters of cfg functions + registrar: set current time before checking registered() conditions - - execution can be done in ANY_ROUTE + - patch by Dmitri Savolainen, closes GH #1267 -commit bce1db4fce2a7cd75a8103916e1361b9c94d6f64 +commit 04406cc5b46b86ba6cb4642c45020aa7861f5ffa Author: Victor Seva -Date: Tue May 30 16:56:38 2017 +0200 - - travis-ci: use proper domain for sr-dev mailing list [skip ci] +Date: Mon Feb 19 10:18:25 2018 +0100 -commit 54fd334c5726d65d012d218cc2cda5058549995b -Author: Daniel-Constantin Mierla -Date: Tue May 30 12:40:04 2017 +0200 - - prefix_route: removed unused variable + pkg/kamailio/deb: set version to 5.2.0~dev4 -commit 6021f1db834ccbed6f01027c2bb5d00c5947b7d6 -Author: Daniel-Constantin Mierla -Date: Tue May 30 12:37:37 2017 +0200 +commit ca230986b7f4ea84746c47df177ac21b19fd70a3 +Author: lazedo +Date: Sat Feb 17 14:33:07 2018 +0000 - presence: removed unused variables + dispatch: change log level to debug for rpc list empty list + + + when dynamically loading/querying the dispatcher list at runtime, empty dslist logs as error which misleads log monitoring tools looking for real errors -commit 2cb9ffc5d110e7baa75a11841369e84c14fe304c +commit c3d98c5dedd055e013faf64f2dee5ce69b914a3d Author: Daniel-Constantin Mierla -Date: Tue May 30 12:35:51 2017 +0200 +Date: Mon Feb 19 10:05:52 2018 +0100 - debugger: fixed function name exported to kemi interface + Makefile.defs: version set to 5.2.0-dev4 -commit b9c58c6c490e62297c7b39b97a2c3aeb3441b3a1 +commit 2bfb71472014cabf6a6fb0fdac1421d50486d775 Author: Daniel-Constantin Mierla -Date: Tue May 30 10:34:16 2017 +0200 - - keepalive: functions exported to kemi interface - -commit 7fce53407c4ca8695b325a92a1574a1f01daf80b -Author: Kamailio Dev -Date: Mon May 29 23:31:20 2017 +0200 +Date: Sun Feb 18 08:24:36 2018 +0100 - modules: readme files regenerated - ipops ... [skip ci] + CONTRIBUTING.md: added developer access section -commit c1fa78063c6b040433d426e6fcf472f0b430a7cf -Merge: 1104411ba 8866127dc +commit 05e06cb01a2fbef6c3077ca46a1ef5dac1488a7f Author: Daniel-Constantin Mierla -Date: Mon May 29 23:16:38 2017 +0200 +Date: Sat Feb 17 20:32:27 2018 +0100 - Merge pull request #1141 from vitalikvoip/ipops_naptr + CONTRIBUTING.md: note about personal branches of developers - ipops: new naptr_query function + - prefix with `developerid/` when creating a personal branch inside + Kamailio GIT repository -commit 1104411ba7c229738e954eec5f6fca2f0451fe93 -Merge: ff95605d3 bd57cd59c +commit 62b00fc883b552cc2c1270f5f50a51da753710d5 +Merge: 29d09b38f 744be5a93 Author: Federico Cabiddu -Date: Mon May 29 11:06:39 2017 +0200 +Date: Fri Feb 16 13:00:04 2018 +0100 - Merge pull request #1140 from vitalikvoip/tsilo_deadlock + Merge pull request #1444 from grumvalski/redis_server_len_fix - tsilo: fix deadlock in ts_append() + ndb_redis: fix check on server name len when adding a new server to t… -commit 8866127dcd9780eb0b4f2aeb08ab5a1dbe9fe20f -Author: Vitaliy Aleksandrov -Date: Mon May 29 11:42:27 2017 +0300 +commit 744be5a9315687bf632d35d68cdfc6d913368477 +Author: grumvalski +Date: Fri Feb 16 11:26:00 2018 +0100 - ipops: new naptr_query function + ndb_redis: fix check on server name len when adding a new server to the cluster -commit bd57cd59c2936e62f6e231cac4ba42920eb109b3 -Author: Vitaliy Aleksandrov -Date: Mon May 29 11:14:50 2017 +0300 +commit 29d09b38fab5a1ee8d7f6f82818e3d3446d4dd8b +Author: Daniel-Constantin Mierla +Date: Fri Feb 16 09:04:14 2018 +0100 - tsilo: fix deadlock in ts_append() + presence: keep first dialog node reference to compare name with next nodes - Copy ruri parameter into pkg mem before calling ts_append(). - Value saved in a static buffer from pv_get_buffer() can be corrupted if - a new branch adds an additional SIP header in its branch_route + - there can be intermediary nodes of other type making the match fail + - related to GH #1425 -commit ff95605d37b2e956ed218efcff530e428137f07d +commit a4dc8d6a6f42f6962fc9715e464f06be6c63fdc0 Author: Daniel-Constantin Mierla -Date: Mon May 29 07:31:02 2017 +0200 +Date: Fri Feb 16 08:50:27 2018 +0100 - drouting: updates for keepalive api + db_redis: don't declare vars in for statement + + - not compliant with C strict compile older than C99 -commit 211dc1be81b25d732ff6100417067962f7dbd451 -Author: Daniel-Constantin Mierla -Date: Mon May 29 07:18:14 2017 +0200 +commit 324f3f2347e24e3335a32b8310a76a7bc4a0550a +Author: Mikko Lehto +Date: Thu Feb 15 16:57:28 2018 +0200 - keepalive: allow variables in cfg function parameters - - - use str* instead of str for api functions + main.c: fix argument help typo + +commit 9d594b2d61d113ee13c5c6c6985d07d5e2c8b76a +Author: Mikko Lehto +Date: Thu Feb 15 17:17:28 2018 +0200 + + siptrace: improve module parameter error logging -commit 857800a368c6bb70b5ec057c89ffca7c30556c43 +commit 722c1e37234472c9614e71addf894a43a446aac0 Author: Daniel-Constantin Mierla -Date: Sun May 28 11:42:04 2017 +0200 +Date: Thu Feb 15 11:48:37 2018 +0100 - pdt: exported functions to kemi interface + Makefile.groups: acc_json moved to jansson group + + - it depends on jansson library -commit c218e3597e734bfe4308ce1911437080637107bd +commit 135df1f8c21682136d1e71a0c69671c3ec21fe3f Author: Daniel-Constantin Mierla -Date: Sat May 27 19:57:41 2017 +0200 +Date: Thu Feb 15 11:40:14 2018 +0100 - pipelimit: exported functions to kemi framework + acc_json: imported first version of README file + + - future updates to docs in xml file do not require manual generation of + README file -commit 6a92bbcac7b111fa51114ef2d2876c4c4ebfa013 -Author: Charles Chance -Date: Sat May 27 15:23:13 2017 +0100 +commit 1b6cceeb841bce700504b1311aa123a78bda0cdb +Author: Daniel-Constantin Mierla +Date: Thu Feb 15 11:39:02 2018 +0100 - dmq_usrloc: properly initialize usrloc_dmq_recv + acc_json: internal lib srdb1 is not needed by the module -commit 0ef775950e35505279715cd5546e70ed26a44c08 -Merge: b5f94a959 4351c2229 -Author: Charles Chance -Date: Sat May 27 11:54:25 2017 +0100 +commit a23dedad8774ccd97871468ab6c6f1aeadc8b56a +Author: Julien Chavanton +Date: Tue Feb 13 23:24:29 2018 +0000 - Merge pull request #1139 from zhangst/master + acc_json: adding module - dmq: update output format of dmq.list_nodes + acc in JSON with ouput to syslog and mqueue -commit b5f94a9596721acb1f49e4ab011ddfd6333b7936 -Author: Charles Chance -Date: Sat May 27 11:18:36 2017 +0100 +commit a72c4e8e8461021045b3c80106fed747220f9c43 +Author: Daniel-Constantin Mierla +Date: Thu Feb 15 10:38:18 2018 +0100 - dmq_usrloc: always replicate contact updates made locally + db_redis: declare variables at beginning of blocks - - fixes issue reported by shuntongzhang@gmail.com on sr-dev - - we no longer set FL_RPL since it is otherwise meaningless - - dmq replicated contacts are no different now to those from a shared DB + - based on the report by failure of the deb build system -commit 4351c22298fadfcb638dbeb6dba0933f30a829ce -Author: shuntongzhang -Date: Sat May 27 13:30:21 2017 +0800 +commit e727ddcef5113c5235d8d2dde9da86a8c2d2b4bb +Author: Andreas Granig +Date: Wed Feb 14 15:36:13 2018 +0100 - dmq: update output format of dmq.list_nodes + db_redis: Install redis schema along with module -commit 7f034e8bac8f56e91a4a0c56c21b91f9a8f8657a +commit 0da66e70bfc390e310f05da0d7ed9a7d1eb7c599 Author: Daniel-Constantin Mierla -Date: Fri May 26 06:08:22 2017 +0200 +Date: Wed Feb 14 11:25:30 2018 +0100 - debugger: exported pv dump function to kemi framework + db_redis: update to hiredis.h include path and deal with broken pkg-config spec + + - fix for broken output of pkg-config for hiredis + - same for ndb_redis from 4a40dd39cec713c569dc3480c905d808026aad39 -commit 234d795f4eac54c1bdfe065960c6db176212a938 +commit 52a8def8d2a3e83170ab554a85b26d977d99f51a Author: Daniel-Constantin Mierla -Date: Thu May 25 05:29:13 2017 +0200 +Date: Wed Feb 14 11:24:37 2018 +0100 - core: coherent whitespacing and indentation + utils: kamdbctl - updated help message for migrate command -commit 2caec04ab428e8a90acf0e62d9351e868f726b69 +commit 65fab0d02271c242d6e43e499198ee1da2275a4b Author: Daniel-Constantin Mierla -Date: Wed May 24 04:51:36 2017 +0200 +Date: Wed Feb 14 11:23:55 2018 +0100 - core: updated log macros for re code + core: atomic - updated email addres in warning message -commit e235f8328e435dd580d02f97d2c3c15fefb482e8 -Author: Mikko Lehto -Date: Tue May 23 19:56:27 2017 +0300 +commit 94e2fe9ac3624d367e6e2e48b691cbd2715d9dc1 +Merge: 136f0b6af 56ad14236 +Author: Andreas Granig +Date: Wed Feb 14 10:28:29 2018 +0100 - modules/rr: add missing space to log statement + Merge pull request #1432 from agranig/agranig/db_redis + + db_redis: Implement db_redis generic db driver -commit b8750364571beeca6612b31a2948d62bddedc805 -Author: Victor Seva -Date: Tue May 23 18:07:54 2017 +0200 +commit 56ad14236c02af1c82e3bdbcf1f85bb6f0efd728 +Author: Andreas Granig +Date: Tue Feb 13 14:55:35 2018 +0100 - core: fix mem_summary comparation when SIGUSR1 is received + db_redis: Use schema files and improve keys def - From http://www.kamailio.org/wiki/cookbooks/4.4.x/core#mem_summary - 1 - dump all the pkg used blocks (status) - 2 - dump all the shm used blocks (status) - 4 - summary of pkg used blocks - 8 - summary of shm used blocks + * Auto-generate schema files for redis from xml specs and use + them in module instead of having to define them as mod params. + * Allow key definition line by line with multiple "keys" mod params. + * Fetch table versions from schema to avoid having to populate them + in Redis. + * Fix reconnection issues on connection drops when Redis takes longer + to start. + * Fix documentation formatting issues. -commit 09b8fbd0864c908f221f86dca83fe64061461d62 -Merge: 0a7404174 3a6b28d2c +commit 136f0b6afae9279b07ba827451cc5a80980134b5 Author: Daniel-Constantin Mierla -Date: Tue May 23 02:47:06 2017 +0200 +Date: Tue Feb 13 12:47:46 2018 +0100 - Merge pull request #1135 from snen/presence_dialog + core: kemi - exported more core functions - pua dialoginfo - -commit 0a7404174975153658acfc547ecfe2d9ecef1ee9 -Author: Kamailio Dev -Date: Tue May 23 02:46:19 2017 +0200 - - modules: readme files regenerated - htable ... [skip ci] + - add_local_rport(), set_advertised_address(addr), + set_advertised_port(port) -commit df659d2ee44eca688507aab48eb22260ef3577bd +commit 54afa4599e2e9384e2fba5b3e9ab47dc0b344421 Author: Daniel-Constantin Mierla -Date: Tue May 23 02:33:19 2017 +0200 - - htable: implemented starts with matching for remove functions - -commit 3a6b28d2cbab37091485ed7802fc5d2ecbd4803a -Author: Dmitri Savolainen -Date: Mon May 22 18:53:38 2017 +0300 - - pua_dialoginfo: docs typo fix - -commit d64905895f68932b9d8ce39ab17a84022630343b -Author: Dmitri Savolainen -Date: Mon May 22 17:48:42 2017 +0300 +Date: Tue Feb 13 09:17:13 2018 +0100 - pua_dialoginfo: remove DLGCB_MI_CONTEXT + ndb_redis: keep reference to server spec string - - DLGCB_MI_CONTEXT was deleted in dialog module + - avoid losing the pointer for dynamic discovery which can be + interpreted as memory leak + - free the new server spec if adding it fails + - code reformatted for check_cluster_reply() -commit b1361e897f6708d7f9ed5267836cc3b8f4789613 +commit 7725dc8673bde0a35e820ed334e4e5f378455ac4 Author: Kamailio Dev -Date: Mon May 22 13:16:58 2017 +0200 - - modules: readme files regenerated - htable ... [skip ci] - -commit 0c69e7bc4486ff6b10da6502b72c1805ac6e5f83 -Author: Daniel-Constantin Mierla -Date: Mon May 22 13:04:15 2017 +0200 +Date: Tue Feb 13 09:01:32 2018 +0100 - htable: added functions to remove items using variables + modules: readme files regenerated - ndb_redis ... [skip ci] -commit 76c59cb5bde2dae0455165f23a3c732762654de2 -Author: Kamailio Dev -Date: Sun May 21 12:16:33 2017 +0200 +commit 5ea801500e06df6e1eb45712fbd52fb7e0ed382c +Author: Giacomo Vacca +Date: Sat Feb 10 12:04:46 2018 +0100 - modules: readme files regenerated - db_sqlite ... [skip ci] + ndb_redis: dynamic discovery of nodes -commit d65679f76ddb5d844dab0e89b69f678d8297293b +commit a0b6b3abe1beab33e11a52ff601c9cc50f7e2d56 Author: Daniel-Constantin Mierla -Date: Sun May 21 11:08:52 2017 +0200 +Date: Tue Feb 13 08:41:13 2018 +0100 - core: updated log macros + tls: small updates to tls config -commit 572acbca5c9e1d04efd687a88ff272c00d956425 +commit 92451536a0ef985ff1d16c5531c232cd657532e1 Author: Daniel-Constantin Mierla -Date: Sat May 20 12:08:25 2017 +0200 +Date: Mon Feb 12 10:15:47 2018 +0100 - core: rand - removed history from files + presence: return on having a full match on states in xml document + + - better handling after previous commit, related to GH #1427 -commit ae664527e18f5269bce80fa2669b905913098784 -Merge: 5b9682bf7 f6dde6f26 +commit 76b40abd6534a5af0164601e48e525b9a5915930 Author: Daniel-Constantin Mierla -Date: Sun May 21 12:06:12 2017 +0200 +Date: Mon Feb 12 10:07:00 2018 +0100 - Merge pull request #1134 from jchavanton/db_sqlite_doc_fix + presence: check if all related dialog states are terminated - db_sqlite: fix xml doc + - fix for incorrect dialog state for multiple dialogs xml body + - reported by GH #1427 -commit f6dde6f261891dff5b041a0e545e7bd210baf24b -Author: Julien Chavanton -Date: Sat May 20 12:54:47 2017 -0700 +commit be6a419a5b0d6fe3922219a30788ad527a313fd6 +Author: Daniel-Constantin Mierla +Date: Mon Feb 12 09:12:26 2018 +0100 - db_sqlite: fix xml doc + topos: revert "topos: set uuid fields before checking contact/rr fields" + + This reverts commit 97532ca18f595d89edf9b0b6e6688847aa38dd44. -commit 5b9682bf7adc2d03e5d0c729b63413c3575921ec -Author: Kamailio Dev -Date: Sat May 20 09:01:31 2017 +0200 +commit 0476993b7c341bcc7a994ab52986b89f240bd3b0 +Author: Daniel-Constantin Mierla +Date: Mon Feb 12 08:24:56 2018 +0100 - modules: readme files regenerated - db_sqlite ... [skip ci] + core: kemi - eol for debug message -commit c7e7255540944f90a379bde2d084785ee05f3a3b +commit f6d69d87abdc48df22135c79ee2309248248ca8e Author: Daniel-Constantin Mierla -Date: Sat May 20 08:57:53 2017 +0200 +Date: Mon Feb 12 08:21:19 2018 +0100 - db_sqlite: move declaration of variables at beginning of function + app_lua: do lua_checkstack() to ensure enough capacity on Lua stack - - removed para tag from xml doc files + - Lua doesn't do automatic management of the stack + * http://www.lua.org/manual/5.1/manual.html#3.2 + - do exit on insufficient capacity + - based on the report by GH #1433 -commit 20122d08fd287dad9cb40b11c0c65cd13c53da17 -Merge: c9b5aa989 aefe50a99 +commit 78e3ca663ed73c6d3eb81e6e5a970d928e2a9310 +Merge: 4654f8b4f 7653124c2 Author: Daniel-Constantin Mierla -Date: Sat May 20 08:55:33 2017 +0200 +Date: Sun Feb 11 09:42:38 2018 +0100 - Merge pull request #1133 from jchavanton/sqlite_readonly + Merge pull request #1431 from kamailio/active-watcher-null-user-agent - db_sqlite: new param to open some database in read-only + schema: allow null value for active_watchers user-agent column -commit c9b5aa98952adc7b372817eb2e1b1a968756fc83 -Merge: 891740465 20706e20a +commit 4654f8b4f341a6c9f8cf4daafc7d618871c95e1b Author: Daniel-Constantin Mierla -Date: Sat May 20 08:51:53 2017 +0200 +Date: Sun Feb 11 09:37:05 2018 +0100 - Merge pull request #1129 from SipSeb/master - - rabbitmq: create reply-to queue w/ exclusive param + presence: set user agent db field to empty string if no value is found -commit 8917404659f0057355874ae1eeafac0592887c9b +commit 8f9ddbf43eb19c05efbb8a109b8151c023cc736a Author: Daniel-Constantin Mierla -Date: Sat May 20 08:49:18 2017 +0200 +Date: Sun Feb 11 09:27:38 2018 +0100 - core: raw socket code updated log macros + rr: removed unused variable after spliting code into a function -commit aefe50a99a33d3fdab08f302689f0abf79e06aeb -Author: Julien Chavanton -Date: Fri May 19 10:30:43 2017 -0700 +commit e1d8008a09d9390ebaf698abe8909e10dfec4097 +Author: Daniel-Constantin Mierla +Date: Sat Feb 10 22:05:42 2018 +0100 - db_sqlite: new param to open some database in read-only + tmx: allocate space to store ending 0 for branch value + + - reported by Alfred Farrugia and Sandro Gauci -commit 5d628a4093fc4f7ecb1ad6bec7172879e331f2dc +commit 00330db3864dbc7df20c76f413beb73a6d60189c Author: lazedo -Date: Fri May 19 16:25:54 2017 +0100 +Date: Fri Feb 9 23:19:40 2018 +0000 - kazoo: remove unused variable + kazoo: verify timer -commit afed885f8591ebb505511dba750d9671081c5d64 +commit a5212922c9bdf9560b45cdf6c0786a1fa651a232 Author: lazedo -Date: Fri May 19 16:04:45 2017 +0100 - - kazoo: add ksr_msg_env_reset after processing events - -commit dc47a6b284260c521c74dcf4a8cc967c108def30 -Author: Kamailio Dev -Date: Fri May 19 15:01:24 2017 +0200 +Date: Fri Feb 9 21:38:03 2018 +0000 - modules: readme files regenerated - dispatcher ... [skip ci] + kazoo: fix blocked sockets & zones -commit 45989d3c53242f8f5f29229333617c7bc00fd3ac -Author: Daniel-Constantin Mierla -Date: Fri May 19 14:58:07 2017 +0200 +commit 3ca68d1246b801f37054c965eac8a24bda89b325 +Merge: 32564156a fab3f8816 +Author: Charles Chance +Date: Fri Feb 9 15:02:42 2018 +0000 - dispatcher: updated the example of destinations list file + Merge pull request #1435 from kamailio/cchance/presence + + presence: delay freeing generated etag string -commit 6fb2dad334850b2a616bb2500b4df2797f6ed54f +commit 32564156a4ad3efd93099d7ae2c98758cf4ec9b0 Author: Daniel-Constantin Mierla -Date: Fri May 19 14:16:40 2017 +0200 - - tm: updated old style log macros - -commit 9d67099ce41c897819b2164f3e17a8a454d3f2c2 -Author: Kamailio Dev -Date: Thu May 18 22:01:26 2017 +0200 - - modules: readme files regenerated - tm ... [skip ci] - -commit 3deecfcc9491594f3c89fe330c407f3327393c62 -Author: Mikko Lehto -Date: Thu May 18 14:02:28 2017 +0300 - - modules/usrloc: synchronize example with TM module - -commit b7e33ba006f5d2d81410c4785c13d99a024569cb -Author: Mikko Lehto -Date: Thu May 18 13:57:03 2017 +0300 +Date: Fri Feb 9 13:52:58 2018 +0100 - modules/tm: documentation typo fix + CONTRIBUTING.md: note about formatting the code + + - use clang-format or match the style of the existing component -commit c42aca1edaee29ab8edf6d6e186a72ab674db7a6 -Author: Mikko Lehto -Date: Thu May 18 13:56:23 2017 +0300 +commit 7653124c2d3615e4f6229f12b699063f65b7afea +Author: lazedo +Date: Wed Feb 7 14:42:25 2018 +0000 - modules/[topos|uac]: documentation typo fix + schema: allow null value for active_watchers user-agent column + + some UAs not sending Userg-Agent header on SUBSCRIBE -commit 6bc6bbca0e7fd17bef51bf0fecea389c9d0870c4 -Author: Victor Seva -Date: Thu May 18 13:15:26 2017 +0200 +commit fab3f881634b1233e6c5446ffafbd30ab07c0bc6 +Author: Charles Chance +Date: Fri Feb 9 09:37:24 2018 +0000 - pkg/kamailio/deb: version set to 5.1.0-dev3 + presence: delay freeing generated etag string + + - it may still be needed for replication -commit a2874993470e6d27a68344d2062708b735b6856e +commit 92bd7a3161e3f8d9ae5b3ddd983424f8e6e96618 Author: Daniel-Constantin Mierla -Date: Thu May 18 10:28:15 2017 +0200 - - Makefile.defs: version set to 5.1.0-dev3 - -commit 1528c1f2dbffcf64bb8e577ea58e35e1e616443b -Author: Sergey Safarov -Date: Sat Apr 22 11:11:27 2017 -0400 +Date: Thu Feb 8 19:33:46 2018 +0100 - pkg/kamailio: Fixed systemd unit failure on server boot + Makefile.groups: pua_json added to json group + + - depends on libjson-c -commit 09eb1673fa922c0ced75dbcdcf8f6c90f6a84720 +commit f6346e93d27ee1eb6f06ec1c9e7247440f433ab9 Author: Daniel-Constantin Mierla -Date: Wed May 17 08:40:12 2017 +0200 +Date: Thu Feb 8 19:19:29 2018 +0100 - rtimer: use wrapper function to reset msg env lists (avp and xavp) + pua_json: better detection of paths for json-c library -commit 33de203fed8b592d8cb156670beb4a44220dd2e9 +commit 75c4ca0bb69bd4f1ba42c6d964697737813fa81e Author: Daniel-Constantin Mierla -Date: Tue May 16 17:33:54 2017 +0200 +Date: Thu Feb 8 19:13:08 2018 +0100 - async: reset avp/xavp (msg env) from async workers + rtpengine: get again body pointer only when read_sdp_pv is set - - just in case they were set for non-sip routing processes (async - workers) + - reported by GH #1434 -commit 46ea6b0a6bcf55243a0d11be41f60a2678dbbcfb -Author: Daniel-Constantin Mierla -Date: Tue May 16 17:33:10 2017 +0200 +commit 53e746b5c527fa542e4b2b7353af5a3b4042d7d2 +Author: Andreas Granig +Date: Wed Feb 7 13:52:56 2018 +0100 - core: wrapper function to reset avps/xavps from msg environment + db_redis: Implement db_redis generic db driver + + This module implements a generic db driver for kamailio. It + requires a "schema" and "key" definition of "tables" and corresponding + keys for redis in the kamailio config file, otherwise it's supposed to + work with every module. + + Implemented methods are query (w/o order-by), insert, update, delete. - - use it to clean after processing received msg + Tested with usrloc and acc. -commit 82916f01bfcd58c80cbecbfa84f33f9763ba0d43 -Author: lazedo -Date: Tue May 16 17:00:26 2017 +0200 +commit 4244ccd34f525a2dbabfd7734747aaac2caa9318 +Author: Emmanuel Schmidbauer +Date: Thu Feb 8 09:29:47 2018 -0500 + + pua_json: remove contributors from source + +commit 02cb90c978bde896e541d69ac2c9b64ef49dada7 +Merge: 09291d8b9 81aa7c1f5 +Author: Emmanuel Schmidbauer +Date: Thu Feb 8 09:27:42 2018 -0500 - registrar: set expires field inside xavp_rcd + Merge pull request #1424 from kamailio/eschmidbauer/pua_json - - match docs and build_contact() behaviour - - part of PR #1111 + pua_json: new module to update presence using JSON data objects -commit bb3840161acd3b2dbe41001ebfb2bd779bfd68d0 -Author: lazedo -Date: Tue May 16 16:56:07 2017 +0200 +commit 09291d8b956336db20caa39a1a6fa83cf91cf1fe +Author: Kamailio Dev +Date: Thu Feb 8 13:46:35 2018 +0100 + + modules: readme files regenerated - textops ... [skip ci] - registrar: proper linking of xavps in the xavp_rcd +commit 2d7e24b60a9c79b97ed106ce46111f6aabf34ad4 +Merge: 1dfab04c1 751c67652 +Author: Daniel-Constantin Mierla +Date: Thu Feb 8 13:41:31 2018 +0100 + + Merge pull request #1423 from kamailio/textops_in_list_prefix_function - - avoid leaking of shm when using save() in async operations - - part of PR #1111 + Textops in list prefix function -commit 786e05f7c771fa38fa26ab2bc4e3a47b22dcd33e +commit 1dfab04c128f26cfd82b5db85666e805e794610f Author: Kamailio Dev -Date: Tue May 16 07:31:55 2017 +0200 +Date: Thu Feb 8 10:01:49 2018 +0100 - modules: readme files regenerated - lcr ... [skip ci] + modules: readme files regenerated - uac ... [skip ci] -commit bb517cda1ae9ea0229195871338b0967a9b0a7fc -Author: Juha Heinanen -Date: Tue May 16 08:26:22 2017 +0300 +commit f68eb2b6074336804bce04427bb6abf0cba4771a +Author: Victor Seva +Date: Thu Feb 8 09:53:43 2018 +0100 - modules/lcr: improved documentation + core: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/sbin/kamailio lenght length + > I: kamailio: spelling-error-in-binary usr/sbin/kamailio orderd ordered + > I: kamailio: spelling-error-in-binary usr/sbin/kamailio uknown unknown -commit 7386b03b5e70b9faf61d84bfabf88092afc65a8c -Merge: c4754f60f 76bf1a868 -Author: Juha Heinanen -Date: Mon May 15 19:04:48 2017 +0300 +commit 70b153df3a78cb83fea2a295d7043f20f30d54ae +Author: Victor Seva +Date: Thu Feb 8 09:47:35 2018 +0100 - Merge branch 'master' of https://github.com/kamailio/kamailio + uid_gflags: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/uid_gflags.so successfuly successfully -commit c4754f60f010b8ad55a3785ea362dfeeda008300 -Author: Juha Heinanen -Date: Mon May 15 19:02:21 2017 +0300 +commit 00789c6067e17fbed185e5e1e6043247d26d9af4 +Author: Victor Seva +Date: Thu Feb 8 09:46:42 2018 +0100 - modules/lcr: forgot to copy new versions of lcr *.h files to k master + uac: fix typo - - thanks to Travis CI + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/uac.so registred registered -commit 76bf1a8682b83c302be594b9d4d0e491f9350cae -Author: Kamailio Dev -Date: Mon May 15 17:31:22 2017 +0200 +commit 5ef5ddda58bbb6376c11ac75bba6793ce6b73378 +Author: Victor Seva +Date: Thu Feb 8 09:44:56 2018 +0100 - modules: readme files regenerated - lcr ... [skip ci] + tsilo: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/tsilo.so uknown unknown -commit c5127e6d19c4f30072d81213f5eb49e4a6306bb3 -Author: Juha Heinanen -Date: Mon May 15 18:12:32 2017 +0300 +commit bd680f78958e038de950931c82079d4d85a328bd +Author: Victor Seva +Date: Thu Feb 8 09:44:08 2018 +0100 - modules/lcr: added possibility to match caller URI userpart to a mtree tvalue + sipcapture: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/sipcapture.so skiping skipping -commit dcd16ac3062028a0857510ccd3dc9ec2a06b01b5 -Author: Kamailio Dev -Date: Mon May 15 15:46:24 2017 +0200 +commit 3d68ecbb73886cfe31066f37386ea3ec31824b61 +Author: Victor Seva +Date: Thu Feb 8 09:42:57 2018 +0100 - modules: readme files regenerated - mtree ... [skip ci] + seas: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/seas.so didnt didn't + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/seas.so Uncomplete Incomplete -commit 556fab89cec8d1eda726f38f4ddf0477e97bb79d -Author: Juha Heinanen -Date: Mon May 15 16:40:28 2017 +0300 +commit a2c77805f1ef5e2b264da69ecb9f591c4cff203c +Author: Victor Seva +Date: Thu Feb 8 09:41:37 2018 +0100 - modules/mtree: added mt_match API function + rtjson: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/rtjson.so diabled disabled -commit 9ff4dd36ad63f60905a49f8c0e437f997e54ae70 -Author: Daniel-Constantin Mierla -Date: Mon May 15 14:58:03 2017 +0200 +commit cdc96895b2998d329f725a9445068b4fc1ad9ca0 +Author: Victor Seva +Date: Thu Feb 8 09:40:50 2018 +0100 - tm: use a stack of structures for faked_env() + pipelimit: fix typo - - be safe if there is a new faked_env() inside another faked_env() + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/pipelimit.so algoritm algorithm -commit ab346e80647228afdbcaf6884a8573c9221ca38b -Author: Daniel-Constantin Mierla -Date: Mon May 15 14:31:17 2017 +0200 +commit f394815724590f3e5f78583aa71329601b66c78e +Author: Victor Seva +Date: Thu Feb 8 09:39:56 2018 +0100 - kazoo: avoid creating an empty route block structure + permissions: fix typo - - use route_lookup() instead of route_get(), so the empty route block is - not created if the route is not defined in the kamailio.cfg + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/permissions.so Colums Columns -commit bc336bfcba127a9232583a3d7b7e10d994c369eb -Author: Daniel-Constantin Mierla -Date: Mon May 15 14:11:57 2017 +0200 +commit 3541d0f2c8cf8cf28476f614a009d7b6890b8b74 +Author: Victor Seva +Date: Thu Feb 8 09:38:54 2018 +0100 - core: reset avps and xavps lists in all error cases + path: fix typo - - just for safety when one uses some srevent routes + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/path.so spearators separators -commit 8f4c8583e5087f0e4c9c8e179d13e41c34b9eda5 -Author: Daniel-Constantin Mierla -Date: Mon May 15 08:33:19 2017 +0200 +commit d9d50378a7aa08387855942357991f1492f1fb0b +Author: Victor Seva +Date: Thu Feb 8 09:37:56 2018 +0100 - sdpops: sdp_get() and sdp_transport() exported to kemi + p_usrloc: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/p_usrloc.so could't couldn't -commit e8554de0c132062183fcc332376bd2b857544bf7 -Author: Daniel-Constantin Mierla -Date: Mon May 15 08:32:39 2017 +0200 +commit db18d4a31df29561dfa1563886e891450d0dde0f +Author: Victor Seva +Date: Thu Feb 8 09:33:42 2018 +0100 - prefix_route: exported functions to kemi interface + msrp: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/msrp.so lenght length -commit d2047859ad4b64ac9c62242df0088cf94d755e69 -Author: Daniel-Constantin Mierla -Date: Sun May 14 09:10:28 2017 +0200 +commit 741577013fba2689de93cb587c4b750c15f9c29e +Author: Victor Seva +Date: Thu Feb 8 09:32:30 2018 +0100 - sdpops: exported sdp_content() to kemi framework + jsonrpcs: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/jsonrpcs.so existance existence + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/jsonrpcs.so lenght length -commit ba17aad00dec0403f89842fc6db015718daddcdd -Author: Daniel-Constantin Mierla -Date: Sat May 13 13:42:27 2017 +0200 +commit dac801f5b1b4903eb4dd4668fb449bf9e4c1171d +Author: Victor Seva +Date: Thu Feb 8 09:30:17 2018 +0100 - core: added support for aarch64 architecture for fastlock + drouting: fix typo - - from a patch by valentin@corenetdynamics.com + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/drouting.so colum column -commit b5022ed2f856387380d3dd8ffa8d891f52efa6b4 -Author: Daniel-Constantin Mierla -Date: Sat May 13 13:31:28 2017 +0200 +commit 23ae1997201a6207b7cc2746ee3a132cc6f06670 +Author: Victor Seva +Date: Wed Feb 7 17:53:08 2018 +0100 - Makefile.defs: enable arm aarch64 architecture + domain: fix typo - - from a patch by valentin@corenetdynamics.com + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/domain.so paramter parameter -commit f5a0e6f19b4e04d32499f796ef59049a7c798f54 -Author: Daniel-Constantin Mierla -Date: Fri May 12 16:19:04 2017 +0200 +commit 2b9ad2a628c17d73412e09aad7723b1e01eab871 +Author: Victor Seva +Date: Wed Feb 7 17:51:36 2018 +0100 - kamcmd: increased the max reply size from 64kB to 128kB + db2_ops: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/db2_ops.so formating formatting -commit 88612ea4ed49db8a10cb8b1ddf23bc0783e937c3 -Author: Daniel-Constantin Mierla -Date: Thu May 11 16:15:21 2017 +0200 +commit 22ba499fa8bcd87fab5b718f7a011d1be047b858 +Author: Victor Seva +Date: Wed Feb 7 17:47:29 2018 +0100 - uac: explicit name of the function called many times when updating from/to + ctl: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ctl.so emtpy empty + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ctl.so errror error -commit 20706e20a1615c4cd7bd9fad2e8d458fac0ba86f -Author: Sebastian Damm -Date: Fri May 12 16:13:23 2017 +0200 +commit bbb7920c8d7d06e00dc4a3e1fb8e46842bfbee30 +Author: Victor Seva +Date: Wed Feb 7 17:44:47 2018 +0100 - rabbitmq: create reply-to queue w/ exclusive param + cfg_rpc: fix typo - RabbitMQ docs say, temporary reply-to queues should be created - with an "exclusive" parameter. This allows only the current - connection to access the queue, and when the connection ends, - the queue will automatically be deleted. + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/cfg_rpc.so Delte Delete -commit b02793fe9dab9159d6fdc404fd1293cdad1bef45 -Author: Kamailio Dev -Date: Thu May 11 17:46:40 2017 +0200 +commit 1512771ff78c8e52934fb805e837ee46ee163745 +Author: Victor Seva +Date: Wed Feb 7 17:43:03 2018 +0100 - modules: readme files regenerated - sl ... [skip ci] + avpops: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/avpops.so arround around + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/avpops.so complet complete -commit c75e7cf65907cf137be23a11ac2930a80381ea3f -Author: Mikko Lehto -Date: Thu May 11 18:39:45 2017 +0300 +commit f907e19e0bcdb530b298df7230b780dd99047683 +Author: Victor Seva +Date: Wed Feb 7 17:36:41 2018 +0100 - modules/sl: documentation typo fix [skip ci] + avp: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/avp.so formating formatting -commit 8f87e7c4c3ba925a20bd0ab69e1fc885a559d262 -Author: Ovidiu Sas -Date: Wed May 10 13:00:57 2017 -0400 +commit 900d9fd0dbc489221cf3516f03399f8ac4980f15 +Author: Victor Seva +Date: Wed Feb 7 17:35:36 2018 +0100 - xhttp_rpc: fix rpc_struct_printf + auth_xkeys: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/auth_xkeys.so maching matching -commit 3ab38fd199ea72c21750b242fffe8c8a5ca85631 -Author: Kamailio Dev -Date: Wed May 10 06:47:22 2017 +0200 +commit 0efef4800cfa5c7572adbc2fde69b91acaa4c22e +Author: Victor Seva +Date: Wed Feb 7 17:34:13 2018 +0100 - modules: readme files regenerated - ndb_redis ... [skip ci] + auth_diameter: fix typo + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/auth_diameter.so droped dropped -commit 4bb9a95ec66684d545cb97f96091ba1d48baab8b -Author: Daniel-Constantin Mierla -Date: Wed May 10 06:45:49 2017 +0200 +commit a61bd0f7f67c3e87bfc021d350ba4f145023c31f +Author: Victor Seva +Date: Wed Feb 7 17:31:14 2018 +0100 - ndb_redis: renamed parameter flush_db_on_reconnect to flush_on_reconnect + acc_diameter: fix typos + + Thanks, lintian + > I: kamailio: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/acc_diameter.so droped dropped -commit 79e9133ccd86b53b0199980d3f221e64da595344 -Merge: e45e3b534 c886a9b05 -Author: Daniel-Constantin Mierla -Date: Wed May 10 06:43:37 2017 +0200 +commit 60b64f5a9b61df88cd977fef8e929c2fc60e4953 +Author: Victor Seva +Date: Wed Feb 7 16:59:34 2018 +0100 - Merge pull request #1125 from claudiupb/redis_flush_on_reconnect + pua_rpc: fix typos - ndb_redis: add flush_db_on_reconnect parameter + Thanks, lintian + > I: kamailio-presence-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/pua_rpc.so pres press -commit e45e3b534887d42593e4fcb01c0da49660d94435 -Author: Kamailio Dev -Date: Tue May 9 14:46:26 2017 +0200 +commit 911f81fc5d8945aabb49c3dca176a73320b8d0de +Author: Victor Seva +Date: Wed Feb 7 16:54:57 2018 +0100 - modules: readme files regenerated - db_text ... [skip ci] + presence: fix typos + + Thanks, lintian + > I: kamailio-presence-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/presence.so pres press + > I: kamailio-presence-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/presence.so stucture structure + > I: kamailio-presence-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/presence.so unsuccessfull unsuccessful -commit df04997cd1505b3687a7005c7578a9b012f25d85 -Author: Charles Chance -Date: Tue May 9 13:41:12 2017 +0100 +commit 2444e026895810c12e47f8dcd11162c7827ac903 +Author: Victor Seva +Date: Wed Feb 7 16:48:02 2018 +0100 - dmq_usrloc: fix incorrectly formatted XML docbook + ims_registrar_scscf: fix typos + + Thanks, lintian + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_scscf.so unsuccesful unsuccessful + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_scscf.so explit explicit + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_scscf.so pres press + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_scscf.so ceate create + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_scscf.so implicity implicitly -commit c886a9b0578a190f23a1084317cfecc3238a0007 -Author: Claudiu Boriga -Date: Tue May 9 15:02:45 2017 +0300 +commit 50859124b767f20313501a7883b138c0b16c1607 +Author: Victor Seva +Date: Wed Feb 7 16:41:00 2018 +0100 - ndb_redis: add flush_db_on_reconnect parameter + ims_dialog: fix typos + + Thanks, lintian + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_dialog.so Deleteing Deleting + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_dialog.so regsiter register -commit 358cf95e68fd1b41ff8f7aee6478aa9c79361765 -Author: Daniel-Constantin Mierla -Date: Tue May 9 06:30:55 2017 +0200 +commit f500e1d0372fe3ba55114e909fb05a187ee1a386 +Author: Victor Seva +Date: Wed Feb 7 16:38:38 2018 +0100 - tm: t_drop_replies() exported to kemi framework + ims_charging: fix typo + + Thanks, lintian + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/ims_charging.so Reponse Response -commit 98d1cf0454faa8f904d8bc08c73c70dc7b15de61 -Author: sergey-vb -Date: Mon May 8 20:53:17 2017 +0200 +commit b2a479a5a04d79f403d93c1f98d8178bcb345dca +Author: Victor Seva +Date: Wed Feb 7 16:30:44 2018 +0100 - topos: correct order of Route header after restoring from b_rr + cdp: fix typos - - fixes routing with a chain of sip proxies - - GH #1124 + Thanks, lintian + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/cdp.so Recevied Received + > I: kamailio-ims-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/cdp.so droped dropped -commit 653b7343ebcca5f53f56bace94772a982bf0f887 -Author: Lucian Balaceanu -Date: Mon May 8 19:10:00 2017 +0300 +commit a154308a26dd7f916775c9995e44abd44c50dc1b +Author: Victor Seva +Date: Wed Feb 7 16:17:46 2018 +0100 - p_usrloc: limit db writes of error count + topos_redis: fix typos - - when db_errors_treshold limit is reached kamailio - should stop increasing the errors field so as not - to load mysql with no use + Thanks, lintian + > I: kamailio-redis-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/topos_redis.so unuseful useless + > I: kamailio-redis-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/topos_redis.so unknow unknown -commit e2a5608e421d8e10e915abaadc0d9d3d5a155b8a -Author: Lucian Balaceanu -Date: Mon May 8 13:31:19 2017 +0300 +commit f0ed817f33c3b48d6be8c9ec3d086b5885f8a37e +Author: Victor Seva +Date: Wed Feb 7 16:10:04 2018 +0100 - ndb_redis: increasing a log message level + carrierroute: fix typo + + Thanks, lintian + > I: kamailio-carrierroute-modules: spelling-error-in-binary usr/lib/x86_64-linux-gnu/kamailio/modules/carrierroute.so Sucessfully Successfully -commit d5d2bbd4fd6cad48bd0dcf8e577009f95ff3f53e -Author: Daniel-Constantin Mierla -Date: Mon May 8 07:59:56 2017 +0200 +commit 052520becf71b638f97652f010d8a27c7cabfc22 +Author: Kamailio Dev +Date: Wed Feb 7 13:31:34 2018 +0100 - log_custom: exported functions to kemi framework + modules: readme files regenerated - rr ... [skip ci] -commit 17be61ed40dc995e301c2bf24f7e7151a3e16ff0 +commit 87787c2eccdb6c0ebfd8931a5acbebb25a40bbe8 Author: Daniel-Constantin Mierla -Date: Sun May 7 08:22:57 2017 +0200 +Date: Wed Feb 7 13:22:25 2018 +0100 - path: exported functions to kemi interface + rr: documentation for force_send_socket parameter -commit c32ba91fbbe59e144ddcb40be33b3379bcf3d64d +commit 93739c0b8674a09f8364eac6f28bcc91b167843a Author: Daniel-Constantin Mierla -Date: Sat May 6 08:56:52 2017 +0200 +Date: Wed Feb 7 13:13:01 2018 +0100 - msrp: fix missed break in parsing pv name + rr: new parameter force_send_socket - - closes GH #1122 + - if set to 1, the socket is also forced for single rr + - default is 0, socket is forced only for doubgle rr + - if use outbound is set, socket is not forced -commit d268d935a4e1e92389ef1c7299f83933c23e6d91 -Author: Daniel-Constantin Mierla -Date: Sat May 6 08:10:44 2017 +0200 +commit 4cc60ede961554220cd265bd212407f42d5b8262 +Author: Guillem Jover +Date: Tue Feb 6 18:22:51 2018 +0100 - misc/examples: fixed typo in sqlang kemi example + pkg/kamailio/deb: wait for kamailio to exit before returning on sysvinit stop action + + We should not return until the service has been fully terminated, + otherwise a subsequent start might break as it can consider itself + as already running. And once the old instance stops there's nothing + left running. + + This also makes it possibe to remove a sleep in the restart action. -commit 0e84e7b13fa934f47d1c68a2b040109db473e082 +commit 829759afd6005b0f38a474ebc292404e9137c069 Author: Daniel-Constantin Mierla -Date: Sat May 6 07:52:43 2017 +0200 +Date: Tue Feb 6 17:45:20 2018 +0100 - misc/examples: fixed typo in kemi js example + maxfwd: exported is_maxfw_lt() to kemi framework -commit 37a2dc075a98ea79b44d3e1ea422b65c852d4a09 -Author: Kamailio Dev -Date: Fri May 5 16:01:21 2017 +0200 +commit adbdaabeef2d24882185f21fa1399da6468e1301 +Author: Daniel-Constantin Mierla +Date: Mon Feb 5 12:45:05 2018 +0100 - modules: readme files regenerated - rtpengine ... [skip ci] + maxfwd: remove useless asign in is_maxfwd_lt() -commit 1aa2e58fb5d167c1fd43d3c9ba2f341379983508 -Author: Richard Fuchs -Date: Fri May 5 09:54:43 2017 -0400 +commit f73470163b081f5c877dddff9c08e94073b0cc4b +Author: Juha Heinanen +Date: Mon Feb 5 21:58:04 2018 +0200 - rtpengine: consume MOS values reported back by RTP proxy + lcr: fixed checking if there is more uris available for next_gw + - plus some clang format changes + - reported by Daniel -commit ce7c10ca81541137b08ae962008dcef9ecc6f7d9 +commit 536c5c36a2ef56daf0d2e9adcc02594ae95a6cc6 Author: Kamailio Dev -Date: Fri May 5 10:16:21 2017 +0200 +Date: Fri Feb 2 20:31:38 2018 +0100 - modules: readme files regenerated - ndb_redis ... [skip ci] + modules: readme files regenerated - textops ... [skip ci] -commit c55ad4e71041961417370ebcca5d564daca8fa95 -Merge: ae081b252 395699a80 -Author: Daniel-Constantin Mierla -Date: Fri May 5 10:05:12 2017 +0200 +commit fad36ca8bc3526f71f8bb3af46afe3bb2a0f1789 +Author: Ovidiu Sas +Date: Fri Feb 2 14:30:53 2018 -0500 - Merge pull request #1116 from claudiupb/redis_disable_server - - ndb_redis: add disable server on failure feature + textops: documentation updated for is_audio_on_hold() -commit ae081b252e74e54509e45b3ee1163525e03e27f1 -Author: Daniel-Constantin Mierla -Date: Fri May 5 08:54:52 2017 +0200 +commit 9f735ef803bfc8b6722f71a2bef00b071ab1ca1b +Author: Ovidiu Sas +Date: Fri Feb 2 14:25:20 2018 -0500 - tm: exported load contacts functions to kemi framework + textops: is_audio_on_hold() returns hold type + 1 - RFC2543 hold type (the connection IP is set to null IP) + 2 - RFC3264 hold type (inactive or sendonly attr) -commit 395699a80345e5721580ebac3b5944f603acdb32 -Author: Claudiu Boriga -Date: Fri May 5 09:37:29 2017 +0300 +commit 51be5b7a889e394927cce1009a09e1c2f52123ca +Author: Ovidiu Sas +Date: Fri Feb 2 14:23:08 2018 -0500 - ndb_redis: rename variables to avoind name conflicts + parser/sdp: distinguish between RFC2543 and RFC3264 media hold type -commit 22fc02538a7576bf35ef321980a607bdfb9bcc5f -Author: Daniel-Constantin Mierla -Date: Thu May 4 18:12:04 2017 +0200 +commit def7be2a3a60039c21c0711153152533b8ceb836 +Author: Ovidiu Sas +Date: Fri Feb 2 14:08:41 2018 -0500 - tm: use NAME define for initializing uac + textops: update documentation for is_audio_on_hold() -commit d678d095858271a0282b8a824840880f9994041b +commit 8233e5191d23f64d879d81aa4bc4e5b17cf68ffe Author: Daniel-Constantin Mierla -Date: Thu May 4 18:05:07 2017 +0200 +Date: Fri Feb 2 18:11:10 2018 +0100 - misc/examples: handle return code for ksr_route_withindlg() in kemy python example + app_squirrel: imported last version of squirrel interpreter - - closes GH #1117 - -commit a813dec2d82ced5ae0891f71f12e11dbd9a6cd37 -Author: Kamailio Dev -Date: Thu May 4 18:01:43 2017 +0200 - - modules: readme files regenerated - rtpengine ... [skip ci] + - master branch -commit e69579bca5b0e08187481f228e621ece0d1b79d5 -Author: Huseyin Dikme -Date: Thu May 4 10:52:48 2017 -0400 +commit 81aa7c1f56a2d8842001b6a0ddb255bc757e2100 +Author: Emmanuel Schmidbauer +Date: Thu Feb 1 10:14:21 2018 -0700 - rtpengine: Allow override of call_id, from/to tags - - closes #1103 + pua_json: new module to update presence using JSON data objects -commit c65f63934b294f39becc383f0482354c00fd9806 -Author: lazedo -Date: Thu May 4 15:53:17 2017 +0100 +commit 407d85be91b16035d01fb357d8a26de51c4018d0 +Author: Emmanuel Schmidbauer +Date: Thu Feb 1 10:13:49 2018 -0700 - kazoo: split exchange/queue declarations + presence: pass `replace` parameter to force hard presentity update -commit 3ce13be06217e7d49a5e4362bf5cf6e53ec584ac +commit 7612f67001c57d6adf339cd318e48ad828123213 Author: Daniel-Constantin Mierla -Date: Thu May 4 07:31:41 2017 +0200 +Date: Thu Feb 1 15:06:08 2018 +0100 - auth: exported has_credentials() to kemi framework + misc/examples/kemi: convert port to string in log messages -commit 82794924a2368e671ebdfbc4156010e5d40ea699 -Author: Daniel-Constantin Mierla -Date: Thu May 4 07:31:01 2017 +0200 +commit 793a5663518fcd03247bf87d33826339a8dbc04d +Merge: 512550699 4853c3854 +Author: Emmanuel Schmidbauer +Date: Thu Feb 1 06:14:23 2018 -0500 - call_control: exported functions to kemi framework + Merge pull request #1417 from kamailio/presence-api + + presence: add API endpoints to update presentity and notify watchers -commit d0101010b891e60fdab0f76ae5ce899747d6586e -Author: Claudiu Boriga -Date: Wed May 3 16:19:04 2017 +0300 +commit 751c67652cb09614f2f2d430885b7b6c7422b1cd +Author: Vicente Hernando +Date: Thu Feb 1 11:26:30 2018 +0100 - ndb_redis: add disable server on failure feature - - if a server fails multiple consecutive times - it is disabled temporarily and commands to it - will not do anything. + textops: function in_list_prefix -commit ac4cc61b8633ececd3046d55d0c3abcef80fc05f -Author: Kamailio Dev -Date: Wed May 3 14:16:19 2017 +0200 +commit 508befcbddc7b88b6a68b188d881b52943682cc8 +Author: Vicente Hernando +Date: Thu Feb 1 11:23:42 2018 +0100 - modules: readme files regenerated - auth_ephemeral ... [skip ci] + textops: mismatch parenthesis in doc -commit ced9bfbd2ad2c538bd2e3f190a34932d3ffde276 -Author: Carsten Bock -Date: Wed May 3 14:15:56 2017 +0200 +commit 51255069963e57ed5e49766ff41126e19b9f5cb8 +Author: Charles Chance +Date: Thu Feb 1 09:52:06 2018 +0000 - auth_ephemeral: Some more safety checks, added SHA384 as an option + presence: presentity table version updated to 5 -commit d4c392fa4bdf7316a24063df9ae1a615d94c1711 -Author: Daniel-Constantin Mierla -Date: Wed May 3 08:37:39 2017 +0200 +commit 7bb6fa1794735803668e077e80597b41533d0cca +Author: Kamailio Dev +Date: Wed Jan 31 21:31:24 2018 +0100 - statsd: functions exported to kemi interface + modules: readme files regenerated - app_python ... [skip ci] -commit 8577eb15d97116ce0a64c5ae2bdaa561a4d7535d +commit 9e16ac869646ff62f648f9a822ffcc12a4614037 Author: Daniel-Constantin Mierla -Date: Wed May 3 08:23:25 2017 +0200 +Date: Wed Jan 31 21:20:16 2018 +0100 - statsc: exported functions to kemi interface + app_python: adjusted the note about incomplete implementation for rpc reload -commit fedacebc49b5abf5ee1d7543ee966072d681ef57 -Author: Daniel-Constantin Mierla -Date: Wed May 3 08:18:57 2017 +0200 +commit 39d98127268afdfa841e7c80ce26185fe8d0673c +Author: Richard Fuchs +Date: Wed Jan 31 12:10:16 2018 -0500 - statistics: exported functions to kemi interface + rtpegnine: honour the 'setid_default' variable in all instances -commit a081a6ee5c8891b5e4c436f60110813a391c0084 +commit 3430db51cabfca102109da582b355c0fd725523a Author: Daniel-Constantin Mierla -Date: Wed May 3 08:07:03 2017 +0200 +Date: Tue Jan 30 22:49:32 2018 +0100 - sst: exported functions to kemi interface + siptrace: replaced use of copy defines with formated string functions -commit 4751b77727730ad67ea003afd07ec91b0f7cd45b -Author: lazedo -Date: Wed May 3 01:12:06 2017 +0100 +commit 4853c3854a7adb933311d51b352e6179845d3954 +Author: Emmanuel Schmidbauer +Date: Tue Jan 30 11:29:20 2018 -0700 - kazoo : fix json keys - - size of key and some refactoring + presence: add API endpoints to update presentity and notify watchers -commit 99a73cb42e6cf786ea5a2a7ffb7577145b0e7f46 -Merge: b8b900a96 26b072c7c -Author: Daniel-Constantin Mierla -Date: Tue May 2 17:48:52 2017 +0200 +commit 00da0530c7295b74b932307bad27580e14c3a987 +Merge: 5fe86186e 26b09ae0d +Author: Emmanuel Schmidbauer +Date: Tue Jan 30 10:09:10 2018 -0500 - Merge pull request #1115 from claudiupb/fix_redis_pipeline + Merge pull request #1418 from kamailio/json-update-api - Fix redis pipeline + json: pass str pointer to API -commit 26b072c7c84c03d034cd31cd80ef2d78ecb76dce -Author: Claudiu Boriga -Date: Fri Apr 28 10:00:11 2017 +0300 - - ndb_redis: fix memory leak - - fix memory leak when re-using a reply-id - -commit 9a6c06a5d70e643d6485ffe013008dd1b6f82708 -Author: Claudiu Boriga -Date: Thu Apr 27 17:05:25 2017 +0300 +commit 26b09ae0d9b36dfed9688536e7f8cd6ff22d89fd +Author: Emmanuel Schmidbauer +Date: Mon Jan 29 12:42:29 2018 -0700 - ndb_redis: fix connection problems with pipelining - -fix problem when a connection with a REDIS server - fails and the pipelined command line is lost, - while a new connection will not be established + json: pass str pointer to API -commit b8b900a960e315e15f6ff2947e2ff64881882e8b -Author: Kamailio Dev -Date: Tue May 2 16:16:21 2017 +0200 +commit 5fe86186e2856ce5039c0133e1f53b62df2be485 +Author: Emmanuel Schmidbauer +Date: Mon Jan 29 07:32:11 2018 -0700 - modules: readme files regenerated - ndb_redis ... [skip ci] + json: add get_object API and fix str init -commit ec0953c48da112a87e2ec7bfbfbd9d8df6d81959 -Merge: f0609372d be59c13f0 +commit d40c65a9834d6e0c12ee24e0fde5b75be94593e5 Author: Daniel-Constantin Mierla -Date: Tue May 2 16:06:42 2017 +0200 +Date: Mon Jan 29 09:14:40 2018 +0100 - Merge pull request #1112 from claudiupb/redis_rm_execute + modules/ims*: Makefile updates - Redis remove redis_execute() command with no arguments + - use KAMAILIO mod interface define + - bits of updates in the comments -commit f0609372d5804865ac41ba0530e84312f59f8a45 +commit 072b9adcb267d8ff21d356bdcd57881d9576c336 Author: Daniel-Constantin Mierla -Date: Tue May 2 15:11:42 2017 +0200 +Date: Mon Jan 29 09:11:24 2018 +0100 - uac: updates to fix compile time warnings + utils: kamdbctl - version set to 5.2.0 -commit 15883fef8f5b7205bbf68b765e856dd887c42954 +commit 9f896a11d920523ab3616b8cae795cb44aaf6328 Author: Daniel-Constantin Mierla -Date: Tue May 2 15:11:23 2017 +0200 +Date: Sun Jan 28 18:56:44 2018 +0100 - tm: fix warnings for compilation + utils/kamctl: version set to 5.2.0 -commit 171236590aab6a7dbf5a79fdcc110745af891e19 +commit 014958e62302819630ead306baa8e765b062196f Author: Daniel-Constantin Mierla -Date: Tue May 2 15:10:53 2017 +0200 +Date: Sat Jan 27 16:25:25 2018 +0100 - textopsx: remove unused variables + modules/ims*: define KAMAILIO_MOD_INTERFACE instead of the old variant -commit cf7ed18c74343ae928ec57a7b76835eedd202dcc +commit 2f04f057c50344b6e204862b40e2bab83431912f +Merge: 038c3f16d a9b8682f5 Author: Daniel-Constantin Mierla -Date: Tue May 2 15:10:17 2017 +0200 +Date: Sat Jan 27 16:22:19 2018 +0100 - registrar: fix compilation warnings + Merge pull request #1416 from kamailio/json-api + + json: add API for json_parse and json_extract_field -commit 8b210310e31ad1083d4fa9a83910b104c77b0a01 -Author: Daniel-Constantin Mierla -Date: Tue May 2 15:09:49 2017 +0200 +commit a9b8682f522f46c56144e61ff029cb1ab0413274 +Author: Emmanuel Schmidbauer +Date: Fri Jan 26 09:20:40 2018 -0700 - evrexec: fixed the compile time warnings + json: add API -commit 33189c2f7414edabac3c6618873f3a9d0f1f925e +commit 038c3f16d9a8371f00b1b8e34d37d6509465a471 +Merge: 9811e3183 4fabe253a Author: Daniel-Constantin Mierla -Date: Tue May 2 15:09:22 2017 +0200 +Date: Fri Jan 26 08:50:54 2018 +0100 - domain: fix compilation warnings for kemi updates + Merge pull request #1413 from armenb/ws_check_bounds_before_reading_mask + + websocket: check bounds before reading mask -commit ed553e3d4d667d454352b4b8656260936d79af18 +commit 9811e318359b3099c3b1d7dff3673b642f8ccd0a +Merge: 1caf97eee 91c388147 Author: Daniel-Constantin Mierla -Date: Tue May 2 15:08:45 2017 +0200 +Date: Fri Jan 26 08:50:16 2018 +0100 - diversion: fix compilation warnings + Merge pull request #1412 from armenb/ws_cid85650_fix + + websocket: handle unrecognized subprotocol better -commit 78dce8799c0b3bd639b1f815b2eef28689ff1d1f +commit 1caf97eee90fa5711b60f5cb7bf3a21a0144d4b6 Author: Daniel-Constantin Mierla -Date: Tue May 2 15:08:20 2017 +0200 +Date: Fri Jan 26 08:41:19 2018 +0100 - alias_db: get rid of compilation warnings + usrloc: proper condition when using rm_expired_delay -commit 6525428887b20bac61825267a30016ebdf2f29a5 -Author: lazedo -Date: Tue May 2 13:15:08 2017 +0100 +commit 4fabe253a1eb0f9b494521cfa98365523a93adcf +Author: Armen Babikyan +Date: Thu Jan 25 17:36:55 2018 -0800 - kazoo: missing sender alternative for presence + websocket: check bounds before reading mask -commit be59c13f0d710df1be9c68af53f4167f575d5ae5 -Author: Claudiu Boriga -Date: Tue May 2 15:13:55 2017 +0300 +commit 91c388147a9328743582a92c6f1184141aa268fb +Author: Armen Babikyan +Date: Thu Jan 25 17:19:28 2018 -0800 - ndb_redis: make redis_execute() return negative value on error + websocket: handle unrecognized subprotocol better -commit bca06f793df150fe03e83ba8c893f68b4f9bbcfb -Author: Claudiu Boriga -Date: Tue May 2 11:09:00 2017 +0300 +commit f3064c6825840868ccfd4340d9bb6533e5842f67 +Author: Kamailio Dev +Date: Thu Jan 25 19:46:34 2018 +0100 - ndb_redis: remove redis_execute command with no arguments + modules: readme files regenerated - presence ... [skip ci] -commit de323d80a9fc76d5bea625b1a3ad28a30dda0ea4 -Merge: 66595f39a 10c5ae5fd -Author: Daniel-Constantin Mierla -Date: Tue May 2 14:09:31 2017 +0200 +commit 67bc67c5487f29b6771d07ddd9e45cad5da46d43 +Merge: 97fd1100b 3fc1da644 +Author: Charles Chance +Date: Thu Jan 25 18:39:28 2018 +0000 - Merge pull request #1105 from sergey-safarov/spec_update9 + Merge pull request #1402 from kamailio/cchance/presence_dmq - pkg/kamailio/centos/7: mod kazoo enabled default build + presence: dmq integration -commit 66595f39a4ae419b054bb433f2451a69155d580f -Author: Daniel-Constantin Mierla -Date: Tue May 2 11:05:21 2017 +0200 +commit 97fd1100b0bb4a33ad010d270404c25b3849873b +Merge: 6d67bf0ed 595b8fe06 +Author: ng-voice GmbH +Date: Thu Jan 25 16:58:26 2018 +0100 - core: new parameter ip_free_bind + Merge pull request #1410 from christoph-v/missing_record_route_assignment - - control if binding to non local ip should be attempted - - default is 0 (do not try to bind to non local ip address) + ims_usrloc_scscf: missing assignment of record_route -commit ff3cf17ff3566cb08cb0a6b9f7f7d893cd908956 -Author: Daniel-Constantin Mierla -Date: Tue May 2 10:37:41 2017 +0200 +commit 6d67bf0ed3451fa16bf98d0984af85f25c4c1b56 +Merge: cda1d086c 11c179ab2 +Author: ng-voice GmbH +Date: Thu Jan 25 16:57:56 2018 +0100 - core, sctp: check if IP_FREEBIND is defined + Merge pull request #1411 from christoph-v/wrong_query_buffer_assignment - - not all os-es have it + ims_usrloc_scscf: assignment of length missing for query_buffer in db_link_contact_to_impu() -commit 1af9fe360780fbf723006f8e569d019788e5a2fa -Merge: d09176e29 7036c0ea9 +commit cda1d086c164052a5b79b54a8d0e5cf6e5fb3e1c Author: Daniel-Constantin Mierla -Date: Tue May 2 10:24:30 2017 +0200 +Date: Thu Jan 25 15:03:27 2018 +0100 - Merge pull request #1104 from sergey-safarov/FREEBIND + pua: proper safety check on subs->extra_headers->s for subscribe_cbparam() - src/core: Added IP_FREEBIND flag durring socket initialization + - dicovered via GH PR #1409 -commit d09176e291a0b06ebd2ea386195a1968bffd4e1a -Merge: f335900ae 07ce768fc -Author: Daniel-Constantin Mierla -Date: Tue May 2 10:17:11 2017 +0200 +commit 595b8fe06165328366865328e43c14a9ca23c386 +Author: Christoph Valentin +Date: Thu Jan 25 13:37:59 2018 +0100 - Merge pull request #1110 from khoegh/master + ims_usrloc_scscf: missing assignment of record_route - htable: Fix memory leak when reloading an empty htable from database + In update_subscriber() function, when the rs is assigned to the subs, + it is missing the record_route component, which leads to core dump in + some scenarios. -commit f335900ae40fe1552dc2fa85953f99195bc20dda -Author: Daniel-Constantin Mierla -Date: Tue May 2 08:26:14 2017 +0200 +commit 11c179ab232222f1c78f19557032afd49bef7324 +Author: Christoph Valentin +Date: Thu Jan 25 13:13:07 2018 +0100 - tm: retransmission management functions exported to kemi framework + ims_usrloc_scscf: assignment of length missing for query_buffer in + db_link_contact_to_impu() + + When writing to query_buffer with the help of the snprintf() function, + the result of the functio is written to variable query_buffer_len + instead of to the query_buffer.len itself. This leads to core dump + in some cases. Replaced "_" by "." in "query_buffer_len =" -commit 0b9899a503db5080c56aeb372961df4f940c7574 -Author: Daniel-Constantin Mierla -Date: Tue May 2 08:25:37 2017 +0200 +commit 3ebf070467aecd4a7e3d5e287b776831f31b25d8 +Author: Victor Seva +Date: Thu Jan 25 10:35:09 2018 +0100 - dialog: exported dlg flags functions to kemi framework + pkg/kamailio/deb: version set to 5.2.0~dev3 -commit f9ca87af6bef4d2dd4c3ec103e9bdcca8fb7a1b7 +commit 0aa43efe604c99da9a1e579ed19407fae4d8f2f9 Author: Daniel-Constantin Mierla -Date: Tue May 2 08:25:10 2017 +0200 +Date: Thu Jan 25 10:24:35 2018 +0100 - sqlops: exported functions to kemi framework + Makefile.defs: version set to 5.2.0-dev3 -commit ee256fdd8b2c6a5ea42b703181af298b5b097778 +commit 2fc3be572afe4dc666f7345c733a5bc1c8e94932 Author: Daniel-Constantin Mierla -Date: Tue May 2 08:24:32 2017 +0200 +Date: Thu Jan 25 10:18:20 2018 +0100 - ss7ops: exported functions to kemi framework + siptrace: use formatted string instead of series of concatenations -commit 07ce768fc6064867ed33d7ab6c9cbbb05db329db -Author: Kristian Høgh -Date: Tue May 2 07:43:54 2017 +0200 +commit 3fc1da644a6b375fc45ea17cbcf81643f70db545 +Author: Charles Chance +Date: Tue Jan 23 20:51:31 2018 +0000 - htable: Fix memory leak when reloading an empty htable from database + presence: added enable_dmq parameter to module docs -commit 8fc83e83cbe6f14dc89ad1b19c2a0c5667bc3d18 -Author: Daniel-Constantin Mierla -Date: Mon May 1 22:20:32 2017 +0200 +commit a4034c1d087b1c87f4dd712554a2a6f6fa184d86 +Author: Charles Chance +Date: Wed Jan 24 14:20:53 2018 +0000 - sst: fix flag condtion in sst_check_min() + kamctl: regenerated db scripts to include presentity ruid column -commit b8e64d95599bd2893900360644d551681af5c6d6 -Author: Daniel-Constantin Mierla -Date: Mon May 1 09:29:18 2017 +0200 +commit acd42263ea1e648f2f5789f993a63de1f05f8b1b +Author: Charles Chance +Date: Tue Jan 23 19:45:08 2018 +0000 - uac: exported uac_reg functions to kemi interface + schema: add ruid column to presentity table -commit c1677c39a1e6255aa01d623cc2cd5560b518652f -Author: Daniel-Constantin Mierla -Date: Mon May 1 09:14:27 2017 +0200 +commit b7a5016cdbdb068fe23dc1a5d74aa01643c8ec20 +Author: Charles Chance +Date: Mon Jan 15 20:15:43 2018 +0000 - registrar: fixed typo in reg_free_contacts() kemi exports + presence: dmq integration + + - initial implementation + - replication of presentity updates over DMQ + - adds ruid column for matching across cluster -commit f68bd70eb5e84515978a137a558d45c7c0765f0e -Author: Daniel-Constantin Mierla -Date: Mon May 1 09:09:25 2017 +0200 +commit 44dc6caa2b0ff5ac17d5ae14830feae6d8f9ebd7 +Author: Kamailio Dev +Date: Wed Jan 24 12:01:31 2018 +0100 - uac: uac_reg functions use spve and igp fixup helpers + modules: readme files regenerated - nathelper ... [skip ci] -commit 459f2e064789a86f6e278485ba6f5df812c0e700 +commit 57bd759e19b07647aac3bfce673131a142d9c07a Author: Daniel-Constantin Mierla -Date: Mon May 1 09:08:55 2017 +0200 +Date: Wed Jan 24 11:58:45 2018 +0100 - diversion: fixed error log message + nathelper: documented the use of add_rcv_param() for Contact URI case -commit 7fb76f9c4f247a1b62609e6ff22a5ecfd4efa46d +commit 64303a9398afe65d65cf35489c04e725689a5da2 Author: Daniel-Constantin Mierla -Date: Mon May 1 09:06:01 2017 +0200 +Date: Wed Jan 24 11:52:47 2018 +0100 - core: fixup helper functions for spve and pvar parameters + nathelper: add_rcv_param() - do not enclose to double quotes if URI param + + - restrict adding the param to contact URI only for UDP, otherwise a + second transport parameter appears in the URI + - do not enclose the value in double quotes when adding as URI param, it + is not allowed by SIP specs grammar + - discussed on GH PR #1203 -commit d88453f15d067a9e6cbc827b4dc665565156e07d +commit 08df9d1b11ff3fcfe241ce179560431145be8216 Author: Daniel-Constantin Mierla -Date: Mon May 1 08:44:51 2017 +0200 +Date: Wed Jan 24 11:44:33 2018 +0100 - uac: exported replace from/to functions to kemi interface + nathelper: fixed interpretation of flags param for add_rcv_param() + + - add as uri param when the flags are set and different than 0 + - small typo in log message -commit 69353523a758a1823c0e9d52afe5d62ad44f6a45 -Author: Daniel-Constantin Mierla -Date: Mon May 1 08:08:28 2017 +0200 +commit f540ff43e52696ad3f21edc8188cf2ddc62686bc +Author: Kamailio Dev +Date: Wed Jan 24 09:46:40 2018 +0100 - registrar: more functions exported to kemi framework + modules: readme files regenerated - json ... [skip ci] -commit 4f9143e6ce9e91165ac3916e6c142db21b0b2fe8 +commit 9d8e957419f36b5ca11144b6f52f005a2b04ef43 +Merge: e62fa8f78 12f6992bf Author: Daniel-Constantin Mierla -Date: Mon May 1 08:07:03 2017 +0200 +Date: Wed Jan 24 09:35:59 2018 +0100 - uac: uac_auth() and uac_req_send() exported to kemi framework + Merge pull request #1404 from kamailio/json-transformation + + json: add transformation -commit fe847cc0f567c38bf51d5a9bf28f6546a54cc2c5 +commit e62fa8f7813a0d22f4db30a99bcee541103f21b3 Author: Daniel-Constantin Mierla -Date: Sun Apr 30 08:42:46 2017 +0200 +Date: Wed Jan 24 09:21:30 2018 +0100 - registrar: extended docs about add_sock_hdr() + sipt: Makefile - define KAMAILIO_MOD_INTERFACE -commit b7baf05bd27aec0bfb606ff1ad43c01e165583fa +commit cd0e1bd26cc31c001707ce98d084310979071fb0 Author: Daniel-Constantin Mierla -Date: Sun Apr 30 08:40:23 2017 +0200 +Date: Wed Jan 24 09:21:17 2018 +0100 - registrar: add_sock_hdr() uses spve fixup + janssonrpcc: Makefile - define KAMAILIO_MOD_INTERFACE -commit ae6367f4568a3775ff0c75a1a30c3f3742773cde +commit 86589cdda4f5390099165670d68d49f5c8b44af1 Author: Daniel-Constantin Mierla -Date: Sun Apr 30 08:28:00 2017 +0200 - - pv: exported sbranch functions to kemi framework - -commit 7036c0ea947d6450e6a23c2e5b2428c834352de0 -Author: Sergey Safarov -Date: Sat Apr 29 10:08:53 2017 -0400 +Date: Wed Jan 24 09:21:05 2018 +0100 - src/core: Added IP_FREEBIND flag durring socket initialization + jansson: Makefile - define KAMAILIO_MOD_INTERFACE -commit 10c5ae5fda39d38f5034b9dab91c8d3970b552a8 -Author: Sergey Safarov -Date: Sat Apr 29 11:19:51 2017 -0400 +commit 22421845cfcc0eab194ac510bfc378f72765a059 +Author: Daniel-Constantin Mierla +Date: Wed Jan 24 09:20:33 2018 +0100 - pkg/kamailio/centos/7: mod kazoo enabled default build + cnxcc: Makefile - define KAMAILIO_MOD_INTERFACE -commit 7e447329d1a1281cdb84238dacdc5e045b9637d6 +commit 43434ee8a1d65276dfbfce2f866f91d4bf0682fc Author: Kamailio Dev -Date: Sat Apr 29 11:31:26 2017 +0200 - - modules: readme files regenerated - presence ... [skip ci] +Date: Tue Jan 23 17:46:38 2018 +0100 -commit e31516ec061d19c83870044292d8e7c665e89c8e -Author: Daniel-Constantin Mierla -Date: Sat Apr 29 11:25:51 2017 +0200 - - presence: more functions exported to kemi framework + modules: readme files regenerated - cfg_rpc ... [skip ci] -commit 7cccc82f1bdb8132d150f291158731b5c1aaa91e +commit a9972863681059c647af4bafd0d9a20f7648c801 Author: Daniel-Constantin Mierla -Date: Sat Apr 29 11:21:35 2017 +0200 +Date: Tue Jan 23 17:33:39 2018 +0100 - presence: documentation updates for pres_auth_status() + ctl: proper handling of optional param specifier (*) in rpc scan -commit 750a37076517c227af8fa1666229652e026b9b69 +commit 95e82d9135180be519192029d3f6edcf56eddb59 Author: Daniel-Constantin Mierla -Date: Sat Apr 29 11:07:46 2017 +0200 +Date: Tue Jan 23 17:32:23 2018 +0100 - presence: use spve fixup for pres_auth_status() + cfg_rcp: allow getting 0 values in rpc cfg.get - - flexibility to provide static string values or variable parameters - -commit eada34c70aeeab42c7e4ccd5a36601d7bf666c17 -Author: Daniel-Constantin Mierla -Date: Sat Apr 29 08:33:34 2017 +0200 - - tls: exported functions to kemi framework + - issue introduced in previous commit + - log message for dynamic values to be skipped -commit 8201472d2c1550dffa60e9b0c6548b8340740061 -Author: Daniel-Constantin Mierla -Date: Sat Apr 29 08:33:07 2017 +0200 +commit e98bd84810b8faa7faf7af3384fc2c979725fe86 +Author: Huseyin Dikme +Date: Tue Jan 23 16:59:25 2018 +0100 - pua_usrloc: exported functions to kemi framework + cfg_rpc: documentation about group vars listing with rpc cfg.get + + - part of PR #1321 -commit 5b0449b583f722b070e59b0735e26aa16ca413ee +commit 4920d1c5df277526dcb27d34bfedab4cc2815bde Author: Daniel-Constantin Mierla -Date: Sat Apr 29 08:32:21 2017 +0200 +Date: Tue Jan 23 16:56:51 2018 +0100 - pua: exported functions to kemi framework + cfg_rpc: rpc command cfg.get accepts group name to list its vars + + - if only one parameter is given (group name), cfg.get returns a + structure with all variables and their values in the group + - patched enhaced from the PR #1321 by Huseyin Dikme -commit c5429ebe40b0e8dea71bca3fa348d61584bdac30 -Author: Daniel-Constantin Mierla -Date: Sat Apr 29 08:31:36 2017 +0200 +commit 3018595d13dde08d15e8063cecb42a01ea271b66 +Author: lazedo +Date: Tue Jan 23 10:20:52 2018 +0000 - presence_xml: exported functions to kemi framework + kazoo: change string parameters to PARAM_STR -commit da8690ddce4bff65a251351a1df588e31b266c26 +commit f6232ee6d5d7fed67b6510c8c5ab8e7f6273274e Author: Daniel-Constantin Mierla -Date: Sat Apr 29 08:31:15 2017 +0200 +Date: Mon Jan 22 11:56:40 2018 +0100 - presence: exported functions to kemi framework + sctp: removed unused goto label -commit fec80f51a64ab102aca79c44d61c6c783b0baa46 -Author: Daniel-Constantin Mierla -Date: Fri Apr 28 16:10:59 2017 +0200 +commit 589e8a8345da5160c1693c1c6808be4588b625aa +Merge: 7dae4ec9e c2949fe2d +Author: Alexandr Dubovikov +Date: Mon Jan 22 11:32:43 2018 +0100 - topos: proper storing of b-side record routing + Merge pull request #1406 from adubovikov/master - - special credits to Sergey Basov for troubleshooting - -commit 4f839fbf3793cd605dc9d185e18467a708092c02 -Author: Daniel-Constantin Mierla -Date: Fri Apr 28 11:20:17 2017 +0200 - - utils: exported functions to kemi framework + modules/sipcapture fixed LM_ERR to LM_DBG -commit f352a0e0b785e42100ba967b385911a266e84bfc +commit 7dae4ec9e4be87d5a3406fe2ddeb98328beb1125 Author: Daniel-Constantin Mierla -Date: Fri Apr 28 11:16:26 2017 +0200 +Date: Mon Jan 22 10:53:05 2018 +0100 - utils: use spve fixup - more flexibility in allowing strings and variables + siptrace: fixed unused variable warnings -commit ad3ce52d25185c021d01a91100690ec7efa36d7e -Author: Daniel-Constantin Mierla -Date: Fri Apr 28 10:55:50 2017 +0200 +commit c2949fe2dc4d1156657cd6bc1683da83eda2a809 +Author: Alexandr Dubovikov +Date: Mon Jan 22 10:52:15 2018 +0100 - xmlrpc: exported functions to kemi interface + modules/sipcapture fixed LM_ERR to LM_DBG -commit 08f8e0bc72b9f16f76b78110c9c95b1ba7f1ce25 -Author: Daniel-Constantin Mierla -Date: Fri Apr 28 09:35:41 2017 +0200 +commit f6066a022db81ae4d5f6c5cb5500fdcfdb15e33e +Merge: 2aebb2bf1 ad46b115b +Author: Federico Cabiddu +Date: Mon Jan 22 10:10:51 2018 +0100 - db_cluster: free allocated structure at init time + Merge pull request #1405 from kamailio/vseva/http_async_client_fix - - avoid reopening driver db connections if already set + http_async_client: cleanup avps/xavps after exec route on Http worker -commit 0a87b5a9b0af5e3a277e462d41a8ffc3ca3f246e -Author: Timo Teräs -Date: Fri Apr 28 10:06:01 2017 +0300 +commit ad46b115bedec01c52c5a9dcde0756db85ee61ec +Author: Victor Seva +Date: Mon Jan 22 08:58:26 2018 +0100 - tls: add a level of libressl compatibility - - libressl is the openbsd openssl fork that is getting more popular. - It defines OPENSSL_VERSION_NUMBER 0x20000000L and introduces a new - LIBRESSL_VERSION_NUMBER that reflects the true libressl version. - - As openssl made major changes between 1.0.1 and 1.1.0, and libressl - being closer to 1.0.1 series, it needs to be specifically detected - in certain cases. - - This commit updates the compat logic to implement missing api - functions as inline function where sensible needed in order to - minimize the #ifdef clutter and make the code more readable and - less prone to bugs. + http_async_client: cleanup avps/xavps after exec route on Http worker + when suspend_transaction is false -commit 1051a1bbc70cf84d6ebd7aa76a9b1ebd2e17e710 +commit 2aebb2bf1f3d71a0dc7eca847af2aa127ff54453 Author: Daniel-Constantin Mierla -Date: Fri Apr 28 09:10:04 2017 +0200 +Date: Sun Jan 21 13:20:55 2018 +0100 - htable: close db connection in some error cases for rpc command + rls: removed local variable contact, unused inside rls_handle_subscribe() -commit 4d485707f7e53e798466dc6ae2166eddbe874b95 -Author: Timo Teräs -Date: Fri Apr 28 09:58:50 2017 +0300 +commit 5e58d48c980f5e413f47271dd342ee0630722bbb +Author: Daniel-Constantin Mierla +Date: Sun Jan 21 13:17:46 2018 +0100 - Add and fix #includes for more strict POSIX compliance - - - sys/poll.h is non-standard, posix defines poll.h - - sys/time.h is needed in addition to time.h for e.g. struct timeval + rls: rls_get_service_list() - set to NULL the content of rootdoc pointer - Notable this fixes some build errors against musl libc + - its a function parameter and expects to be set by the function -commit 6af11bf9858921deb74cce351013b734e1b29a6f -Merge: ca39ea810 1c5e16600 +commit 4fa92be97bca8da3ce5bf5181ef9262006b4fb9d Author: Daniel-Constantin Mierla -Date: Fri Apr 28 08:35:55 2017 +0200 +Date: Sat Jan 20 11:45:51 2018 +0100 - Merge pull request #1101 from codyherzog/master - - core: Don't terminate on harmless SIGCHLD. + uri_db: ki_check_uri_realm() has three string params for kemi exports -commit ca39ea810c01f6947db70870cc1d786e95cb4bc3 -Author: Carsten Bock -Date: Fri Apr 28 08:05:28 2017 +0200 +commit 23450310fe6095f612d328871380012f189ac1c3 +Author: Daniel-Constantin Mierla +Date: Sat Jan 20 11:44:59 2018 +0100 - Packaging: Update Centos 7 Spec file + textops: proper parameter types for kemi exports -commit 1c5e166001306a1a9d9d8412f0a54910093109cb -Author: codyherzog -Date: Thu Apr 27 14:04:35 2017 -0700 +commit fb904abd968eb44e797ee7bc08c5705e69de2fc7 +Author: Daniel-Constantin Mierla +Date: Sat Jan 20 11:44:31 2018 +0100 - core: Don't terminate on harmless SIGCHLD. - - If it appears that no child process has stopped, then do not terminate - on SIGCHLD. Certain modules like app_python can run external scripts - which cause child processes to be started and stopped. That can result - in SIGCHLD being received even though there is no real problem. - Therefore, we do not terminate Kamailio unless we can find the child - process which has stopped. + textops: fixed mixmatching types for exported kemi functions -commit 1ad4a08fb9a8297209887c77fa026a402060ba74 -Merge: a57465ff4 ec70f7f02 +commit 4fbbc544c2c860c24ab3e8d4a4eb362f7f626ee8 Author: Daniel-Constantin Mierla -Date: Thu Apr 27 23:02:35 2017 +0200 +Date: Sat Jan 20 11:43:13 2018 +0100 - Merge pull request #1092 from sergey-safarov/spec_update8 + msilo: set parameter names in prototypes - pkg/kamailio/centos/7: Updated dependency lib name (librabbitmq) + - used in genrating the index for kemi exports -commit a57465ff47d46fb5d64c692a72f42767598adbb4 -Author: shuntongzhang -Date: Thu Apr 27 22:55:52 2017 +0200 +commit c668854d05e548bf9d138778307891e914cc565e +Author: Daniel-Constantin Mierla +Date: Sat Jan 20 11:42:44 2018 +0100 - usrloc: add more attributes to the result of ul.dump + cnxcc: fixed kemi export for signature for ki_get_channel_count() -commit e4b6076ac284a2c7d191a8190367cc5812e247b2 -Author: Daniel-Constantin Mierla -Date: Thu Apr 27 21:43:33 2017 +0200 +commit 12f6992bfaf833179f826033102054ad984f22e1 +Author: Emmanuel Schmidbauer +Date: Fri Jan 19 14:01:24 2018 -0700 - imc: exported functions to kemi framework + json: add transformation -commit 86c4168d2306b6648cdaaaa0540ece154d959727 -Author: Victor Seva -Date: Thu Apr 27 19:05:35 2017 +0200 +commit 68c476bcba8e49bc02a13beda431678d93cb2d47 +Author: Kamailio Dev +Date: Fri Jan 19 11:31:33 2018 +0100 - pkg/kamailio/deb: set LIBDIR for all rules - - * default path to modules was wrong - - Fix #1096 + modules: readme files regenerated - usrloc ... [skip ci] -commit 86faeb344fb9722c82bfbf6c4f22bcf017da542a +commit 50c3c0d0bb404f1fbd3d618042aa7c2f3533d7b0 Author: Daniel-Constantin Mierla -Date: Thu Apr 27 08:26:54 2017 +0200 +Date: Fri Jan 19 11:16:04 2018 +0100 - exec: exported functions to kemi framework + usrloc: documentation for rm_expired_delay parameter -commit 24d6c87e027f825d79ff8ba3ca79cc7f5ce3786b -Author: Kamailio Dev -Date: Wed Apr 26 22:46:22 2017 +0200 +commit 3de21172fa0f435a77aea73151a2ddad7a711a8f +Author: Daniel-Constantin Mierla +Date: Fri Jan 19 11:05:31 2018 +0100 - modules: readme files regenerated - http_async_client ... [skip ci] + usrloc: new parameter rm_expired_delay + + - set how many seconds to delay the removal of an expired record + - for now works only in DB_ONLY mode -commit 83918a1bb6c1f1af5f132c4bfd109c841cb71731 -Author: Giacomo Vacca -Date: Wed Apr 26 22:35:58 2017 +0200 +commit 0640853223af068f191fea62790e00d7a6b4319f +Author: Daniel-Constantin Mierla +Date: Fri Jan 19 10:32:24 2018 +0100 - http_async_client: doc review (request body setting) + usrloc: renamed dmq specific flag from FL_RPL to FL_DMQRPL -commit 59b17e8b109041cbed538a5f90a222db6752eb5e -Author: Kamailio Dev -Date: Wed Apr 26 22:16:22 2017 +0200 +commit 72bbf9280879475dcdbda59f00b75a274885abaa +Author: Carsten Bock +Date: Thu Jan 18 20:11:50 2018 +0100 - modules: readme files regenerated - http_async_client ... [skip ci] + CDP: Safety checks and warnings for adding applications to a peer definition -commit e2ddfed671bebdaf85035c2f813dc955f54484b7 -Author: Giacomo Vacca -Date: Wed Apr 26 22:12:43 2017 +0200 +commit 219072f0ef43eff1a5d4947f6fd71f2fd4fb7d1f +Author: Daniel-Constantin Mierla +Date: Thu Jan 18 17:40:42 2018 +0100 - http_async_client: doc review (payload setting) + siptrace: use formatted print for addresses inside trace_onreq_out() -commit 16f4f7fcdbd08bfe12d72b56fe109b61e25cfde1 -Author: Kamailio Dev -Date: Wed Apr 26 10:01:27 2017 +0200 +commit 099e784a250581d0c124d6110d3953bfc0716930 +Author: Daniel-Constantin Mierla +Date: Wed Jan 17 22:48:11 2018 +0100 - modules: readme files regenerated - http_async_client ... [skip ci] + core: udp server - continue when failing to print debug with received chars + + - reported by GH #1403 -commit 045e595682c56abea550b6a15189690cb0c491e9 -Merge: d697cd55b 28f223a0a -Author: Giacomo Vacca -Date: Wed Apr 26 09:47:17 2017 +0200 +commit 64a391a2408b1d34569947f8b028915ec3462e6d +Author: Daniel-Constantin Mierla +Date: Wed Jan 17 22:37:10 2018 +0100 - Merge pull request #1093 from kamailio/giavac/http_async_client_doc + core: udp server - cast printed debug chars to unsigned - http_async_client: doc review (old functions) + - reported by GH #1403 -commit d697cd55bee4561ab3e7e3114e752f361ac9fafd +commit 74c9f53aa736b9d2581666a8a75bc685156447f4 Author: Daniel-Constantin Mierla -Date: Wed Apr 26 07:53:18 2017 +0200 +Date: Wed Jan 17 22:23:35 2018 +0100 - enum: exported functions to kemi framework + exec: more info in log messages when uri parsing fails -commit 9198e20630cef3d42212168498d1eeae1cc3aab7 +commit 34ec1fc381916ee2ce7b08afce413bf2aa427a55 Author: Daniel-Constantin Mierla -Date: Wed Apr 26 07:52:54 2017 +0200 +Date: Wed Jan 17 22:18:20 2018 +0100 - diversion: fixed kemi parameter for add diversion with uri + exec: clang format the code -commit f86ea960a5c5a411e19105cb694e48753ae69d9f -Author: Kamailio Dev -Date: Wed Apr 26 07:31:49 2017 +0200 +commit 8a501f2be2860b1bfd0b9a3d1f63d85f4654fd01 +Author: Daniel-Constantin Mierla +Date: Wed Jan 17 15:05:59 2018 +0100 - modules: readme files regenerated - enum ... [skip ci] + exec: small typo in log message -commit 5fcd7c75fe4a2b2858359fc125bef55a2b015975 +commit 6feb28266210a8210d31d7dac49cf3ea3da06164 Author: Daniel-Constantin Mierla -Date: Wed Apr 26 07:22:29 2017 +0200 +Date: Tue Jan 16 16:00:37 2018 +0100 - enum: updated docs about parameters of the functions + tm: handle rpc tm.t_uac_start only with From and To headers + + - reported by GH #1393 -commit babf1248963cc812e38e34b1e14eba8cfbfd1321 +commit ce9f67581f45a00fd879329ffc918b2a7ef9b8d0 Author: Daniel-Constantin Mierla -Date: Wed Apr 26 07:16:03 2017 +0200 +Date: Tue Jan 16 09:06:36 2018 +0100 + + topos: print warn message when local address is not set + +commit d1f1b08e757955158b73841f344b993d52b26d29 +Author: Kamailio Dev +Date: Tue Jan 16 09:01:41 2018 +0100 - enum: use spve fixup to allow variables or static strings in functions + modules: readme files regenerated - topos ... [skip ci] -commit c3c20ba99e0b2e39d1a030dbecf394cc5d8fc052 +commit 4e659b5f3cd9b176e3bf2e20ceebf34d9734707b Author: Daniel-Constantin Mierla -Date: Wed Apr 26 07:15:25 2017 +0200 +Date: Tue Jan 16 08:46:39 2018 +0100 - domain: exported functions to kemi framework + topos: docs - more explicit info about required use of record_route() -commit 5a87defebe64c04c3276adb964c31031f64f0717 +commit 97532ca18f595d89edf9b0b6e6688847aa38dd44 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 22:08:48 2017 +0200 +Date: Sun Jan 14 06:04:22 2018 +0100 - core: added helper function to free spve fixup parameters + topos: set uuid fields before checking contact/rr fields -commit 28d3d37e08ac24e44bac87f9b3fdb2377ec21210 +commit 883d49d5ed2cc6140c583559d0f61bde3fa6fdb5 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 22:04:08 2017 +0200 +Date: Mon Jan 15 16:43:18 2018 +0100 - enum: coherent indentation and whitespacing using clang format + topos_redis: store tags in transaction records -commit 28f223a0a6d0e596fd140231de899233cd2ddd8c -Author: Giacomo Vacca -Date: Tue Apr 25 22:36:14 2017 +0200 +commit 5b2b06ceff61144c5f0cbddacdfcaee18a2e8eff +Author: Daniel-Constantin Mierla +Date: Mon Jan 15 16:34:23 2018 +0100 - http_async_client: doc review (old functions) + topos: store and load tags in transaction record -commit 9abb53d32e02c3adfedbb754082d93ecd62fb146 +commit acc370ae9f192475b86ee54b93b3d8485637c55e Author: Kamailio Dev -Date: Tue Apr 25 18:31:21 2017 +0200 +Date: Mon Jan 15 15:46:29 2018 +0100 - modules: readme files regenerated - domain ... [skip ci] + modules: readme files regenerated - textopsx ... [skip ci] -commit a4e753d041ec79d14d861a6cf1eeb6cdc04fccde +commit 6e1e7fe306ebf97fb27b8a1d9e4f57e139d418f2 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 18:17:56 2017 +0200 +Date: Mon Jan 15 15:20:35 2018 +0100 - domain: coheren indentation and whitespacing - - - formatted to clang-format specs + textopsx: docs - fixed example for change_reply_status() -commit 77f4cea8df15920f33f0f017c7303d2306aeee83 -Author: Daniel-Constantin Mierla -Date: Tue Apr 25 18:12:36 2017 +0200 +commit 22e4167ebca08ee0fca155e9a230fd719e00a6e7 +Author: Kamailio Dev +Date: Mon Jan 15 13:01:30 2018 +0100 - domain: clarifications about string parameters in the docs + modules: readme files regenerated - tcpops ... [skip ci] -commit f4fa77ac0611b0dd96b992210ec1901145b1397c +commit 9cc9785cef0a8abf3fa09de1f5da4dd52133be39 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 18:07:19 2017 +0200 +Date: Mon Jan 15 12:57:16 2018 +0100 - domain: added section ids for parameters and functions in docs + tcpops: documentation for tcp_get_conid() -commit 9dd7e97a743b3f78bed9f7a2d6eb7af6f816dc80 +commit 381dfada3989d86a2afa88d7c13859b073c403d7 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 18:02:25 2017 +0200 +Date: Mon Jan 15 12:49:57 2018 +0100 - domain: use core fixup helper functions for string parameters + tcpops: added function to get connection id based on target host:port - - simplifies getting the values and it is more flexible allowing static - strings as well + - tcp_get_connid(hostport, pvname) + - connection id is set in pvar paraemter -commit 0b39960c4b7575e5705306acff5e261207149ddb +commit edb3d6d848c9ccf85b077950ecf6aec7acf3e5b6 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 17:40:13 2017 +0200 +Date: Mon Jan 15 12:48:51 2018 +0100 + + core: tcp - typedefed structs + +commit 0997892bc9fe93fbd78d2ce239e71c15ba6a7e9f +Author: Kamailio Dev +Date: Mon Jan 15 09:02:09 2018 +0100 - diversion: fixed name of cfg wrapper function + modules: readme files regenerated - dispatcher ... [skip ci] -commit e442da4b3403c2f778a53532c51a3dcb806dbf82 +commit 27fdee6b47ce609ee5913f9aa9355a2c01ec0458 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 16:34:57 2017 +0200 +Date: Mon Jan 15 08:54:44 2018 +0100 - diversion: exported functions to kemi framework + dispatcher: test len for matching all token in setting the state via rpc -commit 2fe556a1e2c43d33106f121c05b857d4f1f7b380 +commit 9c6436bd52a6a4af322b908c2ceb80cd8e1dd4a9 +Merge: 86d9c4f3c d4003b91e Author: Daniel-Constantin Mierla -Date: Tue Apr 25 15:36:48 2017 +0200 +Date: Mon Jan 15 08:52:11 2018 +0100 - core: kemi - handle the case when a module is reloaded with different flags + Merge pull request #1399 from tverlaan/dispatcher_update_state_all - - avoid having same module exported twice + Dispatcher set_state "all" -commit 5ee474cae20b5a8f73fece3bc393f6fcd91d3821 +commit 86d9c4f3ca643f0e9469628883e902ee766c737a +Merge: 6af1a0110 efcf941d8 Author: Daniel-Constantin Mierla -Date: Tue Apr 25 11:22:29 2017 +0200 +Date: Sun Jan 14 23:16:55 2018 +0100 - misc/examples: flags defines stored in a table + Merge pull request #1398 from sergey-safarov/docker + + Updated reference to kamailio-ci (dockerfiles) repo -commit 62cf697022b30f53c36e11c9e9ea9def3bf9fbb6 -Author: Daniel-Constantin Mierla -Date: Tue Apr 25 11:17:21 2017 +0200 +commit efcf941d87f5ee95df9974e328e371d04ab5e173 +Author: Sergey Safarov +Date: Sat Jan 13 16:58:30 2018 -0500 - misc/examples: fixed flags names for sqlang example + pkg/docker: Updated reference to kamailio-ci (dockerfiles) repo -commit c736091237ea16ec1af7067e0f5e1190f314eb25 -Author: Daniel-Constantin Mierla -Date: Tue Apr 25 10:42:28 2017 +0200 +commit 6af1a0110083ba98c7f4695410f9c71f225ca1a9 +Author: Richard Schneeman +Date: Sun Jan 14 17:51:59 2018 +0100 - misc/examples: fixed condition to check method UPDATE + README.md: added code triage badge link [skip ci] + + - codetriage is an app with the goal of getting people involved + in open source projects, sending to subscribers a random + open issue for them to help "triage" + - more at: https://www.codetriage.com + - based on PR #1389 -commit 0eef819fbc9e1452412cc1663e8b892ca1a1beca -Author: Daniel-Constantin Mierla -Date: Tue Apr 25 09:45:16 2017 +0200 +commit d4003b91ec04741041b4aa2bdc5926f5aeb6f945 +Author: Timmo Verlaan +Date: Sun Jan 14 17:04:07 2018 +0100 - misc/examples: updated comment in sqlang script + dispatcher: allow 'all' to update all destinations in group via RPC -commit 38dfefd365f4e04b664688a3237e32b6cf3ca812 -Author: Kamailio Dev -Date: Mon Apr 24 21:16:20 2017 +0200 +commit d8cc86263b85be448e1f5c1fe1372fd08d26434a +Author: Timmo Verlaan +Date: Sun Jan 14 16:27:07 2018 +0100 - modules: readme files regenerated - ndb_redis ... [skip ci] + dispatcher: add method to reinit state for all destinations in group -commit 37076691941b5e4c3461eb24108f737ff2fd2d64 +commit 1f9366ab5978ee4aa8fd3cefea0393c94889c26e Author: Daniel-Constantin Mierla -Date: Mon Apr 24 21:07:26 2017 +0200 +Date: Sun Jan 14 09:52:25 2018 +0100 - ndb_redis: fixed comparing unix socket buffer variable in error cases + db2_ops: proper check for memory allocation pointer + + - check result codes for registering script callbacks -commit ff8cfa62c41704b72301966b0919ea95b001dac7 -Author: Claudiu Boriga -Date: Mon Apr 24 21:02:10 2017 +0200 +commit 554a7dbb77730efdfe56f279e98b6c0d4b4be314 +Author: Kamailio Dev +Date: Sat Jan 13 19:31:46 2018 +0100 - ndb_redis: add pipeline suppport for REDIS commands + modules: readme files regenerated - pipelimit ... [skip ci] -commit 24f507f4f0643cd6157b6ac1339be77afe0bdd64 +commit 93cfd4e8581fed04d4e596ed7f3d284c53fc5501 Author: Daniel-Constantin Mierla -Date: Mon Apr 24 20:55:10 2017 +0200 +Date: Sat Jan 13 19:28:34 2018 +0100 - app_sqlang: use only function name in the exports table + pipelimit: docs - more details about timer interval and limit values -commit f1e2e12e10d5926499e0734adbf6674802f867bd +commit 1880f1f8be4b51cec2a0567580828e9ac449947d Author: Daniel-Constantin Mierla -Date: Mon Apr 24 20:53:51 2017 +0200 +Date: Sat Jan 13 18:49:15 2018 +0100 - core: print error messages when exceeding max size for kemi modules + pipelimit: remove mutiplying the limit with timer interval for TAILDROP alg + + - the limit is documented as per interval, not per second (closes GH #1390) + - renamed macro for default limit to use module specific prefix -commit 8be111115e2748cbde4ce841ae72b49badb7e4d5 -Author: Daniel-Constantin Mierla -Date: Mon Apr 24 16:51:30 2017 +0200 +commit 5e7330cd419d8d149cc4a4ca6105d1bfa11996be +Author: Kamailio Dev +Date: Sat Jan 13 18:32:27 2018 +0100 - app_sqlang: link against libstdc++ - - - fix on linux for undefined symbol: __cxa_pure_virtual + modules: readme files regenerated - nathelper ... [skip ci] -commit 5071895772c42699bad6cfc982c89e3faccad29f +commit 64b535f9ff7ae52548a57d0736a55007c7106f53 +Merge: 788f81af0 64cf6ee50 Author: Daniel-Constantin Mierla -Date: Mon Apr 24 16:36:27 2017 +0200 +Date: Sat Jan 13 18:20:59 2018 +0100 - misc/examples: more complex example of using sqlang kemi interpreter + Merge pull request #1396 from tverlaan/nathelper_force_socket_respect_port + + nathelper: allow port to be specified in force_socket, fixes #1298 -commit 3efdeefdf80c3bc544b19f260981ea5d98d71ff7 -Author: Daniel-Constantin Mierla -Date: Mon Apr 24 15:37:58 2017 +0200 +commit 64cf6ee50f569cd398f66ad8d7921acf2e5627bc +Author: Timmo Verlaan +Date: Sat Jan 13 10:43:06 2018 +0100 - acc: exported functions to kemi framework + nathelper: allow port to be specified in force_socket, fixes #1298 -commit ec8f7722b8e9380f1357796da33da735cfb72913 +commit 788f81af006f481b23606451d225a86b6b02aac8 Author: Daniel-Constantin Mierla -Date: Mon Apr 24 15:00:30 2017 +0200 +Date: Fri Jan 12 14:17:10 2018 +0100 - app_sqlang: fixed compile warnings about unused code + siptrace: simplified internal sip_trace() function using now formatted print -commit 73ae92bc900472eb6afee12da6265798a59a8cef +commit bc88adfd52651a20a44e90c6d07fe641b6d3be39 Author: Kamailio Dev -Date: Mon Apr 24 14:31:32 2017 +0200 - - modules: readme files regenerated - ndb_redis ... [skip ci] - -commit 3c1f6a51e830f6b3c3d98b32178c3cf6af16f62d -Author: Carsten Bock -Date: Mon Apr 24 14:23:47 2017 +0200 - - Fix ndb_redis Cluster implementation +Date: Fri Jan 12 13:01:41 2018 +0100 -commit e94e9d8bdcdb3d340b14868f9d7e52ef0ab71894 -Merge: ec7dd4fa5 33f80833d -Author: Lucian Balaceanu -Date: Mon Apr 24 14:07:59 2017 +0300 - - Merge pull request #1078 from lbalaceanu/replace_db_text_delim - - db_text: introduce db_delim parameter + modules: readme files regenerated - rtpengine ... [skip ci] -commit 33f80833d60f557a9966a8c3dc113947cc0d0da4 +commit cb6df95387186fab8670d17cfd8040de1b7f641e Author: Lucian Balaceanu -Date: Wed Apr 19 13:34:37 2017 +0300 +Date: Fri Jan 12 13:36:34 2018 +0200 - db_text: add db_delim parameter - - - make the delimiter between fields in th db_text file configurable; - useful when one would need to escape a lot of appearances of the - default delimiter (';' in IPv6 addresses). + rtpengine: adding aggressive_redetection param -commit ec7dd4fa56a052e98008205e187ad6ce9a819142 +commit b3e14fc9bd379ad77c13ade0bc60dc32f1d55ade Author: Daniel-Constantin Mierla -Date: Sat Apr 22 18:21:44 2017 +0200 - - core: script callbacks api - updated log messages - -commit ec70f7f02ab26f03086a334967f8a0bd7387eaca -Author: Sergey Safarov -Date: Sun Apr 23 00:29:16 2017 -0400 +Date: Fri Jan 12 09:50:36 2018 +0100 - pkg/kamailio/centos/7: Updated dependency lib name (librabbitmq) + drouting: option to use a static structure for computing ac max val -commit f314edcbe908b9c8976a8a911636c2636a22379c -Merge: 3e1b30e5d 7cb707d67 -Author: Charles Chance -Date: Fri Apr 21 22:51:35 2017 +0100 +commit e0f95ea7fc691f976564b07436848673c633195d +Author: Daniel-Constantin Mierla +Date: Thu Jan 11 12:16:47 2018 +0100 - Merge pull request #1054 from jchavanton/dmq_usrloc_multi_sync + drouting: free max val for time recurrence struct on update if already set - dmq_usrloc: sync with multi contacts per message + - reported by Uri Shacked -commit 3e1b30e5d6020340eaf106b22b7b81ccc33de63d +commit 2ae4d19a5948d771980853bf38aeef8c1553faec Author: Daniel-Constantin Mierla -Date: Fri Apr 21 22:17:12 2017 +0200 +Date: Thu Jan 11 11:50:18 2018 +0100 - topos: free empty db results + siptrace: use same value for "any" address - - root structure and column names are allocated and lead to leak - - reported by Sergey Basov + - two variants were used: any:255.255.255.255:5060 and + any:255.255.255.255, now any:255.255.255.255:5060 is used everywhere + through a define -commit 873f3176b228e91e5c2149d75a7329a6174c48e5 +commit 2e46081424240dfb3767da74b0818249dff46802 Author: Daniel-Constantin Mierla -Date: Fri Apr 21 21:46:23 2017 +0200 +Date: Thu Jan 11 11:44:51 2018 +0100 - .gitignore: more types of tag files added to ignored list + siptrace: replaced sequeces of string concatenations with safer formatted print + + - used to build proxy-like addresses -commit a8b7f94a5c305e14313d5528792f9ca6518d5969 +commit 74560dcd9bd4f7a00a9f82caded66f79a22940aa +Merge: 2bb33a888 bfdb6ae67 Author: Daniel-Constantin Mierla -Date: Fri Apr 21 21:39:22 2017 +0200 +Date: Thu Jan 11 11:25:51 2018 +0100 - dialog: more safety checks to detect if dialog is gone after event route execution + Merge pull request #1394 from tverlaan/nathelper_fix_documentation - - avoid execution of script callbacks for event route - - related to GH #1059 and #1069 + nathelper: fix force_socket documentation -commit 7004969cf94815167d72d2e7158e4754c730ff1d -Author: Daniel-Constantin Mierla -Date: Fri Apr 21 19:59:38 2017 +0200 +commit bfdb6ae670464ca9ff5dbb2d4d9cf5a02afd36f6 +Author: Timmo Verlaan +Date: Wed Jan 10 16:30:04 2018 +0100 - dialog: execute pre script callback only when event route is set + nathelper: fix force_socket documentation -commit 1f46fbcdcbfbae80000d3abcf191424d98104f4e +commit 2bb33a88881eacb94e2af54d564cdffc00478cea Author: Daniel-Constantin Mierla -Date: Fri Apr 21 19:03:04 2017 +0200 +Date: Wed Jan 10 12:52:04 2018 +0100 - ipops: removed unused variables from ragel generated files - - - GH #1074 + pua: safety check on tuple_id len -commit 5d75450e2a05a029d51ab38c3ef6f36fef49a51b -Author: Ovidiu Sas -Date: Fri Apr 21 12:34:01 2017 -0400 +commit 4994960324d5353222b3de08515bed07802ab7bc +Author: Juha Heinanen +Date: Wed Jan 10 08:39:48 2018 +0200 - db_oracle: fix raw sql queries + core/parser: more strict parsing of sip uri host -commit 92c8c66e5ba1e5036fdc7a6171e013e21964a03b -Author: Ovidiu Sas -Date: Fri Apr 21 11:59:42 2017 -0400 +commit 8f51d6b1624ebca08e71061e0c18c68101595201 +Author: Daniel-Constantin Mierla +Date: Tue Jan 9 10:06:34 2018 +0100 - sqlops: free the result only if there is a result + siptrace: retrieve and use the len of proto when building the address -commit 5613130b8d1e5b75668bcf1635ce43ea9852f2ef +commit aaf3b2e35bf58ad19b2b375f26909b102b7d512f Author: Daniel-Constantin Mierla -Date: Fri Apr 21 16:09:06 2017 +0200 +Date: Tue Jan 9 10:00:31 2018 +0100 - topos: free temporary sip msg structure when handling 100 replies - - - it can lead to memory leak, reported by Sergey Basov + siptrace: siptrace_copy_proto() converted to macro -commit 3b0390ecf01d44942211801bc793864b09f742db -Author: Kamailio Dev -Date: Fri Apr 21 12:01:32 2017 +0200 +commit ed4a2bc477ebaf60d2fa82a3993dd5a61b54d9d3 +Author: Daniel-Constantin Mierla +Date: Mon Jan 8 12:33:57 2018 +0100 - modules: readme files regenerated - drouting ... [skip ci] + siptrace: use safety macros to copy values building address buffers -commit 4e1437aacd03888b1663e2f42e1155efd0ba54fe -Author: Guillaume Bour -Date: Fri Apr 21 11:55:55 2017 +0200 +commit f9b98c647d2de1c279d370a5fb5b49201c117d8a +Author: Daniel-Constantin Mierla +Date: Mon Jan 8 11:34:39 2018 +0100 - drouting: use keepalive to monitor GW/destinations + siptrace: define max size for address buffers - - it works for sort_order 0 only + - use struct types -commit c012031ed7e66a5b684f9174d96a8c5e9e09164b +commit 697c19b016fb1b0f7678716f31462d3f54d60719 Author: Daniel-Constantin Mierla -Date: Thu Apr 20 20:06:33 2017 +0200 +Date: Mon Jan 8 11:33:24 2018 +0100 - Makefile.groups: added app_sqlang to group extra + core: typedefed struct onsend_info to onsend_info_t -commit 037632161767262c3c562d20985ae8c66637f0d8 +commit a41db4b0f56eccb8fb12c3c8257fd677d6c62537 Author: Daniel-Constantin Mierla -Date: Thu Apr 20 20:01:46 2017 +0200 +Date: Mon Jan 8 11:27:34 2018 +0100 - app_sqlang: implemented KSR.x.exit() using context field + core: typedefed struct proxy_l to proxy_l_t -commit 9b7f4bb1c12cc857a62d54da2e3cfb6688d72dd2 -Author: Kamailio Dev -Date: Thu Apr 20 19:01:20 2017 +0200 +commit 26e09730ff8821313f1ee6a6f57669197e353148 +Merge: 74c02fdb1 6a7ea3d48 +Author: Daniel-Constantin Mierla +Date: Mon Jan 8 09:45:17 2018 +0100 - modules: readme files regenerated - app_jsdt ... [skip ci] + Merge pull request #1392 from que273/master + + Minor improvements to RPM packaging -commit 04cc991ffed78c52dda0fc405f2919c1e546a9ce +commit 74c02fdb1cd04d674046c38bc2f5193f91da4edf Author: Daniel-Constantin Mierla -Date: Thu Apr 20 18:51:49 2017 +0200 +Date: Fri Jan 5 09:08:36 2018 +0100 - app_jsdt: documented app_jsdt.api_list rpc command + snmpstats: safety checks on hdr variable -commit 5757f05832d9cb896b1a5da74a11d2465fad8fd2 +commit 5b00ef8bb31fb029b2d4dedae40e2c7a54841fe6 Author: Daniel-Constantin Mierla -Date: Thu Apr 20 18:44:11 2017 +0200 +Date: Fri Jan 5 09:06:07 2018 +0100 - app_sqlang: add -fPIC to compile options of squirrel libs + snmpstats: check the return code when registering statistics -commit 2cab97ec215fe5c52fabe8b417f247de3c857326 -Merge: f06ffc51d 38d4fb46b +commit bab289f36b189a2836ef51acc9e26aed422a7dad Author: Daniel-Constantin Mierla -Date: Thu Apr 20 13:36:12 2017 +0200 +Date: Fri Jan 5 09:04:54 2018 +0100 - Merge pull request #1081 from sergey-vb/topos-fix-02 - - topos: fix incorrect contact in 183 and 200 OK responces + http_client: cast parameter to curl function to avoid warnings -commit 38d4fb46b2bd41d77facc18383bac6a760d8967e -Author: sergey-vb -Date: Thu Apr 20 14:11:15 2017 +0300 +commit 90ee13d21db9a57a9d4a855b857dd152f645500d +Author: Seudin Kasumovic +Date: Thu Jan 4 14:18:34 2018 +0100 - topos: fix incorrect contact in 183 and 200 OK responces - - When using topos, Kamailio does not set correct contact in 183 progres and 200 OK. - But for INVITE and Bye contacts are correct. + erlang: fix missing to free memory used for param specification - This modification seems fix it. - -commit f06ffc51d653448d1712dd9752899ca33ef39db3 -Author: Lucian Balaceanu -Date: Thu Apr 20 13:59:23 2017 +0300 - - carrierroute: fix in check if conf file writable + - ensure to destroy fixup param specification when send erlang message -commit 8ad48d9343c0ca3e3cd8d7afa5dd4f913d1784aa -Author: Daniel-Constantin Mierla -Date: Thu Apr 20 08:20:48 2017 +0200 +commit 6a7ea3d489175659cbfcca4088a8cd26b9352273 +Author: Hugh Waite +Date: Thu Jan 4 21:16:08 2018 +0000 - app_sqlang: new module offering a Kemi interpreter for Squirrel language + pkg/kamailio/obs: Move ims_ocs module to ims RPM - - squirrel language engine is embedded to avoid external dependencies - - squirrel is a small scripting language targeting embedded usage, - compiling the scripts in memory - - the module can reload the script at runtime via rpc command + This module has a dependancy on libkamailio_ims.so so it belongs within + the IMS RPM. -commit f076ed992770d53e7cded5f5d8b7362c92a212be -Author: Daniel-Constantin Mierla -Date: Thu Apr 20 07:54:11 2017 +0200 +commit f06cad16ddd38771f29bfba29161bfa3ec76354f +Author: Hugh Waite +Date: Thu Jan 4 21:01:08 2018 +0000 - Makefile.rules: make clean rules removes static libs from modules + pkg/kamailio/obs: Minor improvements to kamailio.init file + + Use $PROG instead of uninitialised $DESC + Pass the .cfg file name as a parameter when starting and checking config + Use the pidfile when stopping to allow parallel instances -commit c4ae8d5aef5a03ef552fba68dfb1c54dec70ac21 +commit 5097954ce5dbbd1094a022f3ae014c77e389aecb Author: Daniel-Constantin Mierla -Date: Wed Apr 19 17:42:38 2017 +0200 +Date: Thu Jan 4 09:40:54 2018 +0100 - gitignore: skip static lib files (*.a) + rls: pass dbf structure by pointer instead of value to function param -commit bec6357b7e656f80b35c127dd16b3f5e27bdcd21 +commit aad751ab54f37f3482641488929133296974025e Author: Daniel-Constantin Mierla -Date: Wed Apr 19 09:30:46 2017 +0200 +Date: Thu Jan 4 09:39:31 2018 +0100 - xhttp: added section for event route in the docs + presence: pass dbf structure by pointer instead of value to function param + + - passing large values is not optimal -commit 5508e6d6bafc3253f27d9473637233f32508af63 -Author: Kamailio Dev -Date: Wed Apr 19 08:16:41 2017 +0200 +commit 74778f3ac75432d475e9d54dc56f9c3b95c178a5 +Author: Seudin Kasumovic +Date: Wed Jan 3 23:19:22 2018 +0100 - modules: readme files regenerated - rtpproxy ... [skip ci] + erlang: fix restore index of parsed tuple + + Avoid to change origin index while parsing tuple. -commit c13ffc886f4686fcc21ccc7825ef355e0fec6d90 -Merge: bfe2cec39 0df66ff94 -Author: Daniel-Constantin Mierla -Date: Wed Apr 19 08:07:30 2017 +0200 +commit 13c71a14bfe4d2ee650521086bbae9920f95fcaa +Author: Seudin Kasumovic +Date: Wed Jan 3 23:17:16 2018 +0100 - Merge pull request #1076 from mslehto/deadcode + erlang: fix possible memory corruption - core: dead code and ser string removal + Allocate sufficient memory for the terminating null of the string. -commit bfe2cec3951874da8dccba69493922006129da5c -Author: Daniel-Constantin Mierla -Date: Wed Apr 19 08:04:27 2017 +0200 +commit 6542a367638ec5f8a2b62994f8c309e7a2533962 +Author: Seudin Kasumovic +Date: Wed Jan 3 23:12:48 2018 +0100 - rtpproxy: fix docs for rtpproxy_stop_stream2uas() - - - it has no parameters + erlang: fix never used value assigned to a variable -commit b9a37f59cedc81ce2b63dd53f87bd87738969964 -Author: Kamailio Dev -Date: Tue Apr 18 22:01:19 2017 +0200 +commit c061d6688c505544aecfc39a43e8c60d48875790 +Author: Seudin Kasumovic +Date: Wed Jan 3 23:08:23 2018 +0100 - modules: readme files regenerated - acc ... [skip ci] + erlang: fix unreachable code -commit 4a19f63fdee945fbcbc46ab6ebabbf4af67eba7b -Author: Mikko Lehto -Date: Tue Apr 18 21:49:48 2017 +0200 +commit b43609dec2c4089e02b11fd23099ab01b2ebc956 +Author: Seudin Kasumovic +Date: Wed Jan 3 23:04:30 2018 +0100 - modules/acc: add log_level names to examples + erlang: improve error handling + + Ensure check value returned from function and log error. -commit 2842990aef959c1c6208ccf786e8edbc20372c13 -Author: Mikko Lehto -Date: Tue Apr 18 21:51:33 2017 +0200 +commit 3680a1a6ec6971e79deb76daafc89cf2fe206c60 +Author: Seudin Kasumovic +Date: Wed Jan 3 23:00:22 2018 +0100 - modules/acc: fix documentation typos + erlang: fix bad free + + Avoid to free non-pointer, likely causing a crash later. -commit 0df66ff94a9ccef4fe072f8704dc47f4f790cda4 -Author: Mikko Lehto -Date: Tue Apr 18 20:36:54 2017 +0300 +commit 074eda76b3c2cb418832fd4b24436bf7f109b89e +Author: Seudin Kasumovic +Date: Wed Jan 3 22:57:39 2018 +0100 - core: remove dead code + erlang: fix memory leaks + + Ensure free used memory if parse of params failed. -commit 81741d652c751a0abbbb5aa96f98635888ed359a -Author: Daniel-Constantin Mierla -Date: Tue Apr 18 18:54:25 2017 +0200 +commit a379ef730bc129b630325672c9a39aa8c59139b9 +Author: Seudin Kasumovic +Date: Wed Jan 3 22:51:52 2018 +0100 - app_jsdt: updated embedded duktape js interpreter from 2.0.0 to 2.0.2 + erlang: fix use of an uninitialized variable + + Ensure to initialize variable before use. -commit 531627c8c8f07e38577478b88689a24542a50d38 -Merge: 87edc25fd 152504f10 -Author: Daniel-Constantin Mierla -Date: Tue Apr 18 18:48:01 2017 +0200 +commit 53a76a4ae828cf08fbdebe08918706bd7d7d76d2 +Author: Seudin Kasumovic +Date: Wed Jan 3 22:26:09 2018 +0100 - Merge pull request #1063 from grumvalski/t_continue_crash + erlang: fix copy into fixed size buffer of node name - tm: don't reset uac reply if in a continue route + Use length of node name string to avoid write past the end of the + fixed-size destination buffer. -commit 102ef546ee418fcc92eaa8fe16c3a4fd453036c0 -Author: Mikko Lehto -Date: Tue Apr 18 19:27:56 2017 +0300 +commit d1ad603addca7175b97a37c8e981c11c30dc30cf +Author: Daniel-Constantin Mierla +Date: Wed Jan 3 11:34:13 2018 +0100 - core: substitute ser string with NAME macro + core: aliased global param ip_free_bind to ip_nonlocal_bind + + - match better with linux system control option + - removed ip_freebind -commit 87edc25fd458be80ed5cfec21fbe2940a8f9c17f -Author: Vitaliy Aleksandrov -Date: Tue Apr 18 14:27:12 2017 +0200 +commit 42b29a5989671aa1e9383fbf395fa09184a3ae02 +Author: Kamailio Dev +Date: Tue Jan 2 18:31:32 2018 +0100 - ldap: fix memory leak that happens after calling ldap_result_next() - - - GH #1071 + modules: readme files regenerated - acc ... [skip ci] -commit a6525eaf495a529484cf938d802632603310c497 -Merge: d705fe4ce 95153bd37 +commit b7e178b163cdc68487b14a70e36a21c57bbaaa7b Author: Daniel-Constantin Mierla -Date: Tue Apr 18 14:23:30 2017 +0200 +Date: Tue Jan 2 18:22:57 2018 +0100 - Merge pull request #1068 from tmh1999/master - - modules/{acc,cdp}: allows big endian build + acc: docs - removed wrong closing tag for para -commit d705fe4ce0c18e0f97f4c57aaa1e18971787f305 +commit 4b6bb1a59312441714ee765c3aa2f39292f5b612 Author: Kamailio Dev -Date: Tue Apr 18 14:16:42 2017 +0200 +Date: Tue Jan 2 18:16:35 2018 +0100 - modules: readme files regenerated - xhttp ... [skip ci] + modules: readme files regenerated - acc ... [skip ci] -commit f8bd4dcb68a513c525df5d54c4cb6accb1888b88 +commit d425a89e963ccd972b6b8826d5785262f949d863 +Merge: 71f11210b d9913e414 Author: Daniel-Constantin Mierla -Date: Tue Apr 18 14:07:48 2017 +0200 +Date: Tue Jan 2 17:54:39 2018 +0100 - geoip2: exported functions to kemi framework + Merge pull request #1385 from cruzccl/acc-nullable-cdrextra + + acc: Allow nullable cdr extra fields -commit a138f65cd5e4f810d3311891ac01a323a76c4807 +commit 71f11210b6b36cf69aaf3c8318bba9da3334c4e0 Author: Daniel-Constantin Mierla -Date: Tue Apr 18 14:07:27 2017 +0200 +Date: Tue Jan 2 12:22:18 2018 +0100 - geoip: exported functions to kemi framework + core: print more details about process when doing child init -commit 39d23767a0b86c385b1ab02d6d8523840796ff76 +commit 5c4309e47b0f66c3c4a98145a956bfe0b2ce0953 Author: Daniel-Constantin Mierla -Date: Tue Apr 18 14:06:58 2017 +0200 +Date: Tue Jan 2 12:09:56 2018 +0100 - rtpengine: exported more functions to kemi framework + core: pt - helper function to get description for current process -commit 6ce0b3dbc36418c5daa93c366c0402f4a40f3f36 +commit 571c9993bb42a1c22a575874f186cfef06af19e8 Author: Daniel-Constantin Mierla -Date: Mon Apr 17 08:37:01 2017 +0200 +Date: Tue Jan 2 10:51:28 2018 +0100 - rtpproxy: exported functions to kemi framework + mohqueue: handle return code for pv_parse_format() -commit bb8d0ac4900f72c6c77a45f3e60f775f7a131de9 +commit 741d39251468429788846c8386f445eeede2f7ba Author: Daniel-Constantin Mierla -Date: Mon Apr 17 08:21:16 2017 +0200 +Date: Mon Jan 1 14:50:18 2018 +0100 - textops: exported several functions to kemi framework + auth_identity: use app name to set curl user agent -commit 450c9eb23e248c9dcd32a4a398f4585719c5bcd5 +commit 1f5ba1a5ac2f652cd3a374200411767286803f9f Author: Daniel-Constantin Mierla -Date: Mon Apr 17 08:15:36 2017 +0200 +Date: Mon Jan 1 13:39:58 2018 +0100 - xhttp: documented event_callback parameter + xcap_client: cast curl setopt params to avoid analyzer warnings -commit 1a38dd7be8bdee8bebe2420b46b9be82c1e52927 +commit 2865a1f16490cadb1c07864f270976d7311373a9 Author: Daniel-Constantin Mierla -Date: Mon Apr 17 08:14:08 2017 +0200 +Date: Sun Dec 31 10:52:05 2017 +0100 - dialog: exported profile functions to kemi framework + websocket: print len in debug messages when decoding frame -commit 7b190e644c4b1c18055ededa7f4b5d5f2c1b6ca1 +commit fa7688bb321bbee3d8d6d6c5692c0d142c0830a3 Author: Daniel-Constantin Mierla -Date: Mon Apr 17 08:12:34 2017 +0200 +Date: Sun Dec 31 10:47:16 2017 +0100 - xhttp: allow execution of callback function for event route via kemi - - - new parameter event_callback + websocket: clang format the code -commit 06ba0b3c77d4747686e58c0083eb318a579798cf +commit 3302687e2b995ee9faab1655e6bb5e5d4a0dbc87 Author: Daniel-Constantin Mierla -Date: Sun Apr 16 09:48:40 2017 +0200 +Date: Sun Dec 31 10:39:16 2017 +0100 - xhttp: added section ids + websocket: early check for frame size to fit max buf size + + - avoid decoding a large buffer and then fail + - allocate BUF_SIZE+1 for fragment buffer, coherent with other recv + buffers -commit ba64899e3c8dce9c683a6c5d0c836add080a7eb9 +commit 20752cf945d4ba0660d321d73efff5c93f6d20a8 Author: Daniel-Constantin Mierla -Date: Sun Apr 16 09:43:38 2017 +0200 +Date: Sat Dec 30 16:57:42 2017 +0100 - textopsx: exported several functions to kemi framework + core: resolve - early safety checks to deal faster with broken dns responses -commit 64adb2926420b292e1fe180172e766560b11d042 +commit 539abf29103875f7412b7b3b95c5f6663a7afbe8 Author: Daniel-Constantin Mierla -Date: Sun Apr 16 09:42:18 2017 +0200 +Date: Fri Dec 29 11:18:04 2017 +0100 - websocket: exported functions to kemi framework + jsonrpcc: init sockaddr_in structure -commit b36d012ef844bc2226656177776eacca3adf7bae +commit dba589a52bddc2833c41c91287a328d22fbc2712 Author: Daniel-Constantin Mierla -Date: Sat Apr 15 08:45:10 2017 +0200 +Date: Fri Dec 29 11:17:25 2017 +0100 - dialog: exported dlg_get() to kemi interface + janssonrpcc: use size of data type to allocate memory -commit 8960972b2ad5d460ed494b24a3bba1cb118e8b1f +commit b46d113e941c5429914069be48faa181ba1e805e Author: Daniel-Constantin Mierla -Date: Sat Apr 15 08:21:55 2017 +0200 +Date: Fri Dec 29 11:14:56 2017 +0100 - htable: exported iterator functions to kemi framework + core: resolve - use unsigned short int to match dns result types -commit 60e2777358fb7ea0a8eef0be2d5c4fb07f7e4acd +commit eb016670220c20f1156be838ca6645265b64eacc Author: Daniel-Constantin Mierla -Date: Sat Apr 15 08:21:23 2017 +0200 +Date: Thu Dec 28 17:05:22 2017 +0100 - xhttp: exported http reply function to kemi framework + dialog: replaced inline function with a single log with a macro + + - makes possible to get the file name and line of its usage -commit 90e44290889cd00e0b2edd566d923b8eecdf5437 +commit 4d4c91a709aff0b9b15fcc02b44de2106e65903e Author: Daniel-Constantin Mierla -Date: Sat Apr 15 08:19:55 2017 +0200 +Date: Wed Dec 27 09:18:46 2017 +0100 - corex: exported append_branch() to kemi framework + snmpstats: free allocated vars in case of error during init snmp tables -commit 7e693ac32ceae7bcc34d6359043d6d9963933d4f -Author: lazedo -Date: Mon Apr 17 18:08:42 2017 +0100 +commit 172cfd3494db462593da2d04feb6528f9ad3a84c +Author: Daniel-Constantin Mierla +Date: Tue Dec 26 09:52:33 2017 +0100 - kazoo: add alternative name for sender + snmpstats: free table_info in case of error for SIPStatusCodesTable -commit 1ca77084e075bd78bc0603e838a268e470480a17 -Author: lazedo -Date: Mon Apr 17 14:28:44 2017 +0100 +commit 0b7b291ab153472c7d371c29e0c4dfa20c492f08 +Author: Daniel-Constantin Mierla +Date: Mon Dec 25 21:51:05 2017 +0100 - kazoo: call cfg_update on child init + snmpstats: init sigaction var and close fd in case of errors -commit 0052367550d02927ce844da3b8e27039faac6beb -Merge: 91a81625f dbd57c3ea -Author: Alexandr Dubovikov -Date: Sun Apr 16 18:49:38 2017 +0200 +commit 7c61d3f82bd0779a530f921bd69cd4b1b32e4e05 +Author: Victor Seva +Date: Fri Dec 22 18:08:17 2017 +0100 - Merge pull request #1073 from btriller/fix-hep3-capture-id + http_async_client: fix initialization of tls_client_* and tls_ca_path module parameters - sipcapture: fix HEP3 capture-id >= 2^16 - -commit dbd57c3eac30e1de54d98eb2ba8f608a17f7adbf -Author: Bastian Triller -Date: Sun Apr 16 13:36:44 2017 +0200 - - sipcapture: fix HEP3 capture-id >= 2^16 + fixes #1340 -commit 91a81625f89da38e5890f3b3c84ed4141eb3652c -Author: Juha Heinanen -Date: Sat Apr 15 17:39:39 2017 +0300 +commit 98a993661cd4fbb574844fbfb012a052cc8e6989 +Author: Daniel-Constantin Mierla +Date: Sun Dec 24 08:53:21 2017 +0100 - srdb1/schema: made 'domain_attrs_domain_attrs_idx' index not unique - and removed 'value' field from the index - - generated sql files from schema + topos_redis: store and load local side contacts for branch -commit cc7adf798c1f533e77dfab94563d7995094aa4c5 -Author: lazedo -Date: Fri Apr 14 16:58:48 2017 +0100 +commit 914e56b4bdb553234eaa9a0025e1cdf0c84001b6 +Author: Daniel-Constantin Mierla +Date: Sun Dec 24 08:50:51 2017 +0100 - kazoo: add time msg was received + topos: update contact only for INVTE requests within dialog -commit c86b882087b6fa9b45f70715c4178178a0086804 +commit dd1872fb5f876fc004c320a1daba55a5ce6f3dc2 Author: Daniel-Constantin Mierla -Date: Fri Apr 14 17:50:14 2017 +0200 +Date: Sat Dec 23 19:42:36 2017 +0100 - kex: exported setdebug() and resetdebug() to kemi framework + topos: sotre and load local side contacts in branch record + + - recover them on retransmissions, otherwise no contact header is added + on initial request routing + - reported by GH #1356 -commit f5c3d50d94ef92dfc82fdbbdf301ce5e79091c38 -Author: Daniel-Constantin Mierla -Date: Fri Apr 14 09:06:39 2017 +0200 +commit d9913e414b7f611c07edb4c45f1ecc6dc880b2fa +Author: Carlos Cruz +Date: Fri Dec 22 17:29:12 2017 +0100 - jsonrpcs: exported jsonrpc_exec() to kemi framework + acc: Allow nullable cdr extra fields - - available as jsonrpcs.exec() + - allow custom cdr fields defined with cdr_extra modparam to be saved + as null. Before this change, cdr_extra variables not defined in config + operation (or set to $null) were saved as empty string (''). This commit makes + possible to save them as NULL value. + + - new modparam to make this behaviour configurable: cdr_extra_nullable. + Set it to 1 to enable this new behaviour (default value: 0) -commit 8ed581436a9e9aecadac620b9f6dbc8f773d5899 +commit 52111974b4571e0562e8e731df80f48dbc504915 Author: Daniel-Constantin Mierla -Date: Thu Apr 13 19:45:11 2017 +0200 +Date: Fri Dec 22 16:54:50 2017 +0100 - alias_db: exported alias_db_lookup(...) to kemi framework + tm: handle success return code by forward_request() for e2e ACK + + - forward_request() returns 0 on success, propagate 1 to config wrapper -commit 29aec6800099a3b1d7a2b2c7e6d4b3865f0bc6e6 -Author: lazedo -Date: Fri Apr 14 05:47:52 2017 +0100 +commit 05509f322d5b4ce23b6e5918f4d6bc4e48678202 +Author: Daniel-Constantin Mierla +Date: Fri Dec 22 16:54:29 2017 +0100 - kazoo: add consistent worker key + core: forward - add note about return code of forward_request() -commit d511399baa6a701fa0303487174a7bdc996fd051 -Author: lazedo -Date: Fri Apr 14 04:54:57 2017 +0100 +commit 1a1605e3b202a96499cb132b984b76aaa649c7f6 +Merge: 3a2ee9280 02723aa42 +Author: Daniel-Constantin Mierla +Date: Fri Dec 22 15:11:46 2017 +0100 - kazoo: add more explicit fields to kz_pua + Merge pull request #1384 from kamailio/app_lua_luajit - kz_pua.c was reformatted - -commit 349def6b129e63cdc46b88c502562c9e2543d421 -Author: lazedo -Date: Fri Apr 14 04:38:30 2017 +0100 - - kazoo: add pua transaction lock type + app_lua: LUAJIT variable to build agains LuaJIT compiler -commit 3cdcb8ae3783d7221d212df00769b495f88c740b -Author: Lucian Balaceanu -Date: Thu Apr 13 14:48:29 2017 +0300 +commit 02723aa42871eb35c86361666ec9f1f6362c228e +Author: Vicente Hernando +Date: Fri Dec 22 15:02:15 2017 +0100 - p_usrloc: fix to update expires column when db_ops_ruid set + app_lua: README update -commit 0efa0994519428c415c0cf16266b6bfc8345b67c -Author: Daniel-Constantin Mierla -Date: Thu Apr 13 09:27:13 2017 +0200 +commit 55e3b72692d500a988b085c73fefa87e91ff068b +Author: Vicente Hernando +Date: Fri Dec 22 15:01:35 2017 +0100 - speeddial: exported functions to kemi framework + app_lua: update doc about LUAJIT variable and building against LuaJIT libraries. -commit 911a051b9573d43e01bc627692d99f548f9fc344 -Author: Daniel-Constantin Mierla -Date: Thu Apr 13 09:00:11 2017 +0200 +commit 41ff35e2ec3f735f818c19cec6697c913dc1a0f7 +Author: Vicente Hernando +Date: Fri Dec 22 12:11:45 2017 +0100 - speeddial: coherent indentation + app_lua: LUAJIT variable to build agains LuaJIT compiler -commit 27ecfa5fd8557a65e18c36b8388b7f176213c77b +commit 3a2ee9280fa8cde3b45d3e5631267287ba0b74ac Author: Kamailio Dev -Date: Wed Apr 12 21:31:23 2017 +0200 +Date: Fri Dec 22 09:17:08 2017 +0100 - modules: readme files regenerated - evrexec ... [skip ci] + modules: readme files regenerated - sctp ... [skip ci] -commit a26a65efe5b18ad471a9c5d5fe1a047ade2bda65 +commit ed5a3b04c79fbe071900d53a207c14a379679092 Author: Daniel-Constantin Mierla -Date: Wed Apr 12 21:15:30 2017 +0200 +Date: Fri Dec 22 09:01:06 2017 +0100 - evrexec: notes about usage of modules with KEMI scripts + sctp: clang format the code -commit d6a91a42bc722f51b975241b098c62e2010f0c10 +commit 12f313c6c7c9b6a9c12d8ee2693cb955c16afe35 Author: Daniel-Constantin Mierla -Date: Wed Apr 12 20:25:54 2017 +0200 +Date: Fri Dec 22 08:55:51 2017 +0100 - evrexec: support to execute functions from kemi embedded language + sctp: note about using recent versions for libsctp and kernel -commit 419275a588d0f655d98ac80591cbd8756803b8ee +commit b8fb6f9f453a7ab72ea578e8469ae88a831ca0e9 Author: Daniel-Constantin Mierla -Date: Wed Apr 12 10:01:57 2017 +0200 +Date: Fri Dec 22 08:49:36 2017 +0100 - evrexec: new module to execute an event route at startup in a dedicated process + sctp: removed risky workaround for dealing with old libksctp versions + + - writing over the size of field may have unexpected results -commit 8a08d42f028a8e12dc380c964dc008d211d5424b -Author: Kamailio Dev -Date: Tue Apr 11 20:16:19 2017 +0200 +commit 81687628bc5fb90a6b126cd2b89c8725a4c3caab +Author: Daniel-Constantin Mierla +Date: Thu Dec 21 17:07:15 2017 +0100 - modules: readme files regenerated - rtimer ... [skip ci] + evapi: detect the OS darwin as substring + + - adjust condition to suit analyzer -commit c3c110e8a8519f6521678b5d9e0ec497b07883c4 -Author: Mikko Lehto -Date: Tue Apr 11 21:17:46 2017 +0300 +commit 655db30d904275cf60c625323b38f2982746679e +Author: Bastian Triller +Date: Thu Dec 21 15:28:36 2017 +0100 - modules/rtimer: fix pseudo variable typo in example [skip ci] + pkg/kamailio/deb: fix module names in pkg description + + fix module names in description of package kamailio-extra-modules -commit 95153bd37df81d08b8c02cc892d019817ec05644 -Author: Tuan M. Hoang -Date: Tue Apr 11 13:08:51 2017 -0400 +commit ef28b61db70d32036ae6fdce72de7f8de94d3370 +Author: Daniel-Constantin Mierla +Date: Wed Dec 20 19:42:10 2017 +0100 - modules/{acc,cdp}: allows big endian build + core: tcp - pass updated recv info to receive_msg() inside hep3_process_msg() + + - based on GH #1379 + - credits for troubleshooting and initial patch submission to + Amit Zigelman -commit b433f901a6dfce7e8a5358f5a6b563e2885907c2 -Author: Kamailio Dev -Date: Tue Apr 11 17:46:23 2017 +0200 +commit f170b300857510e91c7a78454be45b68326fc7b3 +Author: Daniel-Constantin Mierla +Date: Wed Dec 20 13:56:25 2017 +0100 - modules: readme files regenerated - nathelper ... [skip ci] + phonenum: Makefile rules to remove cpp object file -commit 315be997e8e6d3466d5d1d89b155566dab6168d5 -Merge: 5cd813c32 5a346f9ac +commit e101f21c37238862a474c50218d11a475d121ee0 +Merge: 37f6e1e76 e66f109c0 Author: Daniel-Constantin Mierla -Date: Tue Apr 11 17:34:48 2017 +0200 +Date: Wed Dec 20 12:32:45 2017 +0100 - Merge pull request #1067 from mslehto/filter_server_id + Merge pull request #1377 from snen/pv_sbranch_params_fix - modules/nathelper: add undocumented filter_server_id + pv: correct sbranch params appending -commit 5cd813c32b0bf02471ebe17d098ca2b42f56b748 -Author: Daniel-Constantin Mierla -Date: Tue Apr 11 17:33:00 2017 +0200 +commit e66f109c0d2cf657387ee1e0745ff2d55eebcaaa +Author: Dmitri Savolainen +Date: Wed Dec 20 13:07:35 2017 +0300 - app_jsdt: exported functions to kemi framework + pv: correct sbranch params appending + + - some params (like dest uri) were not appended to branch + due to a copy-paste typo -commit 5a346f9ac423e3e1e62c3e979bd5c5594ce277b5 -Author: Mikko Lehto -Date: Tue Apr 11 18:29:03 2017 +0300 +commit 37f6e1e7640b29263e85be9e8958ee14912e20a1 +Author: Daniel-Constantin Mierla +Date: Wed Dec 20 09:36:54 2017 +0100 - modules/nathelper: add undocumented filter_server_id [skip ci] + call_control: keep reference to allocated buffer used for params -commit 255acf8c981dbe440b520163e44cadf7af8f11ae +commit db0b73b0c69014aa0dee41a78d07800812c10746 Author: Daniel-Constantin Mierla -Date: Tue Apr 11 17:12:08 2017 +0200 +Date: Tue Dec 19 12:04:29 2017 +0100 - app_python: exported functions to kemi framework + snmpstats: clang format the code -commit f5e30811c263ec4d39ad3cd46035968fad2734f2 +commit 8bc890f595005090479cad1670b4360817f307af Author: Daniel-Constantin Mierla -Date: Tue Apr 11 17:03:31 2017 +0200 +Date: Tue Dec 19 11:20:30 2017 +0100 - app_lua: export functions to kemi framework + snmpstats: keep sockets list pointer global + + - they are allocated and content could be referenced at runtime, thus no + free + - free allocated variables in case of errors -commit ff1bcdb4c451a4007ec2067d5943fc6f6e7f3670 -Author: Kamailio Dev -Date: Tue Apr 11 15:48:48 2017 +0200 +commit bbedfa4c3db1b8ae02cabb1fa6b2748b7031c8e8 +Author: Daniel-Constantin Mierla +Date: Tue Dec 19 11:05:45 2017 +0100 - modules: readme files regenerated - acc ... [skip ci] + db_berkeley: clang-format the code -commit 2e089367f42a7d919ad5e59071f9e713a76425d9 +commit 441acf646fa9cf2fd1733f05397a43245b98d322 Author: Daniel-Constantin Mierla -Date: Tue Apr 11 15:44:24 2017 +0200 +Date: Tue Dec 19 10:06:59 2017 +0100 - doc: entities updated to use lists.kamailio.org - - - http replaced with https in entity urls + app_java: fix writing over the size of allocated buffer -commit dd3a55d190cf00066cb23a13d9c81827f1da14cd +commit fddc58b97796904a17bb2d01f4480e095a5c4cda Author: Daniel-Constantin Mierla -Date: Tue Apr 11 15:26:20 2017 +0200 +Date: Tue Dec 19 10:02:42 2017 +0100 - README: updated the addresses to sr-dev and sr-users mailing lists + app_java: clang format the code -commit a2fe77bcce3c9c1f926ca1767f2ea8e25ed4fe75 +commit c828cf872fe629381a8c9be24058d63add881071 Author: Daniel-Constantin Mierla -Date: Tue Apr 11 15:24:32 2017 +0200 +Date: Tue Dec 19 09:58:57 2017 +0100 - kamilio.cfg: updated the address of sr-users mailing list + app_java: global variables declared in c files + + - some renamed to avoid global reference conflicts due to common naming -commit 13c2300f736c74faa6b4557f6146e0b7de9f89da +commit 93606c35ffdcd55ab98c5704880a6d5375aae299 Author: Daniel-Constantin Mierla -Date: Mon Apr 10 17:20:38 2017 +0200 +Date: Tue Dec 19 09:04:13 2017 +0100 - mqueue: exported functions to kemi framework + app_java: declare global variable in c file instead of header file -commit dbd78eb8a9f222d8cd6fbcd800552e51d3afaa7c -Author: Daniel-Constantin Mierla -Date: Mon Apr 10 17:04:58 2017 +0200 +commit 2c5c25b77c086ffe925820ed281f91d0549aee9e +Author: Victor Seva +Date: Mon Dec 18 16:43:02 2017 +0100 - tls: update log messages macros + cfgt: use snprintf to simplify _cfgt_get_filename() + + > CID 153754 (#1 of 1): Buffer not null terminated (BUFFER_SIZE) + > 6. buffer_size: Calling strncpy with a source string whose length (1 chars) is + > greater than or equal to the size argument (1) will fail to null-terminate + > dest->s + i. -commit bd6e0a2976be8a6e23ec9145d58e448b7a0579e7 +commit 38dc4dc10e63cb6c94d2cca30bae2a669114404a Author: Daniel-Constantin Mierla -Date: Mon Apr 10 15:17:07 2017 +0200 +Date: Sat Dec 16 12:20:26 2017 +0100 - dialog: exported more functions to kemi framework + app_sqlang: set architecture flags for squirrel interpreter + + - reported by GH #1372 -commit 617a9cfe72ac613606990a93af648bd12b1fc2d0 +commit 5d7afd226bd4834643e78c611a64c346c98cd2ec Author: Kamailio Dev -Date: Mon Apr 10 14:01:21 2017 +0200 +Date: Sat Dec 16 10:02:09 2017 +0100 - modules: readme files regenerated - dialog ... [skip ci] + modules: readme files regenerated - acc ... [skip ci] -commit 6b9e63f4e1948b53ce2b986c495085e34dc83165 +commit 55e4ead882349d503e64de64dcb9321cc6ab8a20 +Merge: c32c6f34e 63f747a9a Author: Daniel-Constantin Mierla -Date: Mon Apr 10 13:51:38 2017 +0200 +Date: Sat Dec 16 09:46:21 2017 +0100 - dialog: clarification for dlg_bye() parameters in docs + Merge pull request #1368 from cruzccl/acc-cdrs-in-utc + + acc: use acc.time_mode to save cdrs in gmtime -commit 61f8b9b4f6e4c26cd62480f5d9a4d9ca1b95a844 -Author: Kamailio Dev -Date: Mon Apr 10 13:16:34 2017 +0200 +commit c32c6f34e2ee2d8703587739705eb3275852474b +Author: Victor Seva +Date: Fri Dec 15 12:51:03 2017 +0100 - modules: readme files regenerated - ctl ... [skip ci] + cfgt: be more verbose on disk errors + + based on https://github.com/sipwise/kamailio/commit/7157ca348cebb4534634459cd1e61e924eb4faf8 + by Andreas Granig -commit f824eca0b56b7ad2a32b7c2269b064a637588f1d -Merge: 22e33ba64 0a9030a7a -Author: Daniel-Constantin Mierla -Date: Mon Apr 10 13:09:45 2017 +0200 +commit 63f747a9adcba51562b7ec6848d1f6454374bfa4 +Author: Carlos Cruz +Date: Thu Dec 14 16:33:04 2017 +0100 - Merge pull request #1064 from kamailio/ctl-buffer-size-param + acc: use acc.time_mode to save cdrs in gmtime + + - reuse acc.time_mode modparam for cdr entries, storing start_time and + end_time in gmtime if time_mode is 4. - ctl : add rpc buffer_size param + GH #1358 -commit 22e33ba64c3aad3b50e9ba649c5fa736462a30b4 -Author: lazedo -Date: Sun Apr 9 06:39:44 2017 +0100 +commit 49dd734c241be1531bf11bb5d1b3f4a658b35031 +Author: Carlos Cruz +Date: Thu Dec 14 17:52:26 2017 +0100 - kazoo: fix connection to root vhost + doc: time_mode param used for cdrs too -commit 2ceb44f5b57f465b97f45a67183e9caf52610364 -Author: lazedo -Date: Sun Apr 9 03:10:49 2017 +0100 +commit b579d64ffe010cd782aad03cb72d1bdec6b5dd17 +Author: Kamailio Dev +Date: Fri Dec 15 12:16:37 2017 +0100 - kazoo: parse json with amqp specified bytes + modules: readme files regenerated - usrloc ... [skip ci] -commit cb92c2b176dc55fb03cab172c63b115267d1bac9 -Author: lazedo -Date: Sat Apr 8 23:28:44 2017 +0100 +commit b933b2a7bf631b157bf81b86afffe6b8a43a0308 +Author: Oyvind Kolbu +Date: Fri Dec 15 12:11:04 2017 +0100 - kazoo: create empty routing if not provided + usrloc: partion column name can be set via modparam -commit 525c64463970841e7f1b8ef9778306007d4ca99d -Author: lazedo -Date: Sat Apr 8 23:27:49 2017 +0100 +commit d53920e13426e9c3daacaecd22921022f1e216f3 +Author: Victor Seva +Date: Fri Dec 15 11:16:11 2017 +0100 + + db_mongodb: fix deprecation warning + + Since 1.5.0 mongoc_collection_find() is deprecated + > http://mongoc.org/libmongoc/1.5.0/mongoc_collection_find.html + +commit 2b2febf921a40d744536404ac4402b146df2c1d6 +Author: Victor Seva +Date: Fri Dec 15 10:50:58 2017 +0100 + + xmpp: fix gcc 7 warnings + + > CC (gcc) [M xmpp.so] xode.o + > xode.c: In function 'xode_get_tag': + > xode.c:346:77: warning: comparison between pointer and zero character constant [-Wpointer-compare] + > if(parent == NULL || parent->firstchild == NULL || name == NULL || name == '\0') return NULL; + > ^~ + > xode.c:346:72: note: did you mean to dereference the pointer? + > if(parent == NULL || parent->firstchild == NULL || name == NULL || name == '\0') return NULL; + > ^ + > CC (gcc) [M xmpp.so] xstream.o + > xstream.c: In function '_xode_put_expatattribs': + > xstream.c:34:20: warning: comparison between pointer and zero character constant [-Wpointer-compare] + > while (atts[i] != '\0') + > ^~ + > xstream.c:34:12: note: did you mean to dereference the pointer? + > while (atts[i] != '\0') + > ^ + > CC (gcc) [M xmpp.so] xode_from.o + > xode_from.c: In function '_xode_put_expatattribs': + > xode_from.c:35:20: warning: comparison between pointer and zero character constant [-Wpointer-compare] + > while (atts[i] != '\0') + > ^~ + > xode_from.c:35:12: note: did you mean to dereference the pointer? + > while (atts[i] != '\0') + > ^ + +commit 7e047f0f2a9dd3432c293096fba0a07af93674f3 +Author: Victor Seva +Date: Fri Dec 15 10:44:26 2017 +0100 - db_text: fix table length allocation in raw query + auth_radius: fix gcc 7 warning + + > CC (gcc) [M auth_radius.so] sterman.o + > sterman.c: In function 'extract_avp': + > sterman.c:78:61: warning: comparison between pointer and zero character constant [-Wpointer-compare] + > if(!q && p == vp->strvalue && vp->strvalue + sizeof(char) != '\0') { + > ^~ + > sterman.c:78:33: note: did you mean to dereference the pointer? + > if(!q && p == vp->strvalue && vp->strvalue + sizeof(char) != '\0') { + > ^ -commit e36f607d44a53969c4dc469f7c940ed861419ca1 -Author: Juha Heinanen -Date: Sat Apr 8 15:25:07 2017 +0300 +commit 2f31e4b426d8b98b07b5a816a67326d62f827d3c +Author: Victor Seva +Date: Fri Dec 15 10:35:55 2017 +0100 - modules/registrar: removed extra empty line + uac: fix gcc 7 warning + + > CC (gcc) [M uac.so] uac_reg.o + > uac_reg.c: In function 'reg_ht_add': + > uac_reg.c:558:81: warning: ?: using integer constants in boolean context [-Wint-in-bool-context] + > uac_reg.c:502:13: + > p = p + ((bsize)?(bsize):(dst)->len) + 1; \ + > ~~~~~~~ + > uac_reg.c:558:81: + > reg_copy_shm(&nr->callid, &str_empty, reg_keep_callid ? UAC_REG_TM_CALLID_SIZE : 0); + > uac_reg.c:502:14: note: in definition of macro 'reg_copy_shm' + > p = p + ((bsize)?(bsize):(dst)->len) + 1; \ + > ^~~~~ -commit ac2572b880c5373864a55ebe1b9e538dd9337e63 -Author: Juha Heinanen -Date: Sat Apr 8 15:22:54 2017 +0300 +commit 76868e6dd437769305d3425077d60594f62e10c5 +Author: Victor Seva +Date: Fri Dec 15 10:14:35 2017 +0100 - modules/registrar: apply method_filtering only on initial requests w/o to-tag + sms: fix gcc 7 warning #1369 + + > CC (gcc) [M sms.so] libsms_modem.o + > libsms_modem.c: In function 'initmodem': + > libsms_modem.c:230:36: warning: '%s' directive writing up to 128 bytes into a region of size 91 [-Wformat-overflow=] + > clen=sprintf(command,"AT+CPIN=\"%s\"\r",mdm->pin); + > ^~ + > libsms_modem.c:230:8: note: 'sprintf' output between 12 and 140 bytes into a destination of size 100 + > clen=sprintf(command,"AT+CPIN=\"%s\"\r",mdm->pin); + > ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -commit 49fd44603d9706be1b2e3862f09d10a52581d312 -Author: Luis Azedo -Date: Sat Apr 8 13:16:48 2017 +0100 +commit 9a262f816261fdaf371fbfd34b6460b6221df9ef +Author: Victor Seva +Date: Thu Dec 14 20:39:21 2017 +0100 - db_text: fix indentation + travis-ci: enable parallel builds on stretch and sid based images -commit 3433e386a8ed1e9feef7b05a454d8989a45c1782 -Author: Luis Azedo -Date: Sat Apr 8 13:08:38 2017 +0100 +commit 28f107d0eb48c59f0b89dbd9fc0fa24c599ed5f9 +Author: Daniel-Constantin Mierla +Date: Thu Dec 14 14:55:27 2017 +0100 - db_text: fix table length in raw delete + kamctl: use VERIFY_USER variable to control if user check is done + + - help automating some commands such as acl grant -commit 0a9030a7a5a3a288c1080feada1b4b5af41e9518 -Author: lazedo -Date: Fri Feb 10 13:53:15 2017 +0000 +commit 49a12679ffa20ccef4d9cc14c426d4d5c2567816 +Author: Daniel-Constantin Mierla +Date: Thu Dec 14 14:05:39 2017 +0100 - ctl : add rpc buffer_size param + core: events - fix getting str pointer for EXTRA_DEBUG log message + + - reported by GH #1367 -commit 152504f108d39ae33c845f7e74a889411868033d -Author: grumvalski -Date: Fri Apr 7 23:18:48 2017 +0200 +commit a1cf1aa3861aeecca8c06e284fe90c4acc71fe08 +Author: Vasiliy Ganchev +Date: Thu Dec 14 15:04:07 2017 +0200 - tm: don't reset uac reply if in a continue route + usrloc: extend handle_lost_tcp use for get_urecord (#1366) + + * usrloc: extend handle_lost_tcp use for get_urecord + + * usrloc: extend handle_lost_tcp, do not use inline functions -commit 8e037f623ae6daf58e092d8a41430fd13d1d38ec -Author: Juha Heinanen -Date: Sat Apr 8 10:31:23 2017 +0300 +commit cea7270c7607bb9ca58667f6322f20629e5d2338 +Author: Victor Seva +Date: Thu Dec 14 13:08:02 2017 +0100 - modules/siputils: made tel2sip to return 2 if no conversion was needed + pkg/kamailio/deb: version set to 5.2.0~dev2 -commit 8bfabb975a59e43bf5a18fde0b0ab2b2feef94f6 -Author: lazedo -Date: Fri Apr 7 15:06:32 2017 +0000 +commit d82733e4974250648a367a247d66f621ca042777 +Author: Daniel-Constantin Mierla +Date: Thu Dec 14 09:07:15 2017 +0100 - kazoo: add exchange bindings + Makefile.defs: version set to 5.2.0-dev2 -commit 6aa2b91b581d7e0f138a9a19f61d848caeb61a19 +commit f4a1a9b3b79a0437bc2fa5e68fc82d1415af1a5e Author: Daniel-Constantin Mierla -Date: Fri Apr 7 17:05:44 2017 +0200 +Date: Thu Dec 14 08:23:13 2017 +0100 - core: use buffers instead of static empty string + group: use proper variable to get the domain - - if code tries to write in, results in a crash - - reported by Juha Heinanen + - mode debug messages + - closes GH #1363 -commit cdd7bc29a900d787b8d99f7296306f99c53a5e29 -Author: Daniel-Constantin Mierla -Date: Fri Apr 7 17:05:27 2017 +0200 +commit 553d9265173ba6ad674afee4ccc4c872daee5d39 +Author: Victor Seva +Date: Wed Dec 13 11:49:34 2017 +0100 - pv: renamed empty buf variable + pkg/kamailio/deb: dictionary.kamailio was on kamailio package before 5.1 + + > Unpacking kamailio-radius-modules:amd64 (5.2.0~dev1+0~20171213010255.996+stretch) over (4.4.4-2) ... + > dpkg: error processing archive /tmp/apt-dpkg-install-nbxn3s/056-kamailio-radius-modules_5.2.0~dev1+0~20171213010255.996+stretch_amd64.deb (--unpack): + > trying to overwrite '/etc/kamailio/dictionary.kamailio', which is also in package kamailio 4.4.4-2 -commit 1e37b31f8a28ccc6f44eaf75e5f02e836df20411 -Author: Daniel-Constantin Mierla -Date: Fri Apr 7 15:37:07 2017 +0200 +commit 422e95abb49514b9a65e6a4d7735a6a9470b8f2b +Merge: 5e48ff6bd 790f7a329 +Author: ng-voice GmbH +Date: Tue Dec 12 13:01:38 2017 +0100 - pv: declare the pv_empty as buffer with size + Merge pull request #1360 from tdimitrov/ipsec - - otherwise it can crash when code tries to write in it, if pointing to - static empty string - - reported by Juha Heinanen + ims_registar_pcscf: security_t parameters should be allocated on shared memory -commit 60aa7ec193950249a1610a943b767421e310fb10 +commit 5e48ff6bda4cf23bbd62cdbf15146d0d8fe63c97 Author: Kamailio Dev -Date: Fri Apr 7 11:16:43 2017 +0200 - - modules: readme files regenerated - sdpops ... [skip ci] - -commit 8a38f369b01a642b92704cc0e6efeb6e108f8a02 -Author: Carsten Bock -Date: Fri Apr 7 11:09:14 2017 +0200 +Date: Tue Dec 12 10:16:37 2017 +0100 - sdpops: Add note about sdp_remove_media() and RFC compliance + modules: readme files regenerated - pua_rpc ... [skip ci] -commit e444f6f821dcbd56e58442f9ee1b970feb52395f +commit e2b956378e375ad66f63a9b91fc94b96713809fa Author: Daniel-Constantin Mierla -Date: Thu Apr 6 22:20:00 2017 +0200 +Date: Tue Dec 12 10:01:55 2017 +0100 - tmx: new vars - $T(id_index_n) and $T(id_label_n) - - - similar to $T(id_index) and $T(id_label), but if transaction doesn't - exit yet, it is created + pua_rpc: documentation for pua.send_publish rpc command -commit 196537b0a226ed8da690d40a0f9526b6fb2a443e +commit c291dc1a0e965b664aacb994ac08fbc7f20bcaec Author: Daniel-Constantin Mierla -Date: Thu Apr 6 21:57:17 2017 +0200 +Date: Tue Dec 12 09:58:44 2017 +0100 - dialog: exported dlg_manage() to kemi + pua_rpc: added pua.send_publish rpc command + + - send a PUBLISH request without waiting for response -commit 491d9cbae477c7b12bf768abadf7169fd25e2262 +commit 4d28f007d71d6b49486483ddc4b5307ea36506d5 Author: Daniel-Constantin Mierla -Date: Thu Apr 6 21:16:35 2017 +0200 - - evapi: export non-async functions to kemi - -commit 7cb707d67205092ed928f575dda1876ddf25200e -Author: Julien Chavanton -Date: Wed Apr 5 15:10:47 2017 -0700 +Date: Tue Dec 12 09:49:04 2017 +0100 - dmq_usrloc: param batch_max_msg_size + pua_rpc: use RPC flags for callbacks -commit e4a11d715e3d4e47aa82b7e8e358000948e26c4c +commit 5c7bc8a3c1a289111c08334cc4500291f01324aa Author: Daniel-Constantin Mierla -Date: Thu Apr 6 17:06:37 2017 +0200 +Date: Tue Dec 12 09:48:45 2017 +0100 - dialog: check if dialog exists after event route execution - - - done for dlg_onroute(), as an extra safety for early detection of - races, related to GH #1059 + pua: renamed MI flags to reflect use of RPC -commit 09fe281bd5bea0d484a41e13b18fd3d206d2ebd9 +commit 5c621a9d483830e1dd6f9bafd4a525f3f83fa3c0 Author: Daniel-Constantin Mierla -Date: Thu Apr 6 15:17:47 2017 +0200 +Date: Tue Dec 12 09:09:56 2017 +0100 - kamailio.cfg: version updated to 5.1 in top comments + pkg/kamailio: updated to the docs about building the packages -commit 868f9996f39dd76707ed09fce980893bab7c31bc +commit 6b044936db3d1eb9e901c2db5544925c764f9fc1 +Merge: dd8f5488a 558298dd5 Author: Daniel-Constantin Mierla -Date: Thu Apr 6 15:14:45 2017 +0200 +Date: Tue Dec 12 08:34:00 2017 +0100 - kamailio.cfg: handle retransmissions also for request within dialog + Merge pull request #1347 from sergey-safarov/master - - skip ACK, it is not a standard transaction by itself + pkg/kamailio: Created Makefile for RPM packaging -commit ad368c93cb01f1375bb69acc09ea2b4431b9db77 -Author: Luis Azedo -Date: Thu Apr 6 13:15:57 2017 +0100 +commit 790f7a3291f45ae03e5d54cfe6f300789f5c391b +Author: Tsvetomir Dimitrov +Date: Mon Dec 11 15:22:07 2017 +0000 - kazoo: add zone to connection event + ims_registrar_pcscf: Fix memory allocation for security_t parameters in contact -commit 36b6d4d211d86a0f4047a79cf3b122ad974a5da9 -Author: Luis Azedo -Date: Wed Apr 5 23:19:41 2017 +0100 +commit 99289bec4bceb0db3eb992a36e0e6d8c8ae94db4 +Author: Tsvetomir Dimitrov +Date: Mon Dec 11 15:20:14 2017 +0000 - kazoo : add broker zone to received payload + ims_usrloc_pcscf: Add new function free_security() which deallocates security_t parameter from a contact -commit cf3b1aeacfc9d5bd086929a6fae20f379ebb2612 +commit dd8f5488a514698e6bdeb941ac8b90971bad804a Author: Daniel-Constantin Mierla -Date: Wed Apr 5 16:02:54 2017 +0200 +Date: Mon Dec 11 14:42:22 2017 +0100 - pkg/rpm: specify the pid file for killproc + core: README - INSTALL small updates for development v5.2 -commit 7b691e9712fc4b4333698c4538c8209c32eba901 -Author: Daniel-Constantin Mierla -Date: Wed Apr 5 13:36:56 2017 +0200 +commit 55525d28864eba285bef3eff1d513b0769dd8ba4 +Author: Victor Seva +Date: Mon Dec 11 12:45:20 2017 +0100 - dispatcher: ds select and next functions exported to kemi + pkg/kamailio/deb: xenial needs libbson-dev too for libmongoc-dev -commit fc732895c19f2e9fcb00c8b55d5eee0c4fffaf52 -Author: Kamailio Dev -Date: Wed Apr 5 09:46:40 2017 +0200 +commit 84967d08aa52b7b70c8263829fa4c2429709025f +Author: Victor Seva +Date: Mon Dec 11 11:15:20 2017 +0100 - modules: readme files regenerated - mtree ... [skip ci] + pkg/kamailio/deb: kamailio-mongodb-modules [skip ci] -commit 1c1e51388aad6c5ba064c283d5e124367b30ad7e -Author: Daniel-Constantin Mierla -Date: Wed Apr 5 09:36:17 2017 +0200 +commit 9420a2ffc50f5eddd113f2e4b43da35076497ff2 +Author: Victor Seva +Date: Mon Dec 11 09:25:21 2017 +0100 - mtree: clarifications about db table parameter in docs + pkg/kamailio/deb: integrate xenial libgeocoding change [skip ci] + in backports/xenial script + + * add wrap-and-sort on all scripts -commit a4cdacd0b63245c48fcc6e0a20c9b665ef877090 +commit 9063113be66678103f509d98f24a74fa211b9a68 Author: Daniel-Constantin Mierla -Date: Wed Apr 5 09:34:07 2017 +0200 +Date: Sun Dec 10 09:34:29 2017 +0100 - mtree: revert a0e4a9c18e and let db_table name not set by default + pkg/deb: ubuntu xenial has a dedicated package for libgeocoding - - it breaks some runtime rpc commands, reported by GH #1057 - - reset it also if set by mistake when mtree param is used + - other debian varians have it inside libphonenumber -commit 338e5df6f96ccf1f3df313593d3fc9bb228f5d85 +commit 373e99fd593814b55b307d0dc4a29e0c53f34850 Author: Daniel-Constantin Mierla -Date: Wed Apr 5 08:52:01 2017 +0200 +Date: Sun Dec 10 09:21:52 2017 +0100 - keepalive: format to match default conding style and 80 chars lines + db_berkeley: removed inline declaration that break the linking -commit fd7052681020b775be253fd936dde8f76a85e198 +commit 5b35d7e372a0c0fb8d0047eb952066939cd98463 Author: Daniel-Constantin Mierla -Date: Wed Apr 5 08:45:33 2017 +0200 +Date: Sat Dec 9 13:49:57 2017 +0100 - keepalive: declare variables at the beginning of functions - - - fix for C standard older than C99 + ims_usrloc_scscf: remove inline to functions that break the symbol linking -commit f51f4df75cb347f1180c0097bb9ffd57a30c97b6 -Author: Julien Chavanton -Date: Fri Mar 31 14:29:18 2017 -0700 +commit 4e03e218cbfa06253d22f85eb21c27a0951ff50e +Author: Daniel-Constantin Mierla +Date: Sat Dec 9 13:49:35 2017 +0100 - dmq_usrloc: sync with multi contacts per message + ims_charging: remove inline to functions that break the symbol linking -commit e564247bbbc262163bf83ff468bda1d7ecd63a2c -Author: Kamailio Dev -Date: Tue Apr 4 22:31:20 2017 +0200 +commit 8dc82f3ac87502dcf149f7b46367bfc3c45f2621 +Author: Daniel-Constantin Mierla +Date: Sat Dec 9 13:47:50 2017 +0100 - modules: readme files regenerated - evapi ... [skip ci] + db_perlvdb: remove inline to functions that break the symbol linking -commit 27062612b08ace21c07366aa8ab1ca4931fc4503 +commit 76a262f4c39ecb48410f0cb531cf144baf8105e6 Author: Daniel-Constantin Mierla -Date: Tue Apr 4 22:21:16 2017 +0200 +Date: Sat Dec 9 13:47:33 2017 +0100 - evapi: documentation for event_callaback + cdp: remove inline to functions that break the symbol linking -commit 2889db1a4b294c045021807965b507b38de258a5 +commit f3a37060232c2a666e9709f4071ced344a44b1e3 Author: Daniel-Constantin Mierla -Date: Tue Apr 4 22:18:27 2017 +0200 +Date: Sat Dec 9 13:46:07 2017 +0100 - evapi: enable execution of event routes via kemi + auth_diameter: init socketfd variable - - event callback function can be set via event_callback parameter + - remove inline to functions that break the symbol linking -commit 1b26495414e5e31829e7f96b0717890774f049ba -Author: Kamailio Dev -Date: Tue Apr 4 17:18:44 2017 +0200 +commit 3e80324168536fbb97a592254725f2aa6ea589af +Author: Daniel-Constantin Mierla +Date: Sat Dec 9 13:45:08 2017 +0100 - modules: readme files regenerated - dialog ... [skip ci] + phonenum: linking with libphonenumbers requires -lgeocoding -commit fca170fec9e16b37dd1bbec5b9734a77e0b09403 -Author: Carsten Bock -Date: Tue Apr 4 14:37:40 2017 +0200 +commit 9a21a25a831d1ce241785eba92819be71af861ef +Author: Daniel-Constantin Mierla +Date: Sat Dec 9 13:44:28 2017 +0100 - ndb_redis: Accidentally tried to free a reply from shmem, which is still in pkgmem + misc_radius: fixed name of function exported to cfg -commit 8fafc501d9c0a254412cd88d3d071d6e4f375210 +commit fc65848a680006a37b71dbdad21bdc9902eff22f Author: Daniel-Constantin Mierla -Date: Tue Apr 4 16:02:08 2017 +0200 +Date: Sat Dec 9 13:43:22 2017 +0100 - Makefile.groups: added keepalive module to group extra + acc_diameter: use acc api to parse extra string + + - remove inline to avoid missing symbol in linker -commit c0696ec38076b01be258faa3cf4c7e687e19e52e +commit 03c4439c0bbe40209ded86ca8ddddd496893ecfc Author: Daniel-Constantin Mierla -Date: Tue Apr 4 16:01:07 2017 +0200 +Date: Sat Dec 9 13:41:29 2017 +0100 - keepalive: added initial README file + rls: define cfg function with two parameters even one is used -commit cf07d3feab3494c934b27a8e52724be3d94fe00a -Author: Guillaume Bour -Date: Tue Apr 4 16:00:15 2017 +0200 +commit e52547956462ad53032be95ff5f2701785dfdd2a +Author: lazedo +Date: Fri Dec 8 19:36:20 2017 +0000 - keepalive: new module to monitor remote destinations + presence: update record_route in database -commit 079b84b1351a19334a478226b83f4d3193d050bb +commit 900f2a1559ea2b83387fc30195c41c6fd47402f7 Author: Daniel-Constantin Mierla -Date: Tue Apr 4 15:50:41 2017 +0200 +Date: Sat Dec 9 09:21:46 2017 +0100 - dialog: documented the event_callback parameter - - - allow specifying the function name to be executed by kemi on event - routes + kamctl: regenerated scripts to create database structure for presence -commit a17560105cf28f67c5eaf4ed7401615f64fb9cd0 +commit 09cd77a9f366d4a534274f0fa7d5ef663c97077e +Merge: c11af868d 2eccc2342 Author: Daniel-Constantin Mierla -Date: Tue Apr 4 15:50:14 2017 +0200 +Date: Sat Dec 9 09:20:00 2017 +0100 - dispatcher: listed the options for the kemi event callback parameters + Merge pull request #1345 from kamailio/lazedo-patch-2 + + schema: allow null in active_watchers reason -commit bb24683ba00dac15428ed4c1a6f2f9f2e8f60106 +commit c11af868d6c945a0a83a3b20c1b46319f139b2c5 Author: Daniel-Constantin Mierla -Date: Tue Apr 4 15:49:43 2017 +0200 +Date: Sat Dec 9 08:55:25 2017 +0100 - htable: more details about kemi callback function parameter + ipops: exported functions to kemi framework -commit 5b7838c9a5a865158c9572835c876d19a06780fb +commit d88572eeb90ca63a07aac15a719a99e5c77b18af Author: Daniel-Constantin Mierla -Date: Tue Apr 4 15:23:07 2017 +0200 +Date: Fri Dec 8 23:08:25 2017 +0100 - dialog: enable execution of dialog event routes via kemi + ipops: use sip_msg_t type - - requires to set the event_callback parameters + - set cfg functions signatures with two parameters -commit 9b72c40ab7ddba0766961557067a969dfc3a000a +commit f6a05336de65bb929854c5843e5aa821901b63eb Author: Daniel-Constantin Mierla -Date: Tue Apr 4 14:35:03 2017 +0200 +Date: Fri Dec 8 16:47:39 2017 +0100 - dispatcher: documentation for event_callback parameter + sipdump: safety check for received address -commit 6aa21738dd860eee60b433a48d11c58f5d67618f +commit 5f62d05180c7148f3899732dfc0da44034a314f8 Author: Daniel-Constantin Mierla -Date: Tue Apr 4 14:22:33 2017 +0200 - - dispatcher: enable execution of event routes via kemi - -commit 6d87794cac3f6f3bb967d6e0bf6714a4d78f1bd5 -Author: Carsten Bock -Date: Tue Apr 4 12:55:21 2017 +0200 +Date: Fri Dec 8 16:44:56 2017 +0100 - ndb_redis: Added REDIS-Cluster support [BETA] + rls: avoid walking a null string -commit 960b761e527b903dc8e53014cc0b08df8b0d81b3 -Merge: 6d9e0202b 5bb4eb4d6 +commit a009a5bf4f145b4e877e5ba41d218607c30849ec Author: Daniel-Constantin Mierla -Date: Mon Apr 3 21:22:10 2017 +0200 - - Merge pull request #1055 from kamailio/co/more_mime_chars - - core: parser - allow more chars in mime type - -commit 5bb4eb4d6546e2d0a2d911b09797172a0a2a2b83 -Author: Camille Oudot -Date: Mon Apr 3 20:49:51 2017 +0200 +Date: Fri Dec 8 16:44:01 2017 +0100 - core: parser - allow more chars in mime type + pua: safety check for params values -commit 6d9e0202b1817aa19bfaf4502749d817d54f850a -Author: Ovidiu Sas -Date: Mon Apr 3 11:12:48 2017 -0400 +commit 236b0b4bca0ce8931bd06fd88720f3293b651682 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 16:43:17 2017 +0100 - db_oracle: avoid double free on connection error + auth_ephemeral: init the return code -commit ccdf6b81f1eb591ba4bb0f6e023992b21720fc58 -Merge: e26aca34f b70382583 -Author: Lucian Balaceanu -Date: Mon Apr 3 17:40:44 2017 +0300 +commit 084364becd2f6f5d6e620721cb0837466c3a2f31 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 16:42:19 2017 +0100 - Merge pull request #1036 from lbalaceanu/fix_nocdr_restart - - Fix for no cdr after Kamailio 5.0 restart + tls: safety checks for select values -commit e26aca34fc41601ec34e17547d6572a1b2ba365a -Merge: 8f407a915 055fca8dd +commit da31e70a2c63454dd7126d6ed47be977f36c73f0 Author: Daniel-Constantin Mierla -Date: Mon Apr 3 15:42:23 2017 +0200 +Date: Fri Dec 8 16:41:53 2017 +0100 - Merge pull request #1052 from claudiupb/topoh_safetychecks - - topoh: add additional safety checks + core: select - init proto string to udp -commit 8f407a915785a2bd594567399cd52a305ccb274e +commit b9bbeeb11df841845d9f00897008fedf2c2eb9b6 Author: Daniel-Constantin Mierla -Date: Mon Apr 3 15:40:20 2017 +0200 +Date: Fri Dec 8 16:41:35 2017 +0100 - pkg: create /var/run/kamailio with user permissions in centos 7 spec + core: receive - clang format the code -commit 055fca8dd2ca9c2ea683a2ea3748d6728d54e5a5 -Author: Claudiu Boriga -Date: Mon Apr 3 12:13:30 2017 +0300 +commit 1be7a6903ace085e7518fa0d358a4ca899ee938f +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 15:18:05 2017 +0100 - topoh: add additional safety checks - - - verify that headers contain expected prefix (including mask ip) - before trying to unmask them; otherwise there may be issues when - kamailio receives messages that are not masked and topoh is enabled. + db2_ops: safety check for input parameter -commit 24e729698017b5d898a92cdf7acb024e44252b84 +commit 3614b4e66d1b57dc722139fc0e1ccd8d838f13ee Author: Daniel-Constantin Mierla -Date: Mon Apr 3 14:25:18 2017 +0200 +Date: Fri Dec 8 15:01:18 2017 +0100 - htable: handle blob/text columns when loading from database - - - reported by Patrick Ginhoux + db_postgres: avoid potential double free if sb url parsing fails -commit 71fce8d061c50e6ad80947f16c1fe6ed8760d634 +commit 66051f400c0a1dcd472f0c9a7957b24e9cb54a07 Author: Daniel-Constantin Mierla -Date: Mon Apr 3 14:02:28 2017 +0200 +Date: Fri Dec 8 14:51:26 2017 +0100 - pv: remove unused vars in $hdrc(...) implementation + cplc: null terminate log string - - reported by Juha Heinanen + - reset field to avoid double free -commit 987c8101504cc7939c6782df55d7073f492e12c8 -Author: Carsten Bock -Date: Mon Apr 3 08:33:14 2017 +0200 +commit abc9c4f73f215cf7955c14cb47944fc880eaded3 +Author: Victor Seva +Date: Fri Dec 8 14:25:49 2017 +0100 - ims_icscf: Fix fixup functions + Makefile.groups: add evrexec module to extra group -commit b70382583ea2c7962f7268db3e672236fb35e521 -Author: Lucian Balaceanu -Date: Thu Mar 16 16:23:42 2017 +0200 +commit c804420cd30519f6a67d916b4e9201424c293690 +Author: Victor Seva +Date: Fri Dec 8 14:16:52 2017 +0100 - acc: Fix for no cdr after Kamailio 5.0 restart + pkg/kamailio/deb: phonenum requires libphonenum >= 7 - - created cdr_on_load() to be called on DLGCB_LOAD + * remove jessie support -commit e59fa823b7b9513d3d1adb958d5e8ec055082d83 -Author: Daniel-Constantin Mierla -Date: Fri Mar 31 12:56:52 2017 +0200 +commit 5a2fcd525a211fe9e1b3c05788b67e6deda2c269 +Author: Victor Seva +Date: Fri Dec 8 12:29:12 2017 +0100 - tls: do kerberos and zlib init checks only for libssl < 1.1.0 - - - using string matching inside libssl compile flags is no longer - reliable - - reported by GH #1050 + pkg/kamailio/deb: kamailio-phonenum-modules [skip ci] -commit e271bb60d4cb0e3e2ec1ecca4ff2833885331732 +commit 22975d721b2ff573594575f5975fc9eff141b3e2 Author: Daniel-Constantin Mierla -Date: Fri Mar 31 12:06:32 2017 +0200 +Date: Fri Dec 8 12:17:07 2017 +0100 - kamctl: added srv command + app_python: enabled rpc command to reload the script - - shortcuts to RPC commands to print sockets, aliases and available RPC - commands + - reload command performs the mod_init and child_init operations + - not tested yet -commit 921cb9f8235638ca8da067965dc0b1281c7082c9 -Merge: 71a882122 5d14f5cad +commit 7ed21aabfab384ae3ea8c2e683d62256cb3f0713 Author: Daniel-Constantin Mierla -Date: Thu Mar 30 13:30:35 2017 +0200 +Date: Fri Dec 8 10:53:18 2017 +0100 - Merge pull request #1048 from jchavanton/usrloc_params - - usrloc: adding params + core: kemi - removed redundant anchor operation -commit 71a882122c2e6a9c61f25cb34bfd4fef75c65fe0 -Author: Charles Chance -Date: Wed Mar 29 18:55:17 2017 +0100 +commit c0bc38616cb9a2923e35545fa86a663686bc6746 +Author: lazedo +Date: Wed Dec 6 17:38:19 2017 +0000 - dmq: add option for non-locking workers + presence: extra columns updated for dbmode 2 - - fixes high CPU condition on some systems (e.g. FreeBSD) - - reported by @soapnix, GH #822 - - incorporates patch by Tom Beard (@tombeard) + we noticed some phones and upstream clusters sending + diferent route / contact after initial subscription. + + this commit adds contact and record_route to updated columns for dbmode = 2 + also adds user_agent to initial save + and a simple fix for getting the correct message in debug -commit 55bc7309bdee23d1cbff3a122f4ce1d0d0fa84fa -Merge: 088c2f7d7 88ba02fd4 +commit cae249d58c1155c2f13c56e8f1251fcadb5483c0 Author: Daniel-Constantin Mierla -Date: Wed Mar 29 19:34:03 2017 +0200 +Date: Fri Dec 8 09:47:01 2017 +0100 - Merge pull request #1047 from jchavanton/db_postgres_upsert - - db_postgress: insert_update() with DO UPDATE + tm: restore backup char inside ki_t_check_status() -commit 5d14f5cada8d4bc43bfa1865ca95b0fd2213f8f3 -Author: Julien Chavanton -Date: Sat Mar 18 13:16:15 2017 -0700 +commit f4f2b7b201d1cc5bbb0cc915835873a1e03270ac +Author: Victor Seva +Date: Fri Dec 8 09:32:46 2017 +0100 - usrloc: adding params + pkg/kamailio/deb: geoip2 module [skip ci] - db_load: enable/disable loading from the database on mod_init - db_insert_update: insert into table, update on duplicate key - -commit 88ba02fd42403844afcdde82034e64a460dc1082 -Author: Julien Chavanton -Date: Sat Mar 18 13:16:15 2017 -0700 - - db_postgress: insert_update() with DO UPDATE + fix #1352 -commit 088c2f7d70eb3b8861b3f8f2dc03d9e01a68198f +commit 5d813bb3abd1a9a0ee080bf67db2f5502772a3be Author: Daniel-Constantin Mierla -Date: Wed Mar 29 16:16:26 2017 +0200 - - Makefile.groups: added call_obj module to group extra - -commit 0bded933d8ff9e533d426dc205dd5db385bfaf53 -Author: Vicente Hernando -Date: Wed Mar 29 14:18:58 2017 +0200 +Date: Fri Dec 8 09:31:21 2017 +0100 - call_obj: module to track calls and its duration by using ascending integers. + textopsx: proper check for null value inside ki_modify_hf() -commit d8fa1ae396305f6f05607f5bc0914913adc6bf7d +commit de4a32b02ddaf94b0ad4ed06a0b4fa5bb9c1a10e Author: Daniel-Constantin Mierla -Date: Wed Mar 29 12:41:41 2017 +0200 +Date: Fri Dec 8 09:27:11 2017 +0100 - pv: new variable - $hdrc(HName) - - - return the number of headers matching the name with HName - - e.g., $hdrc(Via) + rabbitmq: proper test of pv cache lookup return -commit 2d9a016ede219c2f2731e09ca45281d8ef711d50 +commit 816d2cd44d96245b5a5b53505d6fbc350bda378c Author: Daniel-Constantin Mierla -Date: Wed Mar 29 12:41:16 2017 +0200 - - core: new pv type for header count - -commit 666ebb63aecf2254b8efeae261452fc75c6d3aed -Author: Charles Chance -Date: Tue Mar 28 13:13:55 2017 +0100 - - dmq: attempt to re-initialize if node becomes detatched from cluster - - - issue reported by José Seabra on sr-users mailing list - -commit 52471366d34419fbd4a70eff93420157a532bf09 -Author: Victor Seva -Date: Tue Mar 28 17:01:16 2017 +0200 - - pkg/kamailio/deb: version set to 5.1.0-dev2 - -commit 406dc9039035dd238ab4f3a3fd04148da8b588a1 -Author: Torrey Searle -Date: Tue Mar 28 16:01:27 2017 +0200 +Date: Fri Dec 8 09:25:12 2017 +0100 - modules/sipt.c: fix compiler warnings + presence: increased the size of db update arrays in update_subs_db() -commit 964557553fd39fca1de35cf7d2f9e64134da7495 +commit 9e0fbfd9a79764fb283b6a6864e6519e167fff82 Author: Daniel-Constantin Mierla -Date: Tue Mar 28 15:59:03 2017 +0200 - - pv: proper evaluation of pv param for param.count transformation - - - reported by GH #1041 - -commit e4ee924b4919b3efd853c38506a3d2934797eaaa -Author: Torrey Searle -Date: Tue Mar 28 15:53:14 2017 +0200 +Date: Fri Dec 8 09:22:20 2017 +0100 - modules/sipt: make the digit terminator optional on set_destination + peering: check return code when parsing all headers -commit f151c26b49d483efbbb27acbb72950d79b8c563d +commit c0c374ef15a99eef745570dd78926f6248187493 Author: Daniel-Constantin Mierla -Date: Tue Mar 28 15:37:59 2017 +0200 +Date: Fri Dec 8 09:20:02 2017 +0100 - pv: fix for param.count transformation with pv parameter - - - reported by GH #1041 + lcr: safety checks for parms of kemi functions -commit 9a6b345ee88adc29c54fe8c835da71a643bbd20d +commit 74215ac16878cc00cf29ae0fc89dfc9aa9ed9399 Author: Daniel-Constantin Mierla -Date: Tue Mar 28 13:29:58 2017 +0200 +Date: Fri Dec 8 09:07:40 2017 +0100 - Makefile.defs: version set to 5.1.0-dev2 + http_client: fixed safety check looking up var names -commit bcb11726c01ab720e7d89482711701509327a14b +commit 98f35707fb00c8fa3512faff3b42a56a9e45e241 Author: Daniel-Constantin Mierla -Date: Tue Mar 28 13:11:43 2017 +0200 +Date: Fri Dec 8 09:04:35 2017 +0100 - ims_diameter_server: added readme file - - - required only first time after module is imported in source tree + crypto: fixed safety check looking up var names -commit 629a3b015166e7c54cd7801111f89c860ccb7cba -Author: Carsten Bock -Date: Tue Mar 28 10:50:03 2017 +0200 +commit 1e5ea9beeb3055e0303eef992ffa87f61d8f0bf9 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 09:01:18 2017 +0100 - ims_diameter_server: Generic Diameter Server module [New] + auth_radius: safety check for r variable -commit 72fe8111687df3dce8b2a6f6814d5aec5d0ee9e1 -Author: Kamailio Dev -Date: Tue Mar 28 10:46:27 2017 +0200 +commit 4dca6d5d79ecea23a202727d1a9637dad15ef174 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 08:58:20 2017 +0100 - modules: readme files regenerated - ims_usrloc_pcscf ... [skip ci] + core: kemi - break when matching the header name -commit a466c7bf1f1908461b8ab9dbf10ab4c90b65e52a -Author: Carsten Bock -Date: Tue Mar 28 10:44:21 2017 +0200 +commit 2fe07249426b1ae9b368a1d1ffc7f2d5b881c704 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 08:57:59 2017 +0100 - ims_usrloc_pcscf: Remove unused parameter from docs and module + core: pvapi - set prev variable when dropping from cache -commit 3793e04348c1959047fa3974673c95bea18a44e9 -Author: Carsten Bock -Date: Tue Mar 28 09:01:13 2017 +0200 +commit 53c27ac3eb3e762110bd5cf54e55ddd85a7973a1 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 08:57:17 2017 +0100 - ims_usrloc_(p/s)cscf: Remove temporary file + app_mono: safety check beforing accessing field inside pointer + + - zero terminated allocated strings -commit 90904d5b7de6c67c6eeea550170d739d505151b9 -Author: Carsten Bock -Date: Tue Mar 28 09:00:08 2017 +0200 +commit e30cbd0010149a595ef7c11963a785ad784ea5c2 +Author: Daniel-Constantin Mierla +Date: Fri Dec 8 08:42:00 2017 +0100 - ims_registrar_pcscf: Remove temporary file + kamctl: regenerate db creation scripts -commit 9a56b88c1438e2d4f0c5b57c71bbe4e904b1a8e4 +commit a4201bce416be015eae5534aaaa816f9926eacd4 +Merge: 41d66fa22 66718c2a7 Author: Daniel-Constantin Mierla -Date: Mon Mar 27 20:59:30 2017 +0200 +Date: Fri Dec 8 08:17:49 2017 +0100 - core: safety check for retrying dns cache find + Merge pull request #1355 from sergey-vb/master + + schema: add indexes to topos Mysql tables -commit fbe1ed25ee1b783a99e9ac1ac46347f526e2b356 -Author: Rick -Date: Mon Mar 27 19:58:18 2017 +0200 +commit 66718c2a77ae4cc427d8a06b4fa308224a5b3d48 +Author: sergey-vb +Date: Fri Dec 8 08:50:11 2017 +0200 - uri_db: rework the possibiltiy to use any sip uri (#1034) + schema: add indexes to topos Mysql tables (#13) - * uri_db: added subscriber and realm param to check_uri + * topos: update topos_d.xml - * uri_db: fix whitespace bevor tab + To optimize DB query speedup I propose to add few indexes. - * uri_db: last fix for log macros + * topos: update topos_t.xml - * uri_db: removed change from log macros + To optimize DB query speedup I propose to add few indexes. -commit d01141e635e35c2f7b204e11b4a2587e5993d155 +commit 41d66fa2293386bcc3765d6025c2f9b1bd89cd16 Author: Daniel-Constantin Mierla -Date: Mon Mar 27 12:36:01 2017 +0200 +Date: Thu Dec 7 15:24:44 2017 +0100 - misc/examples: kemi - fixed cfgengine for javascript engine + log_systemd: fixed typo in previous commit -commit 9d5c7509cb5aadea98bfcabbd70f17668fc34a58 -Author: Carsten Bock -Date: Wed Mar 22 22:54:30 2017 +0100 +commit 73e9139c5246d3882474d8c9c613105bcbc6d90a +Author: Daniel-Constantin Mierla +Date: Thu Dec 7 15:05:54 2017 +0100 - ims_isc: Allow Regex in RURI-Field + sca: exported functions to kemi framework -commit 3525d6ec7f9fc719651a97e8a9779f13eb14d0fd -Author: Carsten Bock -Date: Wed Mar 22 13:55:49 2017 +0100 +commit 3ecd1958a5dfa8b21e67e52fc4f329dc58bffbf8 +Author: Daniel-Constantin Mierla +Date: Thu Dec 7 14:44:00 2017 +0100 - ims_registrar_pcscf: Fix check for following Service-Routes (Route Header present, but only pointing locally) + sca: get cfg int parameter in wrapper functions -commit 8cd0f0be8bda6a903eab8c0ef610cb00b8ba8359 +commit 6668999dfee8c77a1b8329eee38265b536386845 Author: Daniel-Constantin Mierla -Date: Tue Mar 21 12:28:47 2017 +0100 +Date: Thu Dec 7 14:43:11 2017 +0100 - siptrace: avoid creating proxy structure twice in trace_send_duplicate() - - - can happen when dst parameter is given, resulting in mem leak - - related to GH #1040 + log_systemd: exported functions to kemi framework -commit a51a32633429d761f8bc742386b6f6bcb6b38522 +commit 2c2ae33d639671fe3596df23aaee5087c7c70d86 Author: Daniel-Constantin Mierla -Date: Tue Mar 21 02:39:00 2017 +0100 +Date: Thu Dec 7 14:19:57 2017 +0100 - textops: safety check of allocated memory inside append_time_request_f() - - - reported by GH #1040 + counters: exported functions to kemi interface -commit 3f3cdf712c0cd8c8d35f0126cd132a392ff0b2ca -Merge: b2e8a193d 0d83c02f6 +commit 778a7a68618cb1d148b929bd80db4113a0ca0f46 Author: Daniel-Constantin Mierla -Date: Sun Mar 19 14:57:43 2017 +0100 +Date: Thu Dec 7 10:52:15 2017 +0100 - Merge pull request #1037 from ffontaine/master - - erlang: allow user to set ERLANG_xxxDIR + msilo: exported functions to kemi framework -commit b2e8a193d086df58437c5b4d4df5dce684d88c61 -Author: Juha Heinanen -Date: Sat Mar 18 11:40:56 2017 +0200 +commit 90bd1b06f98cccff6419dcb1991fde686a37a34e +Author: Daniel-Constantin Mierla +Date: Thu Dec 7 10:05:47 2017 +0100 - modules/lcr: added lcr.load_gws rpc function + rls: exported functions to kemi framework -commit 0d83c02f6389bf0adf9cc8afd5e19e2d0e94cd1a -Author: Fabrice Fontaine -Date: Fri Mar 17 17:21:54 2017 +0100 +commit 97b1fa994dfb5f463dd06b2f201423e19db5e508 +Author: Daniel-Constantin Mierla +Date: Thu Dec 7 08:35:23 2017 +0100 - erlang: allow user to set ERLANG_xxxDIR - - If erl is not installed on the system or can not be used (for example - when cross-compiling), then erlang module will use the values set by the - user in ERLANG_INCDIR and ERLANG_LIBDIR instead of returning en error - - Signed-off-by: Fabrice Fontaine + rabbitmq: functions exported to kemi framework -commit 7ae5210a7b9fb2d9a61cef496e9abe0da9860bee +commit 4861c7e831697bd0f139c87485c3dfb601a34599 Author: Daniel-Constantin Mierla -Date: Fri Mar 17 07:52:57 2017 +0100 +Date: Thu Dec 7 08:34:55 2017 +0100 - jsonrpcs: safety check to see if xhttp transport was initialized - - - reported by GH #1030 + auth_ephemeral: variants of auth functions exported to kemi -commit 6fcd9f2200e218239492f387e9054e9414fe498a -Merge: a97701575 b186dc66b -Author: Federico Cabiddu -Date: Thu Mar 16 16:44:08 2017 +0100 +commit 759e9d530c75e8c6c9d54764162cd17a8d8fe78e +Author: Daniel-Constantin Mierla +Date: Wed Dec 6 21:16:35 2017 +0100 - Merge pull request #1024 from grumvalski/tcp_reuseport - - core: enable reuse of tcp sockets + rabbitmq: clang format the code -commit b186dc66b3c0fc7ba2cbbc88a1fd3112d4d7a492 -Author: grumvalski -Date: Wed Mar 8 13:53:56 2017 +0100 +commit 5a5bc72a66d2129aae8a8e200c905ff326e9f659 +Author: Daniel-Constantin Mierla +Date: Wed Dec 6 21:11:11 2017 +0100 - core: enable reuse of tcp sockets - - - credits to Marco Sinibaldi for the original implementation + uac_redirect: exported get_redirects() variants to kemi framework -commit a97701575863993f8a19f9dd611156b37ffca247 -Author: Daniel-Constantin Mierla -Date: Thu Mar 16 10:58:14 2017 +0100 +commit 0b31d42751994a71286d028df4c32e41549a40f4 +Author: Kamailio Dev +Date: Wed Dec 6 20:16:24 2017 +0100 - xhttp: use stateless reply for sending http response + modules: readme files regenerated - benchmark ... [skip ci] -commit fa50c85a9e61dd6b91ce88f3f74c433af5d414e2 +commit 9c01580fd858f995dc8e680545f628f4716a77a4 Author: Daniel-Constantin Mierla -Date: Thu Mar 16 10:54:25 2017 +0100 +Date: Wed Dec 6 20:00:50 2017 +0100 - jsonrpcs: extra debug messages when rpc response is sent + benchmark: documentation for register parameter -commit 0350885c076fa691de6106eb821ec5890572cee6 +commit f382c10e18248423c2f8f4fb3469f7faea1504e3 Author: Daniel-Constantin Mierla -Date: Thu Mar 16 10:53:51 2017 +0100 +Date: Wed Dec 6 19:56:32 2017 +0100 - xhttp: more debug messages for sending the response + benchmark: exported functions to kemi framework + + - new parameter 'register' - register a timer id, required when using + kemi framework, because there is no fixup mechanism to register timer + ids based on function params -commit 1adf88e7211400b8d56a6dc7c463e60a2b697b80 +commit 9139bd2991a28a6a1ef67692e76e71ba807913d8 Author: Daniel-Constantin Mierla -Date: Thu Mar 16 08:49:36 2017 +0100 +Date: Wed Dec 6 18:10:12 2017 +0100 - Makefile.defs: override the ARCH for amd64 to x86_64 + group: is_user_in() exported to kemi framework -commit 2bea7f5a4b2d2ddba9d9a8f050b2ceeb79d2381c -Author: Daniel-Constantin Mierla -Date: Wed Mar 15 13:28:44 2017 +0100 +commit 432b38bb0b50b683360743cfbb013e4865c426e4 +Merge: f04c812b2 97b15611a +Author: Federico Cabiddu +Date: Wed Dec 6 17:18:47 2017 +0100 - Makefile.defs: explicit retarget of amd64 arch to x86_64 + Merge pull request #1348 from grumvalski/local_request_crash - - it is supposed to be done by the arch detection scripts, but it may - fail on various systems having a different output than expected + tm: make t_run_local_req reentrant -commit e6a84b43e06f081e53bf60df137d4262f36c3c7a +commit f04c812b2af2d933e61b0d643bd245cc91c5f3eb Author: Daniel-Constantin Mierla -Date: Wed Mar 15 12:22:06 2017 +0100 +Date: Wed Dec 6 17:00:41 2017 +0100 - Makefile.defs: enabled fast locks for amd64 + http_async_client: exported query function to kemi interface -commit 8cd194d49759a4b14b906265837eb653cfff7a79 -Merge: b926e403f 32e1e5040 +commit 3de068a8897917d088993923f3028ca98aadc765 Author: Daniel-Constantin Mierla -Date: Wed Mar 15 09:54:40 2017 +0100 +Date: Wed Dec 6 16:50:39 2017 +0100 - Merge pull request #1033 from dunst0/fixpdbt - - utils/pdbt: FreeBSD fix, gcc is hardcoded, header is missing + tm: t_check_status exported to kemi framework -commit 32e1e5040d2ff5e13d5bd0373e7edd6cef56f172 -Author: Rick Barenthin -Date: Tue Mar 14 22:35:52 2017 +0100 +commit 50c055a880f16cbb6c1a74b4ef82248bc3519f01 +Author: Daniel-Constantin Mierla +Date: Wed Dec 6 16:38:56 2017 +0100 - utils/pdbt: FreeBSD fix, gcc is hardcoded, header is missing - - - use CC environment variable if set - - added missing sys/stat.h header + userblacklist: exported user check functions to kemi framework -commit b926e403f1709d0fc15f1dc8991f4369d57586ed -Merge: 263546f93 0411c078b +commit 2de661667ce0452a0095cd60d4913007045bb628 Author: Daniel-Constantin Mierla -Date: Tue Mar 14 20:14:40 2017 +0100 +Date: Wed Dec 6 15:52:25 2017 +0100 - Merge pull request #1031 from kamailio/lazedo-patch-1 - - presence : fix fast_notify usage + uri_db: functions exported to kemi framework -commit 263546f932cb517caf6d15472350d58132e916d3 -Merge: 770331dfe a5c4dbc28 +commit a04368528a3350a14038101a4bf17b4b742e362d Author: Daniel-Constantin Mierla -Date: Tue Mar 14 20:13:17 2017 +0100 +Date: Wed Dec 6 12:31:28 2017 +0100 - Merge pull request #996 from ffontaine/master - - Fix execinfo error in ims_dialog module + mediaproxy: export functions to kemi framework -commit 770331dfe0d82ac699d5c4452cedf6c877f27046 -Merge: 815b235f6 42d3b93f8 +commit 74208c2160ffb6200dd6a8982fd4d94a2c00d879 Author: Daniel-Constantin Mierla -Date: Tue Mar 14 20:10:26 2017 +0100 +Date: Wed Dec 6 11:43:38 2017 +0100 - Merge pull request #1020 from jhcloos/master - - app_perl: Make sv2int_str() static + ndb_mongodb: exported functions to kemi framework -commit 815b235f61fcb2a7d33a198dce00023b35622559 -Author: Kamailio Dev -Date: Mon Mar 13 19:16:40 2017 +0100 +commit 6bdf8119c1103b92e179144216bc19bbc8cdae0d +Author: Daniel-Constantin Mierla +Date: Wed Dec 6 11:19:00 2017 +0100 - modules: readme files regenerated - topos ... [skip ci] + async: use t_continue_cb() for executing via kemi framework -commit 4e9bea70b6701405925eb40c14e58b5b1383f827 +commit b7d170607ccc1ecac6cb2bf210790c8382386f2a Author: Daniel-Constantin Mierla -Date: Mon Mar 13 19:05:15 2017 +0100 +Date: Wed Dec 6 08:51:39 2017 +0100 - topos: fix for names of parameters + http_async_client: exported functions to kemi framework -commit 618888cc9497ae5c478c41d7b0efc27731b42b22 +commit 08de83884bc40c5b426136c5dcb796e369c50027 Author: Daniel-Constantin Mierla -Date: Mon Mar 13 18:13:51 2017 +0100 +Date: Wed Dec 6 08:51:09 2017 +0100 - dialog: more checks for dlg_set_timeout() params - - - related to GH #1011 + tmx: exported the rest of the functions to kemi framework -commit 97b3ce7c8991774f42c013122704f32e2822ac58 +commit 020f6b1ed77be268a981633cea8543cfc9521604 Author: Daniel-Constantin Mierla -Date: Mon Mar 13 18:13:05 2017 +0100 +Date: Wed Dec 6 08:50:23 2017 +0100 - core: more safety checks for getting int values from cfg function params + tm: allow execution of t_continue with callback name - - related to GH #1011 + - t_continue_cb() exported to tm api -commit 8ce23dda673441541de836e71af9101d8b7894ea +commit 2469b7963ac612e323478e172da4ab0e3a1773a9 Author: Daniel-Constantin Mierla -Date: Mon Mar 13 17:47:25 2017 +0100 +Date: Tue Dec 5 17:22:24 2017 +0100 - pv: attempt to print cfg line for string transformation errors + http_async_client: propagate route name to https async callback - - 0 is printed when not a transformation in config - - requested by GH #1019 + - lookup actions in target process, rather than in originating one -commit a9d2cbc591f7e1da8743b3598576ef7753c5f32c +commit ad68b65693936240a0101938de1bd466cb5e1bd0 Author: Daniel-Constantin Mierla -Date: Mon Mar 13 15:16:23 2017 +0100 +Date: Tue Dec 5 16:54:21 2017 +0100 - topos: removed unused ftag variable - - - code was moved to a function + http_async_client: use directly the core fixup helper -commit 1980c2c302f1dfd577391cafcc2849db7ff35a29 +commit 1f8bc9fd5a4067b25994e87e27801d9df5cb5eb7 Author: Daniel-Constantin Mierla -Date: Mon Mar 13 15:14:05 2017 +0100 +Date: Tue Dec 5 16:50:59 2017 +0100 - db_text: rpc command query requires linux for open_memstream() + http_async_client: use route_lookup() instead of route_get() - - use the os define to enable/disable it at compile time + - avoids creating a useless route block structure -commit c986a820042764fd7025be0a0766991181a0b0ea +commit 8141ccaf6a0367cae57b6033e7720674c4eb889b Author: Daniel-Constantin Mierla -Date: Mon Mar 13 14:43:16 2017 +0100 +Date: Tue Dec 5 16:45:27 2017 +0100 - dialog: fix for rpc list dialogs release of the profile locks - - - reported by GH #1032 + http_client: exported functions to kemi framework -commit 0411c078b525ffa78b1bc252e161914205b6ac4b -Author: lazedo -Date: Sat Mar 11 16:04:32 2017 +0000 +commit 56a357a7cbd85e2ef69ab4508f26a1510cde16d6 +Author: Daniel-Constantin Mierla +Date: Tue Dec 5 15:20:55 2017 +0100 - presence : fix fast_notify usage - - fast_notify not used when pres_notifier_processes > 0 + http_client: clang format the code -commit 42d3b93f838d1c2eeb009894422fe016a6572520 -Author: James Cloos -Date: Mon Mar 6 11:40:13 2017 -0500 +commit e7d1e96007683efcc193e0f6df16a1acb02be6b8 +Author: Daniel-Constantin Mierla +Date: Tue Dec 5 15:13:47 2017 +0100 - app_perl: Make sv2int_str() static - - - The function is only called from the xs file, and C11’s inline - semantics mean that gcc-5 and later miscompile this file when - no optimization is specified. - - Signed-off-by: James Cloos + crypto: exported functions to kemi interface -commit a5c4dbc280742ff2b2aadb7ae3ea45ae5a091e64 -Author: Fabrice Fontaine -Date: Wed Feb 15 20:19:31 2017 +0100 +commit 2b7ae0f01ae7f9ee9a9ccf12ef9ffad24a76764f +Author: Daniel-Constantin Mierla +Date: Tue Dec 5 13:19:17 2017 +0100 - ims_dialog: remove execinfo usage - - Currently, ims_dialog includes execinfo.h to use backtrace in the - backtrace2str function. However, all calls to backtrace2str are - commented so disable this function through "if 0" and comment the - include on execinfo.h to allow the cross-compilation of the ims_dialog - module as some libc's don't always have this header (uclibc-ng, musl) - - Signed-off-by: Fabrice Fontaine + dmq: exported functions to kemi framework -commit 70bf0eff8fbce414f2d3ca555d351d26e18f2d56 -Author: Kamailio Dev -Date: Thu Mar 9 13:01:22 2017 +0100 +commit 727b5c5fed1e0972b80f005a801089a4afa2f114 +Author: Daniel-Constantin Mierla +Date: Tue Dec 5 12:10:24 2017 +0100 - modules: readme files regenerated - rabbitmq ... [skip ci] + dmq: use core fixup helper functions directly -commit 52e8634807b8c64a8ecd432a3c0e024185d3a447 +commit ebf570f83c878363dfd1f53882de9a0f907f5971 Author: Daniel-Constantin Mierla -Date: Thu Mar 9 12:45:58 2017 +0100 +Date: Tue Dec 5 11:55:51 2017 +0100 - rabbitmq: added link to rabbitmq c lib + topos: update contact in branch record before sending response - - GH #903 + - might be updated in config execution + - reported by GH #1339 -commit bde1246e931a911ea4ee87c3ca9178b1419e4cdc -Author: Kamailio Dev -Date: Thu Mar 9 12:46:25 2017 +0100 +commit 04cfb0662be9cc429e66b79545daf578993dab1f +Author: Daniel-Constantin Mierla +Date: Tue Dec 5 11:23:00 2017 +0100 - modules: readme files regenerated - db_text ... [skip ci] + nat_traversal: exported functions to kemi framework -commit e386b4dd3f00655b9a370e1e2a2e112e7aab0da2 -Merge: 3e12b4076 f49200b82 +commit 3bad00732994813bc21c84d41342772783a5bddd Author: Daniel-Constantin Mierla -Date: Thu Mar 9 12:40:27 2017 +0100 +Date: Tue Dec 5 11:09:55 2017 +0100 - Merge pull request #1014 from lazedo/dbtext-fixes-master - - db_text fixes & live query + nat_traversal: clang format the code -commit 3e12b407643b2d0578aa831923eb769b493473cf -Merge: 3d19bea76 df9d6b100 +commit 95da4cda2c68ff25f7e14501a28cfe2ec0ebc50f Author: Daniel-Constantin Mierla -Date: Thu Mar 9 12:40:14 2017 +0100 +Date: Tue Dec 5 10:54:07 2017 +0100 - Merge pull request #1017 from lazedo/presence-cseq-offset-master - - presence: add a offset for allowed cseq difference + misc_radius: exported functions to kemi framework -commit 3d19bea7669184a762b5f043a0f65f2392876e03 -Merge: 3d6f5770b 78fa8b870 +commit 613350632c842c1775e1b5696b4cda4c96e5ba4c Author: Daniel-Constantin Mierla -Date: Thu Mar 9 12:39:07 2017 +0100 +Date: Tue Dec 5 09:19:29 2017 +0100 - Merge pull request #1016 from lazedo/presence-has-subscribers-master - - presence: add pres_has_subscribers + misc_radius: fixed accessing str* params after previous commit -commit 3d6f5770b456f2ec63d1c722fc7d3c518cb7c326 +commit f06e4d4b81e0df1009c3f2bbc54f0be1bb4a5d32 Author: Daniel-Constantin Mierla -Date: Thu Mar 9 12:02:57 2017 +0100 +Date: Tue Dec 5 09:17:49 2017 +0100 - websocket: split the addition of info structure for ws.dump rpc + misc_radius: use spve fixup helper instead of pvar - - related to GH #1022 + - simplifies getting params -commit 22c07bbd962ea5e0ff814d059c279a435a4e7338 +commit f283fe291917f67320061af3e35259859e448408 Author: Daniel-Constantin Mierla -Date: Thu Mar 9 11:30:20 2017 +0100 +Date: Tue Dec 5 08:21:58 2017 +0100 - topos_redis: updated topos dialog update api + misc_radius: clang format the code -commit 639013a14d46790dd5605f58f683317eb6b9f3f4 +commit cf043326abc792317335954fe75927f8294fa40e Author: Daniel-Constantin Mierla -Date: Thu Mar 9 11:17:35 2017 +0100 +Date: Mon Dec 4 16:54:52 2017 +0100 - topos: reworked dialog update in order to refresh contact values - - - related to GH #1005 + auth_radius: exported functions to kemi framework -commit 2812b693b0ef97e3d720ff0b8a2982eeae566d71 -Author: Stefan Mititelu -Date: Thu Mar 9 10:33:28 2017 +0200 +commit fe0c386cebebbf6c68b598269ecdfc25bfe1bcc2 +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 16:03:52 2017 +0100 - rabbitmq: cleanup obsolete connection parameters - - REVERT ME if you really need the old module parameters and are not able to update to 'url'. + auth_radius: use core fixup helper functions -commit 498b5c7cf541b21f596cd69aa9ebc86c80311c5f -Author: Kamailio Dev -Date: Thu Mar 9 09:46:34 2017 +0100 +commit 7453fc5f8da8fed0941d5d8c759cec97e0647bfd +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 15:50:06 2017 +0100 - modules: readme files regenerated - ims_charging ... [skip ci] + acc_radius: clang format the code -commit ba3556a80aef67228980ac377d9722ffc9657487 -Author: Carsten Bock -Date: Thu Mar 9 09:40:53 2017 +0100 +commit 1c07ddb50cf56ea9566effb8ff7ada3de8f1d48b +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 15:47:40 2017 +0100 - ims_charging: Add a custom_user_avp parameter, to allow a custom from user in Diameter rather than PAI/From + auth_radius: clang format the code -commit 88b99b53dd35691eae9f488f4b877e3d731473d9 -Author: grumvalski -Date: Thu Mar 9 08:38:34 2017 +0100 +commit afbc1a7099eb59dcd8c11a202c9abb1bcf972751 +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 13:09:03 2017 +0100 - pkg/kamailio/centos/7: updated version to 5.1.0-dev1 + acc_radius: functions exported to kemi framework -commit ed956f980014ecb3d44fe1531b1655b2ad1ba2ac -Author: grumvalski -Date: Thu Mar 9 08:35:57 2017 +0100 +commit d17a48c186b0b8066518db2106037fe925846d2e +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 12:49:41 2017 +0100 - pkg/kamailio/centos/7: added jansson package + jansson: fix the include guard in header file -commit 49f8582baab1df23cbbd7038f4f9e2da2f917bf5 -Author: Stefan Mititelu -Date: Wed Mar 8 17:59:17 2017 +0200 +commit a156c625b434dc0bc19c43ece524f90b1179d881 +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 09:21:54 2017 +0100 - rabbitmq: add 'url' new module parameter - - If set to something else than the default value, it will overwrite the values - of all individual connection parameters. + core: pv - use active values for pv buffer slots and size - Updated doc and README. + - during startup, param value and active can be different, up to the + moment when the config is completely loaded -commit a0fa8cd663f8fb14b1126aa7e26f96ed16813cd9 -Author: Stefan Mititelu -Date: Wed Mar 8 13:53:56 2017 +0200 +commit ef7398589aaff02d6521171ff569726db6996c6a +Author: Daniel-Constantin Mierla +Date: Mon Dec 4 09:03:28 2017 +0100 - rabbitmq: replace anonymous reply-to queue with 'kamailio-uuid' - - In order to better identify reply-to queues, when direct reply-to is not used. - Also rabbitmq is known to be slower, working with anonymous queues. + core: fix setting pv_cache_limit param -commit 679febf10e325ddbb90d6070b5599478fb858d75 +commit 0e0cd2be0c77f84575526a39c6e3baa199e18d02 Author: Daniel-Constantin Mierla -Date: Wed Mar 8 12:31:26 2017 +0100 +Date: Fri Dec 1 13:43:42 2017 +0100 - websocket: proper parameters for rpc response building of ws dump - - - reported by GH #1022 + core: more checks when printing udp recv debug message -commit 6bd32088de1d7ae816643aea4a60c70911e46b5e +commit f5ea35bc424f34c64ee71a745db93326f597c4a1 Author: Daniel-Constantin Mierla -Date: Tue Mar 7 23:24:56 2017 +0100 +Date: Fri Dec 1 11:07:07 2017 +0100 - db_mongodb: re-init iterator for bson covert search failure + test/unit: 3.sh - updates for using db root password with kamdbctl -commit d3710d365272566656dede08463386a1effeef5e -Author: grumvalski -Date: Tue Mar 7 14:42:57 2017 +0100 +commit 313805136d22ed79d1c4900753247032240d5a5b +Author: Daniel-Constantin Mierla +Date: Fri Dec 1 11:05:21 2017 +0100 - core: initialize dns cache used memory + kamctl: expose db root password variable used by kamdbctl.mysql in kamctlrc + + - DBROOTPW can be now set in kamctlrc + - targeting use for automatic testing -commit 1ad9eb9deeb8736648036d56f5874223f6009c45 -Author: Stefan Mititelu -Date: Tue Mar 7 17:14:28 2017 +0200 +commit ebe117cae681c373a3e9f32e3fb392e31605039f +Author: Daniel-Constantin Mierla +Date: Fri Dec 1 10:47:41 2017 +0100 - rabbitmq: Add direct_reply_to parameter + test/unit: 24.sh - removed invalid comment about mysql -commit 3fe09fe2e18049d3983f7395ca7bae2bef90d198 -Author: Stefan Mititelu -Date: Tue Mar 7 16:56:05 2017 +0200 +commit 97b15611ad87e36dd17ba76a77cb8817d974806b +Author: grumvalski +Date: Thu Nov 30 15:06:27 2017 +0100 - rabbitmq: don't declare reply_to queue on rabbitmq_publish() + tm: make t_run_local_req reentrant - There is no need to declare a reply-to queue on simple rabbitmq_publish(). - The consume will never happen, thus one queue remained spawned, for each - rabbitmq_publish() call. - -commit af18ebc1b580c8d236ed6d65ab9e8e8c528adbd2 -Author: Ovidiu Sas -Date: Tue Mar 7 09:42:48 2017 -0500 - - db_oracle: fix NULL values binding + - avoid crash when local-request event route is triggered inside another one -commit 501c41dd35fb9f15fdf96f4f3778860395e37a84 -Author: Daniel-Constantin Mierla -Date: Tue Mar 7 08:55:59 2017 +0100 +commit 558298dd560df320aed12d38cf181a106e94445d +Author: Sergey Safarov +Date: Mon Nov 27 18:44:48 2017 +0300 - db_mongodb: re-init iterator and search again if fails to find from crt position + pkg/kamailio: Created Makefile for RPM packaging -commit f1f0dbbbde0bfbe1162deca4f70c3c3969bf99d0 -Author: Luis Azedo -Date: Mon Mar 6 12:03:46 2017 +0000 +commit ae18e409d71d2d4eccb4604bb6f29a121309b54e +Author: Timo Teras +Date: Wed Nov 29 19:53:29 2017 +0100 - kazoo : add consistent worker binding option + mtree: use cast to unsigned char for accessing _mt_char_table array + + - switched the index from unsigned int to unsigned char + - simplifies the code by avoiding the tests for exceeding the size of the + array + - error message extended to print the full string + - slightly modified version of PR #1343 -commit 2d0a0d8decbad9cea3d603a5067b6656d659cbf6 -Author: Daniel-Constantin Mierla -Date: Mon Mar 6 09:15:08 2017 +0100 +commit 886f14e11e3e5fe9d2bc56fd37d2102ae5b99645 +Author: lazedo +Date: Wed Nov 29 11:00:01 2017 +0000 - siputils: reintroduced the c function for is_alphanum() + nat_traversal: handle local generated transactions (#1344) + + * nat_traversal: fix local generated transactions - - accidentaly stripped when adding is_alphanumex() - - reported by Carsten Bock + * nat_traversal: handle TMCB_RESPONSE_SENT only for FAKED_REPLY + + * nat_traversal: free allocated buffer -commit bd35608f1799f27c725815637c2c8e99b32d53a2 -Author: Federico Cabiddu -Date: Sun Mar 5 10:11:22 2017 +0100 +commit 2eccc2342b929fea96bd006f386948f483e62d06 +Author: lazedo +Date: Wed Nov 29 10:15:27 2017 +0000 - http_async_client: fix memory leak in pkg memory in case of error + schema: allow null in active_watchers reason -commit 36973d12c579eba656203614d092ffd47661596e +commit 75bbbe4059cb6fde4c74fa9157f400a24e6f7496 Author: Daniel-Constantin Mierla -Date: Sun Mar 5 09:45:37 2017 +0100 +Date: Wed Nov 29 10:57:06 2017 +0100 - ipops: proper return code for ip_is_in_subnet() + ndb_redis: detect argument specifiers for redis_cmd() with three params - - returning 0 stopos the config execution, do -1 instead - - reported by A Messina, GH #1018 + - check if %s or %d is part of the command, because it makes the redis + api expect more params to the commands and can crash if none is found + - reported by GH #1342 -commit 78fa8b870e4ed51bd9e82ee54f4a207801f910c3 -Author: Luis Azedo -Date: Sat Mar 4 12:44:26 2017 +0000 +commit 49272f23b22445415721766709bf5841865e8609 +Author: lazedo +Date: Wed Nov 29 04:14:07 2017 +0000 - presence : document pres_has_subscribers + presence: update contact in update_subs_db -commit df9d6b100f789259391789ac4758dc347ca18fe2 -Author: Luis Azedo -Date: Sat Mar 4 12:36:22 2017 +0000 +commit 209032fc134afb90e4e12b194d1368ed9fb67ee9 +Author: Daniel-Constantin Mierla +Date: Wed Nov 29 08:33:38 2017 +0100 - presence : document cseq_offset + ldap: use core fixup function for ldap_search() -commit f49200b82025fc0ba3caf04415c56b1aa7ff447a -Author: Luis Azedo -Date: Sat Mar 4 12:31:55 2017 +0000 +commit 855d5d0f976e89962c541a34690dcb212e127e6b +Author: Daniel-Constantin Mierla +Date: Tue Nov 28 17:51:33 2017 +0100 - db_text : add documentation for db_text.query + ldap: clang format the code -commit af1d16183bf52ec3f898e3a86410ca21c8c7f821 -Author: Luis Azedo -Date: Sat Mar 4 09:42:54 2017 +0000 +commit 9f353bad0036f602e4f1ec39096658c1c7809a9b +Author: Daniel-Constantin Mierla +Date: Tue Nov 28 13:25:35 2017 +0100 - db_text : check allocated memory + tcpops: exported functions to kemi framework -commit 1e20acb2d8e4f1ef1dda4e3a64a5834f88db2336 -Merge: b1a243e16 da6a5d9de +commit 3d22063ebd4cfa8b54ec3e83a04e92770c6d7319 Author: Daniel-Constantin Mierla -Date: Sat Mar 4 08:54:49 2017 +0100 +Date: Tue Nov 28 10:48:24 2017 +0100 - Merge pull request #1015 from lazedo/ctl-buffer-size-master + core: timer - use uint type instead of short for flags and slow index - ctl : implement rpc buffer size + - get rid of unused padding field -commit b1a243e166bdcf7d76b071a0964187e6ce714602 -Author: Luis Azedo -Date: Fri Mar 3 20:03:09 2017 +0000 +commit 7bdf8f003bbf5e153d7835d09533c7e22377e8db +Author: Daniel-Constantin Mierla +Date: Tue Nov 28 10:37:26 2017 +0100 - kazoo : producer heartbeats + cnxcc: removed unused variable -commit 72c2171905bbdcefd03706f1362334eec0ac939e -Author: Luis Azedo -Date: Fri Mar 3 20:02:31 2017 +0000 +commit f8d0a395074cd066a9f3df26debf14cf26e21a12 +Author: Juha Heinanen +Date: Tue Nov 28 00:22:36 2017 +0200 - kazoo : code cleanup + .clang-format: do not use bleeding edge keys -commit 7e710287c2b1894f322e9f76cd317d0cae0c4e31 -Author: Luis Azedo -Date: Fri Mar 3 20:00:18 2017 +0000 +commit 5295a4f5eac08c1bb100bf554a995833c434c4dc +Author: Daniel-Constantin Mierla +Date: Mon Nov 27 07:20:06 2017 +0100 - kazoo : add specific pua helpers + textops: exported multipart functions to kemi -commit e0b5ead3cbb73368c7efa3d17e538f458affe98e -Author: Luis Azedo -Date: Tue Feb 7 20:56:09 2017 +0000 +commit 043894a539e3e73f7add2e66179aecb71066313a +Author: Daniel-Constantin Mierla +Date: Sun Nov 26 18:18:36 2017 +0100 - presence: add a offset for allowed cseq difference + textops: simplified the code for set_multipart_body() + + - use formatted string instead of a sequence of allocs and memcopy + - split helper function to have a wrapper for evaluating the cfg + function params -commit 32e70a500efdb583a39bb24aa1dfe150cbfbab22 -Author: lazedo -Date: Fri Feb 3 14:54:15 2017 +0000 +commit b1899d28061e3df8e333230588127fc41f949566 +Author: Daniel-Constantin Mierla +Date: Sun Nov 26 13:09:13 2017 +0100 - presence: add pres_has_subscribers + cnxcc: exported functions to kemi framework -commit da6a5d9de5763330cc4159a2168f5e0042116cbc -Author: lazedo -Date: Fri Feb 10 13:55:20 2017 +0000 +commit d6198f2c85db7c871954e4bfcdb6183a20d4d5bc +Author: Sergey Safarov +Date: Sat Nov 25 14:00:30 2017 -0500 - ctl : implement rpc buffer size + pkg/docker: Updated reference to docker scripts -commit 650858ba246eee589876ffb257b7312bffd9243a -Author: Luis Azedo -Date: Fri Mar 3 17:37:04 2017 +0000 +commit 4426383998d403e9edccc62332702188540d01ff +Author: Sergey Safarov +Date: Sat Nov 25 16:23:24 2017 -0500 - db_text : add rpc command for live query + pkg/kamailio/alpine: Added sqlang, rabbitmq, sqlang packages -commit bc98193e9d2c553d6ae5c54203dc89aa2eee19fc -Author: Luis Azedo -Date: Fri Mar 3 17:36:36 2017 +0000 +commit 3c64668df34fb0708a34ae103d78c8884f8337cf +Author: Samuel +Date: Sun Nov 26 21:49:49 2017 +0100 - db_text : split db_print routines + nathelper: updating the exported expected parameters to match the functions - allows fine grained usage - -commit d3bf6422c004c723a626cae569710b909e8b5315 -Author: Luis Azedo -Date: Fri Mar 3 17:35:22 2017 +0000 - - db_text : less intrusive log + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 856518ab2d31659be606f8ef607ea061eec079f4 -Author: Luis Azedo -Date: Fri Mar 3 17:34:38 2017 +0000 +commit ca75ae0e0db9ac6efb42f97245d8f3ba8f8986a0 +Author: Samuel +Date: Sun Nov 26 21:48:02 2017 +0100 - db_text : fix memory allocation + maxfwd: Updating code formatting + + - Utilize same formatting as all other KEMI exports -commit d3d5ef92d3661d5a95c55a77e8e17793950273c2 -Merge: 18c5ca1da f98b6f603 -Author: Alexandr Dubovikov -Date: Fri Mar 3 11:25:30 2017 +0100 +commit bb35d3aff777ac3a125a10cd0fba3f6dc1586516 +Author: Samuel +Date: Sun Nov 26 21:45:14 2017 +0100 - Merge pull request #1013 from mslehto/hepv3 + lcr: updating the exported expected parameters to match the functions - modules/siptrace: remove duplicate HEP version check + - Mismatch between export and function declaration with regards to the quantity of parameters -commit f98b6f6034b30ace3812607db9d983e132f75c25 -Author: Mikko Lehto -Date: Fri Mar 3 11:42:30 2017 +0200 +commit ac0ff86a0a7c29782903a385e7dda7be298a678f +Author: Samuel +Date: Sun Nov 26 21:43:13 2017 +0100 - modules/siptrace: remove duplicate HEP version check + kex: updating the exported expected parameters to match the functions + + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 18c5ca1daecb922f4df371065d489503b70a981c -Author: Kamailio Dev -Date: Fri Mar 3 09:46:21 2017 +0100 +commit fcc4908fdbb555c09b8431f25211d93a90e2fac3 +Author: Samuel +Date: Sun Nov 26 21:41:06 2017 +0100 - modules: readme files regenerated - siputils ... [skip ci] + debugger: correcting function utilized by KEMI + + - Since constants are used as arguments on the called function I suppose the parameters are not necessary on the parent function -commit 76c5da5ec048cd62c0f3cab6bf38aef5f3c19248 -Author: Daniel-Constantin Mierla -Date: Fri Mar 3 09:31:02 2017 +0100 +commit 74c0dc87e1cfc4f25ac5ebae3f4ad9317ed8ca9e +Author: Samuel +Date: Sun Nov 26 21:33:19 2017 +0100 - siputils: added is_alphanumex(tval, eset) function + xhttp: updating name of function and parameter type - - check if tval contains only alphanumeric characters or those from the - eset parameter + - Updating the name to reflect the original name. Mismatch between export and function declaration with regards to the type of parameters. -commit 39a00f0a5225289fb57e2346df400d23a01ce6f8 -Author: Kamailio Dev -Date: Fri Mar 3 09:16:28 2017 +0100 +commit c921556e77b787d2462d251e7f1fa928bd22467a +Author: Samuel +Date: Sun Nov 26 21:14:09 2017 +0100 - modules: readme files regenerated - siputils ... [skip ci] + textopsx: updating the exported expected parameters to match the functions + + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 41c4319de89b652efd5b5ab16252440404bc6825 -Author: Daniel-Constantin Mierla -Date: Fri Mar 3 09:12:13 2017 +0100 +commit 171b7ada1cc2bd658b8b05efde0c5681ac9c4eed +Author: Samuel +Date: Sun Nov 26 21:11:41 2017 +0100 - siputils: added is_alphanum(v) function + sipcapture: updating the exported expected parameters to match the functions - - helper function to check if a string value contains only digits or - alphabetic characters + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 980c861e39b1fb27de8d7c10390566e516e37fcc -Author: Daniel-Constantin Mierla -Date: Thu Mar 2 22:16:25 2017 +0100 +commit ede35768d58fcadb484eafc2babc72ec3be42b87 +Author: Samuel +Date: Sun Nov 26 21:10:23 2017 +0100 - mtree: safety checks for range within the chars table + rtpengine: updating the exported expected parameters to match the functions + + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 5cdab87aa1093dd372fed624f0de33bd6c13e53a -Author: Ovidiu Sas -Date: Thu Mar 2 10:57:39 2017 -0500 +commit c39905759ec8f2d888e17e6e8e6590d2e42504ff +Author: Samuel +Date: Sun Nov 26 21:08:39 2017 +0100 - htable: accept both DB1_STR and DB1_STRING from database + permissions: correcting KEMI allow_address + + - Updating which function KEMI function allow_address actually calls upon -commit e712d32f9304f95b5b19b26905546b4af700298f -Author: Daniel-Constantin Mierla -Date: Thu Mar 2 16:40:41 2017 +0100 +commit 2fda4db20ef258ac09c3680b8fab50b988a90f43 +Author: Samuel +Date: Sun Nov 26 20:55:19 2017 +0100 - topos_redis: update fields and reduce expires for termintated dialogs + path: updating the exported expected parameters to match the functions + + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 5851bf01ba33c89c9eef5ac5ed8681369627a0aa -Author: Daniel-Constantin Mierla -Date: Thu Mar 2 16:09:52 2017 +0100 +commit ed2c91533960c2b94a1394a671292c07d94b049b +Author: Samuel +Date: Sun Nov 26 20:45:44 2017 +0100 - topos_redis: set expire for dialog and branch records + dialog: updating the exported expected parameters to match the functions + + - Mismatch between export and function declaration with regards to the quantity of parameters -commit 83a8c97798d9dbac7e67203e4a246b6013503c01 +commit 991fe9b28e0e201309048f3b38a135037e40357a Author: Daniel-Constantin Mierla -Date: Thu Mar 2 15:09:53 2017 +0100 +Date: Sat Nov 25 09:18:23 2017 +0100 - topos: api functions to get dialog and branch expire values + rtpengine: proper check for empty string inside add_rtpengine_socks() + + - reported by GH #1325 -commit a43d8460f4caca20f42f0eb44ec4bd9e22cb1513 +commit 6e680c71b6a5d1571a38023427335922946a4160 Author: Daniel-Constantin Mierla -Date: Wed Mar 1 23:41:12 2017 +0100 +Date: Sat Nov 25 09:04:54 2017 +0100 - topos: proper detection of direction for requests within dialog + xmlrpc: define _XOPEN_SOURCE to 600 - - related to GH #1005 + - needed for snprintf() and variants + - reported by GH #1312 -commit 3c773fd93045a2f3b88cf80bc0218c321718622d -Author: Daniel-Constantin Mierla -Date: Wed Mar 1 23:29:44 2017 +0100 +commit 6f170d2847aac510cc4f5630c71c733a1bdacbd8 +Author: Sergey Safarov +Date: Fri Nov 17 09:41:49 2017 -0500 - Makefile.groups: added topos_redis to redis group + pkg/kamailio/rhel: Updated build instructions -commit f07fc80df5f475606ac81c2885cbedbdb3dca438 -Author: Ovidiu Sas -Date: Wed Mar 1 16:03:19 2017 -0500 +commit e264699bdfb63d7fe153d465215fd9cfdaca4993 +Author: Sergey Safarov +Date: Thu Nov 16 15:31:06 2017 -0500 - htable: documentation fix for expires_column parameter + pkg/kamailio/obs: Fixed build of lua module -commit c6982e0e61d630b07282d497907a22a66ca2b70c -Author: Daniel-Constantin Mierla -Date: Wed Mar 1 10:07:19 2017 +0100 +commit 70021219713d2ab79bcd3282f1073e7a615d27ad +Author: Sergey Safarov +Date: Wed Nov 15 16:08:34 2017 -0500 - topos_redis: new module to offer redis storage for topos module + pkg/kamailio/obs: Added acc_diameter module files -commit 0aaeed773316d4763471e723cfdc8d1230dfd5c1 -Author: Daniel-Constantin Mierla -Date: Wed Mar 1 10:05:55 2017 +0100 +commit f23c7e34061e52aaf7cb79fad22048500f957cbb +Author: Sergey Safarov +Date: Wed Nov 15 16:07:53 2017 -0500 - topos: unique id per dialog reused for both local contacts - - - relocated safety checks for storage update + pkg/kamailio/obs: Added sipdump module -commit 58c1ab8fa03c992d201f226eab06d2fbe9999ee5 -Author: Daniel-Constantin Mierla -Date: Tue Feb 28 13:32:34 2017 +0100 +commit 531db895fc517a9d4614d8746e3389626af55805 +Author: Sergey Safarov +Date: Wed Nov 15 16:06:44 2017 -0500 - topos: restrict storage value to db and redis + pkg/kamailio/obs: Ported 32c5d9dd9f7a5e02ab428e5c16bf7406e4ff7856 ot OBS spec file -commit 4fa7a93fb60d8e8468b0f98272c1661d4913c463 -Author: Daniel-Constantin Mierla -Date: Tue Feb 28 12:51:03 2017 +0100 +commit 88745f4b0ad51e2b9fb7a1817ee3aea201fd306e +Author: Sergey Safarov +Date: Wed Nov 15 16:00:38 2017 -0500 - topos: new parameter storage - - - specify the storage type to be used - - default value is "db", to use database connectors + pkg/kamailio/obs: Ported ca39ea810c01f6947db70870cc1d786e95cb4bc3 to OBS SPEC -commit 02725bbc77417b1e04faaf06e7fc309632378997 -Author: Kamailio Dev -Date: Wed Mar 1 08:46:25 2017 +0100 +commit d9639951cb70ae927f899e6cef19dfde66512918 +Author: Sergey Safarov +Date: Wed Nov 15 15:53:11 2017 -0500 - modules: readme files regenerated - dialog ... [skip ci] + pkg/kamailio/obs: Added missed directories to packaging (non systemd dists) + Added workarround for buggy _sharedstatedir on openSUSE Leap. + Fixed build error for RHEL7 dists + Some SPEC clenup -commit 307ad0a3e1084a7a03c045dc563421829b46c3e2 -Author: Olle E. Johansson -Date: Tue Feb 28 10:32:25 2017 +0100 +commit c10ee13c9a1d3fc6da60c8ee5a34975d818a91e1 +Author: Sergey Safarov +Date: Fri Oct 27 05:34:30 2017 -0400 - dialog Add missing ka_failed_limit parameter to README + pkg/kamailio/rpm: Removed stalled RPM packaging script -commit 1f3884ce4cd08c6b7b52c2dd15bb2a5ac1905a63 -Author: Olle E. Johansson -Date: Tue Feb 7 15:20:15 2017 +0100 +commit 7565fb7ae287e8656633c57e2133ad91e2043367 +Author: Sergey Safarov +Date: Fri Oct 27 05:34:09 2017 -0400 - manpage Add proper web address to the project (include https) + pkg/kamailio/fedora: Removed unsuported Fedora packaging scripts -commit 958b63b9fc500152b6671b90e9a813696a6aaadb -Author: Ovidiu Sas -Date: Tue Feb 28 19:06:05 2017 -0500 +commit 65a777f3316fb3a3adfa61739a091bb9d61582a8 +Author: Vasiliy Ganchev +Date: Fri Nov 24 13:54:13 2017 +0200 - lcr: accept DB1_STR and DB1_STRING db types + http_client: add missed useragent parameter + + While preparing query_params, "useragent" was missed - add it. -commit 7ecd9dfb37b3b4a9770265c7a846d3224be98d84 +commit ebd51daea816a6bab3436e24de22d23d079d7c91 Author: Daniel-Constantin Mierla -Date: Tue Feb 28 11:46:09 2017 +0100 +Date: Sat Nov 25 08:13:20 2017 +0100 - Makefile: make tar updated to skip obsolete folder + textops: fixed name of in_list() function export to kemi - - paths updated to run with src folder + - reported by GH #1332 -commit e2e0f182075cf79d8d5e582433f5a2d9ecf715a7 +commit b524d25a3ba327d7a52544489d847932f1ee1a28 Author: Daniel-Constantin Mierla -Date: Mon Feb 27 23:09:35 2017 +0100 +Date: Sat Nov 25 08:09:49 2017 +0100 - http_client: removed libxml2 dependency from Makefile + textops: kemi search_append() and search_append_body() have two params - - apparently a copy&paste leftover when pkg-config was introduced + - reported by GH #1333 -commit 618825d42992010a76275b0c1623f48831475193 +commit f95fda89d4532ba333aed835c72f102a7c032980 Author: Daniel-Constantin Mierla -Date: Mon Feb 27 21:03:43 2017 +0100 +Date: Fri Nov 24 19:50:05 2017 +0100 - examples: kemi - declared vars for branch flags in js script + app_lua: count also the special function when generating the rpc response -commit c62409bdd317f61df0e7cc16fbb8aa9ccebcefb5 +commit 7cbece0e2e60f8c334bea97333b029d51e5b7e33 Author: Daniel-Constantin Mierla -Date: Mon Feb 27 13:50:06 2017 +0100 - - carrierroute: enclosed unused functions in ifdefs - - - they were used by mi commands and may be needed when re-introducing - the equivalent in rpc commands - - reported by GH #1010 - -commit bfdcc905dc9ee703cb5cc0c0fb482bf789f63fae -Author: Victor Seva -Date: Fri Feb 24 11:18:29 2017 +0100 +Date: Fri Nov 24 19:39:27 2017 +0100 - sca: use HDR_CALLINFO_T + app_lua: print special kemi functions via rpc -commit 7815c3805692a049fb36951abd3c01edd546c2ae -Author: Victor Seva -Date: Thu Feb 23 17:30:43 2017 +0100 +commit e177266e8f113f1541b31496f9fb0c71ac751f17 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 19:15:42 2017 +0100 - core: support for parsing the Call-Info header - - * extend parsing Call-ID due to _call_ is the token detected + app_sqlang: detect if a kemi function was already added in exports list -commit 4edf575649351f70aef9d5a6fd4e820b01fdf6c7 -Author: Kamailio Dev -Date: Fri Feb 24 10:31:22 2017 +0100 +commit 48d55652fa36cb2b20540d1ebc7665476dfb1b1e +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 19:11:44 2017 +0100 - modules: readme files regenerated - siptrace ... [skip ci] + app_jsdt: detect if a kemi function is already in exported list -commit 85a91892f407c9fa82652dc49c151f258d9f03ae -Merge: fb8016edd 51b18cbc8 -Author: Camille Oudot -Date: Fri Feb 24 10:24:03 2017 +0100 +commit 50a9e2ec1cb86590a067dc23b2298b96a12bc232 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 19:05:58 2017 +0100 - Merge pull request #1007 from kamailio/co/hlog - - siptrace: new hlog() function to send logs to homer + app_lua: updated paths to included files from core in the ctl tool -commit fb8016edde5d51394ee838d73b7efec2b1d9b05f -Author: Kamailio Dev -Date: Fri Feb 24 07:46:48 2017 +0100 +commit f4c6365f2678e5c30d4a1fc287206b82a7eee459 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 19:04:13 2017 +0100 - modules: readme files regenerated - kex ... [skip ci] + app_python: updated the ctl tool to generate the exports -commit d7c8fbcc77ce925f3b40251f19e95b0ec7b2f76e +commit ac8cc0a3735325ec79a4a634eea6bcdcea4affe7 Author: Daniel-Constantin Mierla -Date: Fri Feb 24 07:44:55 2017 +0100 +Date: Fri Nov 24 19:00:34 2017 +0100 - modules: fixed broken docbook files + app_lua: updated the utils/app_lua_ctl -commit 51b18cbc872e7ec5be95a4f8f4490220e749286a -Author: Camille Oudot -Date: Thu Feb 23 18:47:56 2017 +0100 +commit 6c7bc0390fc1d9972ca9fc330c25dd9b29f2476a +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 18:48:09 2017 +0100 - siptrace: hlog() documentation + drouting: removed unused variable -commit f6396033763f1d55c11744ddb9774e112865400a -Author: Camille Oudot -Date: Wed Feb 15 20:18:36 2017 +0100 +commit d98a005ac57b957231f8bda26c711bf7c7260049 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 18:42:07 2017 +0100 - siptrace: add hlog() to send logs to homer + app_lua: detect if a kemi function was already added in the exports list -commit 6b3f623c38b9407351485eeb02d05d2406d67fcd +commit b34a31a66442ca6ec566676fcfb7210acbb83201 Author: Kamailio Dev -Date: Thu Feb 23 17:46:15 2017 +0100 - - modules: readme files regenerated - siptrace ... [skip ci] - -commit 103e503fa58bbc19637e0e17452a791b7205bfdd -Merge: 9e6f94e0e d00f198d7 -Author: Giacomo Vacca -Date: Thu Feb 23 17:40:12 2017 +0100 - - Merge pull request #1006 from giavac/master - - Add HEPv3 support to siptrace - -commit d00f198d74a3c152c2b66cb9569d876aad610d95 -Author: Giacomo Vacca -Date: Thu Feb 23 11:50:35 2017 +0100 - - siptrace: update doc with editor +Date: Fri Nov 24 15:16:53 2017 +0100 -commit 2349ff06890269246e758542c2db9e3859eb0c50 -Author: Giacomo Vacca -Date: Thu Feb 23 11:49:55 2017 +0100 - - siptrace: update doc with support for HEPv3 - -commit ca276bb702a8ca97bf04b155f87e6cf39c2f0b7d -Author: Giacomo Vacca -Date: Thu Feb 23 11:48:43 2017 +0100 - - siptrace: add support for HEPv3 - -commit 281e8e980c70f38218844d1da0c5e257399ffda3 -Author: Giacomo Vacca -Date: Thu Feb 23 11:46:45 2017 +0100 - - sipcapture: add macros to pack HEPv3 chunks + modules: readme files regenerated - cnxcc ... [skip ci] -commit 9e6f94e0ed3845f5da0c548e04f549906f58456e +commit b24cae28dcb8ba3289e0320a1e406e4667371258 Author: Daniel-Constantin Mierla -Date: Thu Feb 23 07:52:38 2017 +0100 +Date: Fri Nov 24 15:15:19 2017 +0100 - topos: export intermodule api to set storage functions + cnxcc: docs - added parameters to functions -commit 71b9cb347eb67489adda62148eb6ebdf0a681217 +commit 41953f192185989b5ba3ee7154202b6c390fe84c Author: Daniel-Constantin Mierla -Date: Wed Feb 22 22:16:55 2017 +0100 +Date: Fri Nov 24 14:48:38 2017 +0100 - rtpproxy: allow 0 as value for ice candidate avp - - - reported by GH #1003 + cnxcc: use fixup function helper for core to get string and int params -commit 6ba9900f3c83bbd68ef868a8910590f6c9fbe88f -Author: Victor Seva -Date: Wed Feb 22 15:15:29 2017 +0100 +commit 3205c5970652bba56e2e3904a565491503fb6206 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 14:44:12 2017 +0100 - pkg/kamailio/deb: strip default -02 from CC_EXTRA_OPTS - - Fix #1004 + core: mod_fix - typedefed struct to pvs_fixup_t -commit 567b560cc5ca35bfe0a6557f959f954d18850866 -Merge: 819f9eae0 4b0095fb5 -Author: Richard Fuchs -Date: Wed Feb 22 08:39:02 2017 -0500 +commit db004a73d21c29a6a375d46eb15a6ba0b58910a7 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 12:37:54 2017 +0100 - Merge pull request #999 from zxcpoiu/rtpengine-unsigned-setid - - rtpengine: really do allow unsigned setid + cnxcc: clang format the code -commit 819f9eae0066a94081b0805dadf69bd57050e4f0 -Author: Victor Seva -Date: Fri Feb 17 13:25:31 2017 +0100 +commit a8b4bd942794c864d8455ca9fb144c1daa76e164 +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 11:04:52 2017 +0100 - usrloc: fix ucontact shared leak - - keep a copy of urecord if mode is DB_ONLY as it is static - preventing leaking ucontact to shared memory - - Fix #1000 - See #997 for details + lcr: exported functions to kemi framework -commit 1b0e1c3cbdd162fcd438a7d9bb412ddce73bc214 -Author: Victor Seva -Date: Thu Feb 16 12:19:41 2017 +0100 +commit 8fbf7d83b1dbeedf1ee53895aadbf6e99321432d +Author: Daniel-Constantin Mierla +Date: Fri Nov 24 10:05:45 2017 +0100 - pua_reginfo: fix memory leak when usrloc is DB_ONLY - - As release_urecord() clearly says: - - /*! - * \brief Release urecord previously obtained through get_urecord - * \warning Failing to calls this function after get_urecord will - * result in a memory leak when the DB_ONLY mode is used. When - * the records is later deleted, e.g. with delete_urecord, then - * its not necessary, as this function already releases the record. - * \param _r released record - */ + lcr: exported load_gws() variants to kemi framework -commit d40635aa946d2d9e49227ab87cba4e045bcc5ebd +commit e8a79182a76b306fad13c9cb12eb9f2c4c658b14 Author: Daniel-Constantin Mierla -Date: Wed Feb 22 07:36:36 2017 +0100 +Date: Fri Nov 24 09:45:02 2017 +0100 - topos: group storage function in an api structure + lcr: clang format the code -commit 4b0095fb5500ed382dbddec8abff937c39554f00 -Author: zxcpoiu -Date: Fri Feb 17 18:50:57 2017 +0800 +commit b79f3e3308786b86864abaddb75e06587722ef6c +Author: Kamailio Dev +Date: Fri Nov 24 09:31:56 2017 +0100 - rtpengine: really do allow unsigned setid + modules: readme files regenerated - nathelper ... [skip ci] -commit 15b746b93548bf3d45b69018c175f4a521f16c20 -Author: Kamailio Dev -Date: Tue Feb 21 15:46:22 2017 +0100 +commit 93c81f5326acc2aefaca01c347f79c972727d0bf +Author: Juha Heinanen +Date: Fri Nov 24 10:18:33 2017 +0200 - modules: readme files regenerated - pua ... [skip ci] + modules/nathelper: check also transport protocol when determining + if ;alias parameter needs to be added by add_contact_alias() call -commit dbac66fa165d4058973a49d7ca9035b7ce7b07d2 -Author: Victor Seva -Date: Tue Feb 21 15:19:02 2017 +0100 +commit a9ef7fe010492710e0a81a4505337accb5e1fea6 +Author: Daniel-Constantin Mierla +Date: Thu Nov 23 18:55:07 2017 +0100 - pua: update documentation, replace pua_mi reference with pua_rpc + ndb_redis: exported redis_cmd() and redis_free() to kemi framework -commit 504699b6c2f34fbf7db02f57909eefdffc6b8180 +commit ccbd1176242632fae2af39a168e4692dcf7ebcf9 Author: Daniel-Constantin Mierla -Date: Mon Feb 20 19:24:36 2017 +0100 +Date: Thu Nov 23 15:58:03 2017 +0100 - pua_usrloc: free memory in case of failire in pua send_publish() + http_client: print url in log messages if query return code is not ok - - related to GH #1001 + - safety check for search of end-of-line in a one line result type -commit c027c6d32f1c0add72ab00c14885d46bd1b7d485 -Author: Daniel-Constantin Mierla -Date: Mon Feb 20 16:47:11 2017 +0100 +commit 873ffcad3a609d1372eed8e8b4e6a3ff033bc524 +Author: Kamailio Dev +Date: Thu Nov 23 12:46:55 2017 +0100 - pua_usrloc: removed old svn ids + modules: readme files regenerated - app_python ... [skip ci] -commit 304d1cf1babdb6925731f6974edf84d3796753c5 +commit cbaceaf891e16e9b0a1ef4883b8fec5e33698a86 Author: Daniel-Constantin Mierla -Date: Mon Feb 20 15:34:44 2017 +0100 +Date: Thu Nov 23 12:45:04 2017 +0100 - ndb_redis: export functions via inter-module api - - - allow other modules to work with same pool of connections managed by - this module + app_python: documented rpc commands -commit 9ac5de5e1d8bec9efa3c7325200fda69b3d2e3e9 +commit bea0b53ce57f08ab9fc019c19f616b3b67795d64 Author: Daniel-Constantin Mierla -Date: Mon Feb 20 14:26:43 2017 +0100 +Date: Thu Nov 23 12:40:19 2017 +0100 - ndb_redis: removed svn ids + app_python: implemented rpc command to list kemi functions - - some bits of formatting + - kamctl rpc app_python.api_list -commit 12a9364526053734f97792d540503d9b66e4b85b +commit 76085672c0f00d8539ab16652d4404266ad8184c +Merge: 4bd1d70c2 36cb75344 Author: Daniel-Constantin Mierla -Date: Mon Feb 20 13:13:03 2017 +0100 +Date: Thu Nov 23 11:59:23 2017 +0100 - tm: funcs - updated log messages to new macros + Merge pull request #1326 from phil-lavin/bugfix-rtpengine-read-sdp + + rtpengine: fixed segfault when using read_sdp_pv -commit 4020ced0d5802da0bc90114c885a8449c6f83607 +commit 4bd1d70c2804ee2a1d29bd911275aa241577cfc1 Author: Daniel-Constantin Mierla -Date: Mon Feb 20 12:50:35 2017 +0100 - - kamctl: regenerated the dbschema scripts - -commit fc358c8dabc227e86e4299d54ef6d3d29a46b096 -Author: Juha Heinanen -Date: Thu Feb 16 10:25:30 2017 +0200 - - lib/srdb1: increased size of dialplan table repl_exp field to 256 chars - -commit f444160dce7e23ec29e9c40206b8788d89821430 -Merge: 06e219158 16cea04b0 -Author: Alexandr Dubovikov -Date: Wed Feb 15 22:21:44 2017 +0100 +Date: Thu Nov 23 11:48:49 2017 +0100 - Merge pull request #995 from davidcsi/sipcapture_dst_ip + tm: fixed condition in via_matching() - sipcapture: Added exported pseudo-variable $hep(dst_ip) and updated README + - introduced in previous commit -commit 16cea04b08c648bd32b036e35bdb10f4bfdafdff -Author: David Villasmil -Date: Wed Feb 15 20:32:50 2017 +0000 +commit 36cb753441a78bd13ded119cd468f32623f09fbf +Author: Phil Lavin +Date: Thu Nov 23 10:22:42 2017 +0000 - sipcapture: Fixed missing 'break' after case-switch. + rtpengine: fixed segfault when using read_sdp_pv - - Added 'break' missing from a case/switch + - Obtain body pointer fresh from the SIP message as when using read_sdp_pv + the body pointer is overwritten -commit 6960cb80e0d3fe8103306e65258d62a9ab6620c7 -Author: David Villasmil -Date: Wed Feb 15 17:43:00 2017 +0000 +commit 137e2896a5aa3be3f7a881354e476018db8802b4 +Merge: 7b61c725b b0929e757 +Author: Daniel-Constantin Mierla +Date: Thu Nov 23 10:34:20 2017 +0100 - sipcapture: updated README to document exported variables + Merge pull request #1323 from sergey-safarov/docker - - Added an "Exported pseudo-variabled" to the README file to document - $hep(src_ip) and $hep(dst_ip) + pkg/kamailio/alpine_docker: Alpine docker scripts moved to subproject -commit 4f960122142c845862ad140e85827a1c530bc22e -Author: David Villasmil -Date: Wed Feb 15 16:42:03 2017 +0000 +commit 7b61c725bd867540197e695cad1f61e494d0a869 +Author: Kamailio Dev +Date: Thu Nov 23 10:01:37 2017 +0100 - sipcapture: added $hep(dst_ip) variable - - - expose hep(dst_ip) to get hep's message destination IP + modules: readme files regenerated - drouting ... [skip ci] -commit 06e219158131c2397a96bf5d3373c96752d7fd20 +commit 5fabdea4d86c527a2e38caaae7a54884367d6a7c Author: Daniel-Constantin Mierla -Date: Wed Feb 15 12:53:59 2017 +0100 +Date: Thu Nov 23 09:50:30 2017 +0100 - sanity: reset proxy_require hdr parsed field after freeing + tm: default port checking in via_matching() -commit d31558b31fd607f842caa04d85ce8870f6fc1740 +commit 57c14e65d3cea754c88374b8dd1d67cb5be3f295 Author: Daniel-Constantin Mierla -Date: Wed Feb 15 12:48:59 2017 +0100 +Date: Thu Nov 23 00:10:18 2017 +0100 - core: free parsed Required header structure + drouting: exported next_routing() to kemi framework -commit 90faa6ee6089b0cd4781e87b76103eb5cfc260ab -Author: Kamailio Dev -Date: Wed Feb 15 09:46:23 2017 +0100 +commit ce96966593c9f7e12595b74c2a6bf50b248e64c8 +Author: Daniel-Constantin Mierla +Date: Thu Nov 23 00:07:04 2017 +0100 - modules: readme files regenerated - dialog ... [skip ci] + drouting: updates to documentation -commit 52ee89e4713c12aa98d75cd249817c65038712f1 +commit 51837d8dd4bb42d4ad59da39ab9be9f5db58231e Author: Daniel-Constantin Mierla -Date: Wed Feb 15 09:37:10 2017 +0100 +Date: Wed Nov 22 23:48:43 2017 +0100 - dialog: small update to doc example using $dlg_ctx(timeout_route) + drouting: exported functions to kemi interface -commit 3df736fa1a628ab85e897f831c581b86d4c3df08 +commit db6eae95e2c9a17eef8f823c30a39812429158d3 Author: Daniel-Constantin Mierla -Date: Wed Feb 15 09:34:57 2017 +0100 +Date: Wed Nov 22 23:31:17 2017 +0100 - dialog: return string route name for $dlg_ctx(timeout_route) - - - $dlg_ctx(timeout_route_id) returns now the corresponding internal integer id + drouting: use core fixup helper functions -commit 56df10c585b3354826b164fb84b34c2120d2bf8e -Merge: 739461f57 43a924bc8 -Author: Daniel-Constantin Mierla -Date: Wed Feb 15 07:27:07 2017 +0100 +commit 35985c78a502731bc8005688a1cc50af348aec71 +Author: Kamailio Dev +Date: Wed Nov 22 19:31:36 2017 +0100 - Merge pull request #988 from sergey-safarov/spec_update6 - - pkg/kamailio/centos: Set of improvements + modules: readme files regenerated - dialog ... [skip ci] -commit 739461f57d8712eafb35faac4062a493c8cf57a9 -Merge: 7d60841af cf54a0986 +commit d319c449c8c15334ed913633cfece869a7d955aa Author: Daniel-Constantin Mierla -Date: Wed Feb 15 07:24:02 2017 +0100 +Date: Wed Nov 22 19:15:16 2017 +0100 - Merge pull request #990 from ffontaine/master + dialog: proper description of is_in_profile() to match the code - Add kjansson_basic group + - reported by GH #1320 -commit 7d60841af476f4032b3e9f3e855c5b0651c8601a -Author: Kamailio Dev -Date: Wed Feb 15 03:46:19 2017 +0100 +commit d9ca0f6fcbd479dc82f75d301e43e45daf36a658 +Author: Daniel-Constantin Mierla +Date: Wed Nov 22 17:52:34 2017 +0100 - modules: readme files regenerated - mohqueue ... [skip ci] + misc/examples: fixed position of ] in log message from kemi examples + + - based on a reporte by GH #1324 -commit a8c4b6e882aca18293fa97a689a8d89b26f9361f -Author: Robert Boisvert -Date: Tue Feb 14 21:37:41 2017 -0500 +commit b0929e757030f1d93f41ad439755b1908c9ac486 +Author: Sergey Safarov +Date: Tue Nov 7 16:45:27 2017 -0500 - mohqueue: updated copyright + pkg/kamailio/alpine_docker: Alpine docker scripts moved to subproject -commit 0f61923df9323575809327a1ab5815bdaf8ef7bb -Author: Kamailio Dev -Date: Wed Feb 15 02:31:23 2017 +0100 +commit 19f7d568a7bb17a88dd06f0b78775a559a1ca683 +Author: Daniel-Constantin Mierla +Date: Wed Nov 22 10:25:14 2017 +0100 - modules: readme files regenerated - mohqueue ... [skip ci] + tsilo: exported functions to kemi framework -commit 89c12e0615d16d34aa3a4ec902a00063f89d26cb -Author: Robert Boisvert -Date: Tue Feb 14 20:22:52 2017 -0500 +commit 80bed453cfcc5ec8753e4bb823097e711b1b5385 +Author: Daniel-Constantin Mierla +Date: Wed Nov 22 09:04:50 2017 +0100 - mohqueue: updated documentation - - - explicitly state default values for parameters - - fix description of moh_maxcalls + textopsx: exported header management functions to kemi framework -commit 0fb29b3149ddd06a038240c047850699e9cc69f3 -Merge: 70dc811b3 4dbd83b95 +commit 0a626a257dceb0c7cee13bf4ed173b644a5e5fd7 Author: Daniel-Constantin Mierla -Date: Tue Feb 14 20:07:29 2017 +0100 +Date: Wed Nov 22 07:58:26 2017 +0100 - Merge pull request #993 from phil-lavin/bugfix-pua-dialoginfo-request + textops: split the code for msg_apply_changes() - pua_dialoginfo: request does not exist when a dialog is expiring - check to make sure it does + - exported msg_set_buffer(...) to kemi framework -commit 4dbd83b95089719e199f49e799bb13f5a29f329a -Author: Phil Lavin -Date: Tue Feb 14 18:45:44 2017 +0000 +commit 18ebd5fe71baee236c8b2ee720028c5c90f622c5 +Author: Daniel-Constantin Mierla +Date: Tue Nov 21 22:36:54 2017 +0100 - pua_dialoginfo: request does not exist when a dialog is expiring - check to make sure it does + textops: more functions exported to kemi -commit 70dc811b3696c774c468c05e888edf4ee242b3c9 +commit b1fbf47d9cf0680fb892e255d3f22ec6401bc590 Author: Victor Seva -Date: Tue Feb 14 14:53:42 2017 +0100 +Date: Tue Nov 21 12:28:47 2017 +0100 - pkg/kamailio/deb: version set to 5.1.0-dev1 + pkg/kamailio/deb: version set to 5.2.0~dev1 [skip ci] -commit 34cfbc8c0cc2903039b6d8b0c2e78ae5779b2fbe +commit 94a7beaee82d4dd29e903c4de03e069fb549c608 Author: Daniel-Constantin Mierla -Date: Tue Feb 14 14:35:45 2017 +0100 - - Makefile.defs: version set to 5.1.0-dev1 +Date: Tue Nov 21 11:47:21 2017 +0100 -commit 8270d94d4279c60addf8302a0ce368b6a9b86271 -Author: Kamailio Dev -Date: Tue Feb 14 14:31:23 2017 +0100 - - modules: readme files regenerated - pua_dialoginfo ... [skip ci] + Makefile.defs: version set to 5.2.0-dev1 -commit edb9df8ace8ff74e11e025a37645aebe5b25634e -Author: Victor Seva -Date: Mon Feb 6 14:40:57 2017 +0100 +commit 4b3e7c4a988afdc93a3c337ea97e1f8c13730a79 +Author: Daniel-Constantin Mierla +Date: Tue Nov 21 11:37:23 2017 +0100 - tm: deep cloning of the request for fake environment + http_client: fixed the name of exported function http_client_query() with 4 params -commit e534709c7fbc1c1e94df8c911a9b5d1a9aa61402 -Merge: bdd7b2174 9311025cf +commit 6dc9ee1701019c8db994710c11f7e05447cbae92 Author: Daniel-Constantin Mierla -Date: Tue Feb 14 14:25:26 2017 +0100 +Date: Tue Nov 21 11:02:38 2017 +0100 - Merge pull request #979 from phil-lavin/feature-pua-dialoginfo-disable-caller-callee-publish-master + core: pv - new parameters to control the size of pv cache - pua_dialoginfo: Add flags to disable caller and/or callee PUBLISH when required + - pv_cache_limit - the limit how many pv declarations in the cache + after which an action is taken. Default value is 2048 + - pv_cache_action - specify what action to be done when the size + of pv cache is exceeded. If 0, print an warning log message when + the limit is exceeded. If 1, warning log messages is printed and + the cache systems tries to drop a $sht(...) declaration. Default is 0 + + This tries to cope better with the situation of declaring too many + variables when using kemi scripts -commit bdd7b2174cfcc7e916f1ca900fada9ad31b51bac -Author: Kamailio Dev -Date: Tue Feb 14 11:16:26 2017 +0100 +commit 507c3c6f44467546d9441c0989610171f50f7edc +Author: Daniel-Constantin Mierla +Date: Tue Nov 21 11:02:11 2017 +0100 - modules: readme files regenerated - app_lua ... [skip ci] + htable: added function to free $sht(...) pv name -commit 6b1a8e77c6149992452b73b18ced66440332f548 +commit 877b2c8fc40cd2e385fae7da713ef63dbd9bbabd Author: Daniel-Constantin Mierla -Date: Tue Feb 14 11:03:10 2017 +0100 +Date: Tue Nov 21 10:12:07 2017 +0100 - app_lua: documented rpc app_lua.api_list command + core: pv - increased the size for pv and transformation hash tables -commit 94d071ee2fe680dc0fc50835b9d344cfcfd1a8ac +commit cb58fc376d3ed2d4c075282f2efe6721bf19d94e Author: Daniel-Constantin Mierla -Date: Tue Feb 14 11:01:13 2017 +0100 +Date: Mon Nov 20 18:23:48 2017 +0100 - app_lua: fixed typo in rpc list command example + utils/kamctl: updated man pages -commit 82d2a429732f6076b904d9a85d40017fa9dbd7ea +commit 6ab88720bf4a55cce50294c598f8f3f4a1cf2354 Author: Kamailio Dev -Date: Mon Feb 13 20:46:16 2017 +0100 +Date: Mon Nov 20 17:31:38 2017 +0100 - modules: readme files regenerated - db_mysql ... [skip ci] + modules: readme files regenerated - app_python ... [skip ci] -commit 5612f7d6e500718e930754ee3055960b808db8c2 -Merge: da807decd 4afc00bb3 +commit 4ca055ab34e4dfcf244491257906563b571fb748 Author: Daniel-Constantin Mierla -Date: Mon Feb 13 20:33:56 2017 +0100 +Date: Mon Nov 20 17:21:50 2017 +0100 - Merge pull request #957 from zecke/db-mysql-datetime + app_python: aliased load to script_name parameter - db_mysql: Let the database convert the timestamp + - load is used to specify what scripts needs to be loaded among the + modules implementing kemi + +commit aec6c31b5acb43a5123fe29cccba623ffebe0b2b +Author: Daniel-Constantin Mierla +Date: Mon Nov 20 09:54:43 2017 +0100 -commit cf54a0986eb05a4c9dcdcdbbc66caf276991263f -Author: Fabrice Fontaine -Date: Mon Feb 13 18:22:12 2017 +0100 + core: kemi - more core functions exported to kemi framework - Add kjansson_basic group - - This group could be used to compile kjansson module when libevent is not - available +commit 97f975fa5c2d2186f860e0deada4b5412c529ee5 +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 22:14:40 2017 +0100 + + core: kemi - support for short header name in hdr remove and search - Signed-off-by: Fabrice Fontaine + - KSR.hdr.is_present("hname") - function to search if a header is + present -commit da807decd2a6b9d7cd617a1f6873a77110a6e492 -Author: Victor Seva -Date: Mon Feb 13 15:44:20 2017 +0100 +commit e4b7cd2a3e362917ff28f2f532d8d39ef9e53a4f +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 21:50:25 2017 +0100 - ims_usrloc_scscf: Rename module interface file #82 + core: kemi - function for branch flags with index have two int params -commit 637a0c12b03baf04fdea8336e900332d1194824b -Author: Victor Seva -Date: Mon Feb 13 15:42:54 2017 +0100 +commit a1508e63ff59665701b8901a79b14a3aa88eab9c +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 12:07:16 2017 +0100 - ims_usrloc_pcscf: Rename module interface file #82 + textops: several functions exported to kemi framework -commit bb34e87a0d77e70d1502637486ec817993083dcf -Author: Victor Seva -Date: Mon Feb 13 15:40:12 2017 +0100 +commit 7ab180c8ed3976148a23a0d0a727d1dcab1d9e72 +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 11:15:41 2017 +0100 - ims_registrar_scscf: Rename module interface file #82 + core: kemi - simplified anchor location for hdr append and insert functions -commit b8e14619a48a21d13ab295f67aaa562426204563 -Author: Victor Seva -Date: Mon Feb 13 15:37:51 2017 +0100 +commit 0df40557879bc8c64c917d54b61fd106147be7b1 +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 11:10:04 2017 +0100 - ims_registrar_pcscf: Rename module interface file #82 + core: kemi - exported hdr.append_after() and hdr.insert_before() + + - kemi functions to add a header after another one and insert a header + before another one -commit 68fa50585d60d8285ba46fcb5baf97399e1738bd -Author: Victor Seva -Date: Mon Feb 13 15:35:55 2017 +0100 +commit d848d133301bead7a6e3d9b3e6f3ffa2329fd825 +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 08:55:43 2017 +0100 - ims_qos: Rename module interface file #82 + test/unit: 19.sh - remove usrloc record by ruid -commit 1ef56ad3ca45f0902e482a21ab7c067822398bb0 -Author: Victor Seva -Date: Mon Feb 13 15:34:23 2017 +0100 +commit 52c766bf3c54402cf403a58188952968a8520b68 +Author: Daniel-Constantin Mierla +Date: Sun Nov 19 08:54:25 2017 +0100 - ims_ocs: Rename module interface file #82 + test/unit: print same messages when running all or individual unit tests + + - some explanatory comments in Makefile -commit 92dff84a269c0e69d39a43f8231c61eaeb4c3f49 -Author: Victor Seva -Date: Mon Feb 13 15:32:38 2017 +0100 +commit 6b65ff70d505680fa3904f659c47d466e77b38c6 +Author: Daniel-Constantin Mierla +Date: Sat Nov 18 16:26:29 2017 +0100 - ims_isc: Rename module interface file #82 + nathelper: export add_rcv_param(flags) to kemi interface -commit 149b76b99a6c6f89cd5e95d33b9d9ac11208fd3f -Author: Victor Seva -Date: Mon Feb 13 15:29:35 2017 +0100 +commit 2815150bf74cdda26c12d05f25d6b67adf033dc1 +Author: Daniel-Constantin Mierla +Date: Sat Nov 18 16:19:55 2017 +0100 - ims_icscf: Rename module interface file #82 + nathelper: allow variable for nat_uac_test() parameter -commit da4a97f897e2e8dafd64a4bd9e711fe1cdd16e49 -Author: Victor Seva -Date: Mon Feb 13 15:27:40 2017 +0100 +commit d2120dae8bb76dfaa7057883c1f10950d35d4e48 +Author: Daniel-Constantin Mierla +Date: Sat Nov 18 16:07:19 2017 +0100 - ims_charging: Rename module interface file #82 + nathelper: support to use variable for flags param of add_rcv_param() -commit 0f2a8cd9d277abbb8273c7b0145b3b59e9b56158 -Author: Victor Seva -Date: Mon Feb 13 15:22:19 2017 +0100 +commit bcc5a66815ea21a762c22a8222afc621b42bb94d +Author: Daniel-Constantin Mierla +Date: Sat Nov 18 15:56:18 2017 +0100 - ims_auth: Rename module interface file #82 + nathelper: clang format the code -commit 493ffd38dbcd741a0b6f89309daaad6db514d265 -Author: Fabrice Fontaine -Date: Sun Feb 12 15:18:21 2017 +0100 +commit 2cb94f28d7d214d22ccdb6a5b993b391f61ea15b +Author: Daniel-Constantin Mierla +Date: Fri Nov 17 14:33:46 2017 +0100 - Add kjson_basic group - - This group could be used to compile kjson module when libevent is not - available + core: test if ipv6 address starts with [ for subst snd lumps - Signed-off-by: Fabrice Fontaine + - safer than the test against cached socket address known to be without + [], allowing to pass any address value to be used + - reported by GH #1315 -commit 43a924bc8776ac8fa58a4c3bf3f8ed9c5486ab05 -Author: Sergey Safarov -Date: Mon Feb 13 09:23:54 2017 -0500 +commit 6fc84ad9efe4962cc7668851f7ca61cfcc25675f +Merge: 4d93fb698 4838bca79 +Author: Daniel-Constantin Mierla +Date: Fri Nov 17 13:07:56 2017 +0100 - pkg/kamailio/centos: Fixed requirements of root permission to start daemon + Merge pull request #1319 from surendratiwari3/nat_traversal_ipv6_contact + + nat_traversal: fixing ipv6 contact for fix_contact function in cfg. -commit 0efa0e315e7c70caf69bd7453adc22695c10c0f8 -Author: Sergey Safarov -Date: Mon Feb 13 09:21:40 2017 -0500 +commit 4d93fb69805deea8c23ae2aa8b8743cc24ff2925 +Author: Daniel-Constantin Mierla +Date: Fri Nov 17 13:05:53 2017 +0100 - pkg/kamailio/centos: Added tmpfiles initialization + nathelper: allow variable for flags parameter of fix_nated_sdp() -commit 1a75c673439b343c9cf1cd94551f6d9a964faa6e -Author: Sergey Safarov -Date: Mon Feb 13 09:16:05 2017 -0500 +commit 4838bca79d5eb82d133b295d6e601c1924d7ac11 +Author: Surendra Tiwari +Date: Fri Nov 17 11:39:55 2017 +0000 - pkg/kamailio/centos: Updated kazoo dependency + nat_traversal: correcting the ipv6 contact in fix_contact + + - fix_contact for ipv6 addres,add the [] to the host part of contact header -commit 062e2d0e8de17ab1ffab4d6740c4ca3f133eabac -Merge: ba218f504 67419f91a -Author: Alexandr Dubovikov -Date: Mon Feb 13 14:56:12 2017 +0100 +commit 83c370414cb288b113ad4f075a2261e7d701d6d3 +Author: Daniel-Constantin Mierla +Date: Fri Nov 17 11:02:04 2017 +0100 - Merge pull request #986 from davidcsi/sipcapture_bugfix - - sipcapture: Fixed missing 'break' in pv_parse_hep_name switch + core: udp - print up to first 100 chars from received packet -commit 67419f91a4b6f2ad5d2590434b64087cf812b794 -Author: David Villasmil -Date: Mon Feb 13 13:03:37 2017 +0000 +commit 41754b645f986175f3385498057bae8bd33646af +Author: Ovidiu Sas +Date: Thu Nov 16 09:54:08 2017 -0500 - sipcapture: Fixed missing 'break' in pv_parse_hep_name switch - - - Added missing 'break;' in sipcapture.c's pv_parse_hep_name function's switch - statement. + xhttp_rpc: fix array printing -commit ba218f50454a50766a7545099b6e2644bfb76a08 +commit b83de84e8bbbf5e73c96d8648d313dc0444f75e4 Author: Kamailio Dev -Date: Fri Feb 10 12:16:12 2017 +0100 +Date: Thu Nov 16 15:46:37 2017 +0100 - modules: readme files regenerated - app_python ... [skip ci] + modules: readme files regenerated - drouting ... [skip ci] -commit 99c284df880e1bb3c98e4aad2e2e968c745195a6 +commit 8a40437e54d9a5f2e3141c3434fd672a9f2d0e13 Author: Daniel-Constantin Mierla -Date: Fri Feb 10 12:02:47 2017 +0100 +Date: Thu Nov 16 15:43:46 2017 +0100 - aap_python: note about use of pvs in docs + drouting: note in docs about supported characters in prefix values + + - these are the digits (0..9), +, * and # -commit a7bedbddc9865f878659aa1b44719d3265361127 +commit e76a0acfccdd2a76252f220a2b530b19c5dfa1ba Author: Daniel-Constantin Mierla -Date: Fri Feb 10 11:59:36 2017 +0100 +Date: Thu Nov 16 15:34:17 2017 +0100 - app_python: proper usage of pv in cfg function parameters + drouting: clang format the source code -commit b8ff3784d0e1c34e6ceea28e9036981bfe779cdd -Author: Victor Seva -Date: Fri Feb 10 10:32:46 2017 +0100 +commit 2dd28a6285b688606b69691d33000d30f877c9a4 +Author: Daniel-Constantin Mierla +Date: Thu Nov 16 14:33:28 2017 +0100 - pkg/kamailio/deb: remove squeeze support [skip ci] + drouting: removed svn ids and history -commit a850af45acc4a433706120110d1cb91cd885b33b -Merge: 0e5aeba15 f8028f7af -Author: Emmanuel Schmidbauer -Date: Thu Feb 9 16:06:40 2017 -0500 +commit 941490e86577a6125fda5499494a0a7d44e205c8 +Author: Kamailio Dev +Date: Wed Nov 15 09:01:50 2017 +0100 - Merge pull request #982 from kamailio/NSQ-child-process-rank - - nsq: do not use PROC_SIPINIT rank for consumer workers + modules: readme files regenerated - xcap_client ... [skip ci] -commit 0e5aeba15c7a62899676d488f96b81b121c6d17a -Author: Ovidiu Sas -Date: Thu Feb 9 15:33:26 2017 -0500 +commit 86cbc43788b140dbbd3f35c7245a81dcbfa2d291 +Author: Daniel-Constantin Mierla +Date: Wed Nov 15 08:53:07 2017 +0100 - ims_registrar_scscf: initialize notification workers with rank PROC_XWORKER + xcap_client: removed empty section for functions in docs -commit f8028f7afcb99f51f2fd0bb6168892a44cefbe1e -Author: Emmanuel Schmidbauer -Date: Thu Feb 9 15:28:42 2017 -0500 +commit 6efcf9afa764b264dc6b8fe3b8a478942bde7e6e +Author: Victor Seva +Date: Tue Nov 14 11:44:35 2017 +0100 - nsq: change child process rank and remove unused pipes + app_sqlang: allow select compiler using CC -commit 770c914d3636cfafccc4931f18aa804efcacbd73 -Author: Ovidiu Sas -Date: Thu Feb 9 15:24:07 2017 -0500 +commit 32136a18d91fe2208d221cbd5b28574f4669caa8 +Author: Kamailio Dev +Date: Tue Nov 14 08:31:38 2017 +0100 - nsq: initialize all workers with rank PROC_XWORKER - - closes GH #975 + modules: readme files regenerated - xcap_server ... [skip ci] -commit b66df87adde282c3eaa7ab793c598bfe67f8f9a1 -Author: Ovidiu Sas -Date: Thu Feb 9 15:20:24 2017 -0500 +commit ba3f64ec28da4b7bcaf9cbd07b74575034bb950a +Author: Daniel-Constantin Mierla +Date: Tue Nov 14 08:30:10 2017 +0100 - kazoo: initialize all workers with rank PROC_XWORKER - - closes GH #972 + xcap_server: added section ids in docs -commit 3e8589afcf75e7c93c5bcb9b4c4269c7b29774bd -Author: Ovidiu Sas -Date: Thu Feb 9 15:18:13 2017 -0500 +commit 387e2a805a58d3a44e80331575d4a072f5a541fd +Author: Daniel-Constantin Mierla +Date: Mon Nov 13 21:57:42 2017 +0100 - core: added PROC_XWORKER as an alias to PROC_RANK127 + etc/kamailio.cfg: added log_prefix + + - removed commented port example -commit d092bcab77cb935b8084273238e9c77aba57acb7 -Author: Kamailio Dev -Date: Thu Feb 9 15:31:15 2017 +0100 +commit 5288783d03bf4d3cca58ca672f0901009b708877 +Author: Daniel-Constantin Mierla +Date: Mon Nov 13 21:53:52 2017 +0100 - modules: readme files regenerated - auth_db ... [skip ci] + etc/kamailio.cfg: updated note about kamailio version -commit f1630caf691aa1e5b92086af08d49be38cf6c82f -Author: Camille Oudot -Date: Thu Feb 9 15:24:37 2017 +0100 +commit c4e5d9bf4438561fe8a87361b462eff38dc88d93 +Author: Victor Seva +Date: Mon Nov 13 15:24:44 2017 +0100 - pv: add the $env() PV class to read env vars (#978) + pkg/kamailio/deb: kamailio-nth add less as default - * pv: add the $env() PV class to read env vars - * pv: $env() code style improvements + * most is not available on all distributions -commit 9084ef853e63ffcd5994181c836d925f8e1c5b0f -Merge: a9f4a1b8b 3749634d7 -Author: Daniel-Constantin Mierla -Date: Thu Feb 9 15:22:23 2017 +0100 +commit a56d67d3b7e0d4f5014f91b6b413c5861afc3560 +Author: Victor Seva +Date: Mon Nov 13 13:59:05 2017 +0100 - Merge pull request #981 from ycaner06/patch-9 + pkg/kamailio/deb: remove lintian errors for old distributions + + * we are using a newer version of lintian, so new errors are detected + +commit 574ad1fc96fa207a5a30fba66977d27e50ea1da1 +Author: Victor Seva +Date: Mon Nov 13 12:08:08 2017 +0100 + + pkg/kamailio/deb: add lsb-base - auth_db : more explanation for generic error + fixes lintian error: + > E: kamailio: init.d-script-needs-depends-on-lsb-base etc/init.d/kamailio + +commit 2dd971a970dbec87713177b52a32a667ebfa802c +Author: Victor Seva +Date: Mon Nov 13 12:07:28 2017 +0100 + + pkg/kamailio/deb: wrap-and-sort -sat -commit a9f4a1b8b28f564cf1bcf54b4d742ec567bcb5d4 +commit 8807972ce7e6e21b81bfb7d09eac918e8488e5f6 Author: Victor Seva -Date: Thu Feb 9 13:14:09 2017 +0100 +Date: Sun Nov 12 20:18:54 2017 +0100 - pkg/kamailio/deb: version set to 5.1.0-dev0 + pkg/kamailio/deb: version set to 5.2.0~dev0 -commit 41b73d755fcda093f53f1bc707b0c6b9fad83aec +commit 2a38896fc30caa42dc7f1a44021d331069625fca Author: Daniel-Constantin Mierla -Date: Thu Feb 9 12:29:10 2017 +0100 +Date: Sun Nov 12 12:50:41 2017 +0100 - Makefile.defs: version set to 5.1.0-dev0 + Makefile.defs: version set to 5.2.0-dev0 - - development for future release series 5.1.x is open + - development for future release series 5.2.x is open + -===================== 2017-02-27 Version 5.0.0 Released ===================== +===================== 2017-12-11 Version 5.1.0 Released ===================== diff --git a/INSTALL b/INSTALL index 9ebac8abe..6651cdbf8 100644 --- a/INSTALL +++ b/INSTALL @@ -18,6 +18,8 @@ - https://www.kamailio.org/w/documentation/ - https://www.kamailio.org/wiki/ + Recommended install tutorial: + - http://kamailio.org/docs/tutorials/5.2.x/kamailio-install-guide-git/ Table of Contents ================= @@ -508,11 +510,11 @@ A) Getting Help http://www.kamailio.org to learn how to configure Kamailio for your site. If the documentation does not resolve your problem you may try contacting - our user forum by E-mail at sr-users@lists.sip-router.org -- that is the + our user forum by E-mail at sr-users@lists.kamailio.org -- that is the mailing list of the Kamailio community. To participate in the mailing list, please subscribe at the following web address: - https://lists.sip-router.org/cgi-bin/mailman/listinfo + https://lists.kamailio.org/cgi-bin/mailman/listinfo B) Disclaimers diff --git a/ISSUES b/ISSUES index 279e2d1b9..720f3046b 100644 --- a/ISSUES +++ b/ISSUES @@ -31,4 +31,4 @@ Contact If you have further questions about reporting an issue, email to: - * sr-dev@lists.sip-router.org + * sr-dev@lists.kamailio.org diff --git a/README b/README index f7cf7e553..44645b73d 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ -Kamailio v5.1 +Kamailio v5.2 ============= https://www.kamailio.org @@ -141,5 +141,5 @@ Particularly, it includes: - download links - etc. -You can also follow us on Twitter as @kamailioproject and like us on Facebook +You can also follow us on Twitter as @kamailio and like us on Facebook to get regular updates. diff --git a/README.md b/README.md index d3513d9a8..800503077 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Kamailio - The Open Source SIP Server [![Build Status](https://travis-ci.org/kamailio/kamailio.svg?branch=master)](https://travis-ci.org/kamailio/kamailio) +[![Code Triage Badge](https://www.codetriage.com/kamailio/kamailio/badges/users.svg)](https://www.codetriage.com/kamailio/kamailio) Project Website: @@ -109,7 +110,7 @@ An open IRC discussion channel is managed by the community: News: * https://www.kamailio.org/w/category/news/ - * Twitter @kamailioproject + * Twitter @kamailio ## Travis-CI - Testing Build Environment diff --git a/doc/README.md b/doc/README.md index 052ff9c11..d54b3b136 100644 --- a/doc/README.md +++ b/doc/README.md @@ -27,4 +27,4 @@ Contact If you have further questions, you can contact the developers via sr-dev mailing list: - * sr-dev@lists.sip-router.org + * sr-dev@lists.kamailio.org diff --git a/doc/docbook/entities.xml b/doc/docbook/entities.xml index 5cc6db3a0..b9d58c44e 100644 --- a/doc/docbook/entities.xml +++ b/doc/docbook/entities.xml @@ -29,7 +29,6 @@ &kamailiodev;"> &kamailiodbdocs;"> -sr-users@lists.kamailio.org"> sr-users@lists.kamailio.org"> sr-dev@lists.kamailio.org"> diff --git a/doc/man/kamailio.8 b/doc/man/kamailio.8 index d2214f106..b0196b30f 100644 --- a/doc/man/kamailio.8 +++ b/doc/man/kamailio.8 @@ -195,6 +195,6 @@ https://github.com/kamailio/kamailio/issues. .PP Mailing lists: .nf -sr-users@lists.sip-router.org - kamailio user community +sr-users@lists.kamailio.org - kamailio user community .nf -sr-dev@lists.sip-router.org - kamailio development, new features and unstable version +sr-dev@lists.kamailio.org - kamailio development, new features and unstable version diff --git a/doc/man/kamailio.cfg.5 b/doc/man/kamailio.cfg.5 index 19496a450..8aa339eb7 100644 --- a/doc/man/kamailio.cfg.5 +++ b/doc/man/kamailio.cfg.5 @@ -44,6 +44,6 @@ https://github.com/kamailio/kamailio/issues .PP Mailing lists: .nf -sr-users@lists.sip-router.org - Kamailio user community +sr-users@lists.kamailio.org - Kamailio user community .nf -sr-dev@lists.sip-router.org - Kamailio development, new features and unstable version +sr-dev@lists.kamailio.org - Kamailio development, new features and unstable version diff --git a/doc/stylesheets/dbschema_k/xsl/db_redis.xsl b/doc/stylesheets/dbschema_k/xsl/db_redis.xsl new file mode 100644 index 000000000..0c202b0dc --- /dev/null +++ b/doc/stylesheets/dbschema_k/xsl/db_redis.xsl @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + int + + + double + + + string + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/stylesheets/dbschema_k/xsl/dbdoc.xsl b/doc/stylesheets/dbschema_k/xsl/dbdoc.xsl index 20194cc7a..ba6d62395 100644 --- a/doc/stylesheets/dbschema_k/xsl/dbdoc.xsl +++ b/doc/stylesheets/dbschema_k/xsl/dbdoc.xsl @@ -53,7 +53,7 @@ ALL CHANGES DONE HERE WILL BE LOST IF THE FILE IS REGENERATED URL to the database containing the data. - Default value is mysql://openserro:openserro@localhost/openser. + Default value is mysql://kamailio:kamailiorw@localhost/kamailio. Set <varname>db_url</varname> parameter diff --git a/doc/tutorials/dns.txt b/doc/tutorials/dns.txt index a4243087b..6112954a5 100644 --- a/doc/tutorials/dns.txt +++ b/doc/tutorials/dns.txt @@ -170,12 +170,6 @@ DNS Resolver Compile Options NAPTR support still has to be enabled from Kamailio's config file (it's off by default). - RESOLVE_DBG - if defined, the resolver will be very verbose: it will log - a lot of debugging information at L_DBG level. - - NAPTR_DBG - if defined the NAPTR related resolver functions will be very - verbose. - DNS Cache and Failover Config Variables --------------------------------------- @@ -307,9 +301,6 @@ DNS Cache Compile Options If this option is not defined (experimental), everything in the AR section will be added to the cache. - DNS_CACHE_DEBUG - if defined the DNS cache will be very verbose (it will - log lots of messages at the L_DBG levell). - Note: To remove a compile options, edit Kamailio's Makefile.defs and remove it from DEFS list. To add a compile options add it to the make command line, e.g.: make proper; make all extra_defs=-DUSE_DNS_FAILOVER diff --git a/doc/tutorials/presence/trouble.xml b/doc/tutorials/presence/trouble.xml index d0ec13ef0..9a5ff6314 100644 --- a/doc/tutorials/presence/trouble.xml +++ b/doc/tutorials/presence/trouble.xml @@ -41,13 +41,13 @@ to do this or that, you can: Try to search for similar problem in mailing lists on SIP-router's main page or in - list archives. + list archives. Send an email to sr-users@lists.sip-router.org for + url="mailto:sr-users@lists.kamailio.org">sr-users@lists.kamailio.org for user related problem or - sr-dev@lists.sip-router.org + sr-dev@lists.kamailio.org for development related things. There are lots of interesting people on these lists with lots of experiences with SIP related stuff ;-). diff --git a/doc/tutorials/seruser/intro.xml b/doc/tutorials/seruser/intro.xml index 39928b6d4..bdbb5c579 100644 --- a/doc/tutorials/seruser/intro.xml +++ b/doc/tutorials/seruser/intro.xml @@ -1271,7 +1271,7 @@ route{ For example, we use the UA functionality to shield SMS gateway and instant message store from SIP transactional processing. - The simple example bellow issues a log report on receipt + The simple example below issues a log report on receipt of a new transaction. If we did not use a stateful UA, every single request retransmission would cause the application to be re-executed which would result in diff --git a/doc/tutorials/seruser/operation.xml b/doc/tutorials/seruser/operation.xml index 02aa2f1cb..9d1573158 100644 --- a/doc/tutorials/seruser/operation.xml +++ b/doc/tutorials/seruser/operation.xml @@ -417,7 +417,7 @@ warning: IP extract from warning activated to be more informational The following SIP message causes then logging output as shown - bellow. + below. REGISTER sip:192.168.2.16 SIP/2.0 diff --git a/etc/kamailio.cfg b/etc/kamailio.cfg index 1b033ff84..76e3efa6f 100644 --- a/etc/kamailio.cfg +++ b/etc/kamailio.cfg @@ -1,6 +1,6 @@ #!KAMAILIO # -# Kamailio (OpenSER) SIP Server v5.1 - default configuration script +# Kamailio (OpenSER) SIP Server v5.2 - default configuration script # - web: https://www.kamailio.org # - git: https://github.com/kamailio/kamailio # @@ -158,12 +158,16 @@ memlog=5 log_facility=LOG_LOCAL0 log_prefix="{$mt $hdr(CSeq) $ci} " -/* number of SIP routing processes */ +/* number of SIP routing processes for each UDP socket + * - value inherited by tcp_children and sctp_children when not set explicitely */ children=8 /* uncomment the next line to disable TCP (default on) */ # disable_tcp=yes +/* number of SIP routing processes for all TCP/TLS sockets */ +# tcp_children=8 + /* uncomment the next line to disable the auto discovery of local aliases * based on reverse DNS on IPs (default on) */ # auto_aliases=no @@ -175,14 +179,20 @@ children=8 * bind on a specific interface/port/proto (default bind on all available) */ # listen=udp:10.0.0.10:5060 -#!ifdef WITH_TLS -enable_tls=yes -#!endif - /* life time of TCP connection when there is no traffic * - a bit higher than registration expires to cope with UA behind NAT */ tcp_connection_lifetime=3605 +/* upper limit for TCP connections (it includes the TLS connections) */ +tcp_max_connections=2048 + +#!ifdef WITH_TLS +enable_tls=yes + +/* upper limit for TLS connections */ +tls_max_connections=2048 +#!endif + ####### Custom Parameters ######### /* These parameters can be modified runtime via RPC interface @@ -577,7 +587,7 @@ route[REQINIT] { exit; } - if(!sanity_check("1511", "7")) { + if(!sanity_check("17895", "7")) { xlog("Malformed SIP message from $si:$sp\n"); exit; } @@ -854,6 +864,13 @@ route[PSTN] { exit; } + # normalize target number for pstn gateway + # - convert leading 00 to + + if (starts_with("$rU", "00")) { + strip(2); + prefix("+"); + } + if (strempty($sel(cfg_get.pstn.gw_port))) { $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip); } else { diff --git a/etc/sip-router.cfg b/etc/sip-router.cfg index 5e2061981..f1928e0e1 100644 --- a/etc/sip-router.cfg +++ b/etc/sip-router.cfg @@ -16,7 +16,7 @@ # # If you look for documentation, try http://sip-router.org/wiki/. # The right mailing lists for questions about this file is -# . +# . # To get this config running you need to execute the following commands # with the new serctl (the capital word are just place holders) diff --git a/misc/examples/ims/icscf/kamailio.cfg b/misc/examples/ims/icscf/kamailio.cfg index 27fc8234f..c1a15fd94 100644 --- a/misc/examples/ims/icscf/kamailio.cfg +++ b/misc/examples/ims/icscf/kamailio.cfg @@ -7,7 +7,7 @@ # Refer to the Core CookBook at http://www.kamailio.org/dokuwiki/doku.php # for an explanation of possible statements, functions and parameters. # -# Direct your questions about this file to: . +# Direct your questions about this file to: . # # For more information about the various parameters, functions and statements # try http://sip-router.org/wiki/ . diff --git a/misc/examples/ims/pcscf/kamailio.cfg b/misc/examples/ims/pcscf/kamailio.cfg index 8502ce6dc..0c3f65de7 100644 --- a/misc/examples/ims/pcscf/kamailio.cfg +++ b/misc/examples/ims/pcscf/kamailio.cfg @@ -162,6 +162,9 @@ loadmodule "statistics" loadmodule "ims_dialog" loadmodule "ims_usrloc_pcscf" loadmodule "ims_registrar_pcscf" +#!ifdef WITH_IPSEC +loadmodule "ims_ipsec_pcscf" +#!endif #!ifdef WITH_XMLRPC loadmodule "xmlrpc" @@ -366,6 +369,12 @@ modparam("ims_registrar_pcscf", "subscribe_to_reginfo", 0) modparam("ims_registrar_pcscf", "publish_reginfo", 0) #!endif +#!ifdef WITH_IPSEC +modparam("ims_ipsec_pcscf", "ipsec_listen_addr", IPSEC_LISTEN_ADDR) +modparam("ims_ipsec_pcscf", "ipsec_client_port", IPSEC_CLIENT_PORT) +modparam("ims_ipsec_pcscf", "ipsec_server_port", IPSEC_SERVER_PORT) +#!endif + #!ifdef WITH_RX # -- CDP params -- modparam("cdp","config_file","/etc/kamailio_pcscf/pcscf.xml") @@ -700,7 +709,11 @@ route[REQINIT] { send_reply("503", "Server shutting down"); exit; } - + + if (!is_method("REGISTER")) { + ipsec_forward("location"); + } + # Ignore Re-Transmits: if (t_lookup_request()) { exit; @@ -852,6 +865,7 @@ event_route[uac:reply] { } xlog(" Unregistering $uac_req(ruri);$var(alias)\n"); setdebug("9"); + ipsec_destroy("location"); pcscf_unregister("location", "$uac_req(ruri);$var(alias)", "$(uac_req(ouri){uri.host})", "$(uac_req(ouri){uri.port})"); resetdebug(); $sht(natping=>$uac_req(ouri)) = $null; diff --git a/misc/examples/ims/pcscf/pcscf.cfg.sample b/misc/examples/ims/pcscf/pcscf.cfg.sample index 5a89ee102..6b7a7231c 100644 --- a/misc/examples/ims/pcscf/pcscf.cfg.sample +++ b/misc/examples/ims/pcscf/pcscf.cfg.sample @@ -7,6 +7,11 @@ listen=udp:11.22.33.44:5060 # SIP / TCP/TLS #listen=tls:11.22.33.44:5061 +# IPSEC / UDP +#!define IPSEC_LISTEN_ADDR "11.22.33.44" +#!define IPSEC_CLIENT_PORT 5062 +#!define IPSEC_SERVER_PORT 5063 + alias=pcscf.mnc001.mcc001.3gppnetwork.org #!define MY_WS_PORT 80 @@ -104,4 +109,4 @@ alias=pcscf.mnc001.mcc001.3gppnetwork.org ##!define WITH_REGINFO ##!define WITH_RTPPING ##!define WITH_WEBSOCKET - +##!define WITH_IPSEC diff --git a/misc/examples/ims/pcscf/route/mo.cfg b/misc/examples/ims/pcscf/route/mo.cfg index f00aad61f..e19224957 100644 --- a/misc/examples/ims/pcscf/route/mo.cfg +++ b/misc/examples/ims/pcscf/route/mo.cfg @@ -95,6 +95,9 @@ onreply_route[MO_reply] { remove_hf("C-Params"); append_hf("Contact: $ct;$hdr(C-Params)\r\n"); } +#!ifdef WITH_IPSEC + ipsec_forward("location"); +#!endif # In case of 1xx and 2xx do NAT if(status=~"[12][0-9][0-9]") route(NATMANAGE); @@ -112,7 +115,7 @@ onreply_route[MO_reply] { $avp(TTAG_CUSTOM_AVP)=$tt; $avp(CALLID_CUSTOM_AVP)=$ci; - $var(aarret) = Rx_AAR("MO_aar_reply","orig"); + $var(aarret) = Rx_AAR("MO_aar_reply","orig","",-1); xlog("L_DBG", "AAR return code is $var(aarret)\n"); switch ($var(aarret)) { @@ -135,6 +138,7 @@ onreply_route[MO_reply] { } } +} route[MO_aar_reply] { @@ -184,7 +188,7 @@ onreply_route[MO_indialog_reply] { $avp(TTAG_CUSTOM_AVP)=$tt; $avp(CALLID_CUSTOM_AVP)=$ci; - $var(aarret) = Rx_AAR("MO_indialog_aar_reply","orig"); + $var(aarret) = Rx_AAR("MO_indialog_aar_reply","orig","",-1); xlog("L_DBG", "AAR return code is $var(aarret)\n"); switch ($var(aarret)) { diff --git a/misc/examples/ims/pcscf/route/mt.cfg b/misc/examples/ims/pcscf/route/mt.cfg index 3ee9d66c5..eab2c7c37 100644 --- a/misc/examples/ims/pcscf/route/mt.cfg +++ b/misc/examples/ims/pcscf/route/mt.cfg @@ -30,7 +30,7 @@ onreply_route[MT_reply] { $avp(TTAG_CUSTOM_AVP)=$tt; $avp(CALLID_CUSTOM_AVP)=$ci; - $var(aarret) = Rx_AAR("MT_aar_reply","term"); + $var(aarret) = Rx_AAR("MT_aar_reply","term","",-1); xlog("L_DBG", "AAR return code is $var(aarret)\n"); switch ($var(aarret)) { @@ -104,7 +104,7 @@ onreply_route[MT_indialog_reply] { $avp(TTAG_CUSTOM_AVP)=$tt; $avp(CALLID_CUSTOM_AVP)=$ci; - $var(aarret) = Rx_AAR("MT_indialog_aar_reply","term"); + $var(aarret) = Rx_AAR("MT_indialog_aar_reply","term","",-1); xlog("L_DBG", "AAR return code is $var(aarret)\n"); switch ($var(aarret)) { diff --git a/misc/examples/ims/pcscf/route/register.cfg b/misc/examples/ims/pcscf/route/register.cfg index df7ddcd1c..c10979d84 100644 --- a/misc/examples/ims/pcscf/route/register.cfg +++ b/misc/examples/ims/pcscf/route/register.cfg @@ -156,7 +156,15 @@ onreply_route[REGISTER_reply] xlog("L_DBG", "REGISTER SUCCESS[$ci] took $var(stat_add)ms\n"); update_stat("register_success", "+1"); update_stat("register_time", "$var(stat_add)"); +#!ifdef WITH_IPSEC + ipsec_forward("location"); } + else { + if (t_check_status("401")) { + ipsec_create("location"); + } +#!endif + } exit; } diff --git a/misc/examples/ims/scscf/kamailio.cfg b/misc/examples/ims/scscf/kamailio.cfg index 97edf1435..0673ea057 100644 --- a/misc/examples/ims/scscf/kamailio.cfg +++ b/misc/examples/ims/scscf/kamailio.cfg @@ -7,7 +7,7 @@ # Refer to the Core CookBook at http://www.kamailio.org/dokuwiki/doku.php # for an explanation of possible statements, functions and parameters. # -# Direct your questions about this file to: . +# Direct your questions about this file to: . # # For more information about the various parameters, functions and statements # try http://sip-router.org/wiki/ . diff --git a/misc/examples/kemi/kamailio-basic-kemi-jsdt.js b/misc/examples/kemi/kamailio-basic-kemi-jsdt.js index 9d6cbdc82..ea45b5a74 100644 --- a/misc/examples/kemi/kamailio-basic-kemi-jsdt.js +++ b/misc/examples/kemi/kamailio-basic-kemi-jsdt.js @@ -17,7 +17,6 @@ var FLB_NATSIPPING=7 // equivalent of request_route{} function ksr_request_route() { - var METHOD = KSR.pv.get("$rm"); // KSR.sl.sl_send_reply(100,"Intelligent trying"); // KSR.info("===== request - from kamailio lua script\n"); @@ -28,7 +27,7 @@ function ksr_request_route() ksr_route_natdetect(); // CANCEL processing - if (METHOD == "CANCEL") { + if (KSR.is_CANCEL()) { if(KSR.tm.t_check_trans()>0) { ksr_route_relay(); } @@ -41,11 +40,13 @@ function ksr_request_route() // -- only initial requests (no To tag) // handle retransmissions - if (KSR.tmx.t_precheck_trans()>0) { - KSR.tm.t_check_trans(); - return; + if (!KSR.is_ACK()) { + if (KSR.tmx.t_precheck_trans()>0) { + KSR.tm.t_check_trans(); + return; + } + if (KSR.tm.t_check_trans()==0) { return; } } - if (KSR.tm.t_check_trans()==0) { return; } // authentication ksr_route_auth(); @@ -53,12 +54,12 @@ function ksr_request_route() // record routing for dialog forming requests (in case they are routed) // - remove preloaded route headers KSR.hdr.remove("Route"); - if (METHOD=="INVITE" || METHOD=="SUBSCRIBE") { + if (KSR.is_method_in("IS")) { KSR.rr.record_route(); } // account only INVITEs - if (METHOD=="INVITE") { + if (KSR.is_INVITE()) { KSR.setflag(FLT_ACC); // do accounting } @@ -70,7 +71,7 @@ function ksr_request_route() // handle registrations ksr_route_registrar(); - if (KSR.pv.is_null("$rU")) { + if (KSR.corex.has_ruri_user() < 0) { // request with no Username in RURI KSR.sl.sl_send_reply(484, "Address Incomplete"); return; @@ -87,20 +88,18 @@ function ksr_route_relay() { // enable additional event routes for forwarded requests // - serial forking, RTP relaying handling, a.s.o. - var METHOD = KSR.pv.get("$rm"); - if (METHOD=="INVITE" || METHOD=="BYE" || METHOD=="SUBSCRIBE" - || METHOD=="UPDATE") { + if (KSR.is_method_in("IBSU")) { if (KSR.tm.t_is_set("branch_route")<0) { KSR.tm.t_on_branch("ksr_branch_manage"); } } - if (METHOD=="INVITE" || METHOD=="SUBSCRIBE" || METHOD=="UPDATE") { + if (KSR.is_method_in("ISU")) { if (KSR.tm.t_is_set("onreply_route")<0) { KSR.tm.t_on_reply("ksr_onreply_manage"); } } - if (METHOD=="INVITE") { + if (KSR.is_INVITE()) { if (KSR.tm.t_is_set("failure_route")<0) { KSR.tm.t_on_failure("ksr_failure_manage"); } @@ -116,7 +115,7 @@ function ksr_route_relay() // Per SIP request initial checks function ksr_route_reqinit() { - if (!KSR.is_myself(KSR.pv.get("$si"))) { + if (!KSR.is_myself_srcip()) { if (!KSR.pv.is_null("$sht(ipban=>$si)")) { // ip is already blocked KSR.dbg("request from blocked IP - " + KSR.pv.get("$rm") @@ -132,8 +131,8 @@ function ksr_route_reqinit() KSR.x.exit(); } } - if (!KSR.pv.is_null("$ua")) { - var UA = KSR.pv.get("$ua"); + if (KSR.corex.has_user_agent()>0) { + var UA = KSR.pv.gete("$ua"); if (UA.indexOf("friendly-scanner")>=0 || UA.indexOf("sipcli")>=0) { KSR.sl.sl_send_reply(200, "OK"); KSR.x.exit(); @@ -145,9 +144,9 @@ function ksr_route_reqinit() KSR.x.exit(); } - if (KSR.pv.get("$rm")=="OPTIONS" - && KSR.is_myself(KSR.pv.get("$ru")) - && KSR.pv.is_null("$rU")) { + if (KSR.is_OPTIONS() + && KSR.is_myself_ruri() + && KSR.corex.has_ruri_user() < 0) { KSR.sl.sl_send_reply(200,"Keepalive"); KSR.x.exit(); } @@ -165,25 +164,24 @@ function ksr_route_withindlg() { if (KSR.siputils.has_totag()<0) { return; } - var METHOD = KSR.pv.get("$rm"); // sequential request withing a dialog should // take the path determined by record-routing if (KSR.rr.loose_route()>0) { ksr_route_dlguri(); - if (METHOD=="BYE") { + if (KSR.is_BYE()) { KSR.setflag(FLT_ACC); // do accounting ... KSR.setflag(FLT_ACCFAILED); // ... even if the transaction fails - } else if (METHOD=="ACK") { + } else if (KSR.is_ACK()) { // ACK is forwarded statelessly ksr_route_natmanage(); - } else if (METHOD=="NOTIFY") { + } else if (KSR.is_NOTIFY()) { // Add Record-Route for in-dialog NOTIFY as per RFC 6665. KSR.rr.record_route(); } ksr_route_relay(); KSR.x.exit(); } - if (METHOD=="ACK") { + if (KSR.is_ACK()) { if (KSR.tm.t_check_trans() >0) { // no loose-route, but stateful ACK; // must be an ACK after a 487 @@ -202,7 +200,7 @@ function ksr_route_withindlg() // Handle SIP registrations function ksr_route_registrar() { - if (KSR.pv.get("$rm")!="REGISTER") { return; } + if (!KSR.is_REGISTER()) { return; } if (KSR.isflagset(FLT_NATS)) { KSR.setbflag(FLB_NATB); // do SIP NAT pinging @@ -230,7 +228,7 @@ function ksr_route_location() } // when routing via usrloc, log the missed calls also - if (KSR.pv.get("$rm")=="INVITE") { + if (KSR.is_INVITE()) { KSR.setflag(FLT_ACCMISSED); } @@ -242,30 +240,29 @@ function ksr_route_location() // IP authorization and user uthentication function ksr_route_auth() { - var METHOD = KSR.pv.get("$rm"); - if (METHOD!="REGISTER") { + if (!KSR.is_REGISTER()) { if (KSR.permissions.allow_source_address(1)>0) { // source IP allowed return; } } - if (METHOD=="REGISTER" || KSR.is_myself(KSR.pv.get("$fu"))) { + if (KSR.is_REGISTER() || KSR.is_myself_furi()) { // authenticate requests if (KSR.auth_db.auth_check(KSR.pv.get("$fd"), "subscriber", 1)<0) { KSR.auth.auth_challenge(KSR.pv.get("$fd"), 0); KSR.x.exit(); } // user authenticated - remove auth header - if (METHOD!="REGISTER" && METHOD!="PUBLISH") { + if (!KSR.is_method_in("RP")) { KSR.auth.consume_credentials(); } } // if caller is not local subscriber, then check if it calls // a local destination, otherwise deny, not an open relay here - if ((! KSR.is_myself(KSR.pv.get("$fu")) - && (! KSR.is_myself(KSR.pv.get("$ru"))))) { + if ((!KSR.is_myself_furi()) + && (!KSR.is_myself_ruri())) { KSR.sl.sl_send_reply(403,"Not relaying"); KSR.x.exit(); } @@ -278,7 +275,7 @@ function ksr_route_natdetect() { KSR.force_rport(); if (KSR.nathelper.nat_uac_test(19)>0) { - if (KSR.pv.get("$rm")=="REGISTER") { + if (KSR.is_REGISTER()) { KSR.nathelper.fix_nated_register(); } else if (KSR.siputils.is_first_hop()>0) { KSR.nathelper.set_contact_alias(); @@ -331,7 +328,7 @@ function ksr_route_dlguri() // Routing to foreign domains function ksr_route_sipout() { - if (KSR.is_myself(KSR.pv.get("$ru"))) { return; } + if (KSR.is_myself_ruri()) { return; } KSR.hdr.append_hf("P-Hint: outbound\r\n"); ksr_route_relay(); diff --git a/misc/examples/kemi/kamailio-basic-kemi-lua.lua b/misc/examples/kemi/kamailio-basic-kemi-lua.lua index 3c67942cf..4ae0b0e6a 100644 --- a/misc/examples/kemi/kamailio-basic-kemi-lua.lua +++ b/misc/examples/kemi/kamailio-basic-kemi-lua.lua @@ -33,7 +33,7 @@ function ksr_request_route() ksr_route_natdetect(); -- CANCEL processing - if KSR.pv.get("$rm") == "CANCEL" then + if KSR.is_CANCEL() then if KSR.tm.t_check_trans()>0 then ksr_route_relay(); end @@ -58,12 +58,13 @@ function ksr_request_route() -- record routing for dialog forming requests (in case they are routed) -- - remove preloaded route headers KSR.hdr.remove("Route"); - if string.find("INVITE|SUBSCRIBE", KSR.pv.get("$rm")) then + -- if INVITE or SUBSCRIBE + if KSR.is_method_in("IS") then KSR.rr.record_route(); end -- account only INVITEs - if KSR.pv.get("$rm")=="INVITE" then + if KSR.is_INVITE() then KSR.setflag(FLT_ACC); -- do accounting end @@ -75,7 +76,7 @@ function ksr_request_route() -- handle registrations ksr_route_registrar(); - if KSR.pv.is_null("$rU") then + if KSR.corex.has_ruri_user() < 0 then -- request with no Username in RURI KSR.sl.sl_send_reply(484,"Address Incomplete"); return 1; @@ -91,18 +92,18 @@ end function ksr_route_relay() -- enable additional event routes for forwarded requests -- - serial forking, RTP relaying handling, a.s.o. - if string.find("INVITE,BYE,SUBSCRIBE,UPDATE", KSR.pv.get("$rm")) then + if KSR.is_method_in("IBSU") then if KSR.tm.t_is_set("branch_route")<0 then KSR.tm.t_on_branch("ksr_branch_manage"); end end - if string.find("INVITE,SUBSCRIBE,UPDATE", KSR.pv.get("$rm")) then + if KSR.is_method_in("ISU") then if KSR.tm.t_is_set("onreply_route")<0 then KSR.tm.t_on_reply("ksr_onreply_manage"); end end - if KSR.pv.get("$rm")=="INVITE" then + if KSR.is_INVITE() then if KSR.tm.t_is_set("failure_route")<0 then KSR.tm.t_on_failure("ksr_failure_manage"); end @@ -133,11 +134,13 @@ function ksr_route_reqinit() KSR.x.exit(); end end - if (not KSR.pv.is_null("$ua")) - and (string.find(KSR.pv.get("$ua"), "friendly-scanner") - or string.find(KSR.pv.get("$ua"), "sipcli")) then - KSR.sl.sl_send_reply(200, "OK"); - KSR.x.exit(); + if KSR.corex.has_user_agent() > 0 then + local ua = KSR.pv.gete("$ua"); + if string.find(ua, "friendly-scanner") + or string.find(ua, "sipcli") then + KSR.sl.sl_send_reply(200, "OK"); + KSR.x.exit(); + end end if KSR.maxfwd.process_maxfwd(10) < 0 then @@ -145,9 +148,9 @@ function ksr_route_reqinit() KSR.x.exit(); end - if KSR.pv.get("$rm")=="OPTIONS" - and KSR.is_myself(KSR.pv.get("$ru")) - and KSR.pv.is_null("$rU") then + if KSR.is_OPTIONS() + and KSR.is_myself_ruri() + and KSR.corex.has_ruri_user() < 0 then KSR.sl.sl_send_reply(200,"Keepalive"); KSR.x.exit(); end @@ -169,20 +172,20 @@ function ksr_route_withindlg() -- take the path determined by record-routing if KSR.rr.loose_route()>0 then ksr_route_dlguri(); - if KSR.pv.get("$rm")=="BYE" then + if KSR.is_BYE() then KSR.setflag(FLT_ACC); -- do accounting ... KSR.setflag(FLT_ACCFAILED); -- ... even if the transaction fails - elseif KSR.pv.get("$rm")=="ACK" then + elseif KSR.is_ACK() then -- ACK is forwarded statelessly ksr_route_natmanage(); - elseif KSR.pv.get("$rm")=="NOTIFY" then + elseif KSR.is_NOTIFY() then -- Add Record-Route for in-dialog NOTIFY as per RFC 6665. KSR.rr.record_route(); end ksr_route_relay(); KSR.x.exit(); end - if KSR.pv.get("$rm")=="ACK" then + if KSR.is_ACK() then if KSR.tm.t_check_trans() >0 then -- no loose-route, but stateful ACK; -- must be an ACK after a 487 @@ -200,7 +203,7 @@ end -- Handle SIP registrations function ksr_route_registrar() - if KSR.pv.get("$rm")~="REGISTER" then return 1; end + if not KSR.is_REGISTER() then return 1; end if KSR.isflagset(FLT_NATS) then KSR.setbflag(FLB_NATB); -- do SIP NAT pinging @@ -227,7 +230,7 @@ function ksr_route_location() end -- when routing via usrloc, log the missed calls also - if KSR.pv.get("$rm")=="INVITE" then + if KSR.is_INVITE() then KSR.setflag(FLT_ACCMISSED); end @@ -239,29 +242,29 @@ end -- IP authorization and user uthentication function ksr_route_auth() - if KSR.pv.get("$rm")~="REGISTER" then + if not KSR.is_REGISTER() then if KSR.permissions.allow_source_address(1)>0 then -- source IP allowed return 1; end end - if KSR.pv.get("$rm")=="REGISTER" or KSR.is_myself(KSR.pv.get("$fu")) then + if KSR.is_REGISTER() or KSR.is_myself_furi() then -- authenticate requests if KSR.auth_db.auth_check(KSR.pv.get("$fd"), "subscriber", 1)<0 then KSR.auth.auth_challenge(KSR.pv.get("$fd"), 0); KSR.x.exit(); end -- user authenticated - remove auth header - if not string.find("REGISTER,PUBLISH", KSR.pv.get("$rm")) then + if not KSR.is_method_in("RP") then KSR.auth.consume_credentials(); end end -- if caller is not local subscriber, then check if it calls -- a local destination, otherwise deny, not an open relay here - if (not KSR.is_myself(KSR.pv.get("$fu")) - and (not KSR.is_myself(KSR.pv.get("$ru")))) then + if (not KSR.is_myself_furi()) + and (not KSR.is_myself_ruri()) then KSR.sl.sl_send_reply(403,"Not relaying"); KSR.x.exit(); end @@ -273,7 +276,7 @@ end function ksr_route_natdetect() KSR.force_rport(); if KSR.nathelper.nat_uac_test(19)>0 then - if KSR.pv.get("$rm")=="REGISTER" then + if KSR.is_REGISTER() then KSR.nathelper.fix_nated_register(); elseif KSR.siputils.is_first_hop()>0 then KSR.nathelper.set_contact_alias(); @@ -323,7 +326,7 @@ end -- Routing to foreign domains function ksr_route_sipout() - if KSR.is_myself(KSR.pv.get("$ru")) then return 1; end + if KSR.is_myself_ruri() then return 1; end KSR.hdr.append("P-Hint: outbound\r\n"); ksr_route_relay(); diff --git a/misc/examples/kemi/kamailio-basic-kemi-python.py b/misc/examples/kemi/kamailio-basic-kemi-python.py index 611a20408..dc0f7957d 100644 --- a/misc/examples/kemi/kamailio-basic-kemi-python.py +++ b/misc/examples/kemi/kamailio-basic-kemi-python.py @@ -60,7 +60,7 @@ class kamailio: return 1; # CANCEL processing - if KSR.pv.get("$rm") == "CANCEL" : + if KSR.is_CANCEL() : if KSR.tm.t_check_trans()>0 : self.ksr_route_relay(msg); return 1; @@ -86,7 +86,7 @@ class kamailio: # record routing for dialog forming requests (in case they are routed) # - remove preloaded route headers KSR.hdr.remove("Route"); - if "INVITE|SUBSCRIBE".find(KSR.pv.get("$rm"))!=-1 : + if KSR.is_method_in("IS") : KSR.rr.record_route(); @@ -105,7 +105,7 @@ class kamailio: if self.ksr_route_registrar(msg)==-255 : return 1; - if KSR.pv.is_null("$rU") : + if KSR.corex.has_ruri_user() < 0 : # request with no Username in RURI KSR.sl.sl_send_reply(484,"Address Incomplete"); return 1; @@ -121,15 +121,15 @@ class kamailio: def ksr_route_relay(self, msg): # enable additional event routes for forwarded requests # - serial forking, RTP relaying handling, a.s.o. - if "INVITE,BYE,SUBSCRIBE,UPDATE".find(KSR.pv.get("$rm"))!=-1 : + if KSR.is_method_in("IBSU") : if KSR.tm.t_is_set("branch_route")<0 : KSR.tm.t_on_branch("ksr_branch_manage"); - if "INVITE,SUBSCRIBE,UPDATE".find(KSR.pv.get("$rm"))!=-1 : + if KSR.is_method_in("ISU") : if KSR.tm.t_is_set("onreply_route")<0 : KSR.tm.t_on_reply("ksr_onreply_manage"); - if KSR.pv.get("$rm")=="INVITE" : + if KSR.is_INVITE() : if KSR.tm.t_is_set("failure_route")<0 : KSR.tm.t_on_failure("ksr_failure_manage"); @@ -156,9 +156,10 @@ class kamailio: KSR.pv.seti("$sht(ipban=>$si)", 1); return -255; - if not KSR.pv.is_null("$ua") : - if (KSR.pv.get("$ua").find("friendly-scanner")!=-1 - or KSR.pv.get("$ua").find("sipcli")!=-1) : + if KSR.corex.has_user_agent() > 0 : + ua = KSR.pv.gete("$ua") + if (ua.find("friendly-scanner")!=-1 + or ua.find("sipcli")!=-1) : KSR.sl.sl_send_reply(200, "Processed"); return -255; @@ -166,9 +167,9 @@ class kamailio: KSR.sl.sl_send_reply(483,"Too Many Hops"); return -255; - if (KSR.pv.get("$rm")=="OPTIONS" - and KSR.is_myself(KSR.pv.get("$ru")) - and KSR.pv.is_null("$rU")) : + if (KSR.is_OPTIONS() + and KSR.is_myself_ruri() + and KSR.corex.has_ruri_user() < 0) : KSR.sl.sl_send_reply(200,"Keepalive"); return -255; @@ -188,23 +189,23 @@ class kamailio: if KSR.rr.loose_route()>0 : if self.ksr_route_dlguri(msg)==-255 : return -255; - if KSR.pv.get("$rm")=="BYE" : + if KSR.is_BYE() : # do accounting ... KSR.setflag(FLT_ACC); # ... even if the transaction fails KSR.setflag(FLT_ACCFAILED); - elif KSR.pv.get("$rm")=="ACK" : + elif KSR.is_ACK() : # ACK is forwarded statelessly if self.ksr_route_natmanage(msg)==-255 : return -255; - elif KSR.pv.get("$rm")=="NOTIFY" : + elif KSR.is_NOTIFY() : # Add Record-Route for in-dialog NOTIFY as per RFC 6665. KSR.rr.record_route(); self.ksr_route_relay(msg); return -255; - if KSR.pv.get("$rm")=="ACK" : + if KSR.is_ACK() : if KSR.tm.t_check_trans() >0 : # no loose-route, but stateful ACK; # must be an ACK after a 487 @@ -221,7 +222,7 @@ class kamailio: # Handle SIP registrations def ksr_route_registrar(self, msg): - if KSR.pv.get("$rm") != "REGISTER" : + if not KSR.is_REGISTER() : return 1; if KSR.isflagset(FLT_NATS) : KSR.setbflag(FLB_NATB); @@ -247,7 +248,7 @@ class kamailio: return -255; # when routing via usrloc, log the missed calls also - if KSR.pv.get("$rm")=="INVITE" : + if KSR.is_INVITE() : KSR.setflag(FLT_ACCMISSED); self.ksr_route_relay(msg); @@ -258,25 +259,24 @@ class kamailio: # IP authorization and user uthentication def ksr_route_auth(self, msg): - if KSR.pv.get("$rm") != "REGISTER" : + if not KSR.is_REGISTER() : if KSR.permissions.allow_source_address(1)>0 : # source IP allowed return 1; - if KSR.pv.get("$rm")=="REGISTER" or KSR.is_myself(KSR.pv.get("$fu")) : + if KSR.is_REGISTER() or KSR.is_myself_furi() : # authenticate requests if KSR.auth_db.auth_check(KSR.pv.get("$fd"), "subscriber", 1)<0 : KSR.auth.auth_challenge(KSR.pv.get("$fd"), 0); return -255; # user authenticated - remove auth header - if not "REGISTER,PUBLISH".find(KSR.pv.get("$rm"))!=-1 : + if not KSR.is_method_in("RP") : KSR.auth.consume_credentials(); # if caller is not local subscriber, then check if it calls # a local destination, otherwise deny, not an open relay here - if (not KSR.is_myself(KSR.pv.get("$fu")) - and (not KSR.is_myself(KSR.pv.get("$ru")))) : + if (not KSR.is_myself_furi()) and (not KSR.is_myself_ruri()) : KSR.sl.sl_send_reply(403,"Not relaying"); return -255; @@ -287,7 +287,7 @@ class kamailio: def ksr_route_natdetect(self, msg): KSR.force_rport(); if KSR.nathelper.nat_uac_test(19)>0 : - if KSR.pv.get("$rm")=="REGISTER" : + if KSR.is_REGISTER() : KSR.nathelper.fix_nated_register(); elif KSR.siputils.is_first_hop()>0 : KSR.nathelper.set_contact_alias(); @@ -331,7 +331,7 @@ class kamailio: # Routing to foreign domains def ksr_route_sipout(self, msg): - if KSR.is_myself(KSR.pv.get("$ru")) : + if KSR.is_myself_ruri() : return 1; KSR.hdr.append("P-Hint: outbound\r\n"); diff --git a/misc/examples/kemi/kamailio-basic-kemi-sqlang.sq b/misc/examples/kemi/kamailio-basic-kemi-sqlang.sq index 41146ab51..b1c3ae4a7 100644 --- a/misc/examples/kemi/kamailio-basic-kemi-sqlang.sq +++ b/misc/examples/kemi/kamailio-basic-kemi-sqlang.sq @@ -20,7 +20,6 @@ local FLAGS = { // equivalent of request_route{} function ksr_request_route() { - local METHOD = KSR.pv.get("$rm"); // KSR.sl.sl_send_reply(100,"Intelligent trying"); // KSR.info("===== request - from kamailio SQLang script\n"); @@ -31,7 +30,7 @@ function ksr_request_route() ksr_route_natdetect(); // CANCEL processing - if (METHOD == "CANCEL") { + if (KSR.is_CANCEL()) { if(KSR.tm.t_check_trans()>0) { ksr_route_relay(); } @@ -44,11 +43,13 @@ function ksr_request_route() // -- only initial requests (no To tag) // handle retransmissions - if (KSR.tmx.t_precheck_trans()>0) { - KSR.tm.t_check_trans(); - return; + if (!KSR.is_ACK()) { + if (KSR.tmx.t_precheck_trans()>0) { + KSR.tm.t_check_trans(); + return; + } + if (KSR.tm.t_check_trans()==0) { return; } } - if (KSR.tm.t_check_trans()==0) { return; } // authentication ksr_route_auth(); @@ -56,12 +57,12 @@ function ksr_request_route() // record routing for dialog forming requests (in case they are routed) // - remove preloaded route headers KSR.hdr.remove("Route"); - if (METHOD=="INVITE" || METHOD=="SUBSCRIBE") { + if (KSR.is_method_in("IS")) { KSR.rr.record_route(); } // account only INVITEs - if (METHOD=="INVITE") { + if (KSR.is_INVITE()) { KSR.setflag(FLAGS.FLT_ACC); // do accounting } @@ -73,7 +74,7 @@ function ksr_request_route() // handle registrations ksr_route_registrar(); - if (KSR.pv.is_null("$rU")) { + if (KSR.corex.has_ruri_user() < 0) { // request with no Username in RURI KSR.sl.sl_send_reply(484, "Address Incomplete"); return; @@ -90,20 +91,18 @@ function ksr_route_relay() { // enable additional event routes for forwarded requests // - serial forking, RTP relaying handling, a.s.o. - local METHOD = KSR.pv.get("$rm"); - if (METHOD=="INVITE" || METHOD=="BYE" || METHOD=="SUBSCRIBE" - || METHOD=="UPDATE") { + if (KSR.is_method_in("IBSU")) { if (KSR.tm.t_is_set("branch_route")<0) { KSR.tm.t_on_branch("ksr_branch_manage"); } } - if (METHOD=="INVITE" || METHOD=="SUBSCRIBE" || METHOD=="UPDATE") { + if (KSR.is_method_in("ISU")) { if (KSR.tm.t_is_set("onreply_route")<0) { KSR.tm.t_on_reply("ksr_onreply_manage"); } } - if (METHOD=="INVITE") { + if (KSR.is_INVITE()) { if (KSR.tm.t_is_set("failure_route")<0) { KSR.tm.t_on_failure("ksr_failure_manage"); } @@ -119,7 +118,7 @@ function ksr_route_relay() // Per SIP request initial checks function ksr_route_reqinit() { - if (!KSR.is_myself(KSR.pv.get("$si"))) { + if (!KSR.is_myself_srcip()) { if (!KSR.pv.is_null("$sht(ipban=>$si)")) { // ip is already blocked KSR.dbg("request from blocked IP - " + KSR.pv.get("$rm") @@ -135,7 +134,7 @@ function ksr_route_reqinit() KSR.x.exit(); } } - if (!KSR.pv.is_null("$ua")) { + if (KSR.corex.has_user_agent()>0) { local UA = KSR.pv.get("$ua"); // if (sipscanregex.match(UA)) { if (UA.find("friendly-scanner")!=null || UA.find("sipcli")!=null) { @@ -149,9 +148,9 @@ function ksr_route_reqinit() KSR.x.exit(); } - if (KSR.pv.get("$rm")=="OPTIONS" - && KSR.is_myself(KSR.pv.get("$ru")) - && KSR.pv.is_null("$rU")) { + if (KSR.is_OPTIONS() + && KSR.is_myself_ruri() + && KSR.corex.has_ruri_user() < 0) { KSR.sl.sl_send_reply(200,"Keepalive"); KSR.x.exit(); } @@ -169,25 +168,24 @@ function ksr_route_withindlg() { if (KSR.siputils.has_totag()<0) { return; } - local METHOD = KSR.pv.get("$rm"); // sequential request withing a dialog should // take the path determined by record-routing if (KSR.rr.loose_route()>0) { ksr_route_dlguri(); - if (METHOD=="BYE") { + if (KSR.is_BYE()) { KSR.setflag(FLAGS.FLT_ACC); // do accounting ... KSR.setflag(FLAGS.FLT_ACCFAILED); // ... even if the transaction fails - } else if (METHOD=="ACK") { + } else if (KSR.is_ACK()) { // ACK is forwarded statelessly ksr_route_natmanage(); - } else if (METHOD=="NOTIFY") { + } else if (KSR.is_NOTIFY()) { // Add Record-Route for in-dialog NOTIFY as per RFC 6665. KSR.rr.record_route(); } ksr_route_relay(); KSR.x.exit(); } - if (METHOD=="ACK") { + if (KSR.is_ACK()) { if (KSR.tm.t_check_trans() >0) { // no loose-route, but stateful ACK; // must be an ACK after a 487 @@ -206,7 +204,7 @@ function ksr_route_withindlg() // Handle SIP registrations function ksr_route_registrar() { - if (KSR.pv.get("$rm")!="REGISTER") { return; } + if (!KSR.is_REGISTER()) { return; } if (KSR.isflagset(FLAGS.FLT_NATS)) { KSR.setbflag(FLAGS.FLB_NATB); // do SIP NAT pinging @@ -234,7 +232,7 @@ function ksr_route_location() } // when routing via usrloc, log the missed calls also - if (KSR.pv.get("$rm")=="INVITE") { + if (KSR.is_INVITE()) { KSR.setflag(FLAGS.FLT_ACCMISSED); } @@ -246,30 +244,29 @@ function ksr_route_location() // IP authorization and user uthentication function ksr_route_auth() { - local METHOD = KSR.pv.get("$rm"); - if (METHOD!="REGISTER") { + if (!KSR.is_REGISTER()) { if (KSR.permissions.allow_source_address(1)>0) { // source IP allowed return; } } - if (METHOD=="REGISTER" || KSR.is_myself(KSR.pv.get("$fu"))) { + if (KSR.is_REGISTER() || KSR.is_myself_furi()) { // authenticate requests if (KSR.auth_db.auth_check(KSR.pv.get("$fd"), "subscriber", 1)<0) { KSR.auth.auth_challenge(KSR.pv.get("$fd"), 0); KSR.x.exit(); } // user authenticated - remove auth header - if (METHOD!="REGISTER" && METHOD!="PUBLISH") { + if (!KSR.is_method_in("RP")) { KSR.auth.consume_credentials(); } } // if caller is not local subscriber, then check if it calls // a local destination, otherwise deny, not an open relay here - if ((! KSR.is_myself(KSR.pv.get("$fu")) - && (! KSR.is_myself(KSR.pv.get("$ru"))))) { + if ((!KSR.is_myself_furi()) + && (!KSR.is_myself_ruri())) { KSR.sl.sl_send_reply(403,"Not relaying"); KSR.x.exit(); } @@ -282,7 +279,7 @@ function ksr_route_natdetect() { KSR.force_rport(); if (KSR.nathelper.nat_uac_test(19)>0) { - if (KSR.pv.get("$rm")=="REGISTER") { + if (KSR.is_REGISTER()) { KSR.nathelper.fix_nated_register(); } else if (KSR.siputils.is_first_hop()>0) { KSR.nathelper.set_contact_alias(); @@ -335,7 +332,7 @@ function ksr_route_dlguri() // Routing to foreign domains function ksr_route_sipout() { - if (KSR.is_myself(KSR.pv.get("$ru"))) { return; } + if (KSR.is_myself_ruri()) { return; } KSR.hdr.append_hf("P-Hint: outbound\r\n"); ksr_route_relay(); diff --git a/misc/examples/kemi/kamailio-basic-kemi.cfg b/misc/examples/kemi/kamailio-basic-kemi.cfg index 507b7afa1..805d78c61 100644 --- a/misc/examples/kemi/kamailio-basic-kemi.cfg +++ b/misc/examples/kemi/kamailio-basic-kemi.cfg @@ -4,7 +4,7 @@ # - web: http://www.kamailio.org # - git: http://sip-router.org # -# Direct your questions about this file to: +# Direct your questions about this file to: # # Refer to the Core CookBook at http://www.kamailio.org/wiki/ # for an explanation of possible statements, functions and parameters. diff --git a/misc/examples/mixed/kamailio-minimal-anycast.cfg b/misc/examples/mixed/kamailio-minimal-anycast.cfg new file mode 100644 index 000000000..0c7c6027f --- /dev/null +++ b/misc/examples/mixed/kamailio-minimal-anycast.cfg @@ -0,0 +1,347 @@ +#!KAMAILIO +# +# Kamailio (OpenSER) SIP Server v5.2 - default configuration script +# - web: https://www.kamailio.org +# - git: https://github.com/kamailio/kamailio +# +# Direct your questions about this file to: +# +# Refer to the Core CookBook at https://www.kamailio.org/wiki/ +# for an explanation of possible statements, functions and parameters. +# + +####### Defined Values ######### + +# the specific address for this node +#!define IPADDR_THISNODE "192.168.178.75" +#!subst "/IPADDR_THISNODE/192.168.178.75/" + +# the specific address of the pair node in the anycast deployment +#!define IPADDR_PAIRNODE "192.168.178.74" +#!subst "/IPADDR_PAIRNODE/192.168.178.74/" + +# the anycast address +#!define IPADDR_ANYCAST "192.168.178.80" +#!subst "/IPADDR_ANYCAST/192.168.178.80/" + +# the address of the main sip server where to route requests to +# [UA1] <===> [ANYCASTNODE] <===> [MAINSRV] <===> [ANYCASTNODE] <===> [UA2] +#!define IPADDR_MAINSRV "192.168.178.40" +#!subst "/IPADDR_MAINSRV/192.168.178.40/" + +#!define MULTIDOMAIN 0 + +# - flags +# FLT_ - per transaction (message) flags +# FLB_ - per branch flags +#!define FLT_ACC 1 +#!define FLT_ACCMISSED 2 +#!define FLT_ACCFAILED 3 +#!define FLT_NATS 5 + +#!define FLB_NATB 6 +#!define FLB_NATSIPPING 7 + +####### Global Parameters ######### + +### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR +#!ifdef WITH_DEBUG +debug=4 +log_stderror=yes +#!else +debug=2 +log_stderror=no +#!endif + +memdbg=5 +memlog=5 + +log_facility=LOG_LOCAL0 +log_prefix="{$mt $hdr(CSeq) $ci} " + +/* number of SIP routing processes */ +children=8 + +server_id = 10 +xavp_via_params = "via" + +/* uncomment the next line to disable TCP (default on) */ +# disable_tcp=yes + +/* uncomment the next line to disable the auto discovery of local aliases + * based on reverse DNS on IPs (default on) */ +# auto_aliases=no + +/* add local domain aliases */ +# alias="sip.mydomain.com" + +/* listen on local and anycast addresses */ +listen=udp:IPADDR_THISNODE:5060 +# listen=udp:IPADDR_ANYCAST:5060 + + +####### Custom Parameters ######### + +/* These parameters can be modified runtime via RPC interface + * - see the documentation of 'cfg_rpc' module. + * + * Format: group.id = value 'desc' description + * Access: $sel(cfg_get.group.id) or @cfg_get.group.id */ + +####### Modules Section ######## + +/* set paths to location of modules */ +loadmodule "jsonrpcs.so" +loadmodule "kex.so" +loadmodule "corex.so" +loadmodule "tm.so" +loadmodule "tmx.so" +loadmodule "sl.so" +loadmodule "rr.so" +loadmodule "pv.so" +loadmodule "maxfwd.so" +loadmodule "textops.so" +loadmodule "siputils.so" +loadmodule "xlog.so" +loadmodule "sanity.so" +loadmodule "ctl.so" +loadmodule "cfg_rpc.so" +loadmodule "acc.so" +loadmodule "counters.so" + +# ----------------- setting module-specific parameters --------------- + + +# ----- jsonrpcs params ----- +modparam("jsonrpcs", "pretty_format", 1) +/* set the path to RPC fifo control file */ +# modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo") +/* set the path to RPC unix socket control file */ +# modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock") + +# ----- ctl params ----- +/* set the path to RPC unix socket control file */ +# modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl") + +# ----- tm params ----- +# auto-discard branches from previous serial forking leg +modparam("tm", "failure_reply_mode", 3) +# default retransmission timeout: 30sec +modparam("tm", "fr_timer", 30000) +# default invite retransmission timeout after 1xx: 120sec +modparam("tm", "fr_inv_timer", 120000) + +# ----- rr params ----- +# set next param to 1 to add value to ;lr param (helps with some UAs) +modparam("rr", "enable_full_lr", 0) +# do not append from tag to the RR (no need for this script) +modparam("rr", "append_fromtag", 0) + +# ----- acc params ----- +/* what special events should be accounted ? */ +modparam("acc", "early_media", 0) +modparam("acc", "report_ack", 0) +modparam("acc", "report_cancels", 0) +/* by default ww do not adjust the direct of the sequential requests. + * if you enable this parameter, be sure the enable "append_fromtag" + * in "rr" module */ +modparam("acc", "detect_direction", 0) +/* account triggers (flags) */ +modparam("acc", "log_flag", FLT_ACC) +modparam("acc", "log_missed_flag", FLT_ACCMISSED) +modparam("acc", "log_extra", + "src_user=$fU;src_domain=$fd;src_ip=$si;" + "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd") +modparam("acc", "failed_transaction_flag", FLT_ACCFAILED) + +####### Routing Logic ######## + + +/* Main SIP request routing logic + * - processing of any incoming SIP request starts with this route + * - note: this is the same as route { ... } */ +request_route { + + # per request initial checks + route(REQINIT); + + # CANCEL processing + if (is_method("CANCEL")) { + if (t_check_trans()) { + route(RELAY); + } + exit; + } + + # handle retransmissions + if (!is_method("ACK")) { + if(t_precheck_trans()) { + t_check_trans(); + exit; + } + t_check_trans(); + } + + # handle requests within SIP dialogs + route(WITHINDLG); + + ### only initial requests (no To tag) + + # record routing for dialog forming requests (in case they are routed) + # - remove preloaded route headers + remove_hf("Route"); + if (is_method("INVITE|SUBSCRIBE")) { + record_route(); + } + + # account only INVITEs + if (is_method("INVITE")) { + setflag(FLT_ACC); # do accounting + } + + if ($rU==$null) { + # request with no Username in RURI + sl_send_reply("484","Address Incomplete"); + exit; + } + + if($si != IPADDR_MAINSRV) { + # received from client - send to main sip server + $du = "sip:" + IPADDR_MAINSRV; + route(RELAY); + exit; + } + + # received from main server - send to client + # add via tokens for anycast handling + via_add_srvid("1"); + $xavp(via=>node) = IPADDR_THISNODE; + via_add_xavp_params("1"); + route(RELAY); + exit; +} + +# Wrapper for relaying requests +route[RELAY] { + + # enable additional event routes for forwarded requests + # - serial forking, RTP relaying handling, a.s.o. + if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) { + if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH"); + } + if (is_method("INVITE|SUBSCRIBE|UPDATE")) { + if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY"); + } + if (is_method("INVITE")) { + if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE"); + } + + if (!t_relay()) { + sl_reply_error(); + } + exit; +} + +# Per SIP request initial checks +route[REQINIT] { + if($ua =~ "friendly-scanner|sipcli|VaxSIPUserAgent") { + # silent drop for scanners - uncomment next line if want to reply + # sl_send_reply("200", "OK"); + exit; + } + + if (!mf_process_maxfwd_header("10")) { + sl_send_reply("483","Too Many Hops"); + exit; + } + + if(is_method("OPTIONS") && uri==myself && $rU==$null) { + sl_send_reply("200","Keepalive"); + exit; + } + + if(!sanity_check("1511", "7")) { + xlog("Malformed SIP message from $si:$sp\n"); + exit; + } +} + +# Handle requests within SIP dialogs +route[WITHINDLG] { + if (!has_totag()) return; + + # sequential request withing a dialog should + # take the path determined by record-routing + if (loose_route()) { + if (is_method("BYE")) { + setflag(FLT_ACC); # do accounting ... + setflag(FLT_ACCFAILED); # ... even if the transaction fails + } else if ( is_method("NOTIFY") ) { + # Add Record-Route for in-dialog NOTIFY as per RFC 6665. + record_route(); + } + route(RELAY); + exit; + } + + if ( is_method("ACK") ) { + if ( t_check_trans() ) { + # no loose-route, but stateful ACK; + # must be an ACK after a 487 + # or e.g. 404 from upstream server + route(RELAY); + exit; + } else { + # ACK without matching transaction ... ignore and discard + exit; + } + } + sl_send_reply("404","Not here"); + exit; +} + +# TM manage for outgoing branches +branch_route[MANAGE_BRANCH] { + xdbg("new branch [$T_branch_idx] to $ru\n"); +} + +# TM manage for incoming replies +onreply_route[MANAGE_REPLY] { + xdbg("incoming reply\n"); +} + +# TM manage for failure routing cases +failure_route[MANAGE_FAILURE] { + if (t_is_canceled()) exit; +} + +# Core handling for incoming replies +reply_route { + if($si != IPADDR_MAINSRV) { + if($si == IPADDR_PAIRNODE) { + # receiving a transparent proxied request from pair server + if(is_present_hf("X-Src-Addr")) { + # set the original source IP address + xinfo("setting source address: $hdr(X-Src-Addr)\n"); + set_source_address("$hdr(X-Src-Addr)"); + remove_hf("X-Src-Addr"); + } + # switch received socket to anycast address + set_recv_socket("udp:IPADDR_ANYCAST:5060"); + } else { + # receiving response from client + # response belongs to a transaction? + # - yes: route it, request was handled here + # - no: send to pair server + if(!t_check_trans()) { + append_hf("X-Src-Addr: $su\r\n"); + # $var(vd) = $(hdr(Via){s.select, ,-1}{param.value,node}); + $var(vd) = $sel(via.params["node"]); + xinfo("via param domain: $var(vd)\n"); + sendx("sip:$var(vd)", "udp:IPADDR_THISNODE:5060", "$mbu"); + drop(); + } + } + } + # from now on, the usual sip response processing +} diff --git a/misc/examples/mixed/kamailio-minimal-proxy.cfg b/misc/examples/mixed/kamailio-minimal-proxy.cfg new file mode 100644 index 000000000..3d65fe85f --- /dev/null +++ b/misc/examples/mixed/kamailio-minimal-proxy.cfg @@ -0,0 +1,280 @@ +#!KAMAILIO +# +# Kamailio (OpenSER) SIP Server v5.2 - default configuration script +# - web: https://www.kamailio.org +# - git: https://github.com/kamailio/kamailio +# +# Direct your questions about this file to: +# +# Refer to the Core CookBook at https://www.kamailio.org/wiki/ +# for an explanation of possible statements, functions and parameters. +# + +####### Defined Values ######### + +#!define MULTIDOMAIN 0 + +# - flags +# FLT_ - per transaction (message) flags +# FLB_ - per branch flags +#!define FLT_ACC 1 +#!define FLT_ACCMISSED 2 +#!define FLT_ACCFAILED 3 +#!define FLT_NATS 5 + +#!define FLB_NATB 6 +#!define FLB_NATSIPPING 7 + +####### Global Parameters ######### + +### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR +debug=2 +log_stderror=no + +memdbg=5 +memlog=5 + +log_facility=LOG_LOCAL0 +log_prefix="{$mt $hdr(CSeq) $ci} " + +/* number of SIP routing processes */ +children=2 + +/* uncomment the next line to disable TCP (default on) */ +# disable_tcp=yes + +/* uncomment the next line to disable the auto discovery of local aliases + * based on reverse DNS on IPs (default on) */ +# auto_aliases=no + +/* add local domain aliases */ +# alias="sip.mydomain.com" + +/* listen addresses */ +# listen=udp:127.0.0.1:5060 + + +####### Custom Parameters ######### + +/* These parameters can be modified runtime via RPC interface + * - see the documentation of 'cfg_rpc' module. + * + * Format: group.id = value 'desc' description + * Access: $sel(cfg_get.group.id) or @cfg_get.group.id */ + +####### Modules Section ######## + +/* set paths to location of modules */ +loadmodule "jsonrpcs.so" +loadmodule "kex.so" +loadmodule "corex.so" +loadmodule "tm.so" +loadmodule "tmx.so" +loadmodule "sl.so" +loadmodule "rr.so" +loadmodule "pv.so" +loadmodule "maxfwd.so" +loadmodule "textops.so" +loadmodule "siputils.so" +loadmodule "xlog.so" +loadmodule "sanity.so" +loadmodule "ctl.so" +loadmodule "cfg_rpc.so" +loadmodule "acc.so" +loadmodule "counters.so" + +# ----------------- setting module-specific parameters --------------- + + +# ----- jsonrpcs params ----- +modparam("jsonrpcs", "pretty_format", 1) +/* set the path to RPC fifo control file */ +# modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo") +/* set the path to RPC unix socket control file */ +# modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock") + +# ----- ctl params ----- +/* set the path to RPC unix socket control file */ +# modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl") + +# ----- tm params ----- +# auto-discard branches from previous serial forking leg +modparam("tm", "failure_reply_mode", 3) +# default retransmission timeout: 30sec +modparam("tm", "fr_timer", 30000) +# default invite retransmission timeout after 1xx: 120sec +modparam("tm", "fr_inv_timer", 120000) + +# ----- rr params ----- +# set next param to 1 to add value to ;lr param (helps with some UAs) +modparam("rr", "enable_full_lr", 0) +# do not append from tag to the RR (no need for this script) +modparam("rr", "append_fromtag", 0) + +# ----- acc params ----- +/* what special events should be accounted ? */ +modparam("acc", "early_media", 0) +modparam("acc", "report_ack", 0) +modparam("acc", "report_cancels", 0) +/* by default ww do not adjust the direct of the sequential requests. + * if you enable this parameter, be sure the enable "append_fromtag" + * in "rr" module */ +modparam("acc", "detect_direction", 0) +/* account triggers (flags) */ +modparam("acc", "log_flag", FLT_ACC) +modparam("acc", "log_missed_flag", FLT_ACCMISSED) +modparam("acc", "log_extra", + "src_user=$fU;src_domain=$fd;src_ip=$si;" + "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd") +modparam("acc", "failed_transaction_flag", FLT_ACCFAILED) + +####### Routing Logic ######## + + +/* Main SIP request routing logic + * - processing of any incoming SIP request starts with this route + * - note: this is the same as route { ... } */ +request_route { + + # per request initial checks + route(REQINIT); + + # CANCEL processing + if (is_method("CANCEL")) { + if (t_check_trans()) { + route(RELAY); + } + exit; + } + + # handle retransmissions + if (!is_method("ACK")) { + if(t_precheck_trans()) { + t_check_trans(); + exit; + } + t_check_trans(); + } + + # handle requests within SIP dialogs + route(WITHINDLG); + + ### only initial requests (no To tag) + + # record routing for dialog forming requests (in case they are routed) + # - remove preloaded route headers + remove_hf("Route"); + if (is_method("INVITE|SUBSCRIBE")) { + record_route(); + } + + # account only INVITEs + if (is_method("INVITE")) { + setflag(FLT_ACC); # do accounting + } + + if ($rU==$null) { + # request with no Username in RURI + sl_send_reply("484","Address Incomplete"); + exit; + } + + # update $du to set the destination address for proxying + $du = "sip:" + $rd + ":9"; + route(RELAY); + exit; +} + +# Wrapper for relaying requests +route[RELAY] { + + # enable additional event routes for forwarded requests + # - serial forking, RTP relaying handling, a.s.o. + if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) { + if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH"); + } + if (is_method("INVITE|SUBSCRIBE|UPDATE")) { + if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY"); + } + if (is_method("INVITE")) { + if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE"); + } + + if (!t_relay()) { + sl_reply_error(); + } + exit; +} + +# Per SIP request initial checks +route[REQINIT] { + if($ua =~ "friendly-scanner|sipcli|VaxSIPUserAgent") { + # silent drop for scanners - uncomment next line if want to reply + # sl_send_reply("200", "OK"); + exit; + } + + if (!mf_process_maxfwd_header("10")) { + sl_send_reply("483","Too Many Hops"); + exit; + } + + if(is_method("OPTIONS") && uri==myself && $rU==$null) { + sl_send_reply("200","Keepalive"); + exit; + } + + if(!sanity_check("1511", "7")) { + xlog("Malformed SIP message from $si:$sp\n"); + exit; + } +} + +# Handle requests within SIP dialogs +route[WITHINDLG] { + if (!has_totag()) return; + + # sequential request withing a dialog should + # take the path determined by record-routing + if (loose_route()) { + if (is_method("BYE")) { + setflag(FLT_ACC); # do accounting ... + setflag(FLT_ACCFAILED); # ... even if the transaction fails + } else if ( is_method("NOTIFY") ) { + # Add Record-Route for in-dialog NOTIFY as per RFC 6665. + record_route(); + } + route(RELAY); + exit; + } + + if ( is_method("ACK") ) { + if ( t_check_trans() ) { + # no loose-route, but stateful ACK; + # must be an ACK after a 487 + # or e.g. 404 from upstream server + route(RELAY); + exit; + } else { + # ACK without matching transaction ... ignore and discard + exit; + } + } + sl_send_reply("404","Not here"); + exit; +} + +# Manage outgoing branches +branch_route[MANAGE_BRANCH] { + xdbg("new branch [$T_branch_idx] to $ru\n"); +} + +# Manage incoming replies +onreply_route[MANAGE_REPLY] { + xdbg("incoming reply\n"); +} + +# Manage failure routing cases +failure_route[MANAGE_FAILURE] { + if (t_is_canceled()) exit; +} diff --git a/misc/examples/obsoleted/test.cfg b/misc/examples/obsoleted/test.cfg index 45af10601..b35c9b243 100644 --- a/misc/examples/obsoleted/test.cfg +++ b/misc/examples/obsoleted/test.cfg @@ -230,7 +230,7 @@ route[2] { if (!(src_ip==195.37.77.110) & !(proxy_authorize( "iptel.org" /* realm */, "subscriber" /* table name */ ))) { - # see comments bellow on these ACK/CANCEL exceptions + # see comments below on these ACK/CANCEL exceptions if (method=="ACK" ) { log("failed outbound authentication for ACK granted"); } else if (method=="CANCEL") { diff --git a/misc/examples/pkg/sip-router-basic.cfg b/misc/examples/pkg/sip-router-basic.cfg index e382a4013..b2a02b9c4 100644 --- a/misc/examples/pkg/sip-router-basic.cfg +++ b/misc/examples/pkg/sip-router-basic.cfg @@ -5,7 +5,7 @@ # w/o authentication, accounting, database, multi-domain support etc. # Please refer to sip-router.cfg for a more complete example # -# Direct your questions about this file to: . +# Direct your questions about this file to: . # # For more information about the various parameters, functions and statements # try http://sip-router.org/wiki/ . diff --git a/misc/examples/pkg/sip-router-oob.cfg b/misc/examples/pkg/sip-router-oob.cfg index 0521dc64f..7071ac0bb 100644 --- a/misc/examples/pkg/sip-router-oob.cfg +++ b/misc/examples/pkg/sip-router-oob.cfg @@ -20,7 +20,7 @@ # # If you look for documentation, try http://sip-router.org/wiki/. # The right mailing lists for questions about this file is -# . +# . # # Requirements: # --------------- diff --git a/misc/examples/webrtc/kamailio-default-websocket.cfg b/misc/examples/webrtc/kamailio-default-websocket.cfg new file mode 100644 index 000000000..cb6175c12 --- /dev/null +++ b/misc/examples/webrtc/kamailio-default-websocket.cfg @@ -0,0 +1,1019 @@ +#!KAMAILIO +# +# Kamailio (OpenSER) SIP Server v5.3 - default configuration script +# - web: https://www.kamailio.org +# - git: https://github.com/kamailio/kamailio +# +# Direct your questions about this file to: +# +# Refer to the Core CookBook at https://www.kamailio.org/wiki/ +# for an explanation of possible statements, functions and parameters. +# +# Note: the comments can be: +# - lines starting with #, but not the pre-processor directives, +# which start with #!, like #!define, #!ifdef, #!endif, #!else, #!trydef, +# #!subst, #!substdef, ... +# - lines starting with // +# - blocks enclosed in between /* */ +# +# Several features can be enabled using '#!define WITH_FEATURE' directives: +# +# *** To run in debug mode: +# - define WITH_DEBUG +# +# *** To enable mysql: +# - define WITH_MYSQL +# +# *** To enable authentication execute: +# - enable mysql +# - define WITH_AUTH +# - add users using 'kamctl' +# +# *** To enable IP authentication execute: +# - enable mysql +# - enable authentication +# - define WITH_IPAUTH +# - add IP addresses with group id '1' to 'address' table +# +# *** To enable persistent user location execute: +# - enable mysql +# - define WITH_USRLOCDB +# +# *** To enable presence server execute: +# - enable mysql +# - define WITH_PRESENCE +# +# *** To enable nat traversal execute: +# - define WITH_NAT +# - define WITH_RTPPROXY +# - install RTPProxy: http://www.rtpproxy.org +# - start RTPProxy +# rtpproxy -l _your_public_ip_ -s udp:localhost:7722 +# - option for NAT SIP OPTIONS keepalives: WITH_NATSIPPING +# +# *** To enable PSTN gateway routing execute: +# - define WITH_PSTN +# - set the value of pstn.gw_ip +# - check route[PSTN] for regexp routing condition +# +# *** To enable database aliases lookup execute: +# - enable mysql +# - define WITH_ALIASDB +# +# *** To enable speed dial lookup execute: +# - enable mysql +# - define WITH_SPEEDDIAL +# +# *** To enable multi-domain support execute: +# - enable mysql +# - define WITH_MULTIDOMAIN +# +# *** To enable TLS support execute: +# - adjust CFGDIR/tls.cfg as needed +# - define WITH_TLS +# +# *** To enable XMLRPC support execute: +# - define WITH_XMLRPC +# - adjust route[XMLRPC] for access policy +# +# *** To enable WebSocket support execute: +# - define WITH_WEBSOCKET +# +# *** To enable anti-flood detection execute: +# - adjust pike and htable=>ipban settings as needed (default is +# block if more than 16 requests in 2 seconds and ban for 300 seconds) +# - define WITH_ANTIFLOOD +# +# *** To block 3XX redirect replies execute: +# - define WITH_BLOCK3XX +# +# *** To block 401 and 407 authentication replies execute: +# - define WITH_BLOCK401407 +# +# *** To enable VoiceMail routing execute: +# - define WITH_VOICEMAIL +# - set the value of voicemail.srv_ip +# - adjust the value of voicemail.srv_port +# +# *** To enhance accounting execute: +# - enable mysql +# - define WITH_ACCDB +# - add following columns to database +#!ifdef ACCDB_COMMENT + ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT ''; + ALTER TABLE acc ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT ''; + ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default ''; + ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT ''; + ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT ''; + ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT ''; + ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT ''; + ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT ''; + ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default ''; + ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT ''; + ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT ''; + ALTER TABLE missed_calls ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT ''; +#!endif + +####### Include Local Config If Exists ######### +import_file "kamailio-local.cfg" + +####### Defined Values ######### + +#!define WITH_NAT +#!define WITH_TLS +#!define WITH_WEBSOCKET + +# *** Value defines - IDs used later in config +#!ifdef WITH_MYSQL +# - database URL - used to connect to database server by modules such +# as: auth_db, acc, usrloc, a.s.o. +#!ifndef DBURL +#!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio" +#!endif +#!endif +#!ifdef WITH_MULTIDOMAIN +# - the value for 'use_domain' parameters +#!define MULTIDOMAIN 1 +#!else +#!define MULTIDOMAIN 0 +#!endif + +# - flags +# FLT_ - per transaction (message) flags +# FLB_ - per branch flags +#!define FLT_ACC 1 +#!define FLT_ACCMISSED 2 +#!define FLT_ACCFAILED 3 +#!define FLT_NATS 5 + +#!define FLB_NATB 6 +#!define FLB_NATSIPPING 7 + +####### Global Parameters ######### + +### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR +#!ifdef WITH_DEBUG +debug=4 +log_stderror=yes +#!else +debug=2 +log_stderror=no +#!endif + +memdbg=5 +memlog=5 + +log_facility=LOG_LOCAL0 +log_prefix="{$mt $hdr(CSeq) $ci} " + +/* number of SIP routing processes */ +children=8 + +/* uncomment the next line to disable TCP (default on) */ +# disable_tcp=yes + +/* uncomment the next line to disable the auto discovery of local aliases + * based on reverse DNS on IPs (default on) */ +# auto_aliases=no + +/* add local domain aliases */ +# alias="sip.mydomain.com" + +/* uncomment and configure the following line if you want Kamailio to + * bind on a specific interface/port/proto (default bind on all available) */ +# listen=udp:10.0.0.10:5060 + +#!ifdef WITH_TLS +enable_tls=yes +#!endif + +/* life time of TCP connection when there is no traffic + * - a bit higher than registration expires to cope with UA behind NAT */ +tcp_connection_lifetime=3605 + +#!ifdef WITH_WEBSOCKET +tcp_accept_no_cl=yes +tcp_rd_buf_size=16384 +#!endif + +####### Custom Parameters ######### + +/* These parameters can be modified runtime via RPC interface + * - see the documentation of 'cfg_rpc' module. + * + * Format: group.id = value 'desc' description + * Access: $sel(cfg_get.group.id) or @cfg_get.group.id */ + +#!ifdef WITH_PSTN +/* PSTN GW Routing + * + * - pstn.gw_ip: valid IP or hostname as string value, example: + * pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address" + * + * - by default is empty to avoid misrouting */ +pstn.gw_ip = "" desc "PSTN GW Address" +pstn.gw_port = "" desc "PSTN GW Port" +#!endif + +#!ifdef WITH_VOICEMAIL +/* VoiceMail Routing on offline, busy or no answer + * + * - by default Voicemail server IP is empty to avoid misrouting */ +voicemail.srv_ip = "" desc "VoiceMail IP Address" +voicemail.srv_port = "5060" desc "VoiceMail Port" +#!endif + +####### Modules Section ######## + +/* set paths to location of modules */ +# mpath="/usr/local/lib/kamailio/modules/" + +#!ifdef WITH_MYSQL +loadmodule "db_mysql.so" +#!endif + +loadmodule "jsonrpcs.so" +loadmodule "kex.so" +loadmodule "corex.so" +loadmodule "tm.so" +loadmodule "tmx.so" +loadmodule "sl.so" +loadmodule "rr.so" +loadmodule "pv.so" +loadmodule "maxfwd.so" +loadmodule "usrloc.so" +loadmodule "registrar.so" +loadmodule "textops.so" +loadmodule "siputils.so" +loadmodule "xlog.so" +loadmodule "sanity.so" +loadmodule "ctl.so" +loadmodule "cfg_rpc.so" +loadmodule "acc.so" +loadmodule "counters.so" + +#!ifdef WITH_AUTH +loadmodule "auth.so" +loadmodule "auth_db.so" +#!ifdef WITH_IPAUTH +loadmodule "permissions.so" +#!endif +#!endif + +#!ifdef WITH_ALIASDB +loadmodule "alias_db.so" +#!endif + +#!ifdef WITH_SPEEDDIAL +loadmodule "speeddial.so" +#!endif + +#!ifdef WITH_MULTIDOMAIN +loadmodule "domain.so" +#!endif + +#!ifdef WITH_PRESENCE +loadmodule "presence.so" +loadmodule "presence_xml.so" +#!endif + +#!ifdef WITH_NAT +loadmodule "nathelper.so" +#!ifdef WITH_RTPPROXY +loadmodule "rtpproxy.so" +#!endif +#!endif + +#!ifdef WITH_TLS +loadmodule "tls.so" +#!endif + +#!ifdef WITH_ANTIFLOOD +loadmodule "htable.so" +loadmodule "pike.so" +#!endif + +#!ifdef WITH_XMLRPC +loadmodule "xmlrpc.so" +#!endif + +#!ifdef WITH_DEBUG +loadmodule "debugger.so" +#!endif + +#!ifdef WITH_WEBSOCKET +loadmodule "xhttp.so" +loadmodule "websocket.so" +#!endif + +# ----------------- setting module-specific parameters --------------- + + +# ----- jsonrpcs params ----- +modparam("jsonrpcs", "pretty_format", 1) +/* set the path to RPC fifo control file */ +# modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo") +/* set the path to RPC unix socket control file */ +# modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock") + +# ----- ctl params ----- +/* set the path to RPC unix socket control file */ +# modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl") + +# ----- tm params ----- +# auto-discard branches from previous serial forking leg +modparam("tm", "failure_reply_mode", 3) +# default retransmission timeout: 30sec +modparam("tm", "fr_timer", 30000) +# default invite retransmission timeout after 1xx: 120sec +modparam("tm", "fr_inv_timer", 120000) + +# ----- rr params ----- +# set next param to 1 to add value to ;lr param (helps with some UAs) +modparam("rr", "enable_full_lr", 0) +# do not append from tag to the RR (no need for this script) +modparam("rr", "append_fromtag", 0) + +# ----- registrar params ----- +modparam("registrar", "method_filtering", 1) +/* uncomment the next line to disable parallel forking via location */ +# modparam("registrar", "append_branches", 0) +/* uncomment the next line not to allow more than 10 contacts per AOR */ +# modparam("registrar", "max_contacts", 10) +/* max value for expires of registrations */ +modparam("registrar", "max_expires", 3600) +/* set it to 1 to enable GRUU */ +modparam("registrar", "gruu_enabled", 0) + +# ----- acc params ----- +/* what special events should be accounted ? */ +modparam("acc", "early_media", 0) +modparam("acc", "report_ack", 0) +modparam("acc", "report_cancels", 0) +/* by default ww do not adjust the direct of the sequential requests. + * if you enable this parameter, be sure the enable "append_fromtag" + * in "rr" module */ +modparam("acc", "detect_direction", 0) +/* account triggers (flags) */ +modparam("acc", "log_flag", FLT_ACC) +modparam("acc", "log_missed_flag", FLT_ACCMISSED) +modparam("acc", "log_extra", + "src_user=$fU;src_domain=$fd;src_ip=$si;" + "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd") +modparam("acc", "failed_transaction_flag", FLT_ACCFAILED) +/* enhanced DB accounting */ +#!ifdef WITH_ACCDB +modparam("acc", "db_flag", FLT_ACC) +modparam("acc", "db_missed_flag", FLT_ACCMISSED) +modparam("acc", "db_url", DBURL) +modparam("acc", "db_extra", + "src_user=$fU;src_domain=$fd;src_ip=$si;" + "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd") +#!endif + +# ----- usrloc params ----- +/* enable DB persistency for location entries */ +#!ifdef WITH_USRLOCDB +modparam("usrloc", "db_url", DBURL) +modparam("usrloc", "db_mode", 2) +modparam("usrloc", "use_domain", MULTIDOMAIN) +#!endif + +# ----- auth_db params ----- +#!ifdef WITH_AUTH +modparam("auth_db", "db_url", DBURL) +modparam("auth_db", "calculate_ha1", yes) +modparam("auth_db", "password_column", "password") +modparam("auth_db", "load_credentials", "") +modparam("auth_db", "use_domain", MULTIDOMAIN) + +# ----- permissions params ----- +#!ifdef WITH_IPAUTH +modparam("permissions", "db_url", DBURL) +modparam("permissions", "db_mode", 1) +#!endif + +#!endif + +# ----- alias_db params ----- +#!ifdef WITH_ALIASDB +modparam("alias_db", "db_url", DBURL) +modparam("alias_db", "use_domain", MULTIDOMAIN) +#!endif + +# ----- speeddial params ----- +#!ifdef WITH_SPEEDDIAL +modparam("speeddial", "db_url", DBURL) +modparam("speeddial", "use_domain", MULTIDOMAIN) +#!endif + +# ----- domain params ----- +#!ifdef WITH_MULTIDOMAIN +modparam("domain", "db_url", DBURL) +/* register callback to match myself condition with domains list */ +modparam("domain", "register_myself", 1) +#!endif + +#!ifdef WITH_PRESENCE +# ----- presence params ----- +modparam("presence", "db_url", DBURL) + +# ----- presence_xml params ----- +modparam("presence_xml", "db_url", DBURL) +modparam("presence_xml", "force_active", 1) +#!endif + +#!ifdef WITH_NAT +#!ifdef WITH_RTPPROXY +# ----- rtpproxy params ----- +modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722") +#!endif + +# ----- nathelper params ----- +modparam("nathelper", "natping_interval", 30) +modparam("nathelper", "ping_nated_only", 1) +modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) +modparam("nathelper", "sipping_from", "sip:pinger@kamailio.org") + +# params needed for NAT traversal in other modules +modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") +modparam("usrloc", "nat_bflag", FLB_NATB) +#!endif + +#!ifdef WITH_TLS +# ----- tls params ----- +modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg") +#!endif + +#!ifdef WITH_ANTIFLOOD +# ----- pike params ----- +modparam("pike", "sampling_time_unit", 2) +modparam("pike", "reqs_density_per_unit", 16) +modparam("pike", "remove_latency", 4) + +# ----- htable params ----- +/* ip ban htable with autoexpire after 5 minutes */ +modparam("htable", "htable", "ipban=>size=8;autoexpire=300;") +#!endif + +#!ifdef WITH_XMLRPC +# ----- xmlrpc params ----- +modparam("xmlrpc", "route", "XMLRPC"); +modparam("xmlrpc", "url_match", "^/RPC") +#!endif + +#!ifdef WITH_DEBUG +# ----- debugger params ----- +modparam("debugger", "cfgtrace", 1) +modparam("debugger", "log_level_name", "exec") +#!endif + +####### Routing Logic ######## + + +/* Main SIP request routing logic + * - processing of any incoming SIP request starts with this route + * - note: this is the same as route { ... } */ +request_route { + + # per request initial checks + route(REQINIT); + + # NAT detection + route(NATDETECT); + + # CANCEL processing + if (is_method("CANCEL")) { + if (t_check_trans()) { + route(RELAY); + } + exit; + } + + # handle retransmissions + if (!is_method("ACK")) { + if(t_precheck_trans()) { + t_check_trans(); + exit; + } + t_check_trans(); + } + + # handle requests within SIP dialogs + route(WITHINDLG); + + ### only initial requests (no To tag) + + # authentication + route(AUTH); + + # record routing for dialog forming requests (in case they are routed) + # - remove preloaded route headers + remove_hf("Route"); + if (is_method("INVITE|SUBSCRIBE")) { + record_route(); + } + + # account only INVITEs + if (is_method("INVITE")) { + setflag(FLT_ACC); # do accounting + } + + # dispatch requests to foreign domains + route(SIPOUT); + + ### requests for my local domains + + # handle presence related requests + route(PRESENCE); + + # handle registrations + route(REGISTRAR); + + if ($rU==$null) { + # request with no Username in RURI + sl_send_reply("484","Address Incomplete"); + exit; + } + + # dispatch destinations to PSTN + route(PSTN); + + # user location service + route(LOCATION); +} + +# Wrapper for relaying requests +route[RELAY] { + + # enable additional event routes for forwarded requests + # - serial forking, RTP relaying handling, a.s.o. + if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) { + if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH"); + } + if (is_method("INVITE|SUBSCRIBE|UPDATE")) { + if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY"); + } + if (is_method("INVITE")) { + if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE"); + } + + if (!t_relay()) { + sl_reply_error(); + } + exit; +} + +# Per SIP request initial checks +route[REQINIT] { +#!ifdef WITH_ANTIFLOOD + # flood detection from same IP and traffic ban for a while + # be sure you exclude checking trusted peers, such as pstn gateways + # - local host excluded (e.g., loop to self) + if(src_ip!=myself) { + if($sht(ipban=>$si)!=$null) { + # ip is already blocked + xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n"); + exit; + } + if (!pike_check_req()) { + xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n"); + $sht(ipban=>$si) = 1; + exit; + } + } +#!endif + if($ua =~ "friendly-scanner|sipcli|VaxSIPUserAgent") { + # silent drop for scanners - uncomment next line if want to reply + # sl_send_reply("200", "OK"); + exit; + } + + if (!mf_process_maxfwd_header("10")) { + sl_send_reply("483","Too Many Hops"); + exit; + } + + if(is_method("OPTIONS") && uri==myself && $rU==$null) { + sl_send_reply("200","Keepalive"); + exit; + } + + if(!sanity_check("17895", "7")) { + xlog("Malformed SIP message from $si:$sp\n"); + exit; + } +} + +# Handle requests within SIP dialogs +route[WITHINDLG] { + if (!has_totag()) return; + + # sequential request withing a dialog should + # take the path determined by record-routing + if (loose_route()) { + route(DLGURI); + if (is_method("BYE")) { + setflag(FLT_ACC); # do accounting ... + setflag(FLT_ACCFAILED); # ... even if the transaction fails + } else if ( is_method("ACK") ) { + # ACK is forwarded statelessly + route(NATMANAGE); + } else if ( is_method("NOTIFY") ) { + # Add Record-Route for in-dialog NOTIFY as per RFC 6665. + record_route(); + } + route(RELAY); + exit; + } + + if (is_method("SUBSCRIBE") && uri == myself) { + # in-dialog subscribe requests + route(PRESENCE); + exit; + } + if ( is_method("ACK") ) { + if ( t_check_trans() ) { + # no loose-route, but stateful ACK; + # must be an ACK after a 487 + # or e.g. 404 from upstream server + route(RELAY); + exit; + } else { + # ACK without matching transaction ... ignore and discard + exit; + } + } + sl_send_reply("404","Not here"); + exit; +} + +# Handle SIP registrations +route[REGISTRAR] { + if (!is_method("REGISTER")) return; + + if(isflagset(FLT_NATS)) { + setbflag(FLB_NATB); +#!ifdef WITH_NATSIPPING + # do SIP NAT pinging + setbflag(FLB_NATSIPPING); +#!endif + } + if (!save("location")) { + sl_reply_error(); + } + exit; +} + +# User location service +route[LOCATION] { + +#!ifdef WITH_SPEEDDIAL + # search for short dialing - 2-digit extension + if($rU=~"^[0-9][0-9]$") { + if(sd_lookup("speed_dial")) { + route(SIPOUT); + } + } +#!endif + +#!ifdef WITH_ALIASDB + # search in DB-based aliases + if(alias_db_lookup("dbaliases")) { + route(SIPOUT); + } +#!endif + + $avp(oexten) = $rU; + if (!lookup("location")) { + $var(rc) = $rc; + route(TOVOICEMAIL); + t_newtran(); + switch ($var(rc)) { + case -1: + case -3: + send_reply("404", "Not Found"); + exit; + case -2: + send_reply("405", "Method Not Allowed"); + exit; + } + } + + # when routing via usrloc, log the missed calls also + if (is_method("INVITE")) { + setflag(FLT_ACCMISSED); + } + + route(RELAY); + exit; +} + +# Presence server processing +route[PRESENCE] { + if(!is_method("PUBLISH|SUBSCRIBE")) return; + + if(is_method("SUBSCRIBE") && $hdr(Event)=="message-summary") { + route(TOVOICEMAIL); + # returns here if no voicemail server is configured + sl_send_reply("404", "No voicemail service"); + exit; + } + +#!ifdef WITH_PRESENCE + if (!t_newtran()) { + sl_reply_error(); + exit; + } + + if(is_method("PUBLISH")) { + handle_publish(); + t_release(); + } else if(is_method("SUBSCRIBE")) { + handle_subscribe(); + t_release(); + } + exit; +#!endif + + # if presence enabled, this part will not be executed + if (is_method("PUBLISH") || $rU==$null) { + sl_send_reply("404", "Not here"); + exit; + } + return; +} + +# IP authorization and user authentication +route[AUTH] { +#!ifdef WITH_AUTH + +#!ifdef WITH_IPAUTH + if((!is_method("REGISTER")) && allow_source_address()) { + # source IP allowed + return; + } +#!endif + + if (is_method("REGISTER") || from_uri==myself) { + # authenticate requests + if (!auth_check("$fd", "subscriber", "1")) { + auth_challenge("$fd", "0"); + exit; + } + # user authenticated - remove auth header + if(!is_method("REGISTER|PUBLISH")) + consume_credentials(); + } + # if caller is not local subscriber, then check if it calls + # a local destination, otherwise deny, not an open relay here + if (from_uri!=myself && uri!=myself) { + sl_send_reply("403","Not relaying"); + exit; + } + +#!else + + # authentication not enabled - do not relay at all to foreign networks + if(uri!=myself) { + sl_send_reply("403","Not relaying"); + exit; + } + +#!endif + return; +} + +# Caller NAT detection +route[NATDETECT] { +#!ifdef WITH_NAT + force_rport(); + if (nat_uac_test("83")) { + if (is_method("REGISTER")) { + fix_nated_register(); + } else { + if(is_first_hop()) { + set_contact_alias(); + } + } + setflag(FLT_NATS); + } +#!endif + return; +} + +# RTPProxy control and signaling updates for NAT traversal +route[NATMANAGE] { +#!ifdef WITH_NAT + if (is_request()) { + if(has_totag()) { + if(check_route_param("nat=yes")) { + setbflag(FLB_NATB); + } + } + } + if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return; + +#!ifdef WITH_RTPPROXY + if(nat_uac_test("8")) { + rtpproxy_manage("co"); + } else { + rtpproxy_manage("cor"); + } +#!endif + + if (is_request()) { + if (!has_totag()) { + if(t_is_branch_route()) { + add_rr_param(";nat=yes"); + } + } + } + if (is_reply()) { + if(isbflagset(FLB_NATB) || nat_uac_test("64")) { + if(is_first_hop()) + set_contact_alias(); + } + } +#!endif + return; +} + +# URI update for dialog requests +route[DLGURI] { +#!ifdef WITH_NAT + if(!isdsturiset()) { + handle_ruri_alias(); + } +#!endif + return; +} + +# Routing to foreign domains +route[SIPOUT] { + if (uri==myself) return; + + append_hf("P-hint: outbound\r\n"); + route(RELAY); + exit; +} + +# PSTN GW routing +route[PSTN] { +#!ifdef WITH_PSTN + # check if PSTN GW IP is defined + if (strempty($sel(cfg_get.pstn.gw_ip))) { + xlog("SCRIPT: PSTN routing enabled but pstn.gw_ip not defined\n"); + return; + } + + # route to PSTN dialed numbers starting with '+' or '00' + # (international format) + # - update the condition to match your dialing rules for PSTN routing + if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$")) return; + + # only local users allowed to call + if(from_uri!=myself) { + sl_send_reply("403", "Not Allowed"); + exit; + } + + # normalize target number for pstn gateway + # - convert leading 00 to + + if (starts_with("$rU", "00")) { + strip(2); + prefix("+"); + } + + if (strempty($sel(cfg_get.pstn.gw_port))) { + $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip); + } else { + $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip) + ":" + + $sel(cfg_get.pstn.gw_port); + } + + route(RELAY); + exit; +#!endif + + return; +} + +# XMLRPC routing +#!ifdef WITH_XMLRPC +route[XMLRPC] { + # allow XMLRPC from localhost + if ((method=="POST" || method=="GET") + && (src_ip==127.0.0.1)) { + # close connection only for xmlrpclib user agents (there is a bug in + # xmlrpclib: it waits for EOF before interpreting the response). + if ($hdr(User-Agent) =~ "xmlrpclib") + set_reply_close(); + set_reply_no_connect(); + dispatch_rpc(); + exit; + } + send_reply("403", "Forbidden"); + exit; +} +#!endif + +# Routing to voicemail server +route[TOVOICEMAIL] { +#!ifdef WITH_VOICEMAIL + if(!is_method("INVITE|SUBSCRIBE")) return; + + # check if VoiceMail server IP is defined + if (strempty($sel(cfg_get.voicemail.srv_ip))) { + xlog("SCRIPT: VoiceMail routing enabled but IP not defined\n"); + return; + } + if(is_method("INVITE")) { + if($avp(oexten)==$null) return; + + $ru = "sip:" + $avp(oexten) + "@" + $sel(cfg_get.voicemail.srv_ip) + + ":" + $sel(cfg_get.voicemail.srv_port); + } else { + if($rU==$null) return; + + $ru = "sip:" + $rU + "@" + $sel(cfg_get.voicemail.srv_ip) + + ":" + $sel(cfg_get.voicemail.srv_port); + } + route(RELAY); + exit; +#!endif + + return; +} + +# Manage outgoing branches +branch_route[MANAGE_BRANCH] { + xdbg("new branch [$T_branch_idx] to $ru\n"); + route(NATMANAGE); +} + +# Manage incoming replies +onreply_route[MANAGE_REPLY] { + xdbg("incoming reply\n"); + if(status=~"[12][0-9][0-9]") { + route(NATMANAGE); + } +} + +# Manage failure routing cases +failure_route[MANAGE_FAILURE] { + route(NATMANAGE); + + if (t_is_canceled()) exit; + +#!ifdef WITH_BLOCK3XX + # block call redirect based on 3xx replies. + if (t_check_status("3[0-9][0-9]")) { + t_reply("404","Not found"); + exit; + } +#!endif + +#!ifdef WITH_BLOCK401407 + # block call redirect based on 401, 407 replies. + if (t_check_status("401|407")) { + t_reply("404","Not found"); + exit; + } +#!endif + +#!ifdef WITH_VOICEMAIL + # serial forking + # - route to voicemail on busy or no answer (timeout) + if (t_check_status("486|408")) { + $du = $null; + route(TOVOICEMAIL); + exit; + } +#!endif +} + +#!ifdef WITH_WEBSOCKET +event_route[xhttp:request] { + set_reply_close(); + set_reply_no_connect(); + if ($hdr(Upgrade)=~"websocket" + && $hdr(Connection)=~"Upgrade" + && $rm=~"GET") { + + # Validate Host - make sure the client is using the correct + # alias for WebSockets + if ($hdr(Host) == $null || !is_myself("sip:" + $hdr(Host))) { + xlog("L_WARN", "Bad host $hdr(Host)\n"); + xhttp_reply("403", "Forbidden", "", ""); + exit; + } + if (ws_handle_handshake()) { + # Optional... cache some information about the + # successful connection + exit; + } + } + xhttp_reply("404", "Not Found", "", ""); +} +#!endif diff --git a/misc/scripts/dbtext/ser_dbtext.sh b/misc/scripts/dbtext/ser_dbtext.sh index ce3414218..d572dca06 100755 --- a/misc/scripts/dbtext/ser_dbtext.sh +++ b/misc/scripts/dbtext/ser_dbtext.sh @@ -104,7 +104,7 @@ FILES ${SRCDB_DIR}/${SRCDB} REPORTING BUGS - Report bugs to + Report bugs to EOF } #usage diff --git a/misc/scripts/kam_to_sr.sh b/misc/scripts/kam_to_sr.sh index 32f1e037f..212c0ba7e 100755 --- a/misc/scripts/kam_to_sr.sh +++ b/misc/scripts/kam_to_sr.sh @@ -1,5 +1,8 @@ #!/usr/bin/env sh # +# Note: This script is obselete, especially after the changes in commit +# 1f70d062b0b9cf1e, the module interface unification. +# # This is a simple script which attempts to convert kamailio modules so that # they can be used with the sip-router core. Most of the changes done by the # script deal with the changes in the database abstraction layer in the diff --git a/misc/scripts/mysql/sip-router_mysql.sh b/misc/scripts/mysql/sip-router_mysql.sh index 3b40132ec..aba468c7a 100755 --- a/misc/scripts/mysql/sip-router_mysql.sh +++ b/misc/scripts/mysql/sip-router_mysql.sh @@ -175,7 +175,7 @@ FILES ${SCRIPT_DIR}/${DROP_SCRIPT} REPORTING BUGS - Report bugs to + Report bugs to EOF } #usage diff --git a/misc/scripts/postgres/ser_postgres.sh b/misc/scripts/postgres/ser_postgres.sh index 9412ba0d2..cca43e1ee 100755 --- a/misc/scripts/postgres/ser_postgres.sh +++ b/misc/scripts/postgres/ser_postgres.sh @@ -53,7 +53,7 @@ Usage: $COMMAND create [database] to create databases, tables, and users) PSQL Full path to mysql command (${PSQL}) -Report bugs to +Report bugs to EOF } #usage diff --git a/misc/tls-ca/README b/misc/tls-ca/README index 2ce7a277a..30f5362f3 100644 --- a/misc/tls-ca/README +++ b/misc/tls-ca/README @@ -18,5 +18,5 @@ Second, to give access to the same CA root to a large community in order to encourage testings and interconnections via TLS with minimum of troubles. For any questions, please address to : - sr-users@lists.sip-router.org (public mailing list) + sr-users@lists.kamailio.org (public mailing list) diff --git a/pkg/kamailio/alpine/APKBUILD b/pkg/kamailio/alpine/APKBUILD index b694d3fdd..fc3004f67 100644 --- a/pkg/kamailio/alpine/APKBUILD +++ b/pkg/kamailio/alpine/APKBUILD @@ -4,7 +4,7 @@ # Maintainer: Nathan Angelacos pkgname=kamailio -pkgver=5.1.8 +pkgver=5.2.3 pkgrel=0 # If building from a git snapshot, specify the gitcommit @@ -29,7 +29,7 @@ makedepends="bison db-dev flex freeradius-client-dev expat-dev lksctp-tools-dev libxml2-dev curl-dev unixodbc-dev confuse-dev ncurses-dev sqlite-dev lua-dev openldap-dev openssl-dev net-snmp-dev libuuid libev-dev jansson-dev json-c-dev libevent-dev linux-headers libmemcached-dev - rabbitmq-c-dev hiredis-dev libmaxminddb-dev libunistring-dev" + rabbitmq-c-dev hiredis-dev libmaxminddb-dev libunistring-dev ruby-dev" install="$pkgname.pre-install $pkgname.pre-upgrade" # secfixes: @@ -162,6 +162,9 @@ _mod_list_perl="app_perl db_perlvdb" # - modules depending on python library _mod_list_python="app_python" +# - modules depending on ruby library +_mod_list_ruby="app_ruby" + # - modules depending on rabbitmq _mod_list_rabbitmq="rabbitmq" @@ -175,17 +178,17 @@ _mod_list_sqlite="db_sqlite" _mod_list_oracle="db_oracle" # - modules depending on json library -_mod_list_json="json jsonrpcc jsonrpcs" +_mod_list_json="json jsonrpcc jsonrpcs pua_json" # - modules depending on redis library -_mod_list_redis="ndb_redis topos_redis" +_mod_list_redis="db_redis ndb_redis topos_redis" # - modules depending on mono library _mod_list_mono="app_mono" # - modules related to IMS extensions _mod_list_ims="cdp cdp_avp ims_dialog ims_diameter_server ims_auth ims_isc ims_icscf ims_qos \ - ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf \ + ims_ocs ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf \ ims_usrloc_scscf ims_charging" # - modules depending on osp toolkit library @@ -213,7 +216,7 @@ _mod_list_kazoo="kazoo" _mod_list_mongodb="db_mongodb ndb_mongodb" # - modules depending on jansson library -_mod_list_jansson="jansson janssonrpcc" +_mod_list_jansson="acc_json jansson janssonrpcc" # - modules depending on libm _mod_list_jsdt="app_jsdt" @@ -243,7 +246,7 @@ for _i in db postgres sqlite dbtext mysql \ ldap utils tls presence lua ims outbound debugger \ extras json websocket authephemeral \ uuid ev memcached redis geoip2 jansson sqlang sipdump \ - jsdt http_async kazoo rabbitmq sctp radius perl python; do + jsdt http_async kazoo rabbitmq sctp radius perl python ruby; do subpackages="$subpackages $pkgname-$_i" eval "_modules=\"\$_modules \$_mod_list_$_i\"" @@ -532,6 +535,11 @@ python() { "$_mod_list_python" } +ruby() { + _generic_pkg "Ruby extensions for Kamailio" \ + "$_mod_list_ruby" +} + sqlang() { _generic_pkg "Squirrel Language (SQLang) for Kamailio" \ "$_mod_list_sqlang" diff --git a/pkg/kamailio/centos/6/README b/pkg/kamailio/centos/6/README deleted file mode 100644 index d9a95297c..000000000 --- a/pkg/kamailio/centos/6/README +++ /dev/null @@ -1,29 +0,0 @@ -The following modules are not included in CentOS 6 builds because they have -dependencies that cannot be met by the base or EPEL CentOS YUM repos or are -obsolete. - -Obsolete modules ----------------- -* iptrtpproxy use the rtpproxy-ng module with mediaproxy-ng instead -* jabber use the xmpp and pua_xmpp modules instead - -Modules with unmet dependencies -------------------------------- -Note: If you need any of these modules you will need to find (and possibly - build) and install the dependencies and then do a manual build of - Kamailio. - -Ordered by module name: -* app_mono requires mono-devel-??? or higher (EPEL contains - mono-devel 2.4.3.1) -* db_cassandra requires thrift 0.6.1 or 0.7.0 -* db_oracle requires instantclient-sdk-10.2.0.3 -* ndb_cassandra requires thrift 0.7.0 -* osp requires the OSP Toolkit - -Ordered by unmet dependency: -* instantclient-sdk-10.2.0.3 db_oracle -* mono-devel-??? or higher app_mono -* OSP Toolkit osp -* thrift 0.6.1 or 0.7.0 db_cassandra -* thrift 0.7.0 ndb_cassandra diff --git a/pkg/kamailio/centos/6/kamailio.init b/pkg/kamailio/centos/6/kamailio.init deleted file mode 100644 index 3ee9677df..000000000 --- a/pkg/kamailio/centos/6/kamailio.init +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/bash -# -# Startup script for Kamailio -# -# chkconfig: 345 85 15 -# description: Kamailio (OpenSER) - the Open Source SIP Server -# -# processname: kamailio -# pidfile: /var/run/kamailio.pid -# config: /etc/kamailio/kamailio.cfg -# -### BEGIN INIT INFO -# Provides: kamailio -# Required-Start: $local_fs $network -# Short-Description: Kamailio (OpenSER) - the Open Source SIP Server -# Description: Kamailio (former OpenSER) is an Open Source SIP Server released -# under GPL, able to handle thousands of call setups per second. -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -KAM=/usr/sbin/kamailio -KAMCFG=/etc/kamailio/kamailio.cfg -PROG=kamailio -PID_FILE=/var/run/kamailio.pid -LOCK_FILE=/var/lock/subsys/kamailio -RETVAL=0 -DEFAULTS=/etc/sysconfig/kamailio -RUN_KAMAILIO=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.*" $KAMCFG; then - echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/kamailio debug instead" - exit 1 - fi -} - -check_kamailio_config () -{ - # Check if kamailio configuration is valid before starting the server - out=$($KAM -c 2>&1 > /dev/null) - retcode=$? - if [ "$retcode" != '0' ]; then - echo "Not starting $DESC: invalid configuration file!" - echo -e "\n$out\n" - exit 1 - fi -} - - -start() { - check_kamailio_config - if [ "$1" != "debug" ]; then - check_fork - fi - echo -n $"Starting $PROG: " - daemon $KAM $OPTIONS >/dev/null 2>/dev/null - RETVAL=$? - [ $RETVAL = 0 ] && touch $LOCK_FILE && success - echo - return $RETVAL -} - -stop() { - echo -n $"Stopping $PROG: " - killproc $KAM - RETVAL=$? - echo - [ $RETVAL = 0 ] && rm -f $LOCK_FILE $PID_FILE -} - -# Load startup options if available -if [ -f $DEFAULTS ]; then - . $DEFAULTS || true -fi - -if [ "$RUN_KAMAILIO" != "yes" ]; then - echo "Kamailio not yet configured. Edit /etc/default/kamailio first." - exit 0 -fi - - -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=32 -[ $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=/tmp - echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern -fi - -OPTIONS="-P $PID_FILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP $EXTRA_OPTIONS" - - -# See how we were called. -case "$1" in - start|debug) - start - ;; - stop) - stop - ;; - status) - status $KAM - RETVAL=$? - ;; - restart) - stop - start - ;; - condrestart) - if [ -f $PID_FILE ] ; then - stop - start - fi - ;; - *) - echo $"Usage: $PROG {start|stop|restart|condrestart|status|debug|help}" - exit 1 -esac - -exit $RETVAL diff --git a/pkg/kamailio/centos/6/kamailio.spec b/pkg/kamailio/centos/6/kamailio.spec deleted file mode 100644 index 3d1613d24..000000000 --- a/pkg/kamailio/centos/6/kamailio.spec +++ /dev/null @@ -1,1279 +0,0 @@ -%define name kamailio -%define ver 5.1.8 -%define rel 0%{dist} - - - -Summary: Kamailio (former OpenSER) - the Open Source SIP Server -Name: %name -Version: %ver -Release: %rel -Packager: Peter Dunkley -License: GPL -Group: System Environment/Daemons -Source: http://kamailio.org/pub/kamailio/%{ver}/src/%{name}-%{ver}_src.tar.gz -URL: http://kamailio.org/ -Vendor: kamailio.org -BuildRoot: %{_tmppath}/%{name}-%{ver}-buildroot -Conflicts: kamailio-auth-ephemeral < %ver, kamailio-bdb < %ver -Conflicts: kamailio-carrierroute < %ver, kamailio-cpl < %ver -Conflicts: kamailio-dialplan < %ver, kamailio-dnssec < %ver -Conflicts: kamailio-geoip < %ver, kamailio-gzcompress < %ver -Conflicts: kamailio-ims < %ver, kamailio-java < %ver, kamailio-json < %ver -Conflicts: kamailio-lcr < %ver, kamailio-ldap < %ver, kamailio-lua < %ver -Conflicts: kamailio-memcached < %ver, kamailio-mysql < %ver -Conflicts: kamailio-outbound < %ver, kamailio-perl < %ver -Conflicts: kamailio-postgresql < %ver, kamailio-presence < %ver -Conflicts: kamailio-purple < %ver, kamailio-python < %ver -Conflicts: kamailio-radius < % ver, kamailio-redis < %ver -Conflicts: kamailio-regex < %ver, kamailio-sctp < %ver -Conflicts: kamailio-snmpstats < %ver, kamailio-sqlite < %ver -Conflicts: kamailio-tls < %ver, kamailio-unixodbc < %ver -Conflicts: kamailio-utils < %ver, kamailio-websocket < %ver -Conflicts: kamailio-xhttp-pi < %ver, kamailio-xmlops < %ver -Conflicts: kamailio-xmlrpc < %ver, kamailio-xmpp < %ver -BuildRequires: bison, flex, gcc, make, redhat-rpm-config - -%description -Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able -to handle thousands of call setups per second. Among features: asynchronous TCP, -UDP and SCTP, secure communication via TLS for VoIP (voice, video); IPv4 and -IPv6; SIMPLE instant messaging and presence with embedded XCAP server and MSRP -relay; ENUM; DID and least cost routing; load balancing; routing fail-over; -accounting, authentication and authorization; support for many backend systems -such as MySQL, Postgres, Oracle, Radius, LDAP, Redis, Cassandra; XMLRPC control -interface, SNMP monitoring. It can be used to build large VoIP servicing -platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers -like Asterisk™, FreeSWITCH™ or SEMS. - - -%package auth-ephemeral -Summary: Functions for authentication using ephemeral credentials. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description auth-ephemeral -Functions for authentication using ephemeral credentials. - - -%package auth-xkeys -Summary: Functions for authentication using shared keys. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description auth-xkeys -Functions for authentication using shared keys. - - -%package bdb -Summary: Berkeley database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: db4, kamailio = %ver -BuildRequires: db4-devel - -%description bdb -Berkeley database connectivity for Kamailio. - - -%package carrierroute -Summary: The carrierroute module for Kamailio. -Group: System Environment/Daemons -Requires: epel-release, libconfuse, kamailio = %ver -BuildRequires: epel-release, libconfuse-devel - -%description carrierroute -The carrierroute module for Kamailio. - - -%package cnxcc -Summary: Module which provides a mechanism to limit call duration based on credit information parameters for Kamailio. -Group: System Environment/Daemons -Requires: libevent, hiredis, kamailio = %ver -BuildRequires: libevent-devel, hiredis-devel - -%description cnxcc -Module which provides a mechanism to limit call duration based on credit information parameters for Kamailio. - - -%package cpl -Summary: CPL (Call Processing Language) interpreter for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description cpl -CPL (Call Processing Language) interpreter for Kamailio. - - -%package dialplan -Summary: String translations based on rules for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description dialplan -String translations based on rules for Kamailio. - - -%package dmq_userloc -Summary: User location (usrloc) records replication between multiple servers via DMQ module for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description dmq_userloc -User location (usrloc) records replication between multiple servers via DMQ module. - - -%package dnssec -Summary: DNSSEC support for Kamailio. -Group: System Environment/Daemons -Requires: epel-release, dnssec-tools-libs, kamailio = %ver -BuildRequires: epel-release, dnssec-tools-libs-devel - -%description dnssec -DNSSEC support for Kamailio. - - -%package geoip -Summary: MaxMind GeoIP support for Kamailio. -Group: System Environment/Daemons -Requires: epel-release, GeoIP, kamailio = %ver -BuildRequires: epel-release, GeoIP-devel - -%description geoip -MaxMind GeoIP support for Kamailio. - - -%package gzcompress -Summary: Compressed body (SIP and HTTP) handling for kamailio. -Group: System Environment/Daemons -Requires: zlib, kamailio = %ver -BuildRequires: zlib-devel - -%description gzcompress -Compressed body (SIP and HTTP) handling for kamailio. - - -%package ims -Summary: IMS modules and extensions module for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description ims -IMS modules and extensions module for Kamailio. - - -%package java -Summary: Java extensions for Kamailio. -Group: System Environment/Daemons -Requires: libgcj, java-1.6.0-openjdk, kamailio = %ver -BuildRequires: libgcj-devel, java-1.6.0-openjdk-devel, ant - -%description java -Java extensions for Kamailio. - - -%package json -Summary: json string handling and RPC modules for Kamailio. -Group: System Environment/Daemons -Requires: epel-release, json-c, libevent, kamailio = %ver -BuildRequires: epel-release, json-c-devel, libevent-devel - -%description json -json string handling and RPC modules for Kamailio. - - -%package lcr -Summary: Least cost routing for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description lcr -Least cost routing for Kamailio. - - -%package ldap -Summary: LDAP search interface for Kamailio. -Group: System Environment/Daemons -Requires: openldap, kamailio = %ver -BuildRequires: openldap-devel - -%description ldap -LDAP search interface for Kamailio. - - -%package lua -Summary: Lua extensions for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildRequires: lua-devel - -%description lua -Lua extensions for Kamailio. - - -%package memcached -Summary: memcached configuration file support for Kamailio. -Group: System Environment/Daemons -Requires: libmemcached, kamailio = %ver -BuildRequires: libmemcached-devel - -%description memcached -memcached configuration file support for Kamailio. - - -%package mysql -Summary: MySQL database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: mysql-libs, kamailio = %ver -BuildRequires: mysql-devel zlib-devel - -%description mysql -MySQL database connectivity for Kamailio. - - -%package outbound -Summary: Outbound (RFC 5626) support for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description outbound -RFC 5626, "Managing Client-Initiated Connections in the Session Initiation -Protocol (SIP)" support for Kamailio. - - -%package perl -Summary: Perl extensions and database driver for Kamailio. -Group: System Environment/Daemons -Requires: mod_perl, kamailio = %ver -BuildRequires: mod_perl-devel - -%description perl -Perl extensions and database driver for Kamailio. - - -%package postgresql -Summary: PostgreSQL database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: postgresql-libs, kamailio = %ver -BuildRequires: postgresql-devel - -%description postgresql -PostgreSQL database connectivity for Kamailio. - - -%package presence -Summary: SIP Presence (and RLS, XCAP, etc) support for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, libcurl, kamailio = %ver, kamailio-xmpp = %ver -BuildRequires: libxml2-devel, libcurl-devel - -%description presence -SIP Presence (and RLS, XCAP, etc) support for Kamailio. - - -%package purple -Summary: Multi-protocol IM and presence gateway module. -Group: System Environment/Daemons -Requires: glib2, libpurple, libxml2, kamailio = %ver -Requires: kamailio-presence = %ver -BuildRequires: glib2-devel, libpurple-devel, libxml2-devel - -%description purple -Multi-protocol IM and presence gateway module. - - -%package python -Summary: Python extensions for Kamailio. -Group: System Environment/Daemons -Requires: python, kamailio = %ver -BuildRequires: python-devel - -%description python -Python extensions for Kamailio. - - -%package radius -Summary: RADIUS modules for Kamailio. -Group: System Environment/Daemons -Requires: epel-release, radiusclient-ng, kamailio = %ver -BuildRequires: epel-release, radiusclient-ng-devel - -%description radius -RADIUS modules for Kamailio. - - -%package redis -Summary: Redis configuration file support for Kamailio. -Group: System Environment/Daemons -Requires: epel-release, hiredis, kamailio = %ver -BuildRequires: epel-release, hiredis-devel - -%description redis -Redis configuration file support for Kamailio. - - -%package regex -Summary: PCRE mtaching operations for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description regex -PCRE mtaching operations for Kamailio. - - -%package rtjson -Summary: SIP routing based on JSON specifications. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description rtjson -SIP routing based on JSON specifications. - - -%package sctp -Summary: SCTP transport for Kamailio. -Group: System Environment/Daemons -Requires: lksctp-tools, kamailio = %ver -BuildRequires: lksctp-tools-devel - -%description sctp -SCTP transport for Kamailio. - - -%package snmpstats -Summary: SNMP management interface (scalar statistics) for Kamailio. -Group: System Environment/Daemons -Requires: net-snmp-libs, kamailio = %ver -BuildRequires: net-snmp-devel - -%description snmpstats -SNMP management interface (scalar statistics) for Kamailio. - - -%package statsd -Summary: Send commands to statsd server. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description statsd -Send commands to statsd server. - - -%package sqlite -Summary: SQLite database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: sqlite, kamailio = %ver -BuildRequires: sqlite-devel - -%description sqlite -SQLite database connectivity for Kamailio. - - -%package tls -Summary: TLS transport for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description tls -TLS transport for Kamailio. - - -%package tcpops -Summary: On demand and per socket control to the TCP options. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description tcpops -On demand and per socket control to the TCP options. - - -%package unixodbc -Summary: unixODBC database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: unixODBC, kamailio = %ver -BuildRequires: unixODBC-devel - -%description unixodbc -unixODBC database connectivity for Kamailio. - - -%package utils -Summary: Non-SIP utitility functions for Kamailio. -Group: System Environment/Daemons -Requires: libcurl, libxml2, kamailio = %ver -BuildRequires: libcurl-devel, libxml2-devel - -%description utils -Non-SIP utitility functions for Kamailio. - - -%package websocket -Summary: WebSocket transport for Kamailio. -Group: System Environment/Daemons -Requires: libunistring, openssl, kamailio = %ver -BuildRequires: libunistring-devel, openssl-devel - -%description websocket -WebSocket transport for Kamailio. - - -%package xhttp-pi -Summary: Web-provisioning interface for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xhttp-pi -Web-provisioning interface for Kamailio. - - -%package xmlops -Summary: XML operation functions for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xmlops -XML operation functions for Kamailio. - - -%package xmlrpc -Summary: XMLRPC transport and encoding for Kamailio RPCs and MI commands. -Group: System Environment/Daemons -Requires: libxml2, xmlrpc-c, kamailio = %ver -BuildRequires: libxml2-devel, xmlrpc-c-devel - -%description xmlrpc -XMLRPC transport and encoding for Kamailio RPCs and MI commands. - - -%package xmpp -Summary: SIP/XMPP IM gateway for Kamailio. -Group: System Environment/Daemons -Requires: expat, kamailio = %ver -BuildRequires: expat-devel - -%description xmpp -SIP/XMPP IM gateway for Kamailio. - - - -%prep -%setup -n %{name}-%{ver} - - - -%build -make cfg prefix=/usr cfg_prefix=$RPM_BUILD_ROOT basedir=$RPM_BUILD_ROOT \ - cfg_target=/%{_sysconfdir}/kamailio/ modules_dirs="modules" -make -make every-module skip_modules="app_mono db_cassandra db_oracle iptrtpproxy \ - jabber ndb_cassandra osp" \ - group_include="kstandard kautheph kberkeley kcarrierroute kcnxcc kcpl \ - kdnssec kgeoip kgzcompress kims kjava kjson kldap klua kmemcached \ - kmi_xmlrpc kmysql koutbound kperl kpostgres kpresence kpurple kpython \ - kradius kredis ksctp ksnmpstats ksqlite ktls kunixodbc kutils \ - kwebsocket kxml kxmpp" -cd modules/app_java/kamailio_java_folder/java -ant -cd ../../../.. -make utils - - - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" - -make install -make install-modules-all skip_modules="app_mono db_cassandra db_oracle \ - iptrtpproxy jabber osp" \ - group_include="kstandard kautheph kberkeley kcarrierroute kcnxcc kcpl \ - kdnssec kgeoip kgzcompress kims kjava kjson kldap klua kmemcached \ - kmi_xmlrpc kmysql koutbound kperl kpostgres kpresence kpurple kpython \ - kradius kredis ksctp ksnmpstats ksqlite ktls kunixodbc kutils \ - kwebsocket kxml kxmpp" - -mkdir -p $RPM_BUILD_ROOT/%{_libdir}/kamailio/java -install -m644 modules/app_java/kamailio_java_folder/java/Kamailio.class \ - $RPM_BUILD_ROOT/%{_libdir}/kamailio/java -install -m644 modules/app_java/kamailio_java_folder/java/kamailio.jar \ - $RPM_BUILD_ROOT/%{_libdir}/kamailio/java - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d -install -m755 pkg/kamailio/centos/%{?centos}/kamailio.init \ - $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/kamailio - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig -install -m644 pkg/kamailio/centos/%{?centos}/kamailio.sysconfig \ - $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/kamailio - - - -%pre -/usr/sbin/groupadd -r kamailio 2> /dev/null || : -/usr/sbin/useradd -r -g kamailio -s /bin/false -c "Kamailio daemon" -d \ - %{_libdir}/kamailio kamailio 2> /dev/null || : - - - -%clean -rm -rf "$RPM_BUILD_ROOT" - - - -%post -/sbin/chkconfig --add kamailio - - - -%preun -if [ $1 = 0 ]; then - /sbin/service kamailio stop > /dev/null 2>&1 - /sbin/chkconfig --del kamailio -fi - - - -%files -%defattr(-,root,root) -%dir %{_docdir}/kamailio -%doc %{_docdir}/kamailio/AUTHORS -%doc %{_docdir}/kamailio/NEWS -%doc %{_docdir}/kamailio/INSTALL -%doc %{_docdir}/kamailio/README -%doc %{_docdir}/kamailio/README-MODULES - -%dir %{_docdir}/kamailio/modules -%doc %{_docdir}/kamailio/modules/README.acc -%doc %{_docdir}/kamailio/modules/README.alias_db -%doc %{_docdir}/kamailio/modules/README.async -%doc %{_docdir}/kamailio/modules/README.auth -%doc %{_docdir}/kamailio/modules/README.auth_db -%doc %{_docdir}/kamailio/modules/README.auth_diameter -%doc %{_docdir}/kamailio/modules/README.avp -%doc %{_docdir}/kamailio/modules/README.avpops -%doc %{_docdir}/kamailio/modules/README.benchmark -%doc %{_docdir}/kamailio/modules/README.blst -%doc %{_docdir}/kamailio/modules/README.call_control -%doc %{_docdir}/kamailio/modules/README.cfg_db -%doc %{_docdir}/kamailio/modules/README.cfg_rpc -%doc %{_docdir}/kamailio/modules/README.cfgutils -%doc %{_docdir}/kamailio/modules/README.corex -%doc %{_docdir}/kamailio/modules/README.counters -%doc %{_docdir}/kamailio/modules/README.ctl -%doc %{_docdir}/kamailio/modules/README.db_cluster -%doc %{_docdir}/kamailio/modules/README.db_flatstore -%doc %{_docdir}/kamailio/modules/README.db_text -%doc %{_docdir}/kamailio/modules/README.db2_ops -%doc %{_docdir}/kamailio/modules/README.debugger -%doc %{_docdir}/kamailio/modules/README.dialog -%doc %{_docdir}/kamailio/modules/README.dialog_ng -%doc %{_docdir}/kamailio/modules/README.dispatcher -%doc %{_docdir}/kamailio/modules/README.diversion -%doc %{_docdir}/kamailio/modules/README.dmq -%doc %{_docdir}/kamailio/modules/README.domain -%doc %{_docdir}/kamailio/modules/README.domainpolicy -%doc %{_docdir}/kamailio/modules/README.drouting -%doc %{_docdir}/kamailio/modules/README.enum -%doc %{_docdir}/kamailio/modules/README.exec -%doc %{_docdir}/kamailio/modules/README.group -%doc %{_docdir}/kamailio/modules/README.htable -%doc %{_docdir}/kamailio/modules/README.imc -%doc %{_docdir}/kamailio/modules/README.ipops -%doc %{_docdir}/kamailio/modules/README.kex -%doc %{_docdir}/kamailio/modules/README.malloc_test -%doc %{_docdir}/kamailio/modules/README.mangler -%doc %{_docdir}/kamailio/modules/README.matrix -%doc %{_docdir}/kamailio/modules/README.maxfwd -%doc %{_docdir}/kamailio/modules/README.mediaproxy -%doc %{_docdir}/kamailio/modules/README.mi_datagram -%doc %{_docdir}/kamailio/modules/README.mi_fifo -%doc %{_docdir}/kamailio/modules/README.mi_rpc -%doc %{_docdir}/kamailio/modules/README.mohqueue -%doc %{_docdir}/kamailio/modules/README.mqueue -%doc %{_docdir}/kamailio/modules/README.msilo -%doc %{_docdir}/kamailio/modules/README.msrp -%doc %{_docdir}/kamailio/modules/README.mtree -%doc %{_docdir}/kamailio/modules/README.nat_traversal -%doc %{_docdir}/kamailio/modules/README.nathelper -%doc %{_docdir}/kamailio/modules/README.p_usrloc -%doc %{_docdir}/kamailio/modules/README.path -%doc %{_docdir}/kamailio/modules/README.pdb -%doc %{_docdir}/kamailio/modules/README.pdt -%doc %{_docdir}/kamailio/modules/README.permissions -%doc %{_docdir}/kamailio/modules/README.pike -%doc %{_docdir}/kamailio/modules/README.pipelimit -%doc %{_docdir}/kamailio/modules/README.prefix_route -%doc %{_docdir}/kamailio/modules/README.print -%doc %{_docdir}/kamailio/modules/README.print_lib -%doc %{_docdir}/kamailio/modules/README.pv -%doc %{_docdir}/kamailio/modules/README.qos -%doc %{_docdir}/kamailio/modules/README.ratelimit -%doc %{_docdir}/kamailio/modules/README.registrar -%doc %{_docdir}/kamailio/modules/README.rr -%doc %{_docdir}/kamailio/modules/README.rtimer -%doc %{_docdir}/kamailio/modules/README.rtpproxy -%doc %{_docdir}/kamailio/modules/README.rtpengine -%doc %{_docdir}/kamailio/modules/README.sanity -%doc %{_docdir}/kamailio/modules/README.sca -%doc %{_docdir}/kamailio/modules/README.sdpops -%doc %{_docdir}/kamailio/modules/README.seas -%doc %{_docdir}/kamailio/modules/README.sipcapture -%doc %{_docdir}/kamailio/modules/README.sipt -%doc %{_docdir}/kamailio/modules/README.siptrace -%doc %{_docdir}/kamailio/modules/README.siputils -%doc %{_docdir}/kamailio/modules/README.sl -%doc %{_docdir}/kamailio/modules/README.sms -%doc %{_docdir}/kamailio/modules/README.speeddial -%doc %{_docdir}/kamailio/modules/README.sqlops -%doc %{_docdir}/kamailio/modules/README.sst -%doc %{_docdir}/kamailio/modules/README.statistics -%doc %{_docdir}/kamailio/modules/README.stun -%doc %{_docdir}/kamailio/modules/README.textops -%doc %{_docdir}/kamailio/modules/README.textopsx -%doc %{_docdir}/kamailio/modules/README.timer -%doc %{_docdir}/kamailio/modules/README.tm -%doc %{_docdir}/kamailio/modules/README.tmrec -%doc %{_docdir}/kamailio/modules/README.tmx -%doc %{_docdir}/kamailio/modules/README.topoh -%doc %{_docdir}/kamailio/modules/README.uac -%doc %{_docdir}/kamailio/modules/README.uac_redirect -%doc %{_docdir}/kamailio/modules/README.uid_auth_db -%doc %{_docdir}/kamailio/modules/README.uid_avp_db -%doc %{_docdir}/kamailio/modules/README.uid_domain -%doc %{_docdir}/kamailio/modules/README.uid_gflags -%doc %{_docdir}/kamailio/modules/README.uid_uri_db -%doc %{_docdir}/kamailio/modules/README.uri_db -%doc %{_docdir}/kamailio/modules/README.userblacklist -%doc %{_docdir}/kamailio/modules/README.usrloc -%doc %{_docdir}/kamailio/modules/README.xhttp -%doc %{_docdir}/kamailio/modules/README.xhttp_rpc -%doc %{_docdir}/kamailio/modules/README.xlog -%doc %{_docdir}/kamailio/modules/README.xprint -%doc %{_docdir}/kamailio/modules/README.jsonrpc-s -%doc %{_docdir}/kamailio/modules/README.nosip -%doc %{_docdir}/kamailio/modules/README.tsilo - - -%dir %attr(-,kamailio,kamailio) %{_sysconfdir}/kamailio -%config(noreplace) %{_sysconfdir}/kamailio/* -%config %{_sysconfdir}/rc.d/init.d/* -%config %{_sysconfdir}/sysconfig/* - -%dir %{_libdir}/kamailio -%{_libdir}/kamailio/libbinrpc.so -%{_libdir}/kamailio/libbinrpc.so.0 -%{_libdir}/kamailio/libbinrpc.so.0.1 -%{_libdir}/kamailio/libkmi.so -%{_libdir}/kamailio/libkmi.so.1 -%{_libdir}/kamailio/libkmi.so.1.0 -%{_libdir}/kamailio/libprint.so -%{_libdir}/kamailio/libprint.so.1 -%{_libdir}/kamailio/libprint.so.1.2 -%{_libdir}/kamailio/libsrdb1.so -%{_libdir}/kamailio/libsrdb1.so.1 -%{_libdir}/kamailio/libsrdb1.so.1.0 -%{_libdir}/kamailio/libsrdb2.so -%{_libdir}/kamailio/libsrdb2.so.1 -%{_libdir}/kamailio/libsrdb2.so.1.0 -%{_libdir}/kamailio/libsrutils.so -%{_libdir}/kamailio/libsrutils.so.1 -%{_libdir}/kamailio/libsrutils.so.1.0 -%{_libdir}/kamailio/libtrie.so -%{_libdir}/kamailio/libtrie.so.1 -%{_libdir}/kamailio/libtrie.so.1.0 - -%dir %{_libdir}/kamailio/modules -%{_libdir}/kamailio/modules/acc.so -%{_libdir}/kamailio/modules/alias_db.so -%{_libdir}/kamailio/modules/async.so -%{_libdir}/kamailio/modules/auth.so -%{_libdir}/kamailio/modules/auth_db.so -%{_libdir}/kamailio/modules/auth_diameter.so -%{_libdir}/kamailio/modules/avp.so -%{_libdir}/kamailio/modules/avpops.so -%{_libdir}/kamailio/modules/benchmark.so -%{_libdir}/kamailio/modules/blst.so -%{_libdir}/kamailio/modules/call_control.so -%{_libdir}/kamailio/modules/cfg_db.so -%{_libdir}/kamailio/modules/cfg_rpc.so -%{_libdir}/kamailio/modules/cfgutils.so -%{_libdir}/kamailio/modules/corex.so -%{_libdir}/kamailio/modules/counters.so -%{_libdir}/kamailio/modules/ctl.so -%{_libdir}/kamailio/modules/db_cluster.so -%{_libdir}/kamailio/modules/db_flatstore.so -%{_libdir}/kamailio/modules/db_text.so -%{_libdir}/kamailio/modules/db2_ops.so -%{_libdir}/kamailio/modules/debugger.so -%{_libdir}/kamailio/modules/dialog.so -%{_libdir}/kamailio/modules/dialog_ng.so -%{_libdir}/kamailio/modules/dispatcher.so -%{_libdir}/kamailio/modules/diversion.so -%{_libdir}/kamailio/modules/dmq.so -%{_libdir}/kamailio/modules/domain.so -%{_libdir}/kamailio/modules/domainpolicy.so -%{_libdir}/kamailio/modules/drouting.so -%{_libdir}/kamailio/modules/enum.so -%{_libdir}/kamailio/modules/exec.so -%{_libdir}/kamailio/modules/group.so -%{_libdir}/kamailio/modules/htable.so -%{_libdir}/kamailio/modules/imc.so -%{_libdir}/kamailio/modules/ipops.so -%{_libdir}/kamailio/modules/kex.so -%{_libdir}/kamailio/modules/malloc_test.so -%{_libdir}/kamailio/modules/mangler.so -%{_libdir}/kamailio/modules/matrix.so -%{_libdir}/kamailio/modules/maxfwd.so -%{_libdir}/kamailio/modules/mediaproxy.so -%{_libdir}/kamailio/modules/mi_datagram.so -%{_libdir}/kamailio/modules/mi_fifo.so -%{_libdir}/kamailio/modules/mi_rpc.so -%{_libdir}/kamailio/modules/mohqueue.so -%{_libdir}/kamailio/modules/mqueue.so -%{_libdir}/kamailio/modules/msilo.so -%{_libdir}/kamailio/modules/msrp.so -%{_libdir}/kamailio/modules/mtree.so -%{_libdir}/kamailio/modules/nat_traversal.so -%{_libdir}/kamailio/modules/nathelper.so -%{_libdir}/kamailio/modules/p_usrloc.so -%{_libdir}/kamailio/modules/path.so -%{_libdir}/kamailio/modules/pdb.so -%{_libdir}/kamailio/modules/pdt.so -%{_libdir}/kamailio/modules/permissions.so -%{_libdir}/kamailio/modules/pike.so -%{_libdir}/kamailio/modules/pipelimit.so -%{_libdir}/kamailio/modules/prefix_route.so -%{_libdir}/kamailio/modules/print.so -%{_libdir}/kamailio/modules/print_lib.so -%{_libdir}/kamailio/modules/pv.so -%{_libdir}/kamailio/modules/qos.so -%{_libdir}/kamailio/modules/ratelimit.so -%{_libdir}/kamailio/modules/registrar.so -%{_libdir}/kamailio/modules/rr.so -%{_libdir}/kamailio/modules/rtimer.so -%{_libdir}/kamailio/modules/rtpproxy.so -%{_libdir}/kamailio/modules/rtpengine.so -%{_libdir}/kamailio/modules/sanity.so -%{_libdir}/kamailio/modules/sca.so -%{_libdir}/kamailio/modules/sdpops.so -%{_libdir}/kamailio/modules/seas.so -%{_libdir}/kamailio/modules/sipcapture.so -%{_libdir}/kamailio/modules/sipt.so -%{_libdir}/kamailio/modules/siptrace.so -%{_libdir}/kamailio/modules/siputils.so -%{_libdir}/kamailio/modules/sl.so -%{_libdir}/kamailio/modules/sms.so -%{_libdir}/kamailio/modules/speeddial.so -%{_libdir}/kamailio/modules/sqlops.so -%{_libdir}/kamailio/modules/sst.so -%{_libdir}/kamailio/modules/statistics.so -%{_libdir}/kamailio/modules/stun.so -%{_libdir}/kamailio/modules/textops.so -%{_libdir}/kamailio/modules/textopsx.so -%{_libdir}/kamailio/modules/timer.so -%{_libdir}/kamailio/modules/tm.so -%{_libdir}/kamailio/modules/tmrec.so -%{_libdir}/kamailio/modules/tmx.so -%{_libdir}/kamailio/modules/topoh.so -%{_libdir}/kamailio/modules/uac.so -%{_libdir}/kamailio/modules/uac_redirect.so -%{_libdir}/kamailio/modules/uid_auth_db.so -%{_libdir}/kamailio/modules/uid_avp_db.so -%{_libdir}/kamailio/modules/uid_domain.so -%{_libdir}/kamailio/modules/uid_gflags.so -%{_libdir}/kamailio/modules/uid_uri_db.so -%{_libdir}/kamailio/modules/uri_db.so -%{_libdir}/kamailio/modules/userblacklist.so -%{_libdir}/kamailio/modules/usrloc.so -%{_libdir}/kamailio/modules/xhttp.so -%{_libdir}/kamailio/modules/xhttp_rpc.so -%{_libdir}/kamailio/modules/xlog.so -%{_libdir}/kamailio/modules/xprint.so -%{_libdir}/kamailio/modules/jsonrpc-s.so -%{_libdir}/kamailio/modules/nosip.so -%{_libdir}/kamailio/modules/tsilo.so - - -%{_sbindir}/kamailio -%{_sbindir}/kamctl -%{_sbindir}/kamdbctl -%{_sbindir}/kamcmd - -%dir %{_libdir}/kamailio/kamctl -%{_libdir}/kamailio/kamctl/kamctl.base -%{_libdir}/kamailio/kamctl/kamctl.ctlbase -%{_libdir}/kamailio/kamctl/kamctl.dbtext -%{_libdir}/kamailio/kamctl/kamctl.fifo -%{_libdir}/kamailio/kamctl/kamctl.ser -%{_libdir}/kamailio/kamctl/kamctl.ser_mi -%{_libdir}/kamailio/kamctl/kamctl.sqlbase -%{_libdir}/kamailio/kamctl/kamctl.unixsock -%{_libdir}/kamailio/kamctl/kamdbctl.base -%{_libdir}/kamailio/kamctl/kamdbctl.dbtext - -%dir %{_libdir}/kamailio/kamctl/dbtextdb -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.py -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyc -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyo - -%{_mandir}/man5/* -%{_mandir}/man8/* - -%dir %{_datadir}/kamailio -%dir %{_datadir}/kamailio/dbtext -%dir %{_datadir}/kamailio/dbtext/kamailio -%{_datadir}/kamailio/dbtext/kamailio/* - - -%files auth-ephemeral -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_ephemeral -%{_libdir}/kamailio/modules/auth_ephemeral.so - - -%files auth-xkeys -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_xkeys -%{_libdir}/kamailio/modules/auth_xkeys.so - - -%files bdb -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_berkeley -%{_sbindir}/kambdb_recover -%{_libdir}/kamailio/modules/db_berkeley.so -%{_libdir}/kamailio/kamctl/kamctl.db_berkeley -%{_libdir}/kamailio/kamctl/kamdbctl.db_berkeley -%dir %{_datadir}/kamailio/db_berkeley -%{_datadir}/kamailio/db_berkeley/* - - -%files carrierroute -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.carrierroute -%{_libdir}/kamailio/modules/carrierroute.so - - -%files cnxcc -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.cnxcc -%{_libdir}/kamailio/modules/cnxcc.so - -%files cpl -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.cpl-c -%{_libdir}/kamailio/modules/cpl-c.so - - -%files dialplan -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dialplan -%{_libdir}/kamailio/modules/dialplan.so - - -%files dmq_userloc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dmq_usrloc -%{_libdir}/kamailio/modules/dmq_usrloc.so - - -%files dnssec -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dnssec -%{_libdir}/kamailio/modules/dnssec.so - - -%files geoip -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.geoip -%{_libdir}/kamailio/modules/geoip.so - - -%files gzcompress -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.gzcompress -%{_libdir}/kamailio/modules/gzcompress.so - - -%files ims -%defattr(-,root,root) -%{_libdir}/kamailio/libkamailio_ims.so -%{_libdir}/kamailio/libkamailio_ims.so.0 -%{_libdir}/kamailio/libkamailio_ims.so.0.1 - -%doc %{_docdir}/kamailio/modules/README.cdp -%doc %{_docdir}/kamailio/modules/README.cdp_avp -%doc %{_docdir}/kamailio/modules/README.ims_auth -%doc %{_docdir}/kamailio/modules/README.ims_charging -%doc %{_docdir}/kamailio/modules/README.ims_icscf -%doc %{_docdir}/kamailio/modules/README.ims_isc -%doc %{_docdir}/kamailio/modules/README.ims_qos -#%doc %{_docdir}/kamailio/modules/README.ims_registrar_pcscf -%doc %{_docdir}/kamailio/modules/README.ims_registrar_scscf -%doc %{_docdir}/kamailio/modules/README.ims_usrloc_pcscf -#%doc %{_docdir}/kamailio/modules/README.ims_usrloc_scscf -%{_libdir}/kamailio/modules/cdp.so -%{_libdir}/kamailio/modules/cdp_avp.so -%{_libdir}/kamailio/modules/ims_auth.so -%{_libdir}/kamailio/modules/ims_charging.so -%{_libdir}/kamailio/modules/ims_icscf.so -%{_libdir}/kamailio/modules/ims_isc.so -%{_libdir}/kamailio/modules/ims_qos.so -%{_libdir}/kamailio/modules/ims_registrar_pcscf.so -%{_libdir}/kamailio/modules/ims_registrar_scscf.so -%{_libdir}/kamailio/modules/ims_usrloc_pcscf.so -%{_libdir}/kamailio/modules/ims_usrloc_scscf.so - - -%files java -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_java -%{_libdir}/kamailio/modules/app_java.so -%dir %{_libdir}/kamailio/java -%{_libdir}/kamailio/java/Kamailio.class -%{_libdir}/kamailio/java/kamailio.jar - - -%files json -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.json -%doc %{_docdir}/kamailio/modules/README.jsonrpc-c -%{_libdir}/kamailio/modules/json.so -%{_libdir}/kamailio/modules/jsonrpc-c.so - - -%files lcr -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.lcr -%{_libdir}/kamailio/modules/lcr.so - - -%files ldap -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db2_ldap -%doc %{_docdir}/kamailio/modules/README.h350 -%doc %{_docdir}/kamailio/modules/README.ldap -%{_libdir}/kamailio/modules/db2_ldap.so -%{_libdir}/kamailio/modules/h350.so -%{_libdir}/kamailio/modules/ldap.so - - -%files lua -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_lua -%{_libdir}/kamailio/modules/app_lua.so - - -%files memcached -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.memcached -%{_libdir}/kamailio/modules/memcached.so - - -%files mysql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_mysql -%{_libdir}/kamailio/modules/db_mysql.so -%{_libdir}/kamailio/kamctl/kamctl.mysql -%{_libdir}/kamailio/kamctl/kamdbctl.mysql -%dir %{_datadir}/kamailio/mysql -%{_datadir}/kamailio/mysql/* - - -%files outbound -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.outbound -%{_libdir}/kamailio/modules/outbound.so - - -%files perl -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_perl -%doc %{_docdir}/kamailio/modules/README.db_perlvdb -%{_libdir}/kamailio/modules/app_perl.so -%{_libdir}/kamailio/modules/db_perlvdb.so -%dir %{_libdir}/kamailio/perl -%{_libdir}/kamailio/perl/Kamailio.pm -%dir %{_libdir}/kamailio/perl/Kamailio -%{_libdir}/kamailio/perl/Kamailio/Constants.pm -%{_libdir}/kamailio/perl/Kamailio/Message.pm -%{_libdir}/kamailio/perl/Kamailio/VDB.pm -%dir %{_libdir}/kamailio/perl/Kamailio/LDAPUtils -%{_libdir}/kamailio/perl/Kamailio/LDAPUtils/LDAPConf.pm -%{_libdir}/kamailio/perl/Kamailio/LDAPUtils/LDAPConnection.pm -%dir %{_libdir}/kamailio/perl/Kamailio/Utils -%{_libdir}/kamailio/perl/Kamailio/Utils/Debug.pm -%{_libdir}/kamailio/perl/Kamailio/Utils/PhoneNumbers.pm -%dir %{_libdir}/kamailio/perl/Kamailio/VDB -%{_libdir}/kamailio/perl/Kamailio/VDB/Column.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Pair.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/ReqCond.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Result.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/VTab.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Value.pm -%dir %{_libdir}/kamailio/perl/Kamailio/VDB/Adapter -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/AccountingSIPtrace.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Alias.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Auth.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Describe.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Speeddial.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/TableVersions.pm - - -%files postgresql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_postgres -%{_libdir}/kamailio/modules/db_postgres.so -%{_libdir}/kamailio/kamctl/kamctl.pgsql -%{_libdir}/kamailio/kamctl/kamdbctl.pgsql -%dir %{_datadir}/kamailio/postgres -%{_datadir}/kamailio/postgres/* - - -%files presence -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.presence -%doc %{_docdir}/kamailio/modules/README.presence_conference -%doc %{_docdir}/kamailio/modules/README.presence_dialoginfo -%doc %{_docdir}/kamailio/modules/README.presence_mwi -%doc %{_docdir}/kamailio/modules/README.presence_profile -%doc %{_docdir}/kamailio/modules/README.presence_reginfo -%doc %{_docdir}/kamailio/modules/README.presence_xml -%doc %{_docdir}/kamailio/modules/README.pua -%doc %{_docdir}/kamailio/modules/README.pua_bla -%doc %{_docdir}/kamailio/modules/README.pua_dialoginfo -%doc %{_docdir}/kamailio/modules/README.pua_mi -%doc %{_docdir}/kamailio/modules/README.pua_reginfo -%doc %{_docdir}/kamailio/modules/README.pua_usrloc -%doc %{_docdir}/kamailio/modules/README.pua_xmpp -%doc %{_docdir}/kamailio/modules/README.rls -%doc %{_docdir}/kamailio/modules/README.xcap_client -%doc %{_docdir}/kamailio/modules/README.xcap_server -%{_libdir}/kamailio/modules/presence.so -%{_libdir}/kamailio/modules/presence_conference.so -%{_libdir}/kamailio/modules/presence_dialoginfo.so -%{_libdir}/kamailio/modules/presence_mwi.so -%{_libdir}/kamailio/modules/presence_profile.so -%{_libdir}/kamailio/modules/presence_reginfo.so -%{_libdir}/kamailio/modules/presence_xml.so -%{_libdir}/kamailio/modules/pua.so -%{_libdir}/kamailio/modules/pua_bla.so -%{_libdir}/kamailio/modules/pua_dialoginfo.so -%{_libdir}/kamailio/modules/pua_mi.so -%{_libdir}/kamailio/modules/pua_reginfo.so -%{_libdir}/kamailio/modules/pua_usrloc.so -%{_libdir}/kamailio/modules/pua_xmpp.so -%{_libdir}/kamailio/modules/rls.so -%{_libdir}/kamailio/modules/xcap_client.so -%{_libdir}/kamailio/modules/xcap_server.so - - -%files purple -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.purple -%{_libdir}/kamailio/modules/purple.so - - -%files python -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_python -%{_libdir}/kamailio/modules/app_python.so - - -%files radius -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.acc_radius -%doc %{_docdir}/kamailio/modules/README.auth_radius -%doc %{_docdir}/kamailio/modules/README.misc_radius -%doc %{_docdir}/kamailio/modules/README.peering -%{_libdir}/kamailio/modules/acc_radius.so -%{_libdir}/kamailio/modules/auth_radius.so -%{_libdir}/kamailio/modules/misc_radius.so -%{_libdir}/kamailio/modules/peering.so - - -%files redis -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.ndb_redis -%{_libdir}/kamailio/modules/ndb_redis.so - - -%files regex -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.regex -%{_libdir}/kamailio/modules/regex.so - - -%files rtjson -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.rtjson -%{_libdir}/kamailio/modules/rtjson.so - - -%files sctp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.sctp -%{_libdir}/kamailio/modules/sctp.so - - -%files snmpstats -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.snmpstats -%{_libdir}/kamailio/modules/snmpstats.so -%{_datadir}/snmp/mibs/KAMAILIO-MIB -%{_datadir}/snmp/mibs/KAMAILIO-REG-MIB -%{_datadir}/snmp/mibs/KAMAILIO-SIP-COMMON-MIB -%{_datadir}/snmp/mibs/KAMAILIO-SIP-SERVER-MIB -%{_datadir}/snmp/mibs/KAMAILIO-TC - - -%files statsd -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.statsd -%{_libdir}/kamailio/modules/statsd.so - - -%files sqlite -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_sqlite -%{_libdir}/kamailio/modules/db_sqlite.so -%{_libdir}/kamailio/kamctl/kamctl.sqlite -%{_libdir}/kamailio/kamctl/kamdbctl.sqlite -%dir %{_datadir}/kamailio/db_sqlite -%{_datadir}/kamailio/db_sqlite/* - - -%files tls -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_identity -%doc %{_docdir}/kamailio/modules/README.tls -%{_libdir}/kamailio/modules/auth_identity.so -%{_libdir}/kamailio/modules/tls.so - - -%files tcpops -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.tcpops -%{_libdir}/kamailio/modules/tcpops.so - - -%files unixodbc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_unixodbc -%{_libdir}/kamailio/modules/db_unixodbc.so - - -%files utils -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.utils -%{_libdir}/kamailio/modules/utils.so - - -%files websocket -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.websocket -%{_libdir}/kamailio/modules/websocket.so - - -%files xhttp-pi -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xhttp_pi -%{_libdir}/kamailio/modules/xhttp_pi.so -%dir %{_datadir}/kamailio/xhttp_pi -%{_datadir}/kamailio/xhttp_pi/* - - -%files xmlops -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmlops -%{_libdir}/kamailio/modules/xmlops.so - - -%files xmlrpc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmlrpc -%{_libdir}/kamailio/modules/xmlrpc.so -%doc %{_docdir}/kamailio/modules/README.mi_xmlrpc -%{_libdir}/kamailio/modules/mi_xmlrpc.so - - -%files xmpp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmpp -%{_libdir}/kamailio/modules/xmpp.so - - - -%changelog -* Tue Dec 3 2013 Peter Dunkley - - Updated version to 4.2.0 -* Mon Oct 7 2013 Peter Dunkley - - Consolidating changelog for 4.1.0 into a single entry... - - Added new modules to main package: - - cnxcc - - gzcompress - - mohqueue - - rtpproxy-ng - - sipt - - stun (STUN functionality moved from compile time in core to own module) - - Added new modules to other packages: - - ims_charging module to ims package - - Added new packages for new modules: - - app_java - - auth_ephemeral - - sctp (SCTP functionality moved from compile time in core to own module) - - Moved existing modules to different packages: - - auth_identity to tls package (previously not built for CentOS) - - cdp and cdp_avp to ims package - - dialog_ng to main package - - memcached to own package (previously not built for CentOS) - - mi_xmlrpc to own package (previously not built for CentOS) - - tls to own package - - Added packages for (new and existing) modules that require EPEL: - - carrierroute in own package - - dnssec in own package - - geoip in own package - - json and jsonrpc-c in new json package - - redis in own package - - acc_radius, auth_radius, misc_radius, and peering in new radius package - - Removed Fedora stuff as I am only maintaining this for CentOS now - - Refactored .spec - - Updated make commands to match updated module groups - - Updated version to 4.1.0 -* Mon Mar 11 2013 Peter Dunkley - - Consolidating changelog for 4.0.0 into a single entry... - - Added new modules to main package: - - corex - - sca - - Added new packages for new modules: - - cdp (cdp, cdp_avp) - - ims (dialog_ng, ims_auth, ims_icscf, ims_isc, ims_qos, - ims_registrar_pcscf, ims_registrar_scscf, ims_usrloc_pcscf, - ims_usrloc_scscf) - - outbound - - websocket - - xhttp_pi - - Moved existing modules to different packages: - - Various SER modules added to main package (avp, db2_ops, mangler, timer, - uid_auth_db, uid_avp_db, uid_domain, uid_gflags, uid_uri_db, print, - print_lib, xprint) - - db2_ldap SER module added to ldap package - - tls to main package (as OpenSSL was needed in core for STUN) - - Moved modules from modules_k/ to modules/ - - Renamed perl modules - - Added installation of auth.7.gz for Fedora now that manpages are built for - Fedora - - SCTP and STUN now included in this build - - Refactored .spec - - Updated ver to 4.0.0 -* Mon Jun 18 2012 Peter Dunkley - - Consolidating changelog for 3.3.0 into a single entry... - - See revision control for details this far back diff --git a/pkg/kamailio/centos/6/kamailio.sysconfig b/pkg/kamailio/centos/6/kamailio.sysconfig deleted file mode 100644 index 1a7316f64..000000000 --- a/pkg/kamailio/centos/6/kamailio.sysconfig +++ /dev/null @@ -1,30 +0,0 @@ -# -# 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 - -# Amount of shared memory to allocate for the running Kamailio server (in Mb) -SHM_MEMORY=64 - -# Amount of per-process (package) memory to allocate for Kamailio (in Mb) -PKG_MEMORY=4 - -# 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 (e.g. Ubuntu 6.10, Debian 4.0) 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=no - -# Add extra command line parameters in the EXTRA_OPTIONS variable -# EXTRA_OPTIONS="-a no" diff --git a/pkg/kamailio/centos/7/README b/pkg/kamailio/centos/7/README deleted file mode 100644 index 50e473fbf..000000000 --- a/pkg/kamailio/centos/7/README +++ /dev/null @@ -1,16 +0,0 @@ -The following modules are not included in CentOS 7 builds because they have -dependencies that cannot be met by the base or EPEL CentOS YUM repos or are -obsolete. - -Obsolete modules ----------------- -* dialog_ng use the ims_dialog module instead - -Modules with unmet dependencies -------------------------------- -Note: If you need any of these modules you will need to find (and possibly - build) and install the dependencies and then do a manual build of - Kamailio. - -Ordered by module name: -* app_java requires libgcj diff --git a/pkg/kamailio/centos/7/kamailio.init b/pkg/kamailio/centos/7/kamailio.init deleted file mode 100644 index d19f37674..000000000 --- a/pkg/kamailio/centos/7/kamailio.init +++ /dev/null @@ -1,141 +0,0 @@ -#!/bin/bash -# -# Startup script for Kamailio -# -# chkconfig: 345 85 15 -# description: Kamailio (OpenSER) - the Open Source SIP Server -# -# processname: kamailio -# pidfile: /var/run/kamailio/kamailio.pid -# config: /etc/kamailio/kamailio.cfg -# -### BEGIN INIT INFO -# Provides: kamailio -# Required-Start: $local_fs $network -# Short-Description: Kamailio (OpenSER) - the Open Source SIP Server -# Description: Kamailio (former OpenSER) is an Open Source SIP Server released -# under GPL, able to handle thousands of call setups per second. -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -KAM=/usr/sbin/kamailio -KAMCFG=/etc/kamailio/kamailio.cfg -PROG=kamailio -HOMEDIR=/var/run/$PROG -PID_FILE=/var/run/$PROG/kamailio.pid -LOCK_FILE=/var/lock/subsys/kamailio -RETVAL=0 -DEFAULTS=/etc/sysconfig/kamailio -RUN_KAMAILIO=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.*" $KAMCFG; then - echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/kamailio debug instead" - exit 1 - fi -} - -check_kamailio_config () -{ - # Check if kamailio configuration is valid before starting the server - out=$($KAM -c 2>&1 > /dev/null) - retcode=$? - if [ "$retcode" != '0' ]; then - echo "Not starting $DESC: invalid configuration file!" - echo -e "\n$out\n" - exit 1 - fi -} - - -start() { - check_kamailio_config - if [ "$1" != "debug" ]; then - check_fork - fi - echo -n $"Starting $PROG: " - daemon $KAM $OPTIONS >/dev/null 2>/dev/null - RETVAL=$? - [ $RETVAL = 0 ] && touch $LOCK_FILE && success - echo - return $RETVAL -} - -stop() { - echo -n $"Stopping $PROG: " - killproc -p $PID_FILE $KAM - RETVAL=$? - echo - [ $RETVAL = 0 ] && rm -f $LOCK_FILE $PID_FILE -} - -# Load startup options if available -if [ -f $DEFAULTS ]; then - . $DEFAULTS || true -fi - -if [ "$RUN_KAMAILIO" != "yes" ]; then - echo "Kamailio not yet configured. Edit /etc/default/kamailio first." - exit 0 -fi - - -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=32 -[ $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=/tmp - echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern -fi - -# /var/run can be a tmpfs -if [ ! -d $HOMEDIR ]; then - mkdir -p $HOMEDIR - chown ${USER}:${GROUP} $HOMEDIR -fi - -OPTIONS="-P $PID_FILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP $EXTRA_OPTIONS" - - -# See how we were called. -case "$1" in - start|debug) - start - ;; - stop) - stop - ;; - status) - status $KAM - RETVAL=$? - ;; - restart) - stop - start - ;; - condrestart) - if [ -f $PID_FILE ] ; then - stop - start - fi - ;; - *) - echo $"Usage: $PROG {start|stop|restart|condrestart|status|debug|help}" - exit 1 -esac - -exit $RETVAL diff --git a/pkg/kamailio/centos/7/kamailio.service b/pkg/kamailio/centos/7/kamailio.service deleted file mode 100644 index 1117e4160..000000000 --- a/pkg/kamailio/centos/7/kamailio.service +++ /dev/null @@ -1,27 +0,0 @@ -[Unit] -Description=Kamailio (OpenSER) - the Open Source SIP Server -Documentation=man:kamailio(8) https://www.kamailio.org/ -Wants=network-online.target -After=network-online.target - -[Service] -Type=forking -WorkingDirectory=/run/kamailio -Environment='CFGFILE=/etc/kamailio/kamailio.cfg' -Environment='SHM_MEMORY=64' -Environment='PKG_MEMORY=8' -EnvironmentFile=/etc/sysconfig/kamailio -# 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 -ExecStopPost=/usr/bin/rm -f /run/kamailio/kamailio.pid -Restart=on-failure -User=kamailio -Group=daemon -; For each TCP or TLS endpoint connection is requred file descriptor -LimitNOFILE=99999 - - -[Install] -WantedBy=multi-user.target diff --git a/pkg/kamailio/centos/7/kamailio.spec b/pkg/kamailio/centos/7/kamailio.spec deleted file mode 100644 index 20d72de59..000000000 --- a/pkg/kamailio/centos/7/kamailio.spec +++ /dev/null @@ -1,1468 +0,0 @@ -%define name kamailio -%define ver 5.1.8 -%define rel dev6%{dist} -%bcond_with dnssec - - - -Summary: Kamailio (former OpenSER) - the Open Source SIP Server -Name: %name -Version: %ver -Release: %rel -Packager: Peter Dunkley -License: GPL -Group: System Environment/Daemons -Source: http://kamailio.org/pub/kamailio/%{ver}/src/%{name}-%{ver}_src.tar.gz -URL: http://kamailio.org/ -Vendor: kamailio.org -BuildRoot: %{_tmppath}/%{name}-%{ver}-buildroot -Conflicts: kamailio-auth-ephemeral < %ver, kamailio-bdb < %ver -Conflicts: kamailio-carrierroute < %ver, kamailio-cpl < %ver -Conflicts: kamailio-dialplan < %ver, kamailio-dnssec < %ver -Conflicts: kamailio-geoip < %ver, kamailio-gzcompress < %ver -Conflicts: kamailio-ims < %ver, kamailio-java < %ver, kamailio-json < %ver -Conflicts: kamailio-lcr < %ver, kamailio-ldap < %ver, kamailio-lua < %ver -Conflicts: kamailio-kazoo < %ver -Conflicts: kamailio-rabbitmq < %ver -Conflicts: kamailio-memcached < %ver, kamailio-mysql < %ver -Conflicts: kamailio-outbound < %ver, kamailio-perl < %ver -Conflicts: kamailio-postgresql < %ver, kamailio-presence < %ver -Conflicts: kamailio-python < %ver -Conflicts: kamailio-radius < % ver, kamailio-redis < %ver -Conflicts: kamailio-regex < %ver, kamailio-sctp < %ver -Conflicts: kamailio-snmpstats < %ver, kamailio-sqlite < %ver -Conflicts: kamailio-tls < %ver, kamailio-unixodbc < %ver -Conflicts: kamailio-utils < %ver, kamailio-websocket < %ver -Conflicts: kamailio-xhttp-pi < %ver, kamailio-xmlops < %ver -Conflicts: kamailio-xmlrpc < %ver, kamailio-xmpp < %ver -Conflicts: kamailio-uuid < %ver -Conflicts: kamailio-sqlang < %ver -BuildRequires: bison, flex, gcc, make, redhat-rpm-config - -%description -Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able -to handle thousands of call setups per second. Among features: asynchronous TCP, -UDP and SCTP, secure communication via TLS for VoIP (voice, video); IPv4 and -IPv6; SIMPLE instant messaging and presence with embedded XCAP server and MSRP -relay; ENUM; DID and least cost routing; load balancing; routing fail-over; -accounting, authentication and authorization; support for many backend systems -such as MySQL, Postgres, Oracle, Radius, LDAP, Redis, Cassandra; XMLRPC control -interface, SNMP monitoring. It can be used to build large VoIP servicing -platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers -like Asterisk™, FreeSWITCH™ or SEMS. - - -%package auth-ephemeral -Summary: Functions for authentication using ephemeral credentials. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description auth-ephemeral -Functions for authentication using ephemeral credentials. - - -%package auth-xkeys -Summary: Functions for authentication using shared keys. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description auth-xkeys -Functions for authentication using shared keys. - - -%package bdb -Summary: Berkeley database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: db4, kamailio = %ver -BuildRequires: db4-devel - -%description bdb -Berkeley database connectivity for Kamailio. - - -%package carrierroute -Summary: The carrierroute module for Kamailio. -Group: System Environment/Daemons -Requires: libconfuse, kamailio = %ver -BuildRequires: libconfuse-devel - -%description carrierroute -The carrierroute module for Kamailio. - - -%package cfgt -Summary: Unit test config file execution tracing module for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description cfgt -The unit test config file execution tracing module for Kamailio. - - -%package cnxcc -Summary: Module which provides a mechanism to limit call duration based on credit information parameters for Kamailio. -Group: System Environment/Daemons -Requires: libevent, hiredis, kamailio = %ver -BuildRequires: libevent-devel, hiredis-devel - -%description cnxcc -Module which provides a mechanism to limit call duration based on credit information parameters for Kamailio. - - -%package cpl -Summary: CPL (Call Processing Language) interpreter for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description cpl -CPL (Call Processing Language) interpreter for Kamailio. - - -%package crypto -Summary: Module to support cryptographic extensions for use in the Kamailio configuration. -Group: System Environment/Daemons -Requires: libcrypto - -%description crypto -This module provides various cryptography tools for use in Kamailio configuration file. It relies on OpenSSL libraries for cryptographic operations (libssl, libcrypto). - - -%package dialplan -Summary: String translations based on rules for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description dialplan -String translations based on rules for Kamailio. - - -%package dmq_userloc -Summary: User location (usrloc) records replication between multiple servers via DMQ module for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description dmq_userloc -User location (usrloc) records replication between multiple servers via DMQ module. - - -%if %{with dnssec} -%package dnssec -Summary: DNSSEC support for Kamailio. -Group: System Environment/Daemons -Requires: dnssec-tools-libs, kamailio = %ver -BuildRequires: dnssec-tools-libs-devel - -%description dnssec -DNSSEC support for Kamailio. -%endif - - -%package geoip -Summary: MaxMind GeoIP support for Kamailio. -Group: System Environment/Daemons -Requires: GeoIP, kamailio = %ver -BuildRequires: GeoIP-devel - -%description geoip -MaxMind GeoIP support for Kamailio. - - -%package gzcompress -Summary: Compressed body (SIP and HTTP) handling for kamailio. -Group: System Environment/Daemons -Requires: zlib, kamailio = %ver -BuildRequires: zlib-devel - -%description gzcompress -Compressed body (SIP and HTTP) handling for kamailio. - -%package http_async_client -Summary: Async HTTP client module for Kamailio. -Group: System Environment/Daemons -Requires: libcurl, libevent, kamailio = %ver -BuildRequires: libcurl-devel, libevent-devel - -%description http_async_client -This module implements protocol functions that use the libcurl to communicate with HTTP servers in asyncronous way. - -%package http_client -Summary: HTTP client module for Kamailio. -Group: System Environment/Daemons - -%description http_client -This module implements protocol functions that use the libcurl to communicate with HTTP servers. - - -%package ims -Summary: IMS modules and extensions module for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description ims -IMS modules and extensions module for Kamailio. - -%package jansson -Summary: json string handling and RPC modules for Kamailio using JANSSON library. -Group: System Environment/Daemons -Requires: json-c, libevent, kamailio = %ver -BuildRequires: jansson-devel - -%description jansson -json string handling and RPC modules for Kamailio using JANSSON library. - - -%package json -Summary: json string handling and RPC modules for Kamailio. -Group: System Environment/Daemons -Requires: json-c, libevent, kamailio = %ver -BuildRequires: json-c-devel, libevent-devel - -%description json -json string handling and RPC modules for Kamailio. - - -%package kazoo -Summary: Kazoo middle layer connector support for Kamailio -Group: System Environment/Daemons -Requires: libuuid, librabbitmq, json-c, libevent, kamailio = %ver -BuildRequires: libuuid-devel, librabbitmq-devel, json-c-devel, libevent-devel - -%description kazoo -Kazoo module for Kamailio. - - -%package rabbitmq -Summary: RabbitMQ related modules -Group: System Environment/Daemons -Requires: uuid, librabbitmq, kamailio = %ver -BuildRequires: librabbitmq-devel, uuid-devel - -%description rabbitmq -RabbitMQ module for Kamailio. - - -%package lcr -Summary: Least cost routing for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description lcr -Least cost routing for Kamailio. - - -%package ldap -Summary: LDAP search interface for Kamailio. -Group: System Environment/Daemons -Requires: openldap, kamailio = %ver -BuildRequires: openldap-devel - -%description ldap -LDAP search interface for Kamailio. - - -%package log_custom -Summary: Logging to custom backends from Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description log_custom -This module provides logging to custom systems, replacing the default core logging to syslog. - - -%package lua -Summary: Lua extensions for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildRequires: lua-devel - -%description lua -Lua extensions for Kamailio. - - -%package memcached -Summary: memcached configuration file support for Kamailio. -Group: System Environment/Daemons -Requires: libmemcached, kamailio = %ver -BuildRequires: libmemcached-devel - -%description memcached -memcached configuration file support for Kamailio. - - -%package mysql -Summary: MySQL database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: mysql-libs, kamailio = %ver -BuildRequires: mysql-devel zlib-devel - -%description mysql -MySQL database connectivity for Kamailio. - - -%package outbound -Summary: Outbound (RFC 5626) support for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description outbound -RFC 5626, "Managing Client-Initiated Connections in the Session Initiation -Protocol (SIP)" support for Kamailio. - - -%package perl -Summary: Perl extensions and database driver for Kamailio. -Group: System Environment/Daemons -Requires: mod_perl, kamailio = %ver -BuildRequires: mod_perl-devel - -%description perl -Perl extensions and database driver for Kamailio. - - -%package postgresql -Summary: PostgreSQL database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: postgresql-libs, kamailio = %ver -BuildRequires: postgresql-devel - -%description postgresql -PostgreSQL database connectivity for Kamailio. - - -%package presence -Summary: SIP Presence (and RLS, XCAP, etc) support for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, libcurl, kamailio = %ver, kamailio-xmpp = %ver -BuildRequires: libxml2-devel, libcurl-devel - -%description presence -SIP Presence (and RLS, XCAP, etc) support for Kamailio. - - -%package python -Summary: Python extensions for Kamailio. -Group: System Environment/Daemons -Requires: python, kamailio = %ver -BuildRequires: python-devel - -%description python -Python extensions for Kamailio. - - -%package radius -Summary: RADIUS modules for Kamailio. -Group: System Environment/Daemons -Requires: radiusclient-ng, kamailio = %ver -BuildRequires: radiusclient-ng-devel - -%description radius -RADIUS modules for Kamailio. - - -%package redis -Summary: Redis configuration file support for Kamailio. -Group: System Environment/Daemons -Requires: hiredis, kamailio = %ver -BuildRequires: hiredis-devel - -%description redis -Redis configuration file support for Kamailio. - - -%package regex -Summary: PCRE mtaching operations for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description regex -PCRE mtaching operations for Kamailio. - - -%package rtjson -Summary: SIP routing based on JSON specifications. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description rtjson -SIP routing based on JSON specifications. - - -%package sctp -Summary: SCTP transport for Kamailio. -Group: System Environment/Daemons -Requires: lksctp-tools, kamailio = %ver -BuildRequires: lksctp-tools-devel - -%description sctp -SCTP transport for Kamailio. - - -%package smsops -Summary: Tools for handling SMS packets in SIP messages -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description smsops -This module collects the Transformations for 3GPP-SMS. - - -%package snmpstats -Summary: SNMP management interface (scalar statistics) for Kamailio. -Group: System Environment/Daemons -Requires: net-snmp-libs, kamailio = %ver -BuildRequires: net-snmp-devel - -%description snmpstats -SNMP management interface (scalar statistics) for Kamailio. - - -%package statsc -Summary: Statistics collecting module providing reports for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description statsc -This module provides a statistics collector engine. - - -%package statsd -Summary: Send commands to statsd server. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description statsd -Send commands to statsd server. - - -%package sqlite -Summary: SQLite database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: sqlite, kamailio = %ver -BuildRequires: sqlite-devel - -%description sqlite -SQLite database connectivity for Kamailio. - - -%package tls -Summary: TLS transport for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description tls -TLS transport for Kamailio. - - -%package tcpops -Summary: On demand and per socket control to the TCP options. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description tcpops -On demand and per socket control to the TCP options. - - -%package topos -Summary: Topology stripping module for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description topos -This module offers topology hiding by stripping the routing headers that could show topology details. - - -%package unixodbc -Summary: unixODBC database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: unixODBC, kamailio = %ver -BuildRequires: unixODBC-devel - -%description unixodbc -unixODBC database connectivity for Kamailio. - - -%package utils -Summary: Non-SIP utitility functions for Kamailio. -Group: System Environment/Daemons -Requires: libcurl, libxml2, kamailio = %ver -BuildRequires: libcurl-devel, libxml2-devel - -%description utils -Non-SIP utitility functions for Kamailio. - - -%package websocket -Summary: WebSocket transport for Kamailio. -Group: System Environment/Daemons -Requires: libunistring, openssl, kamailio = %ver -BuildRequires: libunistring-devel, openssl-devel - -%description websocket -WebSocket transport for Kamailio. - - -%package xhttp-pi -Summary: Web-provisioning interface for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xhttp-pi -Web-provisioning interface for Kamailio. - - -%package xmlops -Summary: XML operation functions for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xmlops -XML operation functions for Kamailio. - - -%package xmlrpc -Summary: XMLRPC transport and encoding for Kamailio RPCs and MI commands. -Group: System Environment/Daemons -Requires: libxml2, xmlrpc-c, kamailio = %ver -BuildRequires: libxml2-devel, xmlrpc-c-devel - -%description xmlrpc -XMLRPC transport and encoding for Kamailio RPCs and MI commands. - - -%package xmpp -Summary: SIP/XMPP IM gateway for Kamailio. -Group: System Environment/Daemons -Requires: expat, kamailio = %ver -BuildRequires: expat-devel - -%description xmpp -SIP/XMPP IM gateway for Kamailio. - - -%package uuid -Summary: uuid generator for Kamailio -Group: System Environment/Daemons -Requires: libuuid, kamailio = %version -BuildRequires: libuuid-devel - -%description uuid -UUID module for Kamailio. - -%package sqlang -Summary: Squirrel Language (SQLang) for Kamailio -Group: System Environment/Daemons -Requires: squirrel-libs, kamailio = %version -BuildRequires: squirrel-devel gcc-c++ - -%description sqlang -app_sqlang module for Kamailio. - -%prep -%setup -n %{name}-%{ver} - - - -%build -make cfg prefix=/usr cfg_prefix=$RPM_BUILD_ROOT basedir=$RPM_BUILD_ROOT \ - cfg_target=/%{_sysconfdir}/kamailio/ modules_dirs="modules" -make -make every-module skip_modules="app_mono db_cassandra db_oracle iptrtpproxy \ - jabber ndb_cassandra osp" \ - group_include="kstandard kautheph kberkeley kcarrierroute kcnxcc kcpl \ -%if %{with dnssec} - kdnssec \ -%endif - kgeoip kgzcompress khttp_async kims kjansson kjson kjsonrpcs \ - kkazoo krabbitmq kldap klua kmemcached \ - kmi_xmlrpc kmysql koutbound kperl kpostgres kpresence kpython \ - kradius kredis ksctp ksnmpstats ksqlite ktls kunixodbc kutils \ - kwebsocket kxml kxmpp kuuid" - -make utils - - - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" - -make install -make install-modules-all skip_modules="app_mono db_cassandra db_oracle \ - iptrtpproxy jabber osp" \ - group_include="kstandard kautheph kberkeley kcarrierroute kcnxcc kcpl \ -%if %{with dnssec} - kdnssec \ -%endif - kgeoip kgzcompress khttp_async kims kjansson kjson kjsonrpcs \ - kkazoo krabbitmq kldap klua kmemcached \ - kmi_xmlrpc kmysql koutbound kperl kpostgres kpresence kpython \ - kradius kredis ksctp ksnmpstats ksqlite ktls kunixodbc kutils \ - kwebsocket kxml kxmpp kuuid" - -%if "%{?_unitdir}" == "" -# On RedHat 6 like -install -d %{buildroot}%{_rundir}/kamailio -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d -install -m755 pkg/kamailio/centos/%{?centos}/kamailio.init \ - $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/kamailio -%else -# systemd -install -d %{buildroot}%{_unitdir} -install -Dpm 0644 pkg/kamailio/centos/%{?centos}/kamailio.service %{buildroot}%{_unitdir}/kamailio.service -install -Dpm 0644 pkg/kamailio/centos/%{?centos}/kamailio.tmpfiles %{buildroot}%{_tmpfilesdir}/kamailio.conf -%endif - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig -install -m644 pkg/kamailio/centos/%{?centos}/kamailio.sysconfig \ - $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/kamailio - - - -%pre -/usr/sbin/groupadd -r kamailio 2> /dev/null || : -/usr/sbin/useradd -r -g kamailio -s /bin/false -c "Kamailio daemon" -d \ - %{_libdir}/kamailio kamailio 2> /dev/null || : -mkdir -p %{_var}/run/kamailio 2> /dev/null || : -chown kamailio:kamailio %{_var}/run/kamailio 2> /dev/null || : - - - -%clean -rm -rf "$RPM_BUILD_ROOT" - - - -%post -%if "%{?_unitdir}" == "" -/sbin/chkconfig --add kamailio -%else -%tmpfiles_create kamailio.conf -/usr/bin/systemctl -q enable kamailio.service -%endif - - - -%preun -if [ $1 = 0 ]; then - /sbin/service kamailio stop > /dev/null 2>&1 - /sbin/chkconfig --del kamailio -fi - - - -%files -%defattr(-,root,root) -%dir %{_docdir}/kamailio -%doc %{_docdir}/kamailio/INSTALL -%doc %{_docdir}/kamailio/README - -%dir %{_docdir}/kamailio/modules -%doc %{_docdir}/kamailio/modules/README.acc -%doc %{_docdir}/kamailio/modules/README.acc_diameter -%doc %{_docdir}/kamailio/modules/README.alias_db -%doc %{_docdir}/kamailio/modules/README.app_jsdt -%doc %{_docdir}/kamailio/modules/README.async -%doc %{_docdir}/kamailio/modules/README.auth -%doc %{_docdir}/kamailio/modules/README.auth_db -%doc %{_docdir}/kamailio/modules/README.auth_diameter -%doc %{_docdir}/kamailio/modules/README.avp -%doc %{_docdir}/kamailio/modules/README.avpops -%doc %{_docdir}/kamailio/modules/README.benchmark -%doc %{_docdir}/kamailio/modules/README.blst -%doc %{_docdir}/kamailio/modules/README.call_control -%doc %{_docdir}/kamailio/modules/README.cfg_db -%doc %{_docdir}/kamailio/modules/README.cfg_rpc -%doc %{_docdir}/kamailio/modules/README.cfgutils -%doc %{_docdir}/kamailio/modules/README.corex -%doc %{_docdir}/kamailio/modules/README.counters -%doc %{_docdir}/kamailio/modules/README.ctl -%doc %{_docdir}/kamailio/modules/README.db_cluster -%doc %{_docdir}/kamailio/modules/README.db_flatstore -%doc %{_docdir}/kamailio/modules/README.db_text -%doc %{_docdir}/kamailio/modules/README.db2_ops -%doc %{_docdir}/kamailio/modules/README.debugger -%doc %{_docdir}/kamailio/modules/README.dialog -%doc %{_docdir}/kamailio/modules/README.dispatcher -%doc %{_docdir}/kamailio/modules/README.diversion -%doc %{_docdir}/kamailio/modules/README.dmq -%doc %{_docdir}/kamailio/modules/README.domain -%doc %{_docdir}/kamailio/modules/README.domainpolicy -%doc %{_docdir}/kamailio/modules/README.drouting -%doc %{_docdir}/kamailio/modules/README.enum -%doc %{_docdir}/kamailio/modules/README.exec -%doc %{_docdir}/kamailio/modules/README.group -%doc %{_docdir}/kamailio/modules/README.htable -%doc %{_docdir}/kamailio/modules/README.imc -%doc %{_docdir}/kamailio/modules/README.ims_ocs -%doc %{_docdir}/kamailio/modules/README.ipops -%doc %{_docdir}/kamailio/modules/README.kex -%doc %{_docdir}/kamailio/modules/README.malloc_test -%doc %{_docdir}/kamailio/modules/README.mangler -%doc %{_docdir}/kamailio/modules/README.matrix -%doc %{_docdir}/kamailio/modules/README.maxfwd -%doc %{_docdir}/kamailio/modules/README.mediaproxy -%doc %{_docdir}/kamailio/modules/README.mohqueue -%doc %{_docdir}/kamailio/modules/README.mqueue -%doc %{_docdir}/kamailio/modules/README.msilo -%doc %{_docdir}/kamailio/modules/README.msrp -%doc %{_docdir}/kamailio/modules/README.mtree -%doc %{_docdir}/kamailio/modules/README.nat_traversal -%doc %{_docdir}/kamailio/modules/README.nathelper -%doc %{_docdir}/kamailio/modules/README.p_usrloc -%doc %{_docdir}/kamailio/modules/README.path -%doc %{_docdir}/kamailio/modules/README.pdb -%doc %{_docdir}/kamailio/modules/README.pdt -%doc %{_docdir}/kamailio/modules/README.permissions -%doc %{_docdir}/kamailio/modules/README.pike -%doc %{_docdir}/kamailio/modules/README.pipelimit -%doc %{_docdir}/kamailio/modules/README.prefix_route -%doc %{_docdir}/kamailio/modules/README.print -%doc %{_docdir}/kamailio/modules/README.print_lib -%doc %{_docdir}/kamailio/modules/README.pv -%doc %{_docdir}/kamailio/modules/README.pua_rpc -%doc %{_docdir}/kamailio/modules/README.qos -%doc %{_docdir}/kamailio/modules/README.ratelimit -%doc %{_docdir}/kamailio/modules/README.registrar -%doc %{_docdir}/kamailio/modules/README.rr -%doc %{_docdir}/kamailio/modules/README.rtimer -%doc %{_docdir}/kamailio/modules/README.rtpproxy -%doc %{_docdir}/kamailio/modules/README.rtpengine -%doc %{_docdir}/kamailio/modules/README.sanity -%doc %{_docdir}/kamailio/modules/README.sca -%doc %{_docdir}/kamailio/modules/README.sdpops -%doc %{_docdir}/kamailio/modules/README.seas -%doc %{_docdir}/kamailio/modules/README.sipcapture -%doc %{_docdir}/kamailio/modules/README.sipt -%doc %{_docdir}/kamailio/modules/README.siptrace -%doc %{_docdir}/kamailio/modules/README.siputils -%doc %{_docdir}/kamailio/modules/README.sl -%doc %{_docdir}/kamailio/modules/README.sms -%doc %{_docdir}/kamailio/modules/README.speeddial -%doc %{_docdir}/kamailio/modules/README.sqlops -%doc %{_docdir}/kamailio/modules/README.ss7ops -%doc %{_docdir}/kamailio/modules/README.sst -%doc %{_docdir}/kamailio/modules/README.statistics -%doc %{_docdir}/kamailio/modules/README.stun -%doc %{_docdir}/kamailio/modules/README.textops -%doc %{_docdir}/kamailio/modules/README.textopsx -%doc %{_docdir}/kamailio/modules/README.timer -%doc %{_docdir}/kamailio/modules/README.tm -%doc %{_docdir}/kamailio/modules/README.tmrec -%doc %{_docdir}/kamailio/modules/README.tmx -%doc %{_docdir}/kamailio/modules/README.topoh -%doc %{_docdir}/kamailio/modules/README.uac -%doc %{_docdir}/kamailio/modules/README.uac_redirect -%doc %{_docdir}/kamailio/modules/README.uid_auth_db -%doc %{_docdir}/kamailio/modules/README.uid_avp_db -%doc %{_docdir}/kamailio/modules/README.uid_domain -%doc %{_docdir}/kamailio/modules/README.uid_gflags -%doc %{_docdir}/kamailio/modules/README.uid_uri_db -%doc %{_docdir}/kamailio/modules/README.uri_db -%doc %{_docdir}/kamailio/modules/README.userblacklist -%doc %{_docdir}/kamailio/modules/README.usrloc -%doc %{_docdir}/kamailio/modules/README.xhttp -%doc %{_docdir}/kamailio/modules/README.xhttp_rpc -%doc %{_docdir}/kamailio/modules/README.xlog -%doc %{_docdir}/kamailio/modules/README.xprint -%doc %{_docdir}/kamailio/modules/README.jsonrpcs -%doc %{_docdir}/kamailio/modules/README.nosip -%doc %{_docdir}/kamailio/modules/README.tsilo -%doc %{_docdir}/kamailio/modules/README.call_obj -%doc %{_docdir}/kamailio/modules/README.evrexec -%doc %{_docdir}/kamailio/modules/README.keepalive - - -%dir %attr(-,kamailio,kamailio) %{_sysconfdir}/kamailio -%config(noreplace) %{_sysconfdir}/kamailio/* -%config %{_sysconfdir}/sysconfig/* -%if "%{?_unitdir}" == "" -%config %{_sysconfdir}/rc.d/init.d/* -%else -%{_unitdir}/kamailio.service -%{_tmpfilesdir}/kamailio.conf -%endif - -%dir %{_libdir}/kamailio -%{_libdir}/kamailio/libprint.so -%{_libdir}/kamailio/libprint.so.1 -%{_libdir}/kamailio/libprint.so.1.2 -%{_libdir}/kamailio/libsrdb1.so -%{_libdir}/kamailio/libsrdb1.so.1 -%{_libdir}/kamailio/libsrdb1.so.1.0 -%{_libdir}/kamailio/libsrdb2.so -%{_libdir}/kamailio/libsrdb2.so.1 -%{_libdir}/kamailio/libsrdb2.so.1.0 -%{_libdir}/kamailio/libsrutils.so -%{_libdir}/kamailio/libsrutils.so.1 -%{_libdir}/kamailio/libsrutils.so.1.0 -%{_libdir}/kamailio/libtrie.so -%{_libdir}/kamailio/libtrie.so.1 -%{_libdir}/kamailio/libtrie.so.1.0 - -%dir %{_libdir}/kamailio/modules -%{_libdir}/kamailio/modules/acc.so -%{_libdir}/kamailio/modules/acc_diameter.so -%{_libdir}/kamailio/modules/alias_db.so -%{_libdir}/kamailio/modules/app_jsdt.so -%{_libdir}/kamailio/modules/async.so -%{_libdir}/kamailio/modules/auth.so -%{_libdir}/kamailio/modules/auth_db.so -%{_libdir}/kamailio/modules/auth_diameter.so -%{_libdir}/kamailio/modules/avp.so -%{_libdir}/kamailio/modules/avpops.so -%{_libdir}/kamailio/modules/benchmark.so -%{_libdir}/kamailio/modules/blst.so -%{_libdir}/kamailio/modules/call_control.so -%{_libdir}/kamailio/modules/cfg_db.so -%{_libdir}/kamailio/modules/cfg_rpc.so -%{_libdir}/kamailio/modules/cfgutils.so -%{_libdir}/kamailio/modules/corex.so -%{_libdir}/kamailio/modules/counters.so -%{_libdir}/kamailio/modules/ctl.so -%{_libdir}/kamailio/modules/db_cluster.so -%{_libdir}/kamailio/modules/db_flatstore.so -%{_libdir}/kamailio/modules/db_text.so -%{_libdir}/kamailio/modules/db2_ops.so -%{_libdir}/kamailio/modules/debugger.so -%{_libdir}/kamailio/modules/dialog.so -%{_libdir}/kamailio/modules/dispatcher.so -%{_libdir}/kamailio/modules/diversion.so -%{_libdir}/kamailio/modules/dmq.so -%{_libdir}/kamailio/modules/domain.so -%{_libdir}/kamailio/modules/domainpolicy.so -%{_libdir}/kamailio/modules/drouting.so -%{_libdir}/kamailio/modules/enum.so -%{_libdir}/kamailio/modules/exec.so -%{_libdir}/kamailio/modules/group.so -%{_libdir}/kamailio/modules/htable.so -%{_libdir}/kamailio/modules/imc.so -%{_libdir}/kamailio/modules/ims_ocs.so -%{_libdir}/kamailio/modules/ipops.so -%{_libdir}/kamailio/modules/kex.so -%{_libdir}/kamailio/modules/malloc_test.so -%{_libdir}/kamailio/modules/mangler.so -%{_libdir}/kamailio/modules/matrix.so -%{_libdir}/kamailio/modules/maxfwd.so -%{_libdir}/kamailio/modules/mediaproxy.so -%{_libdir}/kamailio/modules/mohqueue.so -%{_libdir}/kamailio/modules/mqueue.so -%{_libdir}/kamailio/modules/msilo.so -%{_libdir}/kamailio/modules/msrp.so -%{_libdir}/kamailio/modules/mtree.so -%{_libdir}/kamailio/modules/nat_traversal.so -%{_libdir}/kamailio/modules/nathelper.so -%{_libdir}/kamailio/modules/p_usrloc.so -%{_libdir}/kamailio/modules/path.so -%{_libdir}/kamailio/modules/pdb.so -%{_libdir}/kamailio/modules/pdt.so -%{_libdir}/kamailio/modules/permissions.so -%{_libdir}/kamailio/modules/pike.so -%{_libdir}/kamailio/modules/pipelimit.so -%{_libdir}/kamailio/modules/prefix_route.so -%{_libdir}/kamailio/modules/print.so -%{_libdir}/kamailio/modules/print_lib.so -%{_libdir}/kamailio/modules/pua_rpc.so -%{_libdir}/kamailio/modules/pv.so -%{_libdir}/kamailio/modules/qos.so -%{_libdir}/kamailio/modules/ratelimit.so -%{_libdir}/kamailio/modules/registrar.so -%{_libdir}/kamailio/modules/rr.so -%{_libdir}/kamailio/modules/rtimer.so -%{_libdir}/kamailio/modules/rtpproxy.so -%{_libdir}/kamailio/modules/rtpengine.so -%{_libdir}/kamailio/modules/sanity.so -%{_libdir}/kamailio/modules/sca.so -%{_libdir}/kamailio/modules/sdpops.so -%{_libdir}/kamailio/modules/seas.so -%{_libdir}/kamailio/modules/sipcapture.so -%{_libdir}/kamailio/modules/sipt.so -%{_libdir}/kamailio/modules/siptrace.so -%{_libdir}/kamailio/modules/siputils.so -%{_libdir}/kamailio/modules/sl.so -%{_libdir}/kamailio/modules/sms.so -%{_libdir}/kamailio/modules/speeddial.so -%{_libdir}/kamailio/modules/sqlops.so -%{_libdir}/kamailio/modules/ss7ops.so -%{_libdir}/kamailio/modules/sst.so -%{_libdir}/kamailio/modules/statistics.so -%{_libdir}/kamailio/modules/stun.so -%{_libdir}/kamailio/modules/textops.so -%{_libdir}/kamailio/modules/textopsx.so -%{_libdir}/kamailio/modules/timer.so -%{_libdir}/kamailio/modules/tm.so -%{_libdir}/kamailio/modules/tmrec.so -%{_libdir}/kamailio/modules/tmx.so -%{_libdir}/kamailio/modules/topoh.so -%{_libdir}/kamailio/modules/uac.so -%{_libdir}/kamailio/modules/uac_redirect.so -%{_libdir}/kamailio/modules/uid_auth_db.so -%{_libdir}/kamailio/modules/uid_avp_db.so -%{_libdir}/kamailio/modules/uid_domain.so -%{_libdir}/kamailio/modules/uid_gflags.so -%{_libdir}/kamailio/modules/uid_uri_db.so -%{_libdir}/kamailio/modules/uri_db.so -%{_libdir}/kamailio/modules/userblacklist.so -%{_libdir}/kamailio/modules/usrloc.so -%{_libdir}/kamailio/modules/xhttp.so -%{_libdir}/kamailio/modules/xhttp_rpc.so -%{_libdir}/kamailio/modules/xlog.so -%{_libdir}/kamailio/modules/xprint.so -%{_libdir}/kamailio/modules/jsonrpcs.so -%{_libdir}/kamailio/modules/nosip.so -%{_libdir}/kamailio/modules/tsilo.so -%{_libdir}/kamailio/modules/call_obj.so -%{_libdir}/kamailio/modules/evrexec.so -%{_libdir}/kamailio/modules/keepalive.so - -%{_sbindir}/kamailio -%{_sbindir}/kamctl -%{_sbindir}/kamdbctl -%{_sbindir}/kamcmd - -%dir %{_libdir}/kamailio/kamctl -%{_libdir}/kamailio/kamctl/kamctl.base -%{_libdir}/kamailio/kamctl/kamctl.ctlbase -%{_libdir}/kamailio/kamctl/kamctl.dbtext -%{_libdir}/kamailio/kamctl/kamctl.rpcfifo -%{_libdir}/kamailio/kamctl/kamctl.ser -%{_libdir}/kamailio/kamctl/kamctl.sqlbase -%{_libdir}/kamailio/kamctl/kamdbctl.base -%{_libdir}/kamailio/kamctl/kamdbctl.dbtext - -%dir %{_libdir}/kamailio/kamctl/dbtextdb -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.py -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyc -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyo - -%{_mandir}/man5/* -%{_mandir}/man8/* - -%dir %{_datadir}/kamailio -%dir %{_datadir}/kamailio/dbtext -%dir %{_datadir}/kamailio/dbtext/kamailio -%{_datadir}/kamailio/dbtext/kamailio/* - - -%files auth-ephemeral -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_ephemeral -%{_libdir}/kamailio/modules/auth_ephemeral.so - - -%files auth-xkeys -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_xkeys -%{_libdir}/kamailio/modules/auth_xkeys.so - - -%files bdb -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_berkeley -%{_sbindir}/kambdb_recover -%{_libdir}/kamailio/modules/db_berkeley.so -%{_libdir}/kamailio/kamctl/kamctl.db_berkeley -%{_libdir}/kamailio/kamctl/kamdbctl.db_berkeley -%dir %{_datadir}/kamailio/db_berkeley -%{_datadir}/kamailio/db_berkeley/* - - -%files carrierroute -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.carrierroute -%{_libdir}/kamailio/modules/carrierroute.so - - -%files cnxcc -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.cnxcc -%{_libdir}/kamailio/modules/cnxcc.so - -%files cpl -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.cplc -%{_libdir}/kamailio/modules/cplc.so - - -%files dialplan -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dialplan -%{_libdir}/kamailio/modules/dialplan.so - - -%files dmq_userloc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dmq_usrloc -%{_libdir}/kamailio/modules/dmq_usrloc.so - - -%if %{with dnssec} -%files dnssec -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dnssec -%{_libdir}/kamailio/modules/dnssec.so -%endif - - -%files geoip -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.geoip -%{_libdir}/kamailio/modules/geoip.so - - -%files gzcompress -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.gzcompress -%{_libdir}/kamailio/modules/gzcompress.so - -%files http_async_client -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.http_async_client -%{_libdir}/kamailio/modules/http_async_client.so - -%files http_client -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.http_client -%{_libdir}/kamailio/modules/http_client.so - -%files ims -%defattr(-,root,root) -%{_libdir}/kamailio/libkamailio_ims.so -%{_libdir}/kamailio/libkamailio_ims.so.0 -%{_libdir}/kamailio/libkamailio_ims.so.0.1 - -%doc %{_docdir}/kamailio/modules/README.cdp -%doc %{_docdir}/kamailio/modules/README.cdp_avp -%doc %{_docdir}/kamailio/modules/README.cfgt -%doc %{_docdir}/kamailio/modules/README.crypto -%doc %{_docdir}/kamailio/modules/README.ims_auth -%doc %{_docdir}/kamailio/modules/README.ims_charging -%doc %{_docdir}/kamailio/modules/README.ims_dialog -%doc %{_docdir}/kamailio/modules/README.ims_icscf -%doc %{_docdir}/kamailio/modules/README.ims_isc -%doc %{_docdir}/kamailio/modules/README.ims_qos -%doc %{_docdir}/kamailio/modules/README.ims_registrar_pcscf -%doc %{_docdir}/kamailio/modules/README.ims_registrar_scscf -%doc %{_docdir}/kamailio/modules/README.ims_usrloc_pcscf -%doc %{_docdir}/kamailio/modules/README.ims_diameter_server -%doc %{_docdir}/kamailio/modules/README.log_custom -%doc %{_docdir}/kamailio/modules/README.smsops -%doc %{_docdir}/kamailio/modules/README.statsc -%doc %{_docdir}/kamailio/modules/README.topos -#%doc %{_docdir}/kamailio/modules/README.ims_usrloc_scscf -%{_libdir}/kamailio/modules/cdp.so -%{_libdir}/kamailio/modules/cdp_avp.so -%{_libdir}/kamailio/modules/cfgt.so -%{_libdir}/kamailio/modules/crypto.so -%{_libdir}/kamailio/modules/ims_auth.so -%{_libdir}/kamailio/modules/ims_charging.so -%{_libdir}/kamailio/modules/ims_dialog.so -%{_libdir}/kamailio/modules/ims_icscf.so -%{_libdir}/kamailio/modules/ims_isc.so -%{_libdir}/kamailio/modules/ims_qos.so -%{_libdir}/kamailio/modules/ims_registrar_pcscf.so -%{_libdir}/kamailio/modules/ims_registrar_scscf.so -%{_libdir}/kamailio/modules/ims_usrloc_pcscf.so -%{_libdir}/kamailio/modules/ims_usrloc_scscf.so -%{_libdir}/kamailio/modules/ims_diameter_server.so -%{_libdir}/kamailio/modules/log_custom.so -%{_libdir}/kamailio/modules/smsops.so -%{_libdir}/kamailio/modules/statsc.so -%{_libdir}/kamailio/modules/topos.so - -%files jansson -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.jansson -%doc %{_docdir}/kamailio/modules/README.janssonrpcc -%{_libdir}/kamailio/modules/jansson.so -%{_libdir}/kamailio/modules/janssonrpcc.so - - -%files json -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.json -%doc %{_docdir}/kamailio/modules/README.jsonrpcc -%{_libdir}/kamailio/modules/json.so -%{_libdir}/kamailio/modules/jsonrpcc.so - - -%files kazoo -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.kazoo -%{_libdir}/kamailio/modules/kazoo.so - - -%files rabbitmq -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.rabbitmq -%{_libdir}/kamailio/modules/rabbitmq.so - - -%files lcr -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.lcr -%{_libdir}/kamailio/modules/lcr.so - - -%files ldap -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db2_ldap -%doc %{_docdir}/kamailio/modules/README.h350 -%doc %{_docdir}/kamailio/modules/README.ldap -%{_libdir}/kamailio/modules/db2_ldap.so -%{_libdir}/kamailio/modules/h350.so -%{_libdir}/kamailio/modules/ldap.so - - -%files lua -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_lua -%{_libdir}/kamailio/modules/app_lua.so - - -%files memcached -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.memcached -%{_libdir}/kamailio/modules/memcached.so - - -%files mysql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_mysql -%{_libdir}/kamailio/modules/db_mysql.so -%{_libdir}/kamailio/kamctl/kamctl.mysql -%{_libdir}/kamailio/kamctl/kamdbctl.mysql -%dir %{_datadir}/kamailio/mysql -%{_datadir}/kamailio/mysql/* - - -%files outbound -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.outbound -%{_libdir}/kamailio/modules/outbound.so - - -%files perl -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_perl -%doc %{_docdir}/kamailio/modules/README.db_perlvdb -%{_libdir}/kamailio/modules/app_perl.so -%{_libdir}/kamailio/modules/db_perlvdb.so -%dir %{_libdir}/kamailio/perl -%{_libdir}/kamailio/perl/Kamailio.pm -%dir %{_libdir}/kamailio/perl/Kamailio -%{_libdir}/kamailio/perl/Kamailio/Constants.pm -%{_libdir}/kamailio/perl/Kamailio/Message.pm -%{_libdir}/kamailio/perl/Kamailio/VDB.pm -%dir %{_libdir}/kamailio/perl/Kamailio/LDAPUtils -%{_libdir}/kamailio/perl/Kamailio/LDAPUtils/LDAPConf.pm -%{_libdir}/kamailio/perl/Kamailio/LDAPUtils/LDAPConnection.pm -%dir %{_libdir}/kamailio/perl/Kamailio/Utils -%{_libdir}/kamailio/perl/Kamailio/Utils/Debug.pm -%{_libdir}/kamailio/perl/Kamailio/Utils/PhoneNumbers.pm -%dir %{_libdir}/kamailio/perl/Kamailio/VDB -%{_libdir}/kamailio/perl/Kamailio/VDB/Column.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Pair.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/ReqCond.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Result.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/VTab.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Value.pm -%dir %{_libdir}/kamailio/perl/Kamailio/VDB/Adapter -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/AccountingSIPtrace.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Alias.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Auth.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Describe.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Speeddial.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/TableVersions.pm - - -%files postgresql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_postgres -%{_libdir}/kamailio/modules/db_postgres.so -%{_libdir}/kamailio/kamctl/kamctl.pgsql -%{_libdir}/kamailio/kamctl/kamdbctl.pgsql -%dir %{_datadir}/kamailio/postgres -%{_datadir}/kamailio/postgres/* - - -%files presence -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.presence -%doc %{_docdir}/kamailio/modules/README.presence_conference -%doc %{_docdir}/kamailio/modules/README.presence_dialoginfo -%doc %{_docdir}/kamailio/modules/README.presence_mwi -%doc %{_docdir}/kamailio/modules/README.presence_profile -%doc %{_docdir}/kamailio/modules/README.presence_reginfo -%doc %{_docdir}/kamailio/modules/README.presence_xml -%doc %{_docdir}/kamailio/modules/README.pua -%doc %{_docdir}/kamailio/modules/README.pua_bla -%doc %{_docdir}/kamailio/modules/README.pua_dialoginfo -%doc %{_docdir}/kamailio/modules/README.pua_reginfo -%doc %{_docdir}/kamailio/modules/README.pua_usrloc -%doc %{_docdir}/kamailio/modules/README.pua_xmpp -%doc %{_docdir}/kamailio/modules/README.rls -%doc %{_docdir}/kamailio/modules/README.xcap_client -%doc %{_docdir}/kamailio/modules/README.xcap_server -%{_libdir}/kamailio/modules/presence.so -%{_libdir}/kamailio/modules/presence_conference.so -%{_libdir}/kamailio/modules/presence_dialoginfo.so -%{_libdir}/kamailio/modules/presence_mwi.so -%{_libdir}/kamailio/modules/presence_profile.so -%{_libdir}/kamailio/modules/presence_reginfo.so -%{_libdir}/kamailio/modules/presence_xml.so -%{_libdir}/kamailio/modules/pua.so -%{_libdir}/kamailio/modules/pua_bla.so -%{_libdir}/kamailio/modules/pua_dialoginfo.so -%{_libdir}/kamailio/modules/pua_reginfo.so -%{_libdir}/kamailio/modules/pua_usrloc.so -%{_libdir}/kamailio/modules/pua_xmpp.so -%{_libdir}/kamailio/modules/rls.so -%{_libdir}/kamailio/modules/xcap_client.so -%{_libdir}/kamailio/modules/xcap_server.so - - -%files python -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_python -%{_libdir}/kamailio/modules/app_python.so - - -%files radius -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.acc_radius -%doc %{_docdir}/kamailio/modules/README.auth_radius -%doc %{_docdir}/kamailio/modules/README.misc_radius -%doc %{_docdir}/kamailio/modules/README.peering -%{_libdir}/kamailio/modules/acc_radius.so -%{_libdir}/kamailio/modules/auth_radius.so -%{_libdir}/kamailio/modules/misc_radius.so -%{_libdir}/kamailio/modules/peering.so - - -%files redis -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.ndb_redis -%doc %{_docdir}/kamailio/modules/README.topos_redis -%{_libdir}/kamailio/modules/ndb_redis.so -%{_libdir}/kamailio/modules/topos_redis.so - - -%files regex -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.regex -%{_libdir}/kamailio/modules/regex.so - - -%files rtjson -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.rtjson -%{_libdir}/kamailio/modules/rtjson.so - - -%files sctp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.sctp -%{_libdir}/kamailio/modules/sctp.so - - -%files snmpstats -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.snmpstats -%{_libdir}/kamailio/modules/snmpstats.so -%{_datadir}/snmp/mibs/KAMAILIO-MIB -%{_datadir}/snmp/mibs/KAMAILIO-REG-MIB -%{_datadir}/snmp/mibs/KAMAILIO-SIP-COMMON-MIB -%{_datadir}/snmp/mibs/KAMAILIO-SIP-SERVER-MIB -%{_datadir}/snmp/mibs/KAMAILIO-TC - - -%files statsd -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.statsd -%{_libdir}/kamailio/modules/statsd.so - - -%files sqlite -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_sqlite -%{_libdir}/kamailio/modules/db_sqlite.so -%{_libdir}/kamailio/kamctl/kamctl.sqlite -%{_libdir}/kamailio/kamctl/kamdbctl.sqlite -%dir %{_datadir}/kamailio/db_sqlite -%{_datadir}/kamailio/db_sqlite/* - - -%files tls -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_identity -%doc %{_docdir}/kamailio/modules/README.tls -%{_libdir}/kamailio/modules/auth_identity.so -%{_libdir}/kamailio/modules/tls.so - - -%files tcpops -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.tcpops -%{_libdir}/kamailio/modules/tcpops.so - - -%files unixodbc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_unixodbc -%{_libdir}/kamailio/modules/db_unixodbc.so - - -%files utils -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.utils -%{_libdir}/kamailio/modules/utils.so - - -%files websocket -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.websocket -%{_libdir}/kamailio/modules/websocket.so - - -%files xhttp-pi -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xhttp_pi -%{_libdir}/kamailio/modules/xhttp_pi.so -%dir %{_datadir}/kamailio/xhttp_pi -%{_datadir}/kamailio/xhttp_pi/* - - -%files xmlops -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmlops -%{_libdir}/kamailio/modules/xmlops.so - - -%files xmlrpc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmlrpc -%{_libdir}/kamailio/modules/xmlrpc.so - - -%files xmpp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmpp -%{_libdir}/kamailio/modules/xmpp.so - - -%files uuid -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.uuid -%{_libdir}/kamailio/modules/uuid.so - -%files sqlang -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_sqlang -%{_libdir}/kamailio/modules/app_sqlang.so - -%changelog -* Mon Jul 31 2017 Mititelu Stefan - - added rabbitmq module -* Wed Apr 26 2017 Carsten Bock - - added ims_diameter_server module - - added topos_redis module - - added call_obj module - - added evrexec module - - added keepalive module - - added app_sqlang module -* Thu Mar 09 2017 Federico Cabiddu - - Updated version to 5.1.0-dev1 -* Thu Mar 09 2017 Federico Cabiddu - - added jansson package -* Sat Feb 04 2017 Federico Cabiddu - - added http_async_client package - - fix http_client package -* Fri Nov 04 2016 Marcel Weinberg - - Updated to Kamailio version 5.0 and CentOS / RHEL 7.2 - - added new modules available with Kamailio 5.x - - cfgt - - crypto - - http_client - - log_custom - - smsops - - statsc - - topos - - removed dialog_ng references and added ims_dialog to replace dialog_ng - - removed java module which requires libgcj - - libgcj is no longer supported by RHEL / CentOS (Version >= 7) - - it's recommended to replace libgcj as dependency - - added the ims_registrar_pcscf module -* Tue Dec 3 2013 Peter Dunkley - - Updated version to 4.2.0 -* Mon Oct 7 2013 Peter Dunkley - - Consolidating changelog for 4.1.0 into a single entry... - - Added new modules to main package: - - cnxcc - - gzcompress - - mohqueue - - rtpproxy-ng - - sipt - - stun (STUN functionality moved from compile time in core to own module) - - Added new modules to other packages: - - ims_charging module to ims package - - Added new packages for new modules: - - app_java - - auth_ephemeral - - sctp (SCTP functionality moved from compile time in core to own module) - - Moved existing modules to different packages: - - auth_identity to tls package (previously not built for CentOS) - - cdp and cdp_avp to ims package - - dialog_ng to main package - - memcached to own package (previously not built for CentOS) - - mi_xmlrpc to own package (previously not built for CentOS) - - tls to own package - - Added packages for (new and existing) modules that require EPEL: - - carrierroute in own package - - dnssec in own package - - geoip in own package - - json and jsonrpc-c in new json package - - redis in own package - - acc_radius, auth_radius, misc_radius, and peering in new radius package - - Removed Fedora stuff as I am only maintaining this for CentOS now - - Refactored .spec - - Updated make commands to match updated module groups - - Updated version to 4.1.0 -* Mon Mar 11 2013 Peter Dunkley - - Consolidating changelog for 4.0.0 into a single entry... - - Added new modules to main package: - - corex - - sca - - Added new packages for new modules: - - cdp (cdp, cdp_avp) - - ims (dialog_ng, ims_auth, ims_icscf, ims_isc, ims_qos, - ims_registrar_pcscf, ims_registrar_scscf, ims_usrloc_pcscf, - ims_usrloc_scscf) - - outbound - - websocket - - xhttp_pi - - Moved existing modules to different packages: - - Various SER modules added to main package (avp, db2_ops, mangler, timer, - uid_auth_db, uid_avp_db, uid_domain, uid_gflags, uid_uri_db, print, - print_lib, xprint) - - db2_ldap SER module added to ldap package - - tls to main package (as OpenSSL was needed in core for STUN) - - Moved modules from modules_k/ to modules/ - - Renamed perl modules - - Added installation of auth.7.gz for Fedora now that manpages are built for - Fedora - - SCTP and STUN now included in this build - - Refactored .spec - - Updated ver to 4.0.0 -* Mon Jun 18 2012 Peter Dunkley - - Consolidating changelog for 3.3.0 into a single entry... - - See revision control for details this far back - diff --git a/pkg/kamailio/centos/7/kamailio.sysconfig b/pkg/kamailio/centos/7/kamailio.sysconfig deleted file mode 100644 index 1a7316f64..000000000 --- a/pkg/kamailio/centos/7/kamailio.sysconfig +++ /dev/null @@ -1,30 +0,0 @@ -# -# 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 - -# Amount of shared memory to allocate for the running Kamailio server (in Mb) -SHM_MEMORY=64 - -# Amount of per-process (package) memory to allocate for Kamailio (in Mb) -PKG_MEMORY=4 - -# 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 (e.g. Ubuntu 6.10, Debian 4.0) 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=no - -# Add extra command line parameters in the EXTRA_OPTIONS variable -# EXTRA_OPTIONS="-a no" diff --git a/pkg/kamailio/centos/7/kamailio.tmpfiles b/pkg/kamailio/centos/7/kamailio.tmpfiles deleted file mode 100644 index 6c3cc0bc5..000000000 --- a/pkg/kamailio/centos/7/kamailio.tmpfiles +++ /dev/null @@ -1 +0,0 @@ -D /run/kamailio 0700 kamailio daemon - diff --git a/pkg/kamailio/deb/bionic/changelog b/pkg/kamailio/deb/bionic/changelog new file mode 100644 index 000000000..fe535c5ca --- /dev/null +++ b/pkg/kamailio/deb/bionic/changelog @@ -0,0 +1,511 @@ +kamailio (5.2.3) unstable; urgency=medium + + * version set 5.2.3 + + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 + +kamailio (5.2.2) unstable; urgency=medium + + * version set 5.2.2 + + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 + +kamailio (5.2.1) unstable; urgency=medium + + * version set 5.2.1 + + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 + +kamailio (5.2.0) unstable; urgency=medium + + * version set 5.2.0 + + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 + +kamailio (5.2.0~rc2) unstable; urgency=medium + + * version set 5.2.0~rc2 + + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 + +kamailio (5.2.0~rc1) unstable; urgency=medium + + * version set 5.2.0~rc1 + + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 + +kamailio (5.2.0~rc0) unstable; urgency=medium + + * version set 5.2.0~rc0 + + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 + +kamailio (5.2.0~pre2) unstable; urgency=medium + + * version set 5.2.0~pre2 + + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 + +kamailio (5.2.0~pre1) unstable; urgency=medium + + * version set 5.2.0~pre1 + + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 + +kamailio (5.2.0~pre0) unstable; urgency=medium + + * version set 5.2.0~pre0 + + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 + +kamailio (5.2.0~dev8) unstable; urgency=medium + + * version set 5.2.0-dev8 + + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 + +kamailio (5.2.0~dev7) unstable; urgency=medium + + * version set 5.2.0-dev7 + + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 + +kamailio (5.2.0~dev6) unstable; urgency=medium + + * version set 5.2.0-dev6 + + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 + +kamailio (5.1.0~pre1) unstable; urgency=medium + + * version set to 5.1.0-pre1 + + -- Victor Seva Tue, 07 Nov 2017 16:20:33 +0100 + +kamailio (5.1.0~pre0) unstable; urgency=medium + + * version set to 5.1.0-pre0 + + -- Victor Seva Fri, 03 Nov 2017 10:09:31 +0100 + +kamailio (5.1.0~dev8) unstable; urgency=medium + + * version set to 5.1.0~dev8 + + -- Victor Seva Mon, 16 Oct 2017 12:09:55 +0200 + +kamailio (5.1.0~dev7) unstable; urgency=medium + + * version set to 5.1.0-dev7 + + -- Victor Seva Mon, 18 Sep 2017 09:24:11 +0200 + +kamailio (5.1.0~dev6) unstable; urgency=medium + + * version set to 5.1.0-dev6 + + -- Victor Seva Mon, 14 Aug 2017 23:28:16 +0200 + +kamailio (5.1.0~dev5) unstable; urgency=medium + + * version set to 5.1.0-dev5 + + -- Victor Seva Tue, 18 Jul 2017 16:37:11 +0200 + +kamailio (5.1.0~dev4) unstable; urgency=medium + + * version set to 5.1.0-dev4 + + -- Victor Seva Mon, 12 Jun 2017 13:15:18 +0200 + +kamailio (5.1.0~dev3) unstable; urgency=medium + + * version set to 5.1.0-dev3 + + -- Victor Seva Thu, 18 May 2017 13:14:33 +0200 + +kamailio (5.1.0~dev2) unstable; urgency=medium + + * version set to 5.1.0-dev2 + + -- Victor Seva Tue, 28 Mar 2017 17:00:21 +0200 + +kamailio (5.1.0~dev1) unstable; urgency=medium + + * version set to 5.1.0-dev1 + + -- Victor Seva Tue, 14 Feb 2017 14:52:54 +0100 + +kamailio (5.1.0~dev0) unstable; urgency=medium + + * version set to 5.1.0-dev0 + + -- Victor Seva Thu, 09 Feb 2017 13:13:25 +0100 + +kamailio (5.0.0~pre2) unstable; urgency=medium + + * version set to 5.0.0-pre2 + + -- Victor Seva Thu, 09 Feb 2017 09:53:10 +0100 + +kamailio (5.0.0~pre1) unstable; urgency=medium + + * version set to 5.0.0-pre1 + + -- Victor Seva Wed, 01 Feb 2017 16:42:26 +0100 + +kamailio (5.0.0~pre0) unstable; urgency=medium + + * version set to 5.0.0-pre0 + + -- Victor Seva Thu, 05 Jan 2017 09:56:27 +0100 + +kamailio (5.0.0~dev9) unstable; urgency=medium + + * version set to 5.0.0-dev9 + + -- Victor Seva Thu, 15 Dec 2016 13:03:24 +0100 + +kamailio (5.0.0~dev8) unstable; urgency=medium + + * version set to 5.0.0-dev8 + + -- Victor Seva Mon, 12 Dec 2016 08:48:43 +0100 + +kamailio (5.0.0~dev7) unstable; urgency=medium + + * version set to 5.0.0-dev7 + + -- Victor Seva Wed, 02 Nov 2016 13:28:49 +0100 + +kamailio (5.0.0~dev6) unstable; urgency=medium + + * version set to 5.0.0-dev6 + + -- Victor Seva Mon, 29 Aug 2016 11:36:17 +0200 + +kamailio (5.0.0~dev5) unstable; urgency=medium + + * version set to 5.0.0-dev5 + + -- Victor Seva Tue, 07 Jun 2016 18:24:53 +0200 + +kamailio (5.0.0~dev4) unstable; urgency=medium + + * version set to 5.0.0-dev4 + + -- Victor Seva Wed, 11 May 2016 14:22:54 +0200 + +kamailio (5.0.0~dev1) unstable; urgency=medium + + * version set to 5.0.0-dev1 + + -- Victor Seva Mon, 21 Mar 2016 10:56:21 +0100 + +kamailio (5.0.0~dev0) unstable; urgency=medium + + * version set to 5.0.0-dev0 + + -- Victor Seva Fri, 11 Mar 2016 09:16:51 +0100 + +kamailio (4.4.0~pre2) unstable; urgency=medium + + * version set to 4.4.0-pre2 + + -- Victor Seva Thu, 10 Mar 2016 12:38:56 +0100 + +kamailio (4.4.0~pre1) unstable; urgency=medium + + * version set to 4.4.0-pre1 + + -- Victor Seva Tue, 23 Feb 2016 08:53:36 +0100 + +kamailio (4.4.0~pre0) unstable; urgency=medium + + * version set to 4.4.0-pre0 + + -- Victor Seva Thu, 04 Feb 2016 11:51:56 +0100 + +kamailio (4.4.0~dev9) unstable; urgency=medium + + * update version to 4.4.0~dev9 + + -- Victor Seva Wed, 03 Feb 2016 18:29:09 +0100 + +kamailio (4.4.0~dev8) unstable; urgency=medium + + * update version to 4.4.0~dev8 + + -- Victor Seva Fri, 18 Dec 2015 11:42:59 +0100 + +kamailio (4.4.0~dev6) unstable; urgency=medium + + * update version to 4.4.0~dev6 + + -- Victor Seva Thu, 05 Nov 2015 09:16:36 +0100 + +kamailio (4.4.0~dev5) unstable; urgency=medium + + * update version to 4.4.0~dev5 + + -- Victor Seva Fri, 02 Oct 2015 14:15:56 +0200 + +kamailio (4.4.0~dev3) unstable; urgency=medium + + * update version to 4.4.0~dev3 + + -- Victor Seva Thu, 10 Sep 2015 09:27:22 +0200 + +kamailio (4.4.0~dev2) unstable; urgency=medium + + * update version to 4.4.0~dev2 + + -- Victor Seva Tue, 14 Jul 2015 16:21:03 +0200 + +kamailio (4.4.0~dev0) unstable; urgency=medium + + * update version to 4.4.0~dev0 + + -- Victor Seva Tue, 26 May 2015 10:18:42 +0200 + +kamailio (4.3.0~pre2) unstable; urgency=medium + + * update version to 4.3.0~pre2 + + -- Victor Seva Mon, 18 May 2015 11:18:45 +0200 + +kamailio (4.3.0~pre1) unstable; urgency=medium + + * update version to 4.3.0~pre1 + + -- Victor Seva Tue, 05 May 2015 10:52:12 +0200 + +kamailio (4.3.0~pre0) unstable; urgency=medium + + * update version to 4.3.0~pre0 + + -- Victor Seva Thu, 23 Apr 2015 09:58:06 +0200 + +kamailio (4.3.0~dev5) unstable; urgency=medium + + * update version to 4.3.0~dev5 + + -- Victor Seva Thu, 12 Mar 2015 15:20:01 +0100 + +kamailio (4.3.0~dev4) unstable; urgency=medium + + * update version to 4.3.0~dev4 + + -- Victor Seva Sat, 07 Feb 2015 09:53:08 +0100 + +kamailio (4.3.0~dev3) unstable; urgency=medium + + * update version to 4.3.0~dev3 + + -- Victor Seva Sat, 03 Jan 2015 23:21:53 +0100 + +kamailio (4.3.0~dev1) unstable; urgency=medium + + * update version to 4.3.0~dev1 + + -- Victor Seva Mon, 13 Oct 2014 14:33:16 +0200 + +kamailio (4.3.0~dev0) unstable; urgency=medium + + * update version to 4.3.0~dev0 + + -- Victor Seva Thu, 09 Oct 2014 09:49:13 +0200 + +kamailio (4.2.0~pre1) UNRELEASED; urgency=medium + + * update version to 4.2.0~pre1 + + -- Victor Seva Mon, 29 Sep 2014 10:17:56 +0200 + +kamailio (4.2.0~pre0) UNRELEASED; urgency=medium + + * update version to 4.2.0~pre0 + + -- Victor Seva Fri, 12 Sep 2014 02:38:24 +0200 + +kamailio (4.2.0~dev9) unstable; urgency=medium + + * update version to 4.2.0~dev9 + + -- Victor Seva Tue, 02 Sep 2014 11:18:12 +0200 + +kamailio (4.2.0~dev8) unstable; urgency=medium + + * update version to 4.2.0~dev8 + + -- Victor Seva Sat, 26 Jul 2014 10:03:22 +0200 + +kamailio (4.2.0~dev7) unstable; urgency=medium + + * update version to 4.2.0~dev7 + + -- Victor Seva Thu, 12 Jun 2014 12:55:05 +0200 + +kamailio (4.2.0~dev6) unstable; urgency=medium + + * update version to 4.2.0~dev6 + + -- Victor Seva Sat, 03 May 2014 21:49:21 +0200 + +kamailio (4.2.0~dev5) unstable; urgency=medium + + * update version to 4.2.0~dev5 + + -- Victor Seva Mon, 21 Apr 2014 22:52:17 +0200 + +kamailio (4.2.0~dev4) unstable; urgency=medium + + * update version to 4.2.0~dev4 + + -- Victor Seva Tue, 08 Apr 2014 11:56:12 +0200 + +kamailio (4.2.0~dev3) unstable; urgency=medium + + * update version to 4.2.0~dev3 + + -- Victor Seva Fri, 21 Feb 2014 22:52:43 +0100 + +kamailio (4.2.0~dev2) unstable; urgency=medium + + * update version to 4.2.0~dev2 + + -- Victor Seva Mon, 03 Feb 2014 11:12:36 +0100 + +kamailio (4.2.0~dev1) unstable; urgency=medium + + * update version to 4.2.0~dev1 + + -- Victor Seva Wed, 08 Jan 2014 19:13:30 +0100 + +kamailio (4.2.0~dev0) unstable; urgency=low + + * Added packages: + - kamailio-autheph-modules + - kamailio-sctp-modules + - kamailio-java-modules + + -- Victor Seva Tue, 03 Dec 2013 14:26:58 +0100 + +kamailio (4.0.0) unstable; urgency=low + + * update to 4.0.0 from upstream + + -- Daniel-Constantin Mierla Mon, 11 Mar 2013 10:40:30 +0100 + +kamailio (3.4.0~dev0) unstable; urgency=low + + * update version to 3.4.0~dev0 + + -- Jon Bonilla Wed, 15 Jun 2012 03:15:00 +0100 + +kamailio (3.2.0) unstable; urgency=low + + * update to 3.2.0 from upstream + + -- Daniel-Constantin Mierla Fri, 29 Apr 2011 12:25:30 +0100 + +kamailio (3.1.1) unstable; urgency=low + + * update to 3.1.1 from upstream + + -- Jon Bonilla Fri, 3 Dec 2010 16:30:00 +0100 + +kamailio (3.1.0) unstable; urgency=low + + * update to 3.1.0 from upstream + + -- Jon Bonilla Wed, 6 Oct 2010 17:24:00 +0100 + +kamailio (3.0.2.99) unstable; urgency=low + + * update to 3.0.2.99 for development version builds + + -- Jon Bonilla Fri, 28 May 2010 22:26:00 +0100 + +kamailio (3.0.2) unstable; urgency=low + + * update to 3.0.2 from upstream + + -- Daniel-Constantin Mierla Thu, 27 May 2010 10:27:36 +0100 + +kamailio (3.0.1) unstable; urgency=low + + * update to 3.0.1 from upstream + + -- Daniel-Constantin Mierla Mon, 08 Mar 2010 20:30:48 +0100 + +kamailio (3.0.0) unstable; urgency=low + + * update to 3.0.0 from upstream + + -- Daniel-Constantin Mierla Mon, 11 Jan 2010 18:30:42 +0100 + +kamailio (3.0.0-rc3) unstable; urgency=low + + * update to 3.0.0-rc3 from upstream + * updated debian/rules to work with the SIP Router style module packaging + + -- Daniel-Constantin Mierla Fri, 10 Dec 2009 12:10:02 +0100 + +kamailio (3.0.0-rc2) unstable; urgency=low + + * update to 3.0.0-rc2 from upstream + * updated debian/rules to work with the new style module packaging + + -- Jonas Bergler Wed, 18 Nov 2009 12:30:02 +1300 + +kamailio (1.5.0-svn1) unstable; urgency=low + + * increment debian packaging for trunk + + -- Henning Westerholt Mon, 02 Mar 2009 17:40:02 +0100 + +kamailio (1.4.0-svn1) unstable; urgency=low + + [ Klaus Darilion ] + * first release of Kamailio (after renaming from Openser) + + -- Julien BLACHE Wed, 12 Dec 2007 17:25:31 +0100 + + diff --git a/pkg/kamailio/deb/bionic/compat b/pkg/kamailio/deb/bionic/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/pkg/kamailio/deb/bionic/compat @@ -0,0 +1 @@ +9 diff --git a/pkg/kamailio/deb/bionic/control b/pkg/kamailio/deb/bionic/control new file mode 100644 index 000000000..338568ab7 --- /dev/null +++ b/pkg/kamailio/deb/bionic/control @@ -0,0 +1,848 @@ +Source: kamailio +Section: net +Priority: optional +Maintainer: Debian VoIP Team +Uploaders: + Victor Seva , + Tzafrir Cohen , +Build-Depends: + bison, + debhelper (>= 9), + default-libmysqlclient-dev, + dh-systemd (>= 1.5), + 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, + libncurses5-dev, + libpcre3-dev, + libperl-dev, + libphonenumber-dev (>= 7), + libpq-dev, + librabbitmq-dev, + libradcli-dev, + libreadline-dev, + libsasl2-dev, + libsctp-dev, + libsnmp-dev, + libsqlite3-dev, + libssl-dev, + libsystemd-dev, + libunistring-dev, + libxml2-dev, + openssl, + pkg-config, + python, + python-dev, + python3, + python3-dev, + ruby-dev, + unixodbc-dev, + uuid-dev, + xsltproc, + zlib1g-dev, +Standards-Version: 3.9.5 +Homepage: http://www.kamailio.org/ +Vcs-git: git://anonscm.debian.org/pkg-voip/kamailio.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-voip/kamailio.git + +Package: kamailio +Architecture: linux-any +Multi-Arch: foreign +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + adduser, + lsb-base, + python, + ${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, +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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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-python-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python-dev, + ${misc:Depends}, + ${shlibs:Depends}, +Description: The app_python 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_python module, an extension allowing to + execute embedded Python applications within the Kamailio SIP routing script. + +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-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: linux-any +Multi-Arch: same +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: linux-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: linux-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: linux-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: linux-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-extra-modules +Architecture: linux-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/bionic/copyright b/pkg/kamailio/deb/bionic/copyright new file mode 100644 index 000000000..6967774b7 --- /dev/null +++ b/pkg/kamailio/deb/bionic/copyright @@ -0,0 +1,335 @@ +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: atomic/* atomic_ops.* basex.* bit_*.c char_msg_val.h compiler_opt.h + core_stats.h counters.* endianness.* futexlock.h hashes.h io_wait.* + kstats_types.h lock_ops.c lock_ops_init.h + lvalue.* mem/ll_malloc.* mem/memdbg.h mem/sf_malloc.* mi/*.h mod_fix.* + modules/tm/rpc_uac.* modules/counters/counters.c modules/tls/sbufq.h + modules/tls/tls_bio.* modules/tls/tls_cfg.* modules/tls/tls_cfg.h + modules/tls/tls_ct_wrq.* modules/tls/tls_ct_q.h modules/tls/tls_domain.* + modules/tls/tls_server.h modules/tls/tls_locking.* modules/tls/tls_rpc.* + modules/tls/tls_server.c modules/malloc_test/malloc_test.c modules/blst/blst.c + parser/case_p_* parser/case_reas.h pvapi.h pv_core.* rand/fastrand.* raw_* + rpc_lookup.* rvalue.* sctp_* ser_time.h shm_init.* sip_msg_clone.* sock_ut.* + sr_compat.* str_hash.h switch.* tcp_ev.h tcp_int_send.h tcp_options.* + tcp_read.h tcp_stats.* timer_proc.* tls_hooks.* tls_hooks_init.h ver.* +Copyright: 2006-2010 iptelorg GmbH +License: ISC + +Files: modules/tls/tls_select.* modules/tls/tls_dump_vf.* +Copyright: 2005-2010 iptelorg GmbH +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. + +Files: modules/websocket/* modules/outbound/* modules/auth_ephemeral/* +Copyright: 2012-2013 Crocodile RCS Ltd +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. + +Files: daemonize.* fastlock.h lock_ops.h mem/mem.* mem/f_malloc.h + mem/meminfo.h mem/memtest.c mem/shm_mem.c mem/q_malloc.h mem/q_malloc.c + mem/shm_mem.h mem/f_malloc.c modules/tls/tls_rpc.c modules/tls/tls_server.c + modules/tls/tls_domain.c modules/tls/tls_domain.h modules/tls/tls_server.h + modules/tls/tls_rpc.h pt.c pt.h sched_yield.h ut.c ut.h +Copyright: 2001-2003 FhG Fokus +License: ISC + +Files: events.* modules/topoh/* +Copyright: 2009 SIP-Router.org +License: ISC + +Files: modules/mi_rpc/mi_rpc_mod.c modules/pv/pv_xavp.* + modules/usrloc/ul_rpc.* ppcfg.* xavp.* +Copyright: 2009-2010 Daniel-Constantin Mierla (asipto.com) +License: ISC + +Files: obsolete/jabber_k/tree234.* +Copyright: 1999, 2000, 2001, Simon Tatham +License: Expat + 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 SIMON TATHAM 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. + +Files: modules/xmpp/xsnprintf.c obsolete/jabber_s/xsnprintf.c obsolete/jabber_k/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: modules/mi_xmlrpc/abyss* +Copyright: 2000, Moez Mahfoudh +License: BSD-3-clause + +Files: list.h +Copyright: 1991, 1993 The Regents of the University of California +License: BSD-3-clause + +Files: modules/tm/t_serial.* +Copyright: 2008 Juha Heinanen +License: BSD-2-clause + +Files: parser/sdp/sdp.* parser/sdp/sdp_helpr_funcs.* parser/sdp/sdp_cloner.h +Copyright: + 2008-2009 SOMA Networks, INC. + 2010 VoIP Embedded, Inc +License: BSD-2-clause + +Files: 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: md5.* 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: 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: 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: 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: 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/bionic/kamailio-autheph-modules.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio-autheph-modules.lintian-overrides new file mode 100644 index 000000000..dcb3d18c6 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio-autheph-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-autheph-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/bionic/kamailio-berkeley-bin.dirs b/pkg/kamailio/deb/bionic/kamailio-berkeley-bin.dirs new file mode 100644 index 000000000..236670a2d --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio-berkeley-bin.dirs @@ -0,0 +1 @@ +usr/sbin diff --git a/pkg/kamailio/deb/bionic/kamailio-dnssec-modules.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio-dnssec-modules.lintian-overrides new file mode 100644 index 000000000..10165fec9 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio-dnssec-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-dnssec-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/bionic/kamailio-outbound-modules.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio-outbound-modules.lintian-overrides new file mode 100644 index 000000000..3050cfeb4 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio-outbound-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-outbound-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides new file mode 100644 index 000000000..bbe0d3768 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio-tls-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-tls-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/bionic/kamailio-websocket-modules.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio-websocket-modules.lintian-overrides new file mode 100644 index 000000000..8f384fbc3 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio-websocket-modules.lintian-overrides @@ -0,0 +1 @@ +kamailio-websocket-modules binary: possible-gpl-code-linked-with-openssl diff --git a/pkg/kamailio/deb/bionic/kamailio.README.Debian b/pkg/kamailio/deb/bionic/kamailio.README.Debian new file mode 100644 index 000000000..d25769a96 --- /dev/null +++ b/pkg/kamailio/deb/bionic/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/bionic/kamailio.default b/pkg/kamailio/deb/bionic/kamailio.default new file mode 100644 index 000000000..8b20fc003 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio.default @@ -0,0 +1,28 @@ +# +# 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 + +# 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/bionic/kamailio.examples b/pkg/kamailio/deb/bionic/kamailio.examples new file mode 100644 index 000000000..e39721e20 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio.examples @@ -0,0 +1 @@ +examples/* diff --git a/pkg/kamailio/deb/bionic/kamailio.init b/pkg/kamailio/deb/bionic/kamailio.init new file mode 100644 index 000000000..09ca0800c --- /dev/null +++ b/pkg/kamailio/deb/bionic/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=/var/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 + +# /var/run 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" + +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/bionic/kamailio.lintian-overrides b/pkg/kamailio/deb/bionic/kamailio.lintian-overrides new file mode 100644 index 000000000..18152ed17 --- /dev/null +++ b/pkg/kamailio/deb/bionic/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/bionic/kamailio.postinst b/pkg/kamailio/deb/bionic/kamailio.postinst new file mode 100644 index 000000000..4ee38ecb1 --- /dev/null +++ b/pkg/kamailio/deb/bionic/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 /var/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/bionic/kamailio.service b/pkg/kamailio/deb/bionic/kamailio.service new file mode 100644 index 000000000..4575fde61 --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio.service @@ -0,0 +1,25 @@ +[Unit] +Description=Kamailio (OpenSER) - the Open Source SIP Server +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +Environment='CFGFILE=/etc/kamailio/kamailio.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +Environment='USER=kamailio' +Environment='GROUP=kamailio' +EnvironmentFile=-/etc/default/kamailio +EnvironmentFile=-/etc/default/kamailio.d/* +# PIDFile requires a full absolute path +PIDFile=/var/run/kamailio/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/bionic/rules b/pkg/kamailio/deb/bionic/rules new file mode 100755 index 000000000..c8463fb89 --- /dev/null +++ b/pkg/kamailio/deb/bionic/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 + +# 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 seperate 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 redis python geoip geoip2 \ + sqlite json mono ruby ims sctp \ + tls outbound websocket autheph kazoo cnxcc \ + erlang systemd phonenum mongodb rabbitmq python3 + +# 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 /var/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/bionic/source.lintian-overrides b/pkg/kamailio/deb/bionic/source.lintian-overrides new file mode 100644 index 000000000..620d9ffdd --- /dev/null +++ b/pkg/kamailio/deb/bionic/source.lintian-overrides @@ -0,0 +1 @@ +kamailio source: debian-watch-file-in-native-package diff --git a/pkg/kamailio/deb/bionic/source/format b/pkg/kamailio/deb/bionic/source/format new file mode 100644 index 000000000..89ae9db8f --- /dev/null +++ b/pkg/kamailio/deb/bionic/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/pkg/kamailio/deb/bionic/watch b/pkg/kamailio/deb/bionic/watch new file mode 100644 index 000000000..c50f31fd6 --- /dev/null +++ b/pkg/kamailio/deb/bionic/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/buster/changelog b/pkg/kamailio/deb/buster/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/buster/changelog +++ b/pkg/kamailio/deb/buster/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/buster/control b/pkg/kamailio/deb/buster/control index c8ba074fa..338568ab7 100644 --- a/pkg/kamailio/deb/buster/control +++ b/pkg/kamailio/deb/buster/control @@ -14,7 +14,6 @@ Build-Depends: dpkg-dev (>= 1.16.1.1), erlang-dev, flex, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -28,6 +27,7 @@ Build-Depends: liblua5.1-0-dev, libmaxminddb-dev, libmemcached-dev, + libmnl-dev, libmongoc-dev, libmono-2.0-dev, libncurses5-dev, @@ -50,6 +50,9 @@ Build-Depends: pkg-config, python, python-dev, + python3, + python3-dev, + ruby-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -70,9 +73,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -273,6 +277,41 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-any Multi-Arch: same @@ -473,23 +512,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/buster/copyright b/pkg/kamailio/deb/buster/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/buster/copyright +++ b/pkg/kamailio/deb/buster/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/buster/kamailio.service b/pkg/kamailio/deb/buster/kamailio.service index 06c3334bd..4575fde61 100644 --- a/pkg/kamailio/deb/buster/kamailio.service +++ b/pkg/kamailio/deb/buster/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio (OpenSER) - the Open Source SIP Server -After=network.target +Wants=network-online.target +After=network-online.target [Service] Type=forking @@ -15,7 +16,10 @@ EnvironmentFile=-/etc/default/kamailio.d/* PIDFile=/var/run/kamailio/kamailio.pid # ExecStart requires a full absolute path ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP -Restart=on-abort +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 [Install] WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/buster/rules b/pkg/kamailio/deb/buster/rules index 66bd742fc..c8463fb89 100755 --- a/pkg/kamailio/deb/buster/rules +++ b/pkg/kamailio/deb/buster/rules @@ -35,9 +35,9 @@ EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc dnssec PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ ldap xml perl utils lua memcached \ snmpstats carrierroute xmpp cpl redis python geoip geoip2 \ - sqlite json mono ims sctp \ + sqlite json mono ruby ims sctp \ tls outbound websocket autheph kazoo cnxcc \ - erlang systemd phonenum mongodb rabbitmq + erlang systemd phonenum mongodb rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -57,7 +57,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -66,7 +66,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -82,7 +82,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -91,7 +91,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -124,7 +124,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -135,7 +135,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/debian/backports/bionic b/pkg/kamailio/deb/debian/backports/bionic new file mode 100755 index 000000000..dbbe2fc69 --- /dev/null +++ b/pkg/kamailio/deb/debian/backports/bionic @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Target dist: Ubuntu bionic +DIST=bionic + +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 + +wrap-and-sort -sat -d ${DIST} + +# clean backports scripts +rm -rf ${DIST}/backports +exit 0 diff --git a/pkg/kamailio/deb/debian/backports/precise b/pkg/kamailio/deb/debian/backports/precise index 3d6c88a3e..e6369b2bc 100755 --- a/pkg/kamailio/deb/debian/backports/precise +++ b/pkg/kamailio/deb/debian/backports/precise @@ -82,6 +82,18 @@ sed -i -e '/libmongoc-dev/d' -e '/^Package: kamailio-mongodb-modules/,/^$/d' \ sed -i -e 's/ mongodb[ ,$]*/ /' ${DIST}/rules sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mongodb/' ${DIST}/rules +# no pkg-config for ruby-dev +sed -i -e '/ruby-dev/d' -e '/^Package: kamailio-ruby-modules/,/^$/d' \ + ${DIST}/control +sed -i -e 's/ ruby[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ ruby/' ${DIST}/rules + +# no python3 for app_python3 +sed -i -e '/python3-dev/d' -e '/^Package: kamailio-python3-modules/,/^$/d' \ + -e '/python3/d' ${DIST}/control +sed -i -e 's/ python3[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ python3/' ${DIST}/rules + wrap-and-sort -sat -d ${DIST} # clean backports scripts diff --git a/pkg/kamailio/deb/debian/backports/trusty b/pkg/kamailio/deb/debian/backports/trusty index 5ec40afa1..a991ea7f4 100755 --- a/pkg/kamailio/deb/debian/backports/trusty +++ b/pkg/kamailio/deb/debian/backports/trusty @@ -56,6 +56,12 @@ sed -i -e '/libmongoc-dev/d' -e '/^Package: kamailio-mongodb-modules/,/^$/d' \ sed -i -e 's/ mongodb[ ,$]*/ /' ${DIST}/rules sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mongodb/' ${DIST}/rules +# no pkg-config for ruby-dev +sed -i -e '/ruby-dev/d' -e '/^Package: kamailio-ruby-modules/,/^$/d' \ + ${DIST}/control +sed -i -e 's/ ruby[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ ruby/' ${DIST}/rules + wrap-and-sort -sat -d ${DIST} # clean backports scripts diff --git a/pkg/kamailio/deb/debian/backports/wheezy b/pkg/kamailio/deb/debian/backports/wheezy index 743a18ebb..111f5d395 100755 --- a/pkg/kamailio/deb/debian/backports/wheezy +++ b/pkg/kamailio/deb/debian/backports/wheezy @@ -82,6 +82,18 @@ sed -i -e '/libmongoc-dev/d' -e '/^Package: kamailio-mongodb-modules/,/^$/d' \ sed -i -e 's/ mongodb[ ,$]*/ /' ${DIST}/rules sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mongodb/' ${DIST}/rules +# no pkg-config for ruby-dev +sed -i -e '/ruby-dev/d' -e '/^Package: kamailio-ruby-modules/,/^$/d' \ + ${DIST}/control +sed -i -e 's/ ruby[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ ruby/' ${DIST}/rules + +# no python3 for app_python3 +sed -i -e '/python3-dev/d' -e '/^Package: kamailio-python3-modules/,/^$/d' \ + -e '/python3/d' ${DIST}/control +sed -i -e 's/ python3[ ,$]*/ /' ${DIST}/rules +sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ python3/' ${DIST}/rules + wrap-and-sort -sat -d ${DIST} # clean backports scripts diff --git a/pkg/kamailio/deb/debian/changelog b/pkg/kamailio/deb/debian/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/debian/changelog +++ b/pkg/kamailio/deb/debian/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/debian/control b/pkg/kamailio/deb/debian/control index 1586559d0..e8077280a 100644 --- a/pkg/kamailio/deb/debian/control +++ b/pkg/kamailio/deb/debian/control @@ -15,7 +15,6 @@ Build-Depends: erlang-dev, flex, gcj-jdk, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -29,6 +28,8 @@ Build-Depends: liblua5.1-0-dev, libmaxminddb-dev, libmemcached-dev, + libmnl-dev, + libmongoc-dev, libmono-2.0-dev, libncurses5-dev, libpcre3-dev, @@ -48,11 +49,13 @@ Build-Depends: libval-dev, libxml2-dev, libxmlrpc-c3-dev, - libmongoc-dev, openssl, pkg-config, python, python-dev, + python3, + python3-dev, + ruby-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -73,9 +76,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -276,6 +280,41 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-any Multi-Arch: same @@ -346,8 +385,10 @@ Description: CPL module (CPL interpreter engine) for the Kamailio SIP server Package: kamailio-radius-modules Architecture: linux-any Multi-Arch: same -Breaks: kamailio (<<5.1) -Replaces: kamailio (<<5.1) +Breaks: + kamailio (<<5.1), +Replaces: + kamailio (<<5.1), Pre-Depends: ${misc:Pre-Depends}, Depends: @@ -474,23 +515,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/debian/copyright b/pkg/kamailio/deb/debian/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/debian/copyright +++ b/pkg/kamailio/deb/debian/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/debian/kamailio.service b/pkg/kamailio/deb/debian/kamailio.service index 06c3334bd..4575fde61 100644 --- a/pkg/kamailio/deb/debian/kamailio.service +++ b/pkg/kamailio/deb/debian/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio (OpenSER) - the Open Source SIP Server -After=network.target +Wants=network-online.target +After=network-online.target [Service] Type=forking @@ -15,7 +16,10 @@ EnvironmentFile=-/etc/default/kamailio.d/* PIDFile=/var/run/kamailio/kamailio.pid # ExecStart requires a full absolute path ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP -Restart=on-abort +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 [Install] WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/debian/rules b/pkg/kamailio/deb/debian/rules index a35520623..6646d27f5 100755 --- a/pkg/kamailio/deb/debian/rules +++ b/pkg/kamailio/deb/debian/rules @@ -36,9 +36,9 @@ EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ ldap xml perl utils lua memcached \ snmpstats carrierroute xmpp cpl redis python geoip geoip2 \ - sqlite json mono ims sctp java \ + sqlite json mono ruby ims sctp java \ tls outbound websocket autheph dnssec kazoo cnxcc \ - erlang systemd phonenum mongodb rabbitmq + erlang systemd phonenum mongodb rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -58,7 +58,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -67,7 +67,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -83,7 +83,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -92,7 +92,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -125,7 +125,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -136,7 +136,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/jessie/changelog b/pkg/kamailio/deb/jessie/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/jessie/changelog +++ b/pkg/kamailio/deb/jessie/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/jessie/control b/pkg/kamailio/deb/jessie/control index e44acafe4..897486c1f 100644 --- a/pkg/kamailio/deb/jessie/control +++ b/pkg/kamailio/deb/jessie/control @@ -14,7 +14,6 @@ Build-Depends: erlang-dev, flex, gcj-jdk, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -28,6 +27,7 @@ Build-Depends: libldap2-dev, liblua5.1-0-dev, libmemcached-dev, + libmnl-dev, libmono-2.0-dev, libmysqlclient-dev, libncurses5-dev, @@ -48,6 +48,9 @@ Build-Depends: pkg-config, python, python-dev, + python3, + python3-dev, + ruby-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -68,9 +71,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -253,6 +257,41 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-any Multi-Arch: same @@ -453,23 +492,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/jessie/copyright b/pkg/kamailio/deb/jessie/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/jessie/copyright +++ b/pkg/kamailio/deb/jessie/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/jessie/kamailio.service b/pkg/kamailio/deb/jessie/kamailio.service index 06c3334bd..4575fde61 100644 --- a/pkg/kamailio/deb/jessie/kamailio.service +++ b/pkg/kamailio/deb/jessie/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio (OpenSER) - the Open Source SIP Server -After=network.target +Wants=network-online.target +After=network-online.target [Service] Type=forking @@ -15,7 +16,10 @@ EnvironmentFile=-/etc/default/kamailio.d/* PIDFile=/var/run/kamailio/kamailio.pid # ExecStart requires a full absolute path ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP -Restart=on-abort +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 [Install] WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/jessie/rules b/pkg/kamailio/deb/jessie/rules index d00393509..6f68bfc7e 100755 --- a/pkg/kamailio/deb/jessie/rules +++ b/pkg/kamailio/deb/jessie/rules @@ -36,9 +36,9 @@ EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc geoip2 phonenu PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ ldap xml perl utils lua memcached \ snmpstats carrierroute xmpp cpl redis python geoip \ - sqlite json mono ims sctp java \ + sqlite json mono ruby ims sctp java \ tls outbound websocket autheph dnssec kazoo cnxcc \ - erlang systemd rabbitmq + erlang systemd rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -58,7 +58,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -67,7 +67,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -83,7 +83,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -92,7 +92,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -125,7 +125,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -136,7 +136,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/precise/changelog b/pkg/kamailio/deb/precise/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/precise/changelog +++ b/pkg/kamailio/deb/precise/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/precise/control b/pkg/kamailio/deb/precise/control index bbb19735c..fec8c7598 100644 --- a/pkg/kamailio/deb/precise/control +++ b/pkg/kamailio/deb/precise/control @@ -13,7 +13,6 @@ Build-Depends: erlang-dev, flex, gcj-jdk, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -26,6 +25,7 @@ Build-Depends: libldap2-dev, liblua5.1-0-dev, libmemcached-dev, + libmnl-dev, libmono-2.0-dev, libmysqlclient-dev, libncurses5-dev, @@ -64,9 +64,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -449,23 +450,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/precise/copyright b/pkg/kamailio/deb/precise/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/precise/copyright +++ b/pkg/kamailio/deb/precise/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/precise/rules b/pkg/kamailio/deb/precise/rules index 4edc523bd..a6eda06ad 100755 --- a/pkg/kamailio/deb/precise/rules +++ b/pkg/kamailio/deb/precise/rules @@ -26,7 +26,7 @@ EXCLUDED_MODULES= # 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 kazoo cnxcc systemd rabbitmq geoip2 phonenum mongodb +EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc dnssec kazoo cnxcc systemd rabbitmq geoip2 phonenum mongodb ruby python3 # module groups that are packaged in seperate packages # (with the name kamailio-$(group_name)-modules) @@ -57,7 +57,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -66,7 +66,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -82,7 +82,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -91,7 +91,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -124,7 +124,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -135,7 +135,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/sid/changelog b/pkg/kamailio/deb/sid/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/sid/changelog +++ b/pkg/kamailio/deb/sid/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/sid/control b/pkg/kamailio/deb/sid/control index c8ba074fa..338568ab7 100644 --- a/pkg/kamailio/deb/sid/control +++ b/pkg/kamailio/deb/sid/control @@ -14,7 +14,6 @@ Build-Depends: dpkg-dev (>= 1.16.1.1), erlang-dev, flex, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -28,6 +27,7 @@ Build-Depends: liblua5.1-0-dev, libmaxminddb-dev, libmemcached-dev, + libmnl-dev, libmongoc-dev, libmono-2.0-dev, libncurses5-dev, @@ -50,6 +50,9 @@ Build-Depends: pkg-config, python, python-dev, + python3, + python3-dev, + ruby-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -70,9 +73,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -273,6 +277,41 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-any Multi-Arch: same @@ -473,23 +512,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/sid/copyright b/pkg/kamailio/deb/sid/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/sid/copyright +++ b/pkg/kamailio/deb/sid/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/sid/kamailio.service b/pkg/kamailio/deb/sid/kamailio.service index 06c3334bd..4575fde61 100644 --- a/pkg/kamailio/deb/sid/kamailio.service +++ b/pkg/kamailio/deb/sid/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio (OpenSER) - the Open Source SIP Server -After=network.target +Wants=network-online.target +After=network-online.target [Service] Type=forking @@ -15,7 +16,10 @@ EnvironmentFile=-/etc/default/kamailio.d/* PIDFile=/var/run/kamailio/kamailio.pid # ExecStart requires a full absolute path ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP -Restart=on-abort +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 [Install] WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/sid/rules b/pkg/kamailio/deb/sid/rules index 66bd742fc..c8463fb89 100755 --- a/pkg/kamailio/deb/sid/rules +++ b/pkg/kamailio/deb/sid/rules @@ -35,9 +35,9 @@ EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc dnssec PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ ldap xml perl utils lua memcached \ snmpstats carrierroute xmpp cpl redis python geoip geoip2 \ - sqlite json mono ims sctp \ + sqlite json mono ruby ims sctp \ tls outbound websocket autheph kazoo cnxcc \ - erlang systemd phonenum mongodb rabbitmq + erlang systemd phonenum mongodb rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -57,7 +57,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -66,7 +66,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -82,7 +82,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -91,7 +91,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -124,7 +124,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -135,7 +135,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/stretch/changelog b/pkg/kamailio/deb/stretch/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/stretch/changelog +++ b/pkg/kamailio/deb/stretch/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/stretch/control b/pkg/kamailio/deb/stretch/control index 00823dfc7..7e87c253f 100644 --- a/pkg/kamailio/deb/stretch/control +++ b/pkg/kamailio/deb/stretch/control @@ -16,7 +16,6 @@ Build-Depends: flex, gcj-jdk, libbson-dev, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -30,6 +29,7 @@ Build-Depends: liblua5.1-0-dev, libmaxminddb-dev, libmemcached-dev, + libmnl-dev, libmongoc-dev, libmono-2.0-dev, libncurses5-dev, @@ -52,6 +52,9 @@ Build-Depends: pkg-config, python, python-dev, + python3, + python3-dev, + ruby-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -72,9 +75,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -275,6 +279,41 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-any Multi-Arch: same @@ -475,23 +514,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/stretch/copyright b/pkg/kamailio/deb/stretch/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/stretch/copyright +++ b/pkg/kamailio/deb/stretch/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/stretch/kamailio.service b/pkg/kamailio/deb/stretch/kamailio.service index 06c3334bd..4575fde61 100644 --- a/pkg/kamailio/deb/stretch/kamailio.service +++ b/pkg/kamailio/deb/stretch/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio (OpenSER) - the Open Source SIP Server -After=network.target +Wants=network-online.target +After=network-online.target [Service] Type=forking @@ -15,7 +16,10 @@ EnvironmentFile=-/etc/default/kamailio.d/* PIDFile=/var/run/kamailio/kamailio.pid # ExecStart requires a full absolute path ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP -Restart=on-abort +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 [Install] WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/stretch/rules b/pkg/kamailio/deb/stretch/rules index 134d8af96..80dec6db5 100755 --- a/pkg/kamailio/deb/stretch/rules +++ b/pkg/kamailio/deb/stretch/rules @@ -36,9 +36,9 @@ EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc dnssec PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ ldap xml perl utils lua memcached \ snmpstats carrierroute xmpp cpl redis python geoip geoip2 \ - sqlite json mono ims sctp java \ + sqlite json mono ruby ims sctp java \ tls outbound websocket autheph kazoo cnxcc \ - erlang systemd phonenum mongodb rabbitmq + erlang systemd phonenum mongodb rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -58,7 +58,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -67,7 +67,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -83,7 +83,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -92,7 +92,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -125,7 +125,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -136,7 +136,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/trusty/changelog b/pkg/kamailio/deb/trusty/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/trusty/changelog +++ b/pkg/kamailio/deb/trusty/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/trusty/control b/pkg/kamailio/deb/trusty/control index f150baed9..213c83989 100644 --- a/pkg/kamailio/deb/trusty/control +++ b/pkg/kamailio/deb/trusty/control @@ -13,7 +13,6 @@ Build-Depends: erlang-dev, flex, gcj-jdk, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -27,6 +26,7 @@ Build-Depends: libldap2-dev, liblua5.1-0-dev, libmemcached-dev, + libmnl-dev, libmono-2.0-dev, libmysqlclient-dev, libncurses5-dev, @@ -46,6 +46,8 @@ Build-Depends: pkg-config, python, python-dev, + python3, + python3-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -66,9 +68,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -251,6 +254,24 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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-redis-modules Architecture: linux-any Multi-Arch: same @@ -451,23 +472,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/trusty/copyright b/pkg/kamailio/deb/trusty/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/trusty/copyright +++ b/pkg/kamailio/deb/trusty/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/trusty/rules b/pkg/kamailio/deb/trusty/rules index bb3f0b3a5..63df7afd6 100755 --- a/pkg/kamailio/deb/trusty/rules +++ b/pkg/kamailio/deb/trusty/rules @@ -27,7 +27,7 @@ EXCLUDED_MODULES= # 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 systemd geoip2 phonenum mongodb +EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc systemd geoip2 phonenum mongodb ruby # module groups that are packaged in seperate packages # (with the name kamailio-$(group_name)-modules) @@ -38,7 +38,7 @@ PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ snmpstats carrierroute xmpp cpl redis python geoip \ sqlite json mono ims sctp java \ tls outbound websocket autheph dnssec kazoo cnxcc \ - erlang rabbitmq + erlang rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -58,7 +58,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -67,7 +67,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -83,7 +83,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -92,7 +92,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -125,7 +125,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -136,7 +136,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/wheezy/changelog b/pkg/kamailio/deb/wheezy/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/wheezy/changelog +++ b/pkg/kamailio/deb/wheezy/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/wheezy/control b/pkg/kamailio/deb/wheezy/control index bbb19735c..fec8c7598 100644 --- a/pkg/kamailio/deb/wheezy/control +++ b/pkg/kamailio/deb/wheezy/control @@ -13,7 +13,6 @@ Build-Depends: erlang-dev, flex, gcj-jdk, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -26,6 +25,7 @@ Build-Depends: libldap2-dev, liblua5.1-0-dev, libmemcached-dev, + libmnl-dev, libmono-2.0-dev, libmysqlclient-dev, libncurses5-dev, @@ -64,9 +64,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -449,23 +450,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/wheezy/copyright b/pkg/kamailio/deb/wheezy/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/wheezy/copyright +++ b/pkg/kamailio/deb/wheezy/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/wheezy/rules b/pkg/kamailio/deb/wheezy/rules index 4edc523bd..a6eda06ad 100755 --- a/pkg/kamailio/deb/wheezy/rules +++ b/pkg/kamailio/deb/wheezy/rules @@ -26,7 +26,7 @@ EXCLUDED_MODULES= # 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 kazoo cnxcc systemd rabbitmq geoip2 phonenum mongodb +EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc dnssec kazoo cnxcc systemd rabbitmq geoip2 phonenum mongodb ruby python3 # module groups that are packaged in seperate packages # (with the name kamailio-$(group_name)-modules) @@ -57,7 +57,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -66,7 +66,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -82,7 +82,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -91,7 +91,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -124,7 +124,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -135,7 +135,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/deb/xenial/changelog b/pkg/kamailio/deb/xenial/changelog index 16e3683d4..fe535c5ca 100644 --- a/pkg/kamailio/deb/xenial/changelog +++ b/pkg/kamailio/deb/xenial/changelog @@ -1,80 +1,116 @@ -kamailio (5.1.8) unstable; urgency=medium +kamailio (5.2.3) unstable; urgency=medium - * version set to 5.1.8 + * version set 5.2.3 - -- Victor Seva Thu, 11 Apr 2019 09:53:09 +0200 + -- Victor Seva Wed, 22 May 2019 10:55:40 +0100 -kamailio (5.1.7) unstable; urgency=medium +kamailio (5.2.2) unstable; urgency=medium - * version set to 5.1.7 + * version set 5.2.2 - -- Victor Seva Thu, 31 Jan 2019 10:15:30 +0100 + -- Victor Seva Mon, 11 Mar 2019 11:25:15 +0100 -kamailio (5.1.6) unstable; urgency=medium +kamailio (5.2.1) unstable; urgency=medium - * version set to 5.1.6 + * version set 5.2.1 - -- Victor Seva Thu, 04 Oct 2018 10:45:14 +0200 + -- Victor Seva Wed, 16 Jan 2019 10:08:06 +0100 -kamailio (5.1.5) unstable; urgency=medium +kamailio (5.2.0) unstable; urgency=medium - * version set to 5.1.5 + * version set 5.2.0 - -- Victor Seva Wed, 22 Aug 2018 10:05:51 +0200 + -- Victor Seva Wed, 28 Nov 2018 08:37:20 +0100 -kamailio (5.1.4) unstable; urgency=medium +kamailio (5.2.0~rc2) unstable; urgency=medium - * version set to 5.1.4 + * version set 5.2.0~rc2 - -- Victor Seva Tue, 05 Jun 2018 11:15:39 +0200 + -- Victor Seva Fri, 23 Nov 2018 09:24:21 +0100 -kamailio (5.1.3) unstable; urgency=medium +kamailio (5.2.0~rc1) unstable; urgency=medium - * version set to 5.1.3 + * version set 5.2.0~rc1 - -- Victor Seva Tue, 24 Apr 2018 10:34:57 +0200 + -- Victor Seva Mon, 19 Nov 2018 12:38:38 +0100 -kamailio (5.1.2) unstable; urgency=medium +kamailio (5.2.0~rc0) unstable; urgency=medium - * version set to 5.1.2 + * version set 5.2.0~rc0 - -- Victor Seva Thu, 01 Mar 2018 09:11:41 +0100 + -- Victor Seva Tue, 06 Nov 2018 10:35:06 +0100 -kamailio (5.1.1) unstable; urgency=medium +kamailio (5.2.0~pre2) unstable; urgency=medium - * version set to 5.1.1 + * version set 5.2.0~pre2 - -- Victor Seva Mon, 22 Jan 2018 10:37:19 +0100 + -- Victor Seva Fri, 02 Nov 2018 15:25:09 +0100 -kamailio (5.1.0) unstable; urgency=medium +kamailio (5.2.0~pre1) unstable; urgency=medium - * version set to 5.1.0 + * version set 5.2.0~pre1 - -- Victor Seva Mon, 11 Dec 2017 16:25:30 +0100 + -- Victor Seva Fri, 19 Oct 2018 10:35:40 +0200 -kamailio (5.1.0~rc3) unstable; urgency=medium +kamailio (5.2.0~pre0) unstable; urgency=medium - * version set to 5.1.0~rc3 + * version set 5.2.0~pre0 - -- Victor Seva Mon, 04 Dec 2017 11:38:41 +0100 + -- Victor Seva Mon, 08 Oct 2018 09:11:35 +0200 -kamailio (5.1.0~rc2) unstable; urgency=medium +kamailio (5.2.0~dev8) unstable; urgency=medium - * version set to 5.1.0~rc2 + * version set 5.2.0-dev8 - -- Victor Seva Mon, 27 Nov 2017 09:48:18 +0100 + -- Victor Seva Tue, 02 Oct 2018 16:12:52 +0200 -kamailio (5.1.0~rc1) unstable; urgency=medium +kamailio (5.2.0~dev7) unstable; urgency=medium - * version set to 5.1.0~rc1 + * version set 5.2.0-dev7 - -- Victor Seva Tue, 21 Nov 2017 12:23:47 +0100 + -- Victor Seva Mon, 17 Sep 2018 12:12:40 +0200 -kamailio (5.1.0~rc0) unstable; urgency=medium +kamailio (5.2.0~dev6) unstable; urgency=medium - * version set to 5.1.0~rc0 + * version set 5.2.0-dev6 - -- Victor Seva Sun, 12 Nov 2017 20:21:59 +0100 + -- Victor Seva Wed, 30 May 2018 18:18:49 +0200 + +kamailio (5.2.0~dev5) unstable; urgency=medium + + * version set 5.2.0-dev5 + + -- Victor Seva Thu, 26 Apr 2018 14:05:28 +0200 + +kamailio (5.2.0~dev4) unstable; urgency=medium + + * version set 5.2.0-dev4 + + -- Victor Seva Mon, 19 Feb 2018 10:16:07 +0100 + +kamailio (5.2.0~dev3) unstable; urgency=medium + + * version set to 5.2.0-dev3 + + -- Victor Seva Thu, 25 Jan 2018 10:34:25 +0100 + +kamailio (5.2.0~dev2) unstable; urgency=medium + + * version set to 5.2.0-dev2 + + -- Victor Seva Thu, 14 Dec 2017 13:07:23 +0100 + +kamailio (5.2.0~dev1) unstable; urgency=medium + + * version set to 5.2.0-dev1 + + -- Victor Seva Tue, 21 Nov 2017 12:28:02 +0100 + +kamailio (5.2.0~dev0) unstable; urgency=medium + + * version set to 5.2.0-dev0 + + -- Victor Seva Sun, 12 Nov 2017 20:17:38 +0100 kamailio (5.1.0~pre1) unstable; urgency=medium diff --git a/pkg/kamailio/deb/xenial/control b/pkg/kamailio/deb/xenial/control index 45e6ceb7b..5ad2faef2 100644 --- a/pkg/kamailio/deb/xenial/control +++ b/pkg/kamailio/deb/xenial/control @@ -15,7 +15,6 @@ Build-Depends: flex, gcj-jdk, libbson-dev, - libconfuse-dev, libcurl4-openssl-dev, libdb-dev (>= 4.6.19), libev-dev, @@ -30,6 +29,7 @@ Build-Depends: liblua5.1-0-dev, libmaxminddb-dev, libmemcached-dev, + libmnl-dev, libmongoc-dev, libmono-2.0-dev, libmysqlclient-dev, @@ -54,6 +54,9 @@ Build-Depends: pkg-config, python, python-dev, + python3, + python3-dev, + ruby-dev, unixodbc-dev, uuid-dev, xsltproc, @@ -74,9 +77,10 @@ Depends: python, ${misc:Depends}, ${shlibs:Depends}, +Replaces: + kamailio-carrierroute-modules, Suggests: kamailio-berkeley-modules, - kamailio-carrierroute-modules, kamailio-cpl-modules, kamailio-dbg, kamailio-ldap-modules, @@ -277,6 +281,41 @@ Description: The app_python module for the Kamailio SIP server This package provides the app_python module, an extension allowing to execute embedded Python applications within the Kamailio SIP routing script. +Package: kamailio-python3-modules +Architecture: linux-any +Multi-Arch: same +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + kamailio (= ${binary:Version}), + python3-dev, + ${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: linux-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: linux-any Multi-Arch: same @@ -477,23 +516,6 @@ Description: XML based extensions for Kamailio's Management Interface Management and Control Interface. - xmlops module for XPath operations in configuration file -Package: kamailio-carrierroute-modules -Architecture: linux-any -Multi-Arch: same -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - kamailio (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: The carrierroute 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 "carrierroute" module for Kamailio, an integrated - solution for routing, balancing and blacklisting. - Package: kamailio-berkeley-modules Architecture: linux-any Multi-Arch: same diff --git a/pkg/kamailio/deb/xenial/copyright b/pkg/kamailio/deb/xenial/copyright index a5ce5b5bd..6967774b7 100644 --- a/pkg/kamailio/deb/xenial/copyright +++ b/pkg/kamailio/deb/xenial/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Kamailio -Upstream-Contact: sr-dev@lists.sip-router.org +Upstream-Contact: sr-dev@lists.kamailio.org Source: http://www.kamailio.org/pub/kamailio/ Files: * diff --git a/pkg/kamailio/deb/xenial/kamailio.service b/pkg/kamailio/deb/xenial/kamailio.service index 06c3334bd..4575fde61 100644 --- a/pkg/kamailio/deb/xenial/kamailio.service +++ b/pkg/kamailio/deb/xenial/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio (OpenSER) - the Open Source SIP Server -After=network.target +Wants=network-online.target +After=network-online.target [Service] Type=forking @@ -15,7 +16,10 @@ EnvironmentFile=-/etc/default/kamailio.d/* PIDFile=/var/run/kamailio/kamailio.pid # ExecStart requires a full absolute path ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP -Restart=on-abort +Restart=on-failure +# /var/run/kamailio in tmpfs +RuntimeDirectory=kamailio +RuntimeDirectoryMode=0750 [Install] WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/xenial/rules b/pkg/kamailio/deb/xenial/rules index a35520623..6646d27f5 100755 --- a/pkg/kamailio/deb/xenial/rules +++ b/pkg/kamailio/deb/xenial/rules @@ -36,9 +36,9 @@ EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \ ldap xml perl utils lua memcached \ snmpstats carrierroute xmpp cpl redis python geoip geoip2 \ - sqlite json mono ims sctp java \ + sqlite json mono ruby ims sctp java \ tls outbound websocket autheph dnssec kazoo cnxcc \ - erlang systemd phonenum mongodb rabbitmq + erlang systemd phonenum mongodb rabbitmq python3 # module groups to be packaged onto kamailio-extra-modules EXTRA_GROUPS=gzcompress uuid ev jansson http_async @@ -58,7 +58,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -67,7 +67,7 @@ define PACKAGE_GRP_INSTALL_template $(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 + 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" &&\ @@ -83,7 +83,7 @@ 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)" + $(MAKE) every-module group_include="k$(grp)" quiet=verbose ) endef @@ -92,7 +92,7 @@ define PACKAGE_EXTRA_INSTALL_template $(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 + doc-dir=share/doc/kamailio-extra-modules quiet=verbose ) # eliminate duplicate libs -for d in $(DUP_LIBS_DIRS); do \ @@ -125,7 +125,7 @@ configure-stamp: skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \ CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \ LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \ - group_include="kstandard" + group_include="kstandard" quiet=verbose touch configure-stamp @@ -136,7 +136,7 @@ build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. - $(MAKE) all + $(MAKE) all quiet=verbose # make groups $(call PACKAGE_GRP_BUILD_template) $(call PACKAGE_EXTRA_BUILD_template) diff --git a/pkg/kamailio/fedora/17/README b/pkg/kamailio/fedora/17/README deleted file mode 100644 index b3f5b2d02..000000000 --- a/pkg/kamailio/fedora/17/README +++ /dev/null @@ -1,67 +0,0 @@ -Building Kamailio RPMs for Enterprise Linux and Fedora ------------------------------------------------------- - -This is a simple process: -1) Create a clean appliance using BoxGrinder (always worth doing as it makes - sure your build appliance contains only standard versions of packages and - has all updates applied). -2) Start the appliance and log in. -3) Prepare the appliance for RPM builds -4) Either: - a) Checkout the version of Kamailio you want to build from GIT (instructions - available on the Kamailio wiki at http://www.kamailio.org/wiki) and - create a release tar file, or - b) Download a release tar file from http://www.kamailio.org/pub/kamailio and - extract the correct kamailio.spec file from it -5) Run "rpmbuild" to create the RPMs - -If you don't have BoxGrinder installed (http://boxgrinder.org/) you can do so in -Fedora using the command: - - # [sudo] yum install rubygem-boxgrinder-build - -Note: The host operating system you install BoxGrinder on does not have to be - same operating system flavour, architecture, or version as the appliance - you are creating. It is entirely sensible to use an x86_64 Fedora host to - build an i386 CentOS appliance and i386 CentOS Kamailio RPMs. - -Example: Building Kamailio 3.4.x (master) x86_64 binary RPMs from GIT for - Fedora 17. - -This example assumes: -- You have Internet connectivity -- You have BoxGrinder, and libvirtd (and any management software required for - it) installed locally. -- You have obtained the kamailio-build.appl file from pkg/kamailio/fedora/17 - (either by download from http://git.sip-router.org/ or from a local - checkout of the code) -- Your host operating system is x86_64. - -If you want to build a different version of Kamailio, a different set of RPMs -(different rpmbuild options), or install and run the appliance on a remote -(or different type of virtual) machine you should only need to make small -changes to the commands in this example. - -1) Create a clean Fedora 17 x86_64 appliance using BoxGrinder: - # mkdir appliance - # cd appliance - # [sudo] boxgrinder-build \ - [path to]/pkg/kamailio/fedora/17/kamailio-build.appl -d libvirt \ - --delivery-config connection_uri:qemu:///system,\ - image_delivery_uri:/var/lib/libvirt/images,overwrite:true,\ - domain_type:kvm -2) Start the appliance and log in: - - I prefer to use virt-manager for this. The default username and password - for the appliance is "root" and "kamailio" respectively. -3) Prepare the appliance for RPM builds: - # mkdir -p rpmbuild/SOURCES -4) Checkout Kamailio 3.4.x (master) and create a release tar file: - # git clone --depth 1 git://git.sip-router.org/sip-router kamailio - # cd kamailio - Note: if not building master you want to do a "git checkout" after this - # git archive --output ../rpmbuild/SOURCES/kamailio-3.4.0_src.tar.gz \ - --prefix=kamailio-3.4.0/ master -5) Run "rpmbuild" to create the binary RPMs: - # rpmbuild -bb pkg/kamailio/fedora/17/kamailio.spec - -Once the build is complete the RPMs will be in ~/rpmbuild/RPMS/x86_64. diff --git a/pkg/kamailio/fedora/17/kamailio-build.appl b/pkg/kamailio/fedora/17/kamailio-build.appl deleted file mode 100644 index e841b5314..000000000 --- a/pkg/kamailio/fedora/17/kamailio-build.appl +++ /dev/null @@ -1,49 +0,0 @@ -name: "kamailio-build-fc17-#BASE_ARCH#" -summary: "Fedora 17 image for building Kamailio #BASE_ARCH# RPMs" -os: - name: fedora - version: 17 - password: kamailio -hardware: - memory: 1024 - partitions: - "/": - size: 6 -packages: - - @core - - @base - - bison # kamailio - - db4-devel # kamailio-bdb - - docbook2X - - expat-devel # kamailio-xmpp - - flex # kamailio - - GeoIP-devel # kamailio-GeoIP - - gcc - - git - - glib-devel # kamailio-purple - - hiredis-devel # kamailio-redis - - json-c-devel # kamailio-json - - libconfuse-devel # kamailio-carrierroute - - libcurl-devel # kamailio-utils, kamailio-presence - - libevent-devel # kamailio-json - - libpurple-devel # kamailio-purple - - libunistring-devel # kamailio-websocket - - libxml2-devel # kamailio-cdp, kamailio-cpl, kamailio-ims, kamailio-presence, kamailio-purple, kamailio-utils, kamailio-xhttp-pi, kamailio-xmlops, kamailio-xmlrpc - - lksctp-tools-devel # kamailio - - lua-devel # kamailio-lua - - make # kamailio - - mod_perl-devel # kamailio-perl - - mono-devel # kamailio-mono - - mysql-devel # kamailio-mysql - - net-snmp-devel # kamailio-snmpstats - - openldap-devel # kamailio-ldap - - openssl-devel # kamailio - - pcre-devel # kamailio-regex, kamailio-dialplan, kamailio-lcr - - postgresql-devel # kamailio-postgresql - - python-devel # kamailio-python - - radiusclient-ng-devel # kamailio-radius - - redhat-rpm-config # kamailio-debuginfo - - rpm-build - - sqlite-devel # kamailio-sqlite - - unixODBC-devel # kamailio-unixODBC - - zlib-devel # kamailio-mysql diff --git a/pkg/kamailio/fedora/17/kamailio.appl b/pkg/kamailio/fedora/17/kamailio.appl deleted file mode 100644 index 7e3781228..000000000 --- a/pkg/kamailio/fedora/17/kamailio.appl +++ /dev/null @@ -1,42 +0,0 @@ -name: "kamailio-fc17-#BASE_ARCH#" -summary: "Fedora 17 image for installing Kamailio #BASE_ARCH# RPMs" -os: - name: fedora - version: 17 - password: kamailio -hardware: - memory: 1024 - partitions: - "/": - size: 2 -packages: - - @core - - @base - - db4 # kamailio-bdb - - expat # kamailio-xmpp - - GeoIP # kamailio-GeoIP - - glib # kamailio-purple - - hiredis # kamailio-redis - - json-c # kamailio-json - - libconfuse # kamailio-carrierroute - - libcurl # kamailio-utils, kamailio-presence - - libevent # kamailio-json - - libpurple # kamailio-purple - - libunistring # kamailio-websocket - - libxml2 # kamailio-cdp, kamailio-cpl, kamailio-ims, kamailio-presence, kamailio-purple, kamailio-utils, kamailio-xhttp-pi, kamailio-xmlops, kamailio-xmlrpc - - lksctp-tools # kamailio - - mod_perl # kamailio-perl - - mono-core # kamailio-mono - - mysql-libs # kamailio-mysql - - net-snmp-libs # kamailio-snmpstats - - openldap # kamailio-ldap - - openssl # kamailio - - pcre # kamailio-regex, kamailio-dialplan, kamailio-lcr - - perl-Authen-SASL # kamailio-perl - - perl-LDAP # kamailio-perl - - postgresql-libs # kamailio-postgresql - - python # kamailio-python - - radiusclient-ng # kamailio-radius - - sqlite # kamailio-sqlite - - unixODBC # kamailio-unixODBC - - zlib # kamailio-mysql diff --git a/pkg/kamailio/fedora/17/kamailio.service b/pkg/kamailio/fedora/17/kamailio.service deleted file mode 100644 index 61457e5fd..000000000 --- a/pkg/kamailio/fedora/17/kamailio.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Kamailio (OpenSER) - the Open Source SIP Server -Documentation=man:kamailio(8) https://www.kamailio.org/ -Wants=network-online.target -After=syslog.target network-online.target - -[Service] -Type=forking -EnvironmentFile=/etc/sysconfig/kamailio -PIDFile=/var/run/kamailio.pid -ExecStart=/usr/sbin/kamailio -P /var/run/kamailio.pid $OPTIONS -ExecStopPost=/usr/bin/rm -f /var/run/kamailio.pid -Restart=on-failure - -[Install] -WantedBy=multi-user.target diff --git a/pkg/kamailio/fedora/17/kamailio.spec b/pkg/kamailio/fedora/17/kamailio.spec deleted file mode 100644 index 1aca5b008..000000000 --- a/pkg/kamailio/fedora/17/kamailio.spec +++ /dev/null @@ -1,1325 +0,0 @@ -%define name kamailio -%define ver 5.1.8 -%define rel 0%{dist} - - - -Summary: Kamailio (former OpenSER) - the Open Source SIP Server -Name: %name -Version: %ver -Release: %rel -Packager: Peter Dunkley -License: GPL -Group: System Environment/Daemons -Source: http://kamailio.org/pub/kamailio/%{ver}/src/%{name}-%{ver}_src.tar.gz -URL: http://kamailio.org/ -Vendor: kamailio.org -BuildRoot: %{_tmppath}/%{name}-%{ver}-buildroot -Conflicts: kamailio-auth-ephemeral < %ver, kamailio-auth-identity < %ver -Conflicts: kamailio-bdb < %ver, kamailio-cdp < %ver, kamailio-cdp < %ver -Conflicts: kamailio-dialplan < %ver, kamailio-ims < %ver -Conflicts: kamailio-lcr < %ver, kamailio-ldap < %ver, kamailio-lua < %ver -Conflicts: kamailio-mysql < %ver, kamailio-outbound < %ver -Conflicts: kamailio-perl < %ver, kamailio-postgresql < %ver -Conflicts: kamailio-presence < %ver, kamailio-purple < %ver -Conflicts: kamailio-python < %ver, kamailio-regex < %ver -Conflicts: kamailio-sctp < %ver, kamailio-snmpstats < %ver -Conflicts: kamailio-sqlite < %ver, kamailio-stun < %ver -Conflicts: kamailio-tls < %ver, kamailio-unixODBC < %ver -Conflicts: kamailio-utils < %ver, kamailio-websocket < %ver -Conflicts: kamailio-xhttp-pi < %ver, kamailio-xmlops < %ver -Conflicts: kamailio-xmlrpc < %ver, kamailio-xmpp < %ver -%if 0%{?fedora} -Conflicts: kamailio-carrierroute < %ver, kamailio-GeoIP < %ver -Conflicts: kamailio-json < %ver, kamailio-mono < %ver -Conflicts: kamailio-radius < %ver, kamailio-redis < %ver -%endif -BuildRequires: bison, flex, gcc, make, redhat-rpm-config -%if 0%{?fedora} -BuildRequires: docbook2X -%endif - -%description -Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able -to handle thousands of call setups per second. Among features: asynchronous TCP, -UDP and SCTP, secure communication via TLS for VoIP (voice, video); IPv4 and -IPv6; SIMPLE instant messaging and presence with embedded XCAP server and MSRP -relay; ENUM; DID and least cost routing; load balancing; routing fail-over; -accounting, authentication and authorization; support for many backend systems -such as MySQL, Postgres, Oracle, Radius, LDAP, Redis, Cassandra; XMLRPC control -interface, SNMP monitoring. It can be used to build large VoIP servicing -platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers -like Asterisk™, FreeSWITCH™ or SEMS. - - -%package auth-ephemeral -Summary: Functions for authentication using ephemeral credentials. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description auth-ephemeral -Functions for authentication using ephemeral credentials. - - -%package auth-identity -Summary: Functions for secure identification of originators of SIP messages for Kamailio. -Group: System Environment/Daemons -Requires: libcurl, openssl, kamailio = %ver -BuildRequires: libcurl-devel, openssl-devel - -%description auth-identity -Functions for secure identification of originators of SIP messages for Kamailio. - - -%package bdb -Summary: Berkeley database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: db4, kamailio = %ver -BuildRequires: db4-devel - -%description bdb -Berkeley database connectivity for Kamailio. - - -%package cdp -Summary: C Diameter Peer module and extensions module for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description cdp -C Diameter Peer module and extensions module for Kamailio. - - -%package cpl -Summary: CPL (Call Processing Language) interpreter for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description cpl -CPL (Call Processing Language) interpreter for Kamailio. - - -%package dialplan -Summary: String translations based on rules for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description dialplan -String translations based on rules for Kamailio. - - -%package ims -Summary: IMS modules and extensions module for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver, kamailio-cdp = %ver -BuildRequires: libxml2-devel - -%description ims -IMS modules and extensions module for Kamailio. - - -%package lcr -Summary: Least cost routing for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description lcr -Least cost routing for Kamailio. - - -%package ldap -Summary: LDAP search interface for Kamailio. -Group: System Environment/Daemons -Requires: openldap, kamailio = %ver -BuildRequires: openldap-devel - -%description ldap -LDAP search interface for Kamailio. - - -%package lua -Summary: Lua extensions for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildRequires: lua-devel - -%description lua -Lua extensions for Kamailio. - - -%package mysql -Summary: MySQL database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: mysql-libs, kamailio = %ver -BuildRequires: mysql-devel zlib-devel - -%description mysql -MySQL database connectivity for Kamailio. - - -%package outbound -Summary: Outbound (RFC 5626) support for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description outbound -RFC 5626, "Managing Client-Initiated Connections in the Session Initiation -Protocol (SIP)" support for Kamailio. - - -%package perl -Summary: Perl extensions and database driver for Kamailio. -Group: System Environment/Daemons -Requires: mod_perl, kamailio = %ver -BuildRequires: mod_perl-devel - -%description perl -Perl extensions and database driver for Kamailio. - - -%package postgresql -Summary: PostgreSQL database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: postgresql-libs, kamailio = %ver -BuildRequires: postgresql-devel - -%description postgresql -PostgreSQL database connectivity for Kamailio. - - -%package presence -Summary: SIP Presence (and RLS, XCAP, etc) support for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, libcurl, kamailio = %ver, kamailio-xmpp = %ver -BuildRequires: libxml2-devel, libcurl-devel - -%description presence -SIP Presence (and RLS, XCAP, etc) support for Kamailio. - - -%package purple -Summary: Multi-protocol IM and presence gateway module. -Group: System Environment/Daemons -%if 0%{?fedora} -Requires: glib, libpurple, libxml2, kamailio = %ver -Requires: kamailio-presence = %ver -BuildRequires: glib-devel, libpurple-devel, libxml2-devel -%else -Requires: glib2, libpurple, libxml2, kamailio = %ver -Requires: kamailio-presence = %ver -BuildRequires: glib2-devel, libpurple-devel, libxml2-devel -%endif - -%description purple -Multi-protocol IM and presence gateway module. - - -%package python -Summary: Python extensions for Kamailio. -Group: System Environment/Daemons -Requires: python, kamailio = %ver -BuildRequires: python-devel - -%description python -Python extensions for Kamailio. - - -%package regex -Summary: PCRE mtaching operations for Kamailio. -Group: System Environment/Daemons -Requires: pcre, kamailio = %ver -BuildRequires: pcre-devel - -%description regex -PCRE mtaching operations for Kamailio. - - -%package sctp -Summary: SCTP transport for Kamailio. -Group: System Environment/Daemons -Requires: lksctp-tools, kamailio = %ver -BuildRequires: lksctp-tools-devel - -%description sctp -SCTP transport for Kamailio. - - -%package snmpstats -Summary: SNMP management interface (scalar statistics) for Kamailio. -Group: System Environment/Daemons -%if 0%{?fedora} -Requires: net-snmp-agent-libs, kamailio = %ver -%else -Requires: net-snmp-libs, kamailio = %ver -%endif -BuildRequires: net-snmp-devel - -%description snmpstats -SNMP management interface (scalar statistics) for Kamailio. - - -%package sqlite -Summary: SQLite database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: sqlite, kamailio = %ver -BuildRequires: sqlite-devel - -%description sqlite -SQLite database connectivity for Kamailio. - - -%package stun -Summary: Limited STUN (RFC 5389) support for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description stun -Limited RFC 5389, "Session Traversal Utilities for NAT (STUN)" support for -Kamailio. - - -%package tls -Summary: TLS transport for Kamailio. -Group: System Environment/Daemons -Requires: openssl, kamailio = %ver -BuildRequires: openssl-devel - -%description tls -TLS transport for Kamailio. - - -%package unixODBC -Summary: unixODBC database connectivity for Kamailio. -Group: System Environment/Daemons -Requires: unixODBC, kamailio = %ver -BuildRequires: unixODBC-devel - -%description unixODBC -unixODBC database connectivity for Kamailio. - - -%package utils -Summary: Non-SIP utitility functions for Kamailio. -Group: System Environment/Daemons -Requires: libcurl, libxml2, kamailio = %ver -BuildRequires: libcurl-devel, libxml2-devel - -%description utils -Non-SIP utitility functions for Kamailio. - - -%package websocket -Summary: WebSocket transport for Kamailio. -Group: System Environment/Daemons -Requires: libunistring, openssl, kamailio = %ver -BuildRequires: libunistring-devel, openssl-devel - -%description websocket -WebSocket transport for Kamailio. - - -%package xhttp-pi -Summary: Web-provisioning interface for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xhttp-pi -Web-provisioning interface for Kamailio. - - -%package xmlops -Summary: XML operation functions for Kamailio. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xmlops -XML operation functions for Kamailio. - - -%package xmlrpc -Summary: XMLRPC trasnport and encoding for Kamailio RPCs. -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver -BuildRequires: libxml2-devel - -%description xmlrpc -XMLRPC trasnport and encoding for Kamailio RPCs. - - -%package xmpp -Summary: SIP/XMPP IM gateway for Kamailio. -Group: System Environment/Daemons -Requires: expat, kamailio = %ver -BuildRequires: expat-devel - -%description xmpp -SIP/XMPP IM gateway for Kamailio. - - -%if 0%{?fedora} -%package carrierroute -Summary: Routing, balancing, and blacklisting for Kamailio. -Group: System Environment/Daemons -Requires: libconfuse, kamailio = %ver -BuildRequires: libconfuse-devel - -%description carrierroute -Routing, balancing, and blacklisting for Kamailio. - - -%package GeoIP -Summary: Max Mind GeoIP real-time query support for Kamailio. -Group: System Environment/Daemons -Requires: GeoIP, kamailio = %ver -BuildRequires: GeoIP-devel - -%description GeoIP -Max Mind GeoIP real-time query support for Kamailio. - - -%package json -Summary: json string operation and rpc support for Kamailio. -Group: System Environment/Daemons -Requires: json-c, libevent, kamailio = %ver -BuildRequires: json-c-devel, libevent-devel - -%description json -json string operation and rpc support for Kamailio. - - -%package mono -Summary: Mono extensions for Kamailio. -Group: System Environment/Daemons -Requires: mono-core, kamailio = %ver -BuildRequires: mono-devel - -%description mono -Mono extensions for Kamailio. - - -%package radius -Summary: Radius AAA API for Kamailio. -Group: System Environment/Daemons -Requires: radiusclient-ng, kamailio = %ver -BuildRequires: radiusclient-ng-devel - -%description radius -Radius AAA API for Kamailio. - - -%package redis -Summary: REDIS NoSQL database connector for Kamailio. -Group: System Environment/Daemons -Requires: hiredis, kamailio = %ver -BuildRequires: hiredis-devel - -%description redis -REDIS NoSQL database connector for Kamailio. -%endif - - - -%prep -%setup -n %{name}-%{ver} - - - -%build -make cfg prefix=/usr cfg_prefix=$RPM_BUILD_ROOT basedir=$RPM_BUILD_ROOT \ - cfg_target=/%{_sysconfdir}/kamailio/ modules_dirs="modules" -make -%if 0%{?fedora} -make every-module skip_modules="app_java db_cassandra db_oracle dnssec \ - iptrtpproxy memcached mi_xmlrpc osp" \ - group_include="kstandard kmysql kpostgres kcpl kxml kradius kunixodbc \ - kperl ksnmpstats kxmpp kcarrierroute kberkeley kldap kutils kpurple \ - ktls kwebsocket kpresence klua kpython kgeoip ksqlite kjson kredis \ - kmono kims koutbound ksctp kstun kautheph" -%else -make every-module skip_modules="app_java db_cassandra db_oracle dnssec \ - iptrtpproxy memcached mi_xmlrpc osp" \ - group_include="kstandard kmysql kpostgres kcpl kxml kunixodbc \ - kperl ksnmpstats kxmpp kberkeley kldap kutils kpurple \ - ktls kwebsocket kpresence klua kpython ksqlite \ - kims koutbound ksctp kstun kautheph" -%endif -make utils - - - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" - -make install -%if 0%{?fedora} -make install-modules-all skip_modules="db_cassandra iptrtpproxy db_oracle \ - memcached mi_xmlrpc osp" \ - group_include="kstandard kmysql kpostgres kcpl kxml kradius kunixodbc \ - kperl ksnmpstats kxmpp kcarrierroute kberkeley kldap kutils kpurple \ - ktls kwebsocket kpresence klua kpython kgeoip ksqlite kjson kredis \ - kmono kims koutbound ksctp kstun kautheph" - -mkdir -p $RPM_BUILD_ROOT/%{_unitdir} -install -m644 pkg/kamailio/fedora/%{?fedora}/kamailio.service \ - $RPM_BUILD_ROOT/%{_unitdir}/kamailio.service - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig -install -m644 pkg/kamailio/fedora/%{?fedora}/kamailio.sysconfig \ - $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/kamailio -%else -make install-modules-all skip_modules="db_cassandra iptrtpproxy db_oracle \ - memcached mi_xmlrpc osp" \ - group_include="kstandard kmysql kpostgres kcpl kxml kunixodbc \ - kperl ksnmpstats kxmpp kberkeley kldap kutils kpurple \ - ktls kwebsocket kpresence klua kpython ksqlite \ - kims koutbound ksctp kstun kautheph" - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d -install -m755 pkg/kamailio/centos/%{?centos}/kamailio.init \ - $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/kamailio - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig -install -m644 pkg/kamailio/centos/%{?centos}/kamailio.sysconfig \ - $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/kamailio -%endif - - - -%pre -/usr/sbin/groupadd -r kamailio 2> /dev/null || : -/usr/sbin/useradd -r -g kamailio -s /bin/false -c "Kamailio daemon" -d \ - %{_libdir}/kamailio kamailio 2> /dev/null || : - - - -%clean -rm -rf "$RPM_BUILD_ROOT" - - - -%post -%if 0%{?fedora} -/bin/systemctl --system daemon-reload -%else -/sbin/chkconfig --add kamailio -%endif - - - -%preun -if [ $1 = 0 ]; then -%if 0%{?fedora} - /bin/systemctl stop kamailio.service - /bin/systemctl disable kamailio.service 2> /dev/null -%else - /sbin/service kamailio stop > /dev/null 2>&1 - /sbin/chkconfig --del kamailio -%endif -fi - - - -%postun -%if 0%{?fedora} -/bin/systemctl --system daemon-reload -%endif - - - -%files -%defattr(-,root,root) -%dir %{_docdir}/kamailio -%doc %{_docdir}/kamailio/AUTHORS -%doc %{_docdir}/kamailio/NEWS -%doc %{_docdir}/kamailio/INSTALL -%doc %{_docdir}/kamailio/README -%doc %{_docdir}/kamailio/README-MODULES - -%dir %{_docdir}/kamailio/modules -%doc %{_docdir}/kamailio/modules/README.acc -%doc %{_docdir}/kamailio/modules/README.alias_db -%doc %{_docdir}/kamailio/modules/README.async -%doc %{_docdir}/kamailio/modules/README.auth -%doc %{_docdir}/kamailio/modules/README.auth_db -%doc %{_docdir}/kamailio/modules/README.auth_diameter -%doc %{_docdir}/kamailio/modules/README.avp -%doc %{_docdir}/kamailio/modules/README.avpops -%doc %{_docdir}/kamailio/modules/README.benchmark -%doc %{_docdir}/kamailio/modules/README.blst -%doc %{_docdir}/kamailio/modules/README.call_control -%doc %{_docdir}/kamailio/modules/README.cfg_db -%doc %{_docdir}/kamailio/modules/README.cfg_rpc -%doc %{_docdir}/kamailio/modules/README.cfgutils -%doc %{_docdir}/kamailio/modules/README.cnxcc -%doc %{_docdir}/kamailio/modules/README.corex -%doc %{_docdir}/kamailio/modules/README.counters -%doc %{_docdir}/kamailio/modules/README.ctl -%doc %{_docdir}/kamailio/modules/README.db_cluster -%doc %{_docdir}/kamailio/modules/README.db_flatstore -%doc %{_docdir}/kamailio/modules/README.db_text -%doc %{_docdir}/kamailio/modules/README.db2_ops -%doc %{_docdir}/kamailio/modules/README.debugger -%doc %{_docdir}/kamailio/modules/README.dialog -%doc %{_docdir}/kamailio/modules/README.dispatcher -%doc %{_docdir}/kamailio/modules/README.diversion -%doc %{_docdir}/kamailio/modules/README.dmq -%doc %{_docdir}/kamailio/modules/README.domain -%doc %{_docdir}/kamailio/modules/README.domainpolicy -%doc %{_docdir}/kamailio/modules/README.drouting -%doc %{_docdir}/kamailio/modules/README.enum -%doc %{_docdir}/kamailio/modules/README.exec -%doc %{_docdir}/kamailio/modules/README.group -%doc %{_docdir}/kamailio/modules/README.htable -%doc %{_docdir}/kamailio/modules/README.imc -%doc %{_docdir}/kamailio/modules/README.ipops -%doc %{_docdir}/kamailio/modules/README.kex -%doc %{_docdir}/kamailio/modules/README.malloc_test -%doc %{_docdir}/kamailio/modules/README.mangler -%doc %{_docdir}/kamailio/modules/README.matrix -%doc %{_docdir}/kamailio/modules/README.maxfwd -%doc %{_docdir}/kamailio/modules/README.mediaproxy -%doc %{_docdir}/kamailio/modules/README.mi_datagram -%doc %{_docdir}/kamailio/modules/README.mi_fifo -%doc %{_docdir}/kamailio/modules/README.mi_rpc -%doc %{_docdir}/kamailio/modules/README.mqueue -%doc %{_docdir}/kamailio/modules/README.msilo -%doc %{_docdir}/kamailio/modules/README.msrp -%doc %{_docdir}/kamailio/modules/README.mtree -%doc %{_docdir}/kamailio/modules/README.nat_traversal -%doc %{_docdir}/kamailio/modules/README.nathelper -%doc %{_docdir}/kamailio/modules/README.p_usrloc -%doc %{_docdir}/kamailio/modules/README.path -%doc %{_docdir}/kamailio/modules/README.pdb -%doc %{_docdir}/kamailio/modules/README.pdt -%doc %{_docdir}/kamailio/modules/README.permissions -%doc %{_docdir}/kamailio/modules/README.pike -%doc %{_docdir}/kamailio/modules/README.pipelimit -%doc %{_docdir}/kamailio/modules/README.prefix_route -%doc %{_docdir}/kamailio/modules/README.print -%doc %{_docdir}/kamailio/modules/README.print_lib -%doc %{_docdir}/kamailio/modules/README.pv -%doc %{_docdir}/kamailio/modules/README.qos -%doc %{_docdir}/kamailio/modules/README.ratelimit -%doc %{_docdir}/kamailio/modules/README.registrar -%doc %{_docdir}/kamailio/modules/README.rr -%doc %{_docdir}/kamailio/modules/README.rtimer -%doc %{_docdir}/kamailio/modules/README.rtpproxy -%doc %{_docdir}/kamailio/modules/README.rtpproxy-ng -%doc %{_docdir}/kamailio/modules/README.sanity -%doc %{_docdir}/kamailio/modules/README.sca -%doc %{_docdir}/kamailio/modules/README.sdpops -%doc %{_docdir}/kamailio/modules/README.seas -%doc %{_docdir}/kamailio/modules/README.sipcapture -%doc %{_docdir}/kamailio/modules/README.sipt -%doc %{_docdir}/kamailio/modules/README.siptrace -%doc %{_docdir}/kamailio/modules/README.siputils -%doc %{_docdir}/kamailio/modules/README.sl -%doc %{_docdir}/kamailio/modules/README.sms -%doc %{_docdir}/kamailio/modules/README.speeddial -%doc %{_docdir}/kamailio/modules/README.sqlops -%doc %{_docdir}/kamailio/modules/README.sst -%doc %{_docdir}/kamailio/modules/README.statistics -%doc %{_docdir}/kamailio/modules/README.textops -%doc %{_docdir}/kamailio/modules/README.textopsx -%doc %{_docdir}/kamailio/modules/README.timer -%doc %{_docdir}/kamailio/modules/README.tm -%doc %{_docdir}/kamailio/modules/README.tmrec -%doc %{_docdir}/kamailio/modules/README.tmx -%doc %{_docdir}/kamailio/modules/README.topoh -%doc %{_docdir}/kamailio/modules/README.uac -%doc %{_docdir}/kamailio/modules/README.uac_redirect -%doc %{_docdir}/kamailio/modules/README.uid_auth_db -%doc %{_docdir}/kamailio/modules/README.uid_avp_db -%doc %{_docdir}/kamailio/modules/README.uid_domain -%doc %{_docdir}/kamailio/modules/README.uid_gflags -%doc %{_docdir}/kamailio/modules/README.uid_uri_db -%doc %{_docdir}/kamailio/modules/README.uri_db -%doc %{_docdir}/kamailio/modules/README.userblacklist -%doc %{_docdir}/kamailio/modules/README.usrloc -%doc %{_docdir}/kamailio/modules/README.xhttp -%doc %{_docdir}/kamailio/modules/README.xhttp_rpc -%doc %{_docdir}/kamailio/modules/README.xlog -%doc %{_docdir}/kamailio/modules/README.xprint - -%dir %attr(-,kamailio,kamailio) %{_sysconfdir}/kamailio -%config(noreplace) %{_sysconfdir}/kamailio/* -%if 0%{?fedora} -%config %{_unitdir}/* -%else -%config %{_sysconfdir}/rc.d/init.d/* -%endif -%config %{_sysconfdir}/sysconfig/* - -%dir %{_libdir}/kamailio -%{_libdir}/kamailio/libbinrpc.so -%{_libdir}/kamailio/libbinrpc.so.0 -%{_libdir}/kamailio/libbinrpc.so.0.1 -%{_libdir}/kamailio/libkmi.so -%{_libdir}/kamailio/libkmi.so.1 -%{_libdir}/kamailio/libkmi.so.1.0 -%{_libdir}/kamailio/libprint.so -%{_libdir}/kamailio/libprint.so.1 -%{_libdir}/kamailio/libprint.so.1.2 -%{_libdir}/kamailio/libsrdb1.so -%{_libdir}/kamailio/libsrdb1.so.1 -%{_libdir}/kamailio/libsrdb1.so.1.0 -%{_libdir}/kamailio/libsrdb2.so -%{_libdir}/kamailio/libsrdb2.so.1 -%{_libdir}/kamailio/libsrdb2.so.1.0 -%{_libdir}/kamailio/libsrutils.so -%{_libdir}/kamailio/libsrutils.so.1 -%{_libdir}/kamailio/libsrutils.so.1.0 -%{_libdir}/kamailio/libtrie.so -%{_libdir}/kamailio/libtrie.so.1 -%{_libdir}/kamailio/libtrie.so.1.0 - -%dir %{_libdir}/kamailio/modules -%{_libdir}/kamailio/modules/acc.so -%{_libdir}/kamailio/modules/alias_db.so -%{_libdir}/kamailio/modules/auth.so -%{_libdir}/kamailio/modules/auth_db.so -%{_libdir}/kamailio/modules/auth_diameter.so -%{_libdir}/kamailio/modules/async.so -%{_libdir}/kamailio/modules/avp.so -%{_libdir}/kamailio/modules/avpops.so -%{_libdir}/kamailio/modules/benchmark.so -%{_libdir}/kamailio/modules/blst.so -%{_libdir}/kamailio/modules/call_control.so -%{_libdir}/kamailio/modules/cfg_db.so -%{_libdir}/kamailio/modules/cfg_rpc.so -%{_libdir}/kamailio/modules/cfgutils.so -%{_libdir}/kamailio/modules/cnxcc.so -%{_libdir}/kamailio/modules/corex.so -%{_libdir}/kamailio/modules/counters.so -%{_libdir}/kamailio/modules/ctl.so -%{_libdir}/kamailio/modules/db_cluster.so -%{_libdir}/kamailio/modules/db_text.so -%{_libdir}/kamailio/modules/db_flatstore.so -%{_libdir}/kamailio/modules/db2_ops.so -%{_libdir}/kamailio/modules/debugger.so -%{_libdir}/kamailio/modules/dialog.so -%{_libdir}/kamailio/modules/dispatcher.so -%{_libdir}/kamailio/modules/diversion.so -%{_libdir}/kamailio/modules/dmq.so -%{_libdir}/kamailio/modules/domain.so -%{_libdir}/kamailio/modules/domainpolicy.so -%{_libdir}/kamailio/modules/drouting.so -%{_libdir}/kamailio/modules/enum.so -%{_libdir}/kamailio/modules/exec.so -%{_libdir}/kamailio/modules/group.so -%{_libdir}/kamailio/modules/htable.so -%{_libdir}/kamailio/modules/imc.so -%{_libdir}/kamailio/modules/ipops.so -%{_libdir}/kamailio/modules/kex.so -%{_libdir}/kamailio/modules/malloc_test.so -%{_libdir}/kamailio/modules/mangler.so -%{_libdir}/kamailio/modules/matrix.so -%{_libdir}/kamailio/modules/maxfwd.so -%{_libdir}/kamailio/modules/mediaproxy.so -%{_libdir}/kamailio/modules/mi_datagram.so -%{_libdir}/kamailio/modules/mi_fifo.so -%{_libdir}/kamailio/modules/mi_rpc.so -%{_libdir}/kamailio/modules/mqueue.so -%{_libdir}/kamailio/modules/msilo.so -%{_libdir}/kamailio/modules/msrp.so -%{_libdir}/kamailio/modules/mtree.so -%{_libdir}/kamailio/modules/nat_traversal.so -%{_libdir}/kamailio/modules/nathelper.so -%{_libdir}/kamailio/modules/p_usrloc.so -%{_libdir}/kamailio/modules/path.so -%{_libdir}/kamailio/modules/pdb.so -%{_libdir}/kamailio/modules/pdt.so -%{_libdir}/kamailio/modules/permissions.so -%{_libdir}/kamailio/modules/pike.so -%{_libdir}/kamailio/modules/pipelimit.so -%{_libdir}/kamailio/modules/prefix_route.so -%{_libdir}/kamailio/modules/print.so -%{_libdir}/kamailio/modules/print_lib.so -%{_libdir}/kamailio/modules/pv.so -%{_libdir}/kamailio/modules/qos.so -%{_libdir}/kamailio/modules/ratelimit.so -%{_libdir}/kamailio/modules/registrar.so -%{_libdir}/kamailio/modules/rr.so -%{_libdir}/kamailio/modules/rtimer.so -%{_libdir}/kamailio/modules/rtpproxy.so -%{_libdir}/kamailio/modules/rtpproxy-ng.so -%{_libdir}/kamailio/modules/sanity.so -%{_libdir}/kamailio/modules/sca.so -%{_libdir}/kamailio/modules/seas.so -%{_libdir}/kamailio/modules/sipcapture.so -%{_libdir}/kamailio/modules/sipt.so -%{_libdir}/kamailio/modules/siptrace.so -%{_libdir}/kamailio/modules/siputils.so -%{_libdir}/kamailio/modules/sl.so -%{_libdir}/kamailio/modules/sdpops.so -%{_libdir}/kamailio/modules/sms.so -%{_libdir}/kamailio/modules/speeddial.so -%{_libdir}/kamailio/modules/sqlops.so -%{_libdir}/kamailio/modules/sst.so -%{_libdir}/kamailio/modules/statistics.so -%{_libdir}/kamailio/modules/textops.so -%{_libdir}/kamailio/modules/textopsx.so -%{_libdir}/kamailio/modules/timer.so -%{_libdir}/kamailio/modules/tm.so -%{_libdir}/kamailio/modules/tmrec.so -%{_libdir}/kamailio/modules/tmx.so -%{_libdir}/kamailio/modules/topoh.so -%{_libdir}/kamailio/modules/uac.so -%{_libdir}/kamailio/modules/uac_redirect.so -%{_libdir}/kamailio/modules/uid_auth_db.so -%{_libdir}/kamailio/modules/uid_avp_db.so -%{_libdir}/kamailio/modules/uid_domain.so -%{_libdir}/kamailio/modules/uid_gflags.so -%{_libdir}/kamailio/modules/uid_uri_db.so -%{_libdir}/kamailio/modules/uri_db.so -%{_libdir}/kamailio/modules/userblacklist.so -%{_libdir}/kamailio/modules/usrloc.so -%{_libdir}/kamailio/modules/xhttp.so -%{_libdir}/kamailio/modules/xhttp_rpc.so -%{_libdir}/kamailio/modules/xlog.so -%{_libdir}/kamailio/modules/xprint.so - -%{_sbindir}/kamailio -%{_sbindir}/kamctl -%{_sbindir}/kamdbctl -%{_sbindir}/kamcmd - -%dir %{_libdir}/kamailio/kamctl -%{_libdir}/kamailio/kamctl/kamctl.base -%{_libdir}/kamailio/kamctl/kamctl.ctlbase -%{_libdir}/kamailio/kamctl/kamctl.dbtext -%{_libdir}/kamailio/kamctl/kamctl.fifo -%{_libdir}/kamailio/kamctl/kamctl.ser -%{_libdir}/kamailio/kamctl/kamctl.ser_mi -%{_libdir}/kamailio/kamctl/kamctl.sqlbase -%{_libdir}/kamailio/kamctl/kamctl.unixsock -%{_libdir}/kamailio/kamctl/kamdbctl.base -%{_libdir}/kamailio/kamctl/kamdbctl.dbtext - -%dir %{_libdir}/kamailio/kamctl/dbtextdb -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.py -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyc -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyo - -%{_mandir}/man5/* -%if 0%{?fedora} -%{_mandir}/man7/* -%endif -%{_mandir}/man8/* - -%dir %{_datadir}/kamailio -%dir %{_datadir}/kamailio/dbtext -%dir %{_datadir}/kamailio/dbtext/kamailio -%{_datadir}/kamailio/dbtext/kamailio/* - - -%files auth-ephemeral -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_ephemeral -%{_libdir}/kamailio/modules/auth_ephemeral.so - - -%files auth-identity -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.auth_identity -%{_libdir}/kamailio/modules/auth_identity.so - - -%files bdb -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_berkeley -%{_sbindir}/kambdb_recover -%{_libdir}/kamailio/modules/db_berkeley.so -%{_libdir}/kamailio/kamctl/kamctl.db_berkeley -%{_libdir}/kamailio/kamctl/kamdbctl.db_berkeley -%dir %{_datadir}/kamailio/db_berkeley -%{_datadir}/kamailio/db_berkeley/* - - -%files cdp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.cdp -%{_libdir}/kamailio/modules/cdp.so -%doc %{_docdir}/kamailio/modules/README.cdp_avp -%{_libdir}/kamailio/modules/cdp_avp.so - - -%files cpl -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.cpl-c -%{_libdir}/kamailio/modules/cpl-c.so - - -%files dialplan -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.dialplan -%{_libdir}/kamailio/modules/dialplan.so - - -%files ims -%defattr(-,root,root) -%{_libdir}/kamailio/libkamailio_ims.so -%{_libdir}/kamailio/libkamailio_ims.so.0 -%{_libdir}/kamailio/libkamailio_ims.so.0.1 -%doc %{_docdir}/kamailio/modules/README.dialog_ng -%{_libdir}/kamailio/modules/dialog_ng.so -%doc %{_docdir}/kamailio/modules/README.ims_auth -%{_libdir}/kamailio/modules/ims_auth.so -%doc %{_docdir}/kamailio/modules/README.ims_icscf -%{_libdir}/kamailio/modules/ims_icscf.so -%doc %{_docdir}/kamailio/modules/README.ims_isc -%{_libdir}/kamailio/modules/ims_isc.so -%doc %{_docdir}/kamailio/modules/README.ims_qos -%{_libdir}/kamailio/modules/ims_qos.so -#%doc %{_docdir}/kamailio/modules/README.ims_registrar_pcscf -%{_libdir}/kamailio/modules/ims_registrar_pcscf.so -#%doc %{_docdir}/kamailio/modules/README.ims_registrar_scscf -%{_libdir}/kamailio/modules/ims_registrar_scscf.so -%doc %{_docdir}/kamailio/modules/README.ims_usrloc_pcscf -%{_libdir}/kamailio/modules/ims_usrloc_pcscf.so -#%doc %{_docdir}/kamailio/modules/README.ims_usrloc_scscf -%{_libdir}/kamailio/modules/ims_usrloc_scscf.so - - -%files lcr -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.lcr -%{_libdir}/kamailio/modules/lcr.so - - -%files ldap -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db2_ldap -%doc %{_docdir}/kamailio/modules/README.h350 -%doc %{_docdir}/kamailio/modules/README.ldap -%{_libdir}/kamailio/modules/db2_ldap.so -%{_libdir}/kamailio/modules/h350.so -%{_libdir}/kamailio/modules/ldap.so - - -%files lua -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_lua -%{_libdir}/kamailio/modules/app_lua.so - - -%files mysql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_mysql -%{_libdir}/kamailio/modules/db_mysql.so -%{_libdir}/kamailio/kamctl/kamctl.mysql -%{_libdir}/kamailio/kamctl/kamdbctl.mysql -%dir %{_datadir}/kamailio/mysql -%{_datadir}/kamailio/mysql/* - - -%files outbound -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.outbound -%{_libdir}/kamailio/modules/outbound.so - - -%files perl -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_perl -%doc %{_docdir}/kamailio/modules/README.db_perlvdb -%{_libdir}/kamailio/modules/app_perl.so -%{_libdir}/kamailio/modules/db_perlvdb.so -%dir %{_libdir}/kamailio/perl -%{_libdir}/kamailio/perl/Kamailio.pm -%dir %{_libdir}/kamailio/perl/Kamailio -%{_libdir}/kamailio/perl/Kamailio/Constants.pm -%{_libdir}/kamailio/perl/Kamailio/Message.pm -%{_libdir}/kamailio/perl/Kamailio/VDB.pm -%dir %{_libdir}/kamailio/perl/Kamailio/LDAPUtils -%{_libdir}/kamailio/perl/Kamailio/LDAPUtils/LDAPConf.pm -%{_libdir}/kamailio/perl/Kamailio/LDAPUtils/LDAPConnection.pm -%dir %{_libdir}/kamailio/perl/Kamailio/Utils -%{_libdir}/kamailio/perl/Kamailio/Utils/Debug.pm -%{_libdir}/kamailio/perl/Kamailio/Utils/PhoneNumbers.pm -%dir %{_libdir}/kamailio/perl/Kamailio/VDB -%{_libdir}/kamailio/perl/Kamailio/VDB/Column.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Pair.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/ReqCond.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Result.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/VTab.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Value.pm -%dir %{_libdir}/kamailio/perl/Kamailio/VDB/Adapter -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/AccountingSIPtrace.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Alias.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Auth.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Describe.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/Speeddial.pm -%{_libdir}/kamailio/perl/Kamailio/VDB/Adapter/TableVersions.pm - - -%files postgresql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_postgres -%{_libdir}/kamailio/modules/db_postgres.so -%{_libdir}/kamailio/kamctl/kamctl.pgsql -%{_libdir}/kamailio/kamctl/kamdbctl.pgsql -%dir %{_datadir}/kamailio/postgres -%{_datadir}/kamailio/postgres/* - - -%files presence -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.presence -%doc %{_docdir}/kamailio/modules/README.presence_conference -%doc %{_docdir}/kamailio/modules/README.presence_dialoginfo -%doc %{_docdir}/kamailio/modules/README.presence_mwi -%doc %{_docdir}/kamailio/modules/README.presence_profile -%doc %{_docdir}/kamailio/modules/README.presence_reginfo -%doc %{_docdir}/kamailio/modules/README.presence_xml -%doc %{_docdir}/kamailio/modules/README.pua -%doc %{_docdir}/kamailio/modules/README.pua_bla -%doc %{_docdir}/kamailio/modules/README.pua_dialoginfo -%doc %{_docdir}/kamailio/modules/README.pua_mi -%doc %{_docdir}/kamailio/modules/README.pua_reginfo -%doc %{_docdir}/kamailio/modules/README.pua_usrloc -%doc %{_docdir}/kamailio/modules/README.pua_xmpp -%doc %{_docdir}/kamailio/modules/README.rls -%doc %{_docdir}/kamailio/modules/README.xcap_client -%doc %{_docdir}/kamailio/modules/README.xcap_server -%{_libdir}/kamailio/modules/presence.so -%{_libdir}/kamailio/modules/presence_conference.so -%{_libdir}/kamailio/modules/presence_dialoginfo.so -%{_libdir}/kamailio/modules/presence_mwi.so -%{_libdir}/kamailio/modules/presence_profile.so -%{_libdir}/kamailio/modules/presence_reginfo.so -%{_libdir}/kamailio/modules/presence_xml.so -%{_libdir}/kamailio/modules/pua.so -%{_libdir}/kamailio/modules/pua_bla.so -%{_libdir}/kamailio/modules/pua_dialoginfo.so -%{_libdir}/kamailio/modules/pua_mi.so -%{_libdir}/kamailio/modules/pua_reginfo.so -%{_libdir}/kamailio/modules/pua_usrloc.so -%{_libdir}/kamailio/modules/pua_xmpp.so -%{_libdir}/kamailio/modules/rls.so -%{_libdir}/kamailio/modules/xcap_client.so -%{_libdir}/kamailio/modules/xcap_server.so - - -%files purple -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.purple -%{_libdir}/kamailio/modules/purple.so - - -%files python -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_python -%{_libdir}/kamailio/modules/app_python.so - - -%files regex -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.regex -%{_libdir}/kamailio/modules/regex.so - - -%files sctp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.sctp -%{_libdir}/kamailio/modules/sctp.so - - -%files snmpstats -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.snmpstats -%{_libdir}/kamailio/modules/snmpstats.so - - -%files sqlite -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_sqlite -%{_libdir}/kamailio/modules/db_sqlite.so -%{_libdir}/kamailio/kamctl/kamctl.sqlite -%{_libdir}/kamailio/kamctl/kamdbctl.sqlite -%dir %{_datadir}/kamailio/db_sqlite -%{_datadir}/kamailio/db_sqlite/* - - -%files stun -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.stun -%{_libdir}/kamailio/modules/stun.so - - -%files tls -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.tls -%{_libdir}/kamailio/modules/tls.so - - -%files unixODBC -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_unixodbc -%{_libdir}/kamailio/modules/db_unixodbc.so - - -%files utils -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.utils -%{_libdir}/kamailio/modules/utils.so - - -%files websocket -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.websocket -%{_libdir}/kamailio/modules/websocket.so - - -%files xhttp-pi -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xhttp_pi -%{_libdir}/kamailio/modules/xhttp_pi.so -%dir %{_datadir}/kamailio/xhttp_pi -%{_datadir}/kamailio/xhttp_pi/* - - -%files xmlops -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmlops -%{_libdir}/kamailio/modules/xmlops.so - - -%files xmlrpc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmlrpc -%{_libdir}/kamailio/modules/xmlrpc.so - - -%files xmpp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.xmpp -%{_libdir}/kamailio/modules/xmpp.so - - -%if 0%{?fedora} -%files carrierroute -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.carrierroute -%{_libdir}/kamailio/modules/carrierroute.so - - -%files radius -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.acc_radius -%{_docdir}/kamailio/modules/README.auth_radius -%{_docdir}/kamailio/modules/README.misc_radius -%{_docdir}/kamailio/modules/README.peering -%{_libdir}/kamailio/modules/acc_radius.so -%{_libdir}/kamailio/modules/auth_radius.so -%{_libdir}/kamailio/modules/misc_radius.so -%{_libdir}/kamailio/modules/peering.so - - -%files json -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.json -%doc %{_docdir}/kamailio/modules/README.jsonrpc-c -%{_libdir}/kamailio/modules/json.so -%{_libdir}/kamailio/modules/jsonrpc-c.so - - -%files GeoIP -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.geoip -%{_libdir}/kamailio/modules/geoip.so - - -%files mono -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_mono -%{_libdir}/kamailio/modules/app_mono.so - - -%files redis -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.ndb_redis -%{_libdir}/kamailio/modules/ndb_redis.so -%endif - - - -%changelog -* Thu Aug 22 2013 Peter Dunkley - - Added rtpproxy-ng module to build -* Wed Aug 14 2013 Peter Dunkley - - Updated rel to dev7 -* Mon May 27 2013 Peter Dunkley - - Created package for auth_ephemeral module -* Sun May 26 2013 Peter Dunkley - - Created package for sctp module - - Updated rel to dev6 -* Sat May 18 2013 Peter Dunkley - - Refactored .spec - - Put tls module back in its own .spec (OpenSSL no longer needed by core as - stun is in its own module) - - Updated rel to dev5 -* Wed Apr 24 2013 Peter Dunkley - - Updated rel to dev3 -* Wed Apr 10 2013 Peter Dunkley - - Added sipt module to .spec - - Updated rel to dev2 -* Fri Mar 29 2013 Peter Dunkley - - Added stun module to .spec - - Updated rel to dev1 -* Wed Mar 27 2013 Peter Dunkley - - Added cnxcc module to .spec -* Thu Mar 7 2013 Peter Dunkley - - Added build requirement for docbook2X for Fedora builds -* Wed Mar 6 2013 Peter Dunkley - - Restored perl related files -* Tue Mar 5 2013 Peter Dunkley - - Updated rel to dev0 and ver to 4.1.0 - - Re-ordered file to make it internally consistent - - Updated make commands to match updated module groups - - Added auth_identity back in - - Temporarily commented out perl related files as perl modules do not appear - to be working -* Sun Jan 20 2013 Peter Dunkley - - Updated rel to pre1 - - Moved modules from modules_k/ to modules/ - - Renamed perl modules -* Fri Jan 11 2013 Peter Dunkley - - Updated rel to pre0 -* Thu Jan 10 2013 Peter Dunkley - - More IMS updates -* Tue Jan 8 2013 Peter Dunkley - - Changed dialog2 to dialog_ng - - Renamed all IMS modules (prepended ims_) -* Sun Jan 6 2013 Peter Dunkley - - Updated ver to 4.0.0 and rel to dev8 -* Mon Dec 31 2012 Peter Dunkley - - Added dialog2 and IMS modules to the build -* Fri Dec 21 2012 Peter Dunkley - - Added db2_ldap, db2_ops, and timer to the build - - Added uid_auth_db, uid_avp_db, uid_domain, uid_gflags, uid_uri_db, print, - and print_lib to the build -* Thu Dec 13 2012 Peter Dunkley - - Added xhttp_pi framework examples to the installation - - Added xhttp_pi README to the installation -* Wed Dec 12 2012 Peter Dunkley - - Added mangler module to the build - - Tidied up make commands used to build and install -* Sun Dec 9 2012 Peter Dunkley - - Updated rel to dev7 - - Added avp, sca, and xprint modules to the build - - Moved xlog from modules_k to modules -* Fri Nov 9 2012 Peter Dunkley - - Updated rel to dev5 -* Tue Oct 30 2012 Peter Dunkley - - Added xhttp_pi module to RPM builds -* Fri Oct 20 2012 Peter Dunkley - - Set ownership of /etc/kamailio to kamailio.kamailio - - Added installation of auth.7.gz for Fedora now that manpages are built for - Fedora - - Added "make utils" to the build section (when it's not there utils get - built during the install - which isn't right) - - SCTP and STUN now included in this build - - Removed kamailio-tls package - tls module now in main kamailio RPM as that - has openssl as a dependency for STUN -* Sun Sep 17 2012 Peter Dunkley - - Added corex module to RPM builds - - Updated rel to dev4 -* Sun Aug 19 2012 Peter Dunkley - - Updated rel to dev3 -* Mon Aug 13 2012 Peter Dunkley - - Added Outbound module -* Fri Jul 13 2012 Peter Dunkley - - Updated rel to dev2 -* Thu Jul 5 2012 Peter Dunkley - - Added kamailio-cdp RPM for cdp and cdp_avp modules -* Tue Jul 3 2012 Peter Dunkley - - Updates to websocket module -* Sat Jun 30 2012 Peter Dunkley - - Updated rel to dev1 - - Removed %_sharedir and replaced with standard macro %_datadir -* Sat Jun 23 2012 Peter Dunkley - - Added websocket module -* Mon Jun 11 2012 Peter Dunkley - - Updated ver to 3.4.0 and rel to dev0 -* Mon Jun 4 2012 Peter Dunkley - - Added a number of %dir lines to make sure the RPMs are properly cleaned up - on uninstall -* Sat Jun 2 2012 Peter Dunkley - - Added %postun section to reload systemd on Fedora after uninstall - - Added build requirement for redhat-rpm-config so debuginfo RPMs get built -* Fri Jun 1 2012 Peter Dunkley - - Tweak to the pkg/kamailio/fedora directory structure - - Tested with Fedora 17 -* Thu May 31 2012 Peter Dunkley - - Updated rel to pre3 - - Combined Fedora/CentOS .spec in preparation for Fedora 17 -* Sun May 20 2012 Peter Dunkley - - First version created for Kamailio 3.3.0. Based on spec-file for Fedora - created by myself (in turn based on an older spec-file for CentOS created - by Ovidiu Sas). - - Tested with CentOS 6.2 x86_64. - - Builds all Kamailio 3.3.0 modules (modules/modules_k) except: - - modules/app_mono: Requires mono which is not in the CentOS 6 repo - - modules/auth_identity: Conflicts with TLS unless statically linked (which - requires changes to Makefile and is impractical for generic RPM building) - - modules/db_cassandra: Requires Cassandra and Thrift which are not in the - CentOS 6 repo - - modules/geoip: Requires GeoIP which is not in the CentOS 6 repo - - modules/iptrtpproxy: Needs local copy of iptables source to build - (impractical for generic RPM building) - - modules/json: Requires json-c whish is not in the CentOS 6 repo - - modules/jsonrpc-c: Requires json-c whish is not in the CentOS 6 repo - - modules/ndb_redis: Requires hiredis which is not in the CentOS 6 repo - - modules/peering: Requires radiusclient-ng which is not in the CentOS 6 - repo - - modules_k/acc_radius: Requires radiusclient-ng which is not in the CentOS - 6 repo - - modules_k/auth_radius: Required radiusclient-ng which is not in the - CentOS 6 repo - - modules_k/carrierroute: Requires libconfuse which is not in the CentOS 6 - repo - - modules_k/db_oracle: Requires Oracle which is not in the CentOS 6 repo - (and is closed-source) - - modules_k/memcached: Module compilation appears to require an older - version of libmemcached-devel than the one in the CentOS 6 repo - - modules_k/mi_xmlrpc: Requires libxmlrpc-c3 which is not in the CentOS 6 - repo - - modules_k/misc_radius: Requires radiusclient-ng which is not in the - CentOS 6 repo - - modules_k/osp: Requires OSP Toolkit which is not in the CentOS 6 repo -* Fri May 18 2012 Peter Dunkley - - Added missing BuildRequires (gcc). - - Added .fc16 to rel. This makes it easy to tell which distribution the RPMs - are built for. -* Thu May 17 2012 Peter Dunkley - - Updated rel to pre2. -* Mon May 7 2012 Peter Dunkley - - Changed to use systemd instead of SysV init. -* Sun May 6 2012 Peter Dunkley - - First version created for Kamailio 3.3.0. Based on spec-file for CentOS - created by Ovidiu Sas. - - Tested with Fedora 16 x86_64. - - Builds all Kamailio 3.3.0 modules (modules/modules_k) except: - - modules/auth_identity: Conflicts with TLS unless statically linked (which - requires changes to Makefile and is impractical for generic RPM building) - - modules/db_cassandra: Requires Thrift which is not in the F16 repo - - modules/iptrtpproxy: Needs local copy of iptables source to build - (impractical for generic RPM building) - - modules_k/db_oracle: Requires Oracle which is not in the F16 repo - (and is closed-source) - - modules_k/memcached: Module compilation appears to require an older - version of libmemcached-devel than the one in the F16 repo - - modules_k/mi_xmlrpc: The F16 repo contains an unsupported version of - libxmlrpc-c3, and there is an compilation error due to the module code - using an unknown type ('TString') - - modules_k/osp: Requires OSP Toolkit which is not in the F16 repo diff --git a/pkg/kamailio/fedora/17/kamailio.sysconfig b/pkg/kamailio/fedora/17/kamailio.sysconfig deleted file mode 100644 index 60916b5f4..000000000 --- a/pkg/kamailio/fedora/17/kamailio.sysconfig +++ /dev/null @@ -1,12 +0,0 @@ -# -# Kamailio startup options -# - -# Options to pass when starting Kamailio -# Note: variable interpolation is not supported by systemd so $OPTIONS cannot -# be constructed from multiple variables. -# -m - Kamailio shared (global) memory (default 32 MB) -# -M - Kamailio package (per-process private) memory (default 4 MB) -# -u - User to run Kamailio as -# -g - Group to run Kamailio as -OPTIONS="-m 32 -M 4 -u kamailio -g kamailio" diff --git a/pkg/kamailio/fedora/18/README b/pkg/kamailio/fedora/18/README deleted file mode 120000 index 7331e24e5..000000000 --- a/pkg/kamailio/fedora/18/README +++ /dev/null @@ -1 +0,0 @@ -../17/README \ No newline at end of file diff --git a/pkg/kamailio/fedora/18/kamailio-build.appl b/pkg/kamailio/fedora/18/kamailio-build.appl deleted file mode 100644 index 27bcc513a..000000000 --- a/pkg/kamailio/fedora/18/kamailio-build.appl +++ /dev/null @@ -1,49 +0,0 @@ -name: "kamailio-build-fc18-#BASE_ARCH#" -summary: "Fedora 18 image for building Kamailio #BASE_ARCH# RPMs" -os: - name: fedora - version: 18 - password: kamailio -hardware: - memory: 1024 - partitions: - "/": - size: 6 -packages: - - @core - - @base - - bison # kamailio - - db4-devel # kamailio-bdb - - docbook2X - - expat-devel # kamailio-xmpp - - flex # kamailio - - GeoIP-devel # kamailio-GeoIP - - gcc - - git - - glib-devel # kamailio-purple - - hiredis-devel # kamailio-redis - - json-c-devel # kamailio-json - - libconfuse-devel # kamailio-carrierroute - - libcurl-devel # kamailio-utils, kamailio-presence - - libevent-devel # kamailio-json - - libpurple-devel # kamailio-purple - - libunistring-devel # kamailio-websocket - - libxml2-devel # kamailio-cdp, kamailio-cpl, kamailio-ims, kamailio-presence, kamailio-purple, kamailio-utils, kamailio-xhttp-pi, kamailio-xmlops, kamailio-xmlrpc - - lksctp-tools-devel # kamailio - - lua-devel # kamailio-lua - - make # kamailio - - mod_perl-devel # kamailio-perl - - mono-devel # kamailio-mono - - mysql-devel # kamailio-mysql - - net-snmp-devel # kamailio-snmpstats - - openldap-devel # kamailio-ldap - - openssl-devel # kamailio - - pcre-devel # kamailio-regex, kamailio-dialplan, kamailio-lcr - - postgresql-devel # kamailio-postgresql - - python-devel # kamailio-python - - radiusclient-ng-devel # kamailio-radius - - redhat-rpm-config # kamailio-debuginfo - - rpm-build - - sqlite-devel # kamailio-sqlite - - unixODBC-devel # kamailio-unixODBC - - zlib-devel # kamailio-mysql diff --git a/pkg/kamailio/fedora/18/kamailio.appl b/pkg/kamailio/fedora/18/kamailio.appl deleted file mode 100644 index dc5e757a1..000000000 --- a/pkg/kamailio/fedora/18/kamailio.appl +++ /dev/null @@ -1,42 +0,0 @@ -name: "kamailio-fc18-#BASE_ARCH#" -summary: "Fedora 18 image for installing Kamailio #BASE_ARCH# RPMs" -os: - name: fedora - version: 18 - password: kamailio -hardware: - memory: 1024 - partitions: - "/": - size: 2 -packages: - - @core - - @base - - db4 # kamailio-bdb - - expat # kamailio-xmpp - - GeoIP # kamailio-GeoIP - - glib # kamailio-purple - - hiredis # kamailio-redis - - json-c # kamailio-json - - libconfuse # kamailio-carrierroute - - libcurl # kamailio-utils, kamailio-presence - - libevent # kamailio-json - - libpurple # kamailio-purple - - libunistring # kamailio-websocket - - libxml2 # kamailio-cdp, kamailio-cpl, kamailio-ims, kamailio-presence, kamailio-purple, kamailio-utils, kamailio-xhttp-pi, kamailio-xmlops, kamailio-xmlrpc - - lksctp-tools # kamailio - - mod_perl # kamailio-perl - - mono-core # kamailio-mono - - mysql-libs # kamailio-mysql - - net-snmp-libs # kamailio-snmpstats - - openldap # kamailio-ldap - - openssl # kamailio - - pcre # kamailio-regex, kamailio-dialplan, kamailio-lcr - - perl-Authen-SASL # kamailio-perl - - perl-LDAP # kamailio-perl - - postgresql-libs # kamailio-postgresql - - python # kamailio-python - - radiusclient-ng # kamailio-radius - - sqlite # kamailio-sqlite - - unixODBC # kamailio-unixODBC - - zlib # kamailio-mysql diff --git a/pkg/kamailio/fedora/18/kamailio.service b/pkg/kamailio/fedora/18/kamailio.service deleted file mode 120000 index b57fd37e1..000000000 --- a/pkg/kamailio/fedora/18/kamailio.service +++ /dev/null @@ -1 +0,0 @@ -../17/kamailio.service \ No newline at end of file diff --git a/pkg/kamailio/fedora/18/kamailio.spec b/pkg/kamailio/fedora/18/kamailio.spec deleted file mode 120000 index 4e06dfc99..000000000 --- a/pkg/kamailio/fedora/18/kamailio.spec +++ /dev/null @@ -1 +0,0 @@ -../17/kamailio.spec \ No newline at end of file diff --git a/pkg/kamailio/fedora/18/kamailio.sysconfig b/pkg/kamailio/fedora/18/kamailio.sysconfig deleted file mode 120000 index 53dfcf344..000000000 --- a/pkg/kamailio/fedora/18/kamailio.sysconfig +++ /dev/null @@ -1 +0,0 @@ -../17/kamailio.sysconfig \ No newline at end of file diff --git a/pkg/kamailio/freebsd/Makefile b/pkg/kamailio/freebsd/Makefile index 0bbca37c0..dee636094 100644 --- a/pkg/kamailio/freebsd/Makefile +++ b/pkg/kamailio/freebsd/Makefile @@ -6,7 +6,7 @@ # PORTNAME= kamailio -PORTVERSION= 5.1.8 +PORTVERSION= 1.3.0 CATEGORIES= net MASTER_SITES= http://kamailio.org/pub/kamailio/${PORTVERSION}/src/ DISTNAME= ${PORTNAME}-${PORTVERSION}-tls_src diff --git a/pkg/kamailio/obs/kamailio.spec b/pkg/kamailio/obs/kamailio.spec index ae7832c4c..3a4cabb0a 100644 --- a/pkg/kamailio/obs/kamailio.spec +++ b/pkg/kamailio/obs/kamailio.spec @@ -1,6 +1,6 @@ %define name kamailio -%define ver 5.1.8 -%define rel 0%{dist} +%define ver 5.2.3 +%define rel dev1.0%{dist} %if 0%{?fedora} == 27 %define dist_name fedora @@ -17,8 +17,11 @@ %bcond_without memcached %bcond_without mongodb %bcond_without perl +%bcond_without phonenum +%bcond_without python3 %bcond_without rabbitmq %bcond_without redis +%bcond_without ruby %bcond_without sctp %bcond_without websocket %bcond_without xmlrpc @@ -39,8 +42,11 @@ %bcond_without memcached %bcond_without mongodb %bcond_without perl +%bcond_without phonenum +%bcond_without python3 %bcond_without rabbitmq %bcond_without redis +%bcond_without ruby %bcond_without sctp %bcond_without websocket %bcond_without xmlrpc @@ -61,8 +67,36 @@ %bcond_without memcached %bcond_without mongodb %bcond_without perl +%bcond_without phonenum +%bcond_without python3 %bcond_without rabbitmq %bcond_without redis +%bcond_without ruby +%bcond_without sctp +%bcond_without websocket +%bcond_without xmlrpc +%endif + +%if 0%{?fedora} == 30 +%define dist_name fedora +%define dist_version %{?fedora} +%bcond_without cnxcc +%bcond_with dnssec +%bcond_without geoip +%bcond_without http_async_client +%bcond_without ims +%bcond_without jansson +%bcond_without json +%bcond_without lua +%bcond_without kazoo +%bcond_without memcached +%bcond_without mongodb +%bcond_without perl +%bcond_without phonenum +%bcond_without python3 +%bcond_without rabbitmq +%bcond_without redis +%bcond_without ruby %bcond_without sctp %bcond_without websocket %bcond_without xmlrpc @@ -83,8 +117,11 @@ %bcond_without memcached %bcond_with mongodb %bcond_without perl +%bcond_with phonenum +%bcond_with python3 %bcond_with rabbitmq %bcond_with redis +%bcond_with ruby %bcond_without sctp %bcond_without websocket %bcond_without xmlrpc @@ -106,8 +143,11 @@ %bcond_without memcached %bcond_without mongodb %bcond_without perl +%bcond_without phonenum +%bcond_without python3 %bcond_without rabbitmq %bcond_without redis +%bcond_without ruby %bcond_without sctp %bcond_without websocket %bcond_without xmlrpc @@ -128,8 +168,11 @@ %bcond_without memcached %bcond_with mongodb %bcond_without perl +%bcond_with phonenum +%bcond_without python3 %bcond_with rabbitmq %bcond_without redis +%bcond_without ruby %bcond_without sctp %bcond_without websocket %bcond_without xmlrpc @@ -150,8 +193,11 @@ %bcond_with memcached %bcond_with mongodb %bcond_with perl +%bcond_with phonenum +%bcond_with python3 %bcond_with rabbitmq %bcond_with redis +%bcond_with ruby %bcond_with sctp %bcond_with websocket %bcond_without xmlrpc @@ -172,29 +218,54 @@ %bcond_with memcached %bcond_without mongodb %bcond_without perl +%bcond_with phonenum +%bcond_with python3 %bcond_with rabbitmq %bcond_without redis +%bcond_with ruby %bcond_with sctp %bcond_with websocket %bcond_without xmlrpc %endif +# Defining missing macros on RHEL/CentOS 6 +%if 0%{?rhel} == 6 +%define _rundir %{_localstatedir}/run +%endif + # redefine buggy openSUSE Leap _sharedstatedir macro. More info at https://bugzilla.redhat.com/show_bug.cgi?id=183370 %if 0%{?suse_version} == 1315 %define _sharedstatedir /var/lib %endif +# Defining missing macros on OpenSUSE Leap +%if 0%{?suse_version} == 1315 +%define _fillupdir /var/adm/fillup-templates +%endif +%if 0%{?suse_version} == 1330 +%define _fillupdir /var/adm/fillup-templates +%endif + +# Package groups for OpenSUSE is different than others +%if 0%{?suse_version} +%define PKGGROUP System/Daemons +%else +%define PKGGROUP System Environment/Daemons +%endif + + Summary: Kamailio (former OpenSER) - the Open Source SIP Server Name: %name Version: %ver Release: %rel Packager: Peter Dunkley -License: GPL -Group: System Environment/Daemons +License: GPL-2.0 +Group: %{PKGGROUP} Source: http://kamailio.org/pub/kamailio/%{ver}/src/%{name}-%{ver}_src.tar.gz URL: http://kamailio.org/ Vendor: kamailio.org BuildRoot: %{_tmppath}/%{name}-%{ver}-buildroot +Conflicts: kamailio-acc_json < %ver Conflicts: kamailio-auth-ephemeral < %ver, kamailio-bdb < %ver Conflicts: kamailio-carrierroute < %ver, kamailio-cpl < %ver Conflicts: kamailio-dialplan < %ver, kamailio-dnssec < %ver @@ -208,7 +279,7 @@ Conflicts: kamailio-outbound < %ver, kamailio-perl < %ver Conflicts: kamailio-postgresql < %ver, kamailio-presence < %ver Conflicts: kamailio-python < %ver Conflicts: kamailio-radius < %ver, kamailio-redis < %ver -Conflicts: kamailio-regex < %ver, kamailio-sctp < %ver +Conflicts: kamailio-regex < %ver, kamailio-ruby < %ver, kamailio-sctp < %ver Conflicts: kamailio-sipdump < %ver Conflicts: kamailio-snmpstats < %ver, kamailio-sqlang < %ver, kamailio-sqlite < %ver Conflicts: kamailio-tls < %ver, kamailio-unixodbc < %ver @@ -218,14 +289,10 @@ Conflicts: kamailio-xmlrpc < %ver, kamailio-xmpp < %ver Conflicts: kamailio-uuid < %ver BuildRequires: bison, flex %if 0%{?suse_version} +Requires: filesystem BuildRequires: systemd-mini, shadow %endif -%if 0%{?fedora} == 27 -BuildRequires: python3-devel -%endif -%if 0%{?fedora} == 28 -BuildRequires: python3-devel -%endif + %description Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able @@ -240,9 +307,26 @@ platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers like Asterisk™, FreeSWITCH™ or SEMS. +%if %{with jansson} +%package acc_json +Summary: Account transaction information in a JSON dictionary +Group: %{PKGGROUP} +%if 0%{?suse_version} +Requires: libjansson +BuildRequires: libjansson-devel +%else +Requires: jansson +BuildRequires: jansson-devel +%endif + +%description acc_json +Account transaction information in a JSON dictionary. +%endif + + %package auth-ephemeral Summary: Functions for authentication using ephemeral credentials -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: openssl, kamailio = %ver BuildRequires: openssl-devel @@ -252,7 +336,7 @@ Functions for authentication using ephemeral credentials. %package auth-xkeys Summary: Functions for authentication using shared keys -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description auth-xkeys @@ -261,7 +345,7 @@ Functions for authentication using shared keys. %package bdb Summary: Berkeley database connectivity for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: libdb-4_8 @@ -282,15 +366,8 @@ Berkeley database connectivity for Kamailio. %package carrierroute Summary: The carrierroute module for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver -%if 0%{?suse_version} -Requires: libconfuse0 -BuildRequires: libconfuse-devel -%else -Requires: libconfuse -BuildRequires: libconfuse-devel -%endif %description carrierroute The carrierroute module for Kamailio. @@ -298,7 +375,7 @@ The carrierroute module for Kamailio. %package cfgt Summary: Unit test config file execution tracing module for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description cfgt @@ -308,7 +385,7 @@ The unit test config file execution tracing module for Kamailio. %if %{with cnxcc} %package cnxcc Summary: Module provides a mechanism to limit call duration -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libevent, hiredis, kamailio = %ver BuildRequires: libevent-devel, hiredis-devel @@ -319,8 +396,8 @@ Module which provides a mechanism to limit call duration based on credit informa %package cpl Summary: CPL (Call Processing Language) interpreter for Kamailio -Group: System Environment/Daemons -Requires: libxml2, kamailio = %ver +Group: %{PKGGROUP} +Requires: which, libxml2, kamailio = %ver BuildRequires: libxml2-devel %description cpl @@ -328,8 +405,8 @@ CPL (Call Processing Language) interpreter for Kamailio. %package crypto -Summary: Module to support cryptographic extensions for use in the Kamailio configuration -Group: System Environment/Daemons +Summary: Module to support cryptographic extensions +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?rhel} == 6 Requires: openssl @@ -354,7 +431,7 @@ This module provides various cryptography tools for use in Kamailio configuratio %package dialplan Summary: String translations based on rules for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: pcre, kamailio = %ver BuildRequires: pcre-devel @@ -364,7 +441,7 @@ String translations based on rules for Kamailio. %package dmq_userloc Summary: User location records replication between multiple servers -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description dmq_userloc @@ -374,7 +451,7 @@ User location (usrloc) records replication between multiple servers via DMQ modu %if %{with dnssec} %package dnssec Summary: DNSSEC support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: dnssec-tools-libs, kamailio = %ver BuildRequires: dnssec-tools-libs-devel @@ -386,7 +463,7 @@ DNSSEC support for Kamailio. %if %{with geoip} %package geoip Summary: MaxMind GeoIP support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: GeoIP, kamailio = %ver BuildRequires: GeoIP-devel @@ -397,7 +474,7 @@ MaxMind GeoIP support for Kamailio. %package gzcompress Summary: Compressed body (SIP and HTTP) handling for kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: zlib, kamailio = %ver BuildRequires: zlib-devel @@ -408,7 +485,7 @@ Compressed body (SIP and HTTP) handling for kamailio. %if %{with http_async_client} %package http_async_client Summary: Async HTTP client module for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libevent, kamailio = %ver BuildRequires: libevent-devel %if 0%{?suse_version} @@ -425,7 +502,7 @@ This module implements protocol functions that use the libcurl to communicate wi %package http_client Summary: HTTP client module for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: libcurl4, libxml2-tools @@ -442,7 +519,7 @@ This module implements protocol functions that use the libcurl to communicate wi %if %{with ims} %package ims Summary: IMS modules and extensions module for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libxml2, kamailio = %ver BuildRequires: libxml2-devel libmnl-devel @@ -454,7 +531,7 @@ IMS modules and extensions module for Kamailio. %if %{with jansson} %package jansson Summary: JSON string handling and RPC modules for Kamailio using JANSSON library -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libevent, kamailio = %ver %if 0%{?suse_version} Requires: libjson-c2 @@ -472,7 +549,7 @@ JSON string handling and RPC modules for Kamailio using JANSSON library. %if %{with json} %package json Summary: JSON string handling and RPC modules for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libevent, kamailio = %ver BuildRequires: libevent-devel %if 0%{?suse_version} @@ -491,7 +568,7 @@ JSON string handling and RPC modules for Kamailio. %if %{with kazoo} %package kazoo Summary: Kazoo middle layer connector support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libuuid, librabbitmq, json-c, libevent, kamailio = %ver BuildRequires: libuuid-devel, librabbitmq-devel, json-c-devel, libevent-devel @@ -502,7 +579,7 @@ Kazoo module for Kamailio. %package lcr Summary: Least cost routing for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: pcre, kamailio = %ver BuildRequires: pcre-devel @@ -512,7 +589,7 @@ Least cost routing for Kamailio. %package ldap Summary: LDAP search interface for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: openldap2 libsasl2-3 @@ -529,7 +606,7 @@ LDAP search interface for Kamailio. %if %{with lua} %package lua Summary: Lua extensions for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver BuildRequires: lua-devel @@ -541,7 +618,7 @@ Lua extensions for Kamailio. %if %{with memcached} %package memcached Summary: Memcached configuration file support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libmemcached, kamailio = %ver BuildRequires: libmemcached-devel @@ -553,7 +630,7 @@ Memcached configuration file support for Kamailio. %if %{with mongodb} %package mongodb Summary: MongoDB database connectivity for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver Requires: mongo-c-driver BuildRequires: mongo-c-driver-devel @@ -565,7 +642,7 @@ MongoDB database connectivity for Kamailio. %package mysql Summary: MySQL database connectivity for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver BuildRequires: zlib-devel %if 0%{?suse_version} @@ -582,7 +659,7 @@ MySQL database connectivity for Kamailio. %package outbound Summary: Outbound (RFC 5626) support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: openssl, kamailio = %ver BuildRequires: openssl-devel @@ -594,7 +671,7 @@ Protocol (SIP)" support for Kamailio. %if %{with perl} %package perl Summary: Perl extensions and database driver for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: perl @@ -609,9 +686,22 @@ Perl extensions and database driver for Kamailio. %endif +%if %{with phonenum} +%package phonenum +Summary: Phonenum module the Kamailio +Group: %{PKGGROUP} +Requires: kamailio = %ver +Requires: libphonenumber +BuildRequires: libphonenumber-devel libicu-devel protobuf-devel + +%description phonenum +Phonenum module the Kamailio. +%endif + + %package postgresql Summary: PostgreSQL database connectivity for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: libpq5 @@ -627,7 +717,7 @@ PostgreSQL database connectivity for Kamailio. %package presence Summary: SIP Presence (and RLS, XCAP, etc) support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libxml2, kamailio = %ver, kamailio-xmpp = %ver BuildRequires: libxml2-devel %if 0%{?suse_version} @@ -644,9 +734,18 @@ SIP Presence (and RLS, XCAP, etc) support for Kamailio. %package python Summary: Python extensions for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: python, kamailio = %ver BuildRequires: python, python-devel +%if %{with python3} +%if 0%{?rhel} == 7 +Requires: python36, kamailio = %ver +BuildRequires: python36, python36-devel +%else +Requires: python3, kamailio = %ver +BuildRequires: python3, python3-devel +%endif +%endif %description python Python extensions for Kamailio. @@ -655,7 +754,7 @@ Python extensions for Kamailio. %if %{with rabbitmq} %package rabbitmq Summary: RabbitMQ related modules -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libuuid, librabbitmq, kamailio = %ver BuildRequires: librabbitmq-devel, libuuid-devel @@ -666,7 +765,7 @@ RabbitMQ module for Kamailio. %package radius Summary: RADIUS modules for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?fedora} || 0%{?suse_version} Requires: freeradius-client @@ -683,7 +782,7 @@ RADIUS modules for Kamailio. %if %{with redis} %package redis Summary: Redis configuration file support for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: hiredis, kamailio = %ver BuildRequires: hiredis-devel @@ -694,7 +793,7 @@ Redis configuration file support for Kamailio. %package regex Summary: PCRE mtaching operations for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: pcre, kamailio = %ver BuildRequires: pcre-devel @@ -704,17 +803,29 @@ PCRE mtaching operations for Kamailio. %package rtjson Summary: SIP routing based on JSON specifications -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description rtjson SIP routing based on JSON specifications. +%if %{with ruby} +%package ruby +Summary: Ruby extensions for Kamailio +Group: %{PKGGROUP} +Requires: kamailio = %ver +BuildRequires: ruby-devel + +%description ruby +Ruby extensions for Kamailio. +%endif + + %if %{with sctp} %package sctp Summary: SCTP transport for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: lksctp-tools, kamailio = %ver BuildRequires: lksctp-tools-devel @@ -724,9 +835,12 @@ SCTP transport for Kamailio. %package sipcapture-daemon-config -Summary: reference config for sipcapture daemon -Group: System Environment/Daemons +Summary: Reference config for sipcapture daemon +Group: %{PKGGROUP} Requires: kamailio-sipcapture = %ver +%if 0%{?suse_version} +Requires: filesystem +%endif %description sipcapture-daemon-config reference config for sipcapture daemon. @@ -734,16 +848,25 @@ reference config for sipcapture daemon. %package sipdump Summary: This module writes SIP traffic and some associated details into local files -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description sipdump This module writes SIP traffic and some associated details into local files +%package sipjson +Summary: This module serializes SIP message attributes into a JSON document +Group: %{PKGGROUP} +Requires: kamailio = %ver + +%description sipjson +This module serializes SIP message attributes into a JSON document + + %package smsops Summary: Tools for handling SMS packets in SIP messages -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description smsops @@ -752,7 +875,7 @@ This module collects the Transformations for 3GPP-SMS. %package snmpstats Summary: SNMP management interface (scalar statistics) for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: libsnmp30 @@ -768,7 +891,7 @@ SNMP management interface (scalar statistics) for Kamailio. %package statsc Summary: Statistics collecting module providing reports for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description statsc @@ -777,7 +900,7 @@ This module provides a statistics collector engine. %package statsd Summary: Send commands to statsd server -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description statsd @@ -786,7 +909,7 @@ Send commands to statsd server. %package sqlang Summary: Squirrel Language (SQLang) for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: squirrel-libs, kamailio = %version BuildRequires: squirrel-devel gcc-c++ @@ -796,7 +919,7 @@ app_sqlang module for Kamailio. %package sqlite Summary: SQLite database connectivity for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: sqlite, kamailio = %ver BuildRequires: sqlite-devel @@ -806,7 +929,7 @@ SQLite database connectivity for Kamailio. %package tls Summary: TLS transport for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: openssl, kamailio = %ver BuildRequires: openssl-devel @@ -816,7 +939,7 @@ TLS transport for Kamailio. %package tcpops Summary: On demand and per socket control to the TCP options -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description tcpops @@ -825,7 +948,7 @@ On demand and per socket control to the TCP options. %package topos Summary: Topology stripping module for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %description topos @@ -834,7 +957,7 @@ This module offers topology hiding by stripping the routing headers that could s %package unixodbc Summary: UnixODBC database connectivity for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: unixODBC, kamailio = %ver BuildRequires: unixODBC-devel @@ -844,7 +967,7 @@ UnixODBC database connectivity for Kamailio. %package utils Summary: Non-SIP utitility functions for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libxml2, kamailio = %ver BuildRequires: libxml2-devel %if 0%{?suse_version} @@ -862,7 +985,7 @@ Non-SIP utitility functions for Kamailio. %if %{with websocket} %package websocket Summary: WebSocket transport for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libunistring, openssl, kamailio = %ver BuildRequires: libunistring-devel, openssl-devel @@ -873,7 +996,7 @@ WebSocket transport for Kamailio. %package xhttp-pi Summary: Web-provisioning interface for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libxml2, kamailio = %ver BuildRequires: libxml2-devel @@ -883,7 +1006,7 @@ Web-provisioning interface for Kamailio. %package xmlops Summary: XML operation functions for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libxml2, kamailio = %ver BuildRequires: libxml2-devel @@ -894,7 +1017,7 @@ XML operation functions for Kamailio. %if %{with xmlrpc} %package xmlrpc Summary: XMLRPC transport and encoding for Kamailio RPCs and MI commands -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: libxml2, kamailio = %ver BuildRequires: libxml2-devel @@ -904,7 +1027,7 @@ XMLRPC transport and encoding for Kamailio RPCs and MI commands. %package xmpp Summary: SIP/XMPP IM gateway for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: libexpat1 @@ -920,7 +1043,7 @@ SIP/XMPP IM gateway for Kamailio. %package uuid Summary: UUID generator for Kamailio -Group: System Environment/Daemons +Group: %{PKGGROUP} Requires: kamailio = %ver %if 0%{?suse_version} Requires: libuuid1 @@ -937,13 +1060,19 @@ UUID module for Kamailio. %prep %setup -n %{name}-%{ver} +%if "%{__python2}" != "" + sed -i -e 's:#!/usr/bin/python:#!%{__python2}:' utils/kamctl/dbtextdb/dbtextdb.py +%endif + ln -s ../obs pkg/kamailio/fedora/27 ln -s ../obs pkg/kamailio/fedora/28 ln -s ../obs pkg/kamailio/fedora/29 +ln -s ../obs pkg/kamailio/fedora/30 ln -s ../obs pkg/kamailio/rhel/6 ln -s ../obs pkg/kamailio/rhel/7 ln -s ../obs pkg/kamailio/opensuse/1315 ln -s ../obs pkg/kamailio/opensuse/1330 +ln -s ../obs pkg/kamailio/opensuse/1500 ln -s ../obs pkg/kamailio/opensuse/1550 ln -s ../obs pkg/kamailio/centos/6 ln -s ../obs pkg/kamailio/centos/7 @@ -1013,10 +1142,20 @@ make every-module skip_modules="app_mono db_cassandra db_oracle iptrtpproxy \ %if %{with perl} kperl \ %endif - kpostgres kpresence kpython kradius \ +%if %{with phonenum} + kphonenum \ +%endif + kpostgres kpresence kpython \ +%if %{with python3} + kpython3 \ +%endif + kradius \ %if %{with redis} kredis \ %endif +%if %{with ruby} + kruby \ +%endif %if %{with sctp} ksctp \ %endif @@ -1087,10 +1226,20 @@ make install-modules-all skip_modules="app_mono db_cassandra db_oracle \ %if %{with perl} kperl \ %endif - kpostgres kpresence kpython kradius \ +%if %{with phonenum} + kphonenum \ +%endif + kpostgres kpresence kpython \ +%if %{with python3} + kpython3 \ +%endif + kradius \ %if %{with redis} kredis \ %endif +%if %{with ruby} + kruby \ +%endif %if %{with sctp} ksctp \ %endif @@ -1120,11 +1269,11 @@ install -Dpm 0644 pkg/kamailio/%{dist_name}/%{dist_version}/sipcapture.tmpfiles %endif %if 0%{?suse_version} -install -d %{buildroot}/var/adm/fillup-templates/ +install -d %{buildroot}%{_fillupdir} install -m644 pkg/kamailio/%{dist_name}/%{dist_version}/kamailio.sysconfig \ - %{buildroot}/var/adm/fillup-templates/sysconfig.kamailio + %{buildroot}%{_fillupdir}/sysconfig.kamailio install -m644 pkg/kamailio/%{dist_name}/%{dist_version}/sipcapture.sysconfig \ - %{buildroot}/var/adm/fillup-templates/sysconfig.sipcapture + %{buildroot}%{_fillupdir}/sysconfig.sipcapture %else install -d %{buildroot}%{_sysconfdir}/sysconfig install -m644 pkg/kamailio/%{dist_name}/%{dist_version}/kamailio.sysconfig \ @@ -1321,7 +1470,7 @@ fi %config(noreplace) %{_sysconfdir}/kamailio/tls.cfg %dir %attr(-,kamailio,kamailio) %{_sharedstatedir}/kamailio %if 0%{?suse_version} -/var/adm/fillup-templates/sysconfig.kamailio +%{_fillupdir}/sysconfig.kamailio %else %config %{_sysconfdir}/sysconfig/kamailio %endif @@ -1493,6 +1642,14 @@ fi %{_datadir}/kamailio/dbtext/kamailio/* +%if %{with jansson} +%files acc_json +%defattr(-,root,root) +%doc %{_docdir}/kamailio/modules/README.acc_json +%{_libdir}/kamailio/modules/acc_json.so +%endif + + %files auth-ephemeral %defattr(-,root,root) %doc %{_docdir}/kamailio/modules/README.auth_ephemeral @@ -1601,12 +1758,14 @@ fi %doc %{_docdir}/kamailio/modules/README.ims_dialog %doc %{_docdir}/kamailio/modules/README.ims_diameter_server %doc %{_docdir}/kamailio/modules/README.ims_icscf +%doc %{_docdir}/kamailio/modules/README.ims_ipsec_pcscf %doc %{_docdir}/kamailio/modules/README.ims_isc %doc %{_docdir}/kamailio/modules/README.ims_ocs %doc %{_docdir}/kamailio/modules/README.ims_qos %doc %{_docdir}/kamailio/modules/README.ims_registrar_pcscf %doc %{_docdir}/kamailio/modules/README.ims_registrar_scscf %doc %{_docdir}/kamailio/modules/README.ims_usrloc_pcscf +%doc %{_docdir}/kamailio/modules/README.ims_usrloc_scscf %{_libdir}/kamailio/modules/cdp.so %{_libdir}/kamailio/modules/cdp_avp.so %{_libdir}/kamailio/modules/ims_auth.so @@ -1614,6 +1773,7 @@ fi %{_libdir}/kamailio/modules/ims_dialog.so %{_libdir}/kamailio/modules/ims_diameter_server.so %{_libdir}/kamailio/modules/ims_icscf.so +%{_libdir}/kamailio/modules/ims_ipsec_pcscf.so %{_libdir}/kamailio/modules/ims_isc.so %{_libdir}/kamailio/modules/ims_ocs.so %{_libdir}/kamailio/modules/ims_qos.so @@ -1745,6 +1905,14 @@ fi %endif +%if %{with phonenum} +%files phonenum +%defattr(-,root,root) +%doc %{_docdir}/kamailio/modules/README.phonenum +%{_libdir}/kamailio/modules/phonenum.so +%endif + + %files postgresql %defattr(-,root,root) %doc %{_docdir}/kamailio/modules/README.db_postgres @@ -1767,6 +1935,9 @@ fi %doc %{_docdir}/kamailio/modules/README.pua %doc %{_docdir}/kamailio/modules/README.pua_bla %doc %{_docdir}/kamailio/modules/README.pua_dialoginfo +%if %{with json} +%doc %{_docdir}/kamailio/modules/README.pua_json +%endif %doc %{_docdir}/kamailio/modules/README.pua_reginfo %doc %{_docdir}/kamailio/modules/README.pua_usrloc %doc %{_docdir}/kamailio/modules/README.pua_xmpp @@ -1783,6 +1954,9 @@ fi %{_libdir}/kamailio/modules/pua.so %{_libdir}/kamailio/modules/pua_bla.so %{_libdir}/kamailio/modules/pua_dialoginfo.so +%if %{with json} +%{_libdir}/kamailio/modules/pua_json.so +%endif %{_libdir}/kamailio/modules/pua_reginfo.so %{_libdir}/kamailio/modules/pua_usrloc.so %{_libdir}/kamailio/modules/pua_xmpp.so @@ -1795,6 +1969,10 @@ fi %defattr(-,root,root) %doc %{_docdir}/kamailio/modules/README.app_python %{_libdir}/kamailio/modules/app_python.so +%if %{with python3} +%doc %{_docdir}/kamailio/modules/README.app_python3 +%{_libdir}/kamailio/modules/app_python3.so +%endif %if %{with rabbitmq} @@ -1820,10 +1998,14 @@ fi %if %{with redis} %files redis %defattr(-,root,root) +%doc %{_docdir}/kamailio/modules/README.db_redis %doc %{_docdir}/kamailio/modules/README.ndb_redis %doc %{_docdir}/kamailio/modules/README.topos_redis +%{_libdir}/kamailio/modules/db_redis.so %{_libdir}/kamailio/modules/ndb_redis.so %{_libdir}/kamailio/modules/topos_redis.so +%dir %{_datadir}/kamailio/db_redis +%{_datadir}/kamailio/db_redis/* %endif @@ -1843,7 +2025,7 @@ fi %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/kamailio/kamailio-sipcapture.cfg %if 0%{?suse_version} -/var/adm/fillup-templates/sysconfig.sipcapture +%{_fillupdir}/sysconfig.sipcapture %else %config(noreplace) %{_sysconfdir}/sysconfig/sipcapture %endif @@ -1853,6 +2035,14 @@ fi %endif +%if %{with ruby} +%files ruby +%defattr(-,root,root) +%doc %{_docdir}/kamailio/modules/README.app_ruby +%{_libdir}/kamailio/modules/app_ruby.so +%endif + + %if %{with sctp} %files sctp %defattr(-,root,root) @@ -1867,6 +2057,12 @@ fi %{_libdir}/kamailio/modules/sipdump.so +%files sipjson +%defattr(-,root,root) +%doc %{_docdir}/kamailio/modules/README.sipjson +%{_libdir}/kamailio/modules/sipjson.so + + %files snmpstats %defattr(-,root,root) %{_docdir}/kamailio/modules/README.snmpstats @@ -1969,7 +2165,11 @@ fi %changelog -* Sun Nov 04 2018 Sergey Safarov +* Sat Mar 30 2019 Sergey Safarov 5.3.0-0 + - Added support of openSUSE:Leap:15.0, openSUSE:Leap:15.1 and Fedora 30 dists +* Tue Dec 11 2018 Sergey Safarov 5.2.0-1 + - Added Ruby package +* Sun Nov 04 2018 Sergey Safarov 5.2.0-0 - removed packaging for Fedora 25, 26 as End Of Life * Sat Sep 02 2017 Sergey Safarov - added packaging for Fedora 26 and openSUSE Leap 42.3 diff --git a/pkg/kamailio/obs/meta b/pkg/kamailio/obs/meta index 452d5d764..bec3a6b45 100644 --- a/pkg/kamailio/obs/meta +++ b/pkg/kamailio/obs/meta @@ -1,6 +1,6 @@ - - RPM Packages for Kamailio v5.1.x - RPM Packages for Kamailio v5.1.x + + RPM Packages for Kamailio v5.2.x + RPM Packages for Kamailio v5.2.x @@ -15,6 +15,14 @@ x86_64 + + + x86_64 + + + + x86_64 + x86_64 diff --git a/pkg/kamailio/openbsd/Makefile b/pkg/kamailio/openbsd/Makefile index 2b1c04be8..cf481de8b 100644 --- a/pkg/kamailio/openbsd/Makefile +++ b/pkg/kamailio/openbsd/Makefile @@ -12,7 +12,7 @@ COMMENT-carrierroute = kamailio carrierroute module COMMENT-snmpstats = kamailio snmpstats module COMMENT-perl = kamailio perl modules -VERSION = 5.1.7 +VERSION = 1.5.0 DISTNAME = kamailio-${VERSION} PKGNAME-main = kamailio-${VERSION} PKGNAME-mysql = kamailio-mysql-${VERSION} diff --git a/pkg/kamailio/oracle/el6/kamailio.spec b/pkg/kamailio/oracle/el6/kamailio.spec index 8e565640f..de1aca796 100644 --- a/pkg/kamailio/oracle/el6/kamailio.spec +++ b/pkg/kamailio/oracle/el6/kamailio.spec @@ -1,5 +1,5 @@ %define name kamailio -%define ver 5.1.8 +%define ver 5.2.3 %define rel 0 %define _sharedir %{_prefix}/share diff --git a/pkg/kamailio/oracle/el7/kamailio.service b/pkg/kamailio/oracle/el7/kamailio.service index 63d6da747..8192488b5 100644 --- a/pkg/kamailio/oracle/el7/kamailio.service +++ b/pkg/kamailio/oracle/el7/kamailio.service @@ -1,6 +1,7 @@ [Unit] Description=Kamailio SIP router server daemon -After=syslog.target network.target auditd.service +Wants=network-online.target +After=syslog.target network-online.target auditd.service [Service] EnvironmentFile=/etc/sysconfig/kamailio diff --git a/pkg/kamailio/oracle/el7/kamailio.spec b/pkg/kamailio/oracle/el7/kamailio.spec index 0fe7318c7..940b0db36 100644 --- a/pkg/kamailio/oracle/el7/kamailio.spec +++ b/pkg/kamailio/oracle/el7/kamailio.spec @@ -1,5 +1,5 @@ %define name kamailio -%define ver 5.1.8 +%define ver 5.2.3 %define rel 0 %define _sharedir %{_prefix}/share diff --git a/pkg/kamailio/rhel/README.md b/pkg/kamailio/rhel/README.md index e1727f732..8bd5bbeaf 100644 --- a/pkg/kamailio/rhel/README.md +++ b/pkg/kamailio/rhel/README.md @@ -4,3 +4,16 @@ Now supported dists: 1. RHEL 7 SPEC file and other stuff located at `../obs` folder + +IF you wnat build optional packages please use rpmbuild with options "--with". Example + +``` +rpmbbuild -bb --with cnxcc --with geoip --with http_async_client --with jansson \ + --with json --with kazoo --with memcached --with sctp --with websocket kamailio.spec +``` + +or + +``` +mock --rpmbuild-opts '--with cnxcc --with geoip --with http_async_client' --rebuild kamailio.src.rpm +``` diff --git a/pkg/kamailio/rpm/kamailio.default b/pkg/kamailio/rpm/kamailio.default deleted file mode 100644 index 907028924..000000000 --- a/pkg/kamailio/rpm/kamailio.default +++ /dev/null @@ -1,30 +0,0 @@ -# -# 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 - -# Amount of shared memory to allocate for the running Kamailio server (in Mb) -SHM_MEMORY=64 - -# Amount of private memory to allocate for the running Kamailio server (in Mb) -PKG_MEMORY=8 - -# 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 (e.g. Ubuntu 6.10, Debian 4.0) 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=no - -# Add extra command line parameters in the EXTRA_OPTIONS variable -# EXTRA_OPTIONS="-a no" diff --git a/pkg/kamailio/rpm/kamailio.init b/pkg/kamailio/rpm/kamailio.init deleted file mode 100644 index 4f8192590..000000000 --- a/pkg/kamailio/rpm/kamailio.init +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/bash -# -# Startup script for Kamailio -# -# chkconfig: 345 85 15 -# description: Kamailio is a fast SIP Server. -# -# processname: kamailio -# pidfile: /var/run/kamailio.pid -# config: /etc/kamailio/kamailio.cfg - -# Source function library. -. /etc/rc.d/init.d/functions - -KAM=/usr/sbin/kamailio -KAMCFG=/etc/kamailio/kamailio.cfg -PROG=kamailio -PID_FILE=/var/run/kamailio.pid -LOCK_FILE=/var/lock/subsys/kamailio -RETVAL=0 -DEFAULTS=/etc/default/kamailio -RUN_KAMAILIO=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.*" $KAMCFG; then - echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/kamailio debug instead" - exit 1 - fi -} - -check_kamailio_config () -{ - # Check if kamailio configuration is valid before starting the server - out=$($KAM -M $PKG_MEMORY -c 2>&1 > /dev/null) - retcode=$? - if [ "$retcode" != '0' ]; then - echo "Not starting $DESC: invalid configuration file!" - echo -e "\n$out\n" - exit 1 - fi -} - - -start() { - check_kamailio_config - if [ "$1" != "debug" ]; then - check_fork - fi - echo -n $"Starting $PROG: " - daemon $KAM $OPTIONS >/dev/null 2>/dev/null - RETVAL=$? - echo - [ $RETVAL = 0 ] && touch $LOCK_FILE && success - return $RETVAL -} - -stop() { - echo -n $"Stopping $PROG: " - killproc $KAM - RETVAL=$? - echo - [ $RETVAL = 0 ] && rm -f $LOCK_FILE $PID_FILE -} - -# Load startup options if available -if [ -f $DEFAULTS ]; then - . $DEFAULTS || true -fi - -if [ "$RUN_KAMAILIO" != "yes" ]; then - echo "Kamailio not yet configured. Edit /etc/default/kamailio first." - exit 0 -fi - - -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=8 - -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 - -OPTIONS="-P $PID_FILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP $EXTRA_OPTIONS" - - -# See how we were called. -case "$1" in - start|debug) - start - ;; - stop) - stop - ;; - status) - status $KAM - RETVAL=$? - ;; - restart) - stop - start - ;; - condrestart) - if [ -f $PID_FILE ] ; then - stop - start - fi - ;; - *) - echo $"Usage: $PROG {start|stop|restart|condrestart|status|debug|help}" - exit 1 -esac - -exit $RETVAL diff --git a/pkg/kamailio/rpm/kamailio.init.SuSE b/pkg/kamailio/rpm/kamailio.init.SuSE deleted file mode 100644 index d87136472..000000000 --- a/pkg/kamailio/rpm/kamailio.init.SuSE +++ /dev/null @@ -1,133 +0,0 @@ -#! /bin/sh -# Copyright (c) 2002 FhG FOKUS, Germany. -# All rights reserved. -# -# /etc/init.d/kamailio -# -### BEGIN INIT INFO -# Provides: sip -# Required-Start: $network -# X-UnitedLinux-Should-Start: $network -# Required-Stop: $network -# X-UnitedLinux-Should-Stop: $network -# Default-Start: 3 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Kamailio -# Description: Start Kamailio and provide the routing of SIP requests. -### END INIT INFO - - -# Check for missing binaries (stale symlinks should not happen) -KAM_BIN=/usr/sbin/kamailio -test -x $KAM_BIN || exit 5 - -# Check for existence of needed config file and read it -KAM_CONFIG=/etc/kamailio/kamailio.cfg -test -r $KAM_CONFIG || exit 6 - -# Shell functions sourced from /etc/rc.status: -# rc_check check and set local and overall rc status -# rc_status check and set local and overall rc status -# rc_status -v ditto but be verbose in local rc status -# rc_status -v -r ditto and clear the local rc status -# rc_status -s display "skipped" and exit with status 3 -# rc_status -u display "unused" and exit with status 3 -# rc_failed set local and overall rc status to failed -# rc_failed set local and overall rc status to -# rc_reset clear local rc status (overall remains) -# rc_exit exit appropriate to overall rc status -# rc_active checks whether a service is activated by symlinks -# rc_splash arg sets the boot splash screen to arg (if active) -. /etc/rc.status - -# Reset status of this service -rc_reset - -# Return values acc. to LSB for all commands but status: -# 0 - success -# 1 - generic or unspecified error -# 2 - invalid or excess argument(s) -# 3 - unimplemented feature (e.g. "reload") -# 4 - user had insufficient privileges -# 5 - program is not installed -# 6 - program is not configured -# 7 - program is not running -# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) -# -# Note that starting an already running service, stopping -# or restarting a not-running service as well as the restart -# with force-reload (in case signaling is not supported) are -# considered a success. - -case "$1" in - start) - echo -n "Starting Kamailio " - ## Start daemon with startproc(8). If this fails - ## the return value is set appropriately by startproc. - startproc $KAM_BIN -f $KAM_CONFIG - - # Remember status and be verbose - rc_status -v - ;; - stop) - echo -n "Shutting down Kamailio " - ## Stop daemon with killproc(8) and if this fails - ## killproc sets the return value according to LSB. - - killproc -TERM $KAM_BIN - - # Remember status and be verbose - rc_status -v - ;; - restart) - ## Stop the service and regardless of whether it was - ## running or not, start it again. - $0 stop - $0 start - - # Remember status and be quiet - rc_status - ;; - force-reload) - ## Signal the daemon to reload its config. Most daemons - ## do this on signal 1 (SIGHUP). - ## If it does not support it, restart. - - echo -n "Reload service Kamailio " - ## Otherwise: - $0 stop && $0 start - rc_status - ;; - reload) - ## Like force-reload, but if daemon does not support - ## signaling, do nothing (!) - - ## Otherwise if it does not support reload: - rc_failed 3 - rc_status -v - ;; - status) - echo -n "Checking for service Kamailio " - ## Check status with checkproc(8), if process is running - ## checkproc will return with exit status 0. - - # Return value is slightly different for the status command: - # 0 - service up and running - # 1 - service dead, but /var/run/ pid file exists - # 2 - service dead, but /var/lock/ lock file exists - # 3 - service not running (unused) - # 4 - service status unknown :-( - # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) - - # NOTE: checkproc returns LSB compliant status values. - checkproc $KAM_BIN - # NOTE: rc_status knows that we called this init script with - # "status" option and adapts its messages accordingly. - rc_status -v - ;; - *) - echo "Usage: $0 {start|stop|status|restart|force-reload|reload}" - exit 1 - ;; -esac -rc_exit diff --git a/pkg/kamailio/rpm/kamailio.spec-4.1 b/pkg/kamailio/rpm/kamailio.spec-4.1 deleted file mode 100644 index 8387efd42..000000000 --- a/pkg/kamailio/rpm/kamailio.spec-4.1 +++ /dev/null @@ -1,409 +0,0 @@ -%define name kamailio -%define ver 5.1.8 -%define rel 0 - -%define EXCLUDED_MODULES mysql jabber cpl-c avp_radius auth_radius group_radius uri_radius pa postgres osp tlsops unixodbc -%define MYSQL_MODULES mysql -%define UNIXODBC_MODULES unixodbc -%define POSTGRES_MODULES postgres -%define JABBER_MODULES jabber -%define CPL_MODULES cpl-c -%define PA_MODULES pa -%define RADIUS_MODULES avp_radius auth_radius group_radius uri_radius -%define RADIUS_MOD_PATH modules/avp_radius modules/auth_radius modules/group_radius modules/uri_radius - -Summary: Kamailio, very fast and flexible SIP server - proxy, application server and presence -Name: %name -Version: %ver -Release: %rel -Packager: Daniel-Constantin Mierla -Copyright: GPL -Group: System Environment/Daemons -Source: http://kamailio.org/pub/kamailio/stable/%{name}-%{ver}_src.tar.gz -Source2: kamailio.init -URL: http://kamailio.org/ -Vendor: kamailio.org -BuildRoot: /var/tmp/%{name}-%{ver}-root -Conflicts: kamailio-mysql < %ver, kamailio-jabber < %ver, kamailio-radius < %ver, kamailio-cpl < %ver, kamailio-unixodbc < %ver, kamailio-pa < %ver, kamailio-postgres < %ver -BuildPrereq: make flex bison - - -%description -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. In addition there is support for 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. - -%package mysql -Summary: MySQL connectivity for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: mysql-devel zlib-devel - -%description mysql -The kamailio-mysql package contains MySQL database connectivity that you -need to use digest authentication module or persistent user location -entries, easy-to manage dialplans, load balancing control and least -cost routing, just to name a few examples. - -%package postgres -Summary: MPOSTGRES connectivity for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: postgresql-devel - -%description postgres -The kamailio-postgres package contains Postgres database connectivity that you -need to use digest authentication module or persistent user location -entries. - -%package unixodbc -Summary: UNIXODBC connectivity for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: unixodbc-dev - -%description unixodbc -The kamailio-unixodbc package contains UNIXODBC database connectivity support -that is required by other modules with database dependencies. - -%package jabber -Summary: sip jabber message translation support for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: expat-devel - -%description jabber -The kamailio-jabber package contains a SIP to XMPP/jabber message translator. - -%%package cpl -Summary: CPL interpreter engine for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libxml2-dev - -%description cpl -The kamailio-cpl package contains a SIP CPL interpreter engine. - -%package pa -Summary: SIP presence agent support for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libxml2-dev - -%description pa -The kamailio-pa package contains a SIP Presence Agent. - -%package radius -Summary: Kamailio Radius authentication, group and uri check modules. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: radiusclient-devel - -%description radius -The kamailio-radius package contains modules for radius authentication, group - membership and uri checking. - -%prep -%setup - -%build -make all skip_modules="%EXCLUDED_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%MYSQL_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%POSTGRES_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%UNIXODBC_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%JABBER_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%CPL_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%PA_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="%RADIUS_MOD_PATH" cfg-target=/%{_sysconfdir}/kamailio/ - - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" - -make install skip_modules="%EXCLUDED_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="modules/%MYSQL_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="modules/%MYSQL_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="modules/%POSTGRES_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="modules/%POSTGRES_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="modules/%UNIXODBC_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="modules/%UNIXODBC_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="modules/%JABBER_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="modules/%JABBER_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="modules/%CPL_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="modules/%CPL_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="modules/%PA_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="modules/%PA_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-modules modules="%RADIUS_MOD_PATH" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ -make install-doc modules="%RADIUS_MOD_PATH" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d -install -m755 $RPM_SOURCE_DIR/kamailio.init \ - $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/kamailio - - - - -%clean -rm -rf "$RPM_BUILD_ROOT" - -%post -/sbin/chkconfig --add kamailio - -%preun -if [ $1 = 0 ]; then - /sbin/service kamailio stop > /dev/null 2>&1 - /sbin/chkconfig --del kamailio -fi - - -%files -%defattr(-,root,root) -%dir %{_docdir}/kamailio -%doc %{_docdir}/kamailio/AUTHORS -%doc %{_docdir}/kamailio/NEWS -%doc %{_docdir}/kamailio/INSTALL -%doc %{_docdir}/kamailio/README -%doc %{_docdir}/kamailio/README-MODULES -%doc %{_docdir}/kamailio/README.acc -%doc %{_docdir}/kamailio/README.alias_db -%doc %{_docdir}/kamailio/README.auth -%doc %{_docdir}/kamailio/README.auth_db -%doc %{_docdir}/kamailio/README.auth_diameter -%doc %{_docdir}/kamailio/README.avpops -%doc %{_docdir}/kamailio/README.dbtext -%doc %{_docdir}/kamailio/README.dialog -%doc %{_docdir}/kamailio/README.dispatcher -%doc %{_docdir}/kamailio/README.diversion -%doc %{_docdir}/kamailio/README.domain -%doc %{_docdir}/kamailio/README.enum -%doc %{_docdir}/kamailio/README.exec -%doc %{_docdir}/kamailio/README.flatstore -%doc %{_docdir}/kamailio/README.gflags -%doc %{_docdir}/kamailio/README.group -%doc %{_docdir}/kamailio/README.lcr -%doc %{_docdir}/kamailio/README.mangler -%doc %{_docdir}/kamailio/README.maxfwd -%doc %{_docdir}/kamailio/README.mediaproxy -%doc %{_docdir}/kamailio/README.msilo -%doc %{_docdir}/kamailio/README.nathelper -%doc %{_docdir}/kamailio/README.options -%doc %{_docdir}/kamailio/README.path -%doc %{_docdir}/kamailio/README.pdt -%doc %{_docdir}/kamailio/README.permissions -%doc %{_docdir}/kamailio/README.pike -%doc %{_docdir}/kamailio/README.registrar -%doc %{_docdir}/kamailio/README.rr -%doc %{_docdir}/kamailio/README.siptrace -%doc %{_docdir}/kamailio/README.sl -%doc %{_docdir}/kamailio/README.sms -%doc %{_docdir}/kamailio/README.speeddial -%doc %{_docdir}/kamailio/README.statistics -%doc %{_docdir}/kamailio/README.textops -%doc %{_docdir}/kamailio/README.tm -%doc %{_docdir}/kamailio/README.uac -%doc %{_docdir}/kamailio/README.uac_redirect -%doc %{_docdir}/kamailio/README.uri -%doc %{_docdir}/kamailio/README.uri_db -%doc %{_docdir}/kamailio/README.usrloc -%doc %{_docdir}/kamailio/README.xlog - -%dir %{_sysconfdir}/kamailio -%config(noreplace) %{_sysconfdir}/kamailio/* -%config %{_sysconfdir}/rc.d/init.d/* - -%dir %{_libdir}/kamailio -%dir %{_libdir}/kamailio/modules -%{_libdir}/kamailio/modules/acc.so -%{_libdir}/kamailio/modules/alias_db.so -%{_libdir}/kamailio/modules/auth.so -%{_libdir}/kamailio/modules/auth_db.so -%{_libdir}/kamailio/modules/auth_diameter.so -%{_libdir}/kamailio/modules/avpops.so -%{_libdir}/kamailio/modules/dbtext.so -%{_libdir}/kamailio/modules/dispatcher.so -%{_libdir}/kamailio/modules/diversion.so -%{_libdir}/kamailio/modules/domain.so -%{_libdir}/kamailio/modules/enum.so -%{_libdir}/kamailio/modules/exec.so -%{_libdir}/kamailio/modules/flatstore.so -%{_libdir}/kamailio/modules/gflags.so -%{_libdir}/kamailio/modules/group.so -%{_libdir}/kamailio/modules/lcr.so -%{_libdir}/kamailio/modules/mangler.so -%{_libdir}/kamailio/modules/maxfwd.so -%{_libdir}/kamailio/modules/mediaproxy.so -%{_libdir}/kamailio/modules/msilo.so -%{_libdir}/kamailio/modules/nathelper.so -%{_libdir}/kamailio/modules/options.so -%{_libdir}/kamailio/modules/path.so -%{_libdir}/kamailio/modules/pdt.so -%{_libdir}/kamailio/modules/permissions.so -%{_libdir}/kamailio/modules/pike.so -%{_libdir}/kamailio/modules/registrar.so -%{_libdir}/kamailio/modules/rr.so -%{_libdir}/kamailio/modules/siptrace.so -%{_libdir}/kamailio/modules/sl.so -%{_libdir}/kamailio/modules/sms.so -%{_libdir}/kamailio/modules/speeddial.so -%{_libdir}/kamailio/modules/statistics.so -%{_libdir}/kamailio/modules/textops.so -%{_libdir}/kamailio/modules/tm.so -%{_libdir}/kamailio/modules/uac.so -%{_libdir}/kamailio/modules/uac_redirect.so -%{_libdir}/kamailio/modules/uri.so -%{_libdir}/kamailio/modules/uri_db.so -%{_libdir}/kamailio/modules/usrloc.so -%{_libdir}/kamailio/modules/xlog.so - -%{_sbindir}/kamailio -%{_sbindir}/kamctl -%{_libdir}/kamctl/kamctl.base -%{_libdir}/kamctl/kamctl.sqlbase -%{_libdir}/kamctl/kamctl.ctlbase -%{_libdir}/kamctl/kamctl.fifo -%{_libdir}/kamctl/kamctl.unixsock - -%{_mandir}/man5/* -%{_mandir}/man8/* - - -%files mysql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.mysql - -%{_libdir}/kamailio/modules/mysql.so -%{_sbindir}/kamailio_mysql.sh -%{_libdir}/kamctl/kamctl.mysql - -%files postgres -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.postgres - -%{_libdir}/kamailio/modules/postgres.so -%{_sbindir}/kamailio_postgres.sh -%{_libdir}/kamctl/kamctl.pgsql - -%files unixodbc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.unixodbc - -%{_libdir}/kamailio/modules/unixodbc.so - -%files jabber -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.jabber - -%{_libdir}/kamailio/modules/jabber.so - -%files cpl -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.cpl-c - -%{_libdir}/kamailio/modules/cpl-c.so - -%files pa -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.pa - -%{_libdir}/kamailio/modules/pa.so - -%files radius -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.avp_radius -%doc %{_docdir}/kamailio/README.auth_radius -%doc %{_docdir}/kamailio/README.group_radius -%doc %{_docdir}/kamailio/README.uri_radius - -%{_libdir}/kamailio/modules/avp_radius.so -%{_libdir}/kamailio/modules/auth_radius.so -%{_libdir}/kamailio/modules/group_radius.so -%{_libdir}/kamailio/modules/uri_radius.so - - -%changelog - -* Fri Jun 30 2006 Bogdan-Andrei Iancu -- version set to 1.1.0 -- added packages for pa, postgres and unixodbc -- added dialog, lcr, options, path, siptrace, statistics modules - -* Thu Oct 27 2005 Daniel-Constantin Mierla -- version set to 1.0.0 -- added readme for flatstore -- added uac and uac_redirect modules - -* Wed Jun 08 2005 Daniel-Constantin Mierla -- First version of the spec file. diff --git a/pkg/kamailio/rpm/kamailio.spec.CenOS b/pkg/kamailio/rpm/kamailio.spec.CenOS deleted file mode 100644 index b8274b4db..000000000 --- a/pkg/kamailio/rpm/kamailio.spec.CenOS +++ /dev/null @@ -1,745 +0,0 @@ -%define name kamailio -%define ver 5.1.8 -%define rel 0 -%define _sharedir %{_prefix}/share - -%define MYSQL_MODULES mysql -%define POSTGRES_MODULES postgres -%define UNIXODBC_MODULES unixodbc -%define LDAP_MODULES ldap -%define XMLRPC_MODULES xml -%define PERL_MODULES perl -%define PYTHON_MODULES python -%define LUA_MODULES lua -%define UTILS_MODULES utils -%define PURPLE_MODULES purple -%define MEMCACHED_MODULES memcached -%define TLS_MODULES tls -%define XMPP_MODULES xmpp -%define CPL_MODULES cpl -%define SNMPSTATS_MODULES snmpstats -%define CARRIERROUTE_MODULES carrierroute -%define PRESENCE_MODULES presence -%define RADIUS_MODULES radius -%define GEOIP_MODULES geoip - -Summary: Kamailio, very fast and flexible SIP Server -Name: %name -Version: %ver -Release: %rel -Packager: Ovidiu Sas -License: GPL -Group: System Environment/Daemons -Source0: http://kamailio.org/pub/kamailio/%{ver}/%{name}-%{ver}_src.tar.gz -Source1: kamailio.init -Source2: kamailio.default -URL: http://kamailio.org/ -Vendor: kamailio.org -BuildRoot: %{_tmppath}/%{name}-%{ver}-buildroot -Conflicts: kamailio-mysql < %ver, kamailio-postgres < %ver, kamailio-unixodbc < %ver, kamailio-ldap < %ver, kamailio-xmlrpc < %ver, kamailio-perl < %ver, kamailio-python < %ver, kamailio-lua < %ver, kamailio-utils < %ver, kamailio-purple < %ver, kamailio-memcached < %ver, kamailio-tls < %ver, kamailio-xmpp < %ver, kamailio-cpl < %ver, kamailio-snmpstats < %ver, kamailio-carrierroute < %ver, kamailio-presence < %ver, kamailio-radius < %ver, kamailio-geoip < %ver -BuildPrereq: make flex bison pcre-devel - -%description - -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. In addition there is support for 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. - -%package mysql -Summary: MySQL connectivity for the Kamailio SIP server. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: mysql-devel zlib-devel - -%description mysql -The kamailio-mysql package contains MySQL database connectivity that you -need to use digest authentication module or persistent user location -entries. - - -%package postgres -Summary: MPOSTGRES connectivity for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: postgresql-devel - -%description postgres -The kamailio-postgres package contains Postgres database connectivity that you -need to use digest authentication module or persistent user location -entries. - - -%package unixodbc -Summary: UNIXODBC connectivity for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: unixODBC-devel - -%description unixodbc -The kamailio-unixodbc package contains UNIXODBC database connectivity support -that is required by other modules with database dependencies. - - -%package utils -Summary: Utils for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver - -%description utils -The kamailio-utils package provides a set utility functions for Kamailio - - -%package cpl -Summary: CPL module (CPL interpreter engine) for Kamailio -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libxml2-devel - -%description cpl -The kamailio-cpl package provides a CPL interpreter engine for Kamailio - - -%package radius -Summary: Kamailio radius support for AAA API. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: radiusclient-ng-devel - -%description radius -The kamailio-radius package contains modules for radius authentication, group -membership and uri checking. - - -%package snmpstats -Summary: SNMP AgentX subagent module for Kamailio -Group: System Environment/Daemons -Requires: kamailio = %ver, net-snmp-utils -BuildPrereq: lm_sensors-devel net-snmp-devel - -%description snmpstats -The kamailio-snmpstats package snmpstats module for Kamailio. This module acts -as an AgentX subagent which connects to a master agent. - - -%package presence -Summary: sip presence user agent support for Kamailio -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libxml2-devel, curl-devel - -%description presence -The kamailio-presence package contains a sip Presence Agent. - - -%package xmpp -Summary: SIP2XMPP message translation support for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: expat-devel - -%description xmpp -The kamailio-xmpp package contains a SIP to XMPP message translator. - - -%package tls -Summary: TLS transport protocol for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: openssl-devel - -%description tls -The kamailio-tls package contains the SIP TLSt transport mechanism for Kamailio. - - -%package carrierroute -Summary: Routing module for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libconfuse-devel - -%description carrierroute -The kamailio-carrierroute package contains a fast routing engine. - - -%package purple -Summary: Provides the purple module, a multi-protocol IM gateway. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libpurple-devel - -%description purple -The kamailio-purple package provides the purple module, a multi-protocol instant -messaging gateway module. - - -%package ldap -Summary: LDAP modules for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: openldap-devel - -%description ldap -The kamailio-ldap package provides the ldap and h350 modules for Kamailio, -enabling LDAP queries from the Kamailio config and storage of SIP account -data in an LDAP directory. - - -#%package memcached -#Summary: Distributed hash table for Kamailio. -#Group: System Environment/Daemons -#Requires: kamailio = %ver -#BuildPrereq: libmemcached-devel -# -#%description memcached -#The kamailio-memcached package provides access to a distributed hash table memcached. - - -#%package xmlrpc -#Summary: XMLRPC support for Kamailio's Management Interface. -#Group: System Environment/Daemons -#Requires: kamailio = %ver -#BuildPrereq: libxml2-devel xmlrpc-c-devel -# -#%description xmlrpc -#The kamailio-xmlrpc package provides the XMLRPC transport implementations for Kamailio's -#Management and Control Interface. - - -%package perl -Summary: Perl extensions and database driver for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: mod_perl-devel - -%description perl -The kamailio-perl package provides an interface for Kamailio to write Perl extensions and -the perlvdb database driver for Kamailio. - - -%package lua -Summary: Lua extensions for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: lua-devel - -%description lua -The kamailio-lua package provides an interface for Kamailio to write Python extensions - - -%package python -Summary: Python extensions for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: python-devel - -%description python -The kamailio-python package provides an interface for Kamailio to write Python extensions - - -%package geoip -Summary: GeoIP extensions for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: geoip-devel - -%description geoip -The kamailio-geoip package provides a GeoIP interface for Kamailio - - - - -%prep -%setup -n %{name}-%{ver} - -%build -make FLAVOUR=kamailio cfg prefix=/usr cfg_prefix=$RPM_BUILD_ROOT basedir=$RPM_BUILD_ROOT cfg_target=/%{_sysconfdir}/kamailio/ modules_dirs="modules modules_k" -make -make every-module skip_modules="iptrtpproxy" group_include="kstandard" -make every-module group_include="k%MYSQL_MODULES" -make every-module group_include="k%POSTGRES_MODULES" -make every-module group_include="k%UNIXODBC_MODULES" -make every-module group_include="k%UTILS_MODULES" -make every-module group_include="k%CPL_MODULES" -make every-module group_include="k%RADIUS_MODULES" -make every-module group_include="k%SNMPSTATS_MODULES" -make every-module group_include="k%PRESENCE_MODULES" -make every-module group_include="k%XMPP_MODULES" -make every-module group_include="k%TLS_MODULES" -make every-module group_include="k%CARRIERROUTE_MODULES" -make every-module group_include="k%PURPLE_MODULES" -make every-module group_include="k%LDAP_MODULES" -#make every-module group_include="k%MEMCACHED_MODULES" -#make every-module group_include="k%XMLRPC_MODULES" -make every-module group_include="k%PERL_MODULES" -make every-module group_include="k%LUA_MODULES" -make every-module group_include="k%PYTHON_MODULES" -make every-module group_include="k%GEOIP_MODULES" - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" - -make install -make install-modules-all skip_modules="iptrtpproxy" group_include="kstandard" -make install-modules-all group_include="k%MYSQL_MODULES" -make install-modules-all group_include="k%POSTGRES_MODULES" -make install-modules-all group_include="k%UNIXODBC_MODULES" -make install-modules-all group_include="k%UTILS_MODULES" -make install-modules-all group_include="k%CPL_MODULES" -make install-modules-all group_include="k%SNMPSTATS_MODULES" -make install-modules-all group_include="k%RADIUS_MODULES" -make install-modules-all group_include="k%PRESENCE_MODULES" -make install-modules-all group_include="k%XMPP_MODULES" -make install-modules-all group_include="k%TLS_MODULES" -make install-modules-all group_include="k%CARRIERROUTE_MODULES" -make install-modules-all group_include="k%PURPLE_MODULES" -make install-modules-all group_include="k%LDAP_MODULES" -#make install-modules-all group_include="k%MEMCACHED_MODULES" -#make install-modules-all group_include="k%XMLRPC_MODULES" -make install-modules-all group_include="k%PERL_MODULES" -make install-modules-all group_include="k%LUA_MODULES" -make install-modules-all group_include="k%PYTHON_MODULES" -make install-modules-all group_include="k%GEOIP_MODULES" - - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d -install -m755 $RPM_SOURCE_DIR/kamailio.init \ - $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/kamailio - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/default -install -m755 $RPM_SOURCE_DIR/kamailio.default \ - $RPM_BUILD_ROOT/%{_sysconfdir}/default/kamailio - - -%pre -/usr/sbin/groupadd -r kamailio 2> /dev/null || : -/usr/sbin/useradd -r -g kamailio -s /bin/false -c "Kamailio daemon" -d \ - %{_libdir}/kamailio kamailio 2> /dev/null || : - - -%clean -rm -rf "$RPM_BUILD_ROOT" - -%post -/sbin/chkconfig --add kamailio - -%preun -if [ $1 = 0 ]; then - /sbin/service kamailio stop > /dev/null 2>&1 - /sbin/chkconfig --del kamailio -fi - - -%files -%defattr(-,root,root) -%dir %{_docdir}/kamailio -%doc %{_docdir}/kamailio/AUTHORS -%doc %{_docdir}/kamailio/NEWS -%doc %{_docdir}/kamailio/INSTALL -%doc %{_docdir}/kamailio/README -%doc %{_docdir}/kamailio/README-MODULES -%doc %{_docdir}/kamailio/modules/README.auth -%doc %{_docdir}/kamailio/modules/README.avpops -%doc %{_docdir}/kamailio/modules/README.blst -%doc %{_docdir}/kamailio/modules/README.cfg_db -%doc %{_docdir}/kamailio/modules/README.cfg_rpc -%doc %{_docdir}/kamailio/modules/README.counters -%doc %{_docdir}/kamailio/modules/README.ctl -%doc %{_docdir}/kamailio/modules/README.db_flatstore -%doc %{_docdir}/kamailio/modules/README.debugger -%doc %{_docdir}/kamailio/modules/README.dialplan -%doc %{_docdir}/kamailio/modules/README.enum -%doc %{_docdir}/kamailio/modules/README.lcr -%doc %{_docdir}/kamailio/modules/README.malloc_test -%doc %{_docdir}/kamailio/modules/README.matrix -%doc %{_docdir}/kamailio/modules/README.mediaproxy -%doc %{_docdir}/kamailio/modules/README.mi_rpc -%doc %{_docdir}/kamailio/modules/README.mqueue -%doc %{_docdir}/kamailio/modules/README.mtree -%doc %{_docdir}/kamailio/modules/README.pdb -%doc %{_docdir}/kamailio/modules/README.pipelimit -%doc %{_docdir}/kamailio/modules/README.prefix_route -#%doc %{_docdir}/kamailio/modules/README.privacy -%doc %{_docdir}/kamailio/modules/README.ratelimit -%doc %{_docdir}/kamailio/modules/README.sanity -%doc %{_docdir}/kamailio/modules/README.sl -%doc %{_docdir}/kamailio/modules/README.sms -%doc %{_docdir}/kamailio/modules/README.textopsx -%doc %{_docdir}/kamailio/modules/README.tm -%doc %{_docdir}/kamailio/modules/README.topoh -%doc %{_docdir}/kamailio/modules/README.xhttp -%doc %{_docdir}/kamailio/modules_k/README.acc -%doc %{_docdir}/kamailio/modules_k/README.alias_db -%doc %{_docdir}/kamailio/modules_k/README.auth_db -%doc %{_docdir}/kamailio/modules_k/README.auth_diameter -%doc %{_docdir}/kamailio/modules_k/README.benchmark -%doc %{_docdir}/kamailio/modules_k/README.call_control -%doc %{_docdir}/kamailio/modules_k/README.cfgutils -%doc %{_docdir}/kamailio/modules_k/README.db_text -%doc %{_docdir}/kamailio/modules_k/README.dialog -%doc %{_docdir}/kamailio/modules_k/README.dispatcher -%doc %{_docdir}/kamailio/modules_k/README.diversion -%doc %{_docdir}/kamailio/modules_k/README.domain -%doc %{_docdir}/kamailio/modules_k/README.domainpolicy -%doc %{_docdir}/kamailio/modules_k/README.drouting -%doc %{_docdir}/kamailio/modules_k/README.exec -%doc %{_docdir}/kamailio/modules_k/README.group -%doc %{_docdir}/kamailio/modules_k/README.htable -%doc %{_docdir}/kamailio/modules_k/README.imc -%doc %{_docdir}/kamailio/modules_k/README.kex -%doc %{_docdir}/kamailio/modules_k/README.maxfwd -%doc %{_docdir}/kamailio/modules_k/README.mi_datagram -%doc %{_docdir}/kamailio/modules_k/README.mi_fifo -%doc %{_docdir}/kamailio/modules_k/README.msilo -%doc %{_docdir}/kamailio/modules_k/README.nat_traversal -%doc %{_docdir}/kamailio/modules_k/README.nathelper -%doc %{_docdir}/kamailio/modules_k/README.path -%doc %{_docdir}/kamailio/modules_k/README.pdt -%doc %{_docdir}/kamailio/modules_k/README.permissions -%doc %{_docdir}/kamailio/modules_k/README.pike -%doc %{_docdir}/kamailio/modules_k/README.pua_mi -%doc %{_docdir}/kamailio/modules_k/README.pv -%doc %{_docdir}/kamailio/modules_k/README.qos -%doc %{_docdir}/kamailio/modules_k/README.regex -%doc %{_docdir}/kamailio/modules_k/README.registrar -%doc %{_docdir}/kamailio/modules_k/README.rr -%doc %{_docdir}/kamailio/modules_k/README.rtimer -%doc %{_docdir}/kamailio/modules_k/README.rtpproxy -%doc %{_docdir}/kamailio/modules_k/README.seas -%doc %{_docdir}/kamailio/modules_k/README.siptrace -%doc %{_docdir}/kamailio/modules_k/README.siputils -%doc %{_docdir}/kamailio/modules_k/README.speeddial -%doc %{_docdir}/kamailio/modules_k/README.sqlops -%doc %{_docdir}/kamailio/modules_k/README.sst -%doc %{_docdir}/kamailio/modules_k/README.statistics -%doc %{_docdir}/kamailio/modules_k/README.textops -%doc %{_docdir}/kamailio/modules_k/README.tmx -%doc %{_docdir}/kamailio/modules_k/README.uac -%doc %{_docdir}/kamailio/modules_k/README.uac_redirect -%doc %{_docdir}/kamailio/modules_k/README.uri_db -%doc %{_docdir}/kamailio/modules_k/README.userblacklist -%doc %{_docdir}/kamailio/modules_k/README.usrloc -%doc %{_docdir}/kamailio/modules_k/README.xlog - - -%dir %{_sysconfdir}/kamailio -%config(noreplace) %{_sysconfdir}/kamailio/* -%config %{_sysconfdir}/rc.d/init.d/* -%config %{_sysconfdir}/default/* - -%dir %{_libdir}/kamailio -%{_libdir}/kamailio/libkmi.so -%{_libdir}/kamailio/libkmi.so.1 -%{_libdir}/kamailio/libkmi.so.1.0 -%{_libdir}/kamailio/libsrdb1.so -%{_libdir}/kamailio/libsrdb1.so.1 -%{_libdir}/kamailio/libsrdb1.so.1.0 -%{_libdir}/kamailio/libsrdb2.so -%{_libdir}/kamailio/libsrdb2.so.1 -%{_libdir}/kamailio/libsrdb2.so.1.0 -%{_libdir}/kamailio/libtrie.so -%{_libdir}/kamailio/libtrie.so.1 -%{_libdir}/kamailio/libtrie.so.1.0 -%dir %{_libdir}/kamailio/modules -%{_libdir}/kamailio/modules/auth.so -%{_libdir}/kamailio/modules/avpops.so -%{_libdir}/kamailio/modules/blst.so -%{_libdir}/kamailio/modules/cfg_db.so -%{_libdir}/kamailio/modules/cfg_rpc.so -%{_libdir}/kamailio/modules/counters.so -%{_libdir}/kamailio/modules/ctl.so -%{_libdir}/kamailio/modules/db_flatstore.so -%{_libdir}/kamailio/modules/debugger.so -%{_libdir}/kamailio/modules/dialplan.so -%{_libdir}/kamailio/modules/enum.so -%{_libdir}/kamailio/modules/lcr.so -%{_libdir}/kamailio/modules/malloc_test.so -%{_libdir}/kamailio/modules/matrix.so -%{_libdir}/kamailio/modules/mediaproxy.so -%{_libdir}/kamailio/modules/mi_rpc.so -%{_libdir}/kamailio/modules/mqueue.so -%{_libdir}/kamailio/modules/mtree.so -%{_libdir}/kamailio/modules/pdb.so -%{_libdir}/kamailio/modules/pipelimit.so -%{_libdir}/kamailio/modules/prefix_route.so -%{_libdir}/kamailio/modules/privacy.so -%{_libdir}/kamailio/modules/ratelimit.so -%{_libdir}/kamailio/modules/sanity.so -%{_libdir}/kamailio/modules/sl.so -%{_libdir}/kamailio/modules/sms.so -%{_libdir}/kamailio/modules/tm.so -%{_libdir}/kamailio/modules/textopsx.so -%{_libdir}/kamailio/modules/topoh.so -%{_libdir}/kamailio/modules/xhttp.so -%dir %{_libdir}/kamailio/modules_k -%{_libdir}/kamailio/modules_k/acc.so -%{_libdir}/kamailio/modules_k/alias_db.so -%{_libdir}/kamailio/modules_k/auth_db.so -%{_libdir}/kamailio/modules_k/auth_diameter.so -%{_libdir}/kamailio/modules_k/benchmark.so -%{_libdir}/kamailio/modules_k/call_control.so -%{_libdir}/kamailio/modules_k/cfgutils.so -%{_libdir}/kamailio/modules_k/db_text.so -%{_libdir}/kamailio/modules_k/dialog.so -%{_libdir}/kamailio/modules_k/dispatcher.so -%{_libdir}/kamailio/modules_k/diversion.so -%{_libdir}/kamailio/modules_k/domain.so -%{_libdir}/kamailio/modules_k/domainpolicy.so -%{_libdir}/kamailio/modules_k/drouting.so -%{_libdir}/kamailio/modules_k/exec.so -%{_libdir}/kamailio/modules_k/group.so -%{_libdir}/kamailio/modules_k/htable.so -%{_libdir}/kamailio/modules_k/imc.so -%{_libdir}/kamailio/modules_k/kex.so -%{_libdir}/kamailio/modules_k/maxfwd.so -%{_libdir}/kamailio/modules_k/mi_datagram.so -%{_libdir}/kamailio/modules_k/mi_fifo.so -%{_libdir}/kamailio/modules_k/msilo.so -%{_libdir}/kamailio/modules_k/nat_traversal.so -%{_libdir}/kamailio/modules_k/nathelper.so -%{_libdir}/kamailio/modules_k/path.so -%{_libdir}/kamailio/modules_k/pdt.so -%{_libdir}/kamailio/modules_k/permissions.so -%{_libdir}/kamailio/modules_k/pike.so -%{_libdir}/kamailio/modules_k/pua_mi.so -%{_libdir}/kamailio/modules_k/pv.so -%{_libdir}/kamailio/modules_k/qos.so -%{_libdir}/kamailio/modules_k/regex.so -%{_libdir}/kamailio/modules_k/registrar.so -%{_libdir}/kamailio/modules_k/rr.so -%{_libdir}/kamailio/modules_k/rtimer.so -%{_libdir}/kamailio/modules_k/rtpproxy.so -%{_libdir}/kamailio/modules_k/seas.so -%{_libdir}/kamailio/modules_k/siptrace.so -%{_libdir}/kamailio/modules_k/siputils.so -%{_libdir}/kamailio/modules_k/speeddial.so -%{_libdir}/kamailio/modules_k/sqlops.so -%{_libdir}/kamailio/modules_k/sst.so -%{_libdir}/kamailio/modules_k/statistics.so -%{_libdir}/kamailio/modules_k/textops.so -%{_libdir}/kamailio/modules_k/tmx.so -%{_libdir}/kamailio/modules_k/uac.so -%{_libdir}/kamailio/modules_k/uac_redirect.so -%{_libdir}/kamailio/modules_k/uri_db.so -%{_libdir}/kamailio/modules_k/userblacklist.so -%{_libdir}/kamailio/modules_k/usrloc.so -%{_libdir}/kamailio/modules_k/xlog.so - - -%{_sbindir}/kamailio -%{_sbindir}/kamctl -%{_sbindir}/kamdbctl -%{_sbindir}/kamcmd -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.py -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyc -%{_libdir}/kamailio/kamctl/dbtextdb/dbtextdb.pyo -%{_libdir}/kamailio/kamctl/kamctl.base -%{_libdir}/kamailio/kamctl/kamctl.ctlbase -%{_libdir}/kamailio/kamctl/kamctl.dbtext -%{_libdir}/kamailio/kamctl/kamctl.fifo -%{_libdir}/kamailio/kamctl/kamctl.ser -%{_libdir}/kamailio/kamctl/kamctl.ser_mi -%{_libdir}/kamailio/kamctl/kamctl.sqlbase -%{_libdir}/kamailio/kamctl/kamctl.unixsock -%{_libdir}/kamailio/kamctl/kamdbctl.base -%{_libdir}/kamailio/kamctl/kamdbctl.dbtext - -%{_mandir}/man5/* -%{_mandir}/man8/* - -%{_sharedir}/kamailio/dbtext/kamailio/* - - -%files mysql -%defattr(-,root,root) -%{_libdir}/kamailio/modules/db_mysql.so -%{_libdir}/kamailio/kamctl/kamctl.mysql -%{_libdir}/kamailio/kamctl/kamdbctl.mysql -%{_sharedir}/kamailio/mysql/* - - -%files postgres -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.db_postgres -%{_libdir}/kamailio/modules/db_postgres.so -%{_libdir}/kamailio/kamctl/kamctl.pgsql -%{_libdir}/kamailio/kamctl/kamdbctl.pgsql -%{_sharedir}/kamailio/postgres/* - - -%files unixodbc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules_k/README.db_unixodbc -%{_libdir}/kamailio/modules_k/db_unixodbc.so - - -%files utils -%defattr(-,root,root) -%{_docdir}/kamailio/modules/README.utils -%{_libdir}/kamailio/modules/utils.so - - -%files cpl -%defattr(-,root,root) -%{_docdir}/kamailio/modules_k/README.cpl-c -%{_libdir}/kamailio/modules_k/cpl-c.so - - -%files radius -%defattr(-,root,root) -%{_docdir}/kamailio/modules_k/README.acc_radius -%{_docdir}/kamailio/modules_k/README.auth_radius -%{_docdir}/kamailio/modules_k/README.misc_radius -%{_docdir}/kamailio/modules/README.peering -%{_libdir}/kamailio/modules_k/acc_radius.so -%{_libdir}/kamailio/modules_k/auth_radius.so -%{_libdir}/kamailio/modules_k/misc_radius.so -%{_libdir}/kamailio/modules/peering.so - - -%files snmpstats -%defattr(-,root,root) -%{_docdir}/kamailio/modules_k/README.snmpstats -%{_libdir}/kamailio/modules_k/snmpstats.so - - -%files presence -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules_k/README.presence -%doc %{_docdir}/kamailio/modules_k/README.presence_conference -%doc %{_docdir}/kamailio/modules_k/README.presence_dialoginfo -%doc %{_docdir}/kamailio/modules_k/README.presence_mwi -%doc %{_docdir}/kamailio/modules_k/README.presence_xml -%doc %{_docdir}/kamailio/modules_k/README.pua -%doc %{_docdir}/kamailio/modules_k/README.pua_bla -%doc %{_docdir}/kamailio/modules_k/README.pua_dialoginfo -%doc %{_docdir}/kamailio/modules_k/README.pua_mi -%doc %{_docdir}/kamailio/modules_k/README.pua_usrloc -%doc %{_docdir}/kamailio/modules_k/README.pua_xmpp -%doc %{_docdir}/kamailio/modules_k/README.rls -%doc %{_docdir}/kamailio/modules_k/README.xcap_client -%doc %{_docdir}/kamailio/modules_k/README.xcap_server -%{_libdir}/kamailio/modules_k/presence.so -%{_libdir}/kamailio/modules_k/presence_conference.so -%{_libdir}/kamailio/modules_k/presence_dialoginfo.so -%{_libdir}/kamailio/modules_k/presence_mwi.so -%{_libdir}/kamailio/modules_k/presence_xml.so -%{_libdir}/kamailio/modules_k/pua.so -%{_libdir}/kamailio/modules_k/pua_bla.so -%{_libdir}/kamailio/modules_k/pua_dialoginfo.so -%{_libdir}/kamailio/modules_k/pua_mi.so -%{_libdir}/kamailio/modules_k/pua_usrloc.so -%{_libdir}/kamailio/modules_k/pua_xmpp.so -%{_libdir}/kamailio/modules_k/rls.so -%{_libdir}/kamailio/modules_k/xcap_client.so -%{_libdir}/kamailio/modules_k/xcap_server.so - - -%files xmpp -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules_k/README.xmpp -%{_libdir}/kamailio/modules_k/xmpp.so - - -%files tls -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.tls -%{_libdir}/kamailio/modules/tls.so - - -%files carrierroute -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.carrierroute -%{_libdir}/kamailio/modules/carrierroute.so - - -%files purple -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules_k/README.purple -%{_libdir}/kamailio/modules_k/purple.so - - -%files ldap -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules_k/README.h350 -%doc %{_docdir}/kamailio/modules_k/README.ldap -%{_libdir}/kamailio/modules_k/h350.so -%{_libdir}/kamailio/modules_k/ldap.so - - -#%files memcached -#%defattr(-,root,root) -#%doc %{_docdir}/kamailio/modules_k/README.memcached -#%{_libdir}/kamailio/modules_k/memcached.so - - -#%files xmlrpc -#%defattr(-,root,root) -#%doc %{_docdir}/kamailio/modules_k/README.memcached -#%{_libdir}/kamailio/modules_k/memcached.so - - -%files perl -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules_k/README.perl -%doc %{_docdir}/kamailio/modules_k/README.perlvdb -%{_libdir}/kamailio/modules_k/perl.so -%{_libdir}/kamailio/modules_k/perlvdb.so -%{_libdir}/kamailio/perl/OpenSER.pm -%{_libdir}/kamailio/perl/OpenSER/Constants.pm -%{_libdir}/kamailio/perl/OpenSER/LDAPUtils/LDAPConf.pm -%{_libdir}/kamailio/perl/OpenSER/LDAPUtils/LDAPConnection.pm -%{_libdir}/kamailio/perl/OpenSER/Message.pm -%{_libdir}/kamailio/perl/OpenSER/Utils/Debug.pm -%{_libdir}/kamailio/perl/OpenSER/Utils/PhoneNumbers.pm -%{_libdir}/kamailio/perl/OpenSER/VDB.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Adapter/AccountingSIPtrace.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Adapter/Alias.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Adapter/Auth.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Adapter/Describe.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Adapter/Speeddial.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Adapter/TableVersions.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Column.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Pair.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/ReqCond.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Result.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/VTab.pm -%{_libdir}/kamailio/perl/OpenSER/VDB/Value.pm - -%files lua -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_lua -%{_libdir}/kamailio/modules/app_lua.so - - -%files python -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.app_python -%{_libdir}/kamailio/modules/app_python.so - - -%files geoip -%defattr(-,root,root) -%doc %{_docdir}/kamailio/modules/README.geoip -%{_libdir}/kamailio/modules/geoip.so - - - -%changelog -* Mon Oct 4 2010 Ovidiu Sas - - Update for kamailio 3.1 - -* Tue Mar 23 2010 Ovidiu Sas - - First version of the spec file for kamailio 3.0 diff --git a/pkg/kamailio/rpm/kamailio.spec.SuSE b/pkg/kamailio/rpm/kamailio.spec.SuSE deleted file mode 100644 index bd437aee4..000000000 --- a/pkg/kamailio/rpm/kamailio.spec.SuSE +++ /dev/null @@ -1,389 +0,0 @@ -%define name kamailio -%define ver 5.1.8 -%define rel 0 - -%define EXCLUDED_MODULES mysql jabber cpl-c auth_radius misc_radius peering postgress pa unixodbc osp tlsops -%define MYSQL_MODULES mysql -%define POSTGRES_MODULES postgres -%define UNIXODBC_MODULES unixodbc -%define JABBER_MODULES jabber -%define CPL_MODULES cpl-c -%define PA_MODULES pa -%define RADIUS_MODULES auth_radius misc_radius peering -%define RADIUS_MOD_PATH modules/auth_radius modules/misc_radius modules/peering - -Summary: Kamailio, very fast and flexible SIP server -Name: %name -Version: %ver -Release: %rel - -Packager: Daniel-Constantin Mierla -Copyright: GPL -Group: Networking/Daemons -Source: http://kamailio.org/pub/kamailio/stable/%{name}-%{ver}_src.tar.gz -Source2: kamailio.init.SuSE -URL: http://www.kamailio.org/ -Vendor: kamailio.org -BuildRoot: /var/tmp/%{name}-%{ver}-root -Conflicts: kamailio < %ver, kamailio-mysql < %ver, kamailio-jabber < %ver, kamailio-radius < %ver, kamailio-postgres < %ver, kamailio-unixodbc < %ver, kamailio-pa < %ver -BuildPrereq: make flex bison - - -%description -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. In addition there is support for 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. - -%package mysql -Summary: MySQL connectivity for the Kamailio SIP server. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: mysql-devel zlib-devel - -%description mysql -The kamailio-mysql package contains MySQL database connectivity that you -need to use digest authentication module or persistent user location -entries. - -%package postgres -Summary: MPOSTGRES connectivity for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: postgresql-devel - -%description postgres -The kamailio-postgres package contains Postgres database connectivity that you -need to use digest authentication module or persistent user location -entries. - -%package unixodbc -Summary: UNIXODBC connectivity for Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: unixodbc-dev - -%description unixodbc -The kamailio-unixodbc package contains UNIXODBC database connectivity support -that is required by other modules with database dependencies. - - -%package jabber -Summary: sip jabber message translation support for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: expat - -%description jabber -The kamailio-jabber package contains a sip to jabber message translator. - -%package cpl -Summary: CPL interpreter engine for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libxml2-dev - -%description cpl -The kamailio-cpl package contains a CPL interpreter engine. - -%package pa -Summary: sip presence agent support for the Kamailio. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: libxml2-dev - -%description pa -The kamailio-pa package contains a sip Presence Agent. - -%package radius -Summary: kamailio radius authentication, group and uri check modules. -Group: System Environment/Daemons -Requires: kamailio = %ver -BuildPrereq: radiusclient - -%description radius -The kamailio-radius package contains modules for radius authentication, group - membership and uri checking. - -%prep -%setup - -%build -make all skip_modules="%EXCLUDED_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%MYSQL_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%POSTGRES_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%UNIXODBC_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%JABBER_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%CPL_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="modules/%PA_MODULES" cfg-target=/%{_sysconfdir}/kamailio/ -make modules modules="%RADIUS_MOD_PATH" cfg-target=/%{_sysconfdir}/kamailio/ - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" - -make install skip_modules="%EXCLUDED_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="modules/%MYSQL_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="modules/%POSTGRES_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="modules/%UNIXODBC_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="modules/%JABBER_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="modules/%CPL_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="modules/%PA_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-modules modules="%RADIUS_MOD_PATH" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - cfg-prefix=$RPM_BUILD_ROOT \ - cfg-target=/%{_sysconfdir}/kamailio/ \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ -make install-doc modules="modules/%JABBER_MODULES %RADIUS_MOD_PATH %MYSQL_MODULES %POSTGRES_MODULES %UNIXODBC_MODULES %CPL_MODULES %PA_MODULES" \ - basedir=$RPM_BUILD_ROOT \ - prefix=/usr \ - doc-prefix=$RPM_BUILD_ROOT \ - doc-dir=/%{_docdir}/kamailio/ - - -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/init.d -install -m755 $RPM_SOURCE_DIR/kamailio.init.SuSE \ - $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/kamailio - -%clean -rm -rf "$RPM_BUILD_ROOT" - -%post -sbin/insserv etc/init.d/kamailio - -%preun -if [ $1 = 0 ]; then - etc/init.d/kamailio stop > /dev/null 2>&1 -fi - -%postun -sbin/insserv etc/init.d/ - -%files -%defattr(-,root,root) -%dir %{_docdir}/kamailio -%doc %{_docdir}/kamailio/AUTHORS -%doc %{_docdir}/kamailio/NEWS -%doc %{_docdir}/kamailio/INSTALL -%doc %{_docdir}/kamailio/README -%doc %{_docdir}/kamailio/README-MODULES -%doc %{_docdir}/kamailio/README.acc -%doc %{_docdir}/kamailio/README.alias_db -%doc %{_docdir}/kamailio/README.auth -%doc %{_docdir}/kamailio/README.auth_db -%doc %{_docdir}/kamailio/README.auth_diameter -%doc %{_docdir}/kamailio/README.avpops -%doc %{_docdir}/kamailio/README.dbtext -%doc %{_docdir}/kamailio/README.dialog -%doc %{_docdir}/kamailio/README.dispatcher -%doc %{_docdir}/kamailio/README.diversion -%doc %{_docdir}/kamailio/README.domain -%doc %{_docdir}/kamailio/README.enum -%doc %{_docdir}/kamailio/README.exec -%doc %{_docdir}/kamailio/README.flatstore -%doc %{_docdir}/kamailio/README.gflags -%doc %{_docdir}/kamailio/README.group -%doc %{_docdir}/kamailio/README.lcr -%doc %{_docdir}/kamailio/README.mangler -%doc %{_docdir}/kamailio/README.maxfwd -%doc %{_docdir}/kamailio/README.mediaproxy -%doc %{_docdir}/kamailio/README.msilo -%doc %{_docdir}/kamailio/README.nathelper -%doc %{_docdir}/kamailio/README.options -%doc %{_docdir}/kamailio/README.path -%doc %{_docdir}/kamailio/README.pdt -%doc %{_docdir}/kamailio/README.permissions -%doc %{_docdir}/kamailio/README.pike -%doc %{_docdir}/kamailio/README.registrar -%doc %{_docdir}/kamailio/README.rr -%doc %{_docdir}/kamailio/README.siptrace -%doc %{_docdir}/kamailio/README.sl -%doc %{_docdir}/kamailio/README.sms -%doc %{_docdir}/kamailio/README.speeddial -%doc %{_docdir}/kamailio/README.statistics -%doc %{_docdir}/kamailio/README.textops -%doc %{_docdir}/kamailio/README.tm -%doc %{_docdir}/kamailio/README.uac -%doc %{_docdir}/kamailio/README.uac_redirect -%doc %{_docdir}/kamailio/README.uri -%doc %{_docdir}/kamailio/README.uri_db -%doc %{_docdir}/kamailio/README.usrloc -%doc %{_docdir}/kamailio/README.xlog - -%dir %{_sysconfdir}/kamailio -%config(noreplace) %{_sysconfdir}/kamailio/* -%config %{_sysconfdir}/init.d/* - -%dir %{_libdir}/kamailio -%dir %{_libdir}/kamailio/modules -%{_libdir}/kamailio/modules/acc.so -%{_libdir}/kamailio/modules/alias_db.so -%{_libdir}/kamailio/modules/auth.so -%{_libdir}/kamailio/modules/auth_db.so -%{_libdir}/kamailio/modules/auth_diameter.so -%{_libdir}/kamailio/modules/avpops.so -%{_libdir}/kamailio/modules/dbtext.so -%{_libdir}/kamailio/modules/dispatcher.so -%{_libdir}/kamailio/modules/diversion.so -%{_libdir}/kamailio/modules/domain.so -%{_libdir}/kamailio/modules/enum.so -%{_libdir}/kamailio/modules/exec.so -%{_libdir}/kamailio/modules/flatstore.so -%{_libdir}/kamailio/modules/gflags.so -%{_libdir}/kamailio/modules/group.so -%{_libdir}/kamailio/modules/lcr.so -%{_libdir}/kamailio/modules/mangler.so -%{_libdir}/kamailio/modules/maxfwd.so -%{_libdir}/kamailio/modules/mediaproxy.so -%{_libdir}/kamailio/modules/msilo.so -%{_libdir}/kamailio/modules/nathelper.so -%{_libdir}/kamailio/modules/options.so -%{_libdir}/kamailio/modules/path.so -%{_libdir}/kamailio/modules/pdt.so -%{_libdir}/kamailio/modules/permissions.so -%{_libdir}/kamailio/modules/pike.so -%{_libdir}/kamailio/modules/registrar.so -%{_libdir}/kamailio/modules/rr.so -%{_libdir}/kamailio/modules/siptrace.so -%{_libdir}/kamailio/modules/sl.so -%{_libdir}/kamailio/modules/sms.so -%{_libdir}/kamailio/modules/speeddial.so -%{_libdir}/kamailio/modules/statistics.so -%{_libdir}/kamailio/modules/textops.so -%{_libdir}/kamailio/modules/tm.so -%{_libdir}/kamailio/modules/uac.so -%{_libdir}/kamailio/modules/uac_redirect.so -%{_libdir}/kamailio/modules/uri.so -%{_libdir}/kamailio/modules/uri_db.so -%{_libdir}/kamailio/modules/usrloc.so -%{_libdir}/kamailio/modules/xlog.so - -%{_sbindir}/kamailio -%{_sbindir}/kamctl -%{_libdir}/kamctl/kamctl.base -%{_libdir}/kamctl/kamctl.sqlbase -%{_libdir}/kamctl/kamctl.ctlbase -%{_libdir}/kamctl/kamctl.fifo -%{_libdir}/kamctl/kamctl.unixsock - -%{_mandir}/man5/* -%{_mandir}/man8/* - - -%files mysql -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.mysql - -%{_libdir}/kamailio/modules/mysql.so -%{_sbindir}/kamailio_mysql.sh -%{_libdir}/kamctl/kamctl.mysql - -%files postgres -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.postgres - -%{_libdir}/kamailio/modules/postgres.so -%{_sbindir}/kamailio_postgres.sh -%{_libdir}/kamctl/kamctl.pgsql - -%files unixodbc -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.unixodbc - -%{_libdir}/kamailio/modules/unixodbc.so - -%files jabber -%defattr(-,root,root) -%{_libdir}/kamailio/modules/jabber.so -%doc %{_docdir}/kamailio/README.jabber - -%files cpl -%defattr(-,root,root) -%{_libdir}/kamailio/modules/cpl-c.so -%doc %{_docdir}/kamailio/README.cpl-c - -%files pa -%defattr(-,root,root) -%doc %{_docdir}/kamailio/README.pa - -%{_libdir}/kamailio/modules/pa.so - -%files radius -%defattr(-,root,root) -%{_libdir}/kamailio/modules/auth_radius.so -%{_libdir}/kamailio/modules/misc_radius.so -%{_libdir}/kamailio/modules/peering.so -%doc %{_docdir}/kamailio/README.auth_radius -%doc %{_docdir}/kamailio/README.misc_radius -%doc %{_docdir}/kamailio/README.peering - - -%changelog - -* Fri Jun 30 2006 Bogdan-Andrei Iancu -- version set to 1.1.0 -- added packages for pa, postgres and unixodbc -- added dialog, lcr, options, path, siptrace, statistics modules - -* Thu Oct 27 2005 Daniel-Constantin Mierla -- version set to 1.0.0 -- added readme for flatstore -- added uac and uac_redirect modules - -* Wed Jun 08 2005 Daniel-Constantin Mierla -- First version of the spec file. diff --git a/pkg/kamailio/solaris/pkginfo b/pkg/kamailio/solaris/pkginfo index 485963a06..116657e95 100644 --- a/pkg/kamailio/solaris/pkginfo +++ b/pkg/kamailio/solaris/pkginfo @@ -1,6 +1,6 @@ PKG=Kamailio ARCH=sparc -VERSION=5.1.8 +VERSION=1.2.0 CATEGORY=application EMAIL=miconda@gmail.com NAME=Kamailio is a very fast and flexible SIP (RFC3261) proxy server diff --git a/src/Makefile.defs b/src/Makefile.defs index 770ca1e79..f73a9aa8c 100644 --- a/src/Makefile.defs +++ b/src/Makefile.defs @@ -105,9 +105,9 @@ INSTALL_FLAVOUR=$(FLAVOUR) # version number VERSION = 5 -PATCHLEVEL = 1 -SUBLEVEL = 8 -EXTRAVERSION = +PATCHLEVEL = 2 +SUBLEVEL = 3 +EXTRAVERSION = # memory manager switcher # 0 - f_malloc (fast malloc) @@ -119,7 +119,7 @@ MEMMNG ?= 0 # 1 - on (debug mode) MEMDBG ?= 1 -SER_VER = $(shell expr $(VERSION) \* 1000000 + $(PATCHLEVEL) \* 1000 + \ +VERSIONVAL = $(shell expr $(VERSION) \* 1000000 + $(PATCHLEVEL) \* 1000 + \ $(SUBLEVEL) ) RELEASE:=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) OS := $(shell uname -s | sed -e s/SunOS/solaris/ -e s/CYGWIN.*/cygwin/ \ @@ -497,6 +497,7 @@ bin_target = $(prefix)/$(bin_dir) #modules_target = $(prefix)/$(modules_dir) lib_target = $(prefix)/$(lib_dir) run_target = $(run_prefix)/$(run_dir) +share_target = $(prefix)/$(share_dir) doc_target = $(prefix)/$(doc_dir) data_target = $(prefix)/$(data_dir) @@ -655,8 +656,9 @@ C_DEFS= $(extra_defs) \ -DNAME='"$(MAIN_NAME)"' -DVERSION='"$(RELEASE)"' -DARCH='"$(ARCH)"' \ -DOS='$(OS)_' -DOS_QUOTED='"$(OS)"' -DCOMPILER='"$(CC_VER)"'\ -D__CPU_$(ARCH) $(os_defs) \ - -DSER_VER=$(SER_VER) \ + -DVERSIONVAL=$(VERSIONVAL) \ -DCFG_DIR='"$(cfg_target)"'\ + -DSHARE_DIR='"$(share_target)"'\ -DRUN_DIR='"$(run_target)"' ifneq ($(MEMPKG), sys) @@ -696,8 +698,8 @@ C_DEFS+= -DSHM_MEM -DSHM_MMAP \ # you may also want to set -DPROFILING # WARNING: do not add mode=debug or mode=release anymore in the Makefile, -# use make mode=debug all instead. Anyway no by default ser is compiled w/ -# debugging symbols in all cases (-g). --andrei +# use make mode=debug all instead. By default Kamailio is compiled with +# debugging symbols in all cases (-g) and without optimization (-O0). # memory managers and related debug mode C_DEFS+= -DMEM_JOIN_FREE @@ -886,7 +888,7 @@ ifeq ($(CC_NAME), gcc) CFLAGS=-g $(CC_OPT) -funroll-loops -Wcast-align $(PROFILE) #if gcc 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+,$(CC_SHORTVER)))) -$(call set_if_empty,CPUTYPE,athlon64) +$(call set_if_empty,CPUTYPE,generic) CFLAGS+=-m32 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -967,18 +969,8 @@ ifeq ($(CC_NAME), gcc) #common stuff CFLAGS=-g $(CC_OPT) -funroll-loops -Wcast-align $(PROFILE) #if gcc 4.5+ - # don't add '-mtune=$(CPUTYPE)' - gcc failure -ifeq ($(CC_SHORTVER),$(filter $(CC_SHORTVER),4.5+ 5.0+ 6.0+ 7.0+ 8.0+)) -$(call set_if_empty,CPUTYPE,opteron) - CFLAGS+=-m64 -minline-all-stringops \ - -falign-loops \ - -ftree-vectorize \ - -fno-strict-overflow - LDFLAGS+=-m64 -else - #if gcc 4.2+ -ifeq ($(CC_SHORTVER), 4.2+) -$(call set_if_empty,CPUTYPE,opteron) +ifeq ($(CC_SHORTVER),$(filter $(CC_SHORTVER),4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+)) +$(call set_if_empty,CPUTYPE,generic) CFLAGS+=-m64 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -988,7 +980,7 @@ $(call set_if_empty,CPUTYPE,opteron) else #if gcc 4.0+ ifeq ($(CC_SHORTVER), 4.x) -$(call set_if_empty,CPUTYPE,opteron) +$(call set_if_empty,CPUTYPE,athlon64) CFLAGS+=-m64 -minline-all-stringops \ -falign-loops \ -ftree-vectorize \ @@ -1026,7 +1018,6 @@ endif # CC_SHORTVER, 2.9x endif # CC_SHORTVER, 3.0 endif # CC_SHORTVER, 3.4 endif # CC_SHORTVER, 4.x -endif # CC_SHORTVER, 4.2+ endif # CC_SHORTVER, 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ else # CC_NAME, gcc @@ -2104,7 +2095,8 @@ saved_chg_vars:=\ cfg_prefix cfg_dir bin_prefix bin_dir modules_prefix modules_dir \ doc_prefix doc_dir man_prefix man_dir ut_prefix ut_dir \ share_prefix share_dir lib_prefix lib_dir data_prefix data_dir \ - cfg_target lib_target data_target run_prefix run_dir run_target + cfg_target lib_target data_target run_prefix run_dir run_target \ + share_target #export relevant variables to the sub-makes diff --git a/src/Makefile.groups b/src/Makefile.groups index 52bad0b12..04a5ae730 100644 --- a/src/Makefile.groups +++ b/src/Makefile.groups @@ -19,9 +19,10 @@ mod_list_basic=async auth benchmark blst cfg_rpc cfgutils corex counters \ # - extra used modules, with no extra dependency mod_list_extra=avp auth_diameter call_control call_obj dmq domainpolicy msrp \ - pdb qos sca seas sms sst timer tmrec uac_redirect xhttp \ - xhttp_rpc xprint jsonrpcs nosip dmq_usrloc statsd rtjson \ - log_custom keepalive ss7ops app_sqlang acc_diameter evrexec + carrierroute pdb qos sca seas sms sst timer tmrec uac_redirect \ + xhttp xhttp_rpc xprint jsonrpcs nosip dmq_usrloc statsd rtjson \ + log_custom keepalive ss7ops app_sqlang acc_diameter evrexec \ + sipjson # - common modules depending on database mod_list_db=acc alias_db auth_db avpops cfg_db db_text db_flatstore \ @@ -71,9 +72,6 @@ mod_list_snmpstats=snmpstats # - modules depending on expat library mod_list_xmpp=xmpp -# - modules depending on confuse library -mod_list_carrierroute=carrierroute - # - modules depending on bdb (db4) library mod_list_berkeley=db_berkeley @@ -125,9 +123,15 @@ mod_list_perldeps=app_perl db_perlvdb # - modules depending on python library mod_list_python=app_python +# - modules depending on python3 library +mod_list_python3=app_python3 + # - modules depending on libm (math library - standard system library) mod_list_jsdt=app_jsdt +# - modules depending on ruby library +mod_list_ruby=app_ruby + # - modules depending on geoip library mod_list_geoip=geoip @@ -141,19 +145,19 @@ mod_list_sqlite=db_sqlite mod_list_oracle=db_oracle # - modules depending on json library -mod_list_json=json +mod_list_json=json pua_json # - modules depending on json (+libevent) library mod_list_json_event=jsonrpcc # - modules depending on jansson library -mod_list_jansson=jansson +mod_list_jansson=jansson acc_json # - modules depending on jansson (+libevent) library mod_list_jansson_event=janssonrpcc # - modules depending on redis library -mod_list_redis=ndb_redis topos_redis +mod_list_redis=db_redis ndb_redis topos_redis # - modules depending on mono library mod_list_mono=app_mono @@ -161,7 +165,8 @@ mod_list_mono=app_mono # - modules related to IMS extensions mod_list_ims=cdp cdp_avp ims_dialog ims_auth ims_isc ims_icscf ims_qos \ ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf \ - ims_usrloc_scscf ims_charging ims_ocs ims_diameter_server + ims_usrloc_scscf ims_charging ims_ocs ims_diameter_server \ + ims_ipsec_pcscf # - modules depending on osp toolkit library mod_list_osp=osp @@ -210,13 +215,14 @@ mod_list_all=$(sort $(mod_list_basic) $(mod_list_extra) \ $(mod_list_mysql) $(mod_list_postgres) \ $(mod_list_unixodbc) $(mod_list_xmldeps) \ $(mod_list_perldeps) $(mod_list_cpl) \ - $(mod_list_xmpp) $(mod_list_carrierroute) \ + $(mod_list_xmpp) \ $(mod_list_berkeley) $(mod_list_utils) \ $(mod_list_memcached) \ $(mod_list_tlsdeps) $(mod_list_tlsdeps_curl) \ $(mod_list_websocket) \ $(mod_list_snmpstats) $(mod_list_presence) \ $(mod_list_lua) $(mod_list_python) \ + $(mod_list_python3) $(mod_list_ruby) \ $(mod_list_geoip) $(mod_list_sqlite) \ $(mod_list_json) $(mod_list_json_event) \ $(mod_list_redis) \ @@ -330,9 +336,6 @@ module_group_ksnmpstats=$(mod_list_snmpstats) # pkg xmpp module module_group_kxmpp=$(mod_list_xmpp) -# pkg carrierroute module -module_group_kcarrierroute=$(mod_list_carrierroute) - # pkg berkeley module module_group_kberkeley=$(mod_list_berkeley) @@ -366,6 +369,12 @@ module_group_klua=$(mod_list_lua) # pkg python module module_group_kpython=$(mod_list_python) +# pkg python3 module +module_group_kpython3=$(mod_list_python3) + +# pkg ruby module +module_group_kruby=$(mod_list_ruby) + # pkg geoip module module_group_kgeoip=$(mod_list_geoip) diff --git a/src/Makefile.modules b/src/Makefile.modules index 8649db275..7c3722d03 100644 --- a/src/Makefile.modules +++ b/src/Makefile.modules @@ -61,13 +61,6 @@ override static_modules_path= DEFS += -DMOD_NAME='"$(MOD_NAME)"' -ifeq (,$(findstring -DSER_MOD_INTERFACE, $(DEFS))) - MODIFACE=-DKAMAILIO_MOD_INTERFACE -else - MODIFACE=-DSER_MOD_INTERFACE -endif - - ifneq ($(makefile_defs_included),1) $(error "the local makefile does not include Makefile.defs!") endif diff --git a/src/core/action.c b/src/core/action.c index 374ba756a..e7829c38b 100644 --- a/src/core/action.c +++ b/src/core/action.c @@ -299,7 +299,7 @@ int do_action(struct run_act_ctx* h, struct action* a, struct sip_msg* msg) struct dest_info dst; char* tmp; char *new_uri, *end, *crt; - sr31_cmd_export_t* cmd; + ksr_cmd_export_t* cmd; int len; int user; struct sip_uri uri, next_hop; @@ -1527,8 +1527,9 @@ int run_actions(struct run_act_ctx* h, struct action* a, struct sip_msg* msg) { struct action* t; int ret; - struct sr_module *mod; - unsigned int ms = 0; + struct timeval tvb, tve; + struct timezone tz; + unsigned int tdiff; ret=E_UNSPEC; h->rec_lev++; @@ -1556,8 +1557,11 @@ int run_actions(struct run_act_ctx* h, struct action* a, struct sip_msg* msg) } for (t=a; t!=0; t=t->next){ - if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0)) - ms = TICKS_TO_MS(get_ticks_raw()); + + if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0) + && is_printable(cfg_get(core, core_cfg, latency_log))) { + gettimeofday(&tvb, &tz); + } _cfg_crt_action = t; if(unlikely(log_prefix_mode==1)) { log_prefix_set(msg); @@ -1567,16 +1571,19 @@ int run_actions(struct run_act_ctx* h, struct action* a, struct sip_msg* msg) if(unlikely(log_prefix_mode==1)) { log_prefix_set(msg); } - if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0)) { - ms = TICKS_TO_MS(get_ticks_raw()) - ms; - if(ms >= cfg_get(core, core_cfg, latency_limit_action)) { + if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0) + && is_printable(cfg_get(core, core_cfg, latency_log))) { + gettimeofday(&tve, &tz); + tdiff = (tve.tv_sec - tvb.tv_sec) * 1000000 + + (tve.tv_usec - tvb.tv_usec); + if(tdiff >= cfg_get(core, core_cfg, latency_limit_action)) { LOG(cfg_get(core, core_cfg, latency_log), "alert - action [%s (%d)]" - " cfg [%s:%d] took too long [%u ms]\n", + " cfg [%s:%d] took too long [%u us]\n", is_mod_func(t) ? - ((cmd_export_common_t*)(t->val[0].u.data))->name + ((cmd_export_t*)(t->val[0].u.data))->name : "corefunc", - t->type, (t->cfile)?t->cfile:"", t->cline, ms); + t->type, (t->cfile)?t->cfile:"", t->cline, tdiff); } } /* break, return or drop/exit stop execution of the current @@ -1596,13 +1603,6 @@ int run_actions(struct run_act_ctx* h, struct action* a, struct sip_msg* msg) h->rec_lev--; end: - /* process module onbreak handlers if present */ - if (unlikely(h->rec_lev==0 && ret==0 && - !(h->run_flags & IGNORE_ON_BREAK_R_F))) - for (mod=modules;mod;mod=mod->next) - if (unlikely(mod->exports.onbreak_f)) { - mod->exports.onbreak_f( msg ); - } return ret; @@ -1624,7 +1624,7 @@ int run_actions_safe(struct run_act_ctx* h, struct action* a, struct run_act_ctx ctx; int ret; int ign_on_break; - + /* start with a fresh action context */ init_run_actions_ctx(&ctx); ctx.last_retcode = h->last_retcode; @@ -1663,26 +1663,44 @@ int run_top_route(struct action* a, sip_msg_t* msg, struct run_act_ctx *c) int run_child_one_init_route(void) { struct sip_msg *fmsg; - struct run_act_ctx ctx; + run_act_ctx_t ctx; + run_act_ctx_t *bctx; int rtb, rt; + sr_kemi_eng_t *keng = NULL; + str evname = str_init("core:worker-one-init"); - LM_DBG("attempting to run event_route[core:worker-one-init]\n"); + LM_DBG("attempting to run event_route[%s]\n", evname.s); - rt = route_get(&event_rt, "core:worker-one-init"); - if(rt>=0 && event_rt.rlist[rt]!=NULL) { - LM_DBG("executing event_route[core:worker-one-init] (%d)\n", rt); + if(kemi_event_route_callback.s!=NULL && kemi_event_route_callback.len>0) { + keng = sr_kemi_eng_get(); + rt = -1; + } else { + rt = route_get(&event_rt, evname.s); + } + if((keng!=NULL) || (rt>=0 && event_rt.rlist[rt]!=NULL)) { if (cfg_child_init()) { return -1; } + LM_DBG("executing event_route[%s] (%d)\n", evname.s, rt); if(faked_msg_init()<0) return -1; fmsg = faked_msg_next(); rtb = get_route_type(); set_route_type(REQUEST_ROUTE); init_run_actions_ctx(&ctx); - run_top_route(event_rt.rlist[rt], fmsg, &ctx); - if(ctx.run_flags&DROP_R_F) - { + if(keng==NULL) { + run_top_route(event_rt.rlist[rt], fmsg, &ctx); + } else { + bctx = sr_kemi_act_ctx_get(); + sr_kemi_act_ctx_set(&ctx); + if(sr_kemi_route(keng, fmsg, EVENT_ROUTE, + &kemi_event_route_callback, &evname)<0) { + LM_ERR("error running event route kemi callback\n"); + return -1; + } + sr_kemi_act_ctx_set(bctx); + } + if(ctx.run_flags&DROP_R_F) { LM_ERR("exit due to 'drop' in event route\n"); return -1; } diff --git a/src/core/async_task.c b/src/core/async_task.c index ab2376a44..870241b0d 100644 --- a/src/core/async_task.c +++ b/src/core/async_task.c @@ -47,6 +47,7 @@ static int _async_task_workers = 0; static int _async_task_sockets[2]; static int _async_task_usleep = 0; +static int _async_nonblock = 0; int async_task_run(int idx); @@ -74,10 +75,24 @@ int async_task_workers_active(void) */ int async_task_init_sockets(void) { + int val; + if (socketpair(PF_UNIX, SOCK_DGRAM, 0, _async_task_sockets) < 0) { LM_ERR("opening tasks dgram socket pair\n"); return -1; } + + if (_async_nonblock) { + val = fcntl(_async_task_sockets[1], F_GETFL, 0); + if(val<0) { + LM_WARN("failed to get socket flags\n"); + } else { + if(fcntl(_async_task_sockets[1], F_SETFL, val | O_NONBLOCK)<0) { + LM_WARN("failed to set socket nonblock flag\n"); + } + } + } + LM_DBG("inter-process event notification sockets initialized\n"); return 0; } @@ -194,6 +209,17 @@ int async_task_set_workers(int n) return 0; } +/** + * + */ +int async_task_set_nonblock(int n) +{ + if(n>0) + _async_nonblock = 1; + + return 0; +} + /** * */ diff --git a/src/core/async_task.h b/src/core/async_task.h index 55c558c30..5faa88457 100644 --- a/src/core/async_task.h +++ b/src/core/async_task.h @@ -35,6 +35,7 @@ int async_task_init(void); int async_task_child_init(int rank); int async_task_initialized(void); int async_task_set_workers(int n); +int async_task_set_nonblock(int n); int async_task_push(async_task_t *task); int async_task_set_usleep(int n); int async_task_workers_get(void); diff --git a/src/core/autover.h b/src/core/autover.h index 1c67fc732..2890c424f 100644 --- a/src/core/autover.h +++ b/src/core/autover.h @@ -2,6 +2,6 @@ * DO NOT EDIT IT */ -#define REPO_VER "c7a172" -#define REPO_HASH "c7a172" +#define REPO_VER "c36229" +#define REPO_HASH "c36229" #define REPO_STATE "" diff --git a/src/core/basex.c b/src/core/basex.c index 73e333f0b..592ea0cd9 100644 --- a/src/core/basex.c +++ b/src/core/basex.c @@ -342,7 +342,7 @@ char* b58_decode(char *outb, int *outbszp, char *b58, int b58sz) /** * encode raw data (of size binsz) into base58 format stored in b58 * - *b58sz gives the size of b58 buffer - * - *b58sz is updated to the lenght of result + * - *b58sz is updated to the length of result * - b58 is 0-terminated * - return NULL on failure or b58 */ diff --git a/src/core/basex.h b/src/core/basex.h index a7129d5b0..1c5af1c78 100644 --- a/src/core/basex.h +++ b/src/core/basex.h @@ -249,9 +249,9 @@ extern unsigned char _bx_ub64[0x54+1]; -/*! \brief lenght needed for encoding l bytes */ +/*! \brief length needed for encoding l bytes */ #define base16_enc_len(l) (l*2) -/*! \brief maximum lenght needed for decoding l bytes */ +/*! \brief maximum length needed for decoding l bytes */ #define base16_max_dec_len(l) (l/2) /*! \brief actual space needed for decoding a string b of size l */ #define base16_dec_len(b, l) base16_max_dec_len(l) diff --git a/src/core/cfg.lex b/src/core/cfg.lex index cd6808d06..6a0d23d76 100644 --- a/src/core/cfg.lex +++ b/src/core/cfg.lex @@ -293,6 +293,8 @@ LOGPREFIX log_prefix LOGPREFIXMODE log_prefix_mode LOGENGINETYPE log_engine_type LOGENGINEDATA log_engine_data +XAVPVIAPARAMS xavp_via_params +XAVPVIAFIELDS xavp_via_fields LISTEN listen ADVERTISE advertise|ADVERTISE ALIAS alias @@ -337,7 +339,7 @@ DST_BLST_TCP_IMASK dst_blacklist_tcp_imask DST_BLST_TLS_IMASK dst_blacklist_tls_imask DST_BLST_SCTP_IMASK dst_blacklist_sctp_imask -IP_FREE_BIND ip_free_bind|ip_freebind|ipfreebind +IP_FREE_BIND ip_free_bind|ipfreebind|ip_nonlocal_bind PORT port STAT statistics @@ -347,6 +349,7 @@ CHILDREN children SOCKET_WORKERS socket_workers ASYNC_WORKERS async_workers ASYNC_USLEEP async_usleep +ASYNC_NONBLOCK async_nonblock CHECK_VIA check_via PHONE2TEL phone2tel MEMLOG "memlog"|"mem_log" @@ -444,6 +447,12 @@ VERSION_TABLE_CFG "version_table" VERBOSE_STARTUP "verbose_startup" SERVER_ID "server_id" +ROUTE_LOCKS_SIZE "route_locks_size" + +KEMI "kemi" +ONSEND_ROUTE_CALLBACK "onsend_route_callback" +REPLY_ROUTE_CALLBACK "reply_route_callback" +EVENT_ROUTE_CALLBACK "event_route_callback" MAX_RECURSIVE_LEVEL "max_recursive_level" MAX_BRANCHES_PARAM "max_branches" @@ -688,6 +697,8 @@ IMPORTFILE "import_file" {LOGPREFIXMODE} { yylval.strval=yytext; return LOGPREFIXMODE; } {LOGENGINETYPE} { yylval.strval=yytext; return LOGENGINETYPE; } {LOGENGINEDATA} { yylval.strval=yytext; return LOGENGINEDATA; } +{XAVPVIAPARAMS} { yylval.strval=yytext; return XAVPVIAPARAMS; } +{XAVPVIAFIELDS} { yylval.strval=yytext; return XAVPVIAFIELDS; } {LISTEN} { count(); yylval.strval=yytext; return LISTEN; } {ADVERTISE} { count(); yylval.strval=yytext; return ADVERTISE; } {ALIAS} { count(); yylval.strval=yytext; return ALIAS; } @@ -772,6 +783,7 @@ IMPORTFILE "import_file" {SOCKET_WORKERS} { count(); yylval.strval=yytext; return SOCKET_WORKERS; } {ASYNC_WORKERS} { count(); yylval.strval=yytext; return ASYNC_WORKERS; } {ASYNC_USLEEP} { count(); yylval.strval=yytext; return ASYNC_USLEEP; } +{ASYNC_NONBLOCK} { count(); yylval.strval=yytext; return ASYNC_NONBLOCK; } {CHECK_VIA} { count(); yylval.strval=yytext; return CHECK_VIA; } {PHONE2TEL} { count(); yylval.strval=yytext; return PHONE2TEL; } {MEMLOG} { count(); yylval.strval=yytext; return MEMLOG; } @@ -928,7 +940,12 @@ IMPORTFILE "import_file" {VERSION_TABLE_CFG} { count(); yylval.strval=yytext; return VERSION_TABLE_CFG;} {VERBOSE_STARTUP} { count(); yylval.strval=yytext; return VERBOSE_STARTUP; } +{ROUTE_LOCKS_SIZE} { count(); yylval.strval=yytext; return ROUTE_LOCKS_SIZE; } {SERVER_ID} { count(); yylval.strval=yytext; return SERVER_ID;} +{KEMI} { count(); yylval.strval=yytext; return KEMI;} +{REPLY_ROUTE_CALLBACK} { count(); yylval.strval=yytext; return REPLY_ROUTE_CALLBACK;} +{ONSEND_ROUTE_CALLBACK} { count(); yylval.strval=yytext; return ONSEND_ROUTE_CALLBACK;} +{EVENT_ROUTE_CALLBACK} { count(); yylval.strval=yytext; return EVENT_ROUTE_CALLBACK;} {MAX_RECURSIVE_LEVEL} { count(); yylval.strval=yytext; return MAX_RECURSIVE_LEVEL;} {MAX_BRANCHES_PARAM} { count(); yylval.strval=yytext; return MAX_BRANCHES_PARAM;} {LATENCY_LOG} { count(); yylval.strval=yytext; return LATENCY_LOG;} @@ -1690,8 +1707,8 @@ static int sr_pop_yy_state() /* define/ifdef support */ -#define MAX_DEFINES 256 -static str pp_defines[MAX_DEFINES][2]; +#define MAX_DEFINES 512 +static ksr_ppdefine_t pp_defines[MAX_DEFINES]; static int pp_num_defines = 0; static int pp_define_type = 0; static int pp_define_index = -1; @@ -1700,7 +1717,7 @@ static int pp_define_index = -1; * ifdef(defined), ifndef(undefined), or the opposite of these * two, but in an else branch */ -#define MAX_IFDEFS 256 +#define MAX_IFDEFS 512 static int pp_ifdef_stack[MAX_IFDEFS]; static int pp_sptr = 0; /* stack pointer */ @@ -1708,7 +1725,14 @@ str* pp_get_define_name(int idx) { if(idx<0 || idx>=pp_num_defines) return NULL; - return &pp_defines[idx][0]; + return &pp_defines[idx].name; +} + +ksr_ppdefine_t* pp_get_define(int idx) +{ + if(idx<0 || idx>=pp_num_defines) + return NULL; + return &pp_defines[idx]; } static int pp_lookup(int len, const char * text) @@ -1717,7 +1741,7 @@ static int pp_lookup(int len, const char * text) int i; for (i=0; ival[0].u.data = - find_export_record($1, mod_func_action->val[1].u.number, rt, - &u_tmp); + find_export_record($1, mod_func_action->val[1].u.number, rt); if (mod_func_action->val[0].u.data == 0) { - if (find_export_record($1, mod_func_action->val[1].u.number, 0, - &u_tmp) ) { + if (find_export_record($1, mod_func_action->val[1].u.number, 0) ) { LM_ERR("misused command %s\n", $1); yyerror("Command cannot be used in the block\n"); } else { @@ -3813,7 +3860,7 @@ static int case_check_default(struct case_stms* stms) */ static int mod_f_params_pre_fixup(struct action* a) { - sr31_cmd_export_t* cmd_exp; + ksr_cmd_export_t* cmd_exp; action_u_t* params; int param_no; struct rval_expr* rve; diff --git a/src/core/cfg/cfg_struct.h b/src/core/cfg/cfg_struct.h index 6436eed67..e03024e70 100644 --- a/src/core/cfg/cfg_struct.h +++ b/src/core/cfg/cfg_struct.h @@ -40,22 +40,24 @@ * When the config is shmzied, these variables are combined in * an array. */ +#pragma pack(push, 1) typedef struct _cfg_add_var { struct _cfg_add_var *next; unsigned int type; /*!< type == 0 is also valid, it indicates that the group must be created with the default values */ + unsigned int group_id; /*!< Id of the group instance */ union { char *ch; str s; int i; } val; - unsigned int group_id; /*!< Id of the group instance */ int name_len; /*!< Name of the variable. The variable may not be known, for example the additional group value is set in the script before the cfg group is declared. Hence, the pointer cannot be stored here. */ char name[1]; } cfg_add_var_t; +#pragma pack(pop) /*! \brief structure used for variable - pointer mapping */ typedef struct _cfg_mapping { @@ -72,6 +74,7 @@ typedef struct _cfg_mapping { enum { CFG_GROUP_UNKNOWN = 0, CFG_GROUP_DYNAMIC, CFG_GROUP_STATIC }; /*! \brief linked list of registered groups */ +#pragma pack(push, 1) typedef struct _cfg_group { int num; /*!< number of variables within the group */ cfg_mapping_t *mapping; /*!< describes the mapping betweeen @@ -103,9 +106,11 @@ typedef struct _cfg_group { int name_len; char name[1]; } cfg_group_t; +#pragma pack(pop) /*! \brief One instance of the cfg group variables which stores * the additional values. These values can overwrite the default values. */ +#pragma pack(push, 1) typedef struct _cfg_group_inst { unsigned int id; /*!< identifier of the group instance */ unsigned int set[CFG_MAX_VAR_NUM/(sizeof(int)*8)]; @@ -114,6 +119,7 @@ typedef struct _cfg_group_inst { then the default value is used, and copied into this instance. */ unsigned char vars[1]; /*!< block for the values */ } cfg_group_inst_t; +#pragma pack(pop) /*! \brief Meta-data which is stored before each variable group * within the blob. This structure is used to handle the multivalue @@ -125,6 +131,7 @@ typedef struct _cfg_group_meta { } cfg_group_meta_t; /*! \brief single memoy block that contains all the cfg values */ +#pragma pack(push, 1) typedef struct _cfg_block { atomic_t refcnt; /*!< reference counter, the block is automatically deleted @@ -132,6 +139,7 @@ typedef struct _cfg_block { int _pad; /*!< force 8 byte alignment */ unsigned char vars[1]; /*!< blob that contains the values */ } cfg_block_t; +#pragma pack(pop) /*! \brief Linked list of per-child process callbacks. * Each child process has a local pointer, and executes the callbacks diff --git a/src/core/char_msg_val.h b/src/core/char_msg_val.h index 4d6887d71..79461cd83 100644 --- a/src/core/char_msg_val.h +++ b/src/core/char_msg_val.h @@ -18,14 +18,6 @@ * @file * @ingroup core * \author andrei - * - * Defines: - * BRANCH_INCLUDE_FROMTO_BODY - if defined the old (pre 3.1) mode of - * including the full from & to bodies will be used (instead of only the - * tags). - * BRANCH_IGNORE_3261_VIA - if defined, no check and special/simpler handling - * of messages with 3261 cookies in the via branch will be made (same - * behaviour as in pre 3.1 versions). */ #ifndef __char_msg_val_h @@ -52,20 +44,6 @@ inline static int char_msg_val( struct sip_msg *msg, char *cv ) memset( cv, '0', MD5_LEN ); return 0; } -#ifndef BRANCH_IGNORE_3261_VIA - if (likely(msg->via1->branch && msg->via1->branch->value.len>MCOOKIE_LEN && - memcmp(msg->via1->branch->value.s, MCOOKIE, MCOOKIE_LEN)==0)){ - /* 3261 branch cookie present => hash only the received branch ID */ - src[0]=msg->via1->branch->value; - MD5StringArray ( cv, src, 1 ); - return 1; /* success */ - } -#endif /* BRANCH_IGNORE_3261_VIA */ -#ifdef BRANCH_INCLUDE_FROMTO_BODY - /* use the from & to full bodies */ - src[0]= msg->from->body; - src[1]= msg->to->body; -#else /* to body is automatically parsed (via check_transactionquadruple / parse_header), but the from body has to be parsed manually */ if (msg->from->parsed==0){ @@ -78,7 +56,6 @@ inline static int char_msg_val( struct sip_msg *msg, char *cv ) /* use only the from & to tags */ src[0]=get_from(msg)->tag_value; src[1]=get_to(msg)->tag_value; -#endif /* BRANCH_INCLUDE_FROMTO_BODY */ src[2]= msg->callid->body; src[3]= msg->first_line.u.request.uri; src[4]= get_cseq( msg )->number; diff --git a/src/core/compiler_opt.h b/src/core/compiler_opt.h index b78424930..2f38b53cc 100644 --- a/src/core/compiler_opt.h +++ b/src/core/compiler_opt.h @@ -18,7 +18,6 @@ * \file * \brief Kamailio core :: Compiler specific optimizations * \see \ref CompilerOptions - * \auth Andrei * * \ingroup core * Module: \ref core diff --git a/src/core/config.h b/src/core/config.h index e87288f73..bdc765736 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -186,18 +186,10 @@ #define PATH_MAX_GUESS 1024 /*!< maximum path length */ -#if defined KAMAILIO_MOD_INTERFACE || defined OPENSER_MOD_INTERFACE || \ - defined MOD_INTERFACE_V1 - #define DEFAULT_DB_URL "mysql://kamailio:kamailiorw@localhost/kamailio" - #define DEFAULT_DB_URL_LEN (sizeof(DEFAULT_DB_URL) - 1) - #define DEFAULT_RODB_URL "mysql://kamailioro:kamailioro@localhost/kamailio" - #define DEFAULT_RODB_URL_LEN (sizeof(DEFAULT_RODB_URL) - 1) -#else - #define DEFAULT_DB_URL "mysql://ser:heslo@localhost/ser" - #define DEFAULT_DB_URL_LEN (sizeof(DEFAULT_DB_URL) - 1) - #define DEFAULT_RODB_URL "mysql://serro:47serro11@localhost/ser" - #define DEFAULT_RODB_URL_LEN (sizeof(DEFAULT_RODB_URL) - 1) -#endif +#define DEFAULT_DB_URL "mysql://kamailio:kamailiorw@localhost/kamailio" +#define DEFAULT_DB_URL_LEN (sizeof(DEFAULT_DB_URL) - 1) +#define DEFAULT_RODB_URL "mysql://kamailioro:kamailioro@localhost/kamailio" +#define DEFAULT_RODB_URL_LEN (sizeof(DEFAULT_RODB_URL) - 1) #define VERSION_TABLE "version" /*!< table holding versions of other ser tables */ #define VERSION_TABLE_LEN (sizeof(VERSION_TABLE) - 1) diff --git a/src/core/core_cmd.c b/src/core/core_cmd.c index 4dc555467..9acc5361b 100644 --- a/src/core/core_cmd.c +++ b/src/core/core_cmd.c @@ -998,6 +998,44 @@ static void core_ppdefines(rpc_t* rpc, void* c) } } +/** + * + */ +static const char* core_ppdefines_full_doc[] = { + "List preprocessor defines with full details", /* Documentation string */ + 0 /* Method signature(s) */ +}; + +/** + * list listen sockets for SIP server + */ +static void core_ppdefines_full(rpc_t* rpc, void* c) +{ + ksr_ppdefine_t *ppdef; + void *vp; + int i=0; + + while((ppdef=pp_get_define(i))!=NULL && ppdef->name.s!=NULL) { + if (rpc->add(c, "{", &vp) < 0) { + rpc->fault(c, 500, "Server Failure"); + return; + } + if(ppdef->value.s!=NULL) { + rpc->struct_add(vp, "SdS", + "name", &ppdef->name, + "type", ppdef->dtype, + "value", &ppdef->value); + } else { + rpc->struct_add(vp, "Sds", + "name", &ppdef->name, + "type", ppdef->dtype, + "value", "none"); + } + + i++; + } +} + /* * RPC Methods exported by core */ @@ -1034,8 +1072,9 @@ static rpc_export_t core_rpc_methods[] = { 0}, {"core.aliases_list", core_aliases_list, core_aliases_list_doc, 0}, {"core.sockets_list", core_sockets_list, core_sockets_list_doc, 0}, - {"core.modules", core_modules, core_modules_doc, RET_ARRAY}, - {"core.ppdefines", core_ppdefines, core_ppdefines_doc, RET_ARRAY}, + {"core.modules", core_modules, core_modules_doc, RET_ARRAY}, + {"core.ppdefines", core_ppdefines, core_ppdefines_doc, RET_ARRAY}, + {"core.ppdefines_full", core_ppdefines_full, core_ppdefines_full_doc, RET_ARRAY}, #ifdef USE_DNS_CACHE {"dns.mem_info", dns_cache_mem_info, dns_cache_mem_info_doc, 0 }, diff --git a/src/core/dns_cache.c b/src/core/dns_cache.c index 6363cefe3..e60be2cd0 100644 --- a/src/core/dns_cache.c +++ b/src/core/dns_cache.c @@ -57,7 +57,6 @@ -#define DNS_CACHE_DEBUG /* extra sanity checks and debugging */ #ifndef MAX @@ -102,9 +101,7 @@ struct dns_hash_head{ struct dns_hash_entry* prev; }; -#ifdef DNS_LU_LST struct dns_lu_lst* dns_last_used_lst=0; -#endif static struct dns_hash_head* dns_hash=0; @@ -150,9 +147,7 @@ const char* dns_strerror(int err) /* "internal" only, don't use unless you really know waht you're doing */ inline static void dns_destroy_entry(struct dns_hash_entry* e) { -#ifdef DNS_CACHE_DEBUG memset(e, 0, e->total_size); -#endif shm_free(e); /* nice having it in one block isn't it? :-) */ } @@ -160,9 +155,7 @@ inline static void dns_destroy_entry(struct dns_hash_entry* e) /* "internal" only, same as above, asumes shm_lock() held (tm optimization) */ inline static void dns_destroy_entry_shm_unsafe(struct dns_hash_entry* e) { -#ifdef DNS_CACHE_DEBUG memset(e, 0, e->total_size); -#endif shm_free_unsafe(e); /* nice having it in one block isn't it? :-) */ } @@ -233,12 +226,10 @@ void destroy_dns_cache() shm_free(dns_hash); dns_hash=0; } -#ifdef DNS_LU_LST if (dns_last_used_lst){ shm_free(dns_last_used_lst); dns_last_used_lst=0; } -#endif #ifdef USE_DNS_CACHE_STATS if (dns_cache_stats) shm_free(dns_cache_stats); @@ -347,17 +338,15 @@ int init_dns_cache() ret=E_OUT_OF_MEM; goto error; } - *dns_cache_mem_used=0; -#ifdef DNS_LU_LST dns_last_used_lst=shm_malloc(sizeof(*dns_last_used_lst)); if (dns_last_used_lst==0){ ret=E_OUT_OF_MEM; goto error; } clist_init(dns_last_used_lst, next, prev); -#endif + dns_hash=shm_malloc(sizeof(struct dns_hash_head)*DNS_HASH_SIZE); if (dns_hash==0){ ret=E_OUT_OF_MEM; @@ -444,9 +433,6 @@ int init_dns_cache_stats(int iproc_num) -#ifdef DNS_CACHE_DEBUG -#define DEBUG_LU_LST -#ifdef DEBUG_LU_LST #include /* abort() */ #define check_lu_lst(l) ((((l)->next==(l)) || ((l)->prev==(l))) && \ @@ -478,8 +464,6 @@ int init_dns_cache_stats(int iproc_num) } \ }while(0) -#endif -#endif /* DNS_CACHE_DEBUG */ /* must be called with the DNS_LOCK hold @@ -488,21 +472,11 @@ int init_dns_cache_stats(int iproc_num) inline static void _dns_hash_remove(struct dns_hash_entry* e) { clist_rm(e, next, prev); -#ifdef DNS_CACHE_DEBUG e->next=e->prev=0; -#endif -#ifdef DNS_LU_LST -#ifdef DEBUG_LU_LST debug_lu_lst("_dns_hash_remove: pre rm:", &e->last_used_lst); -#endif clist_rm(&e->last_used_lst, next, prev); -#ifdef DEBUG_LU_LST debug_lu_lst("_dns_hash_remove: post rm:", &e->last_used_lst); -#endif -#ifdef DNS_CACHE_DEBUG e->last_used_lst.next=e->last_used_lst.prev=0; -#endif -#endif *dns_cache_mem_used-=e->total_size; dns_hash_put(e); } @@ -545,9 +519,7 @@ inline static struct dns_hash_entry* _dns_hash_find(str* name, int type, } again: *h=dns_hash_no(name->s, name->len, type); -#ifdef DNS_CACHE_DEBUG LM_DBG("(%.*s(%d), %d), h=%d\n", name->len, name->s, name->len, type, *h); -#endif clist_foreach_safe(&dns_hash[*h], e, tmp, next){ if ( #ifdef DNS_WATCHDOG_SUPPORT @@ -562,17 +534,11 @@ again: }else if ((e->type==type) && (e->name_len==name->len) && (strncasecmp(e->name, name->s, e->name_len)==0)){ e->last_used=now; -#ifdef DNS_LU_LST /* add it at the end */ -#ifdef DEBUG_LU_LST debug_lu_lst("_dns_hash_find: pre rm:", &e->last_used_lst); -#endif clist_rm(&e->last_used_lst, next, prev); clist_append(dns_last_used_lst, &e->last_used_lst, next, prev); -#ifdef DEBUG_LU_LST debug_lu_lst("_dns_hash_find: post append:", &e->last_used_lst); -#endif -#endif return e; }else if ((e->type==T_CNAME) && !((e->rr_lst==0) || (e->ent_flags & DNS_FLAG_BAD_NAME)) && @@ -581,18 +547,12 @@ again: /*if CNAME matches and CNAME is entry is not a neg. cache entry (could be produced by a specific CNAME lookup)*/ e->last_used=now; -#ifdef DNS_LU_LST /* add it at the end */ -#ifdef DEBUG_LU_LST debug_lu_lst("_dns_hash_find: cname: pre rm:", &e->last_used_lst); -#endif clist_rm(&e->last_used_lst, next, prev); clist_append(dns_last_used_lst, &e->last_used_lst, next, prev); -#ifdef DEBUG_LU_LST debug_lu_lst("_dns_hash_find: cname: post append:", &e->last_used_lst); -#endif -#endif ret=e; /* if this is an unfinished cname chain, we try to return the last cname */ /* this is a cname => retry using its value */ @@ -628,20 +588,13 @@ inline static int dns_cache_clean(unsigned int no, int expired_only) ticks_t now; unsigned int n; unsigned int deleted; -#ifdef DNS_LU_LST struct dns_lu_lst* l; struct dns_lu_lst* tmp; -#else - struct dns_hash_entry* t; - unsigned int h; - static unsigned int start=0; -#endif n=0; deleted=0; now=get_ticks_raw(); LOCK_DNS_HASH(); -#ifdef DNS_LU_LST clist_foreach_safe(dns_last_used_lst, l, tmp, next){ e=(struct dns_hash_entry*)(((char*)l)- (char*)&((struct dns_hash_entry*)(0))->last_used_lst); @@ -654,35 +607,6 @@ inline static int dns_cache_clean(unsigned int no, int expired_only) n++; if (n>=no) break; } -#else - for(h=start; h!=(start+DNS_HASH_SIZE); h++){ - clist_foreach_safe(&dns_hash[h%DNS_HASH_SIZE], e, t, next){ - if (((e->ent_flags & DNS_FLAG_PERMANENT) == 0) - && ((s_ticks_t)(now-e->expire)>=0) - ) { - _dns_hash_remove(e); - deleted++; - } - n++; - if (n>=no) goto skip; - } - } - /* not fair, but faster then random() */ - if (!expired_only){ - for(h=start; h!=(start+DNS_HASH_SIZE); h++){ - clist_foreach_safe(&dns_hash[h%DNS_HASH_SIZE], e, t, next){ - if ((e->ent_flags & DNS_FLAG_PERMANENT) == 0) { - _dns_hash_remove(e); - deleted++; - } - n++; - if (n>=no) goto skip; - } - } - } -skip: - start=h; -#endif UNLOCK_DNS_HASH(); return deleted; } @@ -699,19 +623,12 @@ inline static int dns_cache_free_mem(unsigned int target, int expired_only) struct dns_hash_entry* e; ticks_t now; unsigned int deleted; -#ifdef DNS_LU_LST struct dns_lu_lst* l; struct dns_lu_lst* tmp; -#else - struct dns_hash_entry* t; - unsigned int h; - static unsigned int start=0; -#endif deleted=0; now=get_ticks_raw(); LOCK_DNS_HASH(); -#ifdef DNS_LU_LST clist_foreach_safe(dns_last_used_lst, l, tmp, next){ if (*dns_cache_mem_used<=target) break; e=(struct dns_hash_entry*)(((char*)l)- @@ -723,37 +640,6 @@ inline static int dns_cache_free_mem(unsigned int target, int expired_only) deleted++; } } -#else - for(h=start; h!=(start+DNS_HASH_SIZE); h++){ - clist_foreach_safe(&dns_hash[h%DNS_HASH_SIZE], e, t, next){ - if (*dns_cache_mem_used<=target) - goto skip; - if (((e->ent_flags & DNS_FLAG_PERMANENT) == 0) - && ((s_ticks_t)(now-e->expire)>=0) - ) { - _dns_hash_remove(e); - deleted++; - } - } - } - /* not fair, but faster then random() */ - if (!expired_only){ - for(h=start; h!=(start+DNS_HASH_SIZE); h++){ - clist_foreach_safe(&dns_hash[h%DNS_HASH_SIZE], e, t, next){ - if (*dns_cache_mem_used<=target) - goto skip; - if (((e->ent_flags & DNS_FLAG_PERMANENT) == 0) - && ((s_ticks_t)(now-e->expire)>=0) - ) { - _dns_hash_remove(e); - deleted++; - } - } - } - } -skip: - start=h; -#endif UNLOCK_DNS_HASH(); return deleted; } @@ -807,17 +693,13 @@ inline static int dns_cache_add(struct dns_hash_entry* e) } atomic_inc(&e->refcnt); h=dns_hash_no(e->name, e->name_len, e->type); -#ifdef DNS_CACHE_DEBUG LM_DBG("adding %.*s(%d) %d (flags=%0x) at %d\n", e->name_len, e->name, e->name_len, e->type, e->ent_flags, h); -#endif LOCK_DNS_HASH(); *dns_cache_mem_used+=e->total_size; /* no need for atomic ops, written only from within a lock */ clist_append(&dns_hash[h], e, next, prev); -#ifdef DNS_LU_LST clist_append(dns_last_used_lst, &e->last_used_lst, next, prev); -#endif UNLOCK_DNS_HASH(); return 0; } @@ -849,16 +731,13 @@ inline static int dns_cache_add_unsafe(struct dns_hash_entry* e) } atomic_inc(&e->refcnt); h=dns_hash_no(e->name, e->name_len, e->type); -#ifdef DNS_CACHE_DEBUG LM_DBG("adding %.*s(%d) %d (flags=%0x) at %d\n", e->name_len, e->name, e->name_len, e->type, e->ent_flags, h); -#endif *dns_cache_mem_used+=e->total_size; /* no need for atomic ops, written only from within a lock */ clist_append(&dns_hash[h], e, next, prev); -#ifdef DNS_LU_LST clist_append(dns_last_used_lst, &e->last_used_lst, next, prev); -#endif + return 0; } @@ -874,9 +753,7 @@ inline static struct dns_hash_entry* dns_cache_mk_bad_entry(str* name, int size; ticks_t now; -#ifdef DNS_CACHE_DEBUG LM_DBG("(%.*s, %d, %d, %d)\n", name->len, name->s, type, ttl, flags); -#endif size=sizeof(struct dns_hash_entry)+name->len-1+1; e=shm_malloc(size); if (e==0){ @@ -1220,9 +1097,7 @@ inline static struct dns_hash_entry* dns_cache_mk_rd_entry(str* name, int type, } *tail=0; /* mark the end of our tmp_lst */ if (size==0){ -#ifdef DNS_CACHE_DEBUG LM_DBG("entry %.*s (%d) not found\n", name->len, name->s, type); -#endif return 0; } /* compute size */ @@ -1750,10 +1625,8 @@ inline static struct dns_hash_entry* dns_get_related(struct dns_hash_entry* e, ret=0; l=e; -#ifdef DNS_CACHE_DEBUG LM_DBG("(%p (%.*s, %d), %d, *%p) (%d)\n", e, e->name_len, e->name, e->type, type, *records, cname_chain_len); -#endif clist_init(l, next, prev); if (type==e->type){ ret=e; @@ -2341,7 +2214,6 @@ retry: for (i=0; (irdata)->weight : 0, r_sums[i].r_sum); -#endif /* i is the winner */ *no = n; /* grp. start */ if(i < 8 * sizeof(*tried)) @@ -2765,10 +2636,8 @@ struct naptr_rdata* dns_naptr_sip_iterate(struct dns_rr* naptr_head, i++; continue; /* already tried */ } -#ifdef DNS_CACHE_DEBUG LM_DBG("found a valid sip NAPTR rr %.*s, proto %d\n", naptr->repl_len, naptr->repl, (int)naptr_proto); -#endif if ((naptr_proto_supported(naptr_proto))){ if (naptr_choose(&naptr_saved, &saved_proto, naptr, naptr_proto)) @@ -2778,10 +2647,8 @@ struct naptr_rdata* dns_naptr_sip_iterate(struct dns_rr* naptr_head, } if (naptr_saved){ /* found something */ -#ifdef DNS_CACHE_DEBUG LM_DBG("choosed NAPTR rr %.*s, proto %d tried: 0x%x\n", naptr_saved->repl_len, naptr_saved->repl, (int)saved_proto, *tried); -#endif *tried|=1<s=naptr_saved->repl; @@ -2844,10 +2711,8 @@ struct hostent* dns_naptr_sip_resolvehost(str* name, unsigned short* port, while(dns_naptr_sip_iterate(e->rr_lst, &tried_bmp, &srv_name, &n_proto)){ if ((he=dns_srv_get_he(&srv_name, port, dns_flags))!=0){ -#ifdef DNS_CACHE_DEBUG LM_DBG("(%.*s, %d, %d) srv, ret=%p\n", name->len, name->s, (int)*port, (int)*proto, he); -#endif dns_hash_put(e); *proto=n_proto; return he; @@ -3198,11 +3063,9 @@ inline static int dns_srv_resolve_ip(struct dns_srv_handle* h, } }while(ret<0); error: -#ifdef DNS_CACHE_DEBUG LM_DBG("(\"%.*s\", %d, %d), ret=%d, ip=%s\n", name->len, name->s, h->srv_no, h->ip_no, ret, ip?ZSW(ip_addr2a(ip)):""); -#endif return ret; } @@ -3295,10 +3158,8 @@ inline static int dns_srv_sip_resolve(struct dns_srv_handle* h, str* name, { h->proto = srv_proto_list[i].proto; if(proto) *proto = h->proto; -#ifdef DNS_CACHE_DEBUG LM_DBG("(%.*s, %d, %d), srv0, ret=%d\n", name->len, name->s, h->srv_no, h->ip_no, ret); -#endif return ret; } } @@ -3328,10 +3189,8 @@ inline static int dns_srv_sip_resolve(struct dns_srv_handle* h, str* name, *port=h->port; if (proto) *proto=h->proto; -#ifdef DNS_CACHE_DEBUG LM_DBG("(%.*s, %d, %d), ip, ret=%d\n", name->len, name->s, h->srv_no, h->ip_no, ret); -#endif return ret; } @@ -3403,10 +3262,8 @@ inline static int dns_naptr_sip_resolve(struct dns_srv_handle* h, str* name, dns_srv_handle_init(h); /* make sure h does not contain garbage from previous dns_srv_sip_resolve calls */ if ((ret=dns_srv_resolve_ip(h, &srv_name, ip, port, flags))>=0){ -#ifdef DNS_CACHE_DEBUG LM_DBG("(%.*s, %d, %d), srv0, ret=%d\n", name->len, name->s, h->srv_no, h->ip_no, ret); -#endif dns_hash_put(e); *proto=n_proto; h->proto=*proto; @@ -4139,9 +3996,7 @@ static struct dns_hash_entry *dns_cache_clone_entry(struct dns_hash_entry *e, memcpy(new, e, size); /* fix the values and pointers */ new->next = new->prev = NULL; -#ifdef DNS_LU_LST new->last_used_lst.next = new->last_used_lst.prev = NULL; -#endif new->rr_lst = (struct dns_rr*)translate_pointer((char*)new, (char*)e, (char*)new->rr_lst); atomic_set(&new->refcnt, 0); @@ -4464,7 +4319,7 @@ int dns_cache_add_record(unsigned short type, ); } if (!rr_p) { - LM_ERR("Failed to correct the orderd list of SRV resource records\n"); + LM_ERR("Failed to correct the ordered list of SRV resource records\n"); goto error; } diff --git a/src/core/dns_cache.h b/src/core/dns_cache.h index fc7b03760..3552e8392 100644 --- a/src/core/dns_cache.h +++ b/src/core/dns_cache.h @@ -58,7 +58,6 @@ /** @brief uncomment the define below for SRV weight based load balancing */ #define DNS_SRV_LB -#define DNS_LU_LST /** @brief dns functions return them as negative values (e.g. return -E_DNS_NO_IP) * @@ -132,20 +131,16 @@ struct dns_rr{ -#ifdef DNS_LU_LST struct dns_lu_lst{ /* last used ordered list */ struct dns_lu_lst* next; struct dns_lu_lst* prev; }; -#endif struct dns_hash_entry{ /* hash table links */ struct dns_hash_entry* next; struct dns_hash_entry* prev; -#ifdef DNS_LU_LST struct dns_lu_lst last_used_lst; -#endif struct dns_rr* rr_lst; atomic_t refcnt; ticks_t last_used; @@ -155,7 +150,7 @@ struct dns_hash_entry{ unsigned char ent_flags; /* entry flags: unresolvable/permanent */ unsigned char name_len; /* can be maximum 255 bytes */ char name[1]; /* variable length, name, null terminated - (actual lenght = name_len +1)*/ + (actual length = name_len +1)*/ }; diff --git a/src/core/dprint.h b/src/core/dprint.h index 67a4ac3d7..8a7a28387 100644 --- a/src/core/dprint.h +++ b/src/core/dprint.h @@ -221,10 +221,10 @@ void log_prefix_init(void); if (unlikely(log_stderr)) { \ if (unlikely(log_color)) dprint_color(__llevel); \ if(unlikely(log_prefix_val)) { \ - fprintf(stderr, "%.*s%2d(%d) %s: %s" fmt, \ - log_prefix_val->len, log_prefix_val->s, \ + fprintf(stderr, "%2d(%d) %s: %.*s%s" fmt, \ process_no, my_pid(), \ (lname)?(lname):LOG_LEVEL2NAME(__llevel), \ + log_prefix_val->len, log_prefix_val->s, \ (prefix) , __VA_ARGS__);\ } else { \ fprintf(stderr, "%2d(%d) %s: %s" fmt, \ @@ -239,9 +239,9 @@ void log_prefix_init(void); (((facility) != DEFAULT_FACILITY) ? \ (facility) : \ get_debug_facility(LOG_MNAME, LOG_MNAME_LEN)), \ - "%.*s%s: %s" fmt,\ - log_prefix_val->len, log_prefix_val->s, \ + "%s: %.*s%s" fmt,\ (lname)?(lname):LOG_LEVEL2NAME(__llevel),\ + log_prefix_val->len, log_prefix_val->s, \ (prefix) , __VA_ARGS__); \ } else { \ _km_log_func(LOG2SYSLOG_LEVEL(__llevel) |\ @@ -299,10 +299,10 @@ void log_prefix_init(void); if (unlikely(log_stderr)) { \ if (unlikely(log_color)) dprint_color(__llevel); \ if(unlikely(log_prefix_val)) { \ - fprintf(stderr, "%.*s%2d(%d) %s: %s" fmt, \ - log_prefix_val->len, log_prefix_val->s, \ + fprintf(stderr, "%2d(%d) %s: %.*s%s" fmt, \ process_no, my_pid(), \ (lname)?(lname):LOG_LEVEL2NAME(__llevel), \ + log_prefix_val->len, log_prefix_val->s, \ (prefix) , ## args);\ } else { \ fprintf(stderr, "%2d(%d) %s: %s" fmt, \ @@ -317,9 +317,9 @@ void log_prefix_init(void); (((facility) != DEFAULT_FACILITY) ? \ (facility) : \ get_debug_facility(LOG_MNAME, LOG_MNAME_LEN)), \ - "%.*s%s: %s" fmt,\ - log_prefix_val->len, log_prefix_val->s, \ + "%s: %.*s%s" fmt,\ (lname)?(lname):LOG_LEVEL2NAME(__llevel),\ + log_prefix_val->len, log_prefix_val->s, \ (prefix) , ## args); \ } else { \ _km_log_func(LOG2SYSLOG_LEVEL(__llevel) |\ diff --git a/src/core/dset.c b/src/core/dset.c index f6a4227d2..ff40c192a 100644 --- a/src/core/dset.c +++ b/src/core/dset.c @@ -323,13 +323,17 @@ void clear_branches(void) /** Add a new branch to the current transaction. - * @param msg - sip message, used for getting the uri if not specified (0). - * @param uri - uri, can be 0 (in which case the uri is taken from msg) - * @param dst_uri - destination uri, can be 0. - * @param path - path vector (passed in a string), can be 0. - * @param q - q value. - * @param flags - per branch flags. - * @param force_socket - socket that should be used when sending. + * @param msg sip message, used for getting the uri if not specified (0). + * @param uri uri, can be 0 (in which case the uri is taken from msg) + * @param dst_uri destination uri, can be 0. + * @param path path vector (passed in a string), can be 0. + * @param q q value. + * @param flags per branch flags. + * @param force_socket socket that should be used when sending. + * @param instance sip instance contact header param value + * @param reg_id reg-id contact header param value + * @param ruid ruid value from usrloc + * @param location_ua location user agent * * @return <0 (-1) on failure, 1 on success (script convention). */ diff --git a/src/core/flags.c b/src/core/flags.c index 7dacd469f..c20f45f67 100644 --- a/src/core/flags.c +++ b/src/core/flags.c @@ -27,6 +27,7 @@ #include +#include #include "sr_module.h" #include "dprint.h" #include "parser/msg_parser.h" @@ -253,74 +254,40 @@ int register_flag(char* name, int pos) -#ifdef _GET_AWAY - -/* wrapping functions for flag processing */ -static int fixup_t_flag(void** param, int param_no) +/** + * + */ +int setxflag(struct sip_msg* msg, flag_t flag) { - unsigned int *code; - char *c; - int token; - - LM_DBG("fixing flag: %s\n", (char *) (*param)); - - if (param_no!=1) { - LM_ERR("TM module: only parameter #1 for flags can be fixed\n"); - return E_BUG; - }; - - if ( !(code =pkg_malloc( sizeof( unsigned int) )) ) return E_OUT_OF_MEM; - - *code = 0; - c = *param; - while ( *c && (*c==' ' || *c=='\t')) c++; /* initial whitespaces */ - - token=1; - if (strcasecmp(c, "white")==0) *code=FL_WHITE; - else if (strcasecmp(c, "yellow")==0) *code=FL_YELLOW; - else if (strcasecmp(c, "green")==0) *code=FL_GREEN; - else if (strcasecmp(c, "red")==0) *code=FL_RED; - else if (strcasecmp(c, "blue")==0) *code=FL_BLUE; - else if (strcasecmp(c, "magenta")==0) *code=FL_MAGENTA; - else if (strcasecmp(c, "brown")==0) *code=FL_BROWN; - else if (strcasecmp(c, "black")==0) *code=FL_BLACK; - else if (strcasecmp(c, "acc")==0) *code=FL_ACC; - else { - token=0; - while ( *c && *c>='0' && *c<='9' ) { - *code = *code*10+ *c-'0'; - if (*code > (sizeof( flag_t ) * CHAR_BIT - 1 )) { - LM_ERR("TM module: too big flag number: %s; MAX=%d\n", - (char *) (*param), sizeof( flag_t ) * CHAR_BIT - 1 ); - goto error; - } - c++; - } - } - while ( *c && (*c==' ' || *c=='\t')) c++; /* terminating whitespaces */ - - if ( *code == 0 ) { - LM_ERR("TM module: bad flag number: %s\n", (char *) (*param)); - goto error; - } - - if (*code < FL_MAX && token==0) { - LM_ERR("TM module: too high flag number: %s (%d)\n; lower number" - " bellow %d reserved\n", (char *) (*param), *code, FL_MAX ); - goto error; - } - - /* free string */ - pkg_free( *param ); - /* fix now */ - *param = code; - - return 0; - -error: - pkg_free( code ); - return E_CFG; + uint32_t fi; + uint32_t fb; + fi = flag / (sizeof(flag_t)*CHAR_BIT); + fb = flag % (sizeof(flag_t)*CHAR_BIT); + msg->xflags[fi] |= 1 << fb; + return 1; } +/** + * + */ +int resetxflag(struct sip_msg* msg, flag_t flag) +{ + uint32_t fi; + uint32_t fb; + fi = flag / (sizeof(flag_t)*CHAR_BIT); + fb = flag % (sizeof(flag_t)*CHAR_BIT); + msg->xflags[fi] &= ~ (1 << fb); + return 1; +} -#endif +/** + * + */ +int isxflagset(struct sip_msg* msg, flag_t flag) +{ + uint32_t fi; + uint32_t fb; + fi = flag / (sizeof(flag_t)*CHAR_BIT); + fb = flag % (sizeof(flag_t)*CHAR_BIT); + return (msg->xflags[fi] & (1<run_flags |= EXIT_R_F|DROP_R_F; return 0; } @@ -188,6 +194,111 @@ static int sr_kemi_core_is_myself(sip_msg_t *msg, str *uri) return SR_KEMI_FALSE; } +/** + * + */ +static int sr_kemi_core_is_myself_ruri(sip_msg_t *msg) +{ + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + if(msg->first_line.type == SIP_REPLY) /* REPLY doesn't have a ruri */ + return SR_KEMI_FALSE; + + if (msg->new_uri.s!=NULL) + return sr_kemi_core_is_myself(msg, &msg->new_uri); + return sr_kemi_core_is_myself(msg, &msg->first_line.u.request.uri); +} + +/** + * + */ +static int sr_kemi_core_is_myself_furi(sip_msg_t *msg) +{ + to_body_t *xfrom; + + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + if(parse_from_header(msg)<0) { + LM_ERR("cannot parse From header\n"); + return SR_KEMI_FALSE; + } + + if(msg->from==NULL || get_from(msg)==NULL) { + LM_DBG("no From header\n"); + return SR_KEMI_FALSE; + } + + xfrom = get_from(msg); + + return sr_kemi_core_is_myself(msg, &xfrom->uri); +} + +/** + * + */ +static int sr_kemi_core_is_myself_turi(sip_msg_t *msg) +{ + to_body_t *xto; + + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + if(parse_to_header(msg)<0) { + LM_ERR("cannot parse To header\n"); + return SR_KEMI_FALSE; + } + + if(msg->to==NULL || get_to(msg)==NULL) { + LM_DBG("no To header\n"); + return SR_KEMI_FALSE; + } + + xto = get_to(msg); + + return sr_kemi_core_is_myself(msg, &xto->uri); +} + +/** + * + */ +static int sr_kemi_core_is_myself_suri(sip_msg_t *msg) +{ + str suri; + + if(get_src_uri(msg, 0, &suri)<0) { + LM_ERR("cannot src address uri\n"); + return SR_KEMI_FALSE; + } + + return sr_kemi_core_is_myself(msg, &suri); +} + +/** + * + */ +static int sr_kemi_core_is_myself_srcip(sip_msg_t *msg) +{ + str srcip; + int ret; + + srcip.s = ip_addr2a(&msg->rcv.src_ip); + srcip.len = strlen(srcip.s); + + ret = check_self(&srcip, 0, 0); + if(ret==1) { + return SR_KEMI_TRUE; + } + return SR_KEMI_FALSE; +} + /** * */ @@ -529,6 +640,20 @@ static int sr_kemi_core_force_rport(sip_msg_t *msg) return SR_KEMI_TRUE; } +/** + * + */ +static int sr_kemi_core_add_local_rport(sip_msg_t *msg) +{ + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + msg->msg_flags|=FL_ADD_LOCAL_RPORT; + return SR_KEMI_TRUE; +} + /** * */ @@ -619,6 +744,344 @@ static int sr_kemi_core_is_method(sip_msg_t *msg, str *vmethod) get_cseq(msg)->method_id); } +/** + * + */ +static int sr_kemi_core_is_method_in(sip_msg_t *msg, str *vmethod) +{ + int imethod; + int i; + + if(msg==NULL || vmethod==NULL || vmethod->s==NULL || vmethod->len<=0) { + LM_WARN("invalid parameters\n"); + return SR_KEMI_FALSE; + } + + if(msg->first_line.type==SIP_REQUEST) { + imethod = msg->first_line.u.request.method_value; + } else { + if(parse_headers(msg, HDR_CSEQ_F, 0)!=0 || msg->cseq==NULL) { + LM_ERR("cannot parse cseq header\n"); + return SR_KEMI_FALSE; + } + imethod = get_cseq(msg)->method_id; + } + + if(imethod==METHOD_OTHER) { + return SR_KEMI_FALSE; + } + + for(i=0; ilen; i++) { + switch(vmethod->s[i]) { + case 'I': + case 'i': + if(imethod==METHOD_INVITE) { + return SR_KEMI_TRUE; + } + break; + case 'A': + case 'a': + if(imethod==METHOD_ACK) { + return SR_KEMI_TRUE; + } + break; + case 'B': + case 'b': + if(imethod==METHOD_BYE) { + return SR_KEMI_TRUE; + } + break; + case 'C': + case 'c': + if(imethod==METHOD_CANCEL) { + return SR_KEMI_TRUE; + } + break; + case 'M': + case 'm': + if(imethod==METHOD_MESSAGE) { + return SR_KEMI_TRUE; + } + break; + case 'R': + case 'r': + if(imethod==METHOD_REGISTER) { + return SR_KEMI_TRUE; + } + break; + case 'P': + case 'p': + if(imethod==METHOD_PUBLISH) { + return SR_KEMI_TRUE; + } + break; + case 'S': + case 's': + if(imethod==METHOD_SUBSCRIBE) { + return SR_KEMI_TRUE; + } + break; + case 'N': + case 'n': + if(imethod==METHOD_NOTIFY) { + return SR_KEMI_TRUE; + } + break; + case 'O': + case 'o': + if(imethod==METHOD_OPTIONS) { + return SR_KEMI_TRUE; + } + break; + case 'G': + case 'g': + if(imethod==METHOD_GET) { + return SR_KEMI_TRUE; + } + break; + case 'K': + case 'k': + if(imethod==METHOD_KDMQ) { + return SR_KEMI_TRUE; + } + break; + case 'D': + case 'd': + if(imethod==METHOD_DELETE) { + return SR_KEMI_TRUE; + } + break; + case 'T': + case 't': + if(imethod==METHOD_POST) { + return SR_KEMI_TRUE; + } + break; + case 'V': + case 'v': + if(imethod==METHOD_PUT) { + return SR_KEMI_TRUE; + } + break; + } + } + return SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_method_type(sip_msg_t *msg, int mtype) +{ + int imethod; + + if(msg==NULL) { + LM_WARN("invalid parameters\n"); + return SR_KEMI_FALSE; + } + + if(msg->first_line.type==SIP_REQUEST) { + imethod = msg->first_line.u.request.method_value; + } else { + if(parse_headers(msg, HDR_CSEQ_F, 0)!=0 || msg->cseq==NULL) { + LM_ERR("cannot parse cseq header\n"); + return SR_KEMI_FALSE; + } + imethod = get_cseq(msg)->method_id; + } + + if(imethod==mtype) { + return SR_KEMI_TRUE; + } + + return SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_method_invite(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_INVITE); +} + +/** + * + */ +static int sr_kemi_core_is_method_ack(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_ACK); +} + +/** + * + */ +static int sr_kemi_core_is_method_bye(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_BYE); +} + +/** + * + */ +static int sr_kemi_core_is_method_cancel(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_CANCEL); +} + +/** + * + */ +static int sr_kemi_core_is_method_register(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_REGISTER); +} + +/** + * + */ +static int sr_kemi_core_is_method_options(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_OPTIONS); +} + +/** + * + */ +static int sr_kemi_core_is_method_update(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_UPDATE); +} + +/** + * + */ +static int sr_kemi_core_is_method_subscribe(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_SUBSCRIBE); +} + +/** + * + */ +static int sr_kemi_core_is_method_publish(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_PUBLISH); +} + +/** + * + */ +static int sr_kemi_core_is_method_notify(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_NOTIFY); +} + +/** + * + */ +static int sr_kemi_core_is_method_info(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_INFO); +} + +/** + * + */ +static int sr_kemi_core_is_method_prack(sip_msg_t *msg) +{ + return sr_kemi_core_is_method_type(msg, METHOD_PRACK); +} + +/** + * + */ +static int sr_kemi_core_is_proto_udp(sip_msg_t *msg) +{ + return (msg->rcv.proto == PROTO_UDP)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_proto_tcp(sip_msg_t *msg) +{ + return (msg->rcv.proto == PROTO_TCP)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_proto_tls(sip_msg_t *msg) +{ + return (msg->rcv.proto == PROTO_TLS)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_proto_ws(sip_msg_t *msg) +{ + return (msg->rcv.proto == PROTO_WS)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_proto_wss(sip_msg_t *msg) +{ + return (msg->rcv.proto == PROTO_WSS)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_proto_sctp(sip_msg_t *msg) +{ + return (msg->rcv.proto == PROTO_SCTP)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_af_ipv4(sip_msg_t *msg) +{ + if(msg==NULL || msg->rcv.bind_address==NULL) { + return SR_KEMI_FALSE; + } + return (msg->rcv.bind_address->address.af==AF_INET)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_af_ipv6(sip_msg_t *msg) +{ + if(msg==NULL || msg->rcv.bind_address==NULL) { + return SR_KEMI_FALSE; + } + return (msg->rcv.bind_address->address.af==AF_INET6)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_src_port(sip_msg_t *msg, int vport) +{ + return (vport == (int)msg->rcv.src_port)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + +/** + * + */ +static int sr_kemi_core_is_dst_port(sip_msg_t *msg, int vport) +{ + if(msg==NULL || msg->rcv.bind_address==NULL) { + return SR_KEMI_FALSE; + } + return (vport == (int)msg->rcv.bind_address->port_no)?SR_KEMI_TRUE:SR_KEMI_FALSE; +} + /** * */ @@ -727,6 +1190,122 @@ static int sr_kemi_core_set_reply_no_connect(sip_msg_t *msg) return SR_KEMI_TRUE; } +/** + * + */ +static int sr_kemi_core_set_advertised_address(sip_msg_t *msg, str *addr) +{ +#define SR_ADV_ADDR_SIZE 128 + static char _sr_adv_addr_buf[SR_ADV_ADDR_SIZE]; + + if(addr==NULL || addr->s==NULL) { + LM_ERR("invalid addr parameter\n"); + return SR_KEMI_FALSE; + } + + if(addr->len>=SR_ADV_ADDR_SIZE) { + LM_ERR("addr parameter is too large\n"); + return SR_KEMI_FALSE; + } + + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + memcpy(_sr_adv_addr_buf, addr->s, addr->len); + _sr_adv_addr_buf[addr->len] = '\0'; + msg->set_global_address.s = _sr_adv_addr_buf; + msg->set_global_address.len = addr->len; + + return SR_KEMI_TRUE; +} + +/** + * + */ +static int sr_kemi_core_set_advertised_port(sip_msg_t *msg, str *port) +{ +#define SR_ADV_PORT_SIZE 8 + static char _sr_adv_port_buf[SR_ADV_PORT_SIZE]; + + if(port==NULL || port->s==NULL) { + LM_ERR("invalid port parameter\n"); + return SR_KEMI_FALSE; + } + + if(port->len>=SR_ADV_PORT_SIZE) { + LM_ERR("port parameter is too large\n"); + return SR_KEMI_FALSE; + } + + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + + memcpy(_sr_adv_port_buf, port->s, port->len); + _sr_adv_port_buf[port->len] = '\0'; + msg->set_global_port.s = _sr_adv_port_buf; + msg->set_global_port.len = port->len; + + return SR_KEMI_TRUE; +} + +/** + * + */ +static int sr_kemi_core_add_tcp_alias(sip_msg_t *msg, int port) +{ + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + +#ifdef USE_TCP + if ( msg->rcv.proto==PROTO_TCP +#ifdef USE_TLS + || msg->rcv.proto==PROTO_TLS +#endif + ) { + if (tcpconn_add_alias(msg->rcv.proto_reserved1, port, + msg->rcv.proto)!=0){ + LM_ERR("adding tcp alias failed\n"); + return SR_KEMI_FALSE; + } + } +#endif + + return SR_KEMI_TRUE; +} + +/** + * + */ +static int sr_kemi_core_add_tcp_alias_via(sip_msg_t *msg) +{ + if(msg==NULL) { + LM_WARN("invalid msg parameter\n"); + return SR_KEMI_FALSE; + } + +#ifdef USE_TCP + if ( msg->rcv.proto==PROTO_TCP +#ifdef USE_TLS + || msg->rcv.proto==PROTO_TLS +#endif + ) { + if (tcpconn_add_alias(msg->rcv.proto_reserved1, msg->via1->port, + msg->rcv.proto)!=0){ + LM_ERR("adding tcp alias failed\n"); + return SR_KEMI_FALSE; + } + } +#endif + return SR_KEMI_TRUE; +} + + /** * */ @@ -766,8 +1345,8 @@ static sr_kemi_t _sr_kemi_core[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, - { str_init(""), str_init("drop"), - SR_KEMIP_NONE, sr_kemi_core_drop, + { str_init(""), str_init("set_drop"), + SR_KEMIP_NONE, sr_kemi_core_set_drop, { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, @@ -776,6 +1355,31 @@ static sr_kemi_t _sr_kemi_core[] = { { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init(""), str_init("is_myself_ruri"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_ruri, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_myself_furi"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_furi, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_myself_turi"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_turi, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_myself_suri"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_suri, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_myself_srcip"), + SR_KEMIP_BOOL, sr_kemi_core_is_myself_srcip, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init(""), str_init("setflag"), SR_KEMIP_BOOL, sr_kemi_core_setflag, { SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE, @@ -871,11 +1475,21 @@ static sr_kemi_t _sr_kemi_core[] = { { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init(""), str_init("add_local_rport"), + SR_KEMIP_BOOL, sr_kemi_core_add_local_rport, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init(""), str_init("is_method"), SR_KEMIP_BOOL, sr_kemi_core_is_method, { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init(""), str_init("is_method_in"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_in, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init(""), str_init("forward"), SR_KEMIP_INT, sr_kemi_core_forward, { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, @@ -906,6 +1520,136 @@ static sr_kemi_t _sr_kemi_core[] = { { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init(""), str_init("set_advertised_address"), + SR_KEMIP_INT, sr_kemi_core_set_advertised_address, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("set_advertised_port"), + SR_KEMIP_INT, sr_kemi_core_set_advertised_port, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("add_tcp_alias"), + SR_KEMIP_INT, sr_kemi_core_add_tcp_alias, + { SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("add_tcp_alias_via"), + SR_KEMIP_INT, sr_kemi_core_add_tcp_alias_via, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_INVITE"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_invite, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_ACK"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_ack, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_BYE"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_bye, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_CANCEL"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_cancel, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_REGISTER"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_register, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_OPTIONS"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_options, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_SUBSCRIBE"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_subscribe, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_PUBLISH"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_publish, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_NOTIFY"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_notify, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_INFO"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_info, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_UPDATE"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_update, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_PRACK"), + SR_KEMIP_BOOL, sr_kemi_core_is_method_prack, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_UDP"), + SR_KEMIP_BOOL, sr_kemi_core_is_proto_udp, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_TCP"), + SR_KEMIP_BOOL, sr_kemi_core_is_proto_tcp, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_TLS"), + SR_KEMIP_BOOL, sr_kemi_core_is_proto_tls, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_WS"), + SR_KEMIP_BOOL, sr_kemi_core_is_proto_ws, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_WSS"), + SR_KEMIP_BOOL, sr_kemi_core_is_proto_wss, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_SCTP"), + SR_KEMIP_BOOL, sr_kemi_core_is_proto_sctp, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_IPv4"), + SR_KEMIP_BOOL, sr_kemi_core_is_af_ipv4, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_IPv6"), + SR_KEMIP_BOOL, sr_kemi_core_is_af_ipv6, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_src_port"), + SR_KEMIP_BOOL, sr_kemi_core_is_src_port, + { SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init(""), str_init("is_dst_port"), + SR_KEMIP_BOOL, sr_kemi_core_is_dst_port, + { SR_KEMIP_INT, 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/core/kemi.h b/src/core/kemi.h index 9358dd126..26e56e308 100644 --- a/src/core/kemi.h +++ b/src/core/kemi.h @@ -37,6 +37,10 @@ #define SR_KEMI_PARAMS_MAX 6 +extern str kemi_onsend_route_callback; +extern str kemi_reply_route_callback; +extern str kemi_event_route_callback; + typedef struct sr_kemi { str mname; /* sub-module name */ str fname; /* function name */ @@ -104,6 +108,37 @@ typedef int (*sr_kemi_fmssss_f)(sip_msg_t*, str*, str*, str*, str*); /* sip_msg_t and five int|str params */ typedef int (*sr_kemi_fmsssss_f)(sip_msg_t*, str*, str*, str*, str*, str*); +typedef int (*sr_kemi_fmssssn_f)(sip_msg_t*, str*, str*, str*, str*, int); +typedef int (*sr_kemi_fmsssns_f)(sip_msg_t*, str*, str*, str*, int, str*); +typedef int (*sr_kemi_fmsssnn_f)(sip_msg_t*, str*, str*, str*, int, int); +typedef int (*sr_kemi_fmssnss_f)(sip_msg_t*, str*, str*, int, str*, str*); +typedef int (*sr_kemi_fmssnsn_f)(sip_msg_t*, str*, str*, int, str*, int); +typedef int (*sr_kemi_fmssnns_f)(sip_msg_t*, str*, str*, int, int, str*); +typedef int (*sr_kemi_fmssnnn_f)(sip_msg_t*, str*, str*, int, int, int); +typedef int (*sr_kemi_fmsnsss_f)(sip_msg_t*, str*, int, str*, str*, str*); +typedef int (*sr_kemi_fmsnssn_f)(sip_msg_t*, str*, int, str*, str*, int); +typedef int (*sr_kemi_fmsnsns_f)(sip_msg_t*, str*, int, str*, int, str*); +typedef int (*sr_kemi_fmsnsnn_f)(sip_msg_t*, str*, int, str*, int, int); +typedef int (*sr_kemi_fmsnnss_f)(sip_msg_t*, str*, int, int, str*, str*); +typedef int (*sr_kemi_fmsnnsn_f)(sip_msg_t*, str*, int, int, str*, int); +typedef int (*sr_kemi_fmsnnns_f)(sip_msg_t*, str*, int, int, int, str*); +typedef int (*sr_kemi_fmsnnnn_f)(sip_msg_t*, str*, int, int, int, int); +typedef int (*sr_kemi_fmnssss_f)(sip_msg_t*, int, str*, str*, str*, str*); +typedef int (*sr_kemi_fmnsssn_f)(sip_msg_t*, int, str*, str*, str*, int); +typedef int (*sr_kemi_fmnssns_f)(sip_msg_t*, int, str*, str*, int, str*); +typedef int (*sr_kemi_fmnssnn_f)(sip_msg_t*, int, str*, str*, int, int); +typedef int (*sr_kemi_fmnsnss_f)(sip_msg_t*, int, str*, int, str*, str*); +typedef int (*sr_kemi_fmnsnsn_f)(sip_msg_t*, int, str*, int, str*, int); +typedef int (*sr_kemi_fmnsnns_f)(sip_msg_t*, int, str*, int, int, str*); +typedef int (*sr_kemi_fmnsnnn_f)(sip_msg_t*, int, str*, int, int, int); +typedef int (*sr_kemi_fmnnsss_f)(sip_msg_t*, int, int, str*, str*, str*); +typedef int (*sr_kemi_fmnnssn_f)(sip_msg_t*, int, int, str*, str*, int); +typedef int (*sr_kemi_fmnnsns_f)(sip_msg_t*, int, int, str*, int, str*); +typedef int (*sr_kemi_fmnnsnn_f)(sip_msg_t*, int, int, str*, int, int); +typedef int (*sr_kemi_fmnnnss_f)(sip_msg_t*, int, int, int, str*, str*); +typedef int (*sr_kemi_fmnnnsn_f)(sip_msg_t*, int, int, int, str*, int); +typedef int (*sr_kemi_fmnnnns_f)(sip_msg_t*, int, int, int, int, str*); +typedef int (*sr_kemi_fmnnnnn_f)(sip_msg_t*, int, int, int, int, int); /* sip_msg_t and six int|str params */ typedef int (*sr_kemi_fmssssss_f)(sip_msg_t*, str*, str*, str*, str*, str*, str*); @@ -138,7 +173,7 @@ run_act_ctx_t* sr_kemi_act_ctx_get(void); str *sr_kemi_param_map_get_name(int ptype); str *sr_kemi_param_map_get_params(int *ptypes); -int sr_kemi_core_drop(sip_msg_t *msg); +int sr_kemi_core_set_drop(sip_msg_t *msg); int sr_kemi_route(sr_kemi_eng_t *keng, sip_msg_t *msg, int rtype, str *ename, str *edata); diff --git a/src/core/locking.c b/src/core/locking.c index ebe4a9ab3..43435d582 100644 --- a/src/core/locking.c +++ b/src/core/locking.c @@ -92,3 +92,64 @@ void rec_lock_release(rec_lock_t* rlock) rlock->rec_lock_level--; } } + +/** + * + */ +rec_lock_set_t* rec_lock_set_alloc(int n) +{ + rec_lock_set_t* ls; + ls=(rec_lock_set_t*)shm_malloc(sizeof(rec_lock_set_t)+n*sizeof(rec_lock_t)); + if (ls==0){ + LM_CRIT("could not allocate rec_lock_set\n"); + }else{ + ls->locks=(rec_lock_t*)((char*)ls+sizeof(rec_lock_set_t)); + ls->size=n; + } + return ls; +} + +/** + * + */ +rec_lock_set_t* rec_lock_set_init(rec_lock_set_t* lset) +{ + int r; + for (r=0; rsize; r++) if (rec_lock_init(&lset->locks[r])==0) return 0; + return lset; +} + +/** + * + */ +void rec_lock_set_destroy(rec_lock_set_t* lset) +{ + return; +} + +/** + * + */ +void rec_lock_set_dealloc(rec_lock_set_t* lset) +{ + shm_free((void*)lset); + return; +} + +/** + * + */ +void rec_lock_set_get(rec_lock_set_t* lset, int i) +{ + rec_lock_get(&lset->locks[i]); + return; +} + +/** + * + */ +void rec_lock_set_release(rec_lock_set_t* lset, int i) +{ + rec_lock_release(&lset->locks[i]); + return; +} diff --git a/src/core/locking.h b/src/core/locking.h index c00e49e12..1ae16d01d 100644 --- a/src/core/locking.h +++ b/src/core/locking.h @@ -84,4 +84,16 @@ void rec_lock_dealloc(rec_lock_t* lock); void rec_lock_get(rec_lock_t* lock); void rec_lock_release(rec_lock_t* lock); +typedef struct rec_lock_set { + int size; + rec_lock_t *locks; +} rec_lock_set_t; + +rec_lock_set_t* rec_lock_set_alloc(int n); +rec_lock_set_t* rec_lock_set_init(rec_lock_set_t* lset); +void rec_lock_set_destroy(rec_lock_set_t* lset); +void rec_lock_set_dealloc(rec_lock_set_t* lset); +void rec_lock_set_get(rec_lock_set_t* lset, int i); +void rec_lock_set_release(rec_lock_set_t* lset, int i); + #endif diff --git a/src/core/mod_fix.c b/src/core/mod_fix.c index b07adcfc2..9c8a9535b 100644 --- a/src/core/mod_fix.c +++ b/src/core/mod_fix.c @@ -641,6 +641,30 @@ int fixup_free_spve_igp(void** param, int param_no) return E_UNSPEC; } +/** + * + */ +int fixup_spve_spve_igp(void** param, int param_no) +{ + if(param_no==1 || param_no==2) + return fixup_spve_null(param, 1); + if(param_no==3) + return fixup_igp_null(param, 1); + return E_UNSPEC; +} + +/** + * + */ +int fixup_free_spve_spve_igp(void** param, int param_no) +{ + if(param_no==1 || param_no==2) + return fixup_free_spve_null(param, 1); + if(param_no==3) + return fixup_free_igp_null(param, 1); + return E_UNSPEC; +} + /** * */ @@ -664,3 +688,23 @@ int fixup_free_spve_pvar(void** param, int param_no) return fixup_free_pvar_null(param, 1); return E_UNSPEC; } + +/** + * + */ +int fixup_none_spve(void** param, int param_no) +{ + if(param_no==2) + return fixup_spve_null(param, 1); + return 0; +} + +/** + * + */ +int fixup_free_none_spve(void** param, int param_no) +{ + if(param_no==2) + return fixup_free_spve_null(param, 1); + return 0; +} \ No newline at end of file diff --git a/src/core/mod_fix.h b/src/core/mod_fix.h index 869dd7852..b3ab9b91a 100644 --- a/src/core/mod_fix.h +++ b/src/core/mod_fix.h @@ -146,6 +146,12 @@ int fixup_free_spve_igp(void** param, int param_no); int fixup_spve_pvar(void** param, int param_no); int fixup_free_spve_pvar(void** param, int param_no); +int fixup_spve_spve_igp(void** param, int param_no); +int fixup_free_spve_spve_igp(void** param, int param_no); + +int fixup_none_spve(void** param, int param_no); +int fixup_free_none_spve(void** param, int param_no); + /** get the corresp. free fixup function.*/ free_fixup_function mod_fix_get_fixup_free(fixup_function f); diff --git a/src/core/msg_translator.c b/src/core/msg_translator.c index 6d042242e..ae9260996 100644 --- a/src/core/msg_translator.c +++ b/src/core/msg_translator.c @@ -103,6 +103,8 @@ #include "parser/parse_param.h" #include "forward.h" #include "str_list.h" +#include "pvapi.h" +#include "xavp.h" #include "rand/kam_rand.h" #define append_str_trans(_dest,_src,_len,_msg) \ @@ -111,7 +113,8 @@ extern char version[]; extern int version_len; - +str _ksr_xavp_via_params = STR_NULL; +str _ksr_xavp_via_fields = STR_NULL; /** per process fixup function for global_req_flags. * It should be called from the configuration framework. @@ -2671,10 +2674,10 @@ int branch_builder( unsigned int hash_index, -/* uses only the send_info->send_socket, send_info->proto and +/* uses only the send_info->send_socket, send_info->proto and * send_info->comp (so that a send_info used for sending can be passed * to this function w/o changes and the correct via will be built) */ -char* via_builder( unsigned int *len, +char* via_builder(unsigned int *len, sip_msg_t *msg, struct dest_info* send_info /* where to send the reply */, str* branch, str* extra_params, struct hostport* hp) { @@ -2682,8 +2685,8 @@ char* via_builder( unsigned int *len, char *line_buf; int max_len; int via_prefix_len; - str* address_str; /* address displayed in via */ - str* port_str; /* port no displayed in via */ + str* address_str = NULL; /* address displayed in via */ + str* port_str = NULL; /* port no displayed in via */ struct socket_info* send_sock; int comp_len, comp_name_len; #ifdef USE_COMP @@ -2694,22 +2697,46 @@ char* via_builder( unsigned int *len, union sockaddr_union *from = NULL; union sockaddr_union local_addr; struct tcp_connection *con = NULL; + sr_xavp_t *rxavp = NULL; + str xname; send_sock=send_info->send_sock; /* use pre-set address in via, the outbound socket alias or address one */ - if (hp && hp->host->len) - address_str=hp->host; - else if(send_sock->useinfo.name.len>0) - address_str=&(send_sock->useinfo.name); - else - address_str=&(send_sock->address_str); - if (hp && hp->port->len) - port_str=hp->port; - else if(send_sock->useinfo.port_no>0) - port_str=&(send_sock->useinfo.port_no_str); - else - port_str=&(send_sock->port_no_str); - + if(msg && (msg->msg_flags&FL_USE_XAVP_VIA_FIELDS) + && _ksr_xavp_via_fields.len>0) { + xname.s = "address"; + xname.len = 7; + rxavp = xavp_get_child_with_sval(&_ksr_xavp_via_fields, &xname); + if(rxavp!=NULL) { + address_str = &rxavp->val.v.s; + } + } + if(address_str==NULL) { + if (hp && hp->host->len) + address_str=hp->host; + else if(send_sock->useinfo.name.len>0) + address_str=&(send_sock->useinfo.name); + else + address_str=&(send_sock->address_str); + } + if(msg && (msg->msg_flags&FL_USE_XAVP_VIA_FIELDS) + && _ksr_xavp_via_fields.len>0) { + xname.s = "port"; + xname.len = 4; + rxavp = xavp_get_child_with_sval(&_ksr_xavp_via_fields, &xname); + if(rxavp!=NULL) { + port_str = &rxavp->val.v.s; + } + } + if(port_str==NULL) { + if (hp && hp->port->len) + port_str=hp->port; + else if(send_sock->useinfo.port_no>0) + port_str=&(send_sock->useinfo.port_no_str); + else + port_str=&(send_sock->port_no_str); + } + comp_len=comp_name_len=0; #ifdef USE_COMP comp_name=0; @@ -2859,7 +2886,7 @@ char* via_builder( unsigned int *len, /* creates a via header honoring the protocol of the incoming socket * msg is an optional parameter */ -char* create_via_hf( unsigned int *len, +char* create_via_hf(unsigned int *len, struct sip_msg *msg, struct dest_info* send_info /* where to send the reply */, str* branch) @@ -2867,6 +2894,9 @@ char* create_via_hf( unsigned int *len, char* via; str extra_params; struct hostport hp; + char sbuf[24]; + int slen; + str xparams; #if defined USE_TCP || defined USE_SCTP char* id_buf; unsigned int id_len; @@ -2926,8 +2956,58 @@ char* create_via_hf( unsigned int *len, extra_params.s[extra_params.len]='\0'; } + /* test and add srvid parameter to local via */ + if(msg && (msg->msg_flags&FL_ADD_SRVID) && server_id!=0) { + slen = snprintf(sbuf, 24, ";srvid=%u", (unsigned int)server_id); + if(slen<=0 || slen>=24) { + LM_WARN("failed to build srvid parameter"); + } else { + via = (char*)pkg_malloc(extra_params.len+slen+1); + if(via==0) { + LM_ERR("building srvid param failed\n"); + if (extra_params.s) pkg_free(extra_params.s); + return 0; + } + if(extra_params.len != 0) { + memcpy(via, extra_params.s, extra_params.len); + pkg_free(extra_params.s); + } + memcpy(via + extra_params.len, sbuf, slen); + extra_params.s = via; + extra_params.len += slen; + extra_params.s[extra_params.len] = '\0'; + } + } + + /* test and add xavp params */ + if(msg && (msg->msg_flags&FL_ADD_XAVP_VIA_PARAMS) + && _ksr_xavp_via_params.len>0) { + xparams.s = pv_get_buffer(); + xparams.len = xavp_serialize_fields(&_ksr_xavp_via_params, + xparams.s, pv_get_buffer_size()); + if(xparams.len>0) { + via = (char*)pkg_malloc(extra_params.len+xparams.len+2); + if(via==0) { + LM_ERR("building xavps params failed\n"); + if (extra_params.s) pkg_free(extra_params.s); + return 0; + } + if(extra_params.len != 0) { + memcpy(via, extra_params.s, extra_params.len); + pkg_free(extra_params.s); + } + /* add ';' between via parameters */ + via[extra_params.len] = ';'; + /* skip last ';' from xavp serialized output */ + memcpy(via + extra_params.len + 1, xparams.s, xparams.len - 1); + extra_params.s = via; + extra_params.len += xparams.len; + extra_params.s[extra_params.len] = '\0'; + } + } + set_hostport(&hp, msg); - via = via_builder( len, send_info, branch, + via = via_builder(len, msg, send_info, branch, extra_params.len?&extra_params:0, &hp); /* we do not need extra_params any more, already in the new via header */ @@ -3123,3 +3203,106 @@ int build_sip_msg_from_buf(struct sip_msg *msg, char *buf, int len, return 0; } +/** + * + */ +int sip_msg_update_buffer(sip_msg_t *msg, str *obuf) +{ + sip_msg_t tmp; + + if(obuf==NULL || obuf->s==NULL || obuf->len<=0) { + LM_ERR("invalid buffer parameter\n"); + return -1; + } + + if(obuf->len >= BUF_SIZE) { + LM_ERR("new buffer is too large (%d)\n", obuf->len); + return -1; + } + /* temporary copy */ + memcpy(&tmp, msg, sizeof(sip_msg_t)); + + /* reset dst uri and path vector to avoid freeing - restored later */ + if(msg->dst_uri.s != NULL) { + msg->dst_uri.s = NULL; + msg->dst_uri.len = 0; + } + if(msg->path_vec.s != NULL) { + msg->path_vec.s = NULL; + msg->path_vec.len = 0; + } + + /* free old msg structure */ + free_sip_msg(msg); + memset(msg, 0, sizeof(sip_msg_t)); + + /* restore msg fields */ + msg->buf = tmp.buf; + msg->id = tmp.id; + msg->rcv = tmp.rcv; + msg->set_global_address = tmp.set_global_address; + msg->set_global_port = tmp.set_global_port; + msg->flags = tmp.flags; + msg->msg_flags = tmp.msg_flags; + msg->hash_index = tmp.hash_index; + msg->force_send_socket = tmp.force_send_socket; + msg->fwd_send_flags = tmp.fwd_send_flags; + msg->rpl_send_flags = tmp.rpl_send_flags; + msg->dst_uri = tmp.dst_uri; + msg->path_vec = tmp.path_vec; + + memcpy(msg->buf, obuf->s, obuf->len); + msg->len = obuf->len; + msg->buf[msg->len] = '\0'; + + /* reparse the message */ + LM_DBG("SIP message content updated - reparsing\n"); + if(parse_msg(msg->buf, msg->len, msg) != 0) { + LM_ERR("parsing new sip message failed [[%.*s]]\n", msg->len, msg->buf); + /* exit config execution - sip_msg_t structure is no longer + * valid/safe for config */ + return 0; + } + + return 1; +} + +/** + * + */ +int sip_msg_apply_changes(sip_msg_t *msg) +{ + int ret; + dest_info_t dst; + str obuf; + + if(msg->first_line.type != SIP_REPLY && get_route_type() != REQUEST_ROUTE) { + LM_ERR("invalid usage - not in request route or a reply\n"); + return -1; + } + + init_dest_info(&dst); + dst.proto = PROTO_UDP; + if(msg->first_line.type == SIP_REPLY) { + obuf.s = generate_res_buf_from_sip_res( + msg, (unsigned int *)&obuf.len, BUILD_NO_VIA1_UPDATE); + } else { + if(msg->msg_flags & FL_RR_ADDED) { + LM_ERR("cannot apply msg changes after adding record-route" + " header - it breaks conditional 2nd header\n"); + return -1; + } + obuf.s = build_req_buf_from_sip_req(msg, (unsigned int *)&obuf.len, + &dst, + BUILD_NO_PATH | BUILD_NO_LOCAL_VIA | BUILD_NO_VIA1_UPDATE); + } + if(obuf.s == NULL) { + LM_ERR("couldn't update msg buffer content\n"); + return -1; + } + ret = sip_msg_update_buffer(msg, &obuf); + /* free new buffer - copied in the static buffer from old sip_msg_t */ + pkg_free(obuf.s); + + return ret; +} diff --git a/src/core/msg_translator.h b/src/core/msg_translator.h index ced28b0db..4d14ce0fb 100644 --- a/src/core/msg_translator.h +++ b/src/core/msg_translator.h @@ -107,9 +107,9 @@ char * build_res_buf_with_body_from_sip_req( unsigned int code , unsigned int *returned_len, struct bookmark *bmark); */ -char* via_builder( unsigned int *len, +char* via_builder(unsigned int *len, sip_msg_t *msg, struct dest_info* send_info, - str *branch, str* extra_params, struct hostport *hp ); + str *branch, str* extra_params, struct hostport *hp); /* creates a via header honoring the protocol of the incoming socket * msg is an optional parameter */ @@ -180,4 +180,15 @@ void process_lumps( struct sip_msg* msg, unsigned int* orig_offs, struct dest_info* send_info, int flag); + +/** + * set the internal buffer for sip msg with obuf and reparse + */ +int sip_msg_update_buffer(sip_msg_t *msg, str *obuf); + +/** + * apply changes to sip msg buffer and reparse + */ +int sip_msg_apply_changes(sip_msg_t *msg); + #endif diff --git a/src/core/onsend.h b/src/core/onsend.h index 16ea5ce17..e435a27f0 100644 --- a/src/core/onsend.h +++ b/src/core/onsend.h @@ -71,7 +71,9 @@ static inline int run_onsend(sip_msg_t* orig_msg, dest_info_t* dst, } ret=1; // do if onsend_route{} or cfgengine exists - keng = sr_kemi_eng_get(); + if(kemi_onsend_route_callback.len>0) { + keng = sr_kemi_eng_get(); + } if (onsend_rt.rlist[DEFAULT_RT] || keng){ onsnd_info.to=&dst->to; onsnd_info.send_sock=dst->send_sock; @@ -91,7 +93,7 @@ static inline int run_onsend(sip_msg_t* orig_msg, dest_info_t* dst, if(keng) { bctx = sr_kemi_act_ctx_get(); sr_kemi_act_ctx_set(&ra_ctx); - ret=keng->froute(orig_msg, ONSEND_ROUTE, NULL, NULL); + ret=sr_kemi_route(keng, orig_msg, ONSEND_ROUTE, NULL, NULL); sr_kemi_act_ctx_set(bctx); } else { ret=run_actions(&ra_ctx, onsend_rt.rlist[DEFAULT_RT], orig_msg); diff --git a/src/core/parser/contact/contact.c b/src/core/parser/contact/contact.c index 4c534ece7..c87e32986 100644 --- a/src/core/parser/contact/contact.c +++ b/src/core/parser/contact/contact.c @@ -182,6 +182,9 @@ int parse_contacts(str* _s, contact_t** _c) { contact_t* c; param_hooks_t hooks; + str sv; + + sv = *_s; while(1) { /* Allocate and clear contact structure */ @@ -220,6 +223,10 @@ int parse_contacts(str* _s, contact_t** _c) } trim(&c->uri); + if((c->uri.len <= 0) || (c->uri.s + c->uri.len > sv.s + sv.len)) { + LM_ERR("invlid contact uri\n"); + goto error; + } if (_s->len == 0) goto ok; @@ -264,6 +271,8 @@ int parse_contacts(str* _s, contact_t** _c) } error: + LM_ERR("failure parsing '%.*s' (%d) [%p/%p/%d]\n", sv.len, sv.s, sv.len, + sv.s, _s->s, (int)(_s->s - sv.s)); if (c) pkg_free(c); free_contacts(_c); /* Free any contacts created so far */ return -1; diff --git a/src/core/parser/msg_parser.c b/src/core/parser/msg_parser.c index efad8f9f6..03610dc1f 100644 --- a/src/core/parser/msg_parser.c +++ b/src/core/parser/msg_parser.c @@ -169,7 +169,9 @@ char* get_hdr_field(char* const buf, char* const end, struct hdr_field* const hd hdr->body.len=tmp-hdr->body.s; DBG("<%.*s> [%d]; uri=[%.*s]\n", hdr->name.len, ZSW(hdr->name.s), hdr->body.len, to_b->uri.len, ZSW(to_b->uri.s)); - DBG("to body [%.*s]\n", to_b->body.len, ZSW(to_b->body.s)); + DBG("to body [%.*s], to tag [%.*s]\n", to_b->body.len, + ZSW(to_b->body.s), to_b->tag_value.len, + ZSW(to_b->tag_value.s)); break; case HDR_CONTENTLENGTH_T: hdr->body.s=tmp; @@ -251,8 +253,10 @@ char* get_hdr_field(char* const buf, char* const end, struct hdr_field* const hd match=q_memchr(tmp, '\n', end-tmp); if (match){ match++; - }else { - ERR("bad body for <%s>(%d)\n", hdr->name.s, hdr->type); + } else { + ERR("no eol - bad body for <%.*s> (hdr type: %d) [%.*s]\n", + hdr->name.len, hdr->name.s, + hdr->type, ((end-tmp)>128)?128:(int)(end-tmp), tmp); /* abort(); */ tmp=end; goto error; @@ -263,7 +267,8 @@ char* get_hdr_field(char* const buf, char* const end, struct hdr_field* const hd hdr->body.len=match-hdr->body.s; break; default: - BUG("unknown header type %d\n", hdr->type); + BUG("unknown header type %d [%.*s]\n", hdr->type, + ((end-buf)>128)?128:(int)(end-buf), buf); goto error; } /* jku: if \r covered by current length, shrink it */ @@ -328,7 +333,8 @@ int parse_headers(struct sip_msg* const msg, const hdr_flags_t flags, const int rest=get_hdr_field(tmp, end, hf); switch (hf->type){ case HDR_ERROR_T: - ERR("bad header field [%.*s]\n", (end-tmp>20)?20:(int)(end-tmp), tmp); + ERR("bad header field [%.*s]\n", + (end-tmp>100)?100:(int)(end-tmp), tmp); goto error; case HDR_EOH_T: msg->eoh=tmp; /* or rest?*/ @@ -1102,6 +1108,65 @@ int get_src_uri(sip_msg_t *m, int tmode, str *uri) return 0; } +/** + * get source proto:ip:port (socket address format) + */ +int get_src_address_socket(sip_msg_t *m, str *ssock) +{ + static char buf[MAX_URI_SIZE]; + char* p; + str ip, port; + int len; + str proto; + + if (!ssock || !m) { + ERR("invalid parameter value\n"); + return -1; + } + + if(get_valid_proto_string(m->rcv.proto, 1, 0, &proto)<0) { + ERR("unknown transport protocol\n"); + return -1; + } + + ip.s = ip_addr2a(&m->rcv.src_ip); + ip.len = strlen(ip.s); + + port.s = int2str(m->rcv.src_port, &port.len); + + len = proto.len + 1 + ip.len + 2*(m->rcv.src_ip.af==AF_INET6)+ 1 + port.len; + + if (len+1 >= MAX_URI_SIZE) { + ERR("buffer too small\n"); + return -1; + } + + p = buf; + + memcpy(p, proto.s, proto.len); + p += proto.len; + + *p++ = ':'; + + if (m->rcv.src_ip.af==AF_INET6) + *p++ = '['; + memcpy(p, ip.s, ip.len); + p += ip.len; + if (m->rcv.src_ip.af==AF_INET6) + *p++ = ']'; + + *p++ = ':'; + + memcpy(p, port.s, port.len); + p += port.len; + *p = '\0'; + + ssock->s = buf; + ssock->len = len; + + return 0; +} + /** * get received-on-socket ip, port and protocol in SIP URI format * - tmode - 0: short format (transport=udp is not added, being default) diff --git a/src/core/parser/msg_parser.h b/src/core/parser/msg_parser.h index 41e6deeb3..969fbc6f9 100644 --- a/src/core/parser/msg_parser.h +++ b/src/core/parser/msg_parser.h @@ -74,7 +74,12 @@ typedef enum request_method { METHOD_UPDATE=2048, /*!< 2048 - 2^11 */ METHOD_REFER=4096, /*!< 4096 - 2^12 */ METHOD_PUBLISH=8192, /*!< 8192 - 2^13 */ - METHOD_OTHER=16384 /*!< 16384 - 2^14 */ + METHOD_KDMQ=16384, /*!< 16384 - 2^14 */ + METHOD_GET=32768, /*!< 32768 - 2^15 */ + METHOD_POST=65536, /*!< 65536 - 2^16 */ + METHOD_PUT=131072, /*!< 131072 - 2^17 */ + METHOD_DELETE=262144, /*!< 262144 - 2^18 */ + METHOD_OTHER=524288 /*!< 524288 - 2^19 */ } request_method_t; #define FL_FORCE_RPORT (1 << 0) /*!< force rport */ @@ -100,6 +105,10 @@ typedef enum request_method { #define FL_BODY_MULTIPART (1<<17) /* body modified is multipart */ #define FL_RR_ADDED (1<<18) /* Record-Route header was added */ #define FL_UAC_AUTH (1<<19) /* Proxy UAC-like authentication */ +#define FL_ADD_SRVID (1<<20) /*!< add 'srvid' to local via hdr */ +#define FL_ADD_XAVP_VIA_PARAMS (1<<21) /*!< add xavp fields to local via params */ +#define FL_USE_XAVP_VIA_FIELDS (1<<22) /*!< use xavp fields for local via attrs */ +#define FL_MSG_NOREPLY (1<<23) /*!< do not send sip reply for request */ /* WARNING: Value (1 << 28) is temporarily reserved for use in kamailio call_control * module (flag FL_USE_CALL_CONTROL )! */ @@ -359,6 +368,7 @@ typedef struct sip_msg { to avoid unnecessary calculations */ unsigned int msg_flags; /*!< internal flags used by core */ flag_t flags; /*!< config flags */ + flag_t xflags[KSR_XFLAGS_SIZE]; /*!< config extended flags */ str set_global_address; str set_global_port; struct socket_info* force_send_socket; /*!< force sending on this socket */ @@ -498,6 +508,11 @@ void msg_ldata_reset(sip_msg_t*); */ int get_src_uri(sip_msg_t *m, int tmode, str *uri); +/** + * get source proto:ip:port (socket address format) + */ +int get_src_address_socket(sip_msg_t *m, str *ssock); + /** * get received-on-socket ip, port and protocol in SIP URI format */ diff --git a/src/core/parser/parse_body.c b/src/core/parser/parse_body.c index 482ceb2a5..9794e43fb 100644 --- a/src/core/parser/parse_body.c +++ b/src/core/parser/parse_body.c @@ -23,6 +23,7 @@ * \brief Parser :: Body handling * * \ingroup parser + * @{ */ @@ -289,14 +290,13 @@ next_hf: /** - * trim_leading_hts + * \brief trim_leading_hts * - * trim leading all spaces ' ' and horizontal tabs '\t' characters. - * - buffer, pointer to the beginning of the buffer. - * - end_buffer, pointer to the end of the buffer. - * returns - * - pointer to the first non-match character if success. - * - pointer to NULL if the end_buffer is reached. + * trim leading all spaces ' ' and horizontal tabs '\\t' characters. + * \param buffer pointer to the beginning of the buffer + * \param end_buffer pointer to the end of the buffer + * \return pointer to the first non-match character if success, + * pointer to NULL if the end_buffer is reached. */ char *trim_leading_hts (char *buffer, char *end_buffer) { @@ -311,15 +311,13 @@ char *trim_leading_hts (char *buffer, char *end_buffer) /** - * trim_leading_e_r + * \brief trim_leading_e_r * - * trim leading characters until get a '\r'. - * - buffer, pointer to the beginning of the buffer. - * - end_buffer, pointer to the end of the buffer. - * - * returns - * - pointer to the first '\r' character if success. - * - pointer to NULL if the end_buffer is reached. + * trim leading characters until get a '\\r'. + * \param buffer pointer to the beginning of the buffer + * \param end_buffer pointer to the end of the buffer + * \return pointer to the first '\\r' character if success, + * pointer to NULL if the end_buffer is reached. */ char *trim_leading_e_r (char *buffer, char *end_buffer) { @@ -332,24 +330,20 @@ char *trim_leading_e_r (char *buffer, char *end_buffer) /** - * part_multipart_headers_cmp - * trim leading characters until get a '\r'. - * receives - * - buffer, pointer to the beginning of the headers in a part of the multipart body. - * - end_buffer, pointer to the end of the headers in the multipart body. - * - content type/ content subtype. - * if (type == 0 / subtype == 0): Content-Type: disabled in the search. - * - content id. - * if (id == NULL): Content-ID: disabled in the search. - * - content length. - * if (length == NULL) Content-Length: disabled in the search. - * - * returns - * - true, if the part of the multipart body has : - * -- Content-Type that matches content_type / content_subtype. (if Content-Type enabled) && - * -- Content-ID that matches content_id. (if Content-ID enabled) && - * -- Content-Length that matches content_length. (if Content-Length enabled) - * - false, if any of them doesnt match. + * \brief part_multipart_headers_cmp + * + * trim leading characters until get a '\\r'. + * \param buffer pointer to the beginning of the headers in a part of the multipart body + * \param end_buffer pointer to the end of the headers in the multipart body + * \param content_type if NULL Content-Type: disabled in the search + * \param content_subtype if NULL Content-Subtype: disabled in the search + * \param content_id if NULL then Content-ID: disabled in the search + * \param content_length if NULL then Content-Length: disabled in the search + * \return true, if the part of the multipart body has : + * -- Content-Type that matches content_type / content_subtype. (if Content-Type enabled) && + * -- Content-ID that matches content_id. (if Content-ID enabled) && + * -- Content-Length that matches content_length. (if Content-Length enabled) + * - false, if any of them doesnt match. */ int part_multipart_headers_cmp (char *buffer, char *end_buffer, @@ -522,25 +516,18 @@ int part_multipart_headers_cmp (char *buffer, } /** - * get_body_part_by_filter + * \brief get_body_part_by_filter * * Filters the multipart part from a given SIP message which matches the * Content-Type && || Content-ID && || Content-Length - * receives - * - SIP message - * - pointer to the beginning of the headers in a part of the multipart body. - * - pointer to the end of the headers in the multipart body. - * - content type/ content subtype. - * if (type == 0 / subtype == 0): Content-Type: disabled in the search. - * - content id. - * if (id == NULL): Content-ID: disabled in the search. - * - content length. - * if (length == NULL) Content-Length: disabled in the search. - * - len. Length of the multipart message returned. - * - * returns - * - pointer to the multipart if success. - * - NULL, if none of the multiparts match. + * + * \param msg SIP message + * \param content_type if NULL Content-Type: disabled in the search + * \param content_subtype if NULL Content-Subtype: disabled in the search + * \param content_id if NULL then Content-ID: disabled in the search + * \param content_length, if NULL then Content-Length: disabled in the search + * \param len Length of the multipart message returned + * \return pointer to the multipart if success, NULL, if none of the multiparts match */ char *get_body_part_by_filter(struct sip_msg *msg, unsigned short content_type, @@ -589,3 +576,5 @@ char *get_body_part_by_filter(struct sip_msg *msg, } return NULL; } + +/** @} */ diff --git a/src/core/parser/parse_body.h b/src/core/parser/parse_body.h index 1b5afde4c..4b82e3a7c 100644 --- a/src/core/parser/parse_body.h +++ b/src/core/parser/parse_body.h @@ -23,6 +23,7 @@ * \brief Parser :: Body handling * * \ingroup parser + * @{ */ @@ -49,3 +50,5 @@ char *get_body_part_by_filter(struct sip_msg *msg, int *len); #endif /* PARSE_BODY_H */ + +/** @} */ diff --git a/src/core/parser/parse_fline.c b/src/core/parser/parse_fline.c index 04758b275..e6b93aca5 100644 --- a/src/core/parser/parse_fline.c +++ b/src/core/parser/parse_fline.c @@ -125,6 +125,11 @@ char* parse_first_line(char* buffer, unsigned int len, struct msg_start* fl) else IFISMETHOD( UPDATE, 'U') else IFISMETHOD( REFER, 'R') else IFISMETHOD( PUBLISH, 'P') + else IFISMETHOD( KDMQ, 'K') + else IFISMETHOD( GET, 'G') + else IFISMETHOD( POST, 'P') + else IFISMETHOD( PUT, 'P') + else IFISMETHOD( DELETE, 'D') /* if you want to add another method XXX, include METHOD_XXX in H-file (this is the value which you will take later in processing and define XXX_LEN as length of method name; diff --git a/src/core/parser/parse_fline.h b/src/core/parser/parse_fline.h index b10c02bc8..2add9b0ef 100644 --- a/src/core/parser/parse_fline.h +++ b/src/core/parser/parse_fline.h @@ -67,6 +67,11 @@ #define UPDATE_LEN 6 #define REFER_LEN 5 #define PUBLISH_LEN 7 +#define KDMQ_LEN 4 +#define GET_LEN 3 +#define POST_LEN 4 +#define PUT_LEN 3 +#define DELETE_LEN 6 typedef struct msg_start { short type; /*!< Type of the message - request/response */ diff --git a/src/core/parser/parse_hostport.c b/src/core/parser/parse_hostport.c deleted file mode 100644 index 4fbd1a456..000000000 --- a/src/core/parser/parse_hostport.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2001-2003 FhG Fokus - * - * This file is part of Kamailio, a free SIP server. - * - * Kamailio is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version - * - * Kamailio is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * 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 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/*! \file - * \brief Parser :: Parse domain/hostname and port argument - * - * \ingroup parser - */ - - -#ifdef _OBSOLETED - -#include "parse_hostport.h" -#include /* strlen */ -#include "../dprint.h" -#include "../ut.h" /* str2s */ - -char* parse_hostport(char* buf, str* host, short int* port) -{ - char *tmp; - int err; - - host->s=buf; - for(tmp=buf;(*tmp)&&(*tmp!=':');tmp++); - host->len=tmp-buf; - if (*tmp==0) { - *port=0; - } else { - *tmp=0; - *port=str2s((unsigned char*)(tmp+1), strlen(tmp+1), &err); - if (err ){ - LOG(L_INFO, - "ERROR: hostport: trailing chars in port number: %s\n", - tmp+1); - /* report error? */ - } - } - - return host->s; -} - -#endif diff --git a/src/core/parser/parse_methods.c b/src/core/parser/parse_methods.c index de36d602c..6242e8866 100644 --- a/src/core/parser/parse_methods.c +++ b/src/core/parser/parse_methods.c @@ -65,7 +65,7 @@ int parse_method_name(const str* const s, enum request_method* const method) } switch ((s->s)[0]) { - /* ordered after probability of aparition on a normal proxy */ + /* ordered after probability of apparition on a normal proxy */ case 'R': case 'r': if (likely((s->len == 8) && @@ -106,6 +106,14 @@ int parse_method_name(const str* const s, enum request_method* const method) *method = METHOD_PUBLISH; return 0; } + if (likely((s->len==4) && !strncasecmp(s->s + 1, "ost", 3))) { + *method = METHOD_POST; + return 0; + } + if (likely((s->len==3) && !strncasecmp(s->s + 1, "ut", 2))) { + *method = METHOD_PUT; + return 0; + } break; case 'C': case 'c': @@ -156,6 +164,27 @@ int parse_method_name(const str* const s, enum request_method* const method) return 0; } break; + case 'D': + case 'd': + if (likely((s->len==6) && !strncasecmp(s->s + 1, "elete", 5))){ + *method = METHOD_DELETE; + return 0; + } + break; + case 'G': + case 'g': + if (likely((s->len==3) && !strncasecmp(s->s + 1, "et", 2))){ + *method = METHOD_GET; + return 0; + } + break; + case 'K': + case 'k': + if (likely((s->len==4) && !strncasecmp(s->s + 1, "dmq", 3))){ + *method = METHOD_KDMQ; + return 0; + } + break; default: break; } @@ -287,6 +316,18 @@ static int parse_method_advance(str* const _next, enum request_method* const _me _next->s += 7; goto found; } + if ((_next->len > 3) && !strncasecmp(_next->s + 1, "ost", 3)) { + *_method = METHOD_POST; + _next->len -= 4; + _next->s += 4; + goto found; + } + if ((_next->len > 2) && !strncasecmp(_next->s + 1, "ut", 2)) { + *_method = METHOD_PUT; + _next->len -= 3; + _next->s += 3; + goto found; + } goto unknown; case 'R': @@ -330,7 +371,36 @@ static int parse_method_advance(str* const _next, enum request_method* const _me } else { goto unknown; } - + case 'D': + case 'd': + if ((_next->len>5) && !strncasecmp(_next->s + 1, "elete", 5)){ + *_method = METHOD_DELETE; + _next->len -= 6; + _next->s += 6; + goto found; + } else { + goto unknown; + } + case 'G': + case 'g': + if ((_next->len>2) && !strncasecmp(_next->s + 1, "et", 2)){ + *_method = METHOD_GET; + _next->len -= 3; + _next->s += 3; + goto found; + } else { + goto unknown; + } + case 'K': + case 'k': + if ((_next->len>3) && !strncasecmp(_next->s + 1, "dmq", 3)){ + *_method = METHOD_KDMQ; + _next->len -= 4; + _next->s += 4; + goto found; + } else { + goto unknown; + } default: goto unknown; } diff --git a/src/core/parser/parse_uri.c b/src/core/parser/parse_uri.c index af03b92f0..dbf5a7f9f 100644 --- a/src/core/parser/parse_uri.c +++ b/src/core/parser/parse_uri.c @@ -528,23 +528,23 @@ int parse_uri(char* buf, int len, struct sip_uri* uri) } break; case URI_HOST: - switch(*p){ - case '[': - state=URI_HOST6_P; - break; - case ':': - case ';': - case '?': /* null host name ->invalid */ - case '&': - case '@': /*chars not allowed in hosts names */ + if(*p == '[') { + state = URI_HOST6_P; + } else { + if(isalnum(*p)) { + state = URI_HOST_P; + } else { goto error_bad_host; - default: - state=URI_HOST_P; + } } break; case URI_HOST_P: - switch(*p){ + switch(*p) { check_host_end; + default: + if(!isalnum(*p) && (*p != '.') && (*p != '-')) { + goto error_bad_host; + } } break; case URI_HOST6_END: diff --git a/src/core/parser/sdp/sdp.c b/src/core/parser/sdp/sdp.c index 32db4f194..f922f1b0f 100644 --- a/src/core/parser/sdp/sdp.c +++ b/src/core/parser/sdp/sdp.c @@ -371,7 +371,7 @@ static int parse_sdp_session(str *sdp_body, int session_num, str *cnt_disp, sdp_ str fmtp_string; str remote_candidates = {"a:remote-candidates:", 20}; - /* hook the start and lenght of sdp body inside structure + /* hook the start and length of sdp body inside structure * - shorcut useful for multi-part bodies and sdp operations */ _sdp->text = *sdp_body; @@ -410,6 +410,14 @@ static int parse_sdp_session(str *sdp_body, int session_num, str *cnt_disp, sdp_ session = add_sdp_session(_sdp, session_num, cnt_disp); if (session == NULL) return -1; + /* Get sess-version */ + tmpstr1.s = o1p; + tmpstr1.len = eat_line(o1p,m1p-o1p) - o1p; + if ( extract_sess_version(&tmpstr1, &session->o_sess_version) == -1 ) { + LM_ERR("can't extract origin sess-version from the message\n"); + return -1; + } + /* Get origin IP */ tmpstr1.s = o1p; tmpstr1.len = bodylimit - tmpstr1.s; /* limit is session limit text */ diff --git a/src/core/parser/sdp/sdp.h b/src/core/parser/sdp/sdp.h index ab32d93d8..84ebcfc8a 100644 --- a/src/core/parser/sdp/sdp.h +++ b/src/core/parser/sdp/sdp.h @@ -102,6 +102,7 @@ typedef struct sdp_session_cell { int pf; /**< connection address family: AF_INET/AF_INET6 */ str ip_addr; /**< connection address */ /* o=
*/ + str o_sess_version; /** < origin session version number */ int o_pf; /**< origin address family: AF_INET/AF_INET6 */ str o_ip_addr; /**< origin address */ /* b=: */ diff --git a/src/core/parser/sdp/sdp_helpr_funcs.c b/src/core/parser/sdp/sdp_helpr_funcs.c index 5657cea4a..2562b3323 100644 --- a/src/core/parser/sdp/sdp_helpr_funcs.c +++ b/src/core/parser/sdp/sdp_helpr_funcs.c @@ -469,7 +469,7 @@ int extract_mediaip(str *body, str *mediaip, int *pf, char *line) return -1; } /* safety checks: - * - for lenght, at least 6: ' IP[4|6] x...' + * - for length, at least 6: ' IP[4|6] x...' * - white space after */ if(cp + 6 > mediaip->s + mediaip->len && cp[4]!=' ') { @@ -590,6 +590,74 @@ int extract_media_attr(str *body, str *mediamedia, str *mediaport, str *mediatra return 0; } +int extract_sess_version(str* oline, str* sess_version) { + + char* cp0 = NULL; + char* cp = NULL; + int len = 0; + char ws = ' '; + int i=0; + + /* + "o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5" CR LF + "o=W 1 2 IN IP4 0.0.0.0" CR LF -> 24 + "o=W 1 2 IN IP6 ::1" CR LF -> 20 + "o=W 1 2 X Y Z" CR LF -> 15 + */ + if ( oline->s == NULL || oline->len < 15 ) + { + LM_ERR("invalid o -line\n"); + return -1; + } + + if ( sess_version == NULL ) + { + LM_ERR("invalid result pointer\n"); + return -1; + } + + LM_DBG("oline(%d): >%.*s<\n", oline->len, oline->len, oline->s); + + // jump over o= + cp = oline->s + 2; + len = oline->len - 2; + + // find whitespace 3 times + do + { + cp0=cp; + //LM_DBG("loop %d: >%.*s<\n", len, len, cp0); + + cp = (char*)ser_memmem(cp0, &ws, len, 1); + if ( cp == NULL) { break; } + + //LM_DBG("cp0: %p cp: %p (%ld)\n", cp0, cp, cp-cp0); + len-=cp-cp0; + + // step over whitespace + if ( len > 0 ) + { + cp++; + len--; + } + + i++; + } while ( len < oline->len && i < 3 ); + + len = cp-cp0-1; + LM_DBG("end %d: >%.*s<\n", len, len, cp0); + + sess_version->s = cp0; + sess_version->len = len; + + if (!isdigit(*cp0)) + { + LM_WARN("not digit >%.*s<\n", len, cp0); + } + + return 1; +} + /* * Auxiliary for some functions. diff --git a/src/core/parser/sdp/sdp_helpr_funcs.h b/src/core/parser/sdp/sdp_helpr_funcs.h index cc46375ad..406f57b16 100644 --- a/src/core/parser/sdp/sdp_helpr_funcs.h +++ b/src/core/parser/sdp/sdp_helpr_funcs.h @@ -52,6 +52,7 @@ int extract_mediaip(str *body, str *mediaip, int *pf, char *line); int extract_media_attr(str *body, str *mediamedia, str *mediaport, str *mediatransport, str *mediapayload, int *is_rtp); int extract_bwidth(str *body, str *bwtype, str *bwwitdth); int extract_candidate(str *body, sdp_stream_cell_t *stream); +int extract_sess_version(str* oline, str* sess_version); /* RFC3605 attributes */ int extract_rtcp(str *body, str *rtcp); diff --git a/src/core/ppcfg.c b/src/core/ppcfg.c index f8688988a..844247faa 100644 --- a/src/core/ppcfg.c +++ b/src/core/ppcfg.c @@ -163,7 +163,7 @@ found_repl: return 0; error: - return 1; + return -1; } int pp_subst_run(char **data) @@ -225,4 +225,56 @@ void pp_ifdef_level_check(void) } } +/** + * + */ +void pp_define_core(void) +{ + char defval[64]; + char *p; + int n; + + strcpy(defval, NAME); + p = defval; + while(*p) { + *p = (char)toupper(*p); + p++; + } + + n = snprintf(p, 64 - (int)(p-defval), "_%d", VERSIONVAL/1000000); + if(n<0 || n>=64 - (int)(p-defval)) { + LM_ERR("faild to build define token\n"); + return; + } + pp_define_set_type(0); + if(pp_define(strlen(defval), defval)<0) { + LM_ERR("unable to set cfg define: %s\n", defval); + return; + } + + n = snprintf(p, 64 - (int)(p-defval), "_%d_%d", VERSIONVAL/1000000, + (VERSIONVAL%1000000)/1000); + if(n<0 || n>=64 - (int)(p-defval)) { + LM_ERR("faild to build define token\n"); + return; + } + pp_define_set_type(0); + if(pp_define(strlen(defval), defval)<0) { + LM_ERR("unable to set cfg define: %s\n", defval); + return; + } + + n = snprintf(p, 64 - (int)(p-defval), "_%d_%d_%d", VERSIONVAL/1000000, + (VERSIONVAL%1000000)/1000, VERSIONVAL%1000); + if(n<0 || n>=64 - (int)(p-defval)) { + LM_ERR("faild to build define token\n"); + return; + } + pp_define_set_type(0); + if(pp_define(strlen(defval), defval)<0) { + LM_ERR("unable to set cfg define: %s\n", defval); + return; + } +} + /* vi: set ts=4 sw=4 tw=79:ai:cindent: */ diff --git a/src/core/ppcfg.h b/src/core/ppcfg.h index d7f760f27..432d76bcf 100644 --- a/src/core/ppcfg.h +++ b/src/core/ppcfg.h @@ -25,7 +25,14 @@ #include "str.h" +typedef struct ksr_ppdefine { + str name; + str value; + int dtype; +} ksr_ppdefine_t; + str* pp_get_define_name(int idx); +ksr_ppdefine_t* pp_get_define(int idx); int pp_subst_add(char *data); int pp_substdef_add(char *data, int mode); @@ -38,6 +45,8 @@ int pp_define_set_type(int type); void pp_ifdef_level_update(int val); void pp_ifdef_level_check(void); +void pp_define_core(void); + #endif /*_PPCFG_H_*/ /* vi: set ts=4 sw=4 tw=79:ai:cindent: */ diff --git a/src/core/pt.c b/src/core/pt.c index bf84df404..c4524a8fd 100644 --- a/src/core/pt.c +++ b/src/core/pt.c @@ -125,6 +125,7 @@ int init_pt(int proc_no) #endif process_no=0; /*main process number*/ pt[process_no].pid=getpid(); + pt[process_no].rank=PROC_MAIN; memcpy(pt[process_no].desc,"main",5); *process_count=1; return 0; @@ -322,6 +323,7 @@ int fork_process(int child_id, char *desc, int make_sock) /* record pid twice to avoid the child using it, before * parent gets a chance to set it*/ pt[process_no].pid=getpid(); + pt[process_no].rank=child_id; #else /* wait for parent to get out of critical zone. * this is actually relevant as the parent updates @@ -335,10 +337,14 @@ int fork_process(int child_id, char *desc, int make_sock) unix_tcp_sock=sockfd[1]; } #endif - if ((child_id!=PROC_NOCHLDINIT) && (init_child(child_id) < 0)) { - LM_ERR("init_child failed for process %d, pid %d, \"%s\"\n", - process_no, pt[process_no].pid, pt[process_no].desc); - return -1; + if (child_id!=PROC_NOCHLDINIT) { + if(init_child(child_id) < 0) { + LM_ERR("init_child failed for process %d, pid %d, \"%s\"\n", + process_no, pt[process_no].pid, pt[process_no].desc); + return -1; + } + } else { + pt[process_no].status = 1; } return pid; } else { @@ -349,6 +355,7 @@ int fork_process(int child_id, char *desc, int make_sock) #endif /* add the process to the list in shm */ pt[child_process_no].pid=pid; + pt[child_process_no].rank=child_id; if (desc){ strncpy(pt[child_process_no].desc, desc, MAX_PT_DESC-1); } @@ -468,14 +475,19 @@ int fork_tcp_process(int child_id, char *desc, int r, int *reader_fd_1) lock_get(process_lock); lock_release(process_lock); #endif + pt[process_no].rank=child_id; close(sockfd[0]); unix_tcp_sock=sockfd[1]; close(reader_fd[0]); if (reader_fd_1) *reader_fd_1=reader_fd[1]; - if ((child_id!=PROC_NOCHLDINIT) && (init_child(child_id) < 0)) { - LM_ERR("init_child failed for process %d, pid %d, \"%s\"\n", - process_no, pt[process_no].pid, pt[process_no].desc); - return -1; + if (child_id!=PROC_NOCHLDINIT) { + if (init_child(child_id) < 0) { + LM_ERR("init_child failed for process %d, pid %d, \"%s\"\n", + process_no, pt[process_no].pid, pt[process_no].desc); + return -1; + } + } else { + pt[process_no].status = 1; } return pid; } else { @@ -486,6 +498,7 @@ int fork_tcp_process(int child_id, char *desc, int r, int *reader_fd_1) #endif /* add the process to the list in shm */ pt[child_process_no].pid=pid; + pt[child_process_no].rank=child_id; pt[child_process_no].unix_sock=sockfd[0]; pt[child_process_no].idx=r; if (desc){ @@ -581,3 +594,26 @@ int mem_dump_shm_fixup(void *handle, str *gname, str *name, void **val) return 0; } #endif + +/* cache if child processes were initialized */ +static int _sr_instance_ready = 0; + +/** + * return 1 if all child processes were initialized + */ +int sr_instance_ready(void) +{ + int i; + if(_sr_instance_ready==1) { + return 1; + } + for (i=0; i<*process_count; i++) { + if(pt[i].rank!=PROC_MAIN && pt[i].rank!=PROC_NOCHLDINIT) { + if(pt[i].status==0) { + return 0; + } + } + } + _sr_instance_ready = 1; + return 1; +} diff --git a/src/core/pt.h b/src/core/pt.h index 6b170d34e..c8d1827e2 100644 --- a/src/core/pt.h +++ b/src/core/pt.h @@ -40,6 +40,8 @@ struct process_table { int unix_sock; /* unix socket on which tcp main listens */ int idx; /* tcp child index, -1 for other processes */ #endif + int status; /* set to 1 when child init is done */ + int rank; /* rank of process */ char desc[MAX_PT_DESC]; }; @@ -75,14 +77,16 @@ char* my_desc(void); */ int fork_process(int child_id,char *desc,int make_sock); + +#ifdef USE_TCP /** * Forks a new TCP process. + * @param child_id child id of the new process * @param desc - text description for the process table * @param r - index in the tcp_children array * @param *reader_fd_1 - pointer to return the reader_fd[1] * @returns the pid of the new process */ -#ifdef USE_TCP int fork_tcp_process(int child_id,char *desc,int r,int *reader_fd_1); #endif @@ -96,4 +100,8 @@ int mem_dump_shm_fixup(void *handle, str *gname, str *name, void **val); unsigned int set_fork_delay(unsigned int v); +int sr_instance_started(void); + +int sr_instance_ready(void); + #endif diff --git a/src/core/pvapi.c b/src/core/pvapi.c index 8e55e77e1..9b5234f1b 100644 --- a/src/core/pvapi.c +++ b/src/core/pvapi.c @@ -287,6 +287,7 @@ int pv_cache_drop(void) pvi->spec.pvp.pvn.nfree((void*)(&pvi->spec.pvp.pvn)); } pkg_free(pvi); + _pv_cache_counter--; return 1; } pvp = pvi; @@ -309,6 +310,7 @@ int pv_cache_drop(void) pvi->spec.pvp.pvn.nfree((void*)(&pvi->spec.pvp.pvn)); } pkg_free(pvi); + _pv_cache_counter--; return 1; } pvp = pvi; @@ -364,6 +366,7 @@ pv_spec_t* pv_cache_add(str *name) pvn->pvid = pvid; pvn->next = _pv_cache[pvid%PV_CACHE_SIZE]; _pv_cache[pvid%PV_CACHE_SIZE] = pvn; + _pv_cache_counter++; LM_DBG("pvar [%.*s] added in cache\n", name->len, name->s); return &pvn->spec; @@ -671,7 +674,8 @@ static char pv_str_empty_buf[2]; static char pv_str_null_buf[8]; static str pv_str_empty = { "", 0 }; -static str pv_str_null = { "", 6 }; +#define PV_STR_NULL_VAL "" +static str pv_str_null = { PV_STR_NULL_VAL, sizeof(PV_STR_NULL_VAL)-1 }; int pv_get_null(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) { if(res==NULL) @@ -683,6 +687,14 @@ int pv_get_null(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) return 0; } +/** + * + */ +str *pv_get_null_str(void) +{ + return &pv_str_null; +} + /** * */ @@ -2000,7 +2012,7 @@ int pv_init_api(void) pv_str_empty_buf[0] = '\0'; pv_str_empty_buf[1] = '\0'; pv_str_empty.s = pv_str_empty_buf; - strcpy(pv_str_null_buf, ""); + strcpy(pv_str_null_buf, PV_STR_NULL_VAL); pv_str_null.s = pv_str_null_buf; if(register_pvars_mod("core", _core_pvs)<0) diff --git a/src/core/pvar.h b/src/core/pvar.h index 3e838e20f..564bc03d9 100644 --- a/src/core/pvar.h +++ b/src/core/pvar.h @@ -209,6 +209,7 @@ int pv_free_extra_list(void); int pv_locate_name(str *in); pv_spec_t* pv_cache_get(str *name); str* pv_cache_get_name(pv_spec_t *spec); +str *pv_get_null_str(void); /*! \brief PV helper functions */ int pv_get_null(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); diff --git a/src/core/receive.c b/src/core/receive.c index fe7bb6eed..1dbe07ad9 100644 --- a/src/core/receive.c +++ b/src/core/receive.c @@ -49,6 +49,7 @@ #include "xavp.h" #endif #include "select_buf.h" +#include "locking.h" #include "tcp_server.h" /* for tcpconn_add_alias */ #include "tcp_options.h" /* for access to tcp_accept_aliases*/ @@ -69,6 +70,36 @@ str default_global_port = {0, 0}; str default_via_address = {0, 0}; str default_via_port = {0, 0}; +int ksr_route_locks_size = 0; +static rec_lock_set_t* ksr_route_locks_set = NULL; + +int ksr_route_locks_set_init(void) +{ + if(ksr_route_locks_set!=NULL || ksr_route_locks_size<=0) + return 0; + + ksr_route_locks_set = rec_lock_set_alloc(ksr_route_locks_size); + if(ksr_route_locks_set==NULL) { + LM_ERR("failed to allocate route locks set\n"); + return -1; + } + if(rec_lock_set_init(ksr_route_locks_set)==NULL) { + LM_ERR("failed to init route locks set\n"); + return -1; + } + return 0; +} + +void ksr_route_locks_set_destroy(void) +{ + if(ksr_route_locks_set==NULL) + return; + + rec_lock_set_destroy(ksr_route_locks_set); + rec_lock_set_dealloc(ksr_route_locks_set); + ksr_route_locks_set = NULL; +} + /** * increment msg_no and return the new value */ @@ -137,6 +168,8 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) sr_net_info_t netinfo; sr_kemi_eng_t *keng = NULL; sr_event_param_t evp = {0}; + unsigned int cidlockidx = 0; + unsigned int cidlockset = 0; int errsipmsg = 0; if(sr_event_enabled(SREV_NET_DATA_RECV)) { @@ -158,7 +191,7 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) len = inb.len; msg = pkg_malloc(sizeof(struct sip_msg)); - if(msg == 0) { + if(unlikely(msg == 0)) { LM_ERR("no mem for sip_msg\n"); goto error00; } @@ -170,7 +203,7 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) /* fill in msg */ msg->buf = buf; msg->len = len; - /* zero termination (termination of orig message bellow not that + /* zero termination (termination of orig message below not that * useful as most of the work is done with scratch-pad; -jiri */ /* buf[len]=0; */ /* WARNING: zero term removed! */ msg->rcv = *rcv_info; @@ -201,8 +234,8 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) goto error02; } - if(parse_headers(msg, HDR_FROM_F | HDR_TO_F | HDR_CALLID_F | HDR_CSEQ_F, 0) - < 0) { + if(unlikely(parse_headers(msg, HDR_FROM_F | HDR_TO_F | HDR_CALLID_F | HDR_CSEQ_F, 0) + < 0)) { LM_WARN("parsing relevant headers failed\n"); } LM_DBG("--- received sip message - %s - call-id: [%.*s] - cseq: [%.*s]\n", @@ -218,6 +251,13 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) /* ... clear branches from previous message */ clear_branches(); + if(unlikely(ksr_route_locks_set!=NULL && msg->callid && msg->callid->body.s + && msg->callid->body.len >0)) { + cidlockidx = get_hash1_raw(msg->callid->body.s, msg->callid->body.len); + cidlockidx = cidlockidx % ksr_route_locks_set->size; + cidlockset = 1; + } + if(msg->first_line.type == SIP_REQUEST) { ruri_mark_new(); /* ruri is usable for forking (not consumed yet) */ if(!IS_SIP(msg)) { @@ -228,7 +268,7 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) } } /* sanity checks */ - if((msg->via1 == 0) || (msg->via1->error != PARSE_OK)) { + if(unlikely((msg->via1 == 0) || (msg->via1->error != PARSE_OK))) { /* no via, send back error ? */ LM_ERR("no via found in request\n"); STATS_BAD_MSG(); @@ -279,13 +319,29 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) " engine registered\n"); goto error_req; } - if(keng->froute(msg, REQUEST_ROUTE, NULL, NULL) < 0) { - LM_NOTICE("negative return code from engine function\n"); + if(unlikely(cidlockset)) { + rec_lock_set_get(ksr_route_locks_set, cidlockidx); + if(sr_kemi_route(keng, msg, REQUEST_ROUTE, NULL, NULL) < 0) + LM_NOTICE("negative return code from engine function\n"); + rec_lock_set_release(ksr_route_locks_set, cidlockidx); + } else { + if(sr_kemi_route(keng, msg, REQUEST_ROUTE, NULL, NULL) < 0) + LM_NOTICE("negative return code from engine function\n"); } } else { - if(run_top_route(main_rt.rlist[DEFAULT_RT], msg, 0) < 0) { - LM_WARN("error while trying script\n"); - goto error_req; + if(unlikely(cidlockset)) { + rec_lock_set_get(ksr_route_locks_set, cidlockidx); + if(run_top_route(main_rt.rlist[DEFAULT_RT], msg, 0) < 0) { + rec_lock_set_release(ksr_route_locks_set, cidlockidx); + LM_WARN("error while trying script\n"); + goto error_req; + } + rec_lock_set_release(ksr_route_locks_set, cidlockidx); + } else { + if(run_top_route(main_rt.rlist[DEFAULT_RT], msg, 0) < 0) { + LM_WARN("error while trying script\n"); + goto error_req; + } } } @@ -335,7 +391,9 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) } /* exec the onreply routing script */ - keng = sr_kemi_eng_get(); + if(kemi_reply_route_callback.len>0) { + keng = sr_kemi_eng_get(); + } if(onreply_rt.rlist[DEFAULT_RT] != NULL || keng != NULL) { set_route_type(CORE_ONREPLY_ROUTE); ret = 1; @@ -343,10 +401,22 @@ int receive_msg(char *buf, unsigned int len, struct receive_info *rcv_info) bctx = sr_kemi_act_ctx_get(); init_run_actions_ctx(&ctx); sr_kemi_act_ctx_set(&ctx); - ret = keng->froute(msg, CORE_ONREPLY_ROUTE, NULL, NULL); + if(unlikely(cidlockset)) { + rec_lock_set_get(ksr_route_locks_set, cidlockidx); + ret = sr_kemi_route(keng, msg, CORE_ONREPLY_ROUTE, NULL, NULL); + rec_lock_set_release(ksr_route_locks_set, cidlockidx); + } else { + ret = sr_kemi_route(keng, msg, CORE_ONREPLY_ROUTE, NULL, NULL); + } sr_kemi_act_ctx_set(bctx); } else { - ret = run_top_route(onreply_rt.rlist[DEFAULT_RT], msg, &ctx); + if(unlikely(cidlockset)) { + rec_lock_set_get(ksr_route_locks_set, cidlockidx); + ret = run_top_route(onreply_rt.rlist[DEFAULT_RT], msg, &ctx); + rec_lock_set_release(ksr_route_locks_set, cidlockidx); + } else { + ret = run_top_route(onreply_rt.rlist[DEFAULT_RT], msg, &ctx); + } } #ifndef NO_ONREPLY_ROUTE_ERROR if(unlikely(ret < 0)) { diff --git a/src/core/receive.h b/src/core/receive.h index 0a928c5d4..d4ce7895a 100644 --- a/src/core/receive.h +++ b/src/core/receive.h @@ -35,4 +35,7 @@ int receive_msg(char* buf, unsigned int len, struct receive_info *ri); unsigned int inc_msg_no(void); void ksr_msg_env_reset(void); +int ksr_route_locks_set_init(void); +void ksr_route_locks_set_destroy(void); + #endif diff --git a/src/core/resolve.c b/src/core/resolve.c index 2b1441e36..80020a96f 100644 --- a/src/core/resolve.c +++ b/src/core/resolve.c @@ -950,9 +950,7 @@ again: if (flags & RES_AR){ flags&=~RES_AR; answers_no=ntohs((unsigned short)buff.hdr.nscount); -#ifdef RESOLVE_DBG LM_DBG("skipping %d NS (p=%p, end=%p)\n", answers_no, p, end); -#endif for (r=0; (rorder:-1, *crt?(int)(*crt)->pref:-1, (int)*crt_proto, (int)n->order, (int)n->pref, (int)n_proto); -#endif if ((*crt==0) || ((*crt_proto!=n_proto) && ( naptr_proto_preferred(n_proto, *crt_proto))) ) goto change; @@ -1166,14 +1160,10 @@ int naptr_choose (struct naptr_rdata** crt, char* crt_proto, (n->pref < (*crt)->pref)))){ goto change; } -#ifdef NAPTR_DBG LM_DBG("no change\n"); -#endif return 0; change: -#ifdef NAPTR_DBG LM_DBG("changed\n"); -#endif *crt_proto=n_proto; *crt=n; return 1; @@ -1220,10 +1210,8 @@ struct hostent* srv_sip_resolvehost(str* name, int zt, unsigned short* port, he=0; goto end; } -#ifdef RESOLVE_DBG LM_DBG("%.*s:%d proto=%d\n", name->len, name->s, port?(int)*port:-1, proto?(int)*proto:-1); -#endif if (is_srv){ /* skip directly to srv resolving */ srv_proto=(proto)?*proto:0; @@ -1289,10 +1277,8 @@ do_srv: he=resolvehost(srv->name); if (he!=0){ /* we found it*/ -#ifdef RESOLVE_DBG LM_DBG("found SRV(%s) = %s:%d in AR\n", srv_target, srv->name, srv->port); -#endif *port=srv->port; /* cleanup on exit */ goto end; @@ -1310,10 +1296,8 @@ do_srv: he=resolvehost(srv->name); if (he!=0){ /* we found it*/ -#ifdef RESOLVE_DBG LM_DBG("SRV(%s) = %s:%d\n", srv_target, srv->name, srv->port); -#endif *port=srv->port; /* cleanup on exit */ goto end; @@ -1326,10 +1310,8 @@ do_srv: goto end; } /* cleanup on exit */ -#ifdef RESOLVE_DBG LM_DBG("no SRV record found for %.*s," " trying 'normal' lookup...\n", name->len, name->s); -#endif } } if (likely(!zt)){ @@ -1340,11 +1322,9 @@ do_srv: he=resolvehost(name->s); } end: -#ifdef RESOLVE_DBG LM_DBG("returning %p (%.*s:%d proto=%d)\n", he, name->len, name->s, port?(int)*port:-1, proto?(int)*proto:-1); -#endif if (srv_head) free_rdata_list(srv_head); return he; @@ -1402,10 +1382,8 @@ struct rdata* naptr_sip_iterate(struct rdata* naptr_head, i++; continue; /* already tried */ } -#ifdef NAPTR_DBG LM_DBG("found a valid sip NAPTR rr %.*s, proto %d\n", naptr->repl_len, naptr->repl, (int)naptr_proto); -#endif if ((naptr_proto_supported(naptr_proto))){ if (naptr_choose(&naptr_saved, &saved_proto, naptr, naptr_proto)) { @@ -1417,11 +1395,9 @@ struct rdata* naptr_sip_iterate(struct rdata* naptr_head, } if (naptr_saved){ /* found something */ -#ifdef NAPTR_DBG LM_DBG("choosed NAPTR rr %.*s, proto %d tried: 0x%x\n", naptr_saved->repl_len, naptr_saved->repl, (int)saved_proto, *tried); -#endif *tried|=1<s=naptr_saved->repl; @@ -1645,10 +1621,8 @@ struct hostent* naptr_sip_resolvehost(str* name, unsigned short* port, } } /*clean up on exit*/ -#ifdef RESOLVE_DBG LM_DBG("no NAPTR record found for %.*s, trying SRV lookup...\n", name->len, name->s); -#endif } /* fallback to srv lookup */ if(proto) *proto = origproto; diff --git a/src/core/resolve.h b/src/core/resolve.h index 1946d2508..6b1e6cff2 100644 --- a/src/core/resolve.h +++ b/src/core/resolve.h @@ -50,12 +50,6 @@ #endif -/* define RESOLVE_DBG for debugging info (very noisy) */ -#define RESOLVE_DBG -/* define NAPTR_DBG for naptr related debugging info (very noisy) */ -#define NAPTR_DBG - - #define MAX_QUERY_SIZE 8192 #define ANS_SIZE 8192 #define DNS_HDR_SIZE 12 @@ -258,10 +252,8 @@ static inline struct ip_addr* str2ip(str* st) return &ip; error_dots: -#ifdef RESOLVE_DBG DBG("str2ip: ERROR: too %s dots in [%.*s]\n", (i>3)?"many":"few", st->len, st->s); -#endif return 0; error_char: /* @@ -355,21 +347,15 @@ static inline struct ip_addr* str2ip6(str* st) return &ip; error_too_many_colons: -#ifdef RESOLVE_DBG DBG("str2ip6: ERROR: too many colons in [%.*s]\n", st->len, st->s); -#endif return 0; error_too_few_colons: -#ifdef RESOLVE_DBG DBG("str2ip6: ERROR: too few colons in [%.*s]\n", st->len, st->s); -#endif return 0; error_colons: -#ifdef RESOLVE_DBG DBG("str2ip6: ERROR: too many double colons in [%.*s]\n", st->len, st->s); -#endif return 0; error_char: diff --git a/src/core/route.c b/src/core/route.c index fdc042ff6..aa814007f 100644 --- a/src/core/route.c +++ b/src/core/route.c @@ -603,7 +603,7 @@ int fix_actions(struct action* a) void *tmp_p; int ret; int i; - sr31_cmd_export_t* cmd; + ksr_cmd_export_t* cmd; str s; struct hostent* he; struct ip_addr ip; diff --git a/src/core/socket_info.h b/src/core/socket_info.h index 03225acb6..641d8a276 100644 --- a/src/core/socket_info.h +++ b/src/core/socket_info.h @@ -146,5 +146,6 @@ typedef struct _sr_phostp { } sr_phostp_t; struct socket_info* lookup_local_socket(str *phostp); +int parse_protohostport(str* ins, sr_phostp_t *r); #endif diff --git a/src/core/sr_module.c b/src/core/sr_module.c index 62fc81f21..0d82c15fd 100644 --- a/src/core/sr_module.c +++ b/src/core/sr_module.c @@ -201,78 +201,14 @@ int register_builtin_modules() } - -/** convert cmd exports to current format. - * @param ver - module interface versions (0 == ser, 1 == kam). - * @param src - null terminated array of cmd exports - * (either ser_cmd_export_t or kam_cmd_export_t, depending - * on ver). - * @param mod - pointer to module exports structure. - * @return - pkg_malloc'ed null terminated sr_cmd_export_v31_t array with - * the converted cmd exports or 0 on error. - */ -static sr31_cmd_export_t* sr_cmd_exports_convert(unsigned ver, - void* src, void* mod) -{ - int i, n; - ser_cmd_export_t* ser_cmd; - kam_cmd_export_t* kam_cmd; - sr31_cmd_export_t* ret; - - ser_cmd = 0; - kam_cmd = 0; - ret = 0; - n = 0; - /* count the number of elements */ - if (ver == 0) { - ser_cmd = src; - for (; ser_cmd[n].name; n++); - } else if (ver == 1) { - kam_cmd = src; - for (; kam_cmd[n].name; n++); - } else goto error; /* unknown interface version */ - /* alloc & init new array */ - ret = pkg_malloc(sizeof(*ret)*(n+1)); - memset(ret, 0, sizeof(*ret)*(n+1)); - /* convert/copy */ - for (i=0; i < n; i++) { - if (ver == 0) { - ret[i].name = ser_cmd[i].name; - ret[i].function = ser_cmd[i].function; - ret[i].param_no = ser_cmd[i].param_no; - ret[i].fixup = ser_cmd[i].fixup; - ret[i].free_fixup = 0; /* no present in ser <= 2.1 */ - ret[i].flags = ser_cmd[i].flags; - } else { - ret[i].name = kam_cmd[i].name; - ret[i].function = kam_cmd[i].function; - ret[i].param_no = kam_cmd[i].param_no; - ret[i].fixup = kam_cmd[i].fixup; - ret[i].free_fixup = kam_cmd[i].free_fixup; - ret[i].flags = kam_cmd[i].flags; - } - /* 3.1+ specific stuff */ - ret[i].fixup_flags = 0; - ret[i].module_exports = mod; - /* fill known free fixups */ - if (ret[i].fixup && ret[i].free_fixup == 0) - ret[i].free_fixup = get_fixup_free(ret[i].fixup); - } - return ret; -error: - return 0; -} - - - /* registers a module, register_f= module register functions * returns <0 on error, 0 on success */ -static int register_module(unsigned ver, union module_exports_u* e, - char* path, void* handle) +static int register_module(module_exports_t* e, char* path, void* handle) { int ret, i; struct sr_module* mod; char defmod[64]; + int n = 0; ret=-1; @@ -282,68 +218,49 @@ static int register_module(unsigned ver, union module_exports_u* e, ret=E_OUT_OF_MEM; goto error; } - memset(mod,0, sizeof(struct sr_module)); + memset(mod, 0, sizeof(struct sr_module)); mod->path=path; mod->handle=handle; - mod->orig_mod_interface_ver=ver; - /* convert exports to sr31 format */ - if (ver == 0) { - /* ser <= 3.0 */ - mod->exports.name = e->v0.name; - if (e->v0.cmds) { - mod->exports.cmds = sr_cmd_exports_convert(ver, e->v0.cmds, mod); - if (mod->exports.cmds == 0) { - LM_ERR("failed to convert module command exports to 3.1 format" - " for module \"%s\" (%s), interface version %d\n", - mod->exports.name, mod->path, ver); - ret = E_UNSPEC; - goto error; - } - } - mod->exports.params = e->v0.params; - mod->exports.init_f = e->v0.init_f; - mod->exports.response_f = e->v0.response_f; - mod->exports.destroy_f = e->v0.destroy_f; - mod->exports.onbreak_f = e->v0.onbreak_f; - mod->exports.init_child_f = e->v0.init_child_f; - mod->exports.dlflags = 0; /* not used in ser <= 3.0 */ - mod->exports.rpc_methods = e->v0.rpc_methods; - /* the rest are 0, not used in ser */ - } else if (ver == 1) { - /* kamailio <= 3.0 */ - mod->exports.name = e->v1.name; - if (e->v1.cmds) { - mod->exports.cmds = sr_cmd_exports_convert(ver, e->v1.cmds, mod); - if (mod->exports.cmds == 0) { - LM_ERR("failed to convert module command exports to 3.1 format" - " for module \"%s\" (%s), interface version %d\n", - mod->exports.name, mod->path, ver); - ret = E_UNSPEC; - goto error; - } + + /* copy and convert fields */ + mod->exports.name = e->name; + + mod->exports.dlflags = e->dlflags; + + if(e->cmds) { + for (n=0; e->cmds[n].name; n++); + } + mod->exports.cmds = pkg_malloc(sizeof(ksr_cmd_export_t)*(n+1)); + memset(mod->exports.cmds, 0, sizeof(ksr_cmd_export_t)*(n+1)); + for (i=0; i < n; i++) { + mod->exports.cmds[i].name = e->cmds[i].name; + mod->exports.cmds[i].function = e->cmds[i].function; + mod->exports.cmds[i].param_no = e->cmds[i].param_no; + mod->exports.cmds[i].fixup = e->cmds[i].fixup; + mod->exports.cmds[i].free_fixup = e->cmds[i].free_fixup; + mod->exports.cmds[i].flags = e->cmds[i].flags; + + mod->exports.cmds[i].fixup_flags = 0; + mod->exports.cmds[i].module_exports = mod; + /* fill known free fixups */ + if (mod->exports.cmds[i].fixup && mod->exports.cmds[i].free_fixup == 0) { + mod->exports.cmds[i].free_fixup + = get_fixup_free(mod->exports.cmds[i].fixup); } - mod->exports.params = e->v1.params; - mod->exports.init_f = e->v1.init_f; - mod->exports.response_f = e->v1.response_f; - mod->exports.destroy_f = e->v1.destroy_f; - mod->exports.onbreak_f = 0; /* not used in k <= 3.0 */ - mod->exports.init_child_f = e->v1.init_child_f; - mod->exports.dlflags = e->v1.dlflags; - mod->exports.rpc_methods = 0; /* not used in k <= 3.0 */ - mod->exports.stats = e->v1.stats; - mod->exports.nn_cmds = e->v1.nn_cmds; - mod->exports.items = e->v1.items; - mod->exports.procs = e->v1.procs; - } else { - LM_ERR("unsupported module interface version %d\n", ver); - ret = E_UNSPEC; - goto error; } - if (mod->exports.items) { + mod->exports.params = e->params; + mod->exports.rpc_methods = e->rpc_methods; + mod->exports.pv_items = e->pv_items; + mod->exports.response_f = e->response_f; + mod->exports.init_mod_f = e->init_mod_f; + mod->exports.init_child_f = e->init_child_f; + mod->exports.destroy_mod_f = e->destroy_mod_f; + + if (mod->exports.pv_items) { /* register module pseudo-variables for kamailio modules */ LM_DBG("register PV from: %s\n", mod->exports.name); - if (register_pvars_mod(mod->exports.name, mod->exports.items)!=0) { + if (register_pvars_mod(mod->exports.name, mod->exports.pv_items)!=0) { LM_ERR("failed to register pseudo-variables for module %s (%s)\n", mod->exports.name, path); ret = E_UNSPEC; @@ -451,8 +368,7 @@ int load_module(char* mod_path) void* handle; char* error; mod_register_function mr; - union module_exports_u* exp; - unsigned* mod_if_ver; + module_exports_t* exp; struct sr_module* t; struct stat stat_buf; str modname; @@ -593,11 +509,6 @@ reload: if (!version_control(handle, path)) { exit(-1); } - mod_if_ver = (unsigned *)dlsym(handle, "module_interface_ver"); - if (mod_if_ver==NULL || (error =(char*)dlerror())!=0 ){ - LM_ERR("no module interface version in module <%s>\n", path ); - goto error1; - } /* launch register */ mr = (mod_register_function)dlsym(handle, "mod_register"); if (((error =(char*)dlerror())==0) && mr) { @@ -617,7 +528,7 @@ reload: goto error; } } - exp = (union module_exports_u*)dlsym(handle, "exports"); + exp = (module_exports_t*)dlsym(handle, "exports"); if(exp==NULL) { error =(char*)dlerror(); LM_DBG("attempt to lookup exports structure failed - dlerror: %s\n", @@ -634,7 +545,7 @@ reload: expref.len -= 3; snprintf(exbuf, 62, "_%.*s_exports", expref.len, expref.s); LM_DBG("looking up exports with name: %s\n", exbuf); - exp = (union module_exports_u*)dlsym(handle, exbuf); + exp = (module_exports_t*)dlsym(handle, exbuf); if(exp==NULL || (error =(char*)dlerror())!=0 ){ LM_ERR("failure for exports symbol: %s - dlerror: %s\n", exbuf, (error)?error:"none"); @@ -642,22 +553,20 @@ reload: } } /* hack to allow for kamailio style dlflags inside exports */ - if (*mod_if_ver == 1) { - new_dlflags = exp->v1.dlflags; - if (new_dlflags!=dlflags && new_dlflags!=DEFAULT_DLFLAGS) { - /* we have to reload the module */ - dlclose(handle); - DEBUG("%s: exports dlflags interface is deprecated and it will not" - " be supported in newer versions; consider using" - " mod_register() instead\n", path); - dlflags=new_dlflags; - retries--; - if (retries>0) goto reload; - LM_ERR("%s: cannot agree on the dlflags\n", path); - goto error; - } + new_dlflags = exp->dlflags; + if (new_dlflags!=dlflags && new_dlflags!=DEFAULT_DLFLAGS) { + /* we have to reload the module */ + dlclose(handle); + DEBUG("%s: exports dlflags interface is deprecated and it will not" + " be supported in newer versions; consider using" + " mod_register() instead\n", path); + dlflags=new_dlflags; + retries--; + if (retries>0) goto reload; + LM_ERR("%s: cannot agree on the dlflags\n", path); + goto error; } - if (register_module(*mod_if_ver, exp, path, handle)<0) goto error1; + if (register_module(exp, path, handle)<0) goto error1; return 0; error1: @@ -687,16 +596,14 @@ static inline int sr_cmd_flags_match(int cflags, int rflags) /* searches the module list for function name in module mod and returns * a pointer to the "name" function record union or 0 if not found - * sets also *mod_if_ver to the original module interface version. * mod==0 is a wildcard matching all modules * flags parameter is OR value of all flags that must match */ -sr31_cmd_export_t* find_mod_export_record(char* mod, char* name, - int param_no, int flags, - unsigned* mod_if_ver) +ksr_cmd_export_t* find_mod_export_record(char* mod, char* name, + int param_no, int flags) { struct sr_module* t; - sr31_cmd_export_t* cmd; + ksr_cmd_export_t* cmd; for(t=modules;t;t=t->next){ if (mod!=0 && (strcmp(t->exports.name, mod) !=0)) @@ -710,7 +617,6 @@ sr31_cmd_export_t* find_mod_export_record(char* mod, char* name, ){ LM_DBG("found export of <%s> in module %s [%s]\n", name, t->exports.name, t->path); - *mod_if_ver=t->orig_mod_interface_ver; return cmd; } } @@ -723,26 +629,21 @@ sr31_cmd_export_t* find_mod_export_record(char* mod, char* name, /* searches the module list for function name and returns * a pointer to the "name" function record union or 0 if not found - * sets also *mod_if_ver to the module interface version (needed to know - * which member of the union should be accessed v0 or v1) * mod==0 is a wildcard matching all modules * flags parameter is OR value of all flags that must match */ -sr31_cmd_export_t* find_export_record(char* name, - int param_no, int flags, - unsigned* mod_if_ver) +ksr_cmd_export_t* find_export_record(char* name, int param_no, int flags) { - return find_mod_export_record(0, name, param_no, flags, mod_if_ver); + return find_mod_export_record(0, name, param_no, flags); } cmd_function find_export(char* name, int param_no, int flags) { - sr31_cmd_export_t* cmd; - unsigned mver; + ksr_cmd_export_t* cmd; - cmd = find_export_record(name, param_no, flags, &mver); + cmd = find_export_record(name, param_no, flags); return cmd?cmd->function:0; } @@ -761,10 +662,9 @@ rpc_export_t* find_rpc_export(char* name, int flags) */ cmd_function find_mod_export(char* mod, char* name, int param_no, int flags) { - sr31_cmd_export_t* cmd; - unsigned mver; + ksr_cmd_export_t* cmd; - cmd=find_mod_export_record(mod, name, param_no, flags, &mver); + cmd=find_mod_export_record(mod, name, param_no, flags); if (cmd) return cmd->function; @@ -828,8 +728,8 @@ void destroy_modules() t=modules; while(t) { foo=t->next; - if (t->exports.destroy_f){ - t->exports.destroy_f(); + if (t->exports.destroy_mod_f){ + t->exports.destroy_mod_f(); } t=foo; } @@ -919,6 +819,9 @@ int init_child(int rank) } } } + if(rank!=PROC_INIT) { + pt[process_no].status = 1; + } return 0; } @@ -964,10 +867,15 @@ static int init_mod_child( struct sr_module* m, int rank ) */ int init_child(int rank) { + int ret; if(async_task_child_init(rank)<0) return -1; - return init_mod_child(modules, rank); + ret = init_mod_child(modules, rank); + if(rank!=PROC_INIT) { + pt[process_no].status = 1; + } + return ret; } @@ -984,9 +892,9 @@ static int init_mod( struct sr_module* m ) * propagate it up the stack */ if (init_mod(m->next)!=0) return -1; - if (m->exports.init_f) { + if (m->exports.init_mod_f) { LM_DBG("%s\n", m->exports.name); - if (m->exports.init_f()!=0) { + if (m->exports.init_mod_f()!=0) { LM_ERR("Error while initializing module %s (%s)\n", m->exports.name, m->path); return -1; diff --git a/src/core/sr_module.h b/src/core/sr_module.h index 5571a76c4..1f833a5e9 100644 --- a/src/core/sr_module.h +++ b/src/core/sr_module.h @@ -42,30 +42,11 @@ #include "counters.h" #include "pvar.h" - - -#if defined KAMAILIO_MOD_INTERFACE || defined OPENSER_MOD_INTERFACE || \ - defined MOD_INTERFACE_V1 - -#define MODULE_INTERFACE_VER 1 -#define cmd_export_t kam_cmd_export_t -#define module_exports kam_module_exports - -#elif defined SER_MOD_INTERFACE || defined MOD_INTERFACE_V0 - -#define MODULE_INTERFACE_VER 0 -#define cmd_export_t ser_cmd_export_t -#define module_exports ser_module_exports - -#else - -/* do nothing for core */ - -#endif +#define MODULE_INTERFACE_VER 4 /** * @brief type used for the mod_register function export - * + * * mod_register is a function called when loading a module * (if present), prior to registering the module exports. * @param path path to the module, including file name @@ -77,13 +58,14 @@ * @return 0 on success, -1 on error, all the other values are reserved * for future use (<0 meaning error and >0 success) */ -typedef int (*mod_register_function)(char* path, int* dlflags, void* reserved1, void* reserved2); +typedef int (*mod_register_function)(char* path, int* dlflags, void* reserved1, + void* reserved2); typedef struct module_exports* (*module_register)(void); /** * @brief main two parameter module function - * + * * Main two parameter module function, default and oldest version. * @param sip_msg SIP message * @param param1 first parameter @@ -99,7 +81,7 @@ typedef int (*cmd_function6)(struct sip_msg*, char*, char*, char*, char*, char*, char*); /** * @brief variable number of parameter module function - * + * * Variable number of parameter module function, takes as param the sip_msg, * extra parameters number and a pointer to an array of parameters * @param sip_msg SIP message @@ -207,19 +189,9 @@ typedef int (*param_func_t)( modparam_t type, void* val); char *module_flags=SER_COMPILE_FLAGS; \ unsigned int module_interface_ver=MODULE_INTERFACE_VER; -/** ser version */ -struct ser_cmd_export_ { - char* name; /**< null terminated command name */ - cmd_function function; /**< pointer to the corresponding function */ - int param_no; /**< number of parameters used by the function */ - fixup_function fixup; /**< pointer to the function called to "fix" the - parameters */ - unsigned int flags; /**< Function flags */ -}; - /** kamailio/openser version */ -struct kam_cmd_export_ { +typedef struct cmd_export { char* name; /**< null terminated command name */ cmd_function function; /**< pointer to the corresponding function */ int param_no; /**< number of parameters used by the function */ @@ -228,10 +200,10 @@ struct kam_cmd_export_ { free_fixup_function free_fixup; /**< function called to free the "fixed" parameters */ unsigned int flags; /**< Function flags */ -}; +} cmd_export_t; /** sip-router version */ -struct sr31_cmd_export_ { +typedef struct ksr_cmd_export { char* name; /**< null terminated command name */ cmd_function function; /**< pointer to the corresponding function */ int param_no; /**< number of parameters used by the function */ @@ -242,24 +214,14 @@ struct sr31_cmd_export_ { unsigned int flags; /**< Function flags */ unsigned int fixup_flags; void* module_exports; /**< pointer to module structure */ -}; - - -/** members situated at the same place in memory in both ser & kamailio - cmd_export */ -struct cmd_export_common_ { - char* name; - cmd_function function; - int param_no; - fixup_function fixup; -}; +} ksr_cmd_export_t; -struct param_export_ { +typedef struct param_export { char* name; /**< null terminated param. name */ modparam_t type; /**< param. type */ void* param_pointer; /**< pointer to the param. memory location */ -}; +} param_export_t; /* @@ -304,142 +266,59 @@ typedef struct fparam { void *fixed; } fparam_t; - -typedef struct param_export_ param_export_t; -typedef struct ser_cmd_export_ ser_cmd_export_t; -typedef struct kam_cmd_export_ kam_cmd_export_t; -typedef struct cmd_export_common_ cmd_export_common_t; -typedef struct sr31_cmd_export_ sr31_cmd_export_t; - - -/** ser module exports version */ -struct ser_module_exports { - char* name; /**< null terminated module name */ - ser_cmd_export_t* cmds; /**< null terminated array of the exported - commands */ - rpc_export_t* rpc_methods; /**< null terminated array of exported rpc methods */ - param_export_t* params; /**< null terminated array of the exported - module parameters */ - init_function init_f; /**< Initialization function */ - response_function response_f; /**< function used for responses, - returns yes or no; can be null */ - destroy_function destroy_f; /**< function called when the module should - be "destroyed", e.g: on ser exit; - can be null */ - onbreak_function onbreak_f; - child_init_function init_child_f; /**< function called by all processes - after the fork */ -}; - - -/** kamailio/openser proc_export (missing from ser) */ -typedef void (*mod_proc)(int no); - -typedef int (*mod_proc_wrapper)(void); - -struct proc_export_ { - char *name; - mod_proc_wrapper pre_fork_function; - mod_proc_wrapper post_fork_function; - mod_proc function; - unsigned int no; -}; - -typedef struct proc_export_ proc_export_t; - -typedef void nn_export_t; - -/** kamailio/openser module exports version */ -struct kam_module_exports { - char* name; /**< null terminated module name */ - unsigned int dlflags; /**< flags for dlopen */ - kam_cmd_export_t* cmds; /**< null terminated array of the exported - commands */ - param_export_t* params; /**< null terminated array of the exported - module parameters */ - stat_export_t* stats; /**< null terminated array of the exported - module statistics */ - nn_export_t* nn_cmds; /**< null terminated array of the exported - NN functions */ - pv_export_t* items; /*!< null terminated array of the exported - module items (pseudo-variables) */ - proc_export_t* procs; /**< null terminated array of the - additional processes required by the - module */ - init_function init_f; /**< Initialization function */ - response_function response_f; /**< function used for responses, - returns yes or no; can be null */ - destroy_function destroy_f; /**< function called when the module should - be "destroyed", e.g: on ser exit; - can be null */ - child_init_function init_child_f; /**< function called by all processes - after the fork */ -}; - - - -/** - * @brief sr/ser 3.1+ module exports version - * - * sr/ser 3.1+ module exports version, Includes ser and kamailio versions, - * re-arraranged + some extras. - * @note Some of the members will be obsoleted and are kept only for - * backward compatibility (avoid re-writing all the modules exports - * declarations). - */ -struct sr31_module_exports { - char* name; /**< null terminated module name */ - sr31_cmd_export_t* cmds; /**< null terminated array of the exported - commands */ - param_export_t* params; /**< null terminated array of the exported - module parameters */ - init_function init_f; /**< Initialization function */ - response_function response_f; /**< function used for responses, - returns yes or no; can be null */ - destroy_function destroy_f; /**< function called when the module should - be "destroyed", e.g: on ser exit; - can be null */ - onbreak_function onbreak_f; - child_init_function init_child_f;/**< function called by all processes - after the fork */ - unsigned int dlflags; /**< flags for dlopen */ - /* ser specific exports - (to be obsoleted and replaced by register_...) */ - rpc_export_t* rpc_methods; /**< null terminated array of exported - rpc methods */ - /* kamailio specific exports - (to be obsoleted and replaced by register_...) */ - stat_export_t* stats; /**< null terminated array of the exported - module statistics */ - nn_export_t* nn_cmds; /**< null terminated array of the exported - NN functions */ - pv_export_t* items; /**< null terminated array of the exported - module items (pseudo-variables) */ - proc_export_t* procs; /**< null terminated array of the - additional processes required by the - module */ -}; - - - -/** module exports in the same place in memory in both ser & kamailio */ -struct module_exports_common { +/** kamailio module exports version */ +typedef struct module_exports { + /**< null terminated module name */ char* name; -}; - - -union module_exports_u { - struct module_exports_common c; /**< common members for all the versions */ - struct ser_module_exports v0; - struct kam_module_exports v1; -}; - + /**< flags for dlopen */ + unsigned int dlflags; + /**< null terminated array of the exported commands (config functions)*/ + cmd_export_t* cmds; + /**< null terminated array of the exported module parameters */ + param_export_t* params; + /**< null terminated array of exported rpc methods */ + rpc_export_t* rpc_methods; + /*!< null terminated array of the exported module items (pseudo-variables) */ + pv_export_t* pv_items; + /**< function used for responses, returns yes or no; can be null */ + response_function response_f; + /**< Initialization function */ + init_function init_mod_f; + /**< function called by all processes after the fork */ + child_init_function init_child_f; + /**< function called when the module is "destroyed" (on server shut down) */ + destroy_function destroy_mod_f; +} module_exports_t; + + +/** kamailio module exports version coverted for core operations */ +typedef struct ksr_module_exports { + /**< null terminated module name */ + char* name; + /**< flags for dlopen */ + unsigned int dlflags; + /**< null terminated array of the exported commands (config functions)*/ + ksr_cmd_export_t* cmds; + /**< null terminated array of the exported module parameters */ + param_export_t* params; + /**< null terminated array of exported rpc methods */ + rpc_export_t* rpc_methods; + /*!< null terminated array of the exported module items (pseudo-variables) */ + pv_export_t* pv_items; + /**< function used for responses, returns yes or no; can be null */ + response_function response_f; + /**< Initialization function */ + init_function init_mod_f; + /**< function called by all processes after the fork */ + child_init_function init_child_f; + /**< function called when the module is "destroyed" (on server shut down) */ + destroy_function destroy_mod_f; +} ksr_module_exports_t; typedef struct sr_module { char* path; void* handle; - unsigned int orig_mod_interface_ver; - struct sr31_module_exports exports; + ksr_module_exports_t exports; struct sr_module* next; } sr_module_t; @@ -450,8 +329,7 @@ extern int mod_response_cbk_no; /**< size of reponse callbacks array */ int register_builtin_modules(void); int load_module(char* path); -sr31_cmd_export_t* find_export_record(char* name, int param_no, int flags, - unsigned *ver); +ksr_cmd_export_t* find_export_record(char* name, int param_no, int flags); cmd_function find_export(char* name, int param_no, int flags); cmd_function find_mod_export(char* mod, char* name, int param_no, int flags); rpc_export_t* find_rpc_export(char* name, int flags); @@ -473,11 +351,13 @@ sr_module_t* get_loaded_modules(void); * @param param_type parameter type * @return parameter address in memory, if there is no such parameter, NULL is returned */ -void* find_param_export(struct sr_module* mod, char* name, modparam_t type_mask, modparam_t *param_type); +void* find_param_export(struct sr_module* mod, char* name, modparam_t type_mask, + modparam_t *param_type); /** API function to get other parameters from fixup */ -action_u_t *fixup_get_param(void **cur_param, int cur_param_no, int required_param_no); +action_u_t *fixup_get_param(void **cur_param, int cur_param_no, + int required_param_no); int fixup_get_param_count(void **cur_param, int cur_param_no); int fix_flag( modparam_t type, void* val, @@ -618,7 +498,8 @@ int get_int_fparam(int* dst, struct sip_msg* msg, fparam_t* param); * @param flags flags to indicate destinations * @return 0 on success, 1 on error, e.g. cannot get value */ -int get_is_fparam(int* i_dst, str* s_dst, struct sip_msg* msg, fparam_t* param, unsigned int *flags); +int get_is_fparam(int* i_dst, str* s_dst, struct sip_msg* msg, fparam_t* param, + unsigned int *flags); /** * @brief Get the function parameter value as compiled regular expression diff --git a/src/core/tags.h b/src/core/tags.h index 192fdc3b1..ddfdaae41 100644 --- a/src/core/tags.h +++ b/src/core/tags.h @@ -52,7 +52,7 @@ static inline void calc_crc_suffix( struct sip_msg *msg, char *tag_suffix) suffix_source[1]=msg->via1->port_str; if (msg->via1->branch) suffix_source[ss_nr++]=msg->via1->branch->value; - crcitt_string_array( tag_suffix, suffix_source, ss_nr ); + crcitt_string_array( tag_suffix, suffix_source, ss_nr ); } static void inline init_tags( char *tag, char **suffix, diff --git a/src/core/tcp_read.c b/src/core/tcp_read.c index 0cae6212c..4c1821a4b 100644 --- a/src/core/tcp_read.c +++ b/src/core/tcp_read.c @@ -1197,7 +1197,7 @@ static int tcp_read_ws(struct tcp_connection *c, int* read_flags) handled to 2^32 - which should be plenty for SIP! */ if((p[pos] & 0xff)!=0 || (p[pos + 1] & 0xff)!=0 || (p[pos + 2] & 0xff)!=0 || (p[pos + 3] & 0xff)!=0) { - LM_WARN("advertised lenght is too large (more than 2^32)\n"); + LM_WARN("advertised length is too large (more than 2^32)\n"); goto skip; } len = ((p[pos + 4] & 0xff) << 24) @@ -1214,9 +1214,9 @@ static int tcp_read_ws(struct tcp_connection *c, int* read_flags) pos += 4; } - /* check if advertised lenght fits in read buffer */ + /* check if advertised length fits in read buffer */ if(len>=r->b_size) { - LM_WARN("advertised lenght (%u) greater than buffer size (%u)\n", + LM_WARN("advertised length (%u) greater than buffer size (%u)\n", len, r->b_size); goto skip; } @@ -1302,9 +1302,9 @@ static int tcp_read_hep3(struct tcp_connection *c, int* read_flags) len = ((uint32_t)(p[4] & 0xff) << 8) + (p[5] & 0xff); - /* check if advertised lenght fits in read buffer */ + /* check if advertised length fits in read buffer */ if(len>=r->b_size) { - LM_WARN("advertised lenght (%u) greater than buffer size (%u)\n", + LM_WARN("advertised length (%u) greater than buffer size (%u)\n", len, r->b_size); goto skip; } @@ -1333,7 +1333,7 @@ static int hep3_process_msg(char* tcpbuf, unsigned int len, /* fill in msg */ msg.buf=tcpbuf; msg.len=len; - /* zero termination (termination of orig message bellow not that + /* zero termination (termination of orig message below not that * useful as most of the work is done with scratch-pad; -jiri */ /* buf[len]=0; */ /* WARNING: zero term removed! */ msg.rcv=*rcv_info; @@ -1897,7 +1897,7 @@ read_error: fm->fd, fm->type, fm->data); goto error; default: - LM_CRIT("uknown fd type %d\n", fm->type); + LM_CRIT("unknown fd type %d\n", fm->type); goto error; } diff --git a/src/core/timer.c b/src/core/timer.c index 0e0dc8812..91141ed90 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -422,7 +422,7 @@ inline static void adjust_ticks(void) diff_time_ticks=(ticks_t)((diff_time*TIMER_TICKS_HZ)/1000000LL); delta=(s_ticks_t)(diff_time_ticks-diff_ticks_raw); if (delta<-1){ - LM_WARN("our timer runs faster then real-time" + LM_WARN("our timer runs faster than real-time" " (%lu ms / %u ticks our time .->" " %lu ms / %u ticks real time)\n", (unsigned long)(diff_ticks_raw*1000L/TIMER_TICKS_HZ), diff --git a/src/core/udp_server.c b/src/core/udp_server.c index 304d7fa91..1a1d200ab 100644 --- a/src/core/udp_server.c +++ b/src/core/udp_server.c @@ -515,19 +515,6 @@ int udp_rcv_loop() continue; } } -/* historically, zero-terminated packets indicated a bug in clients - * that calculated wrongly packet length and included string-terminating - * zero; today clients exist with legitimate binary payloads and we - * shall not check for zero-terminated payloads - */ -#ifdef TRASH_ZEROTERMINATED_PACKETS - if (buf[len-1]==0) { - tmp=ip_addr2a(&ri.src_ip); - LM_WARN("upstream bug - 0-terminated packet from %s %d\n", - tmp, htons(ri.src_port)); - len--; - } -#endif #endif #ifdef DBG_MSG_QA if (!dbg_msg_qa(buf, len)) { diff --git a/src/core/xavp.c b/src/core/xavp.c index 916b738ed..c758a9809 100644 --- a/src/core/xavp.c +++ b/src/core/xavp.c @@ -162,6 +162,19 @@ int xavp_add_last(sr_xavp_t *xavp, sr_xavp_t **list) return 0; } +int xavp_add_after(sr_xavp_t *nxavp, sr_xavp_t *pxavp) +{ + if(pxavp==NULL) { + nxavp->next = *_xavp_list_crt; + *_xavp_list_crt = nxavp; + } else { + nxavp->next = pxavp->next; + pxavp->next = nxavp; + } + + return 0; +} + sr_xavp_t *xavp_add_value(str *name, sr_xval_t *val, sr_xavp_t **list) { sr_xavp_t *avp=0; @@ -182,6 +195,26 @@ sr_xavp_t *xavp_add_value(str *name, sr_xval_t *val, sr_xavp_t **list) return avp; } +sr_xavp_t *xavp_add_value_after(str *name, sr_xval_t *val, sr_xavp_t *pxavp) +{ + sr_xavp_t *avp=0; + + avp = xavp_new_value(name, val); + if (avp==NULL) + return NULL; + + /* link new xavp */ + if(pxavp) { + avp->next = pxavp->next; + pxavp->next = avp; + } else { + avp->next = *_xavp_list_crt; + *_xavp_list_crt = avp; + } + + return avp; +} + sr_xavp_t *xavp_add_xavp_value(str *rname, str *name, sr_xval_t *val, sr_xavp_t **list) { sr_xavp_t *ravp=0; @@ -305,6 +338,22 @@ sr_xavp_t *xavp_get_next(sr_xavp_t *start) return NULL; } +sr_xavp_t *xavp_get_last(str *xname, sr_xavp_t **list) +{ + sr_xavp_t *prev; + sr_xavp_t *crt; + + crt = xavp_get_internal(xname, list, 0, 0); + + prev = NULL; + + while(crt) { + prev = crt; + crt = xavp_get_next(prev); + } + + return prev; +} int xavp_rm(sr_xavp_t *xa, sr_xavp_t **head) { @@ -522,6 +571,9 @@ void xavp_print_list_content(sr_xavp_t **head, int level) LM_INFO(" XAVP value: \n", avp->val.v.xavp); xavp_print_list_content(&avp->val.v.xavp, level+1); break; + case SR_XTYPE_VPTR: + LM_INFO(" XAVP value: \n", avp->val.v.vptr); + break; case SR_XTYPE_DATA: LM_INFO(" XAVP value: \n", avp->val.v.data); break; @@ -841,4 +893,65 @@ sr_xavp_t* xavp_get_child_with_sval(str *rname, str *cname) return vavp; } + + +/** + * serialize the values in subfields of an xavp in name=value; format + * - rname - name of the root list xavp + * - obuf - buffer were to write the output + * - olen - the size of obuf + * return: 0 - not found; -1 - error; >0 - length of output + */ + +int xavp_serialize_fields(str *rname, char *obuf, int olen) +{ + sr_xavp_t *ravp = NULL; + sr_xavp_t *avp = NULL; + str ostr; + int rlen; + + ravp = xavp_get(rname, NULL); + if(ravp==NULL || ravp->val.type!=SR_XTYPE_XAVP) { + /* not found or not holding subfields */ + return 0; + } + + rlen = 0; + ostr.s = obuf; + avp = ravp->val.v.xavp; + while(avp) { + switch(avp->val.type) { + case SR_XTYPE_INT: + LM_DBG(" XAVP int value: %d\n", avp->val.v.i); + ostr.len = snprintf(ostr.s, olen-rlen, "%.*s=%u;", + avp->name.len, avp->name.s, (unsigned int)avp->val.v.i); + if(ostr.len<=0 || ostr.len>=olen-rlen) { + LM_ERR("failed to serialize int value (%d/%d\n", + ostr.len, olen-rlen); + return -1; + } + break; + case SR_XTYPE_STR: + LM_DBG(" XAVP str value: %s\n", avp->val.v.s.s); + ostr.len = snprintf(ostr.s, olen-rlen, "%.*s=%.*s;", + avp->name.len, avp->name.s, + avp->val.v.s.len, avp->val.v.s.s); + if(ostr.len<=0 || ostr.len>=olen-rlen) { + LM_ERR("failed to serialize int value (%d/%d\n", + ostr.len, olen-rlen); + return -1; + } + break; + default: + LM_DBG("skipping value type: %d\n", avp->val.type); + ostr.len = 0; + } + if(ostr.len>0) { + ostr.s += ostr.len; + rlen += ostr.len; + } + avp = avp->next; + } + return rlen; +} #endif diff --git a/src/core/xavp.h b/src/core/xavp.h index 42413e70b..83f4f09b1 100644 --- a/src/core/xavp.h +++ b/src/core/xavp.h @@ -35,6 +35,7 @@ typedef enum { SR_XTYPE_LONG, /* long value */ SR_XTYPE_LLONG, /* long long value */ SR_XTYPE_XAVP, /* xavp value */ + SR_XTYPE_VPTR, /* void pointer value */ SR_XTYPE_DATA /* custom data value */ } sr_xtype_t; @@ -57,6 +58,7 @@ typedef struct _sr_xval { long l; long long ll; struct _sr_xavp *xavp; /* must be given in shm (not cloned) */ + void *vptr; /* void pointer - address copied, not freed */ sr_data_t *data; /* must be given in shm (not cloned) */ } v; } sr_xval_t; @@ -74,12 +76,15 @@ void xavp_free(sr_xavp_t *xa); int xavp_add(sr_xavp_t *xavp, sr_xavp_t **list); int xavp_add_last(sr_xavp_t *xavp, sr_xavp_t **list); +int xavp_add_after(sr_xavp_t *nxavp, sr_xavp_t *pxavp); sr_xavp_t *xavp_add_value(str *name, sr_xval_t *val, sr_xavp_t **list); +sr_xavp_t *xavp_add_value_after(str *name, sr_xval_t *val, sr_xavp_t *pxavp); sr_xavp_t *xavp_add_xavp_value(str *rname, str *name, sr_xval_t *val, sr_xavp_t **list); sr_xavp_t *xavp_set_value(str *name, int idx, sr_xval_t *val, sr_xavp_t **list); sr_xavp_t *xavp_get(str *name, sr_xavp_t *start); sr_xavp_t *xavp_get_by_index(str *name, int idx, sr_xavp_t **start); sr_xavp_t *xavp_get_next(sr_xavp_t *start); +sr_xavp_t *xavp_get_last(str *xname, sr_xavp_t **list); int xavp_rm_by_name(str *name, int all, sr_xavp_t **head); int xavp_rm_by_index(str *name, int idx, sr_xavp_t **head); int xavp_rm(sr_xavp_t *xa, sr_xavp_t **head); @@ -101,6 +106,8 @@ sr_xavp_t *xavp_clone_level_nodata(sr_xavp_t *xold); sr_xavp_t* xavp_get_child(str *rname, str *cname); sr_xavp_t* xavp_get_child_with_ival(str *rname, str *cname); sr_xavp_t* xavp_get_child_with_sval(str *rname, str *cname); +int xavp_serialize_fields(str *rname, char *obuf, int olen); + #endif #endif diff --git a/src/lib/cds/doc/cds_malloc.xml b/src/lib/cds/doc/cds_malloc.xml index 3d773dce2..a80186ec9 100644 --- a/src/lib/cds/doc/cds_malloc.xml +++ b/src/lib/cds/doc/cds_malloc.xml @@ -27,7 +27,7 @@ Description -Allocates Memory of given size. If compiled with SER it internaly uses +Allocates Memory of given size. If compiled with SER it internally uses shm_malloc, if compiled without SER it uses malloc. diff --git a/src/lib/cds/doc/create_message.xml b/src/lib/cds/doc/create_message.xml index a2e559daf..196041576 100644 --- a/src/lib/cds/doc/create_message.xml +++ b/src/lib/cds/doc/create_message.xml @@ -30,12 +30,12 @@ Description Allocates message using cds_malloc and initializes -its content so it will be freed automaticaly. Pointer to the explicitly +its content so it will be freed automatically. Pointer to the explicitly allocated data is set to data and its length is set to data_len. Message created by create_message should be freed using message_free. -Unremoved messages created this way are freed automaticaly in +Unremoved messages created this way are freed automatically in msg_queue_destroy using free_message. diff --git a/src/lib/cds/doc/create_message_ex.xml b/src/lib/cds/doc/create_message_ex.xml index 85ef88e44..2e1f010fd 100644 --- a/src/lib/cds/doc/create_message_ex.xml +++ b/src/lib/cds/doc/create_message_ex.xml @@ -30,7 +30,7 @@ Allocates message with data of given size (data_len) using cds_malloc. It -initializes message content so it will be freed automaticaly. +initializes message content so it will be freed automatically. Pointer to allocated data should be obtained by get_message_data. @@ -38,7 +38,7 @@ Pointer to allocated data should be obtained by Messages created by create_message_ex should be freed using message_free. -Unremoved messages created this way are freed automaticaly in +Unremoved messages created this way are freed automatically in msg_queue_destroy using free_message. diff --git a/src/lib/cds/doc/dstring_t.xml b/src/lib/cds/doc/dstring_t.xml index ffa1f12b3..d98f64c87 100644 --- a/src/lib/cds/doc/dstring_t.xml +++ b/src/lib/cds/doc/dstring_t.xml @@ -26,7 +26,7 @@ typedef struct _dstring_t { This structure represents dynamic string. It allows concatenation of multiple strings without worry about memory allocations. -Internaly it uses list of data buffers which are allocated +Internally it uses list of data buffers which are allocated if needed. The content of dynamic string may be copied out from internal buffers using simple function call (see ). Internal buffers are allocated in package memory (when compiled with SER)! diff --git a/src/lib/cds/doc/free_message.xml b/src/lib/cds/doc/free_message.xml index 402445c80..c059b4fae 100644 --- a/src/lib/cds/doc/free_message.xml +++ b/src/lib/cds/doc/free_message.xml @@ -30,7 +30,7 @@ Frees message. If data is allocated explicitly it frees it using cds_free, if they are allocated implicitly, it is freed together with message. Thus simple -data strutures are deallocated automaticaly in both cases. There might be a +data structures are deallocated automatically in both cases. There might be a problem with more complicated structures with internal pointers to other structures - for these you can set destroy function using set_data_destroy_function. diff --git a/src/lib/cds/doc/memory.xml b/src/lib/cds/doc/memory.xml index 65c72204c..3c6caf6ee 100644 --- a/src/lib/cds/doc/memory.xml +++ b/src/lib/cds/doc/memory.xml @@ -12,7 +12,7 @@ together with SER's memory management and must work without it too, there are wrapper macros for memory allocation/deallocation. These macros were functions and it may change in the future, but macros -are probably better - they allow better debuging than functions. There are +are probably better - they allow better debugging than functions. There are defined another macros (see , ), which point and will point to allocation/deallocation functions, thus they may be used as function pointers. diff --git a/src/lib/cds/doc/msg_queue_destroy.xml b/src/lib/cds/doc/msg_queue_destroy.xml index da7cfe7ef..c43635f68 100644 --- a/src/lib/cds/doc/msg_queue_destroy.xml +++ b/src/lib/cds/doc/msg_queue_destroy.xml @@ -34,7 +34,7 @@ manipulation functions except msg_queue_init. All messages which stay in the queue -are automaticaly freed using free_message. +are automatically freed using free_message. diff --git a/src/lib/cds/doc/msg_queue_init_ex.xml b/src/lib/cds/doc/msg_queue_init_ex.xml index 30dcf3350..cf7b62b52 100644 --- a/src/lib/cds/doc/msg_queue_init_ex.xml +++ b/src/lib/cds/doc/msg_queue_init_ex.xml @@ -31,7 +31,7 @@ Initializes message queue structure. The value of synchronized may be 0 or 1. Zero means, that the message queue will not use mutex for internal data access (will be NOT synchronized), 1 -means that message queue will be synchronized by mutex created internaly. +means that message queue will be synchronized by mutex created internally. diff --git a/src/lib/cds/doc/pop_message.xml b/src/lib/cds/doc/pop_message.xml index c0c4cd23b..7f524637f 100644 --- a/src/lib/cds/doc/pop_message.xml +++ b/src/lib/cds/doc/pop_message.xml @@ -28,7 +28,7 @@ Description Removes first message from the queue. If the queue is empty or an error -occurred it returns NULL value. Removed messages are NOT automaticaly freed - +occurred it returns NULL value. Removed messages are NOT automatically freed - caller must use free_message or free it itself (see )! diff --git a/src/lib/cds/doc/push_message.xml b/src/lib/cds/doc/push_message.xml index 55958581a..645a086bb 100644 --- a/src/lib/cds/doc/push_message.xml +++ b/src/lib/cds/doc/push_message.xml @@ -30,7 +30,7 @@ Description Function pushes initialized message into message queue. This message may be removed from the queue using pop_message. -Unremoved messages are automaticaly freed by msg_queue_destroy +Unremoved messages are automatically freed by msg_queue_destroy (depending on message initialization, see , and ). diff --git a/src/lib/cds/doc/sstr.xml b/src/lib/cds/doc/sstr.xml index 06edaeb39..b3963a543 100644 --- a/src/lib/cds/doc/sstr.xml +++ b/src/lib/cds/doc/sstr.xml @@ -15,7 +15,7 @@ Router due to it's usability and need of testing some parts of SER's code outside of SER's environment. Many of string functions were inspired by or directly taken from SER's code. Another reason for this structure was to put string operations to one place and not leave them independently and -often duplictly in SER's modules. +often duplicately in SER's modules. diff --git a/src/lib/cds/doc/sstream_get_str_ex.xml b/src/lib/cds/doc/sstream_get_str_ex.xml index a301b8b24..64d7264a9 100644 --- a/src/lib/cds/doc/sstream_get_str_ex.xml +++ b/src/lib/cds/doc/sstream_get_str_ex.xml @@ -31,7 +31,7 @@ Description Returns data buffer of requested length (len). If there is not enough data to read (less than len bytes), -the function returns error. The memory can NOT be freed becausse it is a part of +the function returns error. The memory can NOT be freed because it is a part of input buffer! diff --git a/src/lib/cds/dstring.h b/src/lib/cds/dstring.h index fb86ffba5..039ed2b09 100644 --- a/src/lib/cds/dstring.h +++ b/src/lib/cds/dstring.h @@ -32,9 +32,8 @@ extern "C" { #endif -/** \ingroup cds - * @{ - * +/** + * \ingroup cds * \defgroup cds_dstring Dynamic strings * * Dynamic strings were introduced to satisfy needs of presence @@ -142,8 +141,7 @@ void dstr_clear_error(dstring_t *dstr); */ /** Macro for cleaning error flag in dynamic string. */ #define dstr_clear_error(dstr) (dstr)->error = 0 -/** @} - @} */ +/** @} */ #ifdef __cplusplus } diff --git a/src/lib/cds/msg_queue.h b/src/lib/cds/msg_queue.h index 3e42a48ca..9a1f8f6ab 100644 --- a/src/lib/cds/msg_queue.h +++ b/src/lib/cds/msg_queue.h @@ -33,9 +33,8 @@ extern "C" { #endif -/** \ingroup cds - * @{ - * +/** + * \ingroup cds * \defgroup cds_msg_queue Message Queue * * Message queue is a structure useful for sending data between processes. @@ -182,8 +181,7 @@ void msg_queue_destroy(msg_queue_t *q); * It uses cds_free for freeing the memory. */ void msg_queue_free(msg_queue_t *q); -/** @} - @} */ +/** @} */ #ifdef __cplusplus } diff --git a/src/lib/doc/libraries.xml b/src/lib/doc/libraries.xml index cfd611d9f..8e5ebfb5f 100644 --- a/src/lib/doc/libraries.xml +++ b/src/lib/doc/libraries.xml @@ -15,7 +15,7 @@ Introduction
About -Common libraries are originaly determined for usage with SER - as a +Common libraries are originalsy determined for usage with SER - as a collection of useful functions which are not present in the SER's code. But as the time goes it seems to be good to make them usable without SER too, at least for testing parts of SER modules and thus it is possible to use diff --git a/src/lib/doxygen.cfg b/src/lib/doxygen.cfg index 7ff61a877..6d7ea6315 100644 --- a/src/lib/doxygen.cfg +++ b/src/lib/doxygen.cfg @@ -1,16 +1,123 @@ -# Doxyfile 1.5.1 +# Doxyfile 1.8.11 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + PROJECT_NAME = "Kamailio libraries" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + PROJECT_NUMBER = 1 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + OUTPUT_DIRECTORY = doc/ + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ @@ -22,67 +129,683 @@ ABBREVIATE_BRIEF = "The $name class" \ a \ an \ the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + FULL_PATH_NAMES = YES -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + TAB_SIZE = 8 -ALIASES = + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + SHOW_USED_FILES = YES -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + #--------------------------------------------------------------------------- -# configuration options related to warning and progress messages +# Configuration options related to warning and progress messages #--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + #--------------------------------------------------------------------------- -# configuration options related to the input files +# Configuration options related to the input files #--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + INPUT = . + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, +# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. + FILE_PATTERNS = *.c \ *.cc \ *.cxx \ @@ -124,152 +847,1610 @@ FILE_PATTERNS = *.c \ *.M \ *.MM \ *.PY + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + RECURSIVE = YES -EXCLUDE = + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + #--------------------------------------------------------------------------- -# configuration options related to source browsing +# Configuration options related to source browsing #--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + REFERENCES_LINK_SOURCE = NO + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + VERBATIM_HEADERS = NO + #--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index +# Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + ALPHABETICAL_INDEX = NO + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + #--------------------------------------------------------------------------- -# configuration options related to the HTML output +# Configuration options related to the HTML output #--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /
+
+ <varname>$sipt(redirection_info) / $sipt_redirection_info</varname> + + Returns redirection info header from ISUP + Returns "Redirecting reason" or -1 if no redirection info found. + + + Redirecting reason Values + + + 0Unknown + 1User busy + 2PROGRESS + 3no reply + 4deflection during alerting + 5deflection immediate response + 6mobile subscriber not reachable + + +
+
+
+ <varname>$sipt(redirection_number) / $sipt_redirection_number</varname> + + Returns number to which redirection will trigered + Returns -1 if there is a parsing error. + + + <function moreinfo="none">sipt_redirection_number</function> usage + +... +# get the redirection number +$avp(s:redir_num) = $sipt(redirection_number); +... + + +
+
+ <varname>$sipt(redirection_number.nai) / $sipt_redirection_number_nai</varname> + + Returns NAI for redirection number from ISUP + Returns NAI for redirection number or -1 if no info found. + + + Redirecting number NAI Values + + + 0Spare + 1Subscriber Number (national use) + 2Unknown (national use) + 3National (significant) number (national use) + 4International use + + +
+
diff --git a/src/modules/sipt/sipt.c b/src/modules/sipt/sipt.c index f48de8d5a..e75ecdc5b 100644 --- a/src/modules/sipt/sipt.c +++ b/src/modules/sipt/sipt.c @@ -41,6 +41,7 @@ MODULE_VERSION static int sipt_set_bci_1(struct sip_msg *msg, char *_charge_indicator, char *_called_status, char * _called_category, char * _e2e_indicator); static int sipt_destination(struct sip_msg *msg, char *_destination, char *_hops, char * _nai); static int sipt_destination2(struct sip_msg *msg, char *_destination, char *_hops, char * _nai, char * _terminator); +static int sipt_forwarding(struct sip_msg *msg, char *_fwdnumber, char * _nai); static int sipt_set_calling(struct sip_msg *msg, char *_origin, char *_nai, char *_pres, char * _screen); static int sipt_get_hop_counter(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); static int sipt_get_event_info(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); @@ -51,6 +52,10 @@ static int sipt_get_screening(struct sip_msg *msg, pv_param_t *param, pv_value_t static int sipt_get_called_party_nai(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); static int sipt_get_charge_indicator(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); +static int sipt_get_redirection_info(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); +static int sipt_get_redirection_number_nai(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); +static int sipt_get_redirection_number(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); + /* New API */ int sipt_parse_pv_name(pv_spec_p sp, str *in); static int sipt_get_pv(struct sip_msg *msg, pv_param_t *param, pv_value_t *res); @@ -97,6 +102,13 @@ static sipt_header_map_t sipt_header_mapping[] = {{"CHARGE_INDICATOR", 1}, {NULL, 0} }}, + {"REDIRECTION_INFO", ISUP_PARM_REDIRECTION_INFO, + {{NULL, 0}} }, + {"REDIRECTION_NUMBER", ISUP_PARM_REDIRECTION_NUMBER, + {{"NATURE_OF_ADDRESS", 1}, + {"NAI", 1}, + {NULL, 0} + }}, { NULL, 0, {}} }; @@ -139,6 +151,12 @@ static cmd_export_t cmds[]={ fixup_str_str_str, fixup_free_str_str_str, /* */ /* can be applied to original requests */ REQUEST_ROUTE|BRANCH_ROUTE}, + {"sipt_forwarding", /* action name as in scripts */ + (cmd_function)sipt_forwarding, /* C function name */ + 2, /* number of parameters */ + fixup_str_str_str, fixup_free_str_str_str, /* */ + /* can be applied to original requests */ + REQUEST_ROUTE|BRANCH_ROUTE}, {"sipt_set_calling", /* action name as in scripts */ (cmd_function)sipt_set_calling, /* C function name */ 4, /* number of parameters */ @@ -177,18 +195,16 @@ static pv_export_t mod_items[] = { }; struct module_exports exports = { - "sipt", + "sipt", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* exported functions */ - params, /* exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - mod_items, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function*/ - mod_destroy, /* destroy function */ - 0 /* per-child init function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC methods */ + mod_items, /* exported pseudo-variables */ + 0, /* response function*/ + mod_init, /* module initialization function */ + 0, /* per-child init function */ + mod_destroy /* destroy function */ }; static int sipt_get_hop_counter(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) @@ -275,6 +291,78 @@ static int sipt_get_calling_party_nai(struct sip_msg *msg, pv_param_t *param, pv return 0; } +static int sipt_get_redirection_info(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) +{ + str body; + body.s = get_body_part(msg, TYPE_APPLICATION,SUBTYPE_ISUP,&body.len); + + if(body.s == NULL) + { + LM_INFO("No ISUP Message Found"); + return -1; + } + + if((body.s[0] != ISUP_ACM) && (body.s[0] != ISUP_CPG)) + { + LM_DBG("message not an ACM or CPG\n"); + return -1; + } + + pv_get_sintval(msg, param, res, isup_get_redirection_info((unsigned char*)body.s, body.len)); + return 0; +} + +static int sipt_get_redirection_number_nai(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) +{ + str body; + body.s = get_body_part(msg, TYPE_APPLICATION,SUBTYPE_ISUP,&body.len); + + if(body.s == NULL) + { + LM_INFO("No ISUP Message Found"); + return -1; + } + + if((body.s[0] != ISUP_ACM) && (body.s[0] != ISUP_CPG)) + { + LM_DBG("message not an ACM or CPG\n"); + return -1; + } + + pv_get_sintval(msg, param, res, isup_get_redirection_number_nai((unsigned char*)body.s, body.len)); + return 0; +} + +static int sipt_get_redirection_number(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) +{ + static char sb_s_buf[26]; + str body; + body.s = get_body_part(msg, TYPE_APPLICATION,SUBTYPE_ISUP,&body.len); + + if(body.s == NULL) + { + LM_INFO("No ISUP Message Found"); + return -1; + } + + if((body.s[0] != ISUP_ACM) && (body.s[0] != ISUP_CPG)) + { + LM_DBG("message not an ACM or CPG\n"); + return -1; + } + + isup_get_redirection_number((unsigned char*)body.s, body.len, sb_s_buf); + + if (strlen(sb_s_buf) > 0) + { + pv_get_strzval(msg, param, res, sb_s_buf); + } else { + pv_get_sintval(msg, param, res, -1); + } + return 0; +} + + static int sipt_get_presentation(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) { str body; @@ -508,6 +596,17 @@ static int sipt_get_pv(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) return sipt_get_charge_indicator(msg, param, res); } break; + case ISUP_PARM_REDIRECTION_INFO: + return sipt_get_redirection_info(msg, param, res); + case ISUP_PARM_REDIRECTION_NUMBER: + switch(spv->sub_type) + { + case 0: /* NUMBER */ + return sipt_get_redirection_number(msg, param, res); + case 1: /* NAI */ + return sipt_get_redirection_number_nai(msg, param, res); + } + break; } return -1; @@ -588,7 +687,7 @@ static int sipt_destination2(struct sip_msg *msg, char *_destination, char *_hop unsigned int int_nai = 0; str2int(nai, &int_nai); str * terminator = (str*)_terminator; - unsigned int int_terminator; + unsigned int int_terminator = 0; /* if the str2int later fail */ str2int(terminator, &int_terminator); str * destination = (str*)_destination; struct sdp_mangler mangle; @@ -689,7 +788,7 @@ static int sipt_set_calling(struct sip_msg *msg, char *_origin, char *_nai, char mangle.msg = msg; mangle.body_offset = (int)(body.s - msg->buf); - char * digits = calloc(1,origin->len+1); + char * digits = calloc(1,origin->len+2); memcpy(digits, origin->s, origin->len); int res = isup_update_calling(&mangle, digits, int_nai, pres, screen, (unsigned char*)body.s, body.len); @@ -703,6 +802,61 @@ static int sipt_set_calling(struct sip_msg *msg, char *_origin, char *_nai, char return 1; } +static int sipt_forwarding(struct sip_msg *msg, char *_fwdnumber, char * _nai) +{ + str * nai = (str*)_nai; + unsigned int int_nai = 0; + str2int(nai, &int_nai); + str * fwdnumber = (str*)_fwdnumber; + struct sdp_mangler mangle; + + // update forwarded iam + str body; + body.s = get_body_part(msg, TYPE_APPLICATION,SUBTYPE_ISUP,&body.len); + + if(body.s == NULL) + { + LM_INFO("No ISUP Message Found"); + return -1; + } + str sdp; + sdp.s = get_body_part(msg, TYPE_APPLICATION, SUBTYPE_SDP, &sdp.len); + + unsigned char newbuf[1024]; + memset(newbuf, 0, 1024); + if (body.s==0) { + LM_ERR("failed to get the message body\n"); + return -1; + } + body.len = msg->len -(int)(body.s-msg->buf); + if (body.len==0) { + LM_DBG("message body has zero length\n"); + return -1; + } + + if(body.s[0] != ISUP_IAM) + { + LM_DBG("message not an IAM\n"); + return -1; + } + + mangle.msg = msg; + mangle.body_offset = (int)(body.s - msg->buf); + + char * digits = calloc(1,fwdnumber->len+2); + memcpy(digits, fwdnumber->s, fwdnumber->len); + + int res = isup_update_forwarding(&mangle, digits, int_nai, (unsigned char*)body.s, body.len); + free(digits); + if(res < 0) + { + LM_DBG("error updating IAM\n"); + return -1; + } + + return 1; +} + static int mod_init(void) { diff --git a/src/modules/sipt/ss7.h b/src/modules/sipt/ss7.h index f9f198afd..7da97381d 100644 --- a/src/modules/sipt/ss7.h +++ b/src/modules/sipt/ss7.h @@ -177,14 +177,12 @@ struct isup_iam_fixed { struct isup_acm_fixed { unsigned char type; unsigned char backwards_call_ind[2]; - unsigned char fixed_pointer; unsigned char optional_pointer; }; struct isup_cpg_fixed { unsigned char type; unsigned char event_info; - unsigned char fixed_pointer; unsigned char optional_pointer; }; @@ -206,6 +204,10 @@ int isup_get_charging_indicator(unsigned char *buf, int len); int isup_update_destination(struct sdp_mangler * mangle, char * dest, int hops, int nai, unsigned char *buf, int len); int isup_update_bci_1(struct sdp_mangler * mangle, int charge_indicator, int called_status, int called_category, int e2e_indicator, unsigned char *buf, int len); int isup_update_calling(struct sdp_mangler * mangle, char * origin, int nai, int presentation, int screening, unsigned char * buf, int len); +int isup_update_forwarding(struct sdp_mangler * mangle, char * forwardn, int nai, unsigned char *buf, int len); +int isup_get_redirection_info(unsigned char *buf, int len); +int isup_get_redirection_number_nai(unsigned char *buf, int len); +int isup_get_redirection_number(unsigned char *buf, int len, char* sb_buf); #endif diff --git a/src/modules/sipt/ss7_parser.c b/src/modules/sipt/ss7_parser.c index 2230594a8..4d390c834 100644 --- a/src/modules/sipt/ss7_parser.c +++ b/src/modules/sipt/ss7_parser.c @@ -143,6 +143,19 @@ static int encode_calling_party(char * number, int nai, int presentation, int sc return datalen + 2; } +static int encode_forwarding_number(char * number, int nai, unsigned char * buf, int len) +{ + int oddeven, datalen; + + isup_put_number(&buf[2], number, &datalen, &oddeven); + + buf[0] = (oddeven << 7) | nai; /* Nature of Address Indicator */ + /* Assume E.164 ISDN numbering plan, calling number complete */ + buf[1] = 0x14; + + return datalen + 2; +} + // returns start of specified optional header of IAM or CPG, otherwise return -1 static int get_optional_header(unsigned char header, unsigned char *buf, int len) { @@ -322,6 +335,67 @@ int isup_get_charging_indicator(unsigned char *buf, int len) { return (orig_message->backwards_call_ind[0] & 0x03); } +int isup_get_redirection_info(unsigned char *buf, int len) +{ + int offset = get_optional_header(ISUP_PARM_GENERIC_NOTIFICATION_IND, buf, len); + + int call_is_diverting = 0; + int diversion_reason = 0; + + if(offset != -1 && len-offset > 1) + { + call_is_diverting = (buf[offset+2]) & 0x7F; + + if ( call_is_diverting == 123 ) { + int offset1 = get_optional_header(ISUP_PARM_DIVERSION_INFORMATION, buf, len); + + if(offset1 != -1 && len-offset1 > 1) + { + diversion_reason = (buf[offset1+2]>>3 & 0x0F); + return diversion_reason; + } + } + return -1; + + } + return -1; +} + +int isup_get_redirection_number_nai(unsigned char *buf, int len) +{ + int offset = get_optional_header(ISUP_PARM_REDIRECTION_NUMBER, buf, len); + + if(offset != -1 && len-offset-2 > 1) + { + return buf[offset+2] & 0x7F; + } + return -1; +} + +int isup_get_redirection_number(unsigned char *buf, int len, char* sb_buf) +{ + int sbparamlen; + int sb_i=0; + int sb_j=0; + int offset = get_optional_header(ISUP_PARM_REDIRECTION_NUMBER, buf, len); + + if(offset != -1 && len-offset-2 > 1) + { + sbparamlen = (buf[offset+1] & 0xFF) - 2; + + while ((sbparamlen > 0) && (buf[offset] != 0)) { + sb_buf[sb_i]="0123456789ABCDEF"[(buf[offset+4+sb_j] & 0x0F)]; + sb_buf[sb_i+1]="0123456789ABCDEF"[(buf[offset+4+sb_j] >>4 & 0x0F)]; + sb_i=sb_i+2; + sbparamlen--; + sb_j++; + } + sb_buf[sb_i] = '\x0'; + return 1; + } + return -1; +} + int isup_update_bci_1(struct sdp_mangler * mangle, int charge_indicator, int called_status, int called_category, int e2e_indicator, unsigned char *buf, int len) { struct isup_acm_fixed * orig_message = (struct isup_acm_fixed*)buf; @@ -520,3 +594,67 @@ int isup_update_calling(struct sdp_mangler * mangle, char * origin, int nai, int return offset; } + +int isup_update_forwarding(struct sdp_mangler * mangle, char * forwardn, int nai, unsigned char *buf, int len) +{ + int offset = 0; + int res; + struct isup_iam_fixed * orig_message = (struct isup_iam_fixed*)buf; + + // not an iam? do nothing + if(orig_message->type != ISUP_IAM) + { + return 1; + } + + /* Copy the fixed parms */ + len -= offsetof(struct isup_iam_fixed, called_party_number); + offset += offsetof(struct isup_iam_fixed, called_party_number); + + if (len < 1) + return -1; + + + /* IAM has one Fixed variable param, Called party number, we need to modify this */ + + + // add the new mandatory fixed header + res = buf[offset]; + offset += res+1; + len -= res+1; + + if (len < 1 ) + return -1; + + /* Optional paramter parsing code */ + if (orig_message->optional_pointer) { + + while ((len > 0) && (buf[offset] != 0)) { + int res2 = 0; + struct isup_parm_opt *optparm = (struct isup_parm_opt *)(buf + offset); + unsigned char new_party[255]; + + res = optparm->len+2; + switch(optparm->type) + { + case ISUP_PARM_REDIRECTING_NUMBER: + res2 = encode_forwarding_number(forwardn, nai, &new_party[1], 255-1); + new_party[0] = (char)res2; + replace_body_segment(mangle, offset+1,(int)buf[offset+1]+1,new_party, res2+1); + break; + case ISUP_PARM_ORIGINAL_CALLED_NUM: + res2 = encode_forwarding_number(forwardn, nai, &new_party[1], 255-1); + new_party[0] = (char)res2; + replace_body_segment(mangle, offset+1,(int)buf[offset+1]+1,new_party, res2+1); + default: + break; + } + + len -= res; + offset += res; + } + + } + + return offset; +} diff --git a/src/modules/siptrace/Makefile b/src/modules/siptrace/Makefile index 67549cb5b..0e63d9f5f 100644 --- a/src/modules/siptrace/Makefile +++ b/src/modules/siptrace/Makefile @@ -9,8 +9,6 @@ auto_gen= NAME=siptrace.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/siptrace/README b/src/modules/siptrace/README index 383250d6f..3841e32a2 100644 --- a/src/modules/siptrace/README +++ b/src/modules/siptrace/README @@ -152,7 +152,7 @@ Chapter 1. Admin Guide (using HEP, the Homer encapsulation protocol, or plain SIP mode) There are multiple ways of storing information: - * by calling the sip_trace() method explicitely in the Kamailio + * by calling the sip_trace() method explicitly in the Kamailio configuration file. In this case the original message is processed. * by setting the flag equal with the value of “trace_flag†(e.g., setflag(__trace_flag__)) parameter of the module. In this case, the @@ -212,11 +212,11 @@ Chapter 1. Admin Guide Database URL. - Default value is "mysql://kamailio:kamailiorw@localhost/okamailio". + Default value is "mysql://kamailio:kamailiorw@localhost/kamailio". Example 1.1. Set db_url parameter ... -modparam("siptrace", "db_url", "mysql://user:passwd@host/dbname") +modparam("siptrace", "db_url", "dbdriver://username:password@dbhost/dbname") ... 3.2. table (str) diff --git a/src/modules/siptrace/doc/siptrace_admin.xml b/src/modules/siptrace/doc/siptrace_admin.xml index 32cdc924a..504e6e98b 100644 --- a/src/modules/siptrace/doc/siptrace_admin.xml +++ b/src/modules/siptrace/doc/siptrace_admin.xml @@ -25,7 +25,7 @@ - by calling the sip_trace() method explicitely in the &kamailio; configuration + by calling the sip_trace() method explicitly in the &kamailio; configuration file. In this case the original message is processed. @@ -102,14 +102,14 @@
- Default value is "mysql://kamailio:kamailiorw@localhost/okamailio". + Default value is "&defaultdb;". Set <varname>db_url</varname> parameter ... -modparam("siptrace", "db_url", "mysql://user:passwd@host/dbname") +modparam("siptrace", "db_url", "&exampledb;") ... diff --git a/src/modules/siptrace/siptrace.c b/src/modules/siptrace/siptrace.c index 1e26bc213..08ddc07ef 100644 --- a/src/modules/siptrace/siptrace.c +++ b/src/modules/siptrace/siptrace.c @@ -220,22 +220,16 @@ stat_export_t siptrace_stats[] = { /*! \brief module exports */ struct module_exports exports = { - "siptrace", + "siptrace", /*!< module name */ DEFAULT_DLFLAGS, /*!< dlopen flags */ - cmds, /*!< Exported functions */ - params, /*!< Exported parameters */ -#ifdef STATISTICS - siptrace_stats, /*!< exported statistics */ -#else - 0, /*!< exported statistics */ -#endif - 0, /*!< exported MI functions */ - 0, /*!< exported pseudo-variables */ - 0, /*!< extra processes */ - mod_init, /*!< module initialization function */ - 0, /*!< response function */ - destroy, /*!< destroy function */ - child_init /*!< child initialization function */ + cmds, /*!< exported functions */ + params, /*!< exported parameters */ + 0, /*!< exported rpc functions */ + 0, /*!< exported pseudo-variables */ + 0, /*!< response function */ + mod_init, /*!< module initialization function */ + child_init, /*!< child initialization function */ + destroy /*!< destroy function */ }; @@ -715,6 +709,7 @@ static int ki_sip_trace_dst_cid(sip_msg_t *msg, str *duri, str *cid) dest_info_t *dst = NULL; sip_uri_t uri; proxy_l_t *p = NULL; + int ret = 1; // If the dest is empty, use the module parameter, if set if(duri == NULL || duri->len <= 0) { @@ -756,7 +751,11 @@ static int ki_sip_trace_dst_cid(sip_msg_t *msg, str *duri, str *cid) pkg_free(p); } - return sip_trace(msg, dst, ((cid!=NULL && cid->len>0)?cid:NULL), NULL); + ret = sip_trace(msg, dst, ((cid!=NULL && cid->len>0)?cid:NULL), NULL); + + pkg_free(dst); + + return ret; } /** @@ -1142,7 +1141,7 @@ static void trace_onreply_in(struct cell *t, int type, struct tmcb_params *ps) siptrace_data_t sto; sip_msg_t *msg; sip_msg_t *req; - char statusbuf[8]; + char statusbuf[INT2STR_MAX_LEN]; if(t == NULL || t->uas.request == 0 || ps == NULL) { LM_DBG("no uas request, local transaction\n"); @@ -1176,25 +1175,36 @@ static void trace_onreply_in(struct cell *t, int type, struct tmcb_params *ps) sto.method = get_cseq(msg)->method; - strcpy(statusbuf, int2str(ps->code, &sto.status.len)); - sto.status.s = statusbuf; + sto.status.s = int2strbuf(ps->code, statusbuf, INT2STR_MAX_LEN, &sto.status.len); + if(sto.status.s == 0) { + LM_ERR("failure to get the status string\n"); + return; + } - siptrace_copy_proto(msg->rcv.proto, sto.fromip_buff); - strcat(sto.fromip_buff, ip_addr2a(&msg->rcv.src_ip)); - strcat(sto.fromip_buff, ":"); - strcat(sto.fromip_buff, int2str(msg->rcv.src_port, NULL)); - sto.fromip.s = sto.fromip_buff; - sto.fromip.len = strlen(sto.fromip_buff); + sto.fromip.len = snprintf(sto.fromip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(msg->rcv.proto), + ip_addr2a(&msg->rcv.src_ip), (int)msg->rcv.src_port); + if(sto.fromip.len<0 || sto.fromip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format fromip buffer (%d)\n", sto.fromip.len); + sto.fromip.s = SIPTRACE_ANYADDR; + sto.fromip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.fromip.s = sto.fromip_buff; + } if(trace_local_ip.s && trace_local_ip.len > 0) { sto.toip = trace_local_ip; } else { - siptrace_copy_proto(msg->rcv.proto, sto.toip_buff); - strcat(sto.toip_buff, ip_addr2a(&msg->rcv.dst_ip)); - strcat(sto.toip_buff, ":"); - strcat(sto.toip_buff, int2str(msg->rcv.dst_port, NULL)); - sto.toip.s = sto.toip_buff; - sto.toip.len = strlen(sto.toip_buff); + sto.toip.len = snprintf(sto.toip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(msg->rcv.proto), + ip_addr2a(&msg->rcv.dst_ip), (int)msg->rcv.dst_port); + if(sto.toip.len<0 || sto.toip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format toip buffer (%d)\n", sto.toip.len); + sto.toip.s = SIPTRACE_ANYADDR; + sto.toip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.toip.s = sto.toip_buff; + } } sto.dir = "in"; @@ -1216,8 +1226,7 @@ static void trace_onreply_out(struct cell *t, int type, struct tmcb_params *ps) struct sip_msg *msg; struct sip_msg *req; struct ip_addr to_ip; - int len; - char statusbuf[8]; + char statusbuf[INT2STR_MAX_LEN]; dest_info_t *dst; if(t == NULL || t->uas.request == 0 || ps == NULL) { @@ -1280,16 +1289,23 @@ static void trace_onreply_out(struct cell *t, int type, struct tmcb_params *ps) if(trace_local_ip.s && trace_local_ip.len > 0) { sto.fromip = trace_local_ip; } else { - siptrace_copy_proto(msg->rcv.proto, sto.fromip_buff); - strcat(sto.fromip_buff, ip_addr2a(&req->rcv.dst_ip)); - strcat(sto.fromip_buff, ":"); - strcat(sto.fromip_buff, int2str(req->rcv.dst_port, NULL)); - sto.fromip.s = sto.fromip_buff; - sto.fromip.len = strlen(sto.fromip_buff); + sto.fromip.len = snprintf(sto.fromip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(msg->rcv.proto), + ip_addr2a(&req->rcv.dst_ip), (int)req->rcv.dst_port); + if(sto.fromip.len<0 || sto.fromip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format fromip buffer (%d)\n", sto.fromip.len); + sto.fromip.s = SIPTRACE_ANYADDR; + sto.fromip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.fromip.s = sto.fromip_buff; + } } - strcpy(statusbuf, int2str(ps->code, &sto.status.len)); - sto.status.s = statusbuf; + sto.status.s = int2strbuf(ps->code, statusbuf, INT2STR_MAX_LEN, &sto.status.len); + if(sto.status.s == 0) { + LM_ERR("failure to get the status string\n"); + return; + } memset(&to_ip, 0, sizeof(struct ip_addr)); dst = ps->dst; @@ -1298,13 +1314,16 @@ static void trace_onreply_out(struct cell *t, int type, struct tmcb_params *ps) sto.toip.len = SIPTRACE_ANYADDR_LEN; } else { su2ip_addr(&to_ip, &dst->to); - siptrace_copy_proto(dst->proto, sto.toip_buff); - strcat(sto.toip_buff, ip_addr2a(&to_ip)); - strcat(sto.toip_buff, ":"); - strcat(sto.toip_buff, - int2str((unsigned long)su_getport(&dst->to), &len)); - sto.toip.s = sto.toip_buff; - sto.toip.len = strlen(sto.toip_buff); + sto.toip.len = snprintf(sto.toip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(dst->proto), + ip_addr2a(&to_ip), (int)su_getport(&dst->to)); + if(sto.toip.len<0 || sto.toip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format toip buffer (%d)\n", sto.toip.len); + sto.toip.s = SIPTRACE_ANYADDR; + sto.toip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.toip.s = sto.toip_buff; + } } sto.dir = "out"; @@ -1333,7 +1352,7 @@ static void trace_sl_onreply_out(sl_cbp_t *slcbp) siptrace_data_t sto; sip_msg_t *msg; ip_addr_t to_ip; - char statusbuf[5]; + char statusbuf[INT2STR_MAX_LEN]; if(slcbp == NULL || slcbp->req == NULL) { LM_ERR("bad parameters\n"); @@ -1377,8 +1396,11 @@ static void trace_sl_onreply_out(sl_cbp_t *slcbp) } } - strcpy(statusbuf, int2str(slcbp->code, &sto.status.len)); - sto.status.s = statusbuf; + sto.status.s = int2strbuf(slcbp->code, statusbuf, INT2STR_MAX_LEN, &sto.status.len); + if(sto.status.s == 0) { + LM_ERR("failure to get the status string\n"); + return; + } memset(&to_ip, 0, sizeof(struct ip_addr)); if(slcbp->dst == 0) { @@ -1410,44 +1432,6 @@ static void trace_sl_onreply_out(sl_cbp_t *slcbp) return; } -#define st_bufcopy_uint(_dbuf, _dsize, _dp, _sival) do { \ - str _ls; \ - _ls.s = int2str(_sival, &_ls.len); \ - if(_ls.s == NULL || _dp + _ls.len >= _dbuf + _dsize) { \ - LM_ERR("conversion error or out of bound (%p:%d/%p:%d\n", \ - _dbuf, _dsize, _dp, _ls.len); \ - goto error; \ - } \ - memcpy(_dp, _ls.s, _ls.len); \ - _dp += _ls.len; \ - } while(0) - -#define st_bufcopy_ipaddr(_dbuf, _dsize, _dp, _sipaddr) do { \ - str _ls; \ - _ls.s = ip_addr2a(_sipaddr); \ - if(_ls.s == NULL) { \ - LM_ERR("conversion error\n"); \ - goto error; \ - } \ - _ls.len = strlen(_ls.s); \ - if(_dp + _ls.len >= _dbuf + _dsize) { \ - LM_ERR("out of bound (%p:%d/%p:%d\n", \ - _dbuf, _dsize, _dp, _ls.len); \ - goto error; \ - } \ - memcpy(_dp, _ls.s, _ls.len); \ - _dp += _ls.len; \ - } while(0) - -#define st_bufcopy_char(_dbuf, _dsize, _dp, _scval) do { \ - if(_dp + 1 >= _dbuf + _dsize) { \ - LM_ERR("out of bound (%p:%d/%p:1\n", _dbuf, _dsize, _dp); \ - goto error; \ - } \ - *_dp = _scval; \ - _dp += 1; \ - } while(0) - /** * */ @@ -1455,8 +1439,6 @@ int siptrace_net_data_recv(sr_event_param_t *evp) { sr_net_info_t *nd; siptrace_data_t sto; - char *cp; - int olen; if(evp->data == 0) return -1; @@ -1470,34 +1452,32 @@ int siptrace_net_data_recv(sr_event_param_t *evp) sto.body.s = nd->data.s; sto.body.len = nd->data.len; - siptrace_copy_proto_olen(nd->rcv->proto, sto.fromip_buff, olen); - cp = sto.fromip_buff + olen; - st_bufcopy_ipaddr(sto.fromip_buff, SIPTRACE_ADDR_MAX, cp, - &nd->rcv->src_ip); - st_bufcopy_char(sto.fromip_buff, SIPTRACE_ADDR_MAX, cp, ':'); - st_bufcopy_uint(sto.fromip_buff, SIPTRACE_ADDR_MAX, cp, - nd->rcv->src_port); - sto.fromip.s = sto.fromip_buff; - sto.fromip.len = strlen(sto.fromip_buff); - - siptrace_copy_proto_olen(nd->rcv->proto, sto.toip_buff, olen); - cp = sto.toip_buff + olen; - st_bufcopy_ipaddr(sto.toip_buff, SIPTRACE_ADDR_MAX, cp, - &nd->rcv->dst_ip); - st_bufcopy_char(sto.toip_buff, SIPTRACE_ADDR_MAX, cp, ':'); - st_bufcopy_uint(sto.toip_buff, SIPTRACE_ADDR_MAX, cp, - nd->rcv->dst_port); - sto.toip.s = sto.toip_buff; - /* zero terminated due to memset */ - sto.toip.len = strlen(sto.toip_buff); + sto.fromip.len = snprintf(sto.fromip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(nd->rcv->proto), + ip_addr2a(&nd->rcv->src_ip), (int)nd->rcv->src_port); + if(sto.fromip.len<0 || sto.fromip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format toip buffer (%d)\n", sto.fromip.len); + sto.fromip.s = SIPTRACE_ANYADDR; + sto.fromip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.fromip.s = sto.fromip_buff; + } + + sto.toip.len = snprintf(sto.toip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(nd->rcv->proto), ip_addr2a(&nd->rcv->dst_ip), + (int)nd->rcv->dst_port); + if(sto.toip.len<0 || sto.toip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format toip buffer (%d)\n", sto.toip.len); + sto.toip.s = SIPTRACE_ANYADDR; + sto.toip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.toip.s = sto.toip_buff; + } sto.dir = "in"; trace_send_hep_duplicate(&sto.body, &sto.fromip, &sto.toip, NULL, NULL); return 0; - -error: - return -1; } /** @@ -1508,9 +1488,6 @@ int siptrace_net_data_send(sr_event_param_t *evp) sr_net_info_t *nd; dest_info_t new_dst; siptrace_data_t sto; - char *cp; - char *p0; - int olen; if(evp->data == 0) return -1; @@ -1546,22 +1523,17 @@ int siptrace_net_data_send(sr_event_param_t *evp) } sto.fromip.s = sto.fromip_buff; - siptrace_copy_proto_olen(new_dst.send_sock->proto, sto.toip_buff, olen); - cp = sto.toip_buff + olen; - p0 = suip2a(&new_dst.to, sizeof(new_dst.to)); - olen = strlen(p0); - if(cp + olen >= sto.toip_buff + SIPTRACE_ADDR_MAX - 1) { - LM_ERR("out of bounds: %p %p %d\n", sto.toip_buff, cp, olen); - goto error; - } - memcpy(cp, p0, olen); - cp += olen; - st_bufcopy_char(sto.toip_buff, SIPTRACE_ADDR_MAX, cp, ':'); - st_bufcopy_uint(sto.toip_buff, SIPTRACE_ADDR_MAX, cp, + sto.toip.len = snprintf(sto.toip_buff, SIPTRACE_ADDR_MAX, "%s:%s:%d", + siptrace_proto_name(new_dst.send_sock->proto), + suip2a(&new_dst.to, sizeof(new_dst.to)), (int)su_getport(&new_dst.to)); - sto.toip.s = sto.toip_buff; - /* zero terminated due to memset */ - sto.toip.len = strlen(sto.toip_buff); + if(sto.toip.len<0 || sto.toip.len>=SIPTRACE_ADDR_MAX) { + LM_ERR("failed to format toip buffer (%d)\n", sto.toip.len); + sto.toip.s = SIPTRACE_ANYADDR; + sto.toip.len = SIPTRACE_ANYADDR_LEN; + } else { + sto.toip.s = sto.toip_buff; + } sto.dir = "out"; diff --git a/src/modules/siputils/Makefile b/src/modules/siputils/Makefile index 142e198d5..7d4f801f3 100644 --- a/src/modules/siputils/Makefile +++ b/src/modules/siputils/Makefile @@ -5,8 +5,6 @@ auto_gen= NAME=siputils.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/siputils/README b/src/modules/siputils/README index 3db13beda..390ef1b3c 100644 --- a/src/modules/siputils/README +++ b/src/modules/siputils/README @@ -79,26 +79,27 @@ Gabriel Vasile 4.9. tel2sip(uri, hostpart, result) 4.10. is_e164(pseudo-variable) 4.11. is_uri_user_e164(pseudo-variable) - 4.12. is_tel_number(tval) - 4.13. is_numeric(tval) - 4.14. is_alphanum(tval) - 4.15. is_alphanumex(tval, eset) - 4.16. encode_contact(encoding_prefix,hostpart) - 4.17. decode_contact() - 4.18. decode_contact_header() - 4.19. cmp_uri(str1, str2) - 4.20. cmp_aor(str1, str2) - 4.21. append_rpid_hf() - 4.22. append_rpid_hf(prefix, suffix) - 4.23. is_rpid_user_e164() - 4.24. set_uri_user(uri, user) - 4.25. set_uri_host(uri, host) - 4.26. is_request() - 4.27. is_reply() - 4.28. is_gruu([uri]) - 4.29. is_supported(option) - 4.30. is_first_hop() - 4.31. sip_p_charging_vector(flags) + 4.12. is_uri(pseudo-variable) + 4.13. is_tel_number(tval) + 4.14. is_numeric(tval) + 4.15. is_alphanum(tval) + 4.16. is_alphanumex(tval, eset) + 4.17. encode_contact(encoding_prefix,hostpart) + 4.18. decode_contact() + 4.19. decode_contact_header() + 4.20. cmp_uri(str1, str2) + 4.21. cmp_aor(str1, str2) + 4.22. append_rpid_hf() + 4.23. append_rpid_hf(prefix, suffix) + 4.24. is_rpid_user_e164() + 4.25. set_uri_user(uri, user) + 4.26. set_uri_host(uri, host) + 4.27. is_request() + 4.28. is_reply() + 4.29. is_gruu([uri]) + 4.30. is_supported(option) + 4.31. is_first_hop() + 4.32. sip_p_charging_vector(flags) 5. Exported pseudo-variables @@ -130,26 +131,27 @@ Gabriel Vasile 1.18. tel2sip usage 1.19. is_e164 usage 1.20. is_uri_user_e164 usage - 1.21. is_tel_number usage - 1.22. is_numeric usage - 1.23. is_alphanum usage - 1.24. is_alphanumex usage - 1.25. encode_contact usage - 1.26. decode_contact usage - 1.27. decode_contact_header usage - 1.28. cmp_uri usage - 1.29. cmp_aor usage - 1.30. append_rpid_hf usage - 1.31. append_rpid_hf(prefix, suffix) usage - 1.32. is_rpid_user_e164 usage - 1.33. set_uri_user usage - 1.34. set_uri_host usage - 1.35. is_request usage - 1.36. is_reply usage - 1.37. is_gruu() usage - 1.38. is_supported() usage - 1.39. is_first_hop() usage - 1.40. sip_p_charging_vector() usage + 1.21. is_uri usage + 1.22. is_tel_number usage + 1.23. is_numeric usage + 1.24. is_alphanum usage + 1.25. is_alphanumex usage + 1.26. encode_contact usage + 1.27. decode_contact usage + 1.28. decode_contact_header usage + 1.29. cmp_uri usage + 1.30. cmp_aor usage + 1.31. append_rpid_hf usage + 1.32. append_rpid_hf(prefix, suffix) usage + 1.33. is_rpid_user_e164 usage + 1.34. set_uri_user usage + 1.35. set_uri_host usage + 1.36. is_request usage + 1.37. is_reply usage + 1.38. is_gruu() usage + 1.39. is_supported() usage + 1.40. is_first_hop() usage + 1.41. sip_p_charging_vector() usage Chapter 1. Admin Guide @@ -186,26 +188,27 @@ Chapter 1. Admin Guide 4.9. tel2sip(uri, hostpart, result) 4.10. is_e164(pseudo-variable) 4.11. is_uri_user_e164(pseudo-variable) - 4.12. is_tel_number(tval) - 4.13. is_numeric(tval) - 4.14. is_alphanum(tval) - 4.15. is_alphanumex(tval, eset) - 4.16. encode_contact(encoding_prefix,hostpart) - 4.17. decode_contact() - 4.18. decode_contact_header() - 4.19. cmp_uri(str1, str2) - 4.20. cmp_aor(str1, str2) - 4.21. append_rpid_hf() - 4.22. append_rpid_hf(prefix, suffix) - 4.23. is_rpid_user_e164() - 4.24. set_uri_user(uri, user) - 4.25. set_uri_host(uri, host) - 4.26. is_request() - 4.27. is_reply() - 4.28. is_gruu([uri]) - 4.29. is_supported(option) - 4.30. is_first_hop() - 4.31. sip_p_charging_vector(flags) + 4.12. is_uri(pseudo-variable) + 4.13. is_tel_number(tval) + 4.14. is_numeric(tval) + 4.15. is_alphanum(tval) + 4.16. is_alphanumex(tval, eset) + 4.17. encode_contact(encoding_prefix,hostpart) + 4.18. decode_contact() + 4.19. decode_contact_header() + 4.20. cmp_uri(str1, str2) + 4.21. cmp_aor(str1, str2) + 4.22. append_rpid_hf() + 4.23. append_rpid_hf(prefix, suffix) + 4.24. is_rpid_user_e164() + 4.25. set_uri_user(uri, user) + 4.26. set_uri_host(uri, host) + 4.27. is_request() + 4.28. is_reply() + 4.29. is_gruu([uri]) + 4.30. is_supported(option) + 4.31. is_first_hop() + 4.32. sip_p_charging_vector(flags) 5. Exported pseudo-variables @@ -400,26 +403,27 @@ modparam("auth", "rpid_avp", "$avp(myrpid)") 4.9. tel2sip(uri, hostpart, result) 4.10. is_e164(pseudo-variable) 4.11. is_uri_user_e164(pseudo-variable) - 4.12. is_tel_number(tval) - 4.13. is_numeric(tval) - 4.14. is_alphanum(tval) - 4.15. is_alphanumex(tval, eset) - 4.16. encode_contact(encoding_prefix,hostpart) - 4.17. decode_contact() - 4.18. decode_contact_header() - 4.19. cmp_uri(str1, str2) - 4.20. cmp_aor(str1, str2) - 4.21. append_rpid_hf() - 4.22. append_rpid_hf(prefix, suffix) - 4.23. is_rpid_user_e164() - 4.24. set_uri_user(uri, user) - 4.25. set_uri_host(uri, host) - 4.26. is_request() - 4.27. is_reply() - 4.28. is_gruu([uri]) - 4.29. is_supported(option) - 4.30. is_first_hop() - 4.31. sip_p_charging_vector(flags) + 4.12. is_uri(pseudo-variable) + 4.13. is_tel_number(tval) + 4.14. is_numeric(tval) + 4.15. is_alphanum(tval) + 4.16. is_alphanumex(tval, eset) + 4.17. encode_contact(encoding_prefix,hostpart) + 4.18. decode_contact() + 4.19. decode_contact_header() + 4.20. cmp_uri(str1, str2) + 4.21. cmp_aor(str1, str2) + 4.22. append_rpid_hf() + 4.23. append_rpid_hf(prefix, suffix) + 4.24. is_rpid_user_e164() + 4.25. set_uri_user(uri, user) + 4.26. set_uri_host(uri, host) + 4.27. is_request() + 4.28. is_reply() + 4.29. is_gruu([uri]) + 4.30. is_supported(option) + 4.31. is_first_hop() + 4.32. sip_p_charging_vector(flags) 4.1. ring_insert_callid() @@ -624,52 +628,69 @@ if (is_uri_user_e164("$avp(i:705)") { }; ... -4.12. is_tel_number(tval) +4.12. is_uri(pseudo-variable) + + Checks if string value of pseudo variable argument is a valid uri. + + This function can be used from ANY_ROUTE. + + Example 1.21. is_uri usage +... +if (is_uri("$var(x)")) { # Check if variable contains a uri + ... +} +if (is_uri("$avp(i:705)") { + # Check value stored in avp i:705 + ... +}; +... + +4.13. is_tel_number(tval) Checks if the parameter value is a telephone number: starting with one optional +, followed by digits. The parameter can include variables. This function can be used from ANY_ROUTE. - Example 1.21. is_tel_number usage + Example 1.22. is_tel_number usage ... if (is_tel_number("$rU")) { # Test if R-URI user is telephone number ... } -if (is_tel_number("+24242424") { +if (is_tel_number("+24242424")) { ... } ... -4.13. is_numeric(tval) +4.14. is_numeric(tval) Checks if the parameter value consists solely of decimal digits. The parameter can include variables. This function can be used from ANY_ROUTE. - Example 1.22. is_numeric usage + Example 1.23. is_numeric usage ... if (is_numeric("$rU")) { # Test if R-URI user consists of decimal digits ... } ... -4.14. is_alphanum(tval) +4.15. is_alphanum(tval) Checks if the parameter value consists solely of decimal digits or alphabetic ASCII characters. The parameter can include variables. This function can be used from ANY_ROUTE. - Example 1.23. is_alphanum usage + Example 1.24. is_alphanum usage ... if (is_alphanum("$rU")) { ... } ... -4.15. is_alphanumex(tval, eset) +4.16. is_alphanumex(tval, eset) Checks if the value of parameter 'tval' consists solely of decimal digits, alphabetic ASCII characters and the characters in the second @@ -677,14 +698,14 @@ if (is_alphanum("$rU")) { This function can be used from ANY_ROUTE. - Example 1.24. is_alphanumex usage + Example 1.25. is_alphanumex usage ... if (is_alphanumex("$rU", "+.-_")) { ... } ... -4.16. encode_contact(encoding_prefix,hostpart) +4.17. encode_contact(encoding_prefix,hostpart) This function will encode uri-s inside Contact header in the following manner sip:username:password@ip:port;transport=protocol goes @@ -706,12 +727,12 @@ if (is_alphanumex("$rU", "+.-_")) { This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE. - Example 1.25. encode_contact usage + Example 1.26. encode_contact usage ... if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4"); ... -4.17. decode_contact() +4.18. decode_contact() This function will decode the request URI. If the RURI is in the format sip:encoding_prefix*username*ip*port*protocol@hostpart it will be @@ -724,12 +745,12 @@ if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4"); This function can be used from REQUEST_ROUTE. - Example 1.26. decode_contact usage + Example 1.27. decode_contact usage ... if (uri =~ "^sip:natted_client") { decode_contact(); } ... -4.18. decode_contact_header() +4.19. decode_contact_header() This function will decode URIs inside Contact header. If the URI in the format sip:encoding_prefix*username*ip*port*protocol@hostpart it will @@ -742,7 +763,7 @@ if (uri =~ "^sip:natted_client") { decode_contact(); } This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE. - Example 1.27. decode_contact_header usage + Example 1.28. decode_contact_header usage ... reply_route[2] { ... @@ -751,13 +772,13 @@ reply_route[2] { } ... -4.19. cmp_uri(str1, str2) +4.20. cmp_uri(str1, str2) The function returns true if the two parameters matches as SIP URI. This function can be used from ANY_ROUTE. - Example 1.28. cmp_uri usage + Example 1.29. cmp_uri usage ... if(cmp_uri("$ru", "sip:kamailio@kamailio.org")) { @@ -765,14 +786,14 @@ if(cmp_uri("$ru", "sip:kamailio@kamailio.org")) } ... -4.20. cmp_aor(str1, str2) +4.21. cmp_aor(str1, str2) The function returns true if the two parameters matches as AoR. The parameters have to be SIP URIs. This function can be used from ANY_ROUTE. - Example 1.29. cmp_aor usage + Example 1.30. cmp_aor usage ... if(cmp_aor("$rU@KaMaIlIo.org", "sip:kamailio@$fd")) { @@ -780,7 +801,7 @@ if(cmp_aor("$rU@KaMaIlIo.org", "sip:kamailio@$fd")) } ... -4.21. append_rpid_hf() +4.22. append_rpid_hf() Appends to the message a Remote-Party-ID header that contains header 'Remote-Party-ID: ' followed by the saved value of the SIP URI received @@ -791,14 +812,14 @@ if(cmp_aor("$rU@KaMaIlIo.org", "sip:kamailio@$fd")) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.30. append_rpid_hf usage + Example 1.31. append_rpid_hf usage ... append_rpid_hf(); # Append Remote-Party-ID header field ... -4.22. append_rpid_hf(prefix, suffix) +4.23. append_rpid_hf(prefix, suffix) - This function is the same as Section 4.21, “ append_rpid_hf()â€. The + This function is the same as Section 4.22, “ append_rpid_hf()â€. The only difference is that it accepts two parameters--prefix and suffix to be added to Remote-Party-ID header field. This function ignores rpid_prefix and rpid_suffix parameters, instead of that allows to set @@ -806,8 +827,8 @@ append_rpid_hf(); # Append Remote-Party-ID header field Meaning of the parameters is as follows: * prefix - Prefix of the Remote-Party-ID URI. The string will be - added at the begining of body of the header field, just before the - URI. + added at the beginning of the body of the header field, just before + the URI. * suffix - Suffix of the Remote-Party-ID header field. The string will be appended at the end of the header field. It can be used to set various URI parameters, for example. @@ -815,13 +836,13 @@ append_rpid_hf(); # Append Remote-Party-ID header field This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.31. append_rpid_hf(prefix, suffix) usage + Example 1.32. append_rpid_hf(prefix, suffix) usage ... # Append Remote-Party-ID header field append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes"); ... -4.23. is_rpid_user_e164() +4.24. is_rpid_user_e164() The function checks if the SIP URI received from the database or radius server and will potentially be used in Remote-Party-ID header field @@ -831,68 +852,68 @@ append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes"); This function can be used from REQUEST_ROUTE. - Example 1.32. is_rpid_user_e164 usage + Example 1.33. is_rpid_user_e164 usage ... if (is_rpid_user_e164()) { # do something here }; ... -4.24. set_uri_user(uri, user) +4.25. set_uri_user(uri, user) Sets userpart of SIP URI stored in writable pseudo variable 'uri' to value of pseudo variable 'user'. This function can be used from ANY_ROUTE. - Example 1.33. set_uri_user usage + Example 1.34. set_uri_user usage ... $var(uri) = "sip:user@host"; $var(user) = "new_user"; set_uri_user("$var(uri)", "$var(user)"); ... -4.25. set_uri_host(uri, host) +4.26. set_uri_host(uri, host) Sets hostpart of SIP URI stored in writable pseudo variable 'uri' to value of pseudo variable 'host'. This function can be used from ANY_ROUTE. - Example 1.34. set_uri_host usage + Example 1.35. set_uri_host usage ... $var(uri) = "sip:user@host"; $var(host) = "new_host"; set_uri_host("$var(uri)", "$var(host)"); ... -4.26. is_request() +4.27. is_request() Return true if the SIP message is a request. This function can be used from ANY_ROUTE. - Example 1.35. is_request usage + Example 1.36. is_request usage ... if (is_request()) { ... } ... -4.27. is_reply() +4.28. is_reply() Return true if the SIP message is a reply. This function can be used from ANY_ROUTE. - Example 1.36. is_reply usage + Example 1.37. is_reply usage ... if (is_reply()) { ... } ... -4.28. is_gruu([uri]) +4.29. is_gruu([uri]) The function returns true if the uri is GRUU ('gr' parameter is present): 1 - pub-gruu; 2 - temp-gruu. @@ -903,12 +924,12 @@ if (is_reply()) { This function can be used from ANY_ROUTE. - Example 1.37. is_gruu() usage + Example 1.38. is_gruu() usage ... if(is_gruu()) { ... } ... -4.29. is_supported(option) +4.30. is_supported(option) Function returns true if given option is listed in Supported header(s) (if any) of the request. Currently the following options are known: @@ -916,12 +937,12 @@ if(is_gruu()) { ... } This function can be used from ANY_ROUTE. - Example 1.38. is_supported() usage + Example 1.39. is_supported() usage ... if (is_supported("outbound")) { ... } ... -4.30. is_first_hop() +4.31. is_first_hop() The function returns true if the proxy is first hop after the original sender. For incoming SIP requests, it means there is only one Via @@ -935,19 +956,19 @@ if (is_supported("outbound")) { ... } This function can be used from ANY_ROUTE. - Example 1.39. is_first_hop() usage + Example 1.40. is_first_hop() usage ... if(is_first_hop()) { ... } ... -4.31. sip_p_charging_vector(flags) +4.32. sip_p_charging_vector(flags) Manage the P-Charging-Vector header (RFC7315). The flags can be: 'r' - remove; 'g' - generate; 'f' - force (remove + generate). This function can be used from ANY_ROUTE. - Example 1.40. sip_p_charging_vector() usage + Example 1.41. sip_p_charging_vector() usage ... sip_p_charging_vector("g"); ... diff --git a/src/modules/siputils/checks.c b/src/modules/siputils/checks.c index 0a33bddbd..1db6901c4 100644 --- a/src/modules/siputils/checks.c +++ b/src/modules/siputils/checks.c @@ -129,17 +129,32 @@ int w_has_totag(struct sip_msg* _m, char* _foo, char* _bar) return has_totag(_m); } +/* + * Check if pseudo variable contains a valid uri + */ +int is_uri(struct sip_msg* _m, char* _sp, char* _s2) +{ + sip_uri_t turi; + str uval; + + if(fixup_get_svalue(_m, (gparam_t*)_sp, &uval)!=0) { + LM_ERR("cannot get parameter value\n"); + return -1; + } + if(parse_uri(uval.s, uval.len, &turi)!=0) { + return -1; + } + return 1; +} + /* * Check if the username matches the username in credentials */ -int is_user(struct sip_msg* _m, char* _user, char* _str2) +int ki_is_user(sip_msg_t *_m, str *suser) { - str* s; struct hdr_field* h; auth_body_t* c; - s = (str*)_user; - get_authorized_cred(_m->authorization, &h); if (!h) { get_authorized_cred(_m->proxy_auth, &h); @@ -157,12 +172,12 @@ int is_user(struct sip_msg* _m, char* _user, char* _str2) return -1; } - if (s->len != c->digest.username.user.len) { + if (suser->len != c->digest.username.user.len) { LM_DBG("username length does not match\n"); return -1; } - if (!memcmp(s->s, c->digest.username.user.s, s->len)) { + if (!memcmp(suser->s, c->digest.username.user.s, suser->len)) { LM_DBG("username matches\n"); return 1; } else { @@ -171,29 +186,58 @@ int is_user(struct sip_msg* _m, char* _user, char* _str2) } } +int is_user(struct sip_msg* _m, char* _user, char* _str2) +{ + str suser; + if(fixup_get_svalue(_m, (gparam_t*)_user, &suser)<0) { + LM_ERR("failed to get user param\n"); + return -1; + } + + return ki_is_user(_m, &suser); +} /* * Find if Request URI has a given parameter with no value */ int uri_param_1(struct sip_msg* _msg, char* _param, char* _str2) { - return uri_param_2(_msg, _param, (char*)0); + str sparam; + if(fixup_get_svalue(_msg, (gparam_t*)_param, &sparam)<0) { + LM_ERR("failed to get parameter\n"); + return -1; + } + return ki_uri_param_value(_msg, &sparam, NULL); } - /* * Find if Request URI has a given parameter with matching value */ int uri_param_2(struct sip_msg* _msg, char* _param, char* _value) { - str *param, *value, t; + str sparam; + str svalue; + if(fixup_get_svalue(_msg, (gparam_t*)_param, &sparam)<0) { + LM_ERR("failed to get parameter\n"); + return -1; + } + if(fixup_get_svalue(_msg, (gparam_t*)_value, &svalue)<0) { + LM_ERR("failed to get value\n"); + return -1; + } + return ki_uri_param_value(_msg, &sparam, &svalue); +} + +/* + * Find if Request URI has a given parameter with matching value + */ +int ki_uri_param_value(sip_msg_t *_msg, str *sparam, str *svalue) +{ + str t; param_hooks_t hooks; param_t* params, *pit; - param = (str*)_param; - value = (str*)_value; - if (parse_sip_msg_uri(_msg) < 0) { LM_ERR("ruri parsing failed\n"); return -1; @@ -207,11 +251,11 @@ int uri_param_2(struct sip_msg* _msg, char* _param, char* _value) } for (pit = params; pit; pit = pit->next) { - if ((pit->name.len == param->len) && - (strncmp(pit->name.s, param->s, param->len) == 0)) { - if (value) { - if ((value->len == pit->body.len) && - strncmp(value->s, pit->body.s, value->len) == 0) { + if ((pit->name.len == sparam->len) && + (strncmp(pit->name.s, sparam->s, sparam->len) == 0)) { + if (svalue) { + if ((svalue->len == pit->body.len) && + strncmp(svalue->s, pit->body.s, svalue->len) == 0) { goto ok; } else { goto nok; @@ -236,6 +280,13 @@ ok: } +/** + * + */ +int ki_uri_param(sip_msg_t *_msg, str *sparam) +{ + return ki_uri_param_value(_msg, sparam, NULL); +} /* * Adds a new parameter to Request URI @@ -753,30 +804,24 @@ found: * Check if the parameter is a valid telephone number * - optional leading + followed by digits only */ -int is_tel_number(sip_msg_t *msg, char *_sp, char* _s2) +int ki_is_tel_number(sip_msg_t *msg, str *tval) { - str tval = {0, 0}; int i; - if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) - { - LM_ERR("cannot get parameter value\n"); - return -1; - } - if(tval.len<1) + if(tval==NULL || tval->len<1) return -2; i = 0; - if(tval.s[0]=='+') { - if(tval.len<2) + if(tval->s[0]=='+') { + if(tval->len<2) return -2; - if(tval.s[1]<'1' || tval.s[1]>'9') + if(tval->s[1]<'1' || tval->s[1]>'9') return -2; i = 2; } - for(; i'9') + for(; ilen; i++) { + if(tval->s[i]<'0' || tval->s[i]>'9') return -2; } @@ -785,24 +830,35 @@ int is_tel_number(sip_msg_t *msg, char *_sp, char* _s2) /* - * Check if the parameter contains decimal digits only + * Check if the parameter is a valid telephone number + * - optional leading + followed by digits only */ -int is_numeric(sip_msg_t *msg, char *_sp, char* _s2) +int is_tel_number(sip_msg_t *msg, char *_sp, char* _s2) { str tval = {0, 0}; - int i; - if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) - { + if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) { LM_ERR("cannot get parameter value\n"); return -1; } - if(tval.len<=0) + + return ki_is_tel_number(msg, &tval); +} + + +/* + * Check if the parameter contains decimal digits only + */ +int ki_is_numeric(sip_msg_t *msg, str *tval) +{ + int i; + + if(tval==NULL || tval->len<=0) return -2; i = 0; - for(; i'9') + for(; ilen; i++) { + if(tval->s[i]<'0' || tval->s[i]>'9') return -2; } @@ -811,66 +867,81 @@ int is_numeric(sip_msg_t *msg, char *_sp, char* _s2) /* - * Check if the parameter contains alphanumeric characters + * Check if the parameter contains decimal digits only */ -int ksr_is_alphanum(sip_msg_t *msg, char *_sp, char* _s2) +int is_numeric(sip_msg_t *msg, char *_sp, char* _s2) { str tval = {0, 0}; - int i; if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) { LM_ERR("cannot get parameter value\n"); return -1; } - if(tval.len<=0) + + return ki_is_numeric(msg, &tval); +} + + +/* + * Check if the parameter contains alphanumeric characters + */ +int ki_is_alphanum(sip_msg_t *msg, str *tval) +{ + int i; + + if(tval==NULL || tval->len<=0) return -2; i = 0; - for(; i='0' && tval.s[i]<='9') - || (tval.s[i]>='A' && tval.s[i]<='Z') - || (tval.s[i]>='z' && tval.s[i]<='z')) ) - return -3; + for(; ilen; i++) { + if( !((tval->s[i]>='0' && tval->s[i]<='9') + || (tval->s[i]>='A' && tval->s[i]<='Z') + || (tval->s[i]>='a' && tval->s[i]<='z')) ) + return -3; } return 1; } /* - * Check if the parameter contains alphanumeric characters or are part of - * the second parameter + * Check if the parameter contains alphanumeric characters */ -int ksr_is_alphanumex(sip_msg_t *msg, char *_sp, char* _se) +int ksr_is_alphanum(sip_msg_t *msg, char *_sp, char* _s2) { str tval = {0, 0}; - str eset = {0, 0}; - int i; - int j; - int found; if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) { - LM_ERR("cannot get tval parameter value\n"); - return -1; - } - if(fixup_get_svalue(msg, (gparam_t*)_se, &eset)!=0) { - LM_ERR("cannot get eset parameter value\n"); + LM_ERR("cannot get parameter value\n"); return -1; } - if(tval.len<=0) + return ki_is_alphanum(msg, &tval); +} + +/* + * Check if the parameter contains alphanumeric characters or are part of + * the second parameter + */ +int ki_is_alphanumex(sip_msg_t *msg, str *tval, str *eset) +{ + int i; + int j; + int found; + + if(tval==NULL || tval->len<=0) return -2; i = 0; - for(; i='0' && tval.s[i]<='9') - || (tval.s[i]>='A' && tval.s[i]<='Z') - || (tval.s[i]>='z' && tval.s[i]<='z')) ) { - if(eset.len<=0) { + for(; ilen; i++) { + if( !((tval->s[i]>='0' && tval->s[i]<='9') + || (tval->s[i]>='A' && tval->s[i]<='Z') + || (tval->s[i]>='a' && tval->s[i]<='z')) ) { + if(eset==NULL || eset->len<=0) { return -3; } found = 0; - for(j=0; jlen; j++) { + if(tval->s[i]==eset->s[j]) { found = 1; break; } @@ -883,3 +954,24 @@ int ksr_is_alphanumex(sip_msg_t *msg, char *_sp, char* _se) return 1; } + +/* + * Check if the parameter contains alphanumeric characters or are part of + * the second parameter + */ +int ksr_is_alphanumex(sip_msg_t *msg, char *_sp, char* _se) +{ + str tval = {0, 0}; + str eset = {0, 0}; + + if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) { + LM_ERR("cannot get tval parameter value\n"); + return -1; + } + if(fixup_get_svalue(msg, (gparam_t*)_se, &eset)!=0) { + LM_ERR("cannot get eset parameter value\n"); + return -1; + } + + return ki_is_alphanumex(msg, &tval, &eset); +} \ No newline at end of file diff --git a/src/modules/siputils/checks.h b/src/modules/siputils/checks.h index 39a575d94..07d69caa7 100644 --- a/src/modules/siputils/checks.h +++ b/src/modules/siputils/checks.h @@ -75,6 +75,10 @@ int add_uri_param(struct sip_msg* _msg, char* _param, char* _s2); */ int tel2sip(struct sip_msg* _msg, char* _uri, char* _hostpart, char* _res); +/* + * Check if pseudo variable contains a valid uri + */ +int is_uri(struct sip_msg* _m, char* _sp, char* _s2); /* * Check if user part of URI in pseudo variable is an e164 number @@ -135,4 +139,18 @@ int ksr_is_alphanum(sip_msg_t *msg, char *_sp, char* _s2); */ int ksr_is_alphanumex(sip_msg_t *msg, char *_sp, char* _se); +int ki_is_user(sip_msg_t *_m, str *suser); + +int ki_uri_param(sip_msg_t *_msg, str *sparam); + +int ki_uri_param_value(sip_msg_t *_msg, str *sparam, str *svalue); + +int ki_is_tel_number(sip_msg_t *msg, str *tval); + +int ki_is_numeric(sip_msg_t *msg, str *tval); + +int ki_is_alphanum(sip_msg_t *msg, str *tval); + +int ki_is_alphanumex(sip_msg_t *msg, str *tval, str *eset); + #endif /* CHECKS_H */ diff --git a/src/modules/siputils/contact_ops.c b/src/modules/siputils/contact_ops.c index 72f3a1ec4..5183f40ab 100644 --- a/src/modules/siputils/contact_ops.c +++ b/src/modules/siputils/contact_ops.c @@ -44,11 +44,8 @@ #include -//#define DEBUG - int -encode_contact (struct sip_msg *msg, char *encoding_prefix,char *public_ip) +int encode_contact (struct sip_msg *msg, char *encoding_prefix,char *public_ip) { - contact_body_t *cb; contact_t *c; str uri; @@ -136,11 +133,7 @@ decode_contact (struct sip_msg *msg,char *unused1,char *unused2) uri.s = 0; uri.len = 0; -#ifdef DEBUG - fprintf (stdout,"---START--------DECODE CONTACT-----------------\n"); - fprintf (stdout,"%.*s\n",50,msg->buf); - fprintf (stdout, "INITIAL.s=[%.*s]\n", uri.len, uri.s); -#endif + LM_DBG("[%.*s]\n", 75, msg->buf); separator = DEFAULT_SEPARATOR[0]; if (contact_flds_separator != NULL) @@ -160,10 +153,9 @@ decode_contact (struct sip_msg *msg,char *unused1,char *unused2) res = decode_uri (uri, separator, &newUri); -#ifdef DEBUG if (res == 0) - fprintf (stdout, "newuri.s=[%.*s]\n", newUri.len, newUri.s); -#endif + LM_DBG("newuri.s=[%.*s]\n", newUri.len, newUri.s); + if (res != 0) { LM_ERR("failed decoding contact.Code %d\n", res); @@ -195,12 +187,7 @@ decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2) str newUri; char separator; int res; - - -#ifdef DEBUG str* ruri; - fprintf (stdout,"---START--------DECODE CONTACT HEADER-----------------\n"); -#endif if ((msg->contact == NULL)&&((parse_headers(msg,HDR_CONTACT_F,0) == -1) || (msg->contact== NULL) )) @@ -214,14 +201,11 @@ decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2) if (strlen(contact_flds_separator)>=1) separator = contact_flds_separator[0]; -#ifdef DEBUG - fprintf (stdout,"Using separator %c\n",separator); + LM_DBG("Using separator [%c]\n",separator); ruri = GET_RURI(msg); - fprintf (stdout,"[len = %d]New uri is->%.*s\n", - ruri->len,ruri->len,ruri->s); + LM_DBG("New uri [%.*s]\n", ruri->len, ruri->s); ruri = &msg->first_line.u.request.uri; - fprintf (stdout, "INITIAL.s=[%.*s]\n", ruri->len, ruri->s); -#endif + LM_DBG("Initial uri [%.*s]\n", ruri->len, ruri->s); if(msg->contact->parsed == NULL) { if(parse_contact(msg->contact) < 0 || msg->contact->parsed == NULL) { @@ -237,9 +221,7 @@ decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2) uri = c->uri; res = decode_uri(uri, separator, &newUri); -#ifdef DEBUG - fprintf(stdout, "newuri.s=[%.*s]\n", newUri.len, newUri.s); -#endif + LM_DBG("newuri.s=[%.*s]\n", newUri.len, newUri.s); if(res != 0) { LM_ERR("failed decoding contact.Code %d\n", res); #ifdef STRICT_CHECK @@ -269,9 +251,6 @@ decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2) #endif } // if c!= NULL -#ifdef DEBUG - fprintf (stdout,"---END--------DECODE CONTACT HEADER-----------------\n");fflush(stdout); -#endif return 1; } @@ -322,9 +301,7 @@ encode2format (str uri, struct uri_format *format) if (foo != 0) { LM_ERR("parse_uri failed on [%.*s].Code %d \n",uri.len,uri.s,foo); -#ifdef DEBUG - fprintf (stdout, "PARSING uri with parse uri not ok %d\n", foo); -#endif + LM_DBG("PARSING uri with parse uri not ok [%d]\n", foo); return foo-10; } @@ -335,10 +312,10 @@ encode2format (str uri, struct uri_format *format) format->port = sipUri.port; format->protocol = sipUri.transport_val; -#ifdef DEBUG - fprintf (stdout, "transport=[%.*s] transportval=[%.*s]\n", sipUri.transport.len,sipUri.transport.s,sipUri.transport_val.len,sipUri.transport_val.s); - fprintf(stdout,"First %d,second %d\n",format->first,format->second); -#endif + LM_DBG("First and second format [%d][%d] transport=[%.*s] transportval=[%.*s]\n", + format->first, format->second, + sipUri.transport.len, sipUri.transport.s, + sipUri.transport_val.len, sipUri.transport_val.s); return 0; @@ -361,20 +338,17 @@ encode_uri (str uri, char *encoding_prefix, char *public_ip,char separator, str LM_ERR("invalid NULL value for public_ip parameter\n"); return -2; } -#ifdef DEBUG - fprintf (stdout, "Primit cerere de encodare a [%.*s] cu %s-%s\n", uri.len,uri.s, encoding_prefix, public_ip); -#endif - fflush (stdout); + + LM_DBG("Encoding request for [%.*s] with [%s]-[%s]\n", uri.len,uri.s, encoding_prefix, public_ip); + foo = encode2format (uri, &format); if (foo < 0) { LM_ERR("unable to encode Contact URI [%.*s].Return code %d\n",uri.len,uri.s,foo); return foo - 20; } -#ifdef DEBUG - fprintf(stdout,"user=%.*s ip=%.*s port=%.*s protocol=%.*s\n",format.username.len,format.username.s,format.ip.len,format.ip.s, + LM_DBG("user=%.*s ip=%.*s port=%.*s protocol=%.*s\n",format.username.len,format.username.s,format.ip.len,format.ip.s, format.port.len,format.port.s,format.protocol.len,format.protocol.s); -#endif /* a complete uri would be sip:username@ip:port;transport=protocol goes to * sip:enc_pref*username*ip*port*protocol@public_ip @@ -392,15 +366,13 @@ encode_uri (str uri, char *encoding_prefix, char *public_ip,char separator, str pos = result->s; if (pos == NULL) { -#ifdef DEBUG - fprintf (stdout, "Unable to alloc result [%d] end=%d\n",result->len, format.second); -#endif + LM_DBG("Unable to alloc result [%d] end=[%d]\n", + result->len, format.second); LM_ERR("unable to alloc pkg memory\n"); return -3; } -#ifdef DEBUG - fprintf (stdout, "[pass=%d][Allocated %d bytes][first=%d][lengthsec=%d]\nAdding [%d] ->%.*s\n",format.password.len,result->len,format.first,uri.len-format.second,format.first, format.first,uri.s);fflush (stdout); -#endif + LM_DBG("pass=[%d]i: allocated [%d], bytes.first=[%d] lengthsec=[%d]; adding [%d]->[%.*s]\n", + format.password.len, result->len, format.first, uri.len-format.second, format.first, format.first,uri.s); res = snprintf(pos,result->len,"%.*s%s%c%.*s%c%.*s%c%.*s%c%.*s%c%.*s@",format.first,uri.s,encoding_prefix,separator, format.username.len,format.username.s,separator,format.password.len,format.password.s, @@ -412,18 +384,15 @@ encode_uri (str uri, char *encoding_prefix, char *public_ip,char separator, str if (result->s != NULL) pkg_free(result->s); return -4; } -#ifdef DEBUG - fprintf(stdout,"res= %d\npos=%s\n",res,pos); -#endif + LM_DBG("res= %d\npos=%s\n",res,pos); pos = pos + res ;/* overwriting the \0 from snprintf */ memcpy (pos, public_ip, strlen (public_ip)); pos = pos + strlen (public_ip); memcpy (pos, uri.s + format.second, uri.len - format.second); -#ifdef DEBUG - fprintf (stdout, "Adding2 [%d] ->%.*s\n", uri.len - format.second,uri.len - format.second, uri.s + format.second); - fprintf (stdout, "NEW NEW uri is->[%.*s]\n", result->len, result->s); -#endif + LM_DBG("Adding [%.*s] => new uri [%.*s]\n", + uri.len - format.second, uri.s + format.second, + result->len, result->s); /* Because called parse_uri format contains pointers to the inside of msg,must not deallocate */ @@ -445,6 +414,7 @@ decode2format (str uri, char separator, struct uri_format *format) LM_ERR("invalid parameter uri.It is NULL\n"); return -1; } + /* sip:enc_pref*username*password*ip*port*protocol@public_ip */ start = memchr (uri.s, ':', uri.len); @@ -465,9 +435,7 @@ decode2format (str uri, char separator, struct uri_format *format) return -3;/* no host address found */ } -#ifdef DEBUG - fprintf (stdout, "Decoding %.*s\n", (int)(long)(end-start), start); -#endif + LM_DBG("Decoding [%.*s]\n", (int)(long)(end-start), start); state = EX_PREFIX; lastpos = start; @@ -508,13 +476,12 @@ decode2format (str uri, char separator, struct uri_format *format) else format->protocol.s = NULL; /* I should check perhaps that after @ there is something */ -#ifdef DEBUG - fprintf (stdout, "username=%.*s\n", format->username.len,format->username.s); - fprintf (stdout, "password=%.*s\n", format->password.len,format->password.s); - fprintf (stdout, "ip=%.*s\n", format->ip.len, format->ip.s); - fprintf (stdout, "port=%.*s\n", format->port.len,format->port.s); - fprintf (stdout, "protocol=%.*s\n", format->protocol.len,format->protocol.s); -#endif + LM_DBG("username=[%.*s] password=[%.*s] ip=[%.*s] port=[%.*s] protocol=[%.*s]\n", + format->username.len,format->username.s, + format->password.len,format->password.s, + format->ip.len, format->ip.s, + format->port.len,format->port.s, + format->protocol.len,format->protocol.s); /* looking for the end of public ip */ start = end;/*we are now at @ */ @@ -580,9 +547,7 @@ decode_uri (str uri, char separator, str * result) if (format.port.len > 0) result->len += 1 + format.port.len; //: if (format.protocol.len > 0) result->len += 1 + 10 + format.protocol.len; //;transport= -#ifdef DEBUG - fprintf (stdout, "Result size is %d.Original Uri size is %d\n",result->len, uri.len); -#endif + LM_DBG("Result size is [%d]. Original Uri size is [%d].\n", result->len, uri.len); /* adding one comes from * */ result->s = pkg_malloc (result->len); @@ -592,9 +557,9 @@ decode_uri (str uri, char separator, str * result) return -4; } pos = result->s; -#ifdef DEBUG - fprintf (stdout, "Adding [%d] ->%.*s\n", format.first, format.first,uri.s);fflush (stdout); -#endif + + LM_DBG("Adding [%.*s]\n", format.first, uri.s); + memcpy (pos, uri.s, format.first); /* till sip: */ pos = pos + format.first; @@ -635,15 +600,11 @@ decode_uri (str uri, char separator, str * result) pos = pos + format.protocol.len; } -#ifdef DEBUG - fprintf (stdout, "Adding2 [%d] ->%.*s\n", uri.len - format.second,uri.len - format.second, uri.s + format.second);fflush (stdout); -#endif + LM_DBG("Adding2 [%.*s]\n", uri.len - format.second, uri.s + format.second); memcpy (pos, uri.s + format.second, uri.len - format.second); /* till end: */ -#ifdef DEBUG - fprintf (stdout, "New decoded uri is->[%.*s]\n", result->len,result->s); -#endif + LM_DBG("New decoded uri [%.*s]\n", result->len,result->s); return 0; } diff --git a/src/modules/siputils/doc/siputils_admin.xml b/src/modules/siputils/doc/siputils_admin.xml index a6263a628..a430f85cc 100644 --- a/src/modules/siputils/doc/siputils_admin.xml +++ b/src/modules/siputils/doc/siputils_admin.xml @@ -608,6 +608,33 @@ if (is_uri_user_e164("$avp(i:705)") { +
+ + <function moreinfo="none">is_uri(pseudo-variable)</function> + + + Checks if string value of pseudo variable argument is a + valid uri. + + + This function can be used from ANY_ROUTE. + + + <function>is_uri</function> usage + +... +if (is_uri("$var(x)")) { # Check if variable contains a uri + ... +} +if (is_uri("$avp(i:705)") { + # Check value stored in avp i:705 + ... +}; +... + + +
+
<function moreinfo="none">is_tel_number(tval)</function> @@ -627,7 +654,7 @@ if (is_uri_user_e164("$avp(i:705)") { if (is_tel_number("$rU")) { # Test if R-URI user is telephone number ... } -if (is_tel_number("+24242424") { +if (is_tel_number("+24242424")) { ... } ... @@ -895,8 +922,8 @@ append_rpid_hf(); # Append Remote-Party-ID header field <itemizedlist> <listitem> <para><emphasis>prefix</emphasis> - Prefix of the - Remote-Party-ID URI. The string will be added at the begining of - body of the header field, just before the URI. + Remote-Party-ID URI. The string will be added at the beginning of + the body of the header field, just before the URI. </para> </listitem> <listitem> diff --git a/src/modules/siputils/siputils.c b/src/modules/siputils/siputils.c index 519e82b04..f4376cd67 100644 --- a/src/modules/siputils/siputils.c +++ b/src/modules/siputils/siputils.c @@ -65,6 +65,7 @@ #include "../../core/error.h" #include "../../core/kemi.h" #include "../../core/parser/parse_option_tags.h" +#include "../../core/parser/parse_uri.h" #include "ring.h" #include "options.h" @@ -123,20 +124,22 @@ static cmd_export_t cmds[]={ 0, REQUEST_ROUTE|FAILURE_ROUTE}, {"options_reply", (cmd_function)opt_reply, 0, 0, 0, REQUEST_ROUTE}, - {"is_user", (cmd_function)is_user, 1, fixup_str_null, + {"is_user", (cmd_function)is_user, 1, fixup_spve_null, 0, REQUEST_ROUTE|LOCAL_ROUTE}, {"has_totag", (cmd_function)w_has_totag, 0, 0, 0, ANY_ROUTE}, - {"uri_param", (cmd_function)uri_param_1, 1, fixup_str_null, - 0, REQUEST_ROUTE|LOCAL_ROUTE}, - {"uri_param", (cmd_function)uri_param_2, 2, fixup_str_str, - 0, REQUEST_ROUTE|LOCAL_ROUTE}, + {"uri_param", (cmd_function)uri_param_1, 1, fixup_spve_null, + 0, REQUEST_ROUTE|BRANCH_ROUTE|FAILURE_ROUTE}, + {"uri_param", (cmd_function)uri_param_2, 2, fixup_spve_spve, + 0, REQUEST_ROUTE|BRANCH_ROUTE|FAILURE_ROUTE}, {"add_uri_param", (cmd_function)add_uri_param, 1, fixup_str_null, 0, REQUEST_ROUTE}, {"get_uri_param", (cmd_function)get_uri_param, 2, fixup_get_uri_param, free_fixup_get_uri_param, REQUEST_ROUTE|LOCAL_ROUTE}, {"tel2sip", (cmd_function)tel2sip, 3, fixup_tel2sip, 0, REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE|ONREPLY_ROUTE}, + {"is_uri", (cmd_function)is_uri, 1, fixup_spve_null, + fixup_free_spve_null, ANY_ROUTE}, {"is_e164", (cmd_function)is_e164, 1, fixup_pvar_null, fixup_free_pvar_null, REQUEST_ROUTE|FAILURE_ROUTE|LOCAL_ROUTE}, {"is_uri_user_e164", (cmd_function)w_is_uri_user_e164, 1, fixup_pvar_null, @@ -161,8 +164,6 @@ static cmd_export_t cmds[]={ fixup_free_set_uri, ANY_ROUTE}, {"set_uri_host", (cmd_function)set_uri_host, 2, fixup_set_uri, fixup_free_set_uri, ANY_ROUTE}, - {"bind_siputils", (cmd_function)bind_siputils, 1, 0, - 0, 0}, {"is_request", (cmd_function)w_is_request, 0, 0, 0, ANY_ROUTE}, {"is_reply", (cmd_function)w_is_reply, 0, 0, @@ -185,6 +186,10 @@ static cmd_export_t cmds[]={ 0, ANY_ROUTE}, {"sip_p_charging_vector", (cmd_function)sip_handle_pcv, 1, fixup_spve_null, fixup_free_spve_null, ANY_ROUTE}, + + {"bind_siputils", (cmd_function)bind_siputils, 1, 0, + 0, 0}, + {0,0,0,0,0,0} }; @@ -210,18 +215,16 @@ static pv_export_t mod_pvs[] = { }; struct module_exports exports= { - "siputils", + "siputils", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ + cmds, /* exported functions */ params, /* param exports */ - 0, /* exported statistics */ - 0, /* exported MI functions */ + 0, /* exported RPC functions */ mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ + 0, /* response function */ mod_init, /* initialization function */ - 0, /* Response function */ - mod_destroy, /* Destroy function */ - 0, /* Child init function */ + 0, /* child init function */ + mod_destroy /* destroy function */ }; @@ -457,6 +460,22 @@ static int fixup_option(void** param, int param_no) { return 0; } +/* + * Check if pseudo variable contains a valid uri + */ +static int ki_is_uri(sip_msg_t* msg, str* suri) +{ + sip_uri_t turi; + + if(suri==NULL || suri->s==NULL || suri->len<=0) { + return -1; + } + if(parse_uri(suri->s, suri->len, &turi)!=0) { + return -1; + } + return 1; +} + /** * */ @@ -481,6 +500,46 @@ 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("is_uri"), + SR_KEMIP_INT, ki_is_uri, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("is_user"), + SR_KEMIP_INT, ki_is_user, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("uri_param"), + SR_KEMIP_INT, ki_uri_param, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("uri_param_value"), + SR_KEMIP_INT, ki_uri_param_value, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("is_tel_number"), + SR_KEMIP_INT, ki_is_tel_number, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("is_numeric"), + SR_KEMIP_INT, ki_is_numeric, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("is_alphanum"), + SR_KEMIP_INT, ki_is_alphanum, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("siputils"), str_init("is_alphanumex"), + SR_KEMIP_INT, ki_is_alphanumex, + { SR_KEMIP_STR, SR_KEMIP_STR, 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/sl/Makefile b/src/modules/sl/Makefile index 36f6f2a07..ef2582891 100644 --- a/src/modules/sl/Makefile +++ b/src/modules/sl/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=sl.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/sl/sl.c b/src/modules/sl/sl.c index c523e8913..96c3fdfdf 100644 --- a/src/modules/sl/sl.c +++ b/src/modules/sl/sl.c @@ -79,22 +79,22 @@ static void mod_destroy(); static int fixup_sl_reply(void** param, int param_no); static cmd_export_t cmds[]={ - {"sl_send_reply", w_sl_send_reply, 2, fixup_sl_reply, + {"sl_send_reply", w_sl_send_reply, 2, fixup_sl_reply, 0, REQUEST_ROUTE}, - {"sl_reply", w_sl_send_reply, 2, fixup_sl_reply, + {"sl_reply", w_sl_send_reply, 2, fixup_sl_reply, 0, REQUEST_ROUTE}, - {"send_reply", w_send_reply, 2, fixup_sl_reply, + {"send_reply", w_send_reply, 2, fixup_sl_reply, 0, REQUEST_ROUTE|ONREPLY_ROUTE|FAILURE_ROUTE}, - {"sl_reply_error", w_sl_reply_error, 0, 0, + {"sl_reply_error", w_sl_reply_error, 0, 0, 0, REQUEST_ROUTE}, - {"sl_forward_reply", w_sl_forward_reply0, 0, 0, + {"sl_forward_reply", w_sl_forward_reply0, 0, 0, 0, ONREPLY_ROUTE}, - {"sl_forward_reply", w_sl_forward_reply1, 1, fixup_spve_all, + {"sl_forward_reply", w_sl_forward_reply1, 1, fixup_spve_all, 0, ONREPLY_ROUTE}, - {"sl_forward_reply", w_sl_forward_reply2, 2, fixup_spve_all, + {"sl_forward_reply", w_sl_forward_reply2, 2, fixup_spve_all, 0, ONREPLY_ROUTE}, - {"bind_sl", (cmd_function)bind_sl, 0, 0, 0}, - {0,0,0,0,0} + {"bind_sl", (cmd_function)bind_sl, 0, 0, 0, 0}, + {0,0,0,0,0,0} }; @@ -115,15 +115,16 @@ struct module_exports sl_exports = { #else struct module_exports exports= { #endif - "sl", - cmds, - sl_rpc, /* RPC methods */ - params, /* param exports */ - mod_init, /* module initialization function */ - (response_function) 0, - mod_destroy, - 0, - child_init /* per-child init function */ + "sl", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + sl_rpc, /* RPC method exports */ + 0, /* pv exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + mod_destroy /* module destroy function */ }; @@ -250,6 +251,11 @@ int send_reply(struct sip_msg *msg, int code, str *reason) struct cell *t; int ret = 1; + if(msg->msg_flags & FL_MSG_NOREPLY) { + LM_INFO("message marked with no-reply flag\n"); + return -2; + } + if(reason->s[reason->len-1]=='\0') { r = reason->s; } else { diff --git a/src/modules/sl/sl_funcs.c b/src/modules/sl/sl_funcs.c index dbc5105d2..1e408e653 100644 --- a/src/modules/sl/sl_funcs.c +++ b/src/modules/sl/sl_funcs.c @@ -133,6 +133,11 @@ int sl_reply_helper(struct sip_msg *msg, int code, char *reason, str *tag) if (msg->first_line.u.request.method_value==METHOD_ACK) goto error; + if(msg->msg_flags & FL_MSG_NOREPLY) { + LM_INFO("message marked with no-reply flag\n"); + return -2; + } + init_dest_info(&dst); if (reply_to_via) { if (update_sock_struct_from_via(&dst.to, msg, msg->via1 )==-1) @@ -355,6 +360,11 @@ int sl_reply_error(struct sip_msg *msg ) int sip_error; int ret; + if(msg->msg_flags & FL_MSG_NOREPLY) { + LM_INFO("message marked with no-reply flag\n"); + return -2; + } + ret=err2reason_phrase( prev_ser_error, &sip_error, err_buf, sizeof(err_buf), "SL"); if (ret>0) { diff --git a/src/modules/sms/Makefile b/src/modules/sms/Makefile index 97da1d016..4aee5204b 100644 --- a/src/modules/sms/Makefile +++ b/src/modules/sms/Makefile @@ -1,7 +1,6 @@ # # sms module makefile # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,6 +8,4 @@ auto_gen= NAME=sms.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/sms/README b/src/modules/sms/README index 24f278f34..552dbb5b9 100644 --- a/src/modules/sms/README +++ b/src/modules/sms/README @@ -170,7 +170,7 @@ modem_param = name "=" value * t=to (optional) - uri for sip header TO. Default is NULL. * s=scan (optional) - Values: 0: NOT SCAN uri from body sms, use URI in t=to. 1: SCAN uri from body sms (normal mode, default mode, - clasic mode) 2: SCAN MIX (both modes), First SCAN Default is 1 + classic mode) 2: SCAN MIX (both modes), First SCAN Default is 1 (SCAN). Note diff --git a/src/modules/sms/doc/params.xml b/src/modules/sms/doc/params.xml index c56dbe768..242d4513f 100644 --- a/src/modules/sms/doc/params.xml +++ b/src/modules/sms/doc/params.xml @@ -76,7 +76,7 @@ modem_param = name "=" value s=scan (optional) - Values: 0: NOT SCAN uri from body sms, use URI in t=to. 1: SCAN uri from body sms (normal mode, - default mode, clasic mode) + default mode, classic mode) 2: SCAN MIX (both modes), First SCAN Default is 1 (SCAN). </para> diff --git a/src/modules/sms/sms.c b/src/modules/sms/sms.c index 01f534e96..123ba127f 100644 --- a/src/modules/sms/sms.c +++ b/src/modules/sms/sms.c @@ -43,7 +43,7 @@ MODULE_VERSION static int sms_init(void); -static int sms_exit(void); +static void sms_exit(void); static int sms_child_init(int); static int w_sms_send_msg(struct sip_msg*, char*, char* ); static int w_sms_send_msg_to_net(struct sip_msg*, char*, char*); @@ -68,10 +68,10 @@ int sms_report_type = NO_REPORT; static cmd_export_t cmds[]={ {"sms_send_msg_to_net", w_sms_send_msg_to_net, 1, - fixup_sms_send_msg_to_net, REQUEST_ROUTE}, + fixup_sms_send_msg_to_net, 0, REQUEST_ROUTE}, {"sms_send_msg", w_sms_send_msg, 0, - 0, REQUEST_ROUTE}, - {0,0,0,0,0} + 0, 0, REQUEST_ROUTE}, + {0,0,0,0,0,0} }; @@ -89,16 +89,16 @@ static param_export_t params[]={ struct module_exports exports= { - "sms", - cmds, - 0, /* RPC methods */ - params, - - sms_init, /* module initialization function */ - (response_function) 0, - (destroy_function) sms_exit, /* module exit function */ - 0, - (child_init_function) sms_child_init /* per-child init function */ + "sms", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* response handling function*/ + sms_init, /* module init function */ + sms_child_init, /* per-child init function */ + sms_exit /* module destroy function */ }; @@ -647,7 +647,7 @@ static int sms_init(void) -static int sms_exit(void) +static void sms_exit(void) { if (queued_msgs) shm_free(queued_msgs); @@ -655,7 +655,7 @@ static int sms_exit(void) if (sms_report_type!=NO_REPORT) destroy_report_queue(); - return 0; + return; } diff --git a/src/modules/smsops/Makefile b/src/modules/smsops/Makefile index 633c5da3e..2225011ed 100644 --- a/src/modules/smsops/Makefile +++ b/src/modules/smsops/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=smsops.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/smsops/examples/kamailio.cfg b/src/modules/smsops/examples/kamailio.cfg index 5a9f1c2de..fd70fe6cb 100644 --- a/src/modules/smsops/examples/kamailio.cfg +++ b/src/modules/smsops/examples/kamailio.cfg @@ -7,7 +7,7 @@ # Refer to the Core CookBook at http://www.kamailio.org/dokuwiki/doku.php # for an explanation of possible statements, functions and parameters. # -# Direct your questions about this file to: <sr-users@lists.sip-router.org>. +# Direct your questions about this file to: <sr-users@lists.kamailio.org>. # # For more information about the various parameters, functions and statements # try http://sip-router.org/wiki/ . diff --git a/src/modules/smsops/smsops.c b/src/modules/smsops/smsops.c index 9af52b2d2..7c1a49001 100644 --- a/src/modules/smsops/smsops.c +++ b/src/modules/smsops/smsops.c @@ -32,8 +32,10 @@ MODULE_VERSION static pv_export_t mod_pvs[] = { { {"smsack", sizeof("smsack")-1}, PVT_OTHER, pv_sms_ack, 0, 0, 0, 0, 0 }, - { {"rpdata", sizeof("rpdata")-1}, PVT_OTHER, pv_get_sms, pv_set_sms, pv_parse_rpdata_name, 0, 0, 0 }, - { {"tpdu", sizeof("tpdu")-1}, PVT_OTHER, pv_get_sms, pv_set_sms, pv_parse_tpdu_name, 0, 0, 0 }, + { {"rpdata", sizeof("rpdata")-1}, PVT_OTHER, pv_get_sms, pv_set_sms, + pv_parse_rpdata_name, 0, 0, 0 }, + { {"tpdu", sizeof("tpdu")-1}, PVT_OTHER, pv_get_sms, pv_set_sms, + pv_parse_tpdu_name, 0, 0, 0 }, { {"smsbody", sizeof("smsbody")-1}, PVT_OTHER, pv_sms_body, 0, 0, 0, 0, 0 }, { {0, 0}, 0, 0, 0, 0, 0, 0, 0 } }; @@ -46,18 +48,16 @@ static cmd_export_t cmds[]={ /** module exports */ struct module_exports exports= { - "smsops", + "smsops", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - 0, - 0, /* exported statistics */ - 0, /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - 0, /* module initialization function */ - 0, - 0, - 0 /* per-child init function */ + cmds, /* exported functions */ + 0, /* exported parameters */ + 0, /* exported rpc functions */ + mod_pvs, /* exported pseudo-variables */ + 0, /* response handling function*/ + 0, /* module init function */ + 0, /* per-child init function */ + 0 /* module destroy function */ }; diff --git a/src/modules/smsops/smsops_impl.c b/src/modules/smsops/smsops_impl.c index 68405302c..8df667bb7 100644 --- a/src/modules/smsops/smsops_impl.c +++ b/src/modules/smsops/smsops_impl.c @@ -67,6 +67,9 @@ enum SMS_DATA { SMS_TPDU_REFERENCE, SMS_TPDU_ORIGINATING_ADDRESS, SMS_TPDU_DESTINATION, + SMS_UDH_CONCATSM_REF, + SMS_UDH_CONCATSM_MAX_NUM_SM, + SMS_UDH_CONCATSM_SEQ }; // Types of the PDU-Message @@ -83,6 +86,34 @@ typedef enum _pdu_message_type { #define TP_UDHI 0x64; #define TP_RP 0x128; +// Information element identifiers and corresponding structs. +// Only the supported ones are listed. +// Defined in TS 23.040, Sec. 9.2.3.24 and 9.2.3.24.1 +#define TP_UDH_IE_CONCAT_SM_8BIT_REF 0x00 // 9.2.3.24 +struct ie_concat_sm_8bit_ref { + unsigned char ref; //Concatenated short message reference number + unsigned char max_num_sm; //Maximum number of short messages in the concatenated short message. + unsigned char seq; //Sequence number of the current short message +}; + +// Information element in User Data Header +typedef struct _tp_udh_inf_element tp_udh_inf_element_t; +struct _tp_udh_inf_element { + unsigned char identifier; + union { + str data; + struct ie_concat_sm_8bit_ref concat_sm_8bit_ref; + }; + + tp_udh_inf_element_t* next; +}; + +// TS 23.040, Sec. 9.2.3.24 +typedef struct _tp_user_data { + tp_udh_inf_element_t* header; + str sm; +} tp_user_data_t; + // PDU (GSM 03.40) of the SMS typedef struct _sms_pdu { pdu_message_type_t msg_type; @@ -93,7 +124,7 @@ typedef struct _sms_pdu { unsigned char validity; str originating_address; str destination; - str payload; + tp_user_data_t payload; } sms_pdu_t; // RP-Data of the message @@ -102,7 +133,7 @@ typedef struct _sms_rp_data { unsigned char reference; str originator; str destination; - int pdu_len; + unsigned char pdu_len; sms_pdu_t pdu; } sms_rp_data_t; @@ -125,7 +156,15 @@ void freeRP_DATA(sms_rp_data_t * rpdata) { if (rpdata->destination.s) pkg_free(rpdata->destination.s); if (rpdata->pdu.originating_address.s) pkg_free(rpdata->pdu.originating_address.s); if (rpdata->pdu.destination.s) pkg_free(rpdata->pdu.destination.s); - if (rpdata->pdu.payload.s) pkg_free(rpdata->pdu.payload.s); + while (rpdata->pdu.payload.header) { + tp_udh_inf_element_t* next = rpdata->pdu.payload.header->next; + if(rpdata->pdu.payload.header->identifier != TP_UDH_IE_CONCAT_SM_8BIT_REF) { + if(rpdata->pdu.payload.header->data.s) pkg_free(rpdata->pdu.payload.header->data.s); + } + pkg_free(rpdata->pdu.payload.header); + rpdata->pdu.payload.header = next; + } + if (rpdata->pdu.payload.sm.s) pkg_free(rpdata->pdu.payload.sm.s); } } @@ -133,6 +172,7 @@ void freeRP_DATA(sms_rp_data_t * rpdata) { #define BITMASK_8BITS 0xFF #define BITMASK_HIGH_4BITS 0xF0 #define BITMASK_LOW_4BITS 0x0F +#define BITMASK_TP_UDHI 0x40 // Encode SMS-Message by merging 7 bit ASCII characters into 8 bit octets. static int ascii_to_gsm(str sms, char * output_buffer, int buffer_size) { @@ -162,82 +202,136 @@ static int ascii_to_gsm(str sms, char * output_buffer, int buffer_size) { } // Decode 7bit encoded message by splitting 8 bit encoded buffer into 7 bit ASCII characters. -int gsm_to_ascii(char* buffer, int buffer_length, str sms) { - int output_text_length = 0; - if (buffer_length > 0) - sms.s[output_text_length++] = BITMASK_7BITS & buffer[0]; +int gsm_to_ascii(char* buffer, int buffer_length, str sms, const int fill_bits) { + int output_text_length = 0; + + if(buffer_length <= 2) + return 0; - int carry_on_bits = 1; - int i = 1; - for (; i < buffer_length; ++i) { - sms.s[output_text_length++] = BITMASK_7BITS & ((buffer[i] << carry_on_bits) | (buffer[i - 1] >> (8 - carry_on_bits))); + // How many bits we have carried from the next octet. This number can be positive or negative: + // positive: We have carried n bits FROM the next octet. + // negative: We have to carry n bits TO the next octet. + // 0: Nothing carried. Default value! + int carry_on_bits = 0; - if (output_text_length == sms.len) break; + // Used to iterate over buffer. Declared here, because if there are fill_bits it have to be incremented + int i = 0; - carry_on_bits++; + // First remove the fill bits, if any + if(fill_bits) { + // We need 7 bits in the first octet, so if there is only 1 fill bit, we don't have to + // carry from the next octet. - if (carry_on_bits == 8) { - carry_on_bits = 1; - sms.s[output_text_length++] = buffer[i] & BITMASK_7BITS; - if (output_text_length == sms.len) break; - } + // cmask stands for carry mask or how many bits to carry from the 2nd octet + unsigned char cmask = (1 << (fill_bits - 1)) - 1; + + sms.s[output_text_length++] = ( (buffer[0] >> fill_bits) | // remove the fill bits from the first octet + (buffer[1] & cmask << (8 - fill_bits)) // mask the required number of bits + //and shift them accordingly + ) & BITMASK_7BITS; // mask just 7 bits from the first octet + + carry_on_bits = fill_bits - 1; + i++; + } + + + for (; i < buffer_length; ++i) { + if(carry_on_bits > 0) { + unsigned char cmask = (1 << (carry_on_bits - 1)) - 1; //mask for the rightmost carry_on_bits + //E.g. carry_on_bits=3 -> _ _ _ _ _ X X X + sms.s[output_text_length++] = ( (buffer[i] >> carry_on_bits) | //shift right to remove carried bits + (buffer[i+1] & cmask) << (8 - carry_on_bits) // carry from the next + // and shift accordingly + ) & BITMASK_7BITS; // mask just 7 bits from the first octet + } + else if(carry_on_bits < 0) { + carry_on_bits = carry_on_bits * -1; //make carry_on_bits positive for the bitwise ops + unsigned char cmask = ((1 << carry_on_bits) - 1) << (8 - carry_on_bits); //mask for the leftmost carry_on_bits. + //E.g. carry_on_bits=3 -> X X X _ _ _ _ _ + sms.s[output_text_length++] = ( (buffer[i] << carry_on_bits) | //shift left to make space for the carried bits + (buffer[i-1] & cmask) >> (8 - carry_on_bits) // get the bits from the previous octet + // and shift accordingly + ) & BITMASK_7BITS; // mask just 7 bits from the first octet + + carry_on_bits = carry_on_bits * -1; //return the original value + } + else {// carry_on_bits == 0 + sms.s[output_text_length++] = buffer[i] & BITMASK_7BITS; + } + + //Update carry_on bits. It is always decremented, because we iterate over octests but read just septets + carry_on_bits--; + + if (output_text_length == sms.len) break; + + if (carry_on_bits == -8) { + carry_on_bits = -1; + sms.s[output_text_length++] = buffer[i] & BITMASK_7BITS; + if (output_text_length == sms.len) break; + } + + if(carry_on_bits > 0 && (i + 2 >= buffer_length)) { + //carry_on_bits is positive, which means thah we have to borrow from the next octet on next iteration + //However i + 2 >= buffer_length so there is no next octet. This is error. + break; + } + } - } - if (output_text_length < sms.len) // Add last remainder. - sms.s[output_text_length++] = buffer[i - 1] >> (8 - carry_on_bits); + if (output_text_length < sms.len) // Add last remainder. + sms.s[output_text_length++] = buffer[i - 1] >> (8 - carry_on_bits); - return output_text_length; + return output_text_length; } // Decode UCS2 message by splitting the buffer into utf8 characters int ucs2_to_utf8 (int ucs2, char * utf8) { - if (ucs2 < 0x80) { - utf8[0] = ucs2; + if (ucs2 < 0x80) { + utf8[0] = ucs2; utf8[1] = 0; - return 1; - } - if (ucs2 >= 0x80 && ucs2 < 0x800) { - utf8[0] = (ucs2 >> 6) | 0xC0; - utf8[1] = (ucs2 & 0x3F) | 0x80; - return 2; - } - if (ucs2 >= 0x800 && ucs2 < 0xFFFF) { - if (ucs2 >= 0xD800 && ucs2 <= 0xDFFF) return -1; - utf8[0] = ((ucs2 >> 12) ) | 0xE0; - utf8[1] = ((ucs2 >> 6 ) & 0x3F) | 0x80; - utf8[2] = ((ucs2 ) & 0x3F) | 0x80; - return 3; - } - if (ucs2 >= 0x10000 && ucs2 < 0x10FFFF) { + return 1; + } + if (ucs2 >= 0x80 && ucs2 < 0x800) { + utf8[0] = (ucs2 >> 6) | 0xC0; + utf8[1] = (ucs2 & 0x3F) | 0x80; + return 2; + } + if (ucs2 >= 0x800 && ucs2 < 0xFFFF) { + if (ucs2 >= 0xD800 && ucs2 <= 0xDFFF) return -1; + utf8[0] = ((ucs2 >> 12) ) | 0xE0; + utf8[1] = ((ucs2 >> 6 ) & 0x3F) | 0x80; + utf8[2] = ((ucs2 ) & 0x3F) | 0x80; + return 3; + } + if (ucs2 >= 0x10000 && ucs2 < 0x10FFFF) { utf8[0] = 0xF0 | (ucs2 >> 18); utf8[1] = 0x80 | ((ucs2 >> 12) & 0x3F); utf8[2] = 0x80 | ((ucs2 >> 6) & 0x3F); utf8[3] = 0x80 | ((ucs2 & 0x3F)); - return 4; - } - return -1; + return 4; + } + return -1; } // Decode UTF8 to UCS2 int utf8_to_ucs2 (const unsigned char * input, const unsigned char ** end_ptr) { - *end_ptr = input; - if (input[0] == 0) - return -1; - if (input[0] < 0x80) { - * end_ptr = input + 1; - return input[0]; - } - if ((input[0] & 0xE0) == 0xE0) { - if (input[1] == 0 || input[2] == 0) return -1; - *end_ptr = input + 3; - return (input[0] & 0x0F) << 12 | (input[1] & 0x3F) << 6 | (input[2] & 0x3F); - } - if ((input[0] & 0xC0) == 0xC0) { - if (input[1] == 0) return -1; - * end_ptr = input + 2; - return (input[0] & 0x1F) << 6 | (input[1] & 0x3F); - } - return -1; + *end_ptr = input; + if (input[0] == 0) + return -1; + if (input[0] < 0x80) { + * end_ptr = input + 1; + return input[0]; + } + if ((input[0] & 0xE0) == 0xE0) { + if (input[1] == 0 || input[2] == 0) return -1; + *end_ptr = input + 3; + return (input[0] & 0x0F) << 12 | (input[1] & 0x3F) << 6 | (input[2] & 0x3F); + } + if ((input[0] & 0xC0) == 0xC0) { + if (input[1] == 0) return -1; + * end_ptr = input + 2; + return (input[0] & 0x1F) << 6 | (input[1] & 0x3F); + } + return -1; } // Encode a digit based phone number for SMS based format. @@ -254,7 +348,7 @@ static int EncodePhoneNumber(str phone, char * output_buffer, int buffer_size) { if (i % 2 == 0) { output_buffer[output_buffer_length++] = BITMASK_HIGH_4BITS | (phone.s[i] - '0'); } else { - output_buffer[output_buffer_length - 1] = (output_buffer[output_buffer_length - 1] & BITMASK_LOW_4BITS) | ((phone.s[i] - '0') << 4); + output_buffer[output_buffer_length - 1] = (output_buffer[output_buffer_length - 1] & BITMASK_LOW_4BITS) | ((phone.s[i] - '0') << 4); } } @@ -267,7 +361,7 @@ static int DecodePhoneNumber(char* buffer, int len, str phone) { for (; i < len; ++i) { if (i % 2 == 0) phone.s[i] = (buffer[i / 2] & BITMASK_LOW_4BITS) + '0'; - else + else phone.s[i] = ((buffer[i / 2] & BITMASK_HIGH_4BITS) >> 4) + '0'; } return i; @@ -298,6 +392,44 @@ static void EncodeTime(char * buffer) { buffer[6] = 0; // Timezone, we use no time offset. } +//The function is called GetXXX but it actually creates the IE if it doesn't exist +static struct ie_concat_sm_8bit_ref* GetConcatShortMsg8bitRefIE(sms_rp_data_t* rp_data) +{ + tp_udh_inf_element_t* ie = rp_data->pdu.payload.header; + tp_udh_inf_element_t* prev = rp_data->pdu.payload.header; + //Look for Concatenated SM 8bit Reference IE + while(ie) { + if(ie->identifier == TP_UDH_IE_CONCAT_SM_8BIT_REF) + break; + prev = ie; + ie = ie->next; + } + + if(ie == NULL) { + //If not found - create it + ie = pkg_malloc(sizeof(tp_udh_inf_element_t)); + if(ie == NULL) { + LM_ERR("no more pkg\n"); + return NULL; + } + memset(ie, 0, sizeof(tp_udh_inf_element_t)); + ie->identifier = TP_UDH_IE_CONCAT_SM_8BIT_REF; + + if(prev) { + //If the previous IE is not NULL - link to it + prev->next = ie; + } + else { + //There are not IEs at all + rp_data->pdu.payload.header = ie; + //Set TP-UDHI flag to 1 + rp_data->pdu.flags |= BITMASK_TP_UDHI; + } + } + + return &(ie->concat_sm_8bit_ref); +} + // Decode SMS-Body into the given structure: int decode_3gpp_sms(struct sip_msg *msg) { str body; @@ -394,26 +526,106 @@ int decode_3gpp_sms(struct sip_msg *msg) { rp_data->pdu.pid = (unsigned char)body.s[p++]; rp_data->pdu.coding = (unsigned char)body.s[p++]; rp_data->pdu.validity = (unsigned char)body.s[p++]; - len = body.s[p++]; + + //TP-User-Data-Length and TP-User-Data + len = (unsigned char)body.s[p++]; + int fill_bits = 0; if (len > 0) { + if((unsigned char)rp_data->pdu.flags & BITMASK_TP_UDHI) { //TP-UDHI + int udh_len = (unsigned char)body.s[p++]; + int udh_read = 0; + + if(rp_data->pdu.coding == 0) { + //calcucate padding size for 7bit coding + //udh_len + 1, because the length field itself should be included + fill_bits = (7 - (udh_len + 1) % 7) % 7; //padding size is in bits! + } + + // Check for malicious length, which might cause buffer overflow + if(udh_len > body.len - p) { + LM_ERR("TP-User-Data-Lenght is bigger than the remaining message buffer!\n"); + return -1; + } + + //User-Data-Header + tp_udh_inf_element_t* prev_ie = NULL; + // IE 'Concatenated short messages, 8-bit reference number' should not be repeated + int contains_8bit_refnum = 0; + while(udh_read < udh_len) { + tp_udh_inf_element_t* ie = pkg_malloc(sizeof(tp_udh_inf_element_t)); + if(ie == NULL) { + LM_ERR("no more pkg\n"); + return -1; + } + memset(ie, 0, sizeof(tp_udh_inf_element_t)); + + ie->identifier = (unsigned char)body.s[p++]; + ie->data.len = (unsigned char)body.s[p++]; + + // Check for malicious length, which might cause buffer overflow + if(udh_read + ie->data.len + 2 /* two octets are read so far */ > udh_len) { + LM_ERR("IE Lenght for IE id %d is bigger than the remaining User-Data element!\n", + ie->identifier); + pkg_free(ie); + return -1; + } + + if(ie->identifier == TP_UDH_IE_CONCAT_SM_8BIT_REF) { + if(contains_8bit_refnum) { + pkg_free(ie); + LM_ERR("IE Concatenated Short Message 8bit Reference occured more than once in UDH\n"); + return -1; + } + + ie->concat_sm_8bit_ref.ref = body.s[p++]; + ie->concat_sm_8bit_ref.max_num_sm = body.s[p++]; + ie->concat_sm_8bit_ref.seq = body.s[p++]; + + contains_8bit_refnum = 1; + } + else { /* Unsupported IE, save it as binary */ + ie->data.s = pkg_malloc(ie->data.len); + if(ie->data.s == NULL) { + pkg_free(ie); + LM_ERR("no more pkg\n"); + return -1; + } + memset(ie->data.s, 0, ie->data.len); + memcpy(ie->data.s, &body.s[p], ie->data.len); + p += ie->data.len; + } + + if(prev_ie == NULL) { + rp_data->pdu.payload.header = ie; + } + else { + prev_ie->next = ie; + } + + prev_ie = ie; + udh_read += (1 /* IE ID */ + 1 /* IE Len */ + ie->data.len /* IE data */); + } + + } + blen = 2 + len*4; - rp_data->pdu.payload.s = pkg_malloc(blen); - if(rp_data->pdu.payload.s==NULL) { + rp_data->pdu.payload.sm.s = pkg_malloc(blen); + if(rp_data->pdu.payload.sm.s==NULL) { LM_ERR("no more pkg\n"); return -1; } - memset(rp_data->pdu.payload.s, 0, blen); + memset(rp_data->pdu.payload.sm.s, 0, blen); // Coding: 7 Bit if (rp_data->pdu.coding == 0x00) { // We don't care about the extra used bytes here. - rp_data->pdu.payload.len = gsm_to_ascii(&body.s[p], blen, rp_data->pdu.payload); + rp_data->pdu.payload.sm.len = gsm_to_ascii(&body.s[p], len, rp_data->pdu.payload.sm, fill_bits); } else { // Length is worst-case 2 * len (UCS2 is 2 Bytes, UTF8 is worst-case 4 Bytes) - rp_data->pdu.payload.len = 0; + rp_data->pdu.payload.sm.len = 0; while (len > 0) { j = (body.s[p] << 8) + body.s[p + 1]; p += 2; - rp_data->pdu.payload.len += ucs2_to_utf8(j, &rp_data->pdu.payload.s[rp_data->pdu.payload.len]); + rp_data->pdu.payload.sm.len += ucs2_to_utf8(j, &rp_data->pdu.payload.sm.s[rp_data->pdu.payload.sm.len]); len -= 2; } } @@ -446,7 +658,7 @@ int dumpRPData(sms_rp_data_t * rpdata, int level) { LOG(level, " Coding: %x (%i)\n", rpdata->pdu.coding, rpdata->pdu.coding); LOG(level, " Validity: %x (%i)\n", rpdata->pdu.validity, rpdata->pdu.validity); - LOG(level, " Payload: %.*s (%i)\n", rpdata->pdu.payload.len, rpdata->pdu.payload.s, rpdata->pdu.payload.len); + LOG(level, " Payload: %.*s (%i)\n", rpdata->pdu.payload.sm.len, rpdata->pdu.payload.sm.s, rpdata->pdu.payload.sm.len); } return 1; } @@ -534,7 +746,7 @@ int pv_sms_body(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) { // Store the position of the length for later usage: lenpos = sms_body.len; sms_body.s[sms_body.len++] = 0x00; - + /////////////////////////////////////////////////// // T-PDU /////////////////////////////////////////////////// @@ -550,13 +762,13 @@ int pv_sms_body(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) { // Service-Center-Timestamp (always 7 octets) EncodeTime(&sms_body.s[sms_body.len]); sms_body.len += 7; - sms_body.s[sms_body.len++] = rp_send_data->pdu.payload.len; - i = ascii_to_gsm(rp_send_data->pdu.payload, &sms_body.s[sms_body.len], buffer_size - sms_body.len); + sms_body.s[sms_body.len++] = rp_send_data->pdu.payload.sm.len; + i = ascii_to_gsm(rp_send_data->pdu.payload.sm, &sms_body.s[sms_body.len], buffer_size - sms_body.len); sms_body.len += i - 1; // Update the len of the PDU sms_body.s[lenpos] = (unsigned char)(sms_body.len - lenpos - 1); - + return pv_get_strval(msg, param, res, &sms_body); } @@ -591,11 +803,38 @@ int pv_get_sms(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) { case SMS_TPDU_REFERENCE: return pv_get_sintval(msg, param, res, (int)rp_data->pdu.reference); case SMS_TPDU_PAYLOAD: - return pv_get_strval(msg, param, res, &rp_data->pdu.payload); + return pv_get_strval(msg, param, res, &rp_data->pdu.payload.sm); case SMS_TPDU_DESTINATION: return pv_get_strval(msg, param, res, &rp_data->pdu.destination); case SMS_TPDU_ORIGINATING_ADDRESS: return pv_get_strval(msg, param, res, &rp_data->pdu.originating_address); + case SMS_UDH_CONCATSM_REF: { + tp_udh_inf_element_t* ie = rp_data->pdu.payload.header; + while(ie) { + if(ie->identifier == TP_UDH_IE_CONCAT_SM_8BIT_REF) + return pv_get_uintval(msg, param, res, (unsigned int)ie->concat_sm_8bit_ref.ref); + ie = ie->next; + } + return -1; + } + case SMS_UDH_CONCATSM_MAX_NUM_SM: { + tp_udh_inf_element_t* ie = rp_data->pdu.payload.header; + while(ie) { + if(ie->identifier == TP_UDH_IE_CONCAT_SM_8BIT_REF) + return pv_get_uintval(msg, param, res, (unsigned int)ie->concat_sm_8bit_ref.max_num_sm); + ie = ie->next; + } + return -1; + } + case SMS_UDH_CONCATSM_SEQ: { + tp_udh_inf_element_t* ie = rp_data->pdu.payload.header; + while(ie) { + if(ie->identifier == TP_UDH_IE_CONCAT_SM_8BIT_REF) + return pv_get_uintval(msg, param, res, (unsigned int)ie->concat_sm_8bit_ref.seq); + ie = ie->next; + } + return -1; + } } return 0; } @@ -750,10 +989,10 @@ int pv_set_sms(struct sip_msg* msg, pv_param_t *param, int op, pv_value_t *val) rp_send_data->pdu.validity = (unsigned char)val->ri; break; case SMS_TPDU_PAYLOAD: - if (rp_send_data->pdu.payload.s) { - pkg_free(rp_send_data->pdu.payload.s); - rp_send_data->pdu.payload.s = 0; - rp_send_data->pdu.payload.len = 0; + if (rp_send_data->pdu.payload.sm.s) { + pkg_free(rp_send_data->pdu.payload.sm.s); + rp_send_data->pdu.payload.sm.s = 0; + rp_send_data->pdu.payload.sm.len = 0; } if (val == NULL) return 0; @@ -761,13 +1000,13 @@ int pv_set_sms(struct sip_msg* msg, pv_param_t *param, int op, pv_value_t *val) LM_ERR("Invalid type\n"); return -1; } - rp_send_data->pdu.payload.s = pkg_malloc(val->rs.len); - if(rp_send_data->pdu.payload.s==NULL) { + rp_send_data->pdu.payload.sm.s = pkg_malloc(val->rs.len); + if(rp_send_data->pdu.payload.sm.s==NULL) { LM_ERR("no more pkg\n"); return -1; } - rp_send_data->pdu.payload.len = val->rs.len; - memcpy(rp_send_data->pdu.payload.s, val->rs.s, val->rs.len); + rp_send_data->pdu.payload.sm.len = val->rs.len; + memcpy(rp_send_data->pdu.payload.sm.s, val->rs.s, val->rs.len); break; case SMS_TPDU_DESTINATION: if (rp_send_data->pdu.destination.s) { @@ -809,7 +1048,48 @@ int pv_set_sms(struct sip_msg* msg, pv_param_t *param, int op, pv_value_t *val) rp_send_data->pdu.originating_address.len = val->rs.len; memcpy(rp_send_data->pdu.originating_address.s, val->rs.s, val->rs.len); break; + case SMS_UDH_CONCATSM_REF: { + if (val == NULL) + return 0; + if (!(val->flags&PV_VAL_INT)) { + LM_ERR("Invalid type\n"); + return -1; + } + struct ie_concat_sm_8bit_ref* concat = GetConcatShortMsg8bitRefIE(rp_data); + if(concat == NULL) + return -1; + + concat->ref = (unsigned char)val->ri; + break; + } + case SMS_UDH_CONCATSM_MAX_NUM_SM: { + if (val == NULL) + return 0; + if (!(val->flags&PV_VAL_INT)) { + LM_ERR("Invalid type\n"); + return -1; + } + struct ie_concat_sm_8bit_ref* concat = GetConcatShortMsg8bitRefIE(rp_data); + if(concat == NULL) + return -1; + concat->max_num_sm = (unsigned char)val->ri; + break; + } + case SMS_UDH_CONCATSM_SEQ: { + if (val == NULL) + return 0; + if (!(val->flags&PV_VAL_INT)) { + LM_ERR("Invalid type\n"); + return -1; + } + struct ie_concat_sm_8bit_ref* concat = GetConcatShortMsg8bitRefIE(rp_data); + if(concat == NULL) + return -1; + + concat->seq = (unsigned char)val->ri; + break; + } } return 0; } @@ -818,23 +1098,23 @@ int pv_parse_rpdata_name(pv_spec_p sp, str *in) { if (sp==NULL || in==NULL || in->len<=0) return -1; switch(in->len) { - case 3: + case 3: if (strncmp(in->s, "all", 3) == 0) sp->pvp.pvn.u.isname.name.n = SMS_ALL; else goto error; break; - case 4: + case 4: if (strncmp(in->s, "type", 4) == 0) sp->pvp.pvn.u.isname.name.n = SMS_RPDATA_TYPE; else goto error; break; - case 9: + case 9: if (strncmp(in->s, "reference", 9) == 0) sp->pvp.pvn.u.isname.name.n = SMS_RPDATA_REFERENCE; else goto error; break; - case 10: + case 10: if (strncmp(in->s, "originator", 10) == 0) sp->pvp.pvn.u.isname.name.n = SMS_RPDATA_ORIGINATOR; else goto error; break; - case 11: + case 11: if (strncmp(in->s, "destination", 11) == 0) sp->pvp.pvn.u.isname.name.n = SMS_RPDATA_DESTINATION; else goto error; break; @@ -855,38 +1135,41 @@ int pv_parse_tpdu_name(pv_spec_p sp, str *in) { if (sp==NULL || in==NULL || in->len<=0) return -1; switch(in->len) { - case 3: + case 3: if (strncmp(in->s, "all", 3) == 0) sp->pvp.pvn.u.isname.name.n = SMS_ALL; else goto error; break; - case 4: + case 4: if (strncmp(in->s, "type", 4) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_TYPE; else goto error; break; - case 5: + case 5: if (strncmp(in->s, "flags", 5) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_FLAGS; + else if (strncmp(in->s, "mp_id", 5) == 0) sp->pvp.pvn.u.isname.name.n = SMS_UDH_CONCATSM_REF; else goto error; break; - case 6: + case 6: if (strncmp(in->s, "coding", 6) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_CODING; else if (strncmp(in->s, "origen", 6) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_ORIGINATING_ADDRESS; else goto error; break; - case 7: + case 7: if (strncmp(in->s, "payload", 7) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_PAYLOAD; else goto error; break; - case 8: + case 8: if (strncmp(in->s, "protocol", 8) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_PROTOCOL; else if (strncmp(in->s, "validity", 8) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_VALIDITY; + else if (strncmp(in->s, "mp_parts", 8) == 0) sp->pvp.pvn.u.isname.name.n = SMS_UDH_CONCATSM_MAX_NUM_SM; else goto error; break; - case 9: + case 9: if (strncmp(in->s, "reference", 9) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_REFERENCE; else goto error; break; - case 11: + case 11: if (strncmp(in->s, "destination", 11) == 0) sp->pvp.pvn.u.isname.name.n = SMS_TPDU_DESTINATION; + else if (strncmp(in->s, "mp_part_num", 11) == 0) sp->pvp.pvn.u.isname.name.n = SMS_UDH_CONCATSM_SEQ; else goto error; break; default: diff --git a/src/modules/snmpstats/Makefile b/src/modules/snmpstats/Makefile index 6cc27cca3..0643b3e43 100644 --- a/src/modules/snmpstats/Makefile +++ b/src/modules/snmpstats/Makefile @@ -35,8 +35,6 @@ endif LIBS=$(BUILDAGENTLIBS) -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules install-cfg: diff --git a/src/modules/snmpstats/README b/src/modules/snmpstats/README index d8b539831..464dd5e58 100644 --- a/src/modules/snmpstats/README +++ b/src/modules/snmpstats/README @@ -483,8 +483,8 @@ modparam("snmpstats", "export_registrar", 1) The specifics of what is returned depends on how the system was configured. If your NetSNMP installation was installed from an RPM (or another packaged version), then there is a good chance that - net-snmp-config will return something unecessarily longer. It is highly - recommended you install NetSNMP from source to avoid bringing in + net-snmp-config will return something unnecessarily longer. It is + highly recommended you install NetSNMP from source to avoid bringing in excessive dependencies to the SNMPStats module. 6.2. Configuring NetSNMP to allow connections from the SNMPStats module. @@ -542,7 +542,7 @@ modparam("snmpstats", "export_registrar", 1) 6.4. Testing for a proper Configuration As a quick test to make sure that the SNMPStats module sub-agent can - succesfully connect to the NetSNMP Master agent, start snmpd with the + successfully connect to the NetSNMP Master agent, start snmpd with the following: snmpd -f -Dagentx -x tcp:localhost:705 2>&1 | less @@ -788,9 +788,6 @@ Name <sr-users@lists.kamailio.org> and e-mails regarding development versions should be sent to <sr-dev@lists.kamailio.org>. - If you want to keep the mail private, send it to - <sr-users@lists.kamailio.org>. - 2.12. How can I report a bug? diff --git a/src/modules/snmpstats/doc/snmpstats_admin.xml b/src/modules/snmpstats/doc/snmpstats_admin.xml index 664ac6397..a6a4f1e3b 100644 --- a/src/modules/snmpstats/doc/snmpstats_admin.xml +++ b/src/modules/snmpstats/doc/snmpstats_admin.xml @@ -513,7 +513,7 @@ modparam("snmpstats", "export_registrar", 1) The specifics of what is returned depends on how the system was configured. If your NetSNMP installation was installed from an RPM (or another packaged version), then there is a good chance that net-snmp-config will return - something unecessarily longer. It is highly recommended you install NetSNMP + something unnecessarily longer. It is highly recommended you install NetSNMP from source to avoid bringing in excessive dependencies to the SNMPStats module. </para> @@ -606,7 +606,7 @@ modparam("snmpstats", "export_registrar", 1) Testing for a proper Configuration - As a quick test to make sure that the SNMPStats module sub-agent can succesfully + As a quick test to make sure that the SNMPStats module sub-agent can successfully connect to the NetSNMP Master agent, start snmpd with the following: diff --git a/src/modules/snmpstats/doc/snmpstats_faq.xml b/src/modules/snmpstats/doc/snmpstats_faq.xml index 7ce85f2a4..12b7710eb 100644 --- a/src/modules/snmpstats/doc/snmpstats_faq.xml +++ b/src/modules/snmpstats/doc/snmpstats_faq.xml @@ -362,10 +362,6 @@ &kamailiousersmail; and e-mails regarding development versions should be sent to &kamailiodevmail;. - - If you want to keep the mail private, send it to - &kamailiohelpmail;. - diff --git a/src/modules/snmpstats/snmpstats.c b/src/modules/snmpstats/snmpstats.c index 9a8acea27..a9d8b1fc8 100644 --- a/src/modules/snmpstats/snmpstats.c +++ b/src/modules/snmpstats/snmpstats.c @@ -126,15 +126,9 @@ static int mod_child_init(int rank); * log a useful message and kill the AgentX Sub-Agent child process */ static void mod_destroy(void); -static proc_export_t mod_procs[] = { - {"SNMP AgentX", 0, 0, agentx_child, 1}, - {0, 0, 0, 0, 0} -}; - - /*! * This structure defines the SNMPStats parameters that can be configured - * through the kamailio.cfg configuration file. + * through the kamailio.cfg configuration file. */ static param_export_t mod_params[] = { {"sipEntityType", PARAM_STRING | USE_FUNC_PARAM, @@ -157,18 +151,16 @@ static param_export_t mod_params[] = { struct module_exports exports = { - SNMPSTATS_MODULE_NAME, /* module's name */ - DEFAULT_DLFLAGS, /* dlopen flags */ - 0, /* exported functions */ - mod_params, /* param exports */ - 0, /* exported statistics */ - 0, /* MI Functions */ - 0, /* pseudo-variables */ - mod_procs, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* reply processing function */ - mod_destroy, /* Destroy function */ - mod_child_init /* per-child init function */ + SNMPSTATS_MODULE_NAME, /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + 0, /* exported functions */ + mod_params, /* exported parameters */ + 0, /* exported rpc functions */ + 0, /* exported pseudo-variables */ + 0, /* reply processing function */ + mod_init, /* module init function */ + mod_child_init, /* per-child init function */ + mod_destroy /* module destroy function */ }; /*! @@ -200,13 +192,13 @@ static struct sigaction old_sigchld_handler; /*! The following message codes are from Wikipedia at: * - * http://en.wikipedia.org/wiki/SIP_Responses + * http://en.wikipedia.org/wiki/SIP_Responses * * Updated by oej to use the IETF reference page * http://www.iana.org/assignments/sip-parameters/sip-parameters.xml#sip-parameters-7 * * If there are more message codes added at a later time, they should be added - * here, and to out_message_code_names below. + * here, and to out_message_code_names below. * * The array is used to register the statistics keeping track of the number of * messages received with the response code X. @@ -235,7 +227,7 @@ char *in_message_code_names[] = { /*! The following message codes are from Wikipedia at: * - * http://en.wikipedia.org/wiki/SIP_Responses + * http://en.wikipedia.org/wiki/SIP_Responses * * Updated by oej to use the IETF reference page * http://www.iana.org/assignments/sip-parameters/sip-parameters.xml#sip-parameters-7 diff --git a/src/modules/speeddial/Makefile b/src/modules/speeddial/Makefile index 5b0ff96df..aad29ab81 100644 --- a/src/modules/speeddial/Makefile +++ b/src/modules/speeddial/Makefile @@ -11,8 +11,6 @@ NAME=speeddial.so LIBS= DEFS+= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/speeddial/README b/src/modules/speeddial/README index d2a68ccb1..6b43cf442 100644 --- a/src/modules/speeddial/README +++ b/src/modules/speeddial/README @@ -86,7 +86,7 @@ Chapter 1. Admin Guide 1. Overview - This module provides on-server speed dial facilities. An user can store + This module provides on-server speed dial facilities. A user can store records consisting of pairs short numbers (2 digits) and SIP addresses into a table of Kamailio. Then it can dial the two digits whenever it wants to call the SIP address associated with them. @@ -126,7 +126,8 @@ Chapter 1. Admin Guide Example 1.1. Set db_url parameter ... -modparam("speeddial", "db_url", "mysql://kamailio:xxx@localhost/kamailio") +modparam("speeddial", "db_url", "mysql://kamailio:kamailiorw@localhost/kamailio" +) ... 3.2. user_column (string) @@ -202,7 +203,7 @@ modparam("speeddial", "domain_prefix", "tel.") 3.8. use_domain (int) - The parameter specifies wheter or not to use the domain when searching + The parameter specifies whether or not to use the domain when searching a speed dial record (0 - no domain, 1 - use domain from From URI, 2 - use both domains, from From URI and from request URI). @@ -225,7 +226,7 @@ modparam("speeddial", "use_domain", 1) Meaning of the parameters is as follows: * table - The name of the table storing the speed dial records. * owner - The SIP URI of the owner of short dialing codes. If not - pressent, URI of From header is used. + present, URI of From header is used. This function can be used from REQUEST_ROUTE. diff --git a/src/modules/speeddial/doc/speeddial_admin.xml b/src/modules/speeddial/doc/speeddial_admin.xml index 4de6ec3c3..9cb81d5c0 100644 --- a/src/modules/speeddial/doc/speeddial_admin.xml +++ b/src/modules/speeddial/doc/speeddial_admin.xml @@ -16,7 +16,7 @@
Overview - This module provides on-server speed dial facilities. An user can store + This module provides on-server speed dial facilities. A user can store records consisting of pairs short numbers (2 digits) and SIP addresses into a table of &kamailio;. Then it can dial the two digits whenever it wants to call the SIP address associated with them. @@ -68,7 +68,7 @@ Set <varname>db_url</varname> parameter ... -modparam("speeddial", "db_url", "mysql://kamailio:xxx@localhost/kamailio") +modparam("speeddial", "db_url", "&defaultdb;") ... @@ -194,7 +194,7 @@ modparam("speeddial", "domain_prefix", "tel.")
<varname>use_domain</varname> (int) - The parameter specifies wheter or not to use the domain when searching a + The parameter specifies whether or not to use the domain when searching a speed dial record (0 - no domain, 1 - use domain from From URI, 2 - use both domains, from From URI and from request URI). @@ -231,7 +231,7 @@ modparam("speeddial", "use_domain", 1) owner - The SIP URI of the owner of - short dialing codes. If not pressent, URI of From header is used. + short dialing codes. If not present, URI of From header is used. diff --git a/src/modules/speeddial/speeddial.c b/src/modules/speeddial/speeddial.c index d5baa655b..f251744a7 100644 --- a/src/modules/speeddial/speeddial.c +++ b/src/modules/speeddial/speeddial.c @@ -90,18 +90,16 @@ static param_export_t params[] = { /* Module interface */ struct module_exports exports = { - "speeddial", + "speeddial", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - destroy, /* destroy function */ - child_init /* child initialization function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC functions */ + 0, /* exported pseudo-variables */ + 0, /* response function */ + mod_init, /* module initialization function */ + child_init, /* child initialization function */ + destroy /* destroy function */ }; diff --git a/src/modules/sqlops/Makefile b/src/modules/sqlops/Makefile index ec421eaec..a534d08f7 100644 --- a/src/modules/sqlops/Makefile +++ b/src/modules/sqlops/Makefile @@ -9,8 +9,6 @@ auto_gen= NAME=sqlops.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/sqlops/README b/src/modules/sqlops/README index 7e919f114..3a08072c1 100644 --- a/src/modules/sqlops/README +++ b/src/modules/sqlops/README @@ -151,7 +151,7 @@ Chapter 1. Admin Guide Example 1.1. Set sqlcon parameter ... -modparam("sqlops","sqlcon","cb=>mysql://kamailio:abc@10.10.1.1/testdb") +modparam("sqlops","sqlcon","cb=>mysql://kamailio:kamailiorw@localhost/kamailio") modparam("sqlops","sqlcon","ca=>dbdriver://username:password@dbhost/dbname") ... @@ -159,7 +159,7 @@ modparam("sqlops","sqlcon","ca=>dbdriver://username:password@dbhost/dbname") The definition of a database result ID. The value of the parameter can be any string. Results IDs are also added at fixup time when - sql_query() parameters are parsed, so there is no need to decalare them + sql_query() parameters are parsed, so there is no need to declare them via module parameter unless you want to use them from within other modules and be available in all application processes. @@ -298,7 +298,7 @@ sql_result_free("ra"); result is not available back to config, thus it should be used only for sql statements that don't return values (e.g., insert, delete, update...). Note that async_workers core parameter must be set in order - to enable the asyncronous framework needed by this function. + to enable the asynchronous framework needed by this function. * connection - the name of the connection to be used for the query (defined via “sqlcon†parameter). * query - SQL query string or pseudo-variables containing SQL query. diff --git a/src/modules/sqlops/doc/sqlops_admin.xml b/src/modules/sqlops/doc/sqlops_admin.xml index d6f545831..4b38a3f7b 100644 --- a/src/modules/sqlops/doc/sqlops_admin.xml +++ b/src/modules/sqlops/doc/sqlops_admin.xml @@ -146,7 +146,7 @@ Set <varname>sqlcon</varname> parameter ... -modparam("sqlops","sqlcon","cb=>mysql://kamailio:abc@10.10.1.1/testdb") +modparam("sqlops","sqlcon","cb=>&defaultdb;") modparam("sqlops","sqlcon","ca=>&exampledb;") ... @@ -157,7 +157,7 @@ modparam("sqlops","sqlcon","ca=>&exampledb;") The definition of a database result ID. The value of the parameter can be any string. Results IDs are also added at fixup time when sql_query() - parameters are parsed, so there is no need to decalare them via module + parameters are parsed, so there is no need to declare them via module parameter unless you want to use them from within other modules and be available in all application processes. @@ -407,7 +407,7 @@ sql_result_free("ra"); process and result is not available back to config, thus it should be used only for sql statements that don't return values (e.g., insert, delete, update...). Note that async_workers core parameter - must be set in order to enable the asyncronous framework + must be set in order to enable the asynchronous framework needed by this function. diff --git a/src/modules/sqlops/sql_api.c b/src/modules/sqlops/sql_api.c index 0e239fb33..b33bc0d0e 100644 --- a/src/modules/sqlops/sql_api.c +++ b/src/modules/sqlops/sql_api.c @@ -697,17 +697,27 @@ int sqlops_do_query(str *scon, str *squery, str *sres) sql_con_t *con = NULL; sql_result_t *res = NULL; + if (scon == NULL || scon->s == NULL) + { + LM_ERR("invalid connection name\n"); + goto error; + } + con = sql_get_connection(scon); if(con==NULL) { LM_ERR("invalid connection [%.*s]\n", scon->len, scon->s); goto error; } - res = sql_get_result(sres); - if(res==NULL) + /* Result parameter is optional */ + if (sres && sres->s) { - LM_ERR("invalid result [%.*s]\n", sres->len, sres->s); - goto error; + res = sql_get_result(sres); + if(res==NULL) + { + LM_ERR("invalid result [%.*s]\n", sres->len, sres->s); + goto error; + } } if(sql_do_query(con, squery, res)<0) goto error; @@ -724,6 +734,12 @@ int sqlops_get_value(str *sres, int i, int j, sql_val_t **val) { sql_result_t *res = NULL; + if (sres == NULL || sres->s == NULL) + { + LM_ERR("invalid result name\n"); + goto error; + } + res = sql_get_result(sres); if(res==NULL) { @@ -754,6 +770,12 @@ int sqlops_is_null(str *sres, int i, int j) { sql_result_t *res = NULL; + if (sres == NULL || sres->s == NULL) + { + LM_ERR("invalid result name\n"); + goto error; + } + res = sql_get_result(sres); if(res==NULL) { @@ -784,6 +806,12 @@ int sqlops_get_column(str *sres, int i, str *col) { sql_result_t *res = NULL; + if (sres == NULL || sres->s == NULL) + { + LM_ERR("invalid result name\n"); + goto error; + } + res = sql_get_result(sres); if(res==NULL) { @@ -808,6 +836,12 @@ int sqlops_num_columns(str *sres) { sql_result_t *res = NULL; + if (sres == NULL || sres->s == NULL) + { + LM_ERR("invalid result name\n"); + goto error; + } + res = sql_get_result(sres); if(res==NULL) { @@ -826,6 +860,12 @@ int sqlops_num_rows(str *sres) { sql_result_t *res = NULL; + if (sres == NULL || sres->s == NULL) + { + LM_ERR("invalid result name\n"); + goto error; + } + res = sql_get_result(sres); if(res==NULL) { @@ -844,6 +884,12 @@ void sqlops_reset_result(str *sres) { sql_result_t *res = NULL; + if (sres == NULL || sres->s == NULL) + { + LM_ERR("invalid result name\n"); + return; + } + res = sql_get_result(sres); if(res==NULL) { @@ -862,6 +908,12 @@ int sqlops_do_xquery(sip_msg_t *msg, str *scon, str *squery, str *xavp) { sql_con_t *con = NULL; + if (scon == NULL || scon->s == NULL) + { + LM_ERR("invalid connection name\n"); + goto error; + } + con = sql_get_connection(scon); if(con==NULL) { diff --git a/src/modules/sqlops/sqlops.c b/src/modules/sqlops/sqlops.c index dbad0c78c..77be7b760 100644 --- a/src/modules/sqlops/sqlops.c +++ b/src/modules/sqlops/sqlops.c @@ -124,18 +124,16 @@ static tr_export_t mod_trans[] = { /** module exports */ struct module_exports exports= { - "sqlops", + "sqlops", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0 , /* exported MI functions */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - (destroy_function) destroy, - child_init /* per-child init function */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + destroy /* module destroy function */ }; static int mod_init(void) @@ -452,6 +450,24 @@ static int ki_sqlops_query(sip_msg_t *msg, str *scon, str *squery, str *sres) return sqlops_do_query(scon, squery, sres); } +static int ki_sqlops_query_async(sip_msg_t *msg, str *scon, str *squery) +{ + sql_con_t *con = NULL; + + if (scon == NULL || scon->s == NULL || scon->len<=0) { + LM_ERR("invalid connection name\n"); + return -1; + } + + con = sql_get_connection(scon); + if(con==NULL) { + LM_ERR("invalid connection [%.*s]\n", scon->len, scon->s); + return -1; + } + + return sql_do_query_async(con, squery); +} + static int ki_sqlops_reset_result(sip_msg_t *msg, str *sres) { sqlops_reset_result(sres); @@ -508,6 +524,11 @@ static sr_kemi_t sr_kemi_sqlops_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("sqlops"), str_init("sql_query_async"), + SR_KEMIP_INT, ki_sqlops_query_async, + { SR_KEMIP_STR, SR_KEMIP_STR, 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/ss7ops/Makefile b/src/modules/ss7ops/Makefile index c8412b136..13948a466 100644 --- a/src/modules/ss7ops/Makefile +++ b/src/modules/ss7ops/Makefile @@ -9,8 +9,6 @@ auto_gen= NAME=ss7ops.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srutils/srutils diff --git a/src/modules/ss7ops/ss7ops_mod.c b/src/modules/ss7ops/ss7ops_mod.c index 9a6b000e1..f53f48626 100644 --- a/src/modules/ss7ops/ss7ops_mod.c +++ b/src/modules/ss7ops/ss7ops_mod.c @@ -80,13 +80,9 @@ static cmd_export_t cmds[] = { }; static pv_export_t mod_pvs[] = { - { {"isup", sizeof("isup")-1}, PVT_OTHER, pv_get_isup, - 0, pv_parse_isup_name, 0, 0, 0 }, - { {0, 0}, 0, 0, 0, 0, 0, 0, 0 } -}; - -static param_export_t params[] = { - {0, 0, 0} + { {"isup", sizeof("isup")-1}, PVT_OTHER, pv_get_isup, + 0, pv_parse_isup_name, 0, 0, 0 }, + { {0, 0}, 0, 0, 0, 0, 0, 0, 0 } }; static int mod_init(void) @@ -101,18 +97,16 @@ static void destroy(void) } struct module_exports exports = { - "ss7", + "ss7", /*!< module name */ DEFAULT_DLFLAGS, /*!< dlopen flags */ - cmds, /*!< Exported functions */ - params, /*!< Exported parameters */ - 0, - 0, /*!< exported MI functions */ + cmds, /*!< exported functions */ + 0, /*!< exported parameters */ + 0, /*!< exported rpc functions */ mod_pvs, /*!< exported pseudo-variables */ - 0, /*!< extra processes */ - mod_init, /*!< module initialization function */ - 0, /*!< response function */ - destroy, /*!< destroy function */ - 0 /*!< child initialization function */ + 0, /*!< response handling function */ + mod_init, /*!< module init function */ + 0, /*!< child init function */ + destroy /*!< module destroy function */ }; static const uint8_t *extract_from_m2ua(const uint8_t *data, size_t *len) @@ -327,6 +321,7 @@ static int ki_isup_to_json(sip_msg_t *_m, int proto) srjson_DeleteDoc(isup_json); isup_last = NULL; isup_json = NULL; + mtp_type = 0; data = fetch_payload(_m, "$var(payload)", &int_len); if (!data) @@ -744,4 +739,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_ss7ops_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/sst/Makefile b/src/modules/sst/Makefile index a82eb4a97..a85bc4991 100644 --- a/src/modules/sst/Makefile +++ b/src/modules/sst/Makefile @@ -1,34 +1,12 @@ # -# -# WARNING: do not run this directly, it should be run by the master Makefile -# -# Copyright (C) 2006 SOMA Networks, INC. -# Written by: Ron Winacott -# -# This file is part of Kamailio, a free SIP server. -# -# Kamailio is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version -# -# Kamailio is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# 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 -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 -# USA +# sst module makefile # # +# WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs auto_gen= NAME=sst.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/sst/README b/src/modules/sst/README index 77eee87a2..725cffc95 100644 --- a/src/modules/sst/README +++ b/src/modules/sst/README @@ -203,7 +203,7 @@ modparam("sst", "enable_stats", 0) 4.2. min_se (integer) The value is used to set the proxies MIN-SE value and is used in the - 422 error reply as the proxys MIN-SE: header value if the + 422 error reply as the proxies MIN-SE: header value if the “sstCheckMin()†flag is set to true and the check fails. If not set and “sstCheckMin()†is called with the send-reply flag set @@ -295,7 +295,7 @@ route { value is less than the modules minimum value, this function will return true. - If the fuction is called with the send_reply_flag set to true (1) and + If the function is called with the send_reply_flag set to true (1) and the requested Session-Expires / MIN-SE values are too small, a 422 reply will be sent for you. The 422 will carry a MIN-SE: header with the sst min_se parameter value set. diff --git a/src/modules/sst/doc/sst_admin.xml b/src/modules/sst/doc/sst_admin.xml index bb8287c89..49f263028 100644 --- a/src/modules/sst/doc/sst_admin.xml +++ b/src/modules/sst/doc/sst_admin.xml @@ -180,7 +180,7 @@ modparam("sst", "enable_stats", 0) <varname>min_se</varname> (integer) The value is used to set the proxies MIN-SE - value and is used in the 422 error reply as the proxys + value and is used in the 422 error reply as the proxies MIN-SE: header value if the sstCheckMin() flag is set to true and the check fails. @@ -317,7 +317,7 @@ route { modules minimum value, this function will return true. - If the fuction is called with the + If the function is called with the send_reply_flag set to true (1) and the requested Session-Expires / MIN-SE values are too small, a 422 reply will be sent for you. The 422 will carry a diff --git a/src/modules/sst/sst.c b/src/modules/sst/sst.c index 69336c25c..0085b0f6b 100644 --- a/src/modules/sst/sst.c +++ b/src/modules/sst/sst.c @@ -128,18 +128,16 @@ static stat_export_t mod_stats[] = { #endif /* STATISTICS */ struct module_exports exports= { - "sst", /* module's name */ + "sst", /* module's name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* exported functions */ - mod_params, /* param exports */ - 0, /* exported statistics (they are registered from mod_init) */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* reply processing function */ - 0, /* Destroy function */ - 0 /* per-child init function */ + cmds, /* exported functions */ + mod_params, /* param exports */ + 0, /* RPC method exports */ + 0, /* exported pseudo-variables */ + 0, /* reply processing function */ + mod_init, /* module initialization function */ + 0, /* per-child init function */ + 0 /* Destroy function */ }; /** @@ -155,10 +153,6 @@ struct module_exports exports= { static int mod_init(void) { str s; - /* if statistics are disabled, prevent their registration to core. */ - if (sst_enable_stats==0) { - exports.stats = 0; - } #ifdef STATISTICS /* register statistics */ @@ -236,4 +230,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_sst_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/statistics/Makefile b/src/modules/statistics/Makefile index 643f366b7..6c8c333cb 100644 --- a/src/modules/statistics/Makefile +++ b/src/modules/statistics/Makefile @@ -6,6 +6,4 @@ auto_gen= NAME=statistics.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/statistics/statistics.c b/src/modules/statistics/statistics.c index c5ace8c18..3ffa58865 100644 --- a/src/modules/statistics/statistics.c +++ b/src/modules/statistics/statistics.c @@ -79,18 +79,16 @@ static param_export_t mod_params[]={ struct module_exports exports= { - "statistics", /* module's name */ + "statistics", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ cmds, /* exported functions */ - mod_params, /* param exports */ - 0, /* exported statistics */ - 0, /* exported MI functions */ + mod_params, /* exported parameters */ + 0, /* exported rpc functions */ 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ 0, /* reply processing function */ - 0, /* module destroy function */ - 0 /* per-child init function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + 0 /* module destroy function */ }; @@ -323,4 +321,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_statistics_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/statsc/Makefile b/src/modules/statsc/Makefile index 94823733b..cb9dcbfc6 100644 --- a/src/modules/statsc/Makefile +++ b/src/modules/statsc/Makefile @@ -6,6 +6,4 @@ auto_gen= NAME=statsc.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/statsc/README b/src/modules/statsc/README index a43e2ff5c..2ef41cc72 100644 --- a/src/modules/statsc/README +++ b/src/modules/statsc/README @@ -113,15 +113,15 @@ modparam("statsc", "items", 200) 3.3. track (str) Specify the statistics to track. The parameter can be set many times - and one value can speficy many statistics. + and one value can specify many statistics. The format is "rname=sname", where the rname is the name for report and sname is internal Kamailio statistic name. Next statistics are tracked by default: - * shm.free - the internal statistc 'free_size' (from group 'shmem'). - * shm.used - the internal statistc 'used_size' (from group 'shmem'). - * shm.real_used - the internal statistc 'real_used_size' (from group + * shm.free - the internal statistic 'free_size' (from group 'shmem'). + * shm.used - the internal statistic 'used_size' (from group 'shmem'). + * shm.real_used - the internal statistic 'real_used_size' (from group 'shmem'). Default value is "". diff --git a/src/modules/statsc/doc/statsc_admin.xml b/src/modules/statsc/doc/statsc_admin.xml index 5b6cf50b1..979434969 100644 --- a/src/modules/statsc/doc/statsc_admin.xml +++ b/src/modules/statsc/doc/statsc_admin.xml @@ -99,7 +99,7 @@ modparam("statsc", "items", 200) <varname>track</varname> (str) Specify the statistics to track. The parameter can - be set many times and one value can speficy many + be set many times and one value can specify many statistics. @@ -112,19 +112,19 @@ modparam("statsc", "items", 200) - shm.free - the internal statistc 'free_size' + shm.free - the internal statistic 'free_size' (from group 'shmem'). - shm.used - the internal statistc 'used_size' + shm.used - the internal statistic 'used_size' (from group 'shmem'). - shm.real_used - the internal statistc 'real_used_size' + shm.real_used - the internal statistic 'real_used_size' (from group 'shmem'). diff --git a/src/modules/statsc/statsc_mod.c b/src/modules/statsc/statsc_mod.c index e05109df3..75c88c9cd 100644 --- a/src/modules/statsc/statsc_mod.c +++ b/src/modules/statsc/statsc_mod.c @@ -66,18 +66,16 @@ static param_export_t params[]={ }; struct module_exports exports = { - "statsc", + "statsc", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - mod_destroy, /* destroy function */ - child_init /* per child init function */ + cmds, /* cmd exports */ + params, /* param exports */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* response function */ + mod_init, /* module initialization function */ + child_init, /* per child init function */ + mod_destroy /* destroy function */ }; diff --git a/src/modules/statsd/Makefile b/src/modules/statsd/Makefile index 209ed2cad..e35f4b76b 100644 --- a/src/modules/statsd/Makefile +++ b/src/modules/statsd/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=statsd.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/statsd/statsd.c b/src/modules/statsd/statsd.c index 469f390ae..f6c8022bc 100644 --- a/src/modules/statsd/statsd.c +++ b/src/modules/statsd/statsd.c @@ -32,7 +32,7 @@ MODULE_VERSION static int mod_init(void); -static int mod_destroy(void); +void mod_destroy(void); static int func_gauge(struct sip_msg *msg, char *key, char* val); static int func_set(struct sip_msg *msg, char *key, char* val); static int func_time_start(struct sip_msg *msg, char *key); @@ -65,18 +65,16 @@ static param_export_t parameters[] = { }; struct module_exports exports = { - "statsd", // module name + "statsd", // module name DEFAULT_DLFLAGS, // dlopen flags commands, // exported functions parameters, // exported parameters - NULL, // exported statistics - NULL, // exported MI functions + NULL, // exported RPC methods NULL, // exported seudo-variables - NULL, // extra processes - mod_init, // module init function (before fork. kids will inherit) NULL, // reply processing function - (destroy_function) mod_destroy, // destroy function - NULL // child init function + mod_init, // module init function (before fork. kids will inherit) + 0, // child init function + mod_destroy // destroy function }; @@ -108,10 +106,10 @@ static int mod_init(void) /** * destroy module function */ -static int mod_destroy(void) +void mod_destroy(void) { statsd_destroy(); - return 0; + return; } static int func_gauge(struct sip_msg* msg, char* key, char* val) @@ -279,4 +277,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_statsd_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/stun/Makefile b/src/modules/stun/Makefile index 3402c9f5f..d85c84ba2 100644 --- a/src/modules/stun/Makefile +++ b/src/modules/stun/Makefile @@ -7,6 +7,4 @@ auto_gen= NAME=stun.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/stun/stun_mod.c b/src/modules/stun/stun_mod.c index 89423ac4b..ff976d2f6 100644 --- a/src/modules/stun/stun_mod.c +++ b/src/modules/stun/stun_mod.c @@ -37,18 +37,16 @@ static int mod_init(void); static int stun_msg_receive(sr_event_param_t *evp); struct module_exports exports = { - "stun", - DEFAULT_DLFLAGS, /* dlopen flags */ - 0, /* Exported functions */ - 0, /* Exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - 0, /* destroy function */ - 0 /* per-child initialization function */ + "stun", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + 0, /* exported functions */ + 0, /* exported parameters */ + 0, /* exported RPC functions */ + 0, /* exported pseudo-variables */ + 0, /* response function */ + mod_init, /* module initialization function */ + 0, /* per-child initialization function */ + 0 /* destroy function */ }; static int mod_init(void) diff --git a/src/modules/tcpops/Makefile b/src/modules/tcpops/Makefile index 40fbcf6ed..9100ae18a 100644 --- a/src/modules/tcpops/Makefile +++ b/src/modules/tcpops/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=tcpops.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/tcpops/README b/src/modules/tcpops/README index b0a0c3b9e..87e148859 100644 --- a/src/modules/tcpops/README +++ b/src/modules/tcpops/README @@ -21,6 +21,7 @@ Olle E. Johansson 2. Parameters 2.1. closed_event (int) + 2.2. event_callback (str) 3. Functions @@ -30,6 +31,7 @@ Olle E. Johansson 3.4. tcp_keepalive_disable([conid]) 3.5. tcp_set_connection_lifetime([conid], lifetime) 3.6. tcp_enable_closed_event([conid]) + 3.7. tcp_get_conid(hostport, pvname) 4. Event routes @@ -41,12 +43,14 @@ Olle E. Johansson List of Examples 1.1. Set closed_event parameter - 1.2. tcp_conid_alive usage - 1.3. tcp_conid_state usage - 1.4. tcp_keepalive_enable usage - 1.5. tcp_keepalive_disable usage - 1.6. tcp_set_connection_lifetime usage - 1.7. tcp_set_closed_event usage + 1.2. Set event_callback parameter + 1.3. tcp_conid_alive usage + 1.4. tcp_conid_state usage + 1.5. tcp_keepalive_enable usage + 1.6. tcp_keepalive_disable usage + 1.7. tcp_set_connection_lifetime usage + 1.8. tcp_set_closed_event usage + 1.9. tcp_get_conid usage Chapter 1. Admin Guide @@ -56,6 +60,7 @@ Chapter 1. Admin Guide 2. Parameters 2.1. closed_event (int) + 2.2. event_callback (str) 3. Functions @@ -65,6 +70,7 @@ Chapter 1. Admin Guide 3.4. tcp_keepalive_disable([conid]) 3.5. tcp_set_connection_lifetime([conid], lifetime) 3.6. tcp_enable_closed_event([conid]) + 3.7. tcp_get_conid(hostport, pvname) 4. Event routes @@ -86,6 +92,7 @@ Chapter 1. Admin Guide 2. Parameters 2.1. closed_event (int) + 2.2. event_callback (str) 2.1. closed_event (int) @@ -106,6 +113,28 @@ Chapter 1. Admin Guide modparam("tcpops", "closed_event", 0) ... +2.2. event_callback (str) + + The name of the function in the kemi configuration file (embedded + scripting language such as Lua, Python, ...) to be executed instead of + event_route[...] blocks. + + The function receives a string parameter with the name of the event, + the values are: 'tcp:closed', 'tcp:timeout', 'tcp:reset'. + + Default value is 'empty' (no function is executed for events). + + Example 1.2. Set event_callback parameter +... +modparam("tcpops", "event_callback", "ksr_tcpops_event") +... +-- event callback function implemented in Lua +function ksr_tcpops_event(evname) + KSR.info("===== evapi module triggered event: " .. evname .. "\n"); + return 1; +end +... + 3. Functions 3.1. tcp_conid_alive(conid) @@ -114,6 +143,7 @@ modparam("tcpops", "closed_event", 0) 3.4. tcp_keepalive_disable([conid]) 3.5. tcp_set_connection_lifetime([conid], lifetime) 3.6. tcp_enable_closed_event([conid]) + 3.7. tcp_get_conid(hostport, pvname) 3.1. tcp_conid_alive(conid) @@ -129,7 +159,7 @@ modparam("tcpops", "closed_event", 0) -1: Connection has errors, does not exist or is about to be closed) - Example 1.2. tcp_conid_alive usage + Example 1.3. tcp_conid_alive usage ... $var(conid) = $conid; if(!tcp_conid_alive("$var(conid)")) { @@ -161,7 +191,7 @@ modparam("tcpops", "closed_event", 0) -4: Socket is in unknown bad state. Connection will likely close. - Example 1.3. tcp_conid_state usage + Example 1.4. tcp_conid_state usage ... if(!tcp_conid_state("$var(conid)")) { xlog("L_ERR", "Connection $conid is closed or malfunctional\n"); @@ -184,7 +214,7 @@ modparam("tcpops", "closed_event", 0) Returns 1 on success, -1 on failure. - Example 1.4. tcp_keepalive_enable usage + Example 1.5. tcp_keepalive_enable usage request_route { if (is_method("INVITE")) { $avp(caller_conid) = $conid; @@ -215,7 +245,7 @@ onreply_route[foo] { Returns 1 on success, -1 on failure. - Example 1.5. tcp_keepalive_disable usage + Example 1.6. tcp_keepalive_disable usage request_route { ... if (is_method("BYE")) { @@ -246,7 +276,7 @@ onreply_route[foo] { Returns 1 on success, -1 on failure. - Example 1.6. tcp_set_connection_lifetime usage + Example 1.7. tcp_set_connection_lifetime usage ... # use 10s as default lifetime tcp_connection_lifetime=10 @@ -266,13 +296,13 @@ request_route { Explicitly enables the "tcp:closed" event route on a TCP connection. Meaning of the parameters is as follows: - * conid (optionnal): the Kamailio internal connection id. If no + * conid (optional): the Kamailio internal connection id. If no parameter is given, it will be enabled on the current message source connection. Returns 1 on success, -1 on failure. - Example 1.7. tcp_set_closed_event usage + Example 1.8. tcp_set_closed_event usage ... # "tcp:closed" event route is "manual" mode modparam("tcpops", "closed_event", 2) @@ -292,6 +322,29 @@ event_route[tcp:closed] { xlog("connection $conid was closed"); } +3.7. tcp_get_conid(hostport, pvname) + + Get the connection id based on target host:port. The connection id is + set in the variable named by pvname parameter. + + Meaning of the parameters is as follows: + * hostport - target "host:port" address, the port can be omitted + (default to 5060) and the parameter can contain variables. + * pvname - target variable name. + + Return values: + + 1: connection was found + + -1: connection was not found or an error occurred + + Example 1.9. tcp_get_conid usage +... + if(tcp_conid_alive("127.0.0.1:5060", "$var(conid)")) { + xlog("connection id is: $var(conid)\n"); + } +... + 4. Event routes 4.1. tcp:closed diff --git a/src/modules/tcpops/doc/functions.xml b/src/modules/tcpops/doc/functions.xml index 9f5166878..4f0231d28 100644 --- a/src/modules/tcpops/doc/functions.xml +++ b/src/modules/tcpops/doc/functions.xml @@ -228,7 +228,7 @@ request_route { Meaning of the parameters is as follows: - conid (optionnal): the &kamailio; internal + conid (optional): the &kamailio; internal connection id. If no parameter is given, it will be enabled on the current message source connection. @@ -259,4 +259,39 @@ event_route[tcp:closed] { ]]>
+
+ + <function>tcp_get_conid(hostport, pvname)</function> + + + Get the connection id based on target host:port. The connection id + is set in the variable named by pvname parameter. + + Meaning of the parameters is as follows: + + + hostport - target "host:port" address, + the port can be omitted (default to 5060) and the parameter can + contain variables. + + + + pvname - target variable name. + + + + Return values: + 1: connection was found + -1: connection was not found or an error occurred + + <function>tcp_get_conid</function> usage + + +
diff --git a/src/modules/tcpops/doc/params.xml b/src/modules/tcpops/doc/params.xml index 5d04783eb..1f7aaa507 100644 --- a/src/modules/tcpops/doc/params.xml +++ b/src/modules/tcpops/doc/params.xml @@ -13,7 +13,7 @@ Parameters -
+
<varname>closed_event</varname> (int) If set to 0 (globally disabled), the "tcp:closed" event route will never be called on TCP @@ -42,7 +42,36 @@ modparam("tcpops", "closed_event", 0)
- - +
+ <varname>event_callback</varname> (str) + + The name of the function in the kemi configuration file (embedded + scripting language such as Lua, Python, ...) to be executed instead + of event_route[...] blocks. + + + The function receives a string parameter with the name of the event, + the values are: 'tcp:closed', 'tcp:timeout', 'tcp:reset'. + + + + Default value is 'empty' (no function is executed for events). + + + + Set <varname>event_callback</varname> parameter + +... +modparam("tcpops", "event_callback", "ksr_tcpops_event") +... +-- event callback function implemented in Lua +function ksr_tcpops_event(evname) + KSR.info("===== evapi module triggered event: " .. evname .. "\n"); + return 1; +end +... + + +
diff --git a/src/modules/tcpops/tcpops.c b/src/modules/tcpops/tcpops.c index 9bf4eaa8e..1c70eb340 100644 --- a/src/modules/tcpops/tcpops.c +++ b/src/modules/tcpops/tcpops.c @@ -31,18 +31,41 @@ #include "../../core/globals.h" #include "../../core/pass_fd.h" #include "../../core/timer.h" +#include "../../core/route.h" #include "../../core/fmsg.h" +#include "../../core/kemi.h" #include "../../core/sr_module.h" #include "tcpops.h" +extern str tcpops_event_callback; + +static str tcpops_evrt_closed = str_init("tcp:closed"); +static str tcpops_evrt_timeout = str_init("tcp:timeout"); +static str tcpops_evrt_reset = str_init("tcp:reset"); + /* globally enabled by default */ int tcp_closed_event = 1; int tcp_closed_routes[_TCP_CLOSED_REASON_MAX] = {[0 ... sizeof(tcp_closed_routes)/sizeof(*tcp_closed_routes)-1] = -1}; +/** + * + */ +void tcpops_init_evroutes(void) +{ + if(tcpops_event_callback.len > 0) { + return; + } + + /* get event routes */ + tcp_closed_routes[TCP_CLOSED_EOF] = route_get(&event_rt, tcpops_evrt_closed.s); + tcp_closed_routes[TCP_CLOSED_TIMEOUT] = route_get(&event_rt, tcpops_evrt_timeout.s); + tcp_closed_routes[TCP_CLOSED_RESET] = route_get(&event_rt, tcpops_evrt_reset.s); +} + /** * gets the fd of the current message source connection * @@ -212,13 +235,22 @@ static void tcpops_tcp_closed_run_route(tcp_closed_event_info_t *tev) int rt, backup_rt; struct run_act_ctx ctx; sip_msg_t *fmsg; + sr_kemi_eng_t *keng = NULL; + str *evname; + + if(tcpops_event_callback.len > 0) { + keng = sr_kemi_eng_get(); + if(keng == NULL) { + LM_DBG("even callback set, but no kemi engine\n"); + return; + } + } else { + rt = tcp_closed_routes[tev->reason]; + LM_DBG("event reason id: %d rt: %d\n", tev->reason, rt); + if (rt == -1) return; + } - rt = tcp_closed_routes[tev->reason]; - LM_DBG("event reason id: %d rt: %d\n", tev->reason, rt); - if (rt == -1) return; - - if (faked_msg_init() < 0) - { + if (faked_msg_init() < 0) { LM_ERR("faked_msg_init() failed\n"); return; } @@ -228,7 +260,18 @@ static void tcpops_tcp_closed_run_route(tcp_closed_event_info_t *tev) backup_rt = get_route_type(); set_route_type(EVENT_ROUTE); init_run_actions_ctx(&ctx); - run_top_route(event_rt.rlist[rt], fmsg, 0); + if(keng == NULL) { + run_top_route(event_rt.rlist[rt], fmsg, 0); + } else { + if(tev->reason==TCP_CLOSED_TIMEOUT) { + evname = &tcpops_evrt_timeout; + } else if(tev->reason==TCP_CLOSED_RESET) { + evname = &tcpops_evrt_reset; + } else { + evname = &tcpops_evrt_closed; + } + sr_kemi_route(keng, fmsg, EVENT_ROUTE, &tcpops_event_callback, evname); + } set_route_type(backup_rt); } diff --git a/src/modules/tcpops/tcpops.h b/src/modules/tcpops/tcpops.h index 11cfa1100..581e8dcda 100644 --- a/src/modules/tcpops/tcpops.h +++ b/src/modules/tcpops/tcpops.h @@ -36,5 +36,6 @@ int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int close int tcpops_keepalive_disable(int fd, int closefd); int tcpops_set_connection_lifetime(struct tcp_connection* con, int time); int tcpops_handle_tcp_closed(sr_event_param_t *evp); +void tcpops_init_evroutes(void); #endif /* _TCPOPS_H_ */ diff --git a/src/modules/tcpops/tcpops_mod.c b/src/modules/tcpops/tcpops_mod.c index 303dbf055..e5ac55d66 100644 --- a/src/modules/tcpops/tcpops_mod.c +++ b/src/modules/tcpops/tcpops_mod.c @@ -33,6 +33,8 @@ #include "../../core/globals.h" #include "../../core/sr_module.h" #include "../../core/tcp_options.h" +#include "../../core/resolve.h" +#include "../../core/lvalue.h" #include "../../core/dprint.h" #include "../../core/mod_fix.h" #include "../../core/events.h" @@ -58,9 +60,10 @@ static int w_tcpops_enable_closed_event1(sip_msg_t* msg, char* con, char* p2); static int w_tcpops_enable_closed_event0(sip_msg_t* msg, char* p1, char* p2); static int w_tcp_conid_state(sip_msg_t* msg, char* con, char *p2); static int w_tcp_conid_alive(sip_msg_t* msg, char* con, char *p2); - +static int w_tcp_get_conid(sip_msg_t* msg, char *paddr, char *pvn); static int fixup_numpv(void** param, int param_no); +str tcpops_event_callback = STR_NULL; static cmd_export_t cmds[]={ {"tcp_keepalive_enable", (cmd_function)w_tcp_keepalive_enable4, 4, @@ -81,6 +84,8 @@ static cmd_export_t cmds[]={ 0, 0, REQUEST_ROUTE|ONREPLY_ROUTE}, {"tcp_conid_state", (cmd_function)w_tcp_conid_state, 1, fixup_numpv, 0, ANY_ROUTE}, + {"tcp_get_conid", (cmd_function)w_tcp_get_conid, 2, + fixup_spve_pvar, fixup_free_spve_pvar, ANY_ROUTE}, {"tcp_conid_alive", (cmd_function)w_tcp_conid_alive, 1, fixup_numpv, 0, ANY_ROUTE}, {0, 0, 0, 0, 0, 0} @@ -88,24 +93,23 @@ static cmd_export_t cmds[]={ static param_export_t params[] = { {"closed_event", PARAM_INT, &tcp_closed_event}, + {"event_callback", PARAM_STR, &tcpops_event_callback}, {0, 0, 0} }; struct module_exports exports = { - "tcpops", + "tcpops", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ cmds, /* exported functions to config */ params, /* exported parameters to config */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - mod_destroy, /* destroy function */ - child_init /* per child init function */ + 0, /* RPC method exports */ + 0, /* exported pseudo-variables */ + 0, /* response function */ + mod_init, /* module initialization function */ + child_init, /* per child init function */ + mod_destroy /* destroy function */ }; @@ -130,10 +134,7 @@ static int mod_init(void) return -1; } - /* get event routes */ - tcp_closed_routes[TCP_CLOSED_EOF] = route_get(&event_rt, "tcp:closed"); - tcp_closed_routes[TCP_CLOSED_TIMEOUT] = route_get(&event_rt, "tcp:timeout"); - tcp_closed_routes[TCP_CLOSED_RESET] = route_get(&event_rt, "tcp:reset"); + tcpops_init_evroutes(); } return 0; @@ -513,6 +514,94 @@ static int fixup_numpv(void** param, int param_no) return fixup_igp_null(param, 1); } +/** + * + */ +static int ki_tcp_get_conid_helper(sip_msg_t* msg, str *saddr, pv_spec_t *pvs) +{ + int conid = 0; + sip_uri_t uaddr, *u; + dest_info_t dst; + char *p; + int ret; + ticks_t clifetime; + tcp_connection_t *c; + ip_addr_t ip; + int port; + pv_value_t val; + + if(pvs->setf==NULL) { + LM_ERR("output variable is read only\n"); + return -1; + } + + init_dest_info(&dst); + + u = &uaddr; + u->port_no = 5060; + u->host = *saddr; + /* detect ipv6 */ + p = memchr(saddr->s, ']', saddr->len); + if (p) { + p++; + p = memchr(p, ':', saddr->s + saddr->len - p); + } else { + p = memchr(saddr->s, ':', saddr->len); + } + if (p) { + u->host.len = p - saddr->s; + p++; + u->port_no = str2s(p, saddr->len - (p - saddr->s), NULL); + } + + ret = sip_hostport2su(&dst.to, &u->host, u->port_no, &dst.proto); + if(ret!=0) { + LM_ERR("failed to resolve [%.*s]\n", u->host.len, ZSW(u->host.s)); + return E_BUG; + } + + dst.proto = PROTO_TCP; + dst.id = 0; + clifetime = cfg_get(tcp, tcp_cfg, con_lifetime); + su2ip_addr(&ip, &dst.to); + port = su_getport(&dst.to); + c = tcpconn_get(dst.id, &ip, port, NULL, clifetime); + + if (unlikely(c==0)) { + goto setvalue; + } + conid = c->id; + tcpconn_put(c); + +setvalue: + memset(&val, 0, sizeof(pv_value_t)); + val.ri = conid; + val.flags = PV_VAL_INT; + if(pvs->setf(msg, &pvs->pvp, (int)EQ_T, &val)<0) { + LM_ERR("failed to set the output var\n"); + return -1; + } + if(conid==0) { + return -1; + } + return 1; +} + +/** + * + */ +static int w_tcp_get_conid(sip_msg_t* msg, char *paddr, char *pvn) +{ + str saddr; + + if(fixup_get_svalue(msg, (gparam_t*)paddr, &saddr)<0) { + LM_ERR("failed to get address parameter\n"); + return -1; + } + + return ki_tcp_get_conid_helper(msg, &saddr, (pv_spec_t*)pvn); +} + /** * */ diff --git a/src/modules/textops/Makefile b/src/modules/textops/Makefile index 80e29304b..77a35207c 100644 --- a/src/modules/textops/Makefile +++ b/src/modules/textops/Makefile @@ -9,7 +9,5 @@ auto_gen= NAME=textops.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/textops/README b/src/modules/textops/README index 309a76643..c8a4670a0 100644 --- a/src/modules/textops/README +++ b/src/modules/textops/README @@ -52,43 +52,51 @@ Ovidiu Sas 4.5. search_append_body(re, txt) 4.6. replace(re, txt) 4.7. replace_body(re, txt) - 4.8. replace_all(re, txt) - 4.9. replace_body_all(re, txt) - 4.10. replace_body_atonce(re, txt) - 4.11. subst('/re/repl/flags') - 4.12. subst_uri('/re/repl/flags') - 4.13. subst_user('/re/repl/flags') - 4.14. subst_body('/re/repl/flags') - 4.15. subst_hf(hf, subexp, flags) - 4.16. set_body(txt,content_type) - 4.17. set_reply_body(txt,content_type) - 4.18. filter_body(content_type) - 4.19. append_to_reply(txt) - 4.20. append_hf(txt[, hdr]) - 4.21. insert_hf(txt[, hdr]) - 4.22. append_urihf(prefix, suffix) - 4.23. is_present_hf(hf_name) - 4.24. is_present_hf_re(hf_name_re) - 4.25. append_time() - 4.26. append_time_to_request() - 4.27. is_method(name) - 4.28. remove_hf(hname) - 4.29. remove_hf_re(re) - 4.30. remove_hf_exp(expmatch, expskip) - 4.31. has_body(), has_body(mime) - 4.32. is_audio_on_hold() - 4.33. is_privacy(privacy_type) - 4.34. in_list(subject, list, separator) - 4.35. cmp_str(str1, str2) - 4.36. cmp_istr(str1, str2) - 4.37. starts_with(str1, str2) - 4.38. set_body_multipart([txt,content_type][,boundary]) - 4.39. append_body_part(txt,content_type[, + 4.8. replace_hdrs(re, txt) + 4.9. replace_all(re, txt) + 4.10. replace_body_all(re, txt) + 4.11. replace_body_atonce(re, txt) + 4.12. replace_str(match, repl, mode) + 4.13. replace_body_str(match, repl, mode) + 4.14. replace_hdrs_str(match, repl, mode) + 4.15. subst('/re/repl/flags') + 4.16. subst_uri('/re/repl/flags') + 4.17. subst_user('/re/repl/flags') + 4.18. subst_body('/re/repl/flags') + 4.19. subst_hf(hf, subexp, flags) + 4.20. set_body(txt,content_type) + 4.21. set_reply_body(txt,content_type) + 4.22. filter_body(content_type) + 4.23. append_to_reply(txt) + 4.24. append_hf(txt[, hdr]) + 4.25. insert_hf(txt[, hdr]) + 4.26. append_urihf(prefix, suffix) + 4.27. is_present_hf(hf_name) + 4.28. is_present_hf_re(hf_name_re) + 4.29. append_time() + 4.30. append_time_to_request() + 4.31. is_method(name) + 4.32. remove_hf(hname) + 4.33. remove_hf_re(re) + 4.34. remove_hf_exp(expmatch, expskip) + 4.35. has_body(), has_body(mime) + 4.36. is_audio_on_hold() + 4.37. is_privacy(privacy_type) + 4.38. in_list(subject, list, separator) + 4.39. in_list_prefix(subject, list, separator) + 4.40. cmp_str(str1, str2) + 4.41. cmp_istr(str1, str2) + 4.42. starts_with(str1, str2) + 4.43. set_body_multipart([txt,content_type][,boundary]) + 4.44. append_body_part(txt,content_type[, content_disposition]) - 4.40. get_body_part(content_type, opv) - 4.41. get_body_part_raw(content_type, opv) - 4.42. remove_body_part(content_type) + 4.45. append_body_part_hex(txt,content_type[, + content_disposition]) + + 4.46. get_body_part(content_type, opv) + 4.47. get_body_part_raw(content_type, opv) + 4.48. remove_body_part(content_type) 2. Developer Guide @@ -105,41 +113,48 @@ Ovidiu Sas 1.5. search_append_body usage 1.6. replace usage 1.7. replace_body usage - 1.8. replace_all usage - 1.9. replace_body_all usage - 1.10. replace_body_atonce usage - 1.11. subst usage - 1.12. subst_uri usage - 1.13. subst usage - 1.14. subst_body usage - 1.15. subst_hf usage - 1.16. set_body usage - 1.17. set_reply_body usage - 1.18. filter_body usage - 1.19. append_to_reply usage - 1.20. append_hf usage - 1.21. insert_hf usage - 1.22. append_urihf usage - 1.23. is_present_hf usage - 1.24. is_present_hf_re usage - 1.25. append_time usage - 1.26. append_time_to_request usage - 1.27. is_method usage - 1.28. remove_hf usage - 1.29. remove_hf_re usage - 1.30. remove_hf_exp usage - 1.31. has_body usage - 1.32. is_audio_on_hold usage - 1.33. is_privacy usage - 1.34. in_list() usage - 1.35. cmp_str usage - 1.36. cmp_str usage - 1.37. starts_with usage - 1.38. set_body_multipart usage - 1.39. append_body_part usage - 1.40. get_body_part usage - 1.41. get_body_part_raw usage - 1.42. remove_body_part usage + 1.8. replace_hdrs usage + 1.9. replace_all usage + 1.10. replace_body_all usage + 1.11. replace_body_atonce usage + 1.12. replace_str usage + 1.13. replace_body_str usage + 1.14. replace_hdrs_str usage + 1.15. subst usage + 1.16. subst_uri usage + 1.17. subst usage + 1.18. subst_body usage + 1.19. subst_hf usage + 1.20. set_body usage + 1.21. set_reply_body usage + 1.22. filter_body usage + 1.23. append_to_reply usage + 1.24. append_hf usage + 1.25. insert_hf usage + 1.26. append_urihf usage + 1.27. is_present_hf usage + 1.28. is_present_hf_re usage + 1.29. append_time usage + 1.30. append_time_to_request usage + 1.31. is_method usage + 1.32. remove_hf usage + 1.33. remove_hf_re usage + 1.34. remove_hf_exp usage + 1.35. has_body usage + 1.36. is_audio_on_hold usage + 1.37. is_privacy usage + 1.38. in_list() usage + 1.39. in_list() usage + 1.40. cmp_str usage + 1.41. cmp_str usage + 1.42. starts_with usage + 1.43. set_body_multipart usage + 1.44. append_body_part usage + 1.45. append_body_part with headers + 1.46. append_body_part_hex usage + 1.47. get_body_part usage + 1.48. get_body_part_raw usage + 1.49. remove_body_part usage Chapter 1. Admin Guide @@ -161,41 +176,49 @@ Chapter 1. Admin Guide 4.5. search_append_body(re, txt) 4.6. replace(re, txt) 4.7. replace_body(re, txt) - 4.8. replace_all(re, txt) - 4.9. replace_body_all(re, txt) - 4.10. replace_body_atonce(re, txt) - 4.11. subst('/re/repl/flags') - 4.12. subst_uri('/re/repl/flags') - 4.13. subst_user('/re/repl/flags') - 4.14. subst_body('/re/repl/flags') - 4.15. subst_hf(hf, subexp, flags) - 4.16. set_body(txt,content_type) - 4.17. set_reply_body(txt,content_type) - 4.18. filter_body(content_type) - 4.19. append_to_reply(txt) - 4.20. append_hf(txt[, hdr]) - 4.21. insert_hf(txt[, hdr]) - 4.22. append_urihf(prefix, suffix) - 4.23. is_present_hf(hf_name) - 4.24. is_present_hf_re(hf_name_re) - 4.25. append_time() - 4.26. append_time_to_request() - 4.27. is_method(name) - 4.28. remove_hf(hname) - 4.29. remove_hf_re(re) - 4.30. remove_hf_exp(expmatch, expskip) - 4.31. has_body(), has_body(mime) - 4.32. is_audio_on_hold() - 4.33. is_privacy(privacy_type) - 4.34. in_list(subject, list, separator) - 4.35. cmp_str(str1, str2) - 4.36. cmp_istr(str1, str2) - 4.37. starts_with(str1, str2) - 4.38. set_body_multipart([txt,content_type][,boundary]) - 4.39. append_body_part(txt,content_type[, content_disposition]) - 4.40. get_body_part(content_type, opv) - 4.41. get_body_part_raw(content_type, opv) - 4.42. remove_body_part(content_type) + 4.8. replace_hdrs(re, txt) + 4.9. replace_all(re, txt) + 4.10. replace_body_all(re, txt) + 4.11. replace_body_atonce(re, txt) + 4.12. replace_str(match, repl, mode) + 4.13. replace_body_str(match, repl, mode) + 4.14. replace_hdrs_str(match, repl, mode) + 4.15. subst('/re/repl/flags') + 4.16. subst_uri('/re/repl/flags') + 4.17. subst_user('/re/repl/flags') + 4.18. subst_body('/re/repl/flags') + 4.19. subst_hf(hf, subexp, flags) + 4.20. set_body(txt,content_type) + 4.21. set_reply_body(txt,content_type) + 4.22. filter_body(content_type) + 4.23. append_to_reply(txt) + 4.24. append_hf(txt[, hdr]) + 4.25. insert_hf(txt[, hdr]) + 4.26. append_urihf(prefix, suffix) + 4.27. is_present_hf(hf_name) + 4.28. is_present_hf_re(hf_name_re) + 4.29. append_time() + 4.30. append_time_to_request() + 4.31. is_method(name) + 4.32. remove_hf(hname) + 4.33. remove_hf_re(re) + 4.34. remove_hf_exp(expmatch, expskip) + 4.35. has_body(), has_body(mime) + 4.36. is_audio_on_hold() + 4.37. is_privacy(privacy_type) + 4.38. in_list(subject, list, separator) + 4.39. in_list_prefix(subject, list, separator) + 4.40. cmp_str(str1, str2) + 4.41. cmp_istr(str1, str2) + 4.42. starts_with(str1, str2) + 4.43. set_body_multipart([txt,content_type][,boundary]) + 4.44. append_body_part(txt,content_type[, content_disposition]) + 4.45. append_body_part_hex(txt,content_type[, + content_disposition]) + + 4.46. get_body_part(content_type, opv) + 4.47. get_body_part_raw(content_type, opv) + 4.48. remove_body_part(content_type) 1. Overview @@ -241,41 +264,47 @@ From: medabeda 4.5. search_append_body(re, txt) 4.6. replace(re, txt) 4.7. replace_body(re, txt) - 4.8. replace_all(re, txt) - 4.9. replace_body_all(re, txt) - 4.10. replace_body_atonce(re, txt) - 4.11. subst('/re/repl/flags') - 4.12. subst_uri('/re/repl/flags') - 4.13. subst_user('/re/repl/flags') - 4.14. subst_body('/re/repl/flags') - 4.15. subst_hf(hf, subexp, flags) - 4.16. set_body(txt,content_type) - 4.17. set_reply_body(txt,content_type) - 4.18. filter_body(content_type) - 4.19. append_to_reply(txt) - 4.20. append_hf(txt[, hdr]) - 4.21. insert_hf(txt[, hdr]) - 4.22. append_urihf(prefix, suffix) - 4.23. is_present_hf(hf_name) - 4.24. is_present_hf_re(hf_name_re) - 4.25. append_time() - 4.26. append_time_to_request() - 4.27. is_method(name) - 4.28. remove_hf(hname) - 4.29. remove_hf_re(re) - 4.30. remove_hf_exp(expmatch, expskip) - 4.31. has_body(), has_body(mime) - 4.32. is_audio_on_hold() - 4.33. is_privacy(privacy_type) - 4.34. in_list(subject, list, separator) - 4.35. cmp_str(str1, str2) - 4.36. cmp_istr(str1, str2) - 4.37. starts_with(str1, str2) - 4.38. set_body_multipart([txt,content_type][,boundary]) - 4.39. append_body_part(txt,content_type[, content_disposition]) - 4.40. get_body_part(content_type, opv) - 4.41. get_body_part_raw(content_type, opv) - 4.42. remove_body_part(content_type) + 4.8. replace_hdrs(re, txt) + 4.9. replace_all(re, txt) + 4.10. replace_body_all(re, txt) + 4.11. replace_body_atonce(re, txt) + 4.12. replace_str(match, repl, mode) + 4.13. replace_body_str(match, repl, mode) + 4.14. replace_hdrs_str(match, repl, mode) + 4.15. subst('/re/repl/flags') + 4.16. subst_uri('/re/repl/flags') + 4.17. subst_user('/re/repl/flags') + 4.18. subst_body('/re/repl/flags') + 4.19. subst_hf(hf, subexp, flags) + 4.20. set_body(txt,content_type) + 4.21. set_reply_body(txt,content_type) + 4.22. filter_body(content_type) + 4.23. append_to_reply(txt) + 4.24. append_hf(txt[, hdr]) + 4.25. insert_hf(txt[, hdr]) + 4.26. append_urihf(prefix, suffix) + 4.27. is_present_hf(hf_name) + 4.28. is_present_hf_re(hf_name_re) + 4.29. append_time() + 4.30. append_time_to_request() + 4.31. is_method(name) + 4.32. remove_hf(hname) + 4.33. remove_hf_re(re) + 4.34. remove_hf_exp(expmatch, expskip) + 4.35. has_body(), has_body(mime) + 4.36. is_audio_on_hold() + 4.37. is_privacy(privacy_type) + 4.38. in_list(subject, list, separator) + 4.39. in_list_prefix(subject, list, separator) + 4.40. cmp_str(str1, str2) + 4.41. cmp_istr(str1, str2) + 4.42. starts_with(str1, str2) + 4.43. set_body_multipart([txt,content_type][,boundary]) + 4.44. append_body_part(txt,content_type[, content_disposition]) + 4.45. append_body_part_hex(txt,content_type[, content_disposition]) + 4.46. get_body_part(content_type, opv) + 4.47. get_body_part_raw(content_type, opv) + 4.48. remove_body_part(content_type) 4.1. search(re) @@ -392,7 +421,23 @@ replace("openser", "Kamailio SIP Proxy"); replace_body("openser", "Kamailio SIP Proxy"); ... -4.8. replace_all(re, txt) +4.8. replace_hdrs(re, txt) + + Replaces the first occurrence of re in the SIP headers of the message + with txt. + + Meaning of the parameters is as follows: + * re - Regular expression. + * txt - String. + + This function can be used from ANY_ROUTE. + + Example 1.8. replace_hdrs usage +... +replace_hdrs("Kamailio", "Kamailio SIP Proxy"); +... + +4.9. replace_all(re, txt) Replaces all occurrence of re with txt. @@ -403,12 +448,12 @@ replace_body("openser", "Kamailio SIP Proxy"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.8. replace_all usage + Example 1.9. replace_all usage ... replace_all("openser", "Kamailio SIP Proxy"); ... -4.9. replace_body_all(re, txt) +4.10. replace_body_all(re, txt) Replaces all occurrence of re in the body of the message with txt. Matching is done on a per-line basis. @@ -420,12 +465,12 @@ replace_all("openser", "Kamailio SIP Proxy"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.9. replace_body_all usage + Example 1.10. replace_body_all usage ... replace_body_all("openser", "Kamailio SIP Proxy"); ... -4.10. replace_body_atonce(re, txt) +4.11. replace_body_atonce(re, txt) Replaces all occurrence of re in the body of the message with txt. Matching is done over the whole body. @@ -437,14 +482,67 @@ replace_body_all("openser", "Kamailio SIP Proxy"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.10. replace_body_atonce usage + Example 1.11. replace_body_atonce usage ... # strip the whole body from the message: if(has_body() && replace_body_atonce("^.+$", "")) remove_hf("Content-Type"); ... -4.11. subst('/re/repl/flags') +4.12. replace_str(match, repl, mode) + + Replaces the first or all occurrence of 'match' with 'repl' by doing + string comparison for matching. It is applied over headers and message + body (not over the first line). + + Meaning of the parameters is as follows: + * match - string to be matched. + * repl - string to be used as replacement. + * mode - 'f' - replace only first match; 'a' - replace all matches. + + This function can be used from ANY_ROUTE. + + Example 1.12. replace_str usage +... +replace_str("Kamailio", "Kamailio SIP Proxy", "a"); +... + +4.13. replace_body_str(match, repl, mode) + + Replaces the first or all occurrence of 'match' with 'repl' by doing + string comparison for matching. It is applied over the message body. + + Meaning of the parameters is as follows: + * match - string to be matched. + * repl - string to be used as replacement. + * mode - 'f' - replace only first match; 'a' - replace all matches. + + This function can be used from ANY_ROUTE. + + Example 1.13. replace_body_str usage +... +replace_body_str("Kamailio", "Kamailio SIP Proxy", "a"); +... + +4.14. replace_hdrs_str(match, repl, mode) + + Replaces the first or all occurrence of 'match' with 'repl' by doing + string comparison for matching. It is applied over the part with + headers of the SIP message. + + Meaning of the parameters is as follows: + * match - string to be matched. + * repl - string to be used as replacement. + * mode - 'f' - replace only first match; 'a' - replace all matches. + + This function can be used from ANY_ROUTE. + + Example 1.14. replace_hdrs_str usage +... +replace_hdrs_str("Kamailio", "Kamailio SIP Proxy", "a"); +... + +4.15. subst('/re/repl/flags') Replaces re with repl (sed or perl like). @@ -452,14 +550,14 @@ if(has_body() && replace_body_atonce("^.+$", "")) * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion - 'repl' - is replacement string - may contain pseudo-varibales + 're' - is regular expression + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.11. subst usage + Example 1.15. subst usage ... # replace the uri in to: with the message uri (just an example) if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1\u\2/ig') ) {}; @@ -470,7 +568,7 @@ if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1$avp(sip_address)\2/ig') ) ... -4.12. subst_uri('/re/repl/flags') +4.16. subst_uri('/re/repl/flags') Runs the re substitution on the message uri (like subst but works only on the uri) @@ -479,14 +577,14 @@ if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1$avp(sip_address)\2/ig') ) * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion - 'repl' - is replacement string - may contain pseudo-varibales + 're' - is regular expression + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.12. subst_uri usage + Example 1.16. subst_uri usage ... # adds 3463 prefix to numeric uris, and save the original uri (\0 match) # as a parameter: orig_uri (just an example) @@ -498,7 +596,7 @@ if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)\1@\2;orig_uri=\0/i')){$ ... -4.13. subst_user('/re/repl/flags') +4.17. subst_user('/re/repl/flags') Runs the re substitution on the message uri (like subst_uri but works only on the user portion of the uri) @@ -507,14 +605,14 @@ if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)\1@\2;orig_uri=\0/i')){$ * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion - 'repl' - is replacement string - may contain pseudo-varibales + 're' - is regular expression + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.13. subst usage + Example 1.17. subst usage ... # adds 3463 prefix to uris ending with 3642 (just an example) if (subst_user('/3642$/36423463/')){$ @@ -525,7 +623,7 @@ if (subst_user('/(.*)3642$/$avp(user_prefix)\13642/')){$ ... -4.14. subst_body('/re/repl/flags') +4.18. subst_body('/re/repl/flags') Replaces re with repl (sed or perl like) in the body of the message. @@ -533,20 +631,20 @@ if (subst_user('/(.*)3642$/$avp(user_prefix)\13642/')){$ * '/re/repl/flags' - sed like regular expression. flags can be a combination of i (case insensitive), g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion - 'repl' - is replacement string - may contain pseudo-varibales + 're' - is regular expression + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.14. subst_body usage + Example 1.18. subst_body usage ... if ( subst_body('/^o=(.*) /o=$fU /') ) {}; ... -4.15. subst_hf(hf, subexp, flags) +4.19. subst_hf(hf, subexp, flags) Perl-like substitutions in the body of a header field. @@ -561,12 +659,12 @@ if ( subst_body('/^o=(.*) /o=$fU /') ) {}; This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.15. subst_hf usage + Example 1.19. subst_hf usage ... if ( subst_hf("From", "/:test@/:best@/", "a") ) { /*....*/ }; ... -4.16. set_body(txt,content_type) +4.20. set_body(txt,content_type) Set body to a SIP message. @@ -578,12 +676,12 @@ if ( subst_hf("From", "/:test@/:best@/", "a") ) { /*....*/ }; This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.16. set_body usage + Example 1.20. set_body usage ... set_body("test", "text/plain"); ... -4.17. set_reply_body(txt,content_type) +4.21. set_reply_body(txt,content_type) Set body to a SIP reply to be generated by Kamailio. @@ -595,12 +693,12 @@ set_body("test", "text/plain"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.17. set_reply_body usage + Example 1.21. set_reply_body usage ... set_reply_body("test", "text/plain"); ... -4.18. filter_body(content_type) +4.22. filter_body(content_type) Filters multipart/mixed body by leaving out all other body parts except the first body part of given type. @@ -611,7 +709,7 @@ set_reply_body("test", "text/plain"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.18. filter_body usage + Example 1.22. filter_body usage ... if (has_body("multipart/mixed")) { if (filter_body("application/sdp") { @@ -623,7 +721,7 @@ if (has_body("multipart/mixed")) { } ... -4.19. append_to_reply(txt) +4.23. append_to_reply(txt) Append txt as header to the reply. @@ -633,13 +731,13 @@ if (has_body("multipart/mixed")) { This function can be used from REQUEST_ROUTE, BRANCH_ROUTE, FAILURE_ROUTE, ERROR_ROUTE. - Example 1.19. append_to_reply usage + Example 1.23. append_to_reply usage ... append_to_reply("Foo: bar\r\n"); append_to_reply("Foo: $rm at $Ts\r\n"); ... -4.20. append_hf(txt[, hdr]) +4.24. append_hf(txt[, hdr]) Appends 'txt' as header after first header field or after last 'hdr' header field. @@ -652,13 +750,13 @@ append_to_reply("Foo: $rm at $Ts\r\n"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.20. append_hf usage + Example 1.24. append_hf usage ... append_hf("P-hint: VOICEMAIL\r\n"); append_hf("From-username: $fU\r\n", "Call-ID"); ... -4.21. insert_hf(txt[, hdr]) +4.25. insert_hf(txt[, hdr]) Inserts 'txt' as header before the first header field or before first 'hdr' header field if 'hdr' is given. @@ -671,7 +769,7 @@ append_hf("From-username: $fU\r\n", "Call-ID"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.21. insert_hf usage + Example 1.25. insert_hf usage ... insert_hf("P-hint: VOICEMAIL\r\n"); insert_hf("To-username: $tU\r\n"); @@ -679,7 +777,7 @@ insert_hf("P-hint: VOICEMAIL\r\n", "Call-ID"); insert_hf("To-username: $tU\r\n", "Call-ID"); ... -4.22. append_urihf(prefix, suffix) +4.26. append_urihf(prefix, suffix) Append header field name with original Request-URI in middle. @@ -690,12 +788,12 @@ insert_hf("To-username: $tU\r\n", "Call-ID"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.22. append_urihf usage + Example 1.26. append_urihf usage ... append_urihf("CC-Diversion: ", "\r\n"); ... -4.23. is_present_hf(hf_name) +4.27. is_present_hf(hf_name) Return true if a header field is present in message. @@ -710,12 +808,12 @@ Note This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.23. is_present_hf usage + Example 1.27. is_present_hf usage ... if (is_present_hf("From")) log(1, "From HF Present"); ... -4.24. is_present_hf_re(hf_name_re) +4.28. is_present_hf_re(hf_name_re) Return true if a header field whose name matches regular expression 'hf_name_re' is present in message. @@ -726,12 +824,12 @@ if (is_present_hf("From")) log(1, "From HF Present"); This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.24. is_present_hf_re usage + Example 1.28. is_present_hf_re usage ... if (is_present_hf_re("^P-")) log(1, "There are headers starting with P-\n"); ... -4.25. append_time() +4.29. append_time() Adds a time header to the reply of the request. You must use it before functions that are likely to send a reply, e.g., save() from @@ -745,17 +843,17 @@ if (is_present_hf_re("^P-")) log(1, "There are headers starting with P-\n"); * %M minutes * %S seconds - Return true if a header was succesfully appended. + Return true if a header was successfully appended. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.25. append_time usage + Example 1.29. append_time usage ... append_time(); ... -4.26. append_time_to_request() +4.30. append_time_to_request() Adds a time header to the request. Header format is: “Date: %a, %d %b %Y %H:%M:%S GMTâ€, with the legend: @@ -767,18 +865,18 @@ append_time(); * %M minutes * %S seconds - Return true if a header was succesfully appended. + Return true if a header was successfully appended. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.26. append_time_to_request usage + Example 1.30. append_time_to_request usage ... if(!is_present_hf("Date")) append_time_to_request(); ... -4.27. is_method(name) +4.31. is_method(name) Check if the method of the message matches the name. If name is a known method (invite, cancel, ack, bye, options, info, update, register, @@ -803,7 +901,7 @@ if(!is_present_hf("Date")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, and BRANCH_ROUTE. - Example 1.27. is_method usage + Example 1.31. is_method usage ... if(is_method("INVITE")) { @@ -815,7 +913,7 @@ if(is_method("OPTION|UPDATE")) } ... -4.28. remove_hf(hname) +4.32. remove_hf(hname) Remove from message all headers with name “hnameâ€. Header matching is case-insensitive. Matches and removes also the compact header forms. @@ -828,7 +926,7 @@ if(is_method("OPTION|UPDATE")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.28. remove_hf usage + Example 1.32. remove_hf usage ... if(remove_hf("User-Agent")) { @@ -840,7 +938,7 @@ remove_hf("Contact") remove_hf("m") ... -4.29. remove_hf_re(re) +4.33. remove_hf_re(re) Remove from message all headers with name matching regular expression “re†@@ -852,7 +950,7 @@ remove_hf("m") This function can be used from ANY_ROUTE. - Example 1.29. remove_hf_re usage + Example 1.33. remove_hf_re usage ... if(remove_hf_re("^P-")) { @@ -860,7 +958,7 @@ if(remove_hf_re("^P-")) } ... -4.30. remove_hf_exp(expmatch, expskip) +4.34. remove_hf_exp(expmatch, expskip) Remove from message all headers with name matching regular expression “expmatchâ€, but not matching regular expression “expskipâ€. @@ -875,7 +973,7 @@ if(remove_hf_re("^P-")) This function can be used from ANY_ROUTE. - Example 1.30. remove_hf_exp usage + Example 1.34. remove_hf_exp usage ... if(remove_hf_exp("^P-", "^P-Keep-")) { @@ -884,7 +982,7 @@ if(remove_hf_exp("^P-", "^P-Keep-")) } ... -4.31. has_body(), has_body(mime) +4.35. has_body(), has_body(mime) The function returns true if the SIP message has a body attached. The checked includes also the “Content-Length†header presence and value. @@ -899,7 +997,7 @@ if(remove_hf_exp("^P-", "^P-Keep-")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.31. has_body usage + Example 1.35. has_body usage ... if(has_body("application/sdp")) { @@ -907,7 +1005,7 @@ if(has_body("application/sdp")) } ... -4.32. is_audio_on_hold() +4.36. is_audio_on_hold() The function returns true if the SIP message has a body attached and at least one audio stream in on hold. The return code of the function @@ -918,7 +1016,7 @@ if(has_body("application/sdp")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.32. is_audio_on_hold usage + Example 1.36. is_audio_on_hold usage ... if(is_audio_on_hold()) { @@ -934,7 +1032,7 @@ if(is_audio_on_hold()) } ... -4.33. is_privacy(privacy_type) +4.37. is_privacy(privacy_type) The function returns true if the SIP message has a Privacy header field that includes the given privacy_type among its privacy values. See @@ -944,7 +1042,7 @@ if(is_audio_on_hold()) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.33. is_privacy usage + Example 1.37. is_privacy usage ... if(is_privacy("id")) { @@ -952,7 +1050,7 @@ if(is_privacy("id")) } ... -4.34. in_list(subject, list, separator) +4.38. in_list(subject, list, separator) Function checks if subject string is found in list string where list items are separated by separator string. Subject and list strings may @@ -961,7 +1059,7 @@ if(is_privacy("id")) Function can be used from all kinds of routes. - Example 1.34. in_list() usage + Example 1.38. in_list() usage ... $var(subject) = "fi"; $var(list) = "dk,fi,no,se"; @@ -970,7 +1068,25 @@ if (in_list("$var(subject)", "$var(list)", ",")) { } ... -4.35. cmp_str(str1, str2) +4.39. in_list_prefix(subject, list, separator) + + Function checks if any element in list string is a prefix for subject + string where list items are separated by separator string. Subject and + list strings may contain pseudo variables. Separator string needs to be + one character long. Returns 1 if subject is found and -1 otherwise. + + Function can be used from all kinds of routes. + + Example 1.39. in_list() usage +... +$var(subject) = "final"; +$var(list) = "dk,fi,no,se"; +if (in_list_prefix("$var(subject)", "$var(list)", ",")) { + xlog("L_INFO", "prefix for subject is found in list\n"); +} +... + +4.40. cmp_str(str1, str2) The function returns true if the two parameters matches as string case sensitive comparison. @@ -978,7 +1094,7 @@ if (in_list("$var(subject)", "$var(list)", ",")) { This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.35. cmp_str usage + Example 1.40. cmp_str usage ... if(cmp_str("$rU", "kamailio")) { @@ -986,7 +1102,7 @@ if(cmp_str("$rU", "kamailio")) } ... -4.36. cmp_istr(str1, str2) +4.41. cmp_istr(str1, str2) The function returns true if the two parameters matches as string case insensitive comparison. @@ -994,7 +1110,7 @@ if(cmp_str("$rU", "kamailio")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.36. cmp_str usage + Example 1.41. cmp_str usage ... if(cmp_istr("$rU@you", "kamailio@YOU")) { @@ -1002,7 +1118,7 @@ if(cmp_istr("$rU@you", "kamailio@YOU")) } ... -4.37. starts_with(str1, str2) +4.42. starts_with(str1, str2) The function returns true if the first string starts with the second string. @@ -1010,7 +1126,7 @@ if(cmp_istr("$rU@you", "kamailio@YOU")) This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE and BRANCH_ROUTE. - Example 1.37. starts_with usage + Example 1.42. starts_with usage ... if (starts_with("$rU", "+358")) { @@ -1018,7 +1134,7 @@ if (starts_with("$rU", "+358")) } ... -4.38. set_body_multipart([txt,content_type][,boundary]) +4.43. set_body_multipart([txt,content_type][,boundary]) Set multipart body to a SIP message. If called with no parameters, will convert present body to multipart. @@ -1034,16 +1150,17 @@ if (starts_with("$rU", "+358")) BRANCH_ROUTE. The core will take care of the last boundary ending "--". Detecting - wich one is the last and fixing the others if needed. + which one is the last and fixing the others if needed. Note: it may be required that msg_apply_changes() from textopsx module has to be executed if there are other operations over the new body. - Example 1.38. set_body_multipart usage + Example 1.43. set_body_multipart usage ... set_body_multipart("test", "text/plain", "delimiter"); msg_apply_changes(); append_body_part(...); +msg_apply_changes(); ... @@ -1061,7 +1178,7 @@ text --delimiter ... -4.39. append_body_part(txt,content_type[, content_disposition]) +4.44. append_body_part(txt,content_type[, content_disposition]) Append a part on multipart body SIP message. Will use "unique-boundary-1" as boundary. @@ -1079,11 +1196,37 @@ text The core will take care of the last boundary ending "--". Detecting wich one is the last and fixing the others if needed. - Example 1.39. append_body_part usage + Note: it may be required that msg_apply_changes() from textopsx module + has to be executed if there are other operations over the new body. + + Example 1.44. append_body_part usage ... -$var(b) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c" +$var(b) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c"; append_body_part("$var(b)", "application/vnd.cirpack.isdn-ext", "signal;handling =required"); +msg_apply_changes(); +... + +# Will append this to the body: + +... +Content-Type: application/vnd.cirpack.isdn-ext +Content-Disposition: signal;handling=required + +7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c + +--unique-boundary-1 +... + + If other headers are wanted to be added for a body part, they can be + appended after the value of the content-type parameter, separated by + `\r\n` (at the very end do not add the '\r\n'). + + Example 1.45. append_body_part with headers +... +$var(b) = ""; +append_body_part("$var(b)", "application/xml\r\nX-Header: xyz"); +msg_apply_changes(); ... # Will append this to the body: @@ -1097,7 +1240,51 @@ Content-Disposition: signal;handling=required --unique-boundary-1 ... -4.40. get_body_part(content_type, opv) +4.45. append_body_part_hex(txt,content_type[, content_disposition]) + + Append a part on multipart body SIP message, with the content provided + in hexa format. Will use "unique-boundary-1" as boundary. + + Meaning of the parameters is as follows: + * txt - content for the multipart body in hexa format. Spaces can be + used between the pairs of hexa digits to make it easier to read in + the config, they are ignored and not added in the body part. The + parameter can include pseudo-variables. + * content_type - value of Content-Type header, can include + pseudo-variables. + * content_disposition - value of Content-Disposition header, can + include pseudo-variables. + + This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, + BRANCH_ROUTE. + + The core will take care of the last boundary ending "--". Detecting + wich one is the last and fixing the others if needed. + + Note: it may be required that msg_apply_changes() from textopsx module + has to be executed if there are other operations over the new body. + + Example 1.46. append_body_part_hex usage +... +$var(b) = "6b 61 6d 61 69 6c 69 6f"; +append_body_part_hex("$var(b)", "application/my-custom-ext"); +msg_apply_changes(); +... + +# Will append this to the body: + +... +Content-Type: application/my-custom-ext + +kamailio + +--unique-boundary-1 +... + + If other headers are wanted to be added for a body part, see the docs + for append_body_part(...) function. + +4.46. get_body_part(content_type, opv) Return the content of a multipart body SIP message, storing it in opv. @@ -1110,12 +1297,12 @@ Content-Disposition: signal;handling=required This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, ONREPLY_ROUTE. - Example 1.40. get_body_part usage + Example 1.47. get_body_part usage ... get_body_part("application/vnd.cirpack.isdn-ext", "$var(pbody)"); ... -4.41. get_body_part_raw(content_type, opv) +4.47. get_body_part_raw(content_type, opv) Return the content of a multipart body SIP message, including headers and boundary string, storing it in opv. @@ -1129,12 +1316,12 @@ get_body_part("application/vnd.cirpack.isdn-ext", "$var(pbody)"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, ONREPLY_ROUTE. - Example 1.41. get_body_part_raw usage + Example 1.48. get_body_part_raw usage ... get_body_part("application/vnd.cirpack.isdn-ext", "$var(hbody)"); ... -4.42. remove_body_part(content_type) +4.48. remove_body_part(content_type) Remove a part on a multipart body SIP message. @@ -1149,9 +1336,13 @@ get_body_part("application/vnd.cirpack.isdn-ext", "$var(hbody)"); The core will take care of the last boundary ending "--". Detecting wich one is the last and fixing the others if needed. - Example 1.42. remove_body_part usage + Note: it may be required that msg_apply_changes() from textopsx module + has to be executed if there are other operations over the new body. + + Example 1.49. remove_body_part usage ... remove_body_part("application/vnd.cirpack.isdn-ext"); +msg_apply_changes(); ... Chapter 2. Developer Guide diff --git a/src/modules/textops/doc/textops_admin.xml b/src/modules/textops/doc/textops_admin.xml index fa9a3eafb..d348ccf6b 100644 --- a/src/modules/textops/doc/textops_admin.xml +++ b/src/modules/textops/doc/textops_admin.xml @@ -301,6 +301,38 @@ replace_body("openser", "&kamailio; SIP Proxy");
+
+ + <function moreinfo="none">replace_hdrs(re, txt)</function> + + + Replaces the first occurrence of re in the SIP headers of the message + with txt. + + Meaning of the parameters is as follows: + + + re - Regular expression. + + + + txt - String. + + + + + This function can be used from ANY_ROUTE. + + + <function>replace_hdrs</function> usage + +... +replace_hdrs("&kamailio;", "&kamailio; SIP Proxy"); +... + + +
+
<function moreinfo="none">replace_all(re, txt)</function> @@ -395,7 +427,120 @@ replace_body_all("openser", "&kamailio; SIP Proxy"); ... # strip the whole body from the message: if(has_body() && replace_body_atonce("^.+$", "")) - remove_hf("Content-Type"); + remove_hf("Content-Type"); +... +</programlisting> + </example> + </section> + + <section id="textops.f.replace_str"> + <title> + <function moreinfo="none">replace_str(match, repl, mode)</function> + + + Replaces the first or all occurrence of 'match' with 'repl' by doing + string comparison for matching. It is applied over headers and message + body (not over the first line). + + Meaning of the parameters is as follows: + + + match - string to be matched. + + + + repl - string to be used as replacement. + + + + mode - 'f' - replace only first match; + 'a' - replace all matches. + + + + + This function can be used from ANY_ROUTE. + + + <function>replace_str</function> usage + +... +replace_str("&kamailio;", "&kamailio; SIP Proxy", "a"); +... + + +
+ +
+ + <function moreinfo="none">replace_body_str(match, repl, mode)</function> + + + Replaces the first or all occurrence of 'match' with 'repl' by doing + string comparison for matching. It is applied over the message body. + + Meaning of the parameters is as follows: + + + match - string to be matched. + + + + repl - string to be used as replacement. + + + + mode - 'f' - replace only first match; + 'a' - replace all matches. + + + + + This function can be used from ANY_ROUTE. + + + <function>replace_body_str</function> usage + +... +replace_body_str("&kamailio;", "&kamailio; SIP Proxy", "a"); +... + + +
+ +
+ + <function moreinfo="none">replace_hdrs_str(match, repl, mode)</function> + + + Replaces the first or all occurrence of 'match' with 'repl' by doing + string comparison for matching. It is applied over the part with headers + of the SIP message. + + Meaning of the parameters is as follows: + + + match - string to be matched. + + + + repl - string to be used as replacement. + + + + mode - 'f' - replace only first match; + 'a' - replace all matches. + + + + + This function can be used from ANY_ROUTE. + + + <function>replace_hdrs_str</function> usage + +... +replace_hdrs_str("&kamailio;", "&kamailio; SIP Proxy", "a"); ... @@ -416,10 +561,10 @@ if(has_body() && replace_body_atonce("^.+$", "")) g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion + 're' - is regular expression - 'repl' - is replacement string - may contain pseudo-varibales + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) @@ -461,10 +606,10 @@ if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1$avp(sip_address)\2/ig') ) g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion + 're' - is regular expression - 'repl' - is replacement string - may contain pseudo-varibales + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) @@ -508,10 +653,10 @@ if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)\1@\2;orig_uri=\0/i')){$ g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion + 're' - is regular expression - 'repl' - is replacement string - may contain pseudo-varibales + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) @@ -553,10 +698,10 @@ if (subst_user('/(.*)3642$/$avp(user_prefix)\13642/')){$ g (global) or s (match newline don't treat it as end of line). - 're' - is regular expresion + 're' - is regular expression - 'repl' - is replacement string - may contain pseudo-varibales + 'repl' - is replacement string - may contain pseudo-variables 'flags' - substitution flags (i - ignore case, g - global) @@ -969,7 +1114,7 @@ if (is_present_hf_re("^P-")) log(1, "There are headers starting with P-\n"); - Return true if a header was succesfully appended. + Return true if a header was successfully appended. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, @@ -1024,7 +1169,7 @@ append_time(); - Return true if a header was succesfully appended. + Return true if a header was successfully appended. This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, @@ -1350,6 +1495,30 @@ if (in_list("$var(subject)", "$var(list)", ",")) {
+
+ + <function moreinfo="none">in_list_prefix(subject, list, separator)</function> + + + Function checks if any element in list string is a prefix for subject string where list items are separated by separator string. Subject and list strings may contain pseudo variables. Separator string needs to be one character long. Returns 1 if subject is found and -1 otherwise. + + + Function can be used from all kinds of routes. + + + <function>in_list()</function> usage + +... +$var(subject) = "final"; +$var(list) = "dk,fi,no,se"; +if (in_list_prefix("$var(subject)", "$var(list)", ",")) { + xlog("L_INFO", "prefix for subject is found in list\n"); +} +... + + +
+
<function moreinfo="none">cmp_str(str1, str2)</function> @@ -1455,7 +1624,7 @@ if (starts_with("$rU", "+358")) This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. </para> <para> - The core will take care of the last boundary ending "--". Detecting wich one is + The core will take care of the last boundary ending "--". Detecting which one is the last and fixing the others if needed. </para> <para> @@ -1469,6 +1638,7 @@ if (starts_with("$rU", "+358")) set_body_multipart("test", "text/plain", "delimiter"); msg_apply_changes(); append_body_part(...); +msg_apply_changes(); ... @@ -1521,12 +1691,43 @@ text The core will take care of the last boundary ending "--". Detecting wich one is the last and fixing the others if needed. </para> + <para> + Note: it may be required that msg_apply_changes() from textopsx module + has to be executed if there are other operations over the new body. + </para> <example> <title><function>append_body_part</function> usage ... -$var(b) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c" +$var(b) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c"; append_body_part("$var(b)", "application/vnd.cirpack.isdn-ext", "signal;handling=required"); +msg_apply_changes(); +... + +# Will append this to the body: + +... +Content-Type: application/vnd.cirpack.isdn-ext +Content-Disposition: signal;handling=required + +7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c + +--unique-boundary-1 +... + + + + If other headers are wanted to be added for a body part, they can be + appended after the value of the content-type parameter, separated by + `\r\n` (at the very end do not add the '\r\n'). + + + <function>append_body_part</function> with headers + +... +$var(b) = "active"; +append_body_part("$var(b)", "application/xml\r\nX-Header: xyz"); +msg_apply_changes(); ... # Will append this to the body: @@ -1543,6 +1744,72 @@ Content-Disposition: signal;handling=required
+
+ + <function moreinfo="none">append_body_part_hex(txt,content_type[, content_disposition])</function> + + + Append a part on multipart body SIP message, with the content provided + in hexa format. Will use "unique-boundary-1" as boundary. + + Meaning of the parameters is as follows: + + + txt - content for the multipart body in + hexa format. Spaces can be used between the pairs of hexa digits + to make it easier to read in the config, they are ignored and + not added in the body part. The parameter can include + pseudo-variables. + + + + content_type - value of Content-Type header, + can include pseudo-variables. + + + + content_disposition - value of Content-Disposition header, + can include pseudo-variables. + + + + + This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. + + + The core will take care of the last boundary ending "--". Detecting wich one is + the last and fixing the others if needed. + + + Note: it may be required that msg_apply_changes() from textopsx module + has to be executed if there are other operations over the new body. + + + <function>append_body_part_hex</function> usage + +... +$var(b) = "6b 61 6d 61 69 6c 69 6f"; +append_body_part_hex("$var(b)", "application/my-custom-ext"); +msg_apply_changes(); +... + +# Will append this to the body: + +... +Content-Type: application/my-custom-ext + +kamailio + +--unique-boundary-1 +... + + + + If other headers are wanted to be added for a body part, see the docs + for append_body_part(...) function. + +
+
<function moreinfo="none">get_body_part(content_type, opv)</function> @@ -1639,11 +1906,16 @@ get_body_part("application/vnd.cirpack.isdn-ext", "$var(hbody)"); The core will take care of the last boundary ending "--". Detecting wich one is the last and fixing the others if needed. </para> + <para> + Note: it may be required that msg_apply_changes() from textopsx module + has to be executed if there are other operations over the new body. + </para> <example> <title><function>remove_body_part</function> usage ... remove_body_part("application/vnd.cirpack.isdn-ext"); +msg_apply_changes(); ... diff --git a/src/modules/textops/textops.c b/src/modules/textops/textops.c index b6ad78d55..ff784642e 100644 --- a/src/modules/textops/textops.c +++ b/src/modules/textops/textops.c @@ -28,7 +28,7 @@ */ /** - * @defgroup Textops Various text operatoins on messages + * @defgroup textops Various text operations on messages * @brief Kamailio textops module */ @@ -88,7 +88,11 @@ MODULE_VERSION static int search_body_f(struct sip_msg*, char*, char*); static int search_hf_f(struct sip_msg*, char*, char*, char*); static int replace_f(struct sip_msg*, char*, char*); +static int replace_str_f(struct sip_msg*, char*, char*, char*); static int replace_body_f(struct sip_msg*, char*, char*); +static int replace_body_str_f(struct sip_msg*, char*, char*, char*); +static int replace_hdrs_f(struct sip_msg*, char*, char*); +static int replace_hdrs_str_f(struct sip_msg*, char*, char*, char*); static int replace_all_f(struct sip_msg*, char*, char*); static int replace_body_all_f(struct sip_msg*, char*, char*); static int replace_body_atonce_f(struct sip_msg*, char*, char*); @@ -116,6 +120,8 @@ static int set_multibody_2(struct sip_msg* msg, char*, char *, char *); static int set_multibody_3(struct sip_msg* msg, char*, char *, char *); static int append_multibody_2(struct sip_msg* msg, char*, char *); static int append_multibody_3(struct sip_msg* msg, char*, char *, char *); +static int append_multibody_hex_2(struct sip_msg* msg, char*, char *); +static int append_multibody_hex_3(struct sip_msg* msg, char*, char *, char *); static int fixup_multibody_f(void** param, int param_no); static int remove_multibody_f(struct sip_msg *msg, char *p1, char *p2); static int get_body_part_raw_f(sip_msg_t* msg, char* ctype, char* ovar); @@ -125,6 +131,8 @@ static int is_method_f(struct sip_msg* msg, char* , char *); static int has_body_f(struct sip_msg *msg, char *type, char *str2 ); static int in_list_f(struct sip_msg* _msg, char* _subject, char* _list, char* _sep); +static int in_list_prefix_f(struct sip_msg* _msg, char* _subject, char* _list, + char* _sep); static int cmp_str_f(struct sip_msg *msg, char *str1, char *str2 ); static int cmp_istr_f(struct sip_msg *msg, char *str1, char *str2 ); static int starts_with_f(struct sip_msg *msg, char *str1, char *str2 ); @@ -139,7 +147,9 @@ static int fixup_method(void** param, int param_no); static int add_header_fixup(void** param, int param_no); static int fixup_body_type(void** param, int param_no); static int fixup_in_list(void** param, int param_no); +static int fixup_in_list_prefix(void** param, int param_no); static int fixup_free_in_list(void** param, int param_no); +static int fixup_free_in_list_prefix(void** param, int param_no); int fixup_regexpNL_none(void** param, int param_no); static int fixup_search_hf(void** param, int param_no); static int fixup_subst_hf(void** param, int param_no); @@ -172,9 +182,21 @@ static cmd_export_t cmds[]={ {"replace", (cmd_function)replace_f, 2, fixup_regexp_none, fixup_free_regexp_none, ANY_ROUTE}, + {"replace_str", (cmd_function)replace_str_f, 3, + fixup_spve_all, fixup_free_spve_all, + ANY_ROUTE}, {"replace_body", (cmd_function)replace_body_f, 2, fixup_regexp_none, fixup_free_regexp_none, ANY_ROUTE}, + {"replace_body_str", (cmd_function)replace_body_str_f,3, + fixup_spve_all, fixup_free_spve_all, + ANY_ROUTE}, + {"replace_hdrs", (cmd_function)replace_hdrs_f, 2, + fixup_regexp_none, fixup_free_regexp_none, + ANY_ROUTE}, + {"replace_hdrs_str", (cmd_function)replace_hdrs_str_f,3, + fixup_spve_all, fixup_free_spve_all, + ANY_ROUTE}, {"replace_all", (cmd_function)replace_all_f, 2, fixup_regexp_none, fixup_free_regexp_none, ANY_ROUTE}, @@ -259,6 +281,9 @@ static cmd_export_t cmds[]={ {"in_list", (cmd_function)in_list_f, 3, fixup_in_list, fixup_free_in_list, ANY_ROUTE}, + {"in_list_prefix", (cmd_function)in_list_prefix_f, 3, + fixup_in_list_prefix, fixup_free_in_list_prefix, + ANY_ROUTE}, {"cmp_str", (cmd_function)cmp_str_f, 2, fixup_spve_spve, 0, ANY_ROUTE}, @@ -293,6 +318,12 @@ static cmd_export_t cmds[]={ {"append_body_part", (cmd_function)append_multibody_3, 3, fixup_multibody_f, 0, REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, + {"append_body_part_hex", (cmd_function)append_multibody_hex_2, 2, + fixup_spve_spve, 0, + REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, + {"append_body_part_hex", (cmd_function)append_multibody_hex_3, 3, + fixup_multibody_f, 0, + REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, {"remove_body_part", (cmd_function)remove_multibody_f, 1, fixup_spve_null, 0, REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, @@ -314,15 +345,13 @@ struct module_exports exports= { "textops", /* module name*/ DEFAULT_DLFLAGS, /* dlopen flags */ cmds, /* exported functions */ - 0, /* module parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ + 0, /* exported parameters */ + 0, /* exported rpc functions */ 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - 0, /* destroy function */ + 0, /* response handling function */ + mod_init, /* module init function */ 0, /* per-child init function */ + 0 /* module destroy function */ }; @@ -764,6 +793,113 @@ static int ki_replace(sip_msg_t* msg, str* sre, str* sval) return ret; } +static char *textops_strfind(str *mbuf, str *mkey) +{ + char *sp; + + // Sanity check + if(!(mbuf && mkey && mbuf->len >= mkey->len)) + return NULL; + + for(sp = mbuf->s; sp <= mbuf->s + mbuf->len - mkey->len; sp++) { + if(*sp == mkey->s[0] && strncmp(sp, mkey->s, mkey->len) == 0) { + return sp; + } + } + + return NULL; +} + +/** + * search in lbuf for mkey and replace it with rval, only first occurrence or + * all of them based on rmode + */ +static int ki_replace_str_helper(sip_msg_t* msg, str* lbuf, str* mkey, + str* rval, str *rmode) +{ + sr_lump_t* l; + char* s; + str mbuf; + char *mp; + char rpos; + + if(lbuf==NULL || mkey==NULL || rval==NULL) { + return -1; + } + if(lbuf->s==NULL || lbuf->len<=0 || mkey->s==NULL || mkey->len<=0) { + return 1; + } + + if(rmode==NULL || rmode->s==NULL || rmode->s[0]=='f' || rmode->s[0]=='F') { + rpos = 'f'; + } else { + rpos = 'a'; + } + + mbuf = *lbuf; + + while((mp=textops_strfind(&mbuf, mkey))!=NULL) { + + if ((l=del_lump(msg, mp - msg->buf, mkey->len, 0))==0) { + return -1; + } + s=pkg_malloc(rval->len+1); + if (s==0){ + LM_ERR("memory allocation failure\n"); + return -1; + } + memcpy(s, rval->s, rval->len); + if (insert_new_lump_after(l, s, rval->len, 0)==0){ + LM_ERR("could not insert new lump\n"); + pkg_free(s); + return -1; + } + + if(rpos=='f') { + return 1; + } + + mbuf.s = mp + mkey->len; + mbuf.len = msg->len - (mbuf.s - msg->buf); + } + + return 1; +} + +static int ki_replace_str(sip_msg_t* msg, str* mkey, str* rval, str *rmode) +{ + str lbuf; + + lbuf.s = get_header(msg); + lbuf.len = msg->len - (lbuf.s - msg->buf); + + return ki_replace_str_helper(msg, &lbuf, mkey, rval, rmode); +} + +static int replace_str_f(sip_msg_t* msg, char* pmkey, char* prval, char* prmode) +{ + str mkey; + str rval; + str rmode; + + if(fixup_get_svalue(msg, (gparam_t*)pmkey, &mkey)<0) { + LM_ERR("failed to get the matching string parameter\n"); + return -1; + } + + if(fixup_get_svalue(msg, (gparam_t*)prval, &rval)<0) { + LM_ERR("failed to get the replacement string parameter\n"); + return -1; + } + + if(fixup_get_svalue(msg, (gparam_t*)prmode, &rmode)<0) { + LM_ERR("failed to get the replacement mode parameter\n"); + return -1; + } + + return ki_replace_str(msg, &mkey, &rval, &rmode); +} + static int replace_body_helper(sip_msg_t* msg, regex_t *re, str *val) { struct lump* l; @@ -838,6 +974,173 @@ static int ki_replace_body(sip_msg_t* msg, str* sre, str* sval) return ret; } +static int ki_replace_body_str(sip_msg_t* msg, str* mkey, str* rval, str *rmode) +{ + str lbuf; + + lbuf.s = get_body(msg); + if (lbuf.s==0) { + LM_ERR("failed to get the message body\n"); + return -1; + } + lbuf.len = msg->len - (int)(lbuf.s-msg->buf); + if (lbuf.len==0) { + LM_DBG("message body has zero length\n"); + return -1; + } + + return ki_replace_str_helper(msg, &lbuf, mkey, rval, rmode); +} + +static int replace_body_str_f(sip_msg_t* msg, char* pmkey, char* prval, char* prmode) +{ + str mkey; + str rval; + str rmode; + + if(fixup_get_svalue(msg, (gparam_t*)pmkey, &mkey)<0) { + LM_ERR("failed to get the matching string parameter\n"); + return -1; + } + + if(fixup_get_svalue(msg, (gparam_t*)prval, &rval)<0) { + LM_ERR("failed to get the replacement string parameter\n"); + return -1; + } + + if(fixup_get_svalue(msg, (gparam_t*)prmode, &rmode)<0) { + LM_ERR("failed to get the replacement mode parameter\n"); + return -1; + } + + return ki_replace_body_str(msg, &mkey, &rval, &rmode); +} + +static int replace_hdrs_helper(sip_msg_t* msg, regex_t *re, str *val) +{ + struct lump* l; + regmatch_t pmatch; + char* s; + int off; + str lbuf; + char bk; + + if ( parse_headers(msg, HDR_EOH_F, 0)==-1 ) { + LM_ERR("failed to parse to end of headers\n"); + return -1; + } + + lbuf.s = get_header(msg); + lbuf.len = (int)(msg->unparsed - lbuf.s); + + if (lbuf.len==0) { + LM_DBG("message headers part has zero length\n"); + return -1; + } + + bk = lbuf.s[lbuf.len]; + lbuf.s[lbuf.len] = '\0'; + if (regexec(re, lbuf.s, 1, &pmatch, 0)!=0) { + lbuf.s[lbuf.len] = bk; + return -1; + } + lbuf.s[lbuf.len] = bk; + + off=lbuf.s-msg->buf; + + if (pmatch.rm_so!=-1){ + if ((l=del_lump(msg, pmatch.rm_so+off, + pmatch.rm_eo-pmatch.rm_so, 0))==0) + return -1; + s=pkg_malloc(val->len+1); + if (s==0){ + LM_ERR("memory allocation failure\n"); + return -1; + } + memcpy(s, val->s, val->len); + if (insert_new_lump_after(l, s, val->len, 0)==0){ + LM_ERR("could not insert new lump\n"); + pkg_free(s); + return -1; + } + + return 1; + } + return -1; +} + +static int replace_hdrs_f(struct sip_msg* msg, char* key, char* str2) +{ + str val; + + val.s = str2; + val.len = strlen(val.s); + + return replace_hdrs_helper(msg, (regex_t*)key, &val); +} + +static int ki_replace_hdrs(sip_msg_t* msg, str* sre, str* sval) +{ + regex_t mre; + int ret; + + memset(&mre, 0, sizeof(regex_t)); + if (regcomp(&mre, sre->s, REG_EXTENDED|REG_ICASE|REG_NEWLINE)!=0) { + LM_ERR("failed to compile regex: %.*s\n", sre->len, sre->s); + return -1; + } + + ret = replace_hdrs_helper(msg, &mre, sval); + + regfree(&mre); + + return ret; +} + +static int ki_replace_hdrs_str(sip_msg_t* msg, str* mkey, str* rval, str *rmode) +{ + str lbuf; + + if ( parse_headers(msg, HDR_EOH_F, 0)==-1 ) { + LM_ERR("failed to parse to end of headers\n"); + return -1; + } + + lbuf.s = get_header(msg); + lbuf.len = (int)(msg->unparsed - lbuf.s); + + if (lbuf.len==0) { + LM_DBG("message headers part has zero length\n"); + return -1; + } + + return ki_replace_str_helper(msg, &lbuf, mkey, rval, rmode); +} + +static int replace_hdrs_str_f(sip_msg_t* msg, char* pmkey, char* prval, char* prmode) +{ + str mkey; + str rval; + str rmode; + + if(fixup_get_svalue(msg, (gparam_t*)pmkey, &mkey)<0) { + LM_ERR("failed to get the matching string parameter\n"); + return -1; + } + + if(fixup_get_svalue(msg, (gparam_t*)prval, &rval)<0) { + LM_ERR("failed to get the replacement string parameter\n"); + return -1; + } + + if(fixup_get_svalue(msg, (gparam_t*)prmode, &rmode)<0) { + LM_ERR("failed to get the replacement mode parameter\n"); + return -1; + } + + return ki_replace_hdrs_str(msg, &mkey, &rval, &rmode); +} + /* sed-perl style re: s/regular expression/replacement/flags */ static int subst_helper_f(sip_msg_t* msg, struct subst_expr* se) { @@ -2259,7 +2562,86 @@ int ki_append_multibody(sip_msg_t* msg, str* txt, str* ct) return ki_append_multibody_cd(msg, txt, ct, &cd); } -static int append_multibody_helper(sip_msg_t *msg, char *p1, char *p2, char *p3) +int ki_append_multibody_hex_cd(sip_msg_t* msg, str* htxt, str* ct, str* cd) +{ + str sraw; + int i; + int ret; + char v; + + if(htxt==NULL || htxt->s==NULL || htxt->len==0) { + LM_ERR("invalid body parameter\n"); + return -1; + } + + sraw.len = htxt->len / 2 + 2; + sraw.s = pkg_malloc(sraw.len * sizeof(char)); + if(sraw.s==NULL) { + LM_ERR("no more pkg memory\n"); + return -1; + } + memset(sraw.s, 0, sraw.len * sizeof(char)); + + sraw.len = 0; + for(i=0; ilen; i++) { + if(htxt->s[i]==' ' || htxt->s[i]=='\t') { + continue; + } + if(i+1==htxt->len) { + LM_ERR("invalid input hex data [%.*s] (%d/%d)\n", htxt->len, htxt->s, + htxt->len, i); + pkg_free(sraw.s); + return -1; + } + v = 0; + if(htxt->s[i]>='0' && htxt->s[i]<='9') { + v = (htxt->s[i] - '0') << 4; + } else if(htxt->s[i]>='A' && htxt->s[i]<='F') { + v = (htxt->s[i] - 'A' + 10) << 4; + } else if(htxt->s[i]>='a' && htxt->s[i]<='f') { + v = (htxt->s[i] - 'a' + 10) << 4; + } else { + LM_ERR("invalid input hex data [%.*s] (%d/%d)\n", htxt->len, htxt->s, + htxt->len, i); + pkg_free(sraw.s); + return -1; + } + i++; + if(htxt->s[i]>='0' && htxt->s[i]<='9') { + v += (htxt->s[i] - '0'); + } else if(htxt->s[i]>='A' && htxt->s[i]<='F') { + v += (htxt->s[i] - 'A' + 10); + } else if(htxt->s[i]>='a' && htxt->s[i]<='f') { + v += (htxt->s[i] - 'a' + 10); + } else { + LM_ERR("invalid input hex data [%.*s] (%d/%d)\n", htxt->len, htxt->s, + htxt->len, i); + pkg_free(sraw.s); + return -1; + } + sraw.s[sraw.len++] = v; + } + if(sraw.len==0) { + /* only white spaces */ + LM_ERR("invalid input hex data [%.*s] (%d/%d)\n", htxt->len, htxt->s, + htxt->len, i); + pkg_free(sraw.s); + return -1; + } + ret = ki_append_multibody_cd(msg, &sraw, ct, cd); + pkg_free(sraw.s); + return ret; +} + +int ki_append_multibody_hex(sip_msg_t* msg, str* txt, str* ct) +{ + str cd = {0,0}; + + return ki_append_multibody_hex_cd(msg, txt, ct, &cd); +} + +static int append_multibody_helper(sip_msg_t *msg, char *p1, char *p2, char *p3, + int hex) { str txt = {0,0}; str ct = {0,0}; @@ -2290,17 +2672,31 @@ static int append_multibody_helper(sip_msg_t *msg, char *p1, char *p2, char *p3) } } - return ki_append_multibody_cd(msg, &txt, &ct, &cd); + if(hex) { + return ki_append_multibody_hex_cd(msg, &txt, &ct, &cd); + } else { + return ki_append_multibody_cd(msg, &txt, &ct, &cd); + } } static int append_multibody_2(struct sip_msg* msg, char* p1, char* p2) { - return append_multibody_helper(msg, p1, p2, NULL); + return append_multibody_helper(msg, p1, p2, NULL, 0); } static int append_multibody_3(struct sip_msg* msg, char* p1, char* p2, char *p3) { - return append_multibody_helper(msg, p1, p2, p3); + return append_multibody_helper(msg, p1, p2, p3, 0); +} + +static int append_multibody_hex_2(struct sip_msg* msg, char* p1, char* p2) +{ + return append_multibody_helper(msg, p1, p2, NULL, 1); +} + +static int append_multibody_hex_3(struct sip_msg* msg, char* p1, char* p2, char *p3) +{ + return append_multibody_helper(msg, p1, p2, p3, 1); } static int fixup_multibody_f(void** param, int param_no) @@ -2365,7 +2761,7 @@ static int ki_remove_multibody(sip_msg_t* msg, str* content_type) } if(get_boundary(msg, &boundary)!=0) { - LM_ERR("Cannot get boundary. Is body multipart?\n"); + LM_ERR("Cannot get boundary from Content type header. Is body multipart?\n"); return -1; } @@ -2455,18 +2851,23 @@ static int ki_get_body_part_helper(sip_msg_t* msg, str* ctype, pv_spec_t *dst, body.s = get_body(msg); if (body.s == 0) { - LM_ERR("failed to get the message body\n"); + LM_ERR("failed to get the content message body\n"); return -1; } body.len = msg->len - (int)(body.s - msg->buf); if (body.len == 0) { - LM_DBG("message body has zero length\n"); + LM_DBG("Content body has zero length\n"); return -1; } if(get_boundary(msg, &boundary)!=0) { - LM_ERR("Cannot get boundary. Is body multipart?\n"); - return -1; + LM_DBG("Content is not multipart so return all content body as string\n"); + memset(&val, 0, sizeof(pv_value_t)); + val.flags = PV_VAL_STR; + val.rs.s = body.s; + val.rs.len =body.len; + dst->setf(msg, &dst->pvp, (int)EQ_T, &val); + return 1; } start = body.s; @@ -2572,7 +2973,7 @@ static int get_body_part_helper(sip_msg_t* msg, char* ctype, char* ovar, int mod str content_type; if(ctype==0) { - LM_ERR("invalid parameters\n"); + LM_ERR("invalid Content-type parameters\n"); return -1; } @@ -3007,6 +3408,41 @@ static int fixup_free_in_list(void** param, int param_no) return -1; } +/* + * Fix in_list_prefix params: subject and list (strings that may contain pvars), + * separator (string) + */ +static int fixup_in_list_prefix(void** param, int param_no) +{ + if ((param_no == 1) || (param_no == 2)) return fixup_spve_null(param, 1); + + if (param_no == 3) { + if ((strlen((char *)*param) != 1) || (*((char *)(*param)) == 0)) { + LM_ERR("invalid separator parameter\n"); + return -1; + } + return 0; + } + + LM_ERR("invalid parameter number <%d>\n", param_no); + return -1; +} + +/* + * Free in_list_prefix params + */ +static int fixup_free_in_list_prefix(void** param, int param_no) +{ + if ((param_no == 1) || (param_no == 2)) { + return fixup_free_spve_null(param, 1); + } + + if (param_no == 3) return 0; + + LM_ERR("invalid parameter number <%d>\n", param_no); + return -1; +} + static int add_header_fixup(void** param, int param_no) { if(param_no==1) @@ -3242,6 +3678,112 @@ int in_list_f(struct sip_msg* _m, char* _subject, char* _list, char* _sep) return ki_in_list(_m, &subject, &list, &sep); } +/* + * Checks if an element in list is a prefix for subject + */ +int ki_in_list_prefix(sip_msg_t* _m, str* subject, str* list, str* vsep) +{ + int sep; + char *at, *past, *next_sep, *s; + + if(subject==NULL || subject->len<=0 || list==NULL || list->len<=0 + || vsep==NULL || vsep->len<=0) + return -1; + + sep = vsep->s[0]; + + at = list->s; + past = list->s + list->len; + + /* Eat leading white space */ + while ((at < past) && + ((*at == ' ') || (*at == '\t') || (*at == '\r') || (*at == '\n') )) { + at++; + } + + while (at < past) { + next_sep = index(at, sep); + s = next_sep; + int list_element_len; + + if (s == NULL) { + /* Eat trailing white space */ + while ((at < past) && + ((*(past-1) == ' ') || (*(past-1) == '\t') + || (*(past-1) == '\r') || (*(past-1) == '\n') )) { + past--; + } + list_element_len = past - at; + if (list_element_len == 0) { + /* There is no list element */ + return -1; + } + if (list_element_len > subject->len) { + /* Length of list element is greater than subject length */ + return -1; + } + if (strncmp(at, subject->s, list_element_len) != 0) { + return -1; + } + /* Prefix match found */ + return 1; + + } else { + /* Eat trailing white space */ + while ((at < s) && + ((*(s-1) == ' ') || (*(s-1) == '\t') || (*(s-1) == '\r') + || (*(s-1) == '\n') )) { + s--; + } + list_element_len = s - at; + if (list_element_len == 0 || list_element_len > subject->len || + strncmp(at, subject->s, list_element_len) != 0) { + /* Prefix match not found */ + at = next_sep + 1; + /* Eat leading white space */ + while ((at < past) && + ((*at == ' ') || (*at == '\t') || (*at == '\r') + || (*at == '\n') )) { + at++; + } + } else { + /* Prefix match found */ + return 1; + } + } + } + + return -1; +} + +/* + * Checks if an element in list is a prefix for subject + */ +int in_list_prefix_f(struct sip_msg* _m, char* _subject, char* _list, char* _sep) +{ + str subject, list, sep; + if (fixup_get_svalue(_m, (gparam_p)_subject, &subject) != 0) { + LM_ERR("cannot get subject value\n"); + return -1; + } else { + if (subject.len == 0) { + LM_ERR("subject cannot be empty string\n"); + return -1; + } + } + + if (fixup_get_svalue(_m, (gparam_p)_list, &list) != 0) { + LM_ERR("cannot get list value\n"); + return -1; + } else { + if (list.len == 0) return -1; + } + sep.s = _sep; + sep.len = 1; + + return ki_in_list_prefix(_m, &subject, &list, &sep); +} + static int cmp_str_f(struct sip_msg *msg, char *str1, char *str2 ) { str s1; @@ -3994,6 +4536,11 @@ static sr_kemi_t sr_kemi_textops_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("textops"), str_init("replace_str"), + SR_KEMIP_INT, ki_replace_str, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("textops"), str_init("replace_all"), SR_KEMIP_INT, ki_replace_all, { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, @@ -4004,6 +4551,21 @@ static sr_kemi_t sr_kemi_textops_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("textops"), str_init("replace_body_str"), + SR_KEMIP_INT, ki_replace_body_str, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("textops"), str_init("replace_hdrs"), + SR_KEMIP_INT, ki_replace_hdrs, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("textops"), str_init("replace_hdrs_str"), + SR_KEMIP_INT, ki_replace_hdrs_str, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("textops"), str_init("replace_body_all"), SR_KEMIP_INT, ki_replace_body_all, { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, @@ -4049,6 +4611,11 @@ static sr_kemi_t sr_kemi_textops_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("textops"), str_init("in_list_prefix"), + SR_KEMIP_INT, ki_in_list_prefix, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("textops"), str_init("cmp_str"), SR_KEMIP_INT, ki_cmp_str, { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, @@ -4099,6 +4666,16 @@ static sr_kemi_t sr_kemi_textops_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("textops"), str_init("append_body_part_hex"), + SR_KEMIP_INT, ki_append_multibody_hex, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("textops"), str_init("append_body_part_hex_cd"), + SR_KEMIP_INT, ki_append_multibody_hex_cd, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("textops"), str_init("remove_body_part"), SR_KEMIP_INT, ki_remove_multibody, { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, diff --git a/src/modules/textopsx/Makefile b/src/modules/textopsx/Makefile index e86dd561e..2dab02068 100644 --- a/src/modules/textopsx/Makefile +++ b/src/modules/textopsx/Makefile @@ -1,7 +1,6 @@ # # textopsx example module makefile # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,7 +8,5 @@ auto_gen= NAME=textopsx.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/textopsx/README b/src/modules/textopsx/README index 60b458d18..bd0328b44 100644 --- a/src/modules/textopsx/README +++ b/src/modules/textopsx/README @@ -234,7 +234,7 @@ ot exists add new header Insert new header value before an existing header, if no index acquired insert before first hf header. Note that a header may consist of comma - delimited list of values. To insert value behing last value use + delimited list of values. To insert value behind last value use appenf_hf_value. Meaning of the parameters is as follows: @@ -299,7 +299,7 @@ remove_hf_value2("foo[*].bar") # for each foo delete bar parameters [ [IDX] ] [. PARAM] If asterisk is specified as index then all values are affected. * hvalue - Value to be assigned, config var formatting supported. If - value is empty then no equal sign apears in param. + value is empty then no equal sign appears in param. Example 1.10. assign_hf_value usage ... @@ -323,7 +323,7 @@ assign_hf_value("foo[*].bar", "") # set empty value (ex. lr) [ [IDX] ] [. PARAM] If asterisk is specified as index then all values are affected. * hvalue - Value to be assigned, config var formatting supported. If - value is empty then no equal sign apears in param. + value is empty then no equal sign appears in param. Example 1.11. assign_hf_value2 usage ... @@ -392,7 +392,7 @@ if (@hf_value_exists.supported.path == "1") { treated as value delimiter. Formats: @hf_value.HFNAME[IDX] # idx value, negative value counts from bottom @hf_value.HFNAME.PARAM_NAME @hf_value.HFNAME[IDX].PARAM_NAME @hf_value.HFNAME.p.PARAM_NAME # or - .param., useful if requred called "uri", "p", "param" + .param., useful if required called "uri", "p", "param" @hf_value.HFNAME[IDX].p.PARAM_NAME # dtto @hf_value.HFNAME[IDX].uri # (< & > excluded) @hf_value.HFNAME[*] # return comma delimited list of all values (combines headers) @hf_value.HFNAME # the same as above [*] diff --git a/src/modules/textopsx/doc/functions.xml b/src/modules/textopsx/doc/functions.xml index c96fb1fff..768e291f7 100644 --- a/src/modules/textopsx/doc/functions.xml +++ b/src/modules/textopsx/doc/functions.xml @@ -200,7 +200,7 @@ append_hf_value("foo[-1]", "$var(Bar)") # try add value to the last header, if n Insert new header value before an existing header, if no index acquired insert before first hf header. Note that a header may consist of comma delimited list of values. - To insert value behing last value use appenf_hf_value. + To insert value behind last value use appenf_hf_value. Meaning of the parameters is as follows: @@ -302,7 +302,7 @@ remove_hf_value2("foo[*].bar") # for each foo delete bar parameters hvalue - Value to be assigned, config var - formatting supported. If value is empty then no equal sign apears in param. + formatting supported. If value is empty then no equal sign appears in param. @@ -338,7 +338,7 @@ assign_hf_value("foo[*].bar", "") # set empty value (ex. lr) hvalue - Value to be assigned, config var formatting supported. - If value is empty then no equal sign apears in param. + If value is empty then no equal sign appears in param. diff --git a/src/modules/textopsx/doc/selects.xml b/src/modules/textopsx/doc/selects.xml index 1b3a443c0..6d4dd4e3a 100644 --- a/src/modules/textopsx/doc/selects.xml +++ b/src/modules/textopsx/doc/selects.xml @@ -13,7 +13,7 @@ @hf_value.HFNAME[IDX] # idx value, negative value counts from bottom @hf_value.HFNAME.PARAM_NAME @hf_value.HFNAME[IDX].PARAM_NAME - @hf_value.HFNAME.p.PARAM_NAME # or .param., useful if requred called "uri", "p", "param" + @hf_value.HFNAME.p.PARAM_NAME # or .param., useful if required called "uri", "p", "param" @hf_value.HFNAME[IDX].p.PARAM_NAME # dtto @hf_value.HFNAME[IDX].uri # (< & > excluded) @hf_value.HFNAME[*] # return comma delimited list of all values (combines headers) diff --git a/src/modules/textopsx/textopsx.c b/src/modules/textopsx/textopsx.c index 24bdf0c84..3554c3263 100644 --- a/src/modules/textopsx/textopsx.c +++ b/src/modules/textopsx/textopsx.c @@ -80,50 +80,51 @@ extern select_row_t sel_declaration[]; /* cfg functions */ /* clag-format off */ static cmd_export_t cmds[] = { - {"msg_apply_changes", (cmd_function)msg_apply_changes_f, 0, 0, - REQUEST_ROUTE | ONREPLY_ROUTE}, - {"change_reply_status", change_reply_status_f, 2, - change_reply_status_fixup, ONREPLY_ROUTE}, - {"remove_body", (cmd_function)w_remove_body_f, 0, 0, ANY_ROUTE}, - {"keep_hf", (cmd_function)w_keep_hf_f, 0, fixup_regexp_null, ANY_ROUTE}, - {"keep_hf", (cmd_function)w_keep_hf_f, 1, fixup_regexp_null, ANY_ROUTE}, - {"fnmatch", (cmd_function)w_fnmatch2_f, 2, fixup_fnmatch, ANY_ROUTE}, - {"fnmatch", (cmd_function)w_fnmatch3_f, 3, fixup_fnmatch, ANY_ROUTE}, - - {"append_hf_value", insupddel_hf_value_f, 2, append_hf_value_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"insert_hf_value", insupddel_hf_value_f, 2, insert_hf_value_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"remove_hf_value", insupddel_hf_value_f, 1, remove_hf_value_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"assign_hf_value", insupddel_hf_value_f, 2, assign_hf_value_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"remove_hf_value2", insupddel_hf_value_f, 1, remove_hf_value2_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"assign_hf_value2", insupddel_hf_value_f, 2, assign_hf_value2_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"include_hf_value", incexc_hf_value_f, 2, include_hf_value_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"exclude_hf_value", incexc_hf_value_f, 2, exclude_hf_value_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - {"hf_value_exists", incexc_hf_value_f, 2, hf_value_exists_fixup, - REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, - - {"bind_textopsx", (cmd_function)bind_textopsx, 1, 0, ANY_ROUTE}, - - - {0, 0, 0, 0, 0}}; + {"msg_apply_changes", (cmd_function)msg_apply_changes_f, 0, 0, 0, + REQUEST_ROUTE | ONREPLY_ROUTE}, + {"change_reply_status", change_reply_status_f, 2, + change_reply_status_fixup, 0, ONREPLY_ROUTE}, + {"remove_body", (cmd_function)w_remove_body_f, 0, 0, 0, ANY_ROUTE}, + {"keep_hf", (cmd_function)w_keep_hf_f, 0, fixup_regexp_null, 0, ANY_ROUTE}, + {"keep_hf", (cmd_function)w_keep_hf_f, 1, fixup_regexp_null, 0, ANY_ROUTE}, + {"fnmatch", (cmd_function)w_fnmatch2_f, 2, fixup_fnmatch, 0, ANY_ROUTE}, + {"fnmatch", (cmd_function)w_fnmatch3_f, 3, fixup_fnmatch, 0, ANY_ROUTE}, + {"append_hf_value", insupddel_hf_value_f, 2, append_hf_value_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"insert_hf_value", insupddel_hf_value_f, 2, insert_hf_value_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"remove_hf_value", insupddel_hf_value_f, 1, remove_hf_value_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"assign_hf_value", insupddel_hf_value_f, 2, assign_hf_value_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"remove_hf_value2", insupddel_hf_value_f, 1, remove_hf_value2_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"assign_hf_value2", insupddel_hf_value_f, 2, assign_hf_value2_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"include_hf_value", incexc_hf_value_f, 2, include_hf_value_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"exclude_hf_value", incexc_hf_value_f, 2, exclude_hf_value_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + {"hf_value_exists", incexc_hf_value_f, 2, hf_value_exists_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE}, + + {"bind_textopsx", (cmd_function)bind_textopsx, 1, 0, 0, ANY_ROUTE}, + + {0, 0, 0, 0, 0, 0} +}; /* module exports structure */ struct module_exports exports = { - "textopsx", cmds, /* cfg functions */ - 0, /* RPC methods */ - 0, /* cfg parameters */ - mod_init, /* initialization function */ - 0, /* response function */ - 0, /* destroy function */ - 0, /* on_cancel function */ - 0 /* per-child init function */ + "textopsx", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported cfg functions */ + 0, /* exported cfg parameters */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + 0, /* destroy function */ }; /* clag-format on */ @@ -145,8 +146,6 @@ static int mod_init(void) */ static int ki_msg_update_buffer(sip_msg_t *msg, str *obuf) { - sip_msg_t tmp; - if(obuf==NULL || obuf->s==NULL || obuf->len<=0) { LM_ERR("invalid buffer parameter\n"); return -1; @@ -156,52 +155,8 @@ static int ki_msg_update_buffer(sip_msg_t *msg, str *obuf) LM_ERR("new buffer is too large (%d)\n", obuf->len); return -1; } - /* temporary copy */ - memcpy(&tmp, msg, sizeof(sip_msg_t)); - - /* reset dst uri and path vector to avoid freeing - restored later */ - if(msg->dst_uri.s != NULL) { - msg->dst_uri.s = NULL; - msg->dst_uri.len = 0; - } - if(msg->path_vec.s != NULL) { - msg->path_vec.s = NULL; - msg->path_vec.len = 0; - } - - /* free old msg structure */ - free_sip_msg(msg); - memset(msg, 0, sizeof(sip_msg_t)); - - /* restore msg fields */ - msg->buf = tmp.buf; - msg->id = tmp.id; - msg->rcv = tmp.rcv; - msg->set_global_address = tmp.set_global_address; - msg->set_global_port = tmp.set_global_port; - msg->flags = tmp.flags; - msg->msg_flags = tmp.msg_flags; - msg->hash_index = tmp.hash_index; - msg->force_send_socket = tmp.force_send_socket; - msg->fwd_send_flags = tmp.fwd_send_flags; - msg->rpl_send_flags = tmp.rpl_send_flags; - msg->dst_uri = tmp.dst_uri; - msg->path_vec = tmp.path_vec; - - memcpy(msg->buf, obuf->s, obuf->len); - msg->len = obuf->len; - msg->buf[msg->len] = '\0'; - - /* reparse the message */ - LM_DBG("SIP message content updated - reparsing\n"); - if(parse_msg(msg->buf, msg->len, msg) != 0) { - LM_ERR("parsing new sip message failed [[%.*s]]\n", msg->len, msg->buf); - /* exit config execution - sip_msg_t structure is no longer - * valid/safe for config */ - return 0; - } - return 1; + return sip_msg_update_buffer(msg, obuf); } /** @@ -222,39 +177,12 @@ static int ki_msg_set_buffer(sip_msg_t *msg, str *obuf) */ static int ki_msg_apply_changes(sip_msg_t *msg) { - int ret; - dest_info_t dst; - str obuf; - if(msg->first_line.type != SIP_REPLY && get_route_type() != REQUEST_ROUTE) { LM_ERR("invalid usage - not in request route or a reply\n"); return -1; } - init_dest_info(&dst); - dst.proto = PROTO_UDP; - if(msg->first_line.type == SIP_REPLY) { - obuf.s = generate_res_buf_from_sip_res( - msg, (unsigned int *)&obuf.len, BUILD_NO_VIA1_UPDATE); - } else { - if(msg->msg_flags & FL_RR_ADDED) { - LM_ERR("cannot apply msg changes after adding record-route" - " header - it breaks conditional 2nd header\n"); - return -1; - } - obuf.s = build_req_buf_from_sip_req(msg, (unsigned int *)&obuf.len, - &dst, - BUILD_NO_PATH | BUILD_NO_LOCAL_VIA | BUILD_NO_VIA1_UPDATE); - } - if(obuf.s == NULL) { - LM_ERR("couldn't update msg buffer content\n"); - return -1; - } - ret = ki_msg_update_buffer(msg, &obuf); - /* free new buffer - copied in the static buffer from old sip_msg_t */ - pkg_free(obuf.s); - - return ret; + return sip_msg_apply_changes(msg); } /** diff --git a/src/modules/timer/Makefile b/src/modules/timer/Makefile index 4d5ee0283..2d2c602ec 100644 --- a/src/modules/timer/Makefile +++ b/src/modules/timer/Makefile @@ -1,5 +1,5 @@ # -# rtimer module makefile +# timer module makefile # # # WARNING: do not run this directly, it should be run by the master Makefile @@ -10,7 +10,5 @@ auto_gen= NAME=timer.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/timer/README b/src/modules/timer/README index 85004102e..853fe7304 100644 --- a/src/modules/timer/README +++ b/src/modules/timer/README @@ -142,7 +142,7 @@ modparam("timer", "declare_timer", "MY_TIMER=MY_TIMER_ROUTE,10,slow,enable"); handler by itself not to decrease performance. Disabling and enabling in sequence may be tricky. * timer_id references to timer declared by declare_timer. - * enable_distable - set to 1 to enable timer, to 0 to disable. + * enable_disable - set to 1 to enable timer, to 0 to disable. Example 1.2. timer_enable usage ... diff --git a/src/modules/timer/doc/timer.xml b/src/modules/timer/doc/timer.xml index be8685845..e22d65341 100644 --- a/src/modules/timer/doc/timer.xml +++ b/src/modules/timer/doc/timer.xml @@ -155,7 +155,7 @@ modparam("timer", "declare_timer", "MY_TIMER=MY_TIMER_ROUTE,10,slow,enable"); declare_timer. - enable_distable - set to 1 to enable timer, + enable_disable - set to 1 to enable timer, to 0 to disable. diff --git a/src/modules/timer/timer.c b/src/modules/timer/timer.c index f6a739a2b..9880a8420 100644 --- a/src/modules/timer/timer.c +++ b/src/modules/timer/timer.c @@ -215,7 +215,7 @@ static ticks_t timer_handler(ticks_t ticks, struct timer_ln* tl, void* data) if(keng==NULL) { run_actions(&ra_ctx, main_rt.rlist[a->route_no], msg); } else { - if(keng->froute(msg, EVENT_ROUTE, &a->route_name, &evname)<0) { + if(sr_kemi_route(keng, msg, EVENT_ROUTE, &a->route_name, &evname)<0) { LM_ERR("error running event route kemi callback\n"); } } @@ -484,9 +484,9 @@ static void destroy_mod(void) * Exported functions */ static cmd_export_t cmds[] = { - {MODULE_NAME"_enable", timer_enable_func, 2, timer_enable_fixup, + {MODULE_NAME"_enable", timer_enable_func, 2, timer_enable_fixup, 0, ANY_ROUTE}, - {0, 0, 0, 0, 0} + {0, 0, 0, 0, 0, 0} }; /* @@ -499,13 +499,14 @@ static param_export_t params[] = { struct module_exports exports = { - MODULE_NAME, - cmds, /* Exported commands */ - 0, /* RPC */ - params, /* Exported parameters */ - mod_init, /* module initialization function */ - 0, /* response function*/ - destroy_mod, /* destroy function */ - 0, /* oncancel function */ - child_init /* per-child init function */ + MODULE_NAME, /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* Exported commands */ + params, /* Exported parameters */ + 0, /* Exported RPC functions */ + 0, /* pseudo-variables exports */ + 0, /* response function */ + mod_init, /* module initialization function */ + child_init, /* per-child init function */ + destroy_mod /* destroy function */ }; diff --git a/src/modules/tls/Makefile b/src/modules/tls/Makefile index c6969c122..b17a30507 100644 --- a/src/modules/tls/Makefile +++ b/src/modules/tls/Makefile @@ -1,7 +1,7 @@ # # TLS module makefile # -# +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -33,12 +33,10 @@ LIBS+= $(TLS_EXTRA_LIBS) # dcm: tls.cfg installed via local 'install-cfg' to update paths #MOD_INSTALL_CFGS=tls.cfg -DEFS+=-DKAMAILIO_MOD_INTERFACE include ../../Makefile.modules - install-tls-cert: $(cfg_prefix)/$(cfg_dir) - MAIN_NAME=$(MAIN_NAME) ./$(SCR_NAME)_cert.sh -d $(cfg_prefix)/$(cfg_dir) + MAIN_NAME=$(MAIN_NAME) ./tls_cert.sh -d $(cfg_prefix)/$(cfg_dir) install-cfg: @if ! [ -d $(cfg_prefix)/$(cfg_dir) ]; then \ diff --git a/src/modules/tls/README b/src/modules/tls/README index dcdbfed6d..20b08cfa4 100644 --- a/src/modules/tls/README +++ b/src/modules/tls/README @@ -29,65 +29,71 @@ Olle E. Johansson 6. TLS Debugging 7. Known Limitations 8. Quick Certificate Howto - 9. Parameters - - 9.1. tls_method (string) - 9.2. certificate (string) - 9.3. private_key (string) - 9.4. ca_list (string) - 9.5. crl (string) - 9.6. verify_certificate (boolean) - 9.7. verify_depth (integer) - 9.8. require_certificate (boolean) - 9.9. cipher_list (string) - 9.10. server_name (string) - 9.11. send_timeout (int) - 9.12. handshake_timeout (int) - 9.13. connection_timeout (int) - 9.14. tls_disable_compression (boolean) - 9.15. ssl_release_buffers (integer) - 9.16. ssl_freelist_max_len (integer) - 9.17. ssl_max_send_fragment (integer) - 9.18. ssl_read_ahead (boolean) - 9.19. send_close_notify (boolean) - 9.20. con_ct_wq_max (integer) - 9.21. ct_wq_max (integer) - 9.22. ct_wq_blk_size (integer) - 9.23. tls_log (int) - 9.24. tls_debug (int) - 9.25. low_mem_threshold1 (integer) - 9.26. low_mem_threshold2 (integer) - 9.27. tls_force_run (boolean) - 9.28. session_cache (boolean) - 9.29. session_id (str) - 9.30. renegotiation (boolean) - 9.31. config (string) - 9.32. xavp_cfg (string) - 9.33. event_callback (str) - - 10. Functions - - 10.1. is_peer_verified() - - 11. RPC Commands - - 11.1. tls.info - 11.2. tls.list - 11.3. tls.options - 11.4. tls.reload - - 12. Status - - 12.1. License - 12.2. History - - 13. Event Routes - - 13.1. event_route[tls:connection-out] + 9. HSM Howto + 10. Parameters + + 10.1. tls_method (string) + 10.2. certificate (string) + 10.3. private_key (string) + 10.4. ca_list (string) + 10.5. crl (string) + 10.6. verify_certificate (boolean) + 10.7. verify_depth (integer) + 10.8. require_certificate (boolean) + 10.9. cipher_list (string) + 10.10. server_name (string) + 10.11. send_timeout (int) + 10.12. handshake_timeout (int) + 10.13. connection_timeout (int) + 10.14. tls_disable_compression (boolean) + 10.15. ssl_release_buffers (integer) + 10.16. ssl_freelist_max_len (integer) + 10.17. ssl_max_send_fragment (integer) + 10.18. ssl_read_ahead (boolean) + 10.19. send_close_notify (boolean) + 10.20. con_ct_wq_max (integer) + 10.21. ct_wq_max (integer) + 10.22. ct_wq_blk_size (integer) + 10.23. tls_log (int) + 10.24. tls_debug (int) + 10.25. low_mem_threshold1 (integer) + 10.26. low_mem_threshold2 (integer) + 10.27. tls_force_run (boolean) + 10.28. session_cache (boolean) + 10.29. session_id (str) + 10.30. renegotiation (boolean) + 10.31. config (string) + 10.32. xavp_cfg (string) + 10.33. event_callback (str) + 10.34. engine (string) + 10.35. engine_config (string) + 10.36. engine_algorithms (string) + + 11. Functions + + 11.1. is_peer_verified() + + 12. RPC Commands + + 12.1. tls.info + 12.2. tls.list + 12.3. tls.options + 12.4. tls.reload + + 13. Status + + 13.1. License + 13.2. History + + 14. Event Routes + + 14.1. event_route[tls:connection-out] + + 15. TLS With Database Backend List of Examples - 1.1. Quick start config + 1.1. Quick Start Basic Config 1.2. Compiling TLS with Debug Messages 1.3. Set tls_method parameter 1.4. Set certificate parameter @@ -126,7 +132,7 @@ Olle E. Johansson 1.37. Set session_cache parameter 1.38. Set session_id parameter 1.39. Set renegotiation parameter - 1.40. Short config file + 1.40. Sample TLS Config File 1.41. Set config parameter 1.42. Change and reload the TLS configuration at runtime 1.43. Set xavp_cfg parameter @@ -146,61 +152,67 @@ Chapter 1. Admin Guide 6. TLS Debugging 7. Known Limitations 8. Quick Certificate Howto - 9. Parameters - - 9.1. tls_method (string) - 9.2. certificate (string) - 9.3. private_key (string) - 9.4. ca_list (string) - 9.5. crl (string) - 9.6. verify_certificate (boolean) - 9.7. verify_depth (integer) - 9.8. require_certificate (boolean) - 9.9. cipher_list (string) - 9.10. server_name (string) - 9.11. send_timeout (int) - 9.12. handshake_timeout (int) - 9.13. connection_timeout (int) - 9.14. tls_disable_compression (boolean) - 9.15. ssl_release_buffers (integer) - 9.16. ssl_freelist_max_len (integer) - 9.17. ssl_max_send_fragment (integer) - 9.18. ssl_read_ahead (boolean) - 9.19. send_close_notify (boolean) - 9.20. con_ct_wq_max (integer) - 9.21. ct_wq_max (integer) - 9.22. ct_wq_blk_size (integer) - 9.23. tls_log (int) - 9.24. tls_debug (int) - 9.25. low_mem_threshold1 (integer) - 9.26. low_mem_threshold2 (integer) - 9.27. tls_force_run (boolean) - 9.28. session_cache (boolean) - 9.29. session_id (str) - 9.30. renegotiation (boolean) - 9.31. config (string) - 9.32. xavp_cfg (string) - 9.33. event_callback (str) - - 10. Functions - - 10.1. is_peer_verified() - - 11. RPC Commands - - 11.1. tls.info - 11.2. tls.list - 11.3. tls.options - 11.4. tls.reload - - 12. Status - - 12.1. License - 12.2. History - - 13. Event Routes - - 13.1. event_route[tls:connection-out] + 9. HSM Howto + 10. Parameters + + 10.1. tls_method (string) + 10.2. certificate (string) + 10.3. private_key (string) + 10.4. ca_list (string) + 10.5. crl (string) + 10.6. verify_certificate (boolean) + 10.7. verify_depth (integer) + 10.8. require_certificate (boolean) + 10.9. cipher_list (string) + 10.10. server_name (string) + 10.11. send_timeout (int) + 10.12. handshake_timeout (int) + 10.13. connection_timeout (int) + 10.14. tls_disable_compression (boolean) + 10.15. ssl_release_buffers (integer) + 10.16. ssl_freelist_max_len (integer) + 10.17. ssl_max_send_fragment (integer) + 10.18. ssl_read_ahead (boolean) + 10.19. send_close_notify (boolean) + 10.20. con_ct_wq_max (integer) + 10.21. ct_wq_max (integer) + 10.22. ct_wq_blk_size (integer) + 10.23. tls_log (int) + 10.24. tls_debug (int) + 10.25. low_mem_threshold1 (integer) + 10.26. low_mem_threshold2 (integer) + 10.27. tls_force_run (boolean) + 10.28. session_cache (boolean) + 10.29. session_id (str) + 10.30. renegotiation (boolean) + 10.31. config (string) + 10.32. xavp_cfg (string) + 10.33. event_callback (str) + 10.34. engine (string) + 10.35. engine_config (string) + 10.36. engine_algorithms (string) + + 11. Functions + + 11.1. is_peer_verified() + + 12. RPC Commands + + 12.1. tls.info + 12.2. tls.list + 12.3. tls.options + 12.4. tls.reload + + 13. Status + + 13.1. License + 13.2. History + + 14. Event Routes + + 14.1. event_route[tls:connection-out] + + 15. TLS With Database Backend 1. Overview @@ -215,24 +227,38 @@ Chapter 1. Admin Guide 2. Quick Start - Make sure you have a proper certificate and private key and either use - the certificate and private_key module parameters, or make sure the - certificate and key are in the same PEM file, named cert.pem an placed - in [your-cfg-install-prefix]/etc/kamailio/. Don't forget to load the - tls module and to enable TLS (add enable_tls=yes to your config). + The default kamailio.cfg file has basic tls support included, it has to + be enabled with "#!define WITH_TLS" directive. - Example 1.1. Quick start config + The most important parameters to set the path to the public certificate + and private key files. You can either have them in different file or in + the same file in PEM format. The parameters for them are certificate + and private_key. They can be given as modparam or or provided in the + profiles of tls.cfg file. + + When installing tls module of kamailio, a sample 'tls.cfg' file is + deployed in the same folder with 'kamailio.cfg', along with freshly + generated self signed certificates. + + HINT: be sure you have enable_tls=yes to your kamailio.cfg. + + Example 1.1. Quick Start Basic Config #... -loadmodule "modules/tls/tls.so" +loadmodule "sl.so" +loadmodule "tls.so" -modparam("tls", "private_key", "./andrei-test.pem") -modparam("tls", "certificate", "./andrei-test.pem") +modparam("tls", "private_key", "./server-test.pem") +modparam("tls", "certificate", "./server-test.pem") modparam("tls", "ca_list", "./calist.pem") enable_tls=yes -route{ - # .... +request_route { + if(proto != TLS) { + sl_send_reply("403", "Accepting TLS Only"); + exit; + } + ... } 3. Important Notes @@ -391,7 +417,8 @@ certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of - # several ctificates with same subject. + # several certificates with same subject +. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate @@ -498,43 +525,89 @@ Revoking a certificate and using a CRL 4. Set up Kamailio to use the CRL: modparam("tls", "crl", "path/my_crl.pem") -9. Parameters - - 9.1. tls_method (string) - 9.2. certificate (string) - 9.3. private_key (string) - 9.4. ca_list (string) - 9.5. crl (string) - 9.6. verify_certificate (boolean) - 9.7. verify_depth (integer) - 9.8. require_certificate (boolean) - 9.9. cipher_list (string) - 9.10. server_name (string) - 9.11. send_timeout (int) - 9.12. handshake_timeout (int) - 9.13. connection_timeout (int) - 9.14. tls_disable_compression (boolean) - 9.15. ssl_release_buffers (integer) - 9.16. ssl_freelist_max_len (integer) - 9.17. ssl_max_send_fragment (integer) - 9.18. ssl_read_ahead (boolean) - 9.19. send_close_notify (boolean) - 9.20. con_ct_wq_max (integer) - 9.21. ct_wq_max (integer) - 9.22. ct_wq_blk_size (integer) - 9.23. tls_log (int) - 9.24. tls_debug (int) - 9.25. low_mem_threshold1 (integer) - 9.26. low_mem_threshold2 (integer) - 9.27. tls_force_run (boolean) - 9.28. session_cache (boolean) - 9.29. session_id (str) - 9.30. renegotiation (boolean) - 9.31. config (string) - 9.32. xavp_cfg (string) - 9.33. event_callback (str) - -9.1. tls_method (string) +9. HSM Howto + + This documents OpenSSL engine support for private keys in HSM. + + Assumptions: an OpenSSL engine configured with private key. We still + require the certificate file and list of CA certificates per a regular + TLS configuration. + +AWS CloudHSM Example +-------------------- + +... +# Example for AWS CloudHSM (SafeNet Luna) +modparam("tls", "engine", "gem") +modparam("tls", "engine_config", "/usr/local/etc/kamailio/luna.conf") +modparam("tls", "engine_algorithms", "ALL) +... + +/usr/local/etc/kamailio/luna.cnf is a OpenSSL config format file used to +bootstrap the engine, e.g., pass the PIN. + +... +# the key kamailio is mandatory +kamailio = openssl_init + +[ openssl_init ] +engines = engine_section + +[ engine_section ] +# gem is the name of the SafeNet Luna OpenSSL engine +gem = gem_section + +[ gem_section ] +# from SafeNet documentation +ENGINE_INIT = 0:20:21:password=1234-ABCD-5678-EFGH +... + + +Thales nShield Connect +---------------------- + +Place holder + +10. Parameters + + 10.1. tls_method (string) + 10.2. certificate (string) + 10.3. private_key (string) + 10.4. ca_list (string) + 10.5. crl (string) + 10.6. verify_certificate (boolean) + 10.7. verify_depth (integer) + 10.8. require_certificate (boolean) + 10.9. cipher_list (string) + 10.10. server_name (string) + 10.11. send_timeout (int) + 10.12. handshake_timeout (int) + 10.13. connection_timeout (int) + 10.14. tls_disable_compression (boolean) + 10.15. ssl_release_buffers (integer) + 10.16. ssl_freelist_max_len (integer) + 10.17. ssl_max_send_fragment (integer) + 10.18. ssl_read_ahead (boolean) + 10.19. send_close_notify (boolean) + 10.20. con_ct_wq_max (integer) + 10.21. ct_wq_max (integer) + 10.22. ct_wq_blk_size (integer) + 10.23. tls_log (int) + 10.24. tls_debug (int) + 10.25. low_mem_threshold1 (integer) + 10.26. low_mem_threshold2 (integer) + 10.27. tls_force_run (boolean) + 10.28. session_cache (boolean) + 10.29. session_id (str) + 10.30. renegotiation (boolean) + 10.31. config (string) + 10.32. xavp_cfg (string) + 10.33. event_callback (str) + 10.34. engine (string) + 10.35. engine_config (string) + 10.36. engine_algorithms (string) + +10.1. tls_method (string) Sets the TLS protocol method. Possible values are: * TLSv1.2 - only TLSv1.2 connections are accepted (available starting @@ -579,7 +652,7 @@ Revoking a certificate and using a CRL modparam("tls", "tls_method", "TLSv1") ... -9.2. certificate (string) +10.2. certificate (string) Sets the certificate file name. The certificate file can also contain the private key in PEM format. @@ -597,7 +670,7 @@ modparam("tls", "tls_method", "TLSv1") modparam("tls", "certificate", "/usr/local/etc/kamailio/my_certificate.pem") ... -9.3. private_key (string) +10.3. private_key (string) Sets the private key file name. The private key can be in the same file as the certificate or in a separate file, specified by this @@ -620,7 +693,7 @@ modparam("tls", "certificate", "/usr/local/etc/kamailio/my_certificate.pem") modparam("tls", "private", "/usr/local/etc/kamailio/my_pkey.pem") ... -9.4. ca_list (string) +10.4. ca_list (string) Sets the CA list file name. This file contains a list of all the trusted CAs certificates used when connecting to other SIP @@ -646,7 +719,7 @@ for f in trusted_cas/*.pem ; do cat "$f" >> ca_list.pem ; done modparam("tls", "ca_list", "/usr/local/etc/kamailio/ca_list.pem") ... -9.5. crl (string) +10.5. crl (string) Sets the certificate revocation list (CRL) file name. This file contains a list of revoked certificates. Any attempt to verify a @@ -693,7 +766,7 @@ Note modparam("tls", "crl", "/usr/local/etc/kamailio/crl.pem") ... -9.6. verify_certificate (boolean) +10.6. verify_certificate (boolean) If enabled it will force certificate verification when connecting to other SIP servers.. For more information see the verify(1) OpenSSL man @@ -711,7 +784,7 @@ modparam("tls", "crl", "/usr/local/etc/kamailio/crl.pem") modparam("tls", "verify_certificate", 1) ... -9.7. verify_depth (integer) +10.7. verify_depth (integer) Sets how far up the certificate chain will the certificate verification go in the search for a trusted CA. @@ -725,7 +798,7 @@ modparam("tls", "verify_certificate", 1) modparam("tls", "verify_depth", 9) ... -9.8. require_certificate (boolean) +10.8. require_certificate (boolean) When enabled Kamailio will require a certificate from a client connecting to the TLS port. If the client does not offer a certificate @@ -738,7 +811,7 @@ modparam("tls", "verify_depth", 9) modparam("tls", "require_certificate", 1) ... -9.9. cipher_list (string) +10.9. cipher_list (string) Sets the list of accepted ciphers. The list consists of cipher strings separated by colons. For more information on the cipher list format see @@ -752,7 +825,7 @@ modparam("tls", "require_certificate", 1) modparam("tls", "cipher_list", "HIGH") ... -9.10. server_name (string) +10.10. server_name (string) Sets the Server Name Indication (SNI) value. @@ -766,19 +839,19 @@ modparam("tls", "cipher_list", "HIGH") modparam("tls", "server_name", "kamailio.org") ... -9.11. send_timeout (int) +10.11. send_timeout (int) This parameter is obsolete and cannot be used in newer TLS versions (> Kamailio 3.0). In these versions the send_timeout is replaced by tcp_send_timeout (common with all the tcp connections). -9.12. handshake_timeout (int) +10.12. handshake_timeout (int) This parameter is obsolete and cannot be used in newer TLS versions (> Kamailio 3.0). In these versions the handshake_timeout is replaced by tcp_connect_timeout (common with all the tcp connections). -9.13. connection_timeout (int) +10.13. connection_timeout (int) Sets the amount of time after which an idle TLS connection will be closed, if no I/O ever occurred after the initial open. If an I/O event @@ -800,7 +873,7 @@ modparam("tls", "connection_timeout", 60) Example 1.14. Set tls.connection_timeout at runtime $ kamcmd cfg.set_now_int tls connection_timeout 180 -9.14. tls_disable_compression (boolean) +10.14. tls_disable_compression (boolean) If set compression over TLS will be disabled. Note that compression uses a lot of memory (about 10x more then with the compression @@ -815,7 +888,7 @@ modparam("tls", "connection_timeout", 60) modparam("tls", "tls_disable_compression", 0) # enable ... -9.15. ssl_release_buffers (integer) +10.15. ssl_release_buffers (integer) Release internal OpenSSL read or write buffers as soon as they are no longer needed. Combined with ssl_freelist_max_len has the potential of @@ -837,7 +910,7 @@ Note Example 1.16. Set ssl_release_buffers parameter modparam("tls", "ssl_release_buffers", 1) -9.16. ssl_freelist_max_len (integer) +10.16. ssl_freelist_max_len (integer) Sets the maximum number of free memory chunks, that OpenSSL will keep per connection. Setting it to 0 would cause any unused memory chunk to @@ -860,11 +933,11 @@ Note Example 1.17. Set ssl_freelist_max_len parameter modparam("tls", "ssl_freelist_max_len", 0) -9.17. ssl_max_send_fragment (integer) +10.17. ssl_max_send_fragment (integer) Sets the maximum number of bytes (from the clear text) sent into one TLS record. Valid values are between 512 and 16384. Note however that - even valid low values might not be big enough to allow a succesfull + even valid low values might not be big enough to allow a successful handshake (try minimum 1024). Lower values would lead to less memory usage, but values lower then the @@ -876,7 +949,7 @@ modparam("tls", "ssl_freelist_max_len", 0) Note Values on the lower side, even if valid (> 512), might not allow for a - succesfull initial handshake. This happens if the certificate does not + successful initial handshake. This happens if the certificate does not fit inside one send fragment. Values lower then 1024 should not be used. Even with higher values, if the handshake fails, try increasing the value. @@ -895,7 +968,7 @@ Note Example 1.18. Set ssl_max_send_fragment parameter modparam("tls", "ssl_max_send_fragment", 4096) -9.18. ssl_read_ahead (boolean) +10.18. ssl_read_ahead (boolean) Enables read ahead, reducing the number of internal OpenSSL BIO read() calls. This option has only debugging value, in normal circumstances it @@ -917,7 +990,7 @@ modparam("tls", "ssl_max_send_fragment", 4096) Example 1.19. Set ssl_read_ahead parameter modparam("tls", "ssl_read_ahead", 1) -9.19. send_close_notify (boolean) +10.19. send_close_notify (boolean) Enables/disables sending close notify alerts prior to closing the corresponding TCP connection. Sending the close notify prior to TCP @@ -938,7 +1011,7 @@ modparam("tls", "send_close_notify", 1) Example 1.21. Set tls.send_close_notify at runtime $ kamcmd cfg.set_now_int tls send_close_notify 1 -9.20. con_ct_wq_max (integer) +10.20. con_ct_wq_max (integer) Sets the maximum allowed per connection clear-text send queue size in bytes. This queue is used when data cannot be encrypted and sent @@ -957,7 +1030,7 @@ modparam("tls", "con_ct_wq_max", 1048576) Example 1.23. Set tls.con_ct_wq_max at runtime $ kamcmd cfg.set_now_int tls con_ct_wq_max 1048576 -9.21. ct_wq_max (integer) +10.21. ct_wq_max (integer) Sets the maximum total number of bytes queued in all the clear-text send queues. These queues are used when data cannot be encrypted and @@ -976,10 +1049,10 @@ modparam("tls", "ct_wq_max", 4194304) Example 1.25. Set tls.ct_wq_max at runtime $ kamcmd cfg.set_now_int tls ct_wq_max 4194304 -9.22. ct_wq_blk_size (integer) +10.22. ct_wq_blk_size (integer) Minimum block size for the internal clear-text send queues (debugging / - advanced tunning). Good values are multiple of typical datagram sizes. + advanced tuning). Good values are multiple of typical datagram sizes. The default value is 4096. @@ -994,7 +1067,7 @@ modparam("tls", "ct_wq_blk_size", 2048) Example 1.27. Set tls.ct_wq_max at runtime $ kamcmd cfg.set_now_int tls ct_wq_blk_size 2048 -9.23. tls_log (int) +10.23. tls_log (int) Sets the log level at which TLS related messages will be logged. @@ -1012,7 +1085,7 @@ modparam("tls", "tls_log", 10) Example 1.29. Set tls.log at runtime $ kamcmd cfg.set_now_int tls log 10 -9.24. tls_debug (int) +10.24. tls_debug (int) Sets the log level at which TLS debug messages will be logged. Note that TLS debug messages are enabled only if the TLS module is compiled @@ -1033,7 +1106,7 @@ modparam("tls", "tls_debug", 10) Example 1.31. Set tls.debug at runtime $ kamcmd cfg.set_now_int tls debug 10 -9.25. low_mem_threshold1 (integer) +10.25. low_mem_threshold1 (integer) Sets the minimal free memory from which attempts to open or accept new TLS connections will start to fail. The value is expressed in KB. @@ -1043,7 +1116,7 @@ modparam("tls", "tls_debug", 10) writing this is not true for any OpenSSL version (including 0.9.8e). If an ill-behaved OpenSSL version is detected, a very conservative - value is choosed, which depends on the maximum possible number of + value is chosen, which depends on the maximum possible number of simultaneously created TLS connections (and hence on the process number). @@ -1064,7 +1137,7 @@ modparam("tls", "low_mem_threshold1", -1) Example 1.33. Set tls.low_mem_threshold1 at runtime $ kamcmd cfg.set_now_int tls low_mem_threshold1 2048 -9.26. low_mem_threshold2 (integer) +10.26. low_mem_threshold2 (integer) Sets the minimal free memory from which TLS operations on already established TLS connections will start to fail preemptively. The value @@ -1075,7 +1148,7 @@ modparam("tls", "low_mem_threshold1", -1) not true for any OpenSSL version (including 0.9.8e). If an ill-behaved OpenSSL version is detected, a very conservative - value is choosed, which depends on the maximum possible number of + value is chosen, which depends on the maximum possible number of simultaneously created TLS connections (and hence on the process number). @@ -1096,12 +1169,12 @@ modparam("tls", "low_mem_threshold2", -1) Example 1.35. Set tls.low_mem_threshold2 at runtime $ kamcmd cfg.set_now_int tls low_mem_threshold2 1024 -9.27. tls_force_run (boolean) +10.27. tls_force_run (boolean) If enabled Kamailio will start even if some of the OpenSSL sanity checks fail (turn it on at your own risk). - If any of the following sanity checks fal, Kamailio will not start: + If any of the following sanity checks fail, Kamailio will not start: * the version of the library the TLS module was compiled with is "too different" from the library used at runtime. The versions should have the same major, minor and fix level (e.g.: 0.9.8a and 0.9.8c @@ -1116,7 +1189,7 @@ modparam("tls", "low_mem_threshold2", -1) modparam("tls", "tls_force_run", 11) ... -9.28. session_cache (boolean) +10.28. session_cache (boolean) If enabled Kamailio will do caching of the TLS sessions data, generation a session_id and sending it back to client. @@ -1128,7 +1201,7 @@ modparam("tls", "tls_force_run", 11) modparam("tls", "session_cache", 1) ... -9.29. session_id (str) +10.29. session_id (str) The value for session ID context, making sense when session caching is enabled. @@ -1140,7 +1213,7 @@ modparam("tls", "session_cache", 1) modparam("tls", "session_id", "my-session-id-context") ... -9.30. renegotiation (boolean) +10.30. renegotiation (boolean) If enabled Kamailio will allow renegotiations of TLS connection initiated by the client. This may expose to a security risk if the @@ -1154,7 +1227,7 @@ modparam("tls", "session_id", "my-session-id-context") modparam("tls", "renegotiation", 1) ... -9.31. config (string) +10.31. config (string) Sets the name of the TLS specific configuration file or configuration directory. @@ -1176,17 +1249,23 @@ modparam("tls", "renegotiation", 1) The following parameters can be set in the config file, for each domain: - * tls_method - * verify_certificate - * require_certificate - * private_key - * certificate - * verify_depth - * ca_list - * crl - * cipher_list - * server_name - * server_id + * tls_method - (str) - TLS methods + * verify_certificate - (bool) - see modparam + * require_certificate - (bool) - see modparam + * private_key - (str) - see modparam + * certificate - (str) - see modparam + * verify_depth - (int) - see modparam + * ca_list - (str) - see modparam + * crl - (str) - see modparam + * cipher_list - (str) - see modparam + * server_name - (str) - SNI (server name identification) + * server_name_mode - (int) - how to match server_name + * server_id - (str) - server id + + The value for server_name_mode specifies how to match the server_name + (SNI). If set to 1, match the domain and all its subdomains. If set to + 2, match only the subdomains. If set to 0 (or anything else), match + only the domain given in server_name. The value for server_id can be any string, being used to match TLS client config profile, overriding the match on ip:port and server_name. @@ -1204,7 +1283,28 @@ modparam("tls", "renegotiation", 1) when it initiates a new connection by itself (it connects to something). - Example 1.40. Short config file + The tls.cfg consists on a set of server and client TLS domain profiles. + A server TLS domain profile starts with [server:domain]. A client TLS + domain profile starts with [client:domain]. The tokens 'server' and + 'client' are static values. The 'domain' part can be: 'ip:port' - the + IP address and port to match with the TLS connection; 'default' - + (static string) for client and server profiles to be used when no other + profile is matched; 'any' - (static string) for client and server + profiles to be matched based on 'server_name', no matter of IP and port + of the TLS connection. + + There can be only one of each [server:default] and [client:default] + profile definitions. Other profiles can be defined many times with the + same domain ('ip:port' or 'any'), but in that case they must have + 'server_name' set for matching SNI. + + It is highly recommended to have [server:default] and [client:default] + profile definitions. They are needed when SNI is not yet available. If + SNI is provided, then the profile definition is searched again to match + on 'server_name'. + + Example 1.40. Sample TLS Config File +... [server:default] method = TLSv1 verify_certificate = yes @@ -1218,13 +1318,13 @@ crl = default_crl.pem verify_certificate = yes require_certificate = yes -#more relaxed for connection on the loopback interface +# more relaxed for connection on the loopback interface [server:127.0.0.1:5061] -method = SSLv23 +method = TLSv1 verify_certificate = yes require_certificate = no -private_key = local_key.pem -certificate = local_cert.pem +private_key = local_kamailio_org_key.pem +certificate = local_kamailio_org_cert.pem verify_depth = 3 ca_list = local_ca.pem server_name = kamailio.org @@ -1240,6 +1340,19 @@ crl = default_crl.pem server_name = kamailio.org server_id = kamailio.org +# server profile on any address +[server:any] +method = TLSv1 +verify_certificate = yes +require_certificate = no +private_key = kamailio_net_key.pem +certificate = kamailio_net_cert.pem +verify_depth = 3 +ca_list = local_ca.pem +server_name = kamailio.net +server_name_mode = 1 +... + For a more complete example check the tls.cfg distributed with the Kamailio source (kamailio/modules/tls/tls.cfg). @@ -1255,7 +1368,7 @@ modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg") $ kamcmd cfg.set_now_string tls config "/usr/local/etc/kamailio/new_tls.cfg" $ kamcmd tls.reload -9.32. xavp_cfg (string) +10.32. xavp_cfg (string) Sets the name of XAVP that stores attributes for TLS connections. @@ -1280,7 +1393,7 @@ modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg") route(RELAY); ... -9.33. event_callback (str) +10.33. event_callback (str) The name of the function in the kemi configuration file (embedded scripting language such as Lua, Python, ...) to be executed instead of @@ -1302,30 +1415,74 @@ function ksr_tls_event(evname) end ... -10. Functions +10.34. engine (string) + + If OpenSSL is compiled with engine support this will allow algorithms + to be offloaded and private keys from HSM to be used. Currently only a + single global engine is supported. However, private keys can be + specified per_domain. + + To use private keys from the HSM, the name is the HSM key label + prefixed by /engine:. +... +## example for the Gem engine +modparam("tls", "engine", "gem") +# can also be set per-domain in tls.cfg +modparam("tls", "private_key", "/engine:my_HSM_key_label") + +## example for engine_pkcs11 +modparam("tls", "engine", "pkcs11") +modparam("tls", "private_key", "/engine:pkcs11:token=MYTOKEN;object=MYKEYLABEL") + +modparam("tls", "engine_conf", "/usr/local/etc/kamailio/openssl.cnf") +modparam("tls", "engine_algorithms", "ALL") +... + + By default OpenSSL engine support is disabled (NONE). This global param + is not supported in the tls config file. + +10.35. engine_config (string) + + A 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. - 10.1. is_peer_verified() +10.36. engine_algorithms (string) -10.1. is_peer_verified() + A list of cryptographic methods to be set as default in the engine. + This is a comma-separated list of values from ALL RSA DSA DH EC RAND + CIPHERS DIGESTS PKEY PKEY_CRYPTO PKEY_ASN1. Not all methods are + supported by every engine. - Returns true if the connection on which the message was received is TLS - , the peer presented an X509 certificate and the certificate chain - verified ok. It can be used only in a request route. + The default is not to set any methods as default. This global param is + not supported in the tls config file. + +11. Functions + + 11.1. is_peer_verified() + +11.1. is_peer_verified() + + Returns true if the connection on which the message was received is + TLS, the peer presented an X509 certificate and the certificate chain + verified ok. + + It can be used only in a request route. Example 1.45. is_peer_verified usage - if (proto==TLS && !is_peer_verified()){ + if (proto==TLS && !is_peer_verified()) { sl_send_reply("400", "No certificate or verification failed"); - drop; + exit; } -11. RPC Commands +12. RPC Commands - 11.1. tls.info - 11.2. tls.list - 11.3. tls.options - 11.4. tls.reload + 12.1. tls.info + 12.2. tls.list + 12.3. tls.options + 12.4. tls.reload -11.1. tls.info +12.1. tls.info List internal information related to the TLS module in a short list - max connections, open connections and the write queue size. @@ -1333,21 +1490,21 @@ end Parameters: * None. -11.2. tls.list +12.2. tls.list List details about all active TLS connections. Parameters: * None. -11.3. tls.options +12.3. tls.options List the current TLS configuration. Parameters: * None. -11.4. tls.reload +12.4. tls.reload Reload the external TLS configuration file (aka tls.cfg). It does not reload modparam() parameters. Note that existing active TLS connections @@ -1357,18 +1514,18 @@ end Parameters: * None. -12. Status +13. Status - 12.1. License - 12.2. History + 13.1. License + 13.2. History -12.1. License +13.1. License Most of the code for this module has been released under BSD by iptelorg. The GPL parts are released with an exception to link with OpenSSL toolkit software components. -12.2. History +13.2. History For version 3.1 most of the TLS specific code was completely re-written to add support for asynchronous TLS and fix several long standing bugs. @@ -1379,11 +1536,11 @@ end Install does not generate self-signed certificates by default anymore. In order to generate them now you should do "make install-tls-cert" -13. Event Routes +14. Event Routes - 13.1. event_route[tls:connection-out] + 14.1. event_route[tls:connection-out] -13.1. event_route[tls:connection-out] +14.1. event_route[tls:connection-out] Event route to be executed when a TLS connection is opened by Kamailio. If drop() is executed in the event route, then the data is no longer @@ -1397,3 +1554,32 @@ event_route[tls:connection-out] { } } ... + +15. TLS With Database Backend + + The module does not connect to database to fetch the values for the TLS + profile attributes. However the 'kamcli' tool can generate the tls.cfg + from a database table. Once generated, the 'tls.cfg' can be reloaded + with an RPC command. + + The kamcli tool can be found at https://github.com/kamailio/kamcli. + + The schema to create the database table can be seen with the command: + "kamcli tls sqlprint". The default name for database table is 'tlscfg'. + + The most of the column names matches the corresponding attribute names + from a TLS profile. + + The profile id in 'tls.cfg' is generated from + '[profile_type:profile_name]'. The 'profile_type' has to be 'server' or + 'client'. The 'profile_name' can be 'default', 'any' or the pair of IP + address and port like 'ipaddr:port'. + + The 'file_type' is specifying if the values for 'certificate', + 'private_key', 'ca_list' and 'crl' are path to files on disc (when is + set to 0) or the content of the files (when set to 1). If 'file_type' + is 1, then 'kamcli' will create new files on disc and store the values + from the database in them. The target folder for 'tls.cfg' and the + certificates related files can be set via command options for 'kamcli + tls', for more details see the output of 'kamcli tls --help' and + 'kamcli tls cfgprint --help'. diff --git a/src/modules/tls/doc/certs_howto.xml b/src/modules/tls/doc/certs_howto.xml index f09f9197f..437274cc8 100644 --- a/src/modules/tls/doc/certs_howto.xml +++ b/src/modules/tls/doc/certs_howto.xml @@ -45,7 +45,7 @@ certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of - # several ctificates with same subject. + # several certificates with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate diff --git a/src/modules/tls/doc/functions.xml b/src/modules/tls/doc/functions.xml index 1f3116f26..2a371de8f 100644 --- a/src/modules/tls/doc/functions.xml +++ b/src/modules/tls/doc/functions.xml @@ -18,16 +18,18 @@ <function>is_peer_verified()</function> Returns true if the connection on which the message was received - is TLS , the peer presented an X509 certificate and the + is TLS, the peer presented an X509 certificate and the certificate chain verified ok. + + It can be used only in a request route. <function>is_peer_verified</function> usage - if (proto==TLS && !is_peer_verified()){ + if (proto==TLS && !is_peer_verified()) { sl_send_reply("400", "No certificate or verification failed"); - drop; + exit; } diff --git a/src/modules/tls/doc/hsm_howto.xml b/src/modules/tls/doc/hsm_howto.xml new file mode 100644 index 000000000..985d86167 --- /dev/null +++ b/src/modules/tls/doc/hsm_howto.xml @@ -0,0 +1,63 @@ + + + +%docentities; + +]> + +
+ + + + HSM Howto + + This documents OpenSSL engine support for private keys in HSM. + + + Assumptions: an OpenSSL engine configured with private key. We still require the certificate file + and list of CA certificates per a regular TLS configuration. + + + +AWS CloudHSM Example +-------------------- + +... +# Example for AWS CloudHSM (SafeNet Luna) +modparam("tls", "engine", "gem") +modparam("tls", "engine_config", "/usr/local/etc/kamailio/luna.conf") +modparam("tls", "engine_algorithms", "ALL) +... + +/usr/local/etc/kamailio/luna.cnf is a OpenSSL config format file used to +bootstrap the engine, e.g., pass the PIN. + +... +# the key kamailio is mandatory +kamailio = openssl_init + +[ openssl_init ] +engines = engine_section + +[ engine_section ] +# gem is the name of the SafeNet Luna OpenSSL engine +gem = gem_section + +[ gem_section ] +# from SafeNet documentation +ENGINE_INIT = 0:20:21:password=1234-ABCD-5678-EFGH +... + + +Thales nShield Connect +---------------------- + +Place holder + + + + +
diff --git a/src/modules/tls/doc/params.xml b/src/modules/tls/doc/params.xml index e3d236dea..6ef2d4123 100644 --- a/src/modules/tls/doc/params.xml +++ b/src/modules/tls/doc/params.xml @@ -541,7 +541,7 @@ modparam("tls", "ssl_freelist_max_len", 0) Sets the maximum number of bytes (from the clear text) sent into one TLS record. Valid values are between 512 and 16384. Note however that even valid low values might not be big enough to - allow a succesfull handshake (try minimum 1024). + allow a successful handshake (try minimum 1024). Lower values would lead to less memory usage, but values lower then @@ -553,7 +553,7 @@ modparam("tls", "ssl_freelist_max_len", 0) Values on the lower side, even if valid (> 512), might not allow - for a succesfull initial handshake. This happens if the + for a successful initial handshake. This happens if the certificate does not fit inside one send fragment. Values lower then 1024 should not be used. Even with higher values, if the handshake fails, @@ -717,7 +717,7 @@ modparam("tls", "ct_wq_max", 4194304) <varname>ct_wq_blk_size</varname> (integer) Minimum block size for the internal clear-text send queues - (debugging / advanced tunning). + (debugging / advanced tuning). Good values are multiple of typical datagram sizes. @@ -819,7 +819,7 @@ modparam("tls", "tls_debug", 10) As of this writing this is not true for any OpenSSL version (including 0.9.8e). - If an ill-behaved OpenSSL version is detected, a very conservative value is choosed, + If an ill-behaved OpenSSL version is detected, a very conservative value is chosen, which depends on the maximum possible number of simultaneously created TLS connections (and hence on the process number). @@ -873,7 +873,7 @@ modparam("tls", "low_mem_threshold1", -1) As of this writing this is not true for any OpenSSL version (including 0.9.8e). - If an ill-behaved OpenSSL version is detected, a very conservative value is choosed, + If an ill-behaved OpenSSL version is detected, a very conservative value is chosen, which depends on the maximum possible number of simultaneously created TLS connections (and hence on the process number). @@ -921,7 +921,7 @@ modparam("tls", "low_mem_threshold2", -1) If enabled &kamailio; will start even if some of the OpenSSL sanity checks fail (turn it on at your own risk). - If any of the following sanity checks fal, Kamailio will not start: + If any of the following sanity checks fail, Kamailio will not start: @@ -1034,18 +1034,25 @@ modparam("tls", "renegotiation", 1) domain: - tls_method - verify_certificate - require_certificate - private_key - certificate - verify_depth - ca_list - crl - cipher_list - server_name - server_id + tls_method - (str) - TLS methods + verify_certificate - (bool) - see modparam + require_certificate - (bool) - see modparam + private_key - (str) - see modparam + certificate - (str) - see modparam + verify_depth - (int) - see modparam + ca_list - (str) - see modparam + crl - (str) - see modparam + cipher_list - (str) - see modparam + server_name - (str) - SNI (server name identification) + server_name_mode - (int) - how to match server_name + server_id - (str) - server id + + The value for server_name_mode specifies how to match the server_name + (SNI). If set to 1, match the domain and all its subdomains. If set to + 2, match only the subdomains. If set to 0 (or anything else), match only + the domain given in server_name. + The value for server_id can be any string, being used to match TLS client config profile, overriding the match on ip:port and @@ -1066,9 +1073,34 @@ modparam("tls", "renegotiation", 1) client when it initiates a new connection by itself (it connects to something). + + The tls.cfg consists on a set of server and client TLS domain profiles. + A server TLS domain profile starts with [server:domain]. A client TLS + domain profile starts with [client:domain]. The tokens 'server' and + 'client' are static values. The 'domain' part can be: 'ip:port' - the + IP address and port to match with the TLS connection; 'default' - + (static string) for client and server profiles to be used when + no other profile is matched; 'any' - (static string) for client and + server profiles to be matched based on 'server_name', no matter of + IP and port of the TLS connection. + + + There can be only one of each [server:default] and [client:default] + profile definitions. Other profiles can be defined many times with the + same domain ('ip:port' or 'any'), but in that case they must have + 'server_name' set for matching SNI. + + + It is highly recommended to have [server:default] and [client:default] + profile definitions. They are needed when SNI is not yet available. If + SNI is provided, then the profile definition is searched again to match + on 'server_name'. + + - Short config file + Sample TLS Config File +... [server:default] method = TLSv1 verify_certificate = yes @@ -1082,13 +1114,13 @@ crl = default_crl.pem verify_certificate = yes require_certificate = yes -#more relaxed for connection on the loopback interface +# more relaxed for connection on the loopback interface [server:127.0.0.1:5061] -method = SSLv23 +method = TLSv1 verify_certificate = yes require_certificate = no -private_key = local_key.pem -certificate = local_cert.pem +private_key = local_kamailio_org_key.pem +certificate = local_kamailio_org_cert.pem verify_depth = 3 ca_list = local_ca.pem server_name = kamailio.org @@ -1103,6 +1135,19 @@ ca_list = default_ca.pem crl = default_crl.pem server_name = kamailio.org server_id = kamailio.org + +# server profile on any address +[server:any] +method = TLSv1 +verify_certificate = yes +require_certificate = no +private_key = kamailio_net_key.pem +certificate = kamailio_net_cert.pem +verify_depth = 3 +ca_list = local_ca.pem +server_name = kamailio.net +server_name_mode = 1 +... @@ -1196,4 +1241,56 @@ end
- +
+ <varname>engine</varname> (string) + + If OpenSSL is compiled with engine support this will allow algorithms to be offloaded and + private keys from HSM to be used. Currently only a single global engine is supported. + However, private keys can be specified per_domain. + + + + To use private keys from the HSM, the name is the HSM key label prefixed by /engine:. + + +... +## example for the Gem engine +modparam("tls", "engine", "gem") +# can also be set per-domain in tls.cfg +modparam("tls", "private_key", "/engine:my_HSM_key_label") + +## example for engine_pkcs11 +modparam("tls", "engine", "pkcs11") +modparam("tls", "private_key", "/engine:pkcs11:token=MYTOKEN;object=MYKEYLABEL") + +modparam("tls", "engine_conf", "/usr/local/etc/kamailio/openssl.cnf") +modparam("tls", "engine_algorithms", "ALL") +... + + + By default OpenSSL engine support is disabled (NONE). This global param is not supported in the tls config file. + +
+ +
+ <varname>engine_config</varname> (string) + + A 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. + +
+ + +
+ <varname>engine_algorithms</varname> (string) + + A list of cryptographic methods to be set as default in the engine. + This is a comma-separated list of values + from ALL RSA DSA DH EC RAND CIPHERS DIGESTS PKEY PKEY_CRYPTO PKEY_ASN1. + Not all methods are supported by every engine. + + + The default is not to set any methods as default. 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 0c8fce400..ba8d4b2ac 100644 --- a/src/modules/tls/doc/tls.xml +++ b/src/modules/tls/doc/tls.xml @@ -68,27 +68,41 @@
Quick Start - Make sure you have a proper certificate and private key and either - use the certificate and private_key - module parameters, or make sure the certificate and key are in the same PEM file, - named cert.pem an placed in [your-cfg-install-prefix]/etc/kamailio/. - Don't forget to load the tls module and to enable TLS - (add enable_tls=yes to your config). + The default kamailio.cfg file has basic tls support included, it has to + be enabled with "#!define WITH_TLS" directive. + + + The most important parameters to set the path to the public certificate and private key + files. You can either have them in different file or in the same file in PEM format. + The parameters for them are certificate and private_key. + They can be given as modparam or or provided in the profiles of tls.cfg file. + + + When installing tls module of kamailio, a sample 'tls.cfg' file is deployed in the same + folder with 'kamailio.cfg', along with freshly generated self signed certificates. + + + HINT: be sure you have enable_tls=yes to your kamailio.cfg. - Quick start config + Quick Start Basic Config #... -loadmodule "modules/tls/tls.so" +loadmodule "sl.so" +loadmodule "tls.so" -modparam("tls", "private_key", "./andrei-test.pem") -modparam("tls", "certificate", "./andrei-test.pem") +modparam("tls", "private_key", "./server-test.pem") +modparam("tls", "certificate", "./server-test.pem") modparam("tls", "ca_list", "./calist.pem") enable_tls=yes -route{ - # .... +request_route { + if(proto != TLS) { + sl_send_reply("403", "Accepting TLS Only"); + exit; + } + ... } @@ -271,6 +285,7 @@ make -C modules/tls extra_defs="-DTLS_WR_DEBUG -DTLS_RD_DEBUG"
+ @@ -300,6 +315,40 @@ event_route[tls:connection-out] { +
+ TLS With Database Backend + + The module does not connect to database to fetch the values for the + TLS profile attributes. However the 'kamcli' tool can generate the tls.cfg + from a database table. Once generated, the 'tls.cfg' can be reloaded with + an RPC command. + + + The kamcli tool can be found at https://github.com/kamailio/kamcli. + + + The schema to create the database table can be seen with the command: "kamcli tls sqlprint". + The default name for database table is 'tlscfg'. + + + The most of the column names matches the corresponding attribute names + from a TLS profile. + + + The profile id in 'tls.cfg' is generated from '[profile_type:profile_name]'. + The 'profile_type' has to be 'server' or 'client'. The 'profile_name' + can be 'default', 'any' or the pair of IP address and port like 'ipaddr:port'. + + + The 'file_type' is specifying if the values for 'certificate', 'private_key', + 'ca_list' and 'crl' are path to files on disc (when is set to 0) or the + content of the files (when set to 1). If 'file_type' is 1, then 'kamcli' + will create new files on disc and store the values from the database in + them. The target folder for 'tls.cfg' and the certificates related files + can be set via command options for 'kamcli tls', for more details see + the output of 'kamcli tls --help' and 'kamcli tls cfgprint --help'. + +
diff --git a/src/modules/tls/sip-router-tls.cfg b/src/modules/tls/sip-router-tls.cfg deleted file mode 100644 index ae860d1a6..000000000 --- a/src/modules/tls/sip-router-tls.cfg +++ /dev/null @@ -1,25 +0,0 @@ -# -# This is a minimalistic SER configuration file which can -# be used to test the TLS module. -# -debug=4 # debug level (cmd line: -dddddddddd) -fork=yes -log_stderror=yes - -children=1 -enable_tls=1 - -loadpath "./modules" - -loadmodule "sl" -loadmodule "tls" - -modparam("tls", "config", "tls.cfg") - -listen=tls:127.0.0.1:5061 - -route { - sl_reply("200", "OK"); - break; -} - diff --git a/src/modules/tls/tls.cfg b/src/modules/tls/tls.cfg index dd25abd4a..b84ba8fcf 100644 --- a/src/modules/tls/tls.cfg +++ b/src/modules/tls/tls.cfg @@ -2,8 +2,9 @@ # Example Kamailio TLS Configuration File # -# This is the default server domain, settings -# in this domain will be used for all incoming +# --- +# This is the default server domain profile. +# Settings in this domain will be used for all incoming # connections that do not match any other server # domain in this configuration file. # @@ -20,8 +21,9 @@ certificate = /usr/local/etc/kamailio/kamailio-selfsigned.pem #ca_list = /usr/local/etc/kamailio/tls/cacert.pem #crl = /usr/local/etc/kamailio/tls/crl.pem -# This is the default client domain, settings -# in this domain will be used for all outgoing +# --- +# This is the default client domain profile. +# Settings in this domain will be used for all outgoing # TLS connections that do not match any other # client domain in this configuration file. # We require that servers present valid certificate. @@ -31,6 +33,7 @@ certificate = /usr/local/etc/kamailio/kamailio-selfsigned.pem verify_certificate = yes require_certificate = yes +# --- # This is an example server domain for TLS connections # received from the loopback interface. We allow # the use of TLSv1 protocols here, we do @@ -46,11 +49,12 @@ require_certificate = yes #private_key = /usr/local/etc/kamailio/tls/local_key.pem #certificate = /usr/local/etc/kamailio/tls/local_cert.pem #verify_depth = 3 -#ca_list = local_ca.pem -#crl = local_crl.pem +#ca_list = /usr/local/etc/kamailio/tls/local_ca.pem +#crl = /usr/local/etc/kamailio/tls/local_crl.pem #server_name = kamailio.org #server_id = kamailio.org +# --- # Special settings for connecting to the example.sip (1.2.3.4) # public SIP server. We do not verify the certificate of the # server because it can be expired. The server @@ -60,9 +64,43 @@ require_certificate = yes # #[client:1.2.3.4:5061] #verify_certificate = no -#certificate = /usr/local/etc/kamailio/tls/example_client.pem #private_key = /usr/local/etc/kamailio/tls/example_key.pem +#certificate = /usr/local/etc/kamailio/tls/example_cert.pem #ca_list = /usr/local/etc/kamailio/tls/example_ca.pem #crl = /usr/local/etc/kamailio/tls/example_crl.pem #server_name = example.sip #server_id = example.sip + +# --- +# Example server profile for listening on any ip/port +# - it requires to have 'server_name' to match on SNI (domain and subdomains) +# +#[server:any] +#method = TLSv1 +#verify_certificate = yes +#require_certificate = no +#private_key = /usr/local/etc/kamailio/tls/mysipserver_org_key.pem +#certificate = /usr/local/etc/kamailio/tls/mysipserver_org_cert.pem +#verify_depth = 3 +#ca_list = /usr/local/etc/kamailio/tls/mysipserver_org_ca.pem +#crl = /usr/local/etc/kamailio/tls/mysipserver_org_crl.pem +#server_name = mysipserver.org +#server_name_mode = 1 +#server_id = mysipserver.org + +# --- +# Example server profile for listening on any ip/port +# - it requires to have 'server_name' to match on SNI (only subdomains) +# +#[server:any] +#method = TLSv1 +#verify_certificate = yes +#require_certificate = no +#private_key = /usr/local/etc/kamailio/tls/mysipserver_net_key.pem +#certificate = /usr/local/etc/kamailio/tls/mysipserver_net_cert.pem +#verify_depth = 3 +#ca_list = /usr/local/etc/kamailio/tls/mysipserver_net_ca.pem +#crl = /usr/local/etc/kamailio/tls/mysipserver_net_crl.pem +#server_name = mysipserver.net +#server_name_mode = 2 +#server_id = mysipserver.net diff --git a/src/modules/tls/sip-router_cert.sh b/src/modules/tls/tls_cert.sh similarity index 100% rename from src/modules/tls/sip-router_cert.sh rename to src/modules/tls/tls_cert.sh diff --git a/src/modules/tls/tls_cfg.c b/src/modules/tls/tls_cfg.c index 04425b62a..d133a2da9 100644 --- a/src/modules/tls/tls_cfg.c +++ b/src/modules/tls/tls_cfg.c @@ -36,6 +36,7 @@ struct cfg_group_tls default_tls_cfg = { 0, /* tls_force_run */ STR_STATIC_INIT("TLSv1"), /* method */ STR_NULL, /* server name (sni) */ + 0, /* server name (sni) mode */ STR_NULL, /* server id */ 0, /* verify_certificate */ 9, /* verify_depth */ @@ -143,6 +144,8 @@ cfg_def_t tls_cfg_def[] = { "TLS method used (TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2, SSLv23)"}, {"server_name", CFG_VAR_STR | CFG_READONLY, 0, 0, 0, 0, "Server name (SNI)"}, + {"server_name_mode", CFG_VAR_INT | CFG_READONLY, 0, 1, 0, 0, + "Server name (SNI) mode" }, {"server_id", CFG_VAR_STR | CFG_READONLY, 0, 0, 0, 0, "Server id (match tls profile for outgoing connections)"}, {"verify_certificate", CFG_VAR_INT | CFG_READONLY, 0, 1, 0, 0, diff --git a/src/modules/tls/tls_cfg.h b/src/modules/tls/tls_cfg.h index eddd83e46..ae404e14b 100644 --- a/src/modules/tls/tls_cfg.h +++ b/src/modules/tls/tls_cfg.h @@ -41,6 +41,7 @@ struct cfg_group_tls { int force_run; str method; str server_name; + int server_name_mode; str server_id; int verify_cert; int verify_depth; diff --git a/src/modules/tls/tls_config.c b/src/modules/tls/tls_config.c index fceba479e..72ed98736 100644 --- a/src/modules/tls/tls_config.c +++ b/src/modules/tls/tls_config.c @@ -41,8 +41,8 @@ #include #include -static tls_domains_cfg_t* cfg = NULL; -static tls_domain_t* domain = NULL; +static tls_domains_cfg_t* _ksr_tls_cfg = NULL; +static tls_domain_t* _ksr_tls_domain = NULL; static int parse_ipv6(struct ip_addr* ip, cfg_token_t* token, cfg_parser_t* st) @@ -146,6 +146,12 @@ static cfg_option_t token_default[] = { {0} }; +static cfg_option_t ksr_tls_token_any[] = { + {"any"}, + {"all"}, + {0} +}; + static cfg_option_t options[] = { {"method", .param = methods, .f = cfg_parse_enum_opt}, @@ -164,6 +170,7 @@ static cfg_option_t options[] = { {"ca_list", .f = cfg_parse_str_opt, .flags = CFG_STR_SHMMEM}, {"crl", .f = cfg_parse_str_opt, .flags = CFG_STR_SHMMEM}, {"server_name", .f = cfg_parse_str_opt, .flags = CFG_STR_SHMMEM}, + {"server_name_mode", .f = cfg_parse_int_opt}, {"server_id", .f = cfg_parse_str_opt, .flags = CFG_STR_SHMMEM}, {0} }; @@ -173,27 +180,28 @@ static void update_opt_variables(void) { int i; for(i = 0; methods[i].name; i++) { - methods[i].param = &domain->method; + methods[i].param = &_ksr_tls_domain->method; } - options[2].param = &domain->verify_cert; - options[3].param = &domain->verify_cert; - options[4].param = &domain->verify_depth; - options[5].param = &domain->require_cert; - options[6].param = &domain->require_cert; - options[7].param = &domain->pkey_file; - options[8].param = &domain->pkey_file; - options[9].param = &domain->ca_file; - options[10].param = &domain->cert_file; - options[11].param = &domain->cert_file; - options[12].param = &domain->cipher_list; - options[13].param = &domain->ca_file; - options[14].param = &domain->crl_file; - options[15].param = &domain->server_name; - options[16].param = &domain->server_id; + options[2].param = &_ksr_tls_domain->verify_cert; + options[3].param = &_ksr_tls_domain->verify_cert; + options[4].param = &_ksr_tls_domain->verify_depth; + options[5].param = &_ksr_tls_domain->require_cert; + options[6].param = &_ksr_tls_domain->require_cert; + options[7].param = &_ksr_tls_domain->pkey_file; + options[8].param = &_ksr_tls_domain->pkey_file; + options[9].param = &_ksr_tls_domain->ca_file; + options[10].param = &_ksr_tls_domain->cert_file; + options[11].param = &_ksr_tls_domain->cert_file; + options[12].param = &_ksr_tls_domain->cipher_list; + options[13].param = &_ksr_tls_domain->ca_file; + options[14].param = &_ksr_tls_domain->crl_file; + options[15].param = &_ksr_tls_domain->server_name; + options[16].param = &_ksr_tls_domain->server_name_mode; + options[17].param = &_ksr_tls_domain->server_id; } -static int parse_hostport(int* type, struct ip_addr* ip, unsigned int* port, +static int ksr_tls_parse_hostport(int* type, struct ip_addr* ip, unsigned int* port, cfg_token_t* token, cfg_parser_t* st) { int ret; @@ -217,7 +225,14 @@ static int parse_hostport(int* type, struct ip_addr* ip, unsigned int* port, /* Default domain */ return 0; } else { - if (parse_ipv4(ip, &t, st) < 0) return -1; + opt = cfg_lookup_token(ksr_tls_token_any, &t.val); + if (opt) { + *type = TLS_DOMAIN_ANY; + /* Default domain */ + return 0; + } else { + if (parse_ipv4(ip, &t, st) < 0) return -1; + } } } else { LM_ERR("%s:%d:%d: Syntax error, IP address expected\n", @@ -258,7 +273,7 @@ static int parse_hostport(int* type, struct ip_addr* ip, unsigned int* port, } -static int parse_domain(void* param, cfg_parser_t* st, unsigned int flags) +static int ksr_tls_parse_domain(void* param, cfg_parser_t* st, unsigned int flags) { cfg_token_t t; int ret; @@ -268,6 +283,13 @@ static int parse_domain(void* param, cfg_parser_t* st, unsigned int flags) struct ip_addr ip; unsigned int port; + if(_ksr_tls_cfg!=NULL && _ksr_tls_domain!=NULL) { + /* Make sure the previous domain is not a duplicate */ + if (ksr_tls_domain_duplicated(_ksr_tls_cfg, _ksr_tls_domain)) { + return -1; + } + } + memset(&ip, 0, sizeof(struct ip_addr)); ret = cfg_get_token(&t, st, 0); @@ -299,7 +321,7 @@ static int parse_domain(void* param, cfg_parser_t* st, unsigned int flags) } port = 0; - if (parse_hostport(&type, &ip, &port, &t, st) < 0) return -1; + if (ksr_tls_parse_hostport(&type, &ip, &port, &t, st) < 0) return -1; ret = cfg_get_token(&t, st, 0); if (ret < 0) return -1; @@ -316,26 +338,29 @@ static int parse_domain(void* param, cfg_parser_t* st, unsigned int flags) if (cfg_eat_eol(st, flags)) return -1; - if ((domain = tls_new_domain(opt->val | type, &ip, port)) == NULL) { + if ((_ksr_tls_domain = tls_new_domain(opt->val | type, &ip, port)) == NULL) { LM_ERR("%s:%d: Cannot create TLS domain structure\n", st->file, st->line); return -1; } - ret = tls_add_domain(cfg, domain); + ret = tls_add_domain(_ksr_tls_cfg, _ksr_tls_domain); if (ret < 0) { LM_ERR("%s:%d: Error while creating TLS domain structure\n", st->file, st->line); - tls_free_domain(domain); + tls_free_domain(_ksr_tls_domain); + _ksr_tls_domain = NULL; return -1; } else if (ret == 1) { LM_ERR("%s:%d: Duplicate TLS domain (appears earlier in the config file)\n", st->file, st->line); - tls_free_domain(domain); + tls_free_domain(_ksr_tls_domain); + _ksr_tls_domain = NULL; return -1; } update_opt_variables(); cfg_set_options(st, options); + return 0; } @@ -361,7 +386,7 @@ tls_domains_cfg_t* tls_load_config(str* filename) in_fd = out_fd = filename_is_directory = 0; file_path = (char *)0; - if ((cfg = tls_new_cfg()) == NULL) goto error; + if ((_ksr_tls_cfg = tls_new_cfg()) == NULL) goto error; if (stat(filename->s, &file_status) != 0) { LM_ERR("cannot stat config file %s\n", filename->s); @@ -436,11 +461,11 @@ tls_domains_cfg_t* tls_load_config(str* filename) } } - cfg_section_parser(parser, parse_domain, NULL); + cfg_section_parser(parser, ksr_tls_parse_domain, NULL); if (sr_cfg_parse(parser)) goto error; cfg_parser_close(parser); if (file_path) pkg_free(file_path); - return cfg; + return _ksr_tls_cfg; error: if (dir) closedir(dir); @@ -450,7 +475,10 @@ error: } if (file_path) pkg_free(file_path); if (parser) cfg_parser_close(parser); - if (cfg) tls_free_cfg(cfg); + if (_ksr_tls_cfg) { + tls_free_cfg(_ksr_tls_cfg); + _ksr_tls_cfg = NULL; + } return 0; } diff --git a/src/modules/tls/tls_domain.c b/src/modules/tls/tls_domain.c index d515402cc..fff4603eb 100644 --- a/src/modules/tls/tls_domain.c +++ b/src/modules/tls/tls_domain.c @@ -27,6 +27,13 @@ #include #include #include + +#ifndef OPENSSL_NO_ENGINE +#include +#include "tls_map.h" +extern EVP_PKEY * tls_engine_private_key(const char* key_id); +#endif + #if OPENSSL_VERSION_NUMBER >= 0x00907000L # include #endif @@ -265,6 +272,12 @@ char* tls_domain_str(tls_domain_t* d) p = strcat(p, d->type & TLS_DOMAIN_SRV ? "TLSs<" : "TLSc<"); if (d->type & TLS_DOMAIN_DEF) { p = strcat(p, "default>"); + } else if (d->type & TLS_DOMAIN_ANY) { + p = strcat(p, "any:"); + if(d->server_name.s && d->server_name.len>0) { + p = strncat(p, d->server_name.s, d->server_name.len); + } + p = strcat(p, ">"); } else { p = strcat(p, ip_addr2a(&d->ip)); p = strcat(p, ":"); @@ -284,7 +297,7 @@ char* tls_domain_str(tls_domain_t* d) * @param parent parent domain * @return 0 on success, -1 on error */ -static int fill_missing(tls_domain_t* d, tls_domain_t* parent) +static int ksr_tls_fill_missing(tls_domain_t* d, tls_domain_t* parent) { if (d->method == TLS_METHOD_UNSPEC) d->method = parent->method; LOG(L_INFO, "%s: tls_method=%d\n", tls_domain_str(d), d->method); @@ -976,12 +989,20 @@ static int tls_server_name_cb(SSL *ssl, int *ad, void *private) * @param d initialized TLS domain * @param def default TLS domains */ -static int fix_domain(tls_domain_t* d, tls_domain_t* def) +static int ksr_tls_fix_domain(tls_domain_t* d, tls_domain_t* def) { int i; int procs_no; - if (fill_missing(d, def) < 0) return -1; + if (ksr_tls_fill_missing(d, def) < 0) return -1; + + if(d->type & TLS_DOMAIN_ANY) { + if(d->server_name.s==NULL || d->server_name.len<0) { + LM_ERR("%s: tls domain for any address but no server name\n", + tls_domain_str(d)); + return -1; + } + } procs_no=get_max_procs(); d->ctx = (SSL_CTX**)shm_malloc(sizeof(SSL_CTX*) * procs_no); @@ -1040,17 +1061,20 @@ static int fix_domain(tls_domain_t* d, tls_domain_t* def) * check server domains for server_name extension and register * callback function */ - if ((d->type & TLS_DOMAIN_SRV) && d->server_name.len>0) { + if ((d->type & TLS_DOMAIN_SRV) + && (d->server_name.len>0 || (d->type & TLS_DOMAIN_DEF))) { if (!SSL_CTX_set_tlsext_servername_callback(d->ctx[i], tls_server_name_cb)) { LM_ERR("register server_name callback handler for socket " "[%s:%d], server_name='%s' failed for proc %d\n", - ip_addr2a(&d->ip), d->port, d->server_name.s, i); + ip_addr2a(&d->ip), d->port, + (d->server_name.s)?d->server_name.s:"", i); return -1; } if (!SSL_CTX_set_tlsext_servername_arg(d->ctx[i], d)) { LM_ERR("register server_name callback handler data for socket " "[%s:%d], server_name='%s' failed for proc %d\n", - ip_addr2a(&d->ip), d->port, d->server_name.s, i); + ip_addr2a(&d->ip), d->port, + (d->server_name.s)?d->server_name.s:"", i); return -1; } } @@ -1058,10 +1082,11 @@ static int fix_domain(tls_domain_t* d, tls_domain_t* def) } #ifndef OPENSSL_NO_TLSEXT - if ((d->type & TLS_DOMAIN_SRV) && d->server_name.len>0) { + if ((d->type & TLS_DOMAIN_SRV) + && (d->server_name.len>0 || (d->type & TLS_DOMAIN_DEF))) { LM_NOTICE("registered server_name callback handler for socket " "[%s:%d], server_name='%s' ...\n", ip_addr2a(&d->ip), d->port, - d->server_name.s); + (d->server_name.s)?d->server_name.s:""); } #endif @@ -1113,7 +1138,109 @@ err: #endif } +#ifndef OPENSSL_NO_ENGINE +/* + * Implement a hash map from SSL_CTX to private key + * as HSM keys need to be process local + */ +static map_void_t private_key_map; + +/** + * @brief Return a private key from the lookup table + * @param p SSL_CTX* + * @return EVP_PKEY on success, NULL on error + */ +EVP_PKEY* tls_lookup_private_key(SSL_CTX* ctx) +{ + void *pkey; + char ctx_str[64]; + snprintf(ctx_str, 64, "SSL_CTX-%p", ctx); + pkey = map_get(&private_key_map, ctx_str); + LM_DBG("Private key lookup for %s: %p\n", ctx_str, pkey); + if (pkey) + return *(EVP_PKEY**)pkey; + else + return NULL; +} + + + +/** + * @brief Load a private key from an OpenSSL engine + * @param d TLS domain + * @return 0 on success, -1 on error + * + * Do this in mod_child() as PKCS#11 libraries are not guaranteed + * to be fork() safe + * + * private_key setting which starts with /engine: is assumed to be + * an HSM key and not a file-based key + * + * We store the private key in a local memory hash table as + * HSM keys must be process-local. We use the SSL_CTX* address + * as the key. We cannot put the key into d->ctx[i] as that is + * in shared memory. + */ +static int load_engine_private_key(tls_domain_t* d) +{ + int idx, ret_pwd, i; + EVP_PKEY *pkey; + int procs_no; + char ctx_str[64]; + + if (!d->pkey_file.s || !d->pkey_file.len) { + DBG("%s: No private key specified\n", tls_domain_str(d)); + return 0; + } + if (strncmp(d->pkey_file.s, "/engine:", 8) != 0) + return 0; + procs_no = get_max_procs(); + for (i = 0; ictx[i]); + for(idx = 0, ret_pwd = 0; idx < 3; idx++) { + if (i) { + map_set(&private_key_map, ctx_str, pkey); + ret_pwd = 1; + } else { + pkey = tls_engine_private_key(d->pkey_file.s+8); + if (pkey) { + map_set(&private_key_map, ctx_str, pkey); + // store the key for i = 0 to perform certificate sanity check + ret_pwd = SSL_CTX_use_PrivateKey(d->ctx[i], pkey); + } else { + ret_pwd = 0; + } + } + if (ret_pwd) { + break; + } else { + ERR("%s: Unable to load private key '%s'\n", + tls_domain_str(d), d->pkey_file.s); + TLS_ERR("load_private_key:"); + continue; + } + } + + if (!ret_pwd) { + ERR("%s: Unable to load engine key label '%s'\n", + tls_domain_str(d), d->pkey_file.s); + TLS_ERR("load_private_key:"); + return -1; + } + if (i == 0 && !SSL_CTX_check_private_key(d->ctx[i])) { + ERR("%s: Key '%s' does not match the public key of the" + " certificate\n", tls_domain_str(d), d->pkey_file.s); + TLS_ERR("load_engine_private_key:"); + return -1; + } + } + + LM_INFO("%s: Key '%s' successfully loaded\n", + tls_domain_str(d), d->pkey_file.s); + return 0; +} +#endif /** * @brief Load a private key from a file * @param d TLS domain @@ -1137,8 +1264,19 @@ static int load_private_key(tls_domain_t* d) SSL_CTX_set_default_passwd_cb_userdata(d->ctx[i], d->pkey_file.s); for(idx = 0, ret_pwd = 0; idx < 3; idx++) { +#ifndef OPENSSL_NO_ENGINE + // in PROC_INIT skip loading HSM keys due to + // fork() issues with PKCS#11 libaries + if (strncmp(d->pkey_file.s, "/engine:", 8) != 0) { + ret_pwd = SSL_CTX_use_PrivateKey_file(d->ctx[i], d->pkey_file.s, + SSL_FILETYPE_PEM); + } else { + ret_pwd = 1; + } +#else ret_pwd = SSL_CTX_use_PrivateKey_file(d->ctx[i], d->pkey_file.s, SSL_FILETYPE_PEM); +#endif if (ret_pwd) { break; } else { @@ -1155,7 +1293,12 @@ static int load_private_key(tls_domain_t* d) TLS_ERR("load_private_key:"); return -1; } - +#ifndef OPENSSL_NO_ENGINE + if (strncmp(d->pkey_file.s, "/engine:", 8) == 0) { + // skip private key validity check for HSM keys + continue; + } +#endif if (!SSL_CTX_check_private_key(d->ctx[i])) { ERR("%s: Key '%s' does not match the public key of the" " certificate\n", tls_domain_str(d), d->pkey_file.s); @@ -1170,6 +1313,36 @@ static int load_private_key(tls_domain_t* d) } +#ifndef OPENSSL_NO_ENGINE +/** + * @brief Initialize engine private keys + * + * PKCS#11 libraries are not guaranteed to be fork() safe + * so we fix private keys in the child + */ +int tls_fix_engine_keys(tls_domains_cfg_t* cfg, tls_domain_t* srv_defaults, + tls_domain_t* cli_defaults) +{ + tls_domain_t* d; + d = cfg->srv_list; + while(d) { + if (load_engine_private_key(d) < 0) return -1; + d = d->next; + } + + d = cfg->cli_list; + while(d) { + if (load_engine_private_key(d) < 0) return -1; + d = d->next; + } + + if (load_engine_private_key(cfg->srv_default) < 0) return -1; + if (load_engine_private_key(cfg->cli_default) < 0) return -1; + + return 0; + +} +#endif /** * @brief Initialize attributes of all domains from default domains if necessary * @@ -1199,18 +1372,18 @@ int tls_fix_domains_cfg(tls_domains_cfg_t* cfg, tls_domain_t* srv_defaults, 0, 0); } - if (fix_domain(cfg->srv_default, srv_defaults) < 0) return -1; - if (fix_domain(cfg->cli_default, cli_defaults) < 0) return -1; + if (ksr_tls_fix_domain(cfg->srv_default, srv_defaults) < 0) return -1; + if (ksr_tls_fix_domain(cfg->cli_default, cli_defaults) < 0) return -1; d = cfg->srv_list; while (d) { - if (fix_domain(d, srv_defaults) < 0) return -1; + if (ksr_tls_fix_domain(d, srv_defaults) < 0) return -1; d = d->next; } d = cfg->cli_list; while (d) { - if (fix_domain(d, cli_defaults) < 0) return -1; + if (ksr_tls_fix_domain(d, cli_defaults) < 0) return -1; d = d->next; } @@ -1343,6 +1516,7 @@ tls_domain_t* tls_lookup_cfg(tls_domains_cfg_t* cfg, int type, struct ip_addr* ip, unsigned short port, str *sname, str *srvid) { tls_domain_t *p; + int dotpos; if (type & TLS_DOMAIN_DEF) { if (type & TLS_DOMAIN_SRV) return cfg->srv_default; @@ -1366,55 +1540,100 @@ tls_domain_t* tls_lookup_cfg(tls_domains_cfg_t* cfg, int type, } if(sname) { - LM_DBG("comparing addr: [%s:%d] [%s:%d] -- sni: [%.*s] [%.*s]\n", + LM_DBG("comparing addr: l[%s:%d] r[%s:%d] -- sni: l[%.*s] r[%.*s] %d" + " -- type: %d\n", ip_addr2a(&p->ip), p->port, ip_addr2a(ip), port, p->server_name.len, ZSW(p->server_name.s), - sname->len, ZSW(sname->s)); + sname->len, ZSW(sname->s), p->server_name_mode, p->type); } - if ((p->port==0 || p->port == port) && ip_addr_cmp(&p->ip, ip)) { - if(sname && sname->len>0) { - if(p->server_name.s && p->server_name.len==sname->len - && strncasecmp(p->server_name.s, sname->s, sname->len)==0) { - LM_DBG("socket+server_name based TLS server domain found\n"); - return p; + if ((p->type & TLS_DOMAIN_ANY) + || ((p->port==0 || p->port == port) + && ip_addr_cmp(&p->ip, ip))) { + if(sname && sname->s && sname->len>0 + && p->server_name.s && p->server_name.len>0) { + if (p->server_name_mode!=KSR_TLS_SNM_SUBDOM) { + /* match sni domain */ + if(p->server_name.len==sname->len + && strncasecmp(p->server_name.s, sname->s, + sname->len)==0) { + LM_DBG("socket+server_name based TLS server domain found\n"); + return p; + } + } + if ((p->server_name_mode==KSR_TLS_SNM_INCDOM + || p->server_name_mode==KSR_TLS_SNM_SUBDOM) + && (p->server_name.lenlen)) { + dotpos = sname->len - p->server_name.len; + if(sname->s[dotpos] == '.' + && strncasecmp(p->server_name.s, + sname->s + dotpos + 1, + p->server_name.len)==0) { + LM_DBG("socket+server_name based TLS server sub-domain found\n"); + return p; + } } } else { - return p; + if (!(p->type & TLS_DOMAIN_ANY)) { + LM_DBG("socket based TLS server domain found\n"); + return p; + } } } p = p->next; } - /* No matching domain found, return default */ + /* No matching domain found, return default */ if (type & TLS_DOMAIN_SRV) return cfg->srv_default; else return cfg->cli_default; } /** - * @brief Check whether configuration domain exists + * @brief Check whether configuration domain is duplicated * @param cfg configuration set * @param d checked domain - * @return 1 if domain exists, 0 if its not exists + * @return 1 if domain is duplicated, 0 if it's not */ -static int domain_exists(tls_domains_cfg_t* cfg, tls_domain_t* d) +int ksr_tls_domain_duplicated(tls_domains_cfg_t* cfg, tls_domain_t* d) { tls_domain_t *p; if (d->type & TLS_DOMAIN_DEF) { - if (d->type & TLS_DOMAIN_SRV) return cfg->srv_default != NULL; - else return cfg->cli_default != NULL; + if (d->type & TLS_DOMAIN_SRV) { + if(cfg->srv_default==d) { + return 0; + } + return cfg->srv_default != NULL; + } else { + if(cfg->cli_default==d) { + return 0; + } + return cfg->cli_default != NULL; + } } else { if (d->type & TLS_DOMAIN_SRV) p = cfg->srv_list; else p = cfg->cli_list; } + if(d->type & TLS_DOMAIN_ANY) { + /* any address, it must have server_name for SNI */ + if(d->server_name.len==0) { + LM_WARN("duplicate definition for a tls profile (same address)" + " and no server name provided\n"); + return 1; + } else { + return 0; + } + } + while (p) { - if ((p->port == d->port) && ip_addr_cmp(&p->ip, &d->ip)) { - if(p->server_name.len==0) { - LM_WARN("another tls domain with same address was defined" - " and no server name provided\n"); - return 1; + if(p!=d) { + if ((p->port == d->port) && ip_addr_cmp(&p->ip, &d->ip)) { + if(d->server_name.len==0 || p->server_name.len==0) { + LM_WARN("duplicate definition for a tls profile (same address)" + " and no server name provided\n"); + return 1; + } } } p = p->next; @@ -1437,9 +1656,6 @@ int tls_add_domain(tls_domains_cfg_t* cfg, tls_domain_t* d) return -1; } - /* Make sure the domain does not exist */ - if (domain_exists(cfg, d)) return 1; - if (d->type & TLS_DOMAIN_DEF) { if (d->type & TLS_DOMAIN_CLI) { cfg->cli_default = d; diff --git a/src/modules/tls/tls_domain.h b/src/modules/tls/tls_domain.h index a0e4d7bda..d6b6b2619 100644 --- a/src/modules/tls/tls_domain.h +++ b/src/modules/tls/tls_domain.h @@ -84,10 +84,13 @@ enum tls_method { enum tls_domain_type { TLS_DOMAIN_DEF = (1 << 0), /**< Default domain */ TLS_DOMAIN_SRV = (1 << 1), /**< Server domain */ - TLS_DOMAIN_CLI = (1 << 2) /**< Client domain */ + TLS_DOMAIN_CLI = (1 << 2), /**< Client domain */ + TLS_DOMAIN_ANY = (1 << 3) /**< Any address */ }; - +#define KSR_TLS_SNM_STRICT 0 /**< Match server_name only */ +#define KSR_TLS_SNM_INCDOM 1 /**< Match server_name and subdomains */ +#define KSR_TLS_SNM_SUBDOM 2 /**< Match subdomains only */ /** * separate configuration per ip:port */ @@ -106,6 +109,7 @@ typedef struct tls_domain { enum tls_method method; str crl_file; str server_name; + int server_name_mode; str server_id; struct tls_domain* next; } tls_domain_t; @@ -210,4 +214,9 @@ void tls_free_cfg(tls_domains_cfg_t* cfg); */ void tls_destroy_cfg(void); +/** + * @brief Check if a TLS configuration domain exists + */ +int ksr_tls_domain_duplicated(tls_domains_cfg_t* cfg, tls_domain_t* d); + #endif /* _TLS_DOMAIN_H */ diff --git a/src/modules/tls/tls_map.c b/src/modules/tls/tls_map.c new file mode 100644 index 000000000..ad9846ab8 --- /dev/null +++ b/src/modules/tls/tls_map.c @@ -0,0 +1,195 @@ +/** + * Copyright (c) 2014 rxi + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See LICENSE for details. + */ + +#include +#include + +#include "../../core/mem/mem.h" +#include "tls_map.h" + +struct map_node_t { + unsigned hash; + void *value; + map_node_t *next; + /* char key[]; */ + /* char value[]; */ +}; + + +static unsigned map_hash(const char *str) { + unsigned hash = 5381; + while (*str) { + hash = ((hash << 5) + hash) ^ *str++; + } + return hash; +} + + +static map_node_t *map_newnode(const char *key, void *value, int vsize) { + map_node_t *node; + int ksize = strlen(key) + 1; + int voffset = ksize + ((sizeof(void*) - ksize) % sizeof(void*)); + node = pkg_malloc(sizeof(*node) + voffset + vsize); + if (!node) return NULL; + memcpy(node + 1, key, ksize); + node->hash = map_hash(key); + node->value = ((char*) (node + 1)) + voffset; + memcpy(node->value, value, vsize); + return node; +} + + +static int map_bucketidx(map_base_t *m, unsigned hash) { + /* If the implementation is changed to allow a non-power-of-2 bucket count, + * the line below should be changed to use mod instead of AND */ + return hash & (m->nbuckets - 1); +} + + +static void map_addnode(map_base_t *m, map_node_t *node) { + int n = map_bucketidx(m, node->hash); + node->next = m->buckets[n]; + m->buckets[n] = node; +} + + +static int map_resize(map_base_t *m, int nbuckets) { + map_node_t *nodes, *node, *next; + map_node_t **buckets; + int i; + /* Chain all nodes together */ + nodes = NULL; + i = m->nbuckets; + while (i--) { + node = (m->buckets)[i]; + while (node) { + next = node->next; + node->next = nodes; + nodes = node; + node = next; + } + } + /* Reset buckets */ + buckets = realloc(m->buckets, sizeof(*m->buckets) * nbuckets); + if (buckets != NULL) { + m->buckets = buckets; + m->nbuckets = nbuckets; + } + if (m->buckets) { + memset(m->buckets, 0, sizeof(*m->buckets) * m->nbuckets); + /* Re-add nodes to buckets */ + node = nodes; + while (node) { + next = node->next; + map_addnode(m, node); + node = next; + } + } + /* Return error code if realloc() failed */ + return (buckets == NULL) ? -1 : 0; +} + + +static map_node_t **map_getref(map_base_t *m, const char *key) { + unsigned hash = map_hash(key); + map_node_t **next; + if (m->nbuckets > 0) { + next = &m->buckets[map_bucketidx(m, hash)]; + while (*next) { + if ((*next)->hash == hash && !strcmp((char*) (*next + 1), key)) { + return next; + } + next = &(*next)->next; + } + } + return NULL; +} + + +void map_deinit_(map_base_t *m) { + map_node_t *next, *node; + int i; + i = m->nbuckets; + while (i--) { + node = m->buckets[i]; + while (node) { + next = node->next; + pkg_free(node); + node = next; + } + } + pkg_free(m->buckets); +} + + +void *map_get_(map_base_t *m, const char *key) { + map_node_t **next = map_getref(m, key); + return next ? (*next)->value : NULL; +} + + +int map_set_(map_base_t *m, const char *key, void *value, int vsize) { + int n, err; + map_node_t **next, *node; + /* Find & replace existing node */ + next = map_getref(m, key); + if (next) { + memcpy((*next)->value, value, vsize); + return 0; + } + /* Add new node */ + node = map_newnode(key, value, vsize); + if (node == NULL) goto fail; + if (m->nnodes >= m->nbuckets) { + n = (m->nbuckets > 0) ? (m->nbuckets << 1) : 1; + err = map_resize(m, n); + if (err) goto fail; + } + map_addnode(m, node); + m->nnodes++; + return 0; + fail: + if (node) pkg_free(node); + return -1; +} + + +void map_remove_(map_base_t *m, const char *key) { + map_node_t *node; + map_node_t **next = map_getref(m, key); + if (next) { + node = *next; + *next = (*next)->next; + pkg_free(node); + m->nnodes--; + } +} + + +map_iter_t map_iter_(void) { + map_iter_t iter; + iter.bucketidx = -1; + iter.node = NULL; + return iter; +} + + +const char *map_next_(map_base_t *m, map_iter_t *iter) { + if (iter->node) { + iter->node = iter->node->next; + if (iter->node == NULL) goto nextBucket; + } else { + nextBucket: + do { + if (++iter->bucketidx >= m->nbuckets) { + return NULL; + } + iter->node = m->buckets[iter->bucketidx]; + } while (iter->node == NULL); + } + return (char*) (iter->node + 1); +} diff --git a/src/modules/tls/tls_map.h b/src/modules/tls/tls_map.h new file mode 100644 index 000000000..682ec08a2 --- /dev/null +++ b/src/modules/tls/tls_map.h @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2014 rxi + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See LICENSE for details. + */ + +#ifndef _TLS_MAP_H +#define _TLS_MAP_H + +#include + +#define MAP_VERSION "0.1.0" + +struct map_node_t; +typedef struct map_node_t map_node_t; + +typedef struct { + map_node_t **buckets; + unsigned nbuckets, nnodes; +} map_base_t; + +typedef struct { + unsigned bucketidx; + map_node_t *node; +} map_iter_t; + + +#define map_t(T)\ + struct { map_base_t base; T *ref; T tmp; } + + +#define map_init(m)\ + memset(m, 0, sizeof(*(m))) + + +#define map_deinit(m)\ + map_deinit_(&(m)->base) + + +#define map_get(m, key)\ + ( (m)->ref = map_get_(&(m)->base, key) ) + + +#define map_set(m, key, value)\ + ( (m)->tmp = (value),\ + map_set_(&(m)->base, key, &(m)->tmp, sizeof((m)->tmp)) ) + + +#define map_remove(m, key)\ + map_remove_(&(m)->base, key) + + +#define map_iter(m)\ + map_iter_() + + +#define map_next(m, iter)\ + map_next_(&(m)->base, iter) + + +void map_deinit_(map_base_t *m); +void *map_get_(map_base_t *m, const char *key); +int map_set_(map_base_t *m, const char *key, void *value, int vsize); +void map_remove_(map_base_t *m, const char *key); +map_iter_t map_iter_(void); +const char *map_next_(map_base_t *m, map_iter_t *iter); + + +typedef map_t(void*) map_void_t; +typedef map_t(char*) map_str_t; +typedef map_t(int) map_int_t; +typedef map_t(char) map_char_t; +typedef map_t(float) map_float_t; +typedef map_t(double) map_double_t; + +#endif /* _TLS_MAP_H */ diff --git a/src/modules/tls/tls_mod.c b/src/modules/tls/tls_mod.c index 7c1547b0c..a70fe1173 100644 --- a/src/modules/tls/tls_mod.c +++ b/src/modules/tls/tls_mod.c @@ -103,6 +103,7 @@ static tls_domain_t mod_params = { TLS_USE_TLSv1, /* TLS method */ STR_STATIC_INIT(TLS_CRL_FILE), /* Certificate revocation list */ {0, 0}, /* Server name (SNI) */ + 0, /* Server name (SNI) mode */ {0, 0}, /* Server id */ 0 /* next */ }; @@ -126,11 +127,29 @@ tls_domain_t srv_defaults = { TLS_USE_TLSv1, /* TLS method */ STR_STATIC_INIT(TLS_CRL_FILE), /* Certificate revocation list */ {0, 0}, /* Server name (SNI) */ + 0, /* Server name (SNI) mode */ {0, 0}, /* Server id */ 0 /* next */ }; +#ifndef OPENSSL_NO_ENGINE + +typedef struct tls_engine { + str engine; + str engine_config; + str engine_algorithms; +} tls_engine_t; +#include +#include + +static ENGINE *ksr_tls_engine; +static tls_engine_t tls_engine_settings = { + STR_STATIC_INIT("NONE"), + STR_STATIC_INIT("NONE"), + STR_STATIC_INIT("ALL"), +}; +#endif /* OPENSSL_NO_ENGINE */ /* * Default settings for client domains when using external config file */ @@ -149,6 +168,7 @@ tls_domain_t cli_defaults = { TLS_USE_TLSv1, /* TLS method */ {0, 0}, /* Certificate revocation list */ {0, 0}, /* Server name (SNI) */ + 0, /* Server name (SNI) mode */ {0, 0}, /* Server id */ 0 /* next */ }; @@ -189,6 +209,11 @@ static param_export_t params[] = { {"crl", PARAM_STR, &default_tls_cfg.crl }, {"cipher_list", PARAM_STR, &default_tls_cfg.cipher_list }, {"connection_timeout", PARAM_INT, &default_tls_cfg.con_lifetime }, +#ifndef OPENSSL_NO_ENGINE + {"engine", PARAM_STR, &tls_engine_settings.engine }, + {"engine_config", PARAM_STR, &tls_engine_settings.engine_config }, + {"engine_algorithms", PARAM_STR, &tls_engine_settings.engine_algorithms }, +#endif /* OPENSSL_NO_ENGINE */ {"tls_log", PARAM_INT, &default_tls_cfg.log }, {"tls_debug", PARAM_INT, &default_tls_cfg.debug }, {"session_cache", PARAM_INT, &default_tls_cfg.session_cache}, @@ -219,18 +244,16 @@ static param_export_t params[] = { * Module interface */ struct module_exports exports = { - "tls", + "tls", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - tls_pv, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - destroy, /* destroy function */ - mod_child /* child initialization function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc command */ + tls_pv, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + mod_child, /* child initi function */ + destroy /* destroy function */ }; @@ -361,10 +384,15 @@ error: } +#ifndef OPENSSL_NO_ENGINE +static int tls_engine_init(); +int tls_fix_engine_keys(tls_domains_cfg_t*, tls_domain_t*, tls_domain_t*); +#endif static int mod_child(int rank) { if (tls_disable || (tls_domains_cfg==0)) return 0; + /* fix tls config only from the main proc/PROC_INIT., when we know * the exact process number and before any other process starts*/ if (rank == PROC_INIT){ @@ -378,6 +406,21 @@ static int mod_child(int rank) return -1; } } +#ifndef OPENSSL_NO_ENGINE + /* + * after the child is fork()ed we go through the TLS domains + * and fix up private keys from engine + */ + if (!strncmp(tls_engine_settings.engine.s, "NONE", 4)) return 0; + + if (rank > 0) { + if (tls_engine_init() < 0) + return -1; + if (tls_fix_engine_keys(*tls_domains_cfg, &srv_defaults, &cli_defaults)<0) + return -1; + LM_INFO("OpenSSL Engine loaded private keys in child: %d\n", rank); + } +#endif return 0; } @@ -496,3 +539,54 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) return 0; } + + + +#ifndef OPENSSL_NO_ENGINE +/* + * initialize OpenSSL engine in child process + * PKCS#11 libraries are not guaranteed to be fork() safe + * + */ +static int tls_engine_init() +{ + LM_DBG("With OpenSSL engine support\n"); + if (strncmp(tls_engine_settings.engine.s, "NONE", 4)) { + int err = 0; + ENGINE_load_builtin_engines(); + OPENSSL_load_builtin_modules(); + if (strncmp(tls_engine_settings.engine_config.s, "NONE", 4)) { + err = CONF_modules_load_file(tls_engine_settings.engine_config.s, "kamailio", 0); + if (!err) { + LM_ERR("OpenSSL failed to load ENGINE configuration file: %*s\n", tls_engine_settings.engine_config.len, tls_engine_settings.engine_config.s); + goto error; + } + } + ksr_tls_engine = ENGINE_by_id(tls_engine_settings.engine.s); + if (!ksr_tls_engine) { + LM_ERR("OpenSSL failed to obtain ENGINE: %*s\n", tls_engine_settings.engine_config.len, tls_engine_settings.engine_config.s); + goto error; + } + err = ENGINE_init(ksr_tls_engine); + if (!err) { + LM_ERR("OpenSSL ENGINE_init() failed\n"); + goto error; + } + if (strncmp(tls_engine_settings.engine_algorithms.s, "NONE", 4)) { + err = ENGINE_set_default_string(ksr_tls_engine, tls_engine_settings.engine_algorithms.s); + if (!err) { + LM_ERR("OpenSSL ENGINE could not set algorithms\n"); + goto error; + } + } + LM_INFO("OpenSSL engine %*s initialized\n", tls_engine_settings.engine.len, tls_engine_settings.engine.s); + } + return 0; +error: + return -1; +} + +EVP_PKEY *tls_engine_private_key(const char* key_id) { + return ENGINE_load_private_key(ksr_tls_engine, key_id, NULL, NULL); +} +#endif diff --git a/src/modules/tls/tls_server.c b/src/modules/tls/tls_server.c index 04e800a62..5d3bc9452 100644 --- a/src/modules/tls/tls_server.c +++ b/src/modules/tls/tls_server.c @@ -379,7 +379,10 @@ static void tls_dump_cert_info(char* s, X509* cert) } - +#ifndef OPENSSL_NO_ENGINE +// lookup HSM keys in process-local memory +EVP_PKEY * tls_lookup_private_key(SSL_CTX*); +#endif /** wrapper around SSL_accept, usin SSL return convention. * It will also log critical errors and certificate debugging info. * @param c - tcp connection with tls (extra_data must be a filled @@ -410,6 +413,12 @@ int tls_accept(struct tcp_connection *c, int* error) BUG("Invalid connection state %d (bug in TLS code)\n", tls_c->state); goto err; } +#ifndef OPENSSL_NO_ENGINE + /* check if we have a HSM key */ + EVP_PKEY *pkey = tls_lookup_private_key(SSL_get_SSL_CTX(ssl)); + if (pkey) + SSL_use_PrivateKey(ssl, pkey); +#endif ret = SSL_accept(ssl); if (unlikely(ret == 1)) { DBG("TLS accept successful\n"); @@ -475,6 +484,13 @@ int tls_connect(struct tcp_connection *c, int* error) BUG("Invalid connection state %d (bug in TLS code)\n", tls_c->state); goto err; } +#ifndef OPENSSL_NO_ENGINE + // lookup HSM private key in process-local memory + EVP_PKEY *pkey = tls_lookup_private_key(SSL_get_SSL_CTX(ssl)); + if (pkey) { + SSL_use_PrivateKey(ssl, pkey); + } +#endif ret = SSL_connect(ssl); if (unlikely(ret == 1)) { DBG("TLS connect successful\n"); @@ -1461,7 +1477,7 @@ int tls_run_event_routes(struct tcp_connection *c) } else { keng = sr_kemi_eng_get(); if(keng!=NULL) { - if(keng->froute(fmsg, EVENT_ROUTE, + if(sr_kemi_ctx_route(keng, &ctx, fmsg, EVENT_ROUTE, &sr_tls_event_callback, &evname)<0) { LM_ERR("error running event route kemi callback\n"); return -1; diff --git a/src/modules/tm/Makefile b/src/modules/tm/Makefile index 6cfe6471c..543d42bd1 100644 --- a/src/modules/tm/Makefile +++ b/src/modules/tm/Makefile @@ -1,14 +1,13 @@ # # tm module makefile # -# +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs auto_gen= NAME=tm.so LIBS= -DEFS+= -DSER_MOD_INTERFACE ifeq ($(INSTALL_FLAVOUR),kamailio) DEFS+= -DWITH_EVENT_LOCAL_REQUEST diff --git a/src/modules/tm/README b/src/modules/tm/README index a95e62b38..d8c701df7 100644 --- a/src/modules/tm/README +++ b/src/modules/tm/README @@ -74,6 +74,7 @@ Daniel-Constantin Mierla 3.45. dns_reuse_rcv_socket (boolean) 3.46. xavp_contact (string) 3.47. event_callback (str) + 3.48. relay_100 (str) 4. Functions @@ -88,47 +89,48 @@ Daniel-Constantin Mierla 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) - 4.12. t_lookup_request() - 4.13. t_retransmit_reply() - 4.14. t_release() - 4.15. t_forward_nonack([ip, port]) - 4.16. t_forward_nonack_udp(ip, port) - 4.17. t_forward_nonack_tcp(ip, port) - 4.18. t_forward_nonack_tls(ip, port) - 4.19. t_forward_nonack_sctp(ip, port) - 4.20. t_set_fr(fr_inv_timeout [, fr_timeout]) - 4.21. t_reset_fr() - 4.22. t_set_max_lifetime(inv_lifetime, noninv_lifetime) - 4.23. t_reset_max_lifetime() - 4.24. t_set_retr(retr_t1_interval, retr_t2_interval) - 4.25. t_reset_retr() - 4.26. t_set_auto_inv_100(0|1) - 4.27. t_branch_timeout() - 4.28. t_branch_replied() - 4.29. t_any_timeout() - 4.30. t_any_replied() - 4.31. t_grep_status("code") - 4.32. t_is_canceled() - 4.33. t_is_expired() - 4.34. t_relay_cancel() - 4.35. t_lookup_cancel([1]) - 4.36. t_drop_replies([mode]) - 4.37. t_save_lumps() - 4.38. t_load_contacts() - 4.39. t_next_contacts() - 4.40. t_next_contact_flow() - 4.41. t_check_status(re) - 4.42. t_check_trans() - 4.43. t_set_disable_6xx(0|1) - 4.44. t_set_disable_failover(0|1) - 4.45. t_set_disable_internal_reply(0|1) - 4.46. t_replicate([params]) - 4.47. t_relay_to(proxy, flags) - 4.48. t_set_no_e2e_cancel_reason(0|1) - 4.49. t_is_set(target) - 4.50. t_use_uac_headers() - 4.51. t_is_retr_async_reply() - 4.52. t_uac_send(method, ruri, nexthop, socket, headers, + 4.12. t_send_reply(code, reason) + 4.13. t_lookup_request() + 4.14. t_retransmit_reply() + 4.15. t_release() + 4.16. t_forward_nonack([ip, port]) + 4.17. t_forward_nonack_udp(ip, port) + 4.18. t_forward_nonack_tcp(ip, port) + 4.19. t_forward_nonack_tls(ip, port) + 4.20. t_forward_nonack_sctp(ip, port) + 4.21. t_set_fr(fr_inv_timeout [, fr_timeout]) + 4.22. t_reset_fr() + 4.23. t_set_max_lifetime(inv_lifetime, noninv_lifetime) + 4.24. t_reset_max_lifetime() + 4.25. t_set_retr(retr_t1_interval, retr_t2_interval) + 4.26. t_reset_retr() + 4.27. t_set_auto_inv_100(0|1) + 4.28. t_branch_timeout() + 4.29. t_branch_replied() + 4.30. t_any_timeout() + 4.31. t_any_replied() + 4.32. t_grep_status("code") + 4.33. t_is_canceled() + 4.34. t_is_expired() + 4.35. t_relay_cancel() + 4.36. t_lookup_cancel([1]) + 4.37. t_drop_replies([mode]) + 4.38. t_save_lumps() + 4.39. t_load_contacts() + 4.40. t_next_contacts() + 4.41. t_next_contact_flow() + 4.42. t_check_status(re) + 4.43. t_check_trans() + 4.44. t_set_disable_6xx(0|1) + 4.45. t_set_disable_failover(0|1) + 4.46. t_set_disable_internal_reply(0|1) + 4.47. t_replicate([params]) + 4.48. t_relay_to(proxy, flags) + 4.49. t_set_no_e2e_cancel_reason(0|1) + 4.50. t_is_set(target) + 4.51. t_use_uac_headers() + 4.52. t_is_retr_async_reply() + 4.53. t_uac_send(method, ruri, nexthop, socket, headers, body) 5. RPC Commands @@ -215,53 +217,55 @@ Daniel-Constantin Mierla 1.45. Set dns_reuse_rcv_socket parameter 1.46. Set xavp_contact parameter 1.47. Set event_callback parameter - 1.48. t_relay usage - 1.49. t_relay_to_udp usage - 1.50. t_on_failure usage - 1.51. t_on_branch_failure usage - 1.52. t_on_reply usage - 1.53. t_on_branch usage - 1.54. t_newtran usage - 1.55. t_reply usage - 1.56. t_lookup_request usage - 1.57. t_retransmit_reply usage - 1.58. t_release usage - 1.59. t_forward_nonack usage - 1.60. t_set_fr usage - 1.61. t_reset_fr usage - 1.62. t_set_max_lifetime usage - 1.63. t_reset_max_lifetime usage - 1.64. t_set_retr usage - 1.65. t_reset_retr usage - 1.66. t_set_auto_inv_100 usage - 1.67. t_branch_timeout usage - 1.68. t_branch_replied usage - 1.69. t_any_timeout usage - 1.70. t_any_replied usage - 1.71. t_grep_status usage - 1.72. t_is_canceled usage - 1.73. t_is_expired usage - 1.74. t_relay_cancel usage - 1.75. t_lookup_cancel usage - 1.76. t_drop_replies() usage - 1.77. t_save_lumps() usage - 1.78. t_load_contacts usage - 1.79. t_next_contacts usage - 1.80. t_next_contact_flow usage - 1.81. t_check_status usage - 1.82. t_check_trans usage - 1.83. t_set_disable_6xx usage - 1.84. t_set_disable_failover usage - 1.85. t_set_disable_internal_reply usage - 1.86. t_replicate usage - 1.87. t_relay_to usage - 1.88. t_set_no_e2e_cancel_reason usage - 1.89. t_replicate usage - 1.90. t_use_uac_headers usage - 1.91. t_is_retr_async_reply usage - 1.92. t_uac_send usage - 1.93. event_route[tm:branch-failure] usage - 1.94. event_route[tm:local-response] usage + 1.48. Set relay_100 parameter + 1.49. t_relay usage + 1.50. t_relay_to_udp usage + 1.51. t_on_failure usage + 1.52. t_on_branch_failure usage + 1.53. t_on_reply usage + 1.54. t_on_branch usage + 1.55. t_newtran usage + 1.56. t_reply usage + 1.57. t_send_reply usage + 1.58. t_lookup_request usage + 1.59. t_retransmit_reply usage + 1.60. t_release usage + 1.61. t_forward_nonack usage + 1.62. t_set_fr usage + 1.63. t_reset_fr usage + 1.64. t_set_max_lifetime usage + 1.65. t_reset_max_lifetime usage + 1.66. t_set_retr usage + 1.67. t_reset_retr usage + 1.68. t_set_auto_inv_100 usage + 1.69. t_branch_timeout usage + 1.70. t_branch_replied usage + 1.71. t_any_timeout usage + 1.72. t_any_replied usage + 1.73. t_grep_status usage + 1.74. t_is_canceled usage + 1.75. t_is_expired usage + 1.76. t_relay_cancel usage + 1.77. t_lookup_cancel usage + 1.78. t_drop_replies() usage + 1.79. t_save_lumps() usage + 1.80. t_load_contacts usage + 1.81. t_next_contacts usage + 1.82. t_next_contact_flow usage + 1.83. t_check_status usage + 1.84. t_check_trans usage + 1.85. t_set_disable_6xx usage + 1.86. t_set_disable_failover usage + 1.87. t_set_disable_internal_reply usage + 1.88. t_replicate usage + 1.89. t_relay_to usage + 1.90. t_set_no_e2e_cancel_reason usage + 1.91. t_replicate usage + 1.92. t_use_uac_headers usage + 1.93. t_is_retr_async_reply usage + 1.94. t_uac_send usage + 1.95. event_route[tm:branch-failure] usage + 1.96. event_route[tm:local-response] usage Chapter 1. Admin Guide @@ -318,6 +322,7 @@ Chapter 1. Admin Guide 3.45. dns_reuse_rcv_socket (boolean) 3.46. xavp_contact (string) 3.47. event_callback (str) + 3.48. relay_100 (str) 4. Functions @@ -332,47 +337,48 @@ Chapter 1. Admin Guide 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) - 4.12. t_lookup_request() - 4.13. t_retransmit_reply() - 4.14. t_release() - 4.15. t_forward_nonack([ip, port]) - 4.16. t_forward_nonack_udp(ip, port) - 4.17. t_forward_nonack_tcp(ip, port) - 4.18. t_forward_nonack_tls(ip, port) - 4.19. t_forward_nonack_sctp(ip, port) - 4.20. t_set_fr(fr_inv_timeout [, fr_timeout]) - 4.21. t_reset_fr() - 4.22. t_set_max_lifetime(inv_lifetime, noninv_lifetime) - 4.23. t_reset_max_lifetime() - 4.24. t_set_retr(retr_t1_interval, retr_t2_interval) - 4.25. t_reset_retr() - 4.26. t_set_auto_inv_100(0|1) - 4.27. t_branch_timeout() - 4.28. t_branch_replied() - 4.29. t_any_timeout() - 4.30. t_any_replied() - 4.31. t_grep_status("code") - 4.32. t_is_canceled() - 4.33. t_is_expired() - 4.34. t_relay_cancel() - 4.35. t_lookup_cancel([1]) - 4.36. t_drop_replies([mode]) - 4.37. t_save_lumps() - 4.38. t_load_contacts() - 4.39. t_next_contacts() - 4.40. t_next_contact_flow() - 4.41. t_check_status(re) - 4.42. t_check_trans() - 4.43. t_set_disable_6xx(0|1) - 4.44. t_set_disable_failover(0|1) - 4.45. t_set_disable_internal_reply(0|1) - 4.46. t_replicate([params]) - 4.47. t_relay_to(proxy, flags) - 4.48. t_set_no_e2e_cancel_reason(0|1) - 4.49. t_is_set(target) - 4.50. t_use_uac_headers() - 4.51. t_is_retr_async_reply() - 4.52. t_uac_send(method, ruri, nexthop, socket, headers, body) + 4.12. t_send_reply(code, reason) + 4.13. t_lookup_request() + 4.14. t_retransmit_reply() + 4.15. t_release() + 4.16. t_forward_nonack([ip, port]) + 4.17. t_forward_nonack_udp(ip, port) + 4.18. t_forward_nonack_tcp(ip, port) + 4.19. t_forward_nonack_tls(ip, port) + 4.20. t_forward_nonack_sctp(ip, port) + 4.21. t_set_fr(fr_inv_timeout [, fr_timeout]) + 4.22. t_reset_fr() + 4.23. t_set_max_lifetime(inv_lifetime, noninv_lifetime) + 4.24. t_reset_max_lifetime() + 4.25. t_set_retr(retr_t1_interval, retr_t2_interval) + 4.26. t_reset_retr() + 4.27. t_set_auto_inv_100(0|1) + 4.28. t_branch_timeout() + 4.29. t_branch_replied() + 4.30. t_any_timeout() + 4.31. t_any_replied() + 4.32. t_grep_status("code") + 4.33. t_is_canceled() + 4.34. t_is_expired() + 4.35. t_relay_cancel() + 4.36. t_lookup_cancel([1]) + 4.37. t_drop_replies([mode]) + 4.38. t_save_lumps() + 4.39. t_load_contacts() + 4.40. t_next_contacts() + 4.41. t_next_contact_flow() + 4.42. t_check_status(re) + 4.43. t_check_trans() + 4.44. t_set_disable_6xx(0|1) + 4.45. t_set_disable_failover(0|1) + 4.46. t_set_disable_internal_reply(0|1) + 4.47. t_replicate([params]) + 4.48. t_relay_to(proxy, flags) + 4.49. t_set_no_e2e_cancel_reason(0|1) + 4.50. t_is_set(target) + 4.51. t_use_uac_headers() + 4.52. t_is_retr_async_reply() + 4.53. t_uac_send(method, ruri, nexthop, socket, headers, body) 5. RPC Commands @@ -685,6 +691,7 @@ failure_route["serial"] 3.45. dns_reuse_rcv_socket (boolean) 3.46. xavp_contact (string) 3.47. event_callback (str) + 3.48. relay_100 (str) 3.1. fr_timer (integer) @@ -1066,7 +1073,7 @@ modparam("tm", "blst_503_max_timeout", 604800) Change the value carefully, because requests that doesn't get a provisional response (everything but INVITE) can easily cause the next - hop to be inserted into the blacklist by mistake. For exmaple the next + hop to be inserted into the blacklist by mistake. For example the next hop is a proxy, it is alive, but waiting for the response of the UAS, and has higher fr_timer value. @@ -1626,6 +1633,23 @@ function ksr_tm_event(evname) end ... +3.48. relay_100 (str) + + This parameter controls whether or not a SIP 100 response is proxied. + Note that this is not valid behavior when operating in stateful mode + per RFC 3261 Section 21.1.1, and therefore is useful only when + operating as a stateless proxy. When using this feature, it is possible + to control which 100 responses are proxied and which are not by + detecting whether they are part of an existing transaction and setting + up the appropriate logic in onreply_route. + + Default value is 0 (disabled). + + Example 1.48. Set relay_100 parameter +... +modparam("tm", "relay_100", 1) +... + 4. Functions 4.1. t_relay([host, port]) @@ -1639,47 +1663,48 @@ end 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) - 4.12. t_lookup_request() - 4.13. t_retransmit_reply() - 4.14. t_release() - 4.15. t_forward_nonack([ip, port]) - 4.16. t_forward_nonack_udp(ip, port) - 4.17. t_forward_nonack_tcp(ip, port) - 4.18. t_forward_nonack_tls(ip, port) - 4.19. t_forward_nonack_sctp(ip, port) - 4.20. t_set_fr(fr_inv_timeout [, fr_timeout]) - 4.21. t_reset_fr() - 4.22. t_set_max_lifetime(inv_lifetime, noninv_lifetime) - 4.23. t_reset_max_lifetime() - 4.24. t_set_retr(retr_t1_interval, retr_t2_interval) - 4.25. t_reset_retr() - 4.26. t_set_auto_inv_100(0|1) - 4.27. t_branch_timeout() - 4.28. t_branch_replied() - 4.29. t_any_timeout() - 4.30. t_any_replied() - 4.31. t_grep_status("code") - 4.32. t_is_canceled() - 4.33. t_is_expired() - 4.34. t_relay_cancel() - 4.35. t_lookup_cancel([1]) - 4.36. t_drop_replies([mode]) - 4.37. t_save_lumps() - 4.38. t_load_contacts() - 4.39. t_next_contacts() - 4.40. t_next_contact_flow() - 4.41. t_check_status(re) - 4.42. t_check_trans() - 4.43. t_set_disable_6xx(0|1) - 4.44. t_set_disable_failover(0|1) - 4.45. t_set_disable_internal_reply(0|1) - 4.46. t_replicate([params]) - 4.47. t_relay_to(proxy, flags) - 4.48. t_set_no_e2e_cancel_reason(0|1) - 4.49. t_is_set(target) - 4.50. t_use_uac_headers() - 4.51. t_is_retr_async_reply() - 4.52. t_uac_send(method, ruri, nexthop, socket, headers, body) + 4.12. t_send_reply(code, reason) + 4.13. t_lookup_request() + 4.14. t_retransmit_reply() + 4.15. t_release() + 4.16. t_forward_nonack([ip, port]) + 4.17. t_forward_nonack_udp(ip, port) + 4.18. t_forward_nonack_tcp(ip, port) + 4.19. t_forward_nonack_tls(ip, port) + 4.20. t_forward_nonack_sctp(ip, port) + 4.21. t_set_fr(fr_inv_timeout [, fr_timeout]) + 4.22. t_reset_fr() + 4.23. t_set_max_lifetime(inv_lifetime, noninv_lifetime) + 4.24. t_reset_max_lifetime() + 4.25. t_set_retr(retr_t1_interval, retr_t2_interval) + 4.26. t_reset_retr() + 4.27. t_set_auto_inv_100(0|1) + 4.28. t_branch_timeout() + 4.29. t_branch_replied() + 4.30. t_any_timeout() + 4.31. t_any_replied() + 4.32. t_grep_status("code") + 4.33. t_is_canceled() + 4.34. t_is_expired() + 4.35. t_relay_cancel() + 4.36. t_lookup_cancel([1]) + 4.37. t_drop_replies([mode]) + 4.38. t_save_lumps() + 4.39. t_load_contacts() + 4.40. t_next_contacts() + 4.41. t_next_contact_flow() + 4.42. t_check_status(re) + 4.43. t_check_trans() + 4.44. t_set_disable_6xx(0|1) + 4.45. t_set_disable_failover(0|1) + 4.46. t_set_disable_internal_reply(0|1) + 4.47. t_replicate([params]) + 4.48. t_relay_to(proxy, flags) + 4.49. t_set_no_e2e_cancel_reason(0|1) + 4.50. t_is_set(target) + 4.51. t_use_uac_headers() + 4.52. t_is_retr_async_reply() + 4.53. t_uac_send(method, ruri, nexthop, socket, headers, body) 4.1. t_relay([host, port]) @@ -1688,7 +1713,7 @@ end and port. In the later case (host and port specified) the protocol used is the same protocol on which the message was received. - t_relay() is the statefull version for forward() while t_relay(host, + t_relay() is the stateful version for forward() while t_relay(host, port) is similar to forward(host, port). In the forward to uri case (t_relay()), if the original URI was @@ -1700,7 +1725,7 @@ end Returns a negative value on failure -- you may still want to send a negative reply upstream statelessly not to leave upstream UAC in lurch. - Example 1.48. t_relay usage + Example 1.49. t_relay usage ... if (!t_relay()) { @@ -1724,10 +1749,10 @@ if (!t_relay()) * port - Port number. If no parameters are specified the message is sent to a destination - derived from the message uri (using sip sepcific DNS lookups), but with + derived from the message uri (using sip specific DNS lookups), but with the protocol corresponding to the function name. - Example 1.49. t_relay_to_udp usage + Example 1.50. t_relay_to_udp usage ... if (src_ip==10.0.0.0/8) t_relay_to_udp("1.2.3.4", "5060"); # sent to 1.2.3.4:5060 over udp @@ -1767,7 +1792,7 @@ else Meaning of the parameters is as follows: * failure_route - Failure route block to be called. - Example 1.50. t_on_failure usage + Example 1.51. t_on_failure usage ... route { t_on_failure("1"); @@ -1803,7 +1828,7 @@ failure_route[1] { * branch_failure_route - Name of the branch_failure route block to be called (it is prefixed internally with 'tm:branch-failure:'). - Example 1.51. t_on_branch_failure usage + Example 1.52. t_on_branch_failure usage ... route { t_on_branch_failure("myroute"); @@ -1826,7 +1851,7 @@ event_route[tm:branch-failure:myroute] { Meaning of the parameters is as follows: * onreply_route - Onreply route block to be called. - Example 1.52. t_on_reply usage + Example 1.53. t_on_reply usage ... loadmodule "/usr/local/lib/ser/modules/nathelper.so" ... @@ -1858,7 +1883,7 @@ es'); Meaning of the parameters is as follows: * branch_route - branch route block to be called. - Example 1.53. t_on_branch usage + Example 1.54. t_on_branch usage ... route { t_on_branch("1"); @@ -1877,7 +1902,7 @@ branch_route[1] { the only way a script can add a new transaction in an atomic way. Typically, it is used to deploy a UAS. - Example 1.54. t_newtran usage + Example 1.55. t_newtran usage ... if (t_newtran()) { log("UAS logic"); @@ -1907,12 +1932,30 @@ if (t_newtran()) { * code - Reply code number. * reason_phrase - Reason string. - Example 1.55. t_reply usage + Example 1.56. t_reply usage ... t_reply("404", "Not found"); ... -4.12. t_lookup_request() +4.12. t_send_reply(code, reason) + + Creates the transaction if it does not exist (executing internally + t_newtran()) and sends a stateful reply (executing internally + t_reply()). If transaction exists, this function does not stop the + execution of config, t_reply() being still executed. + + For more, see the docs for t_newtran() and t_reply(). + + Meaning of the parameters is as follows: + * code - Reply code number. + * reason - Reason string. + + Example 1.57. t_send_reply usage +... +t_send_reply("404", "Not found"); +... + +4.13. t_lookup_request() Checks if a transaction exists. Returns a positive value if so, negative otherwise. Most likely you will not want to use it, as a @@ -1920,33 +1963,33 @@ t_reply("404", "Not found"); none was found. However this is safely (atomically) done using t_newtran. - Example 1.56. t_lookup_request usage + Example 1.58. t_lookup_request usage ... if (t_lookup_request()) { ... }; ... -4.13. t_retransmit_reply() +4.14. t_retransmit_reply() Retransmits a reply sent previously by UAS transaction. - Example 1.57. t_retransmit_reply usage + Example 1.59. t_retransmit_reply usage ... t_retransmit_reply(); ... -4.14. t_release() +4.15. t_release() Remove transaction from memory (it will be first put on a wait timer to absorb delayed messages). - Example 1.58. t_release usage + Example 1.60. t_release usage ... t_release(); ... -4.15. t_forward_nonack([ip, port]) +4.16. t_forward_nonack([ip, port]) Mainly for internal usage -- forward a non-ACK request statefully. Variants of this functions can enforce a specific transport protocol. @@ -1955,28 +1998,28 @@ t_release(); * ip - IP address where the message should be sent. * port - Port number. - Example 1.59. t_forward_nonack usage + Example 1.61. t_forward_nonack usage ... t_forward_nonack("1.2.3.4", "5060"); ... -4.16. t_forward_nonack_udp(ip, port) +4.17. t_forward_nonack_udp(ip, port) See function t_forward_nonack([ip, port]). -4.17. t_forward_nonack_tcp(ip, port) +4.18. t_forward_nonack_tcp(ip, port) See function t_forward_nonack([ip, port]). -4.18. t_forward_nonack_tls(ip, port) +4.19. t_forward_nonack_tls(ip, port) See function t_forward_nonack([ip, port]). -4.19. t_forward_nonack_sctp(ip, port) +4.20. t_forward_nonack_sctp(ip, port) See function t_forward_nonack([ip, port]). -4.20. t_set_fr(fr_inv_timeout [, fr_timeout]) +4.21. t_set_fr(fr_inv_timeout [, fr_timeout]) Sets the fr_inv_timeout and optionally fr_timeout for the current transaction or for transactions created during the same script @@ -1994,7 +2037,7 @@ t_forward_nonack("1.2.3.4", "5060"); See also: fr_timer, fr_inv_timer, t_reset_fr(). - Example 1.60. t_set_fr usage + Example 1.62. t_set_fr usage ... route { t_set_fr(10000); # set only fr invite timeout to 10s @@ -2010,7 +2053,7 @@ branch_route[1] { } } -4.21. t_reset_fr() +4.22. t_reset_fr() Resets the fr_inv_timer and fr_timer for the current transaction to the default values (set using the tm module parameters fr_inv_timer and @@ -2021,7 +2064,7 @@ branch_route[1] { See also: fr_timer, fr_inv_timer, t_set_fr. - Example 1.61. t_reset_fr usage + Example 1.63. t_reset_fr usage ... route { ... @@ -2029,7 +2072,7 @@ route { ... } -4.22. t_set_max_lifetime(inv_lifetime, noninv_lifetime) +4.23. t_set_max_lifetime(inv_lifetime, noninv_lifetime) Sets the maximum lifetime for the current INVITE or non-INVITE transaction, or for transactions created during the same script @@ -2047,7 +2090,7 @@ route { See also: max_inv_lifetime, max_noninv_lifetime, t_reset_max_lifetime. - Example 1.62. t_set_max_lifetime usage + Example 1.64. t_set_max_lifetime usage ... route { if (src_ip=1.2.3.4) @@ -2058,7 +2101,7 @@ route { # INVITE and to 15s if not } -4.23. t_reset_max_lifetime() +4.24. t_reset_max_lifetime() Resets the the maximum lifetime for the current INVITE or non-INVITE transaction to the default value (set using the tm module parameter @@ -2069,7 +2112,7 @@ route { See also: max_inv_lifetime, max_noninv_lifetime, t_set_max_lifetime. - Example 1.63. t_reset_max_lifetime usage + Example 1.65. t_reset_max_lifetime usage ... route { ... @@ -2077,7 +2120,7 @@ route { ... } -4.24. t_set_retr(retr_t1_interval, retr_t2_interval) +4.25. t_set_retr(retr_t1_interval, retr_t2_interval) Sets the retr_t1_interval and retr_t2_interval for the current transaction or for transactions created during the same script @@ -2107,7 +2150,7 @@ route { See also: retr_timer1, retr_timer2, t_reset_retr(). - Example 1.64. t_set_retr usage + Example 1.66. t_set_retr usage ... route { t_set_retr(250, 0); # set only T1 to 250 ms @@ -2123,7 +2166,7 @@ branch_route[1] { } } -4.25. t_reset_retr() +4.26. t_reset_retr() Resets the retr_timer1 and retr_timer2 for the current transaction to the default values (set using the tm module parameters retr_timer1 and @@ -2134,7 +2177,7 @@ branch_route[1] { See also: retr_timer1, retr_timer2, t_set_retr. - Example 1.65. t_reset_retr usage + Example 1.67. t_reset_retr usage ... route { ... @@ -2142,7 +2185,7 @@ route { ... } -4.26. t_set_auto_inv_100(0|1) +4.27. t_set_auto_inv_100(0|1) Switch automatically sending 100 replies to INVITEs on/off on a per transaction basis. It overrides the auto_inv_100 value for the current @@ -2150,7 +2193,7 @@ route { See also: auto_inv_100. - Example 1.66. t_set_auto_inv_100 usage + Example 1.68. t_set_auto_inv_100 usage ... route { ... @@ -2159,13 +2202,13 @@ route { ... } -4.27. t_branch_timeout() +4.28. t_branch_timeout() Returns true if the failure route is executed for a branch that did timeout. It can be used from FAILURE_ROUTE and BRANCH_FAILURE_ROUTE event route. - Example 1.67. t_branch_timeout usage + Example 1.69. t_branch_timeout usage ... failure_route[0]{ if (t_branch_timeout()){ @@ -2174,14 +2217,14 @@ failure_route[0]{ } } -4.28. t_branch_replied() +4.29. t_branch_replied() Returns true if the failure route is executed for a branch that did receive at least one reply in the past (the "current" reply is not taken into account). It can be used from failure_route and branch-failure event route. - Example 1.68. t_branch_replied usage + Example 1.70. t_branch_replied usage ... failure_route[0]{ if (t_branch_timeout()){ @@ -2193,12 +2236,12 @@ failure_route[0]{ } } -4.29. t_any_timeout() +4.30. t_any_timeout() Returns true if at least one of the current transactions branches did timeout. - Example 1.69. t_any_timeout usage + Example 1.71. t_any_timeout usage ... failure_route[0]{ if (!t_branch_timeout()){ @@ -2209,13 +2252,13 @@ failure_route[0]{ } } -4.30. t_any_replied() +4.31. t_any_replied() Returns true if at least one of the current transactions branches did receive some reply in the past. If called from a failure or onreply route, the "current" reply is not taken into account. - Example 1.70. t_any_replied usage + Example 1.72. t_any_replied usage ... onreply_route[0]{ if (!t_any_replied()){ @@ -2224,12 +2267,12 @@ onreply_route[0]{ } } -4.31. t_grep_status("code") +4.32. t_grep_status("code") Returns true if "code" is the final reply received (or locally generated) in at least one of the current transactions branches. - Example 1.71. t_grep_status usage + Example 1.73. t_grep_status usage ... onreply_route[0]{ if (t_grep_status("486")){ @@ -2238,11 +2281,11 @@ onreply_route[0]{ } } -4.32. t_is_canceled() +4.33. t_is_canceled() Returns true if the current transaction was canceled. - Example 1.72. t_is_canceled usage + Example 1.74. t_is_canceled usage ... failure_route[0]{ if (t_is_canceled()){ @@ -2251,12 +2294,12 @@ failure_route[0]{ } } -4.33. t_is_expired() +4.34. t_is_expired() Returns true if the current transaction has already been expired, i.e. the max_inv_lifetime/max_noninv_lifetime interval has already elapsed. - Example 1.73. t_is_expired usage + Example 1.75. t_is_expired usage ... failure_route[0]{ if (t_is_expired()){ @@ -2265,7 +2308,7 @@ failure_route[0]{ } } -4.34. t_relay_cancel() +4.35. t_relay_cancel() Forwards the CANCEL if the corresponding INVITE transaction exists. The function is supposed to be used at the very beginning of the script, @@ -2277,7 +2320,7 @@ failure_route[0]{ CANCELs were successfully sent to the pending branches, true if the INVITE was not found, and false in case of any error. - Example 1.74. t_relay_cancel usage + Example 1.76. t_relay_cancel usage if (method == CANCEL) { if (!t_relay_cancel()) { # implicit drop if relaying was successful, # nothing to do @@ -2290,7 +2333,7 @@ if (method == CANCEL) { # do the same as for INVITEs } -4.35. t_lookup_cancel([1]) +4.36. t_lookup_cancel([1]) Returns true if the corresponding INVITE transaction exists for a CANCEL request. The function can be called at the beginning of the @@ -2304,7 +2347,7 @@ if (method == CANCEL) { overwritten with the flags of the INVITE. isflagset() can be used to check the flags of the previously forwarded INVITE in this case. - Example 1.75. t_lookup_cancel usage + Example 1.77. t_lookup_cancel usage if (method == CANCEL) { if (t_lookup_cancel()) { log("INVITE transaction exists"); @@ -2322,7 +2365,7 @@ if (method == CANCEL) { # do the same as for INVITEs } -4.36. t_drop_replies([mode]) +4.37. t_drop_replies([mode]) Drops all the previously received replies in failure_route block to make sure that none of them is picked up again. @@ -2334,7 +2377,7 @@ if (method == CANCEL) { Dropping replies works only if a new branch is added to the transaction, or it is explicitly replied in the script! - Example 1.76. t_drop_replies() usage + Example 1.78. t_drop_replies() usage ... failure_route[0]{ if (t_check_status("5[0-9][0-9]")){ @@ -2350,7 +2393,7 @@ failure_route[0]{ } } -4.37. t_save_lumps() +4.38. t_save_lumps() Forces the modifications of the processed SIP message to be saved in shared memory before t_relay() is called. The new branches which are @@ -2365,7 +2408,7 @@ failure_route[0]{ The transaction must be created by t_newtran() before calling t_save_lumps(). - Example 1.77. t_save_lumps() usage + Example 1.79. t_save_lumps() usage route { ... t_newtran(); @@ -2390,7 +2433,7 @@ failure_route[1] { t_relay(); } -4.38. t_load_contacts() +4.39. t_load_contacts() This is the first of the three functions that can be used to implement serial/parallel forking based on q and +sip.instance values of @@ -2410,7 +2453,7 @@ failure_route[1] { and then stores the branches in reverse order into the XAVP. The q parameter of a branch contains a value from range 0-1.0 and it - expresses relative preferrence of the branch among all branches in the + expresses relative preference of the branch among all branches in the destination set. The higher the q value the more preference the user agent gave to the branch. Branches with higher q values will be tried before branches with lower ones when serial forking takes place. @@ -2424,7 +2467,7 @@ failure_route[1] { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1.78. t_load_contacts usage + Example 1.80. t_load_contacts usage ... if (!t_load_contacts()) { sl_send_reply("500", "Server Internal Error - Cannot load contacts"); @@ -2432,7 +2475,7 @@ if (!t_load_contacts()) { }; ... -4.39. t_next_contacts() +4.40. t_next_contacts() Function t_next_contacts() is the second of the three functions that can be used to implement serial/parallel forking based on the q value @@ -2465,7 +2508,7 @@ if (!t_load_contacts()) { contact_flows_avp are not anymore set. Based on that test, you can then use t_set_fr() function to set timers according to your needs. - Example 1.79. t_next_contacts usage + Example 1.81. t_next_contacts usage ... # First call after t_load_contacts() when transaction does not exist yet # and contacts should be available @@ -2484,7 +2527,7 @@ if (!t_next_contacts()) { }; ... -4.40. t_next_contact_flow() +4.41. t_next_contact_flow() Function t_next_contact_flow() is the last of the three functions that can be used to implement serial/parallel forking based on the q value @@ -2503,7 +2546,7 @@ if (!t_next_contacts()) { syslog). This function can be used from a BRANCH_FAILURE_ROUTE event route. - Example 1.80. t_next_contact_flow usage + Example 1.82. t_next_contact_flow usage ... event_route[tm:branch-failure:outbound] { @@ -2515,9 +2558,9 @@ event_route[tm:branch-failure:outbound] } ... -4.41. t_check_status(re) +4.42. t_check_status(re) - Returns true if the regular expresion “re†match the reply code of the + Returns true if the regular expression “re†match the reply code of the response message as follows: * in routing block - the code of the last sent reply. * in on_reply block - the code of the current received reply. @@ -2526,14 +2569,14 @@ event_route[tm:branch-failure:outbound] This function can be used from ANY_ROUTE . - Example 1.81. t_check_status usage + Example 1.83. t_check_status usage ... if (t_check_status("(487)|(408)")) { log("487 or 408 negative reply\n"); } ... -4.42. t_check_trans() +4.43. t_check_trans() t_check_trans() can be used to quickly check if a message belongs or is related to a transaction. It behaves differently for different types of @@ -2558,7 +2601,7 @@ Note elapses, when the INVITE transaction no longer exists and thus would not match anything. There are also cases when tm would not keep all the information needed for e2e ACK matching (since this is - not needed for a statefull proxy and it requires additional memory, + not needed for a stateful proxy and it requires additional memory, tm will not keep this information unless needed by some other module or callbacks). * For other requests (non ACKs and non CANCELs), in case of a @@ -2580,14 +2623,14 @@ Note See also: t_lookup_request(), t_lookup_cancel(). - Example 1.82. t_check_trans usage + Example 1.84. t_check_trans usage if ( method == "CANCEL" && !t_check_trans()) sl_reply("403", "cancel out of the blue forbidden"); # note: in this example t_check_trans() can be replaced by t_lookup_cancel() -4.43. t_set_disable_6xx(0|1) +4.44. t_set_disable_6xx(0|1) - Turn off/on 6xx replies special rfc conformant handling on a per + Turn off/on 6xx replies special rfc conforming handling on a per transaction basis. If turned off (t_set_disable_6xx("1")) 6XXs will be treated like normal replies. @@ -2595,7 +2638,7 @@ if ( method == "CANCEL" && !t_check_trans()) See also: disable_6xx_block. - Example 1.83. t_set_disable_6xx usage + Example 1.85. t_set_disable_6xx usage ... route { ... @@ -2604,13 +2647,13 @@ route { ... } -4.44. t_set_disable_failover(0|1) +4.45. t_set_disable_failover(0|1) Turn off/on dns failover on a per transaction basis. See also: use_dns_failover. - Example 1.84. t_set_disable_failover usage + Example 1.86. t_set_disable_failover usage ... route { ... @@ -2619,11 +2662,11 @@ route { ... } -4.45. t_set_disable_internal_reply(0|1) +4.46. t_set_disable_internal_reply(0|1) Turn off/on sending internally a SIP reply in case of relay errors. - Example 1.85. t_set_disable_internal_reply usage + Example 1.87. t_set_disable_internal_reply usage ... t_set_disable_internal_reply(1); # turn off sending internal reply on error if(!t_relay()) { @@ -2631,7 +2674,7 @@ if(!t_relay()) { } ... -4.46. t_replicate([params]) +4.47. t_replicate([params]) Replicate the SIP request to a specific address. Return values are the same as for t_relay(). Note that responses to the replicated request @@ -2656,7 +2699,7 @@ if(!t_relay()) { * hostport - address in "host:port" format. It can be given via an AVP. - Example 1.86. t_replicate usage + Example 1.88. t_replicate usage ... # sent to 1.2.3.4:5060 over tcp t_replicate("sip:1.2.3.4:5060;transport=tcp"); @@ -2669,7 +2712,7 @@ t_replicate("sip:$var(h);transport=tls"); t_replicate_to_udp("1.2.3.4", "5060"); ... -4.47. t_relay_to(proxy, flags) +4.48. t_relay_to(proxy, flags) Forward the SIP request to a specific address, controlling internal behavior via flags. @@ -2682,15 +2725,15 @@ t_replicate_to_udp("1.2.3.4", "5060"); Meaning of the parameters is as follows: * proxy - address where the request should be sent. Format is: - "proto:host:port" - any of proto or port can be ommitted, along - with the semicolon after or before. + "proto:host:port" - any of proto or port can be omitted, along with + the semicolon after or before. * flags - bitmask integer value to control the internal behavior. Bits can be: + 0x01 - do not generate 100 reply. + 0x02 - do not generate reply on internal error. + 0x04 - disable dns failover. - Example 1.87. t_relay_to usage + Example 1.89. t_relay_to usage ... # sent to 1.2.3.4:5060 over tcp t_relay_to("tcp:1.2.3.4:5060"); @@ -2702,7 +2745,7 @@ t_relay_to("tls:1.2.3.4"); t_relay_to("0x01"); ... -4.48. t_set_no_e2e_cancel_reason(0|1) +4.49. t_set_no_e2e_cancel_reason(0|1) Enables/disables reason header (RFC 3326) copying from the triggering received CANCEL to the generated hop-by-hop CANCEL. 0 enables and 1 @@ -2716,7 +2759,7 @@ t_relay_to("0x01"); See also: e2e_cancel_reason. - Example 1.88. t_set_no_e2e_cancel_reason usage + Example 1.90. t_set_no_e2e_cancel_reason usage ... route { ... @@ -2726,7 +2769,7 @@ opying ... } -4.49. t_is_set(target) +4.50. t_is_set(target) Return true if the attribute specified by 'target' is set for transaction. @@ -2739,13 +2782,13 @@ opying * onreply_route - the function returns true if an onreply route is set to be executed. - Example 1.89. t_replicate usage + Example 1.91. t_replicate usage ... if(!t_is_set("failure_route")) LM_DBG("no failure route will be executed for current transaction\n"); ... -4.50. t_use_uac_headers() +4.51. t_use_uac_headers() Set internal flags to tell tm to use UAC side for building headers for local generated requests (ACK, CANCEL) - useful when changing From/To @@ -2753,12 +2796,12 @@ if(!t_is_set("failure_route")) It returns true. - Example 1.90. t_use_uac_headers usage + Example 1.92. t_use_uac_headers usage ... t_use_uac_headers(); ... -4.51. t_is_retr_async_reply() +4.52. t_is_retr_async_reply() Check to see if the reply is a retransmitted reply on a transaction that is currently suspended asynchronously (suspended during reply @@ -2772,7 +2815,7 @@ t_use_uac_headers(); returns true if the transaction is currently reply suspended or false if not. - Example 1.91. t_is_retr_async_reply usage + Example 1.93. t_is_retr_async_reply usage ... if (t_is_retr_async_reply()) { xlog("L_DBG", "Dropping retransmitted reply which is still currently sus @@ -2781,7 +2824,7 @@ pended\n"); } ... -4.52. t_uac_send(method, ruri, nexthop, socket, headers, body) +4.53. t_uac_send(method, ruri, nexthop, socket, headers, body) Send a UAC request. @@ -2797,7 +2840,7 @@ pended\n"); Content-Type header must exist. * body - SIP message body (can be empty). - Example 1.92. t_uac_send usage + Example 1.94. t_uac_send usage ... t_uac_send("OPTIONS", "sip:alice@kamailio.org", "", "", "From: bob@kamailio.org;tag=2w3e\r\nTo: bob@kamailio.org", ""); @@ -2915,7 +2958,7 @@ t_uac_send("OPTIONS", "sip:alice@kamailio.org", "", "", enabled with the t_on_branch_failure function. This event_route uses the BRANCH_FAILURE_ROUTE route type. - Example 1.93. event_route[tm:branch-failure] usage + Example 1.95. event_route[tm:branch-failure] usage ... request_route { ... @@ -2933,7 +2976,7 @@ event_route[tm:branch-failure:myroute] { Executed after the tm module has sent a local generated, transaction stateful response. - Example 1.94. event_route[tm:local-response] usage + Example 1.96. event_route[tm:local-response] usage ... event_route[tm:local-response] { xlog("tm:local-response replied locally\n"); @@ -3096,8 +3139,8 @@ action *route) For programmatic use only. This function is for revoking t_suspend() from the same process as it was executed before. t_cancel_suspend() can be used when something fails after t_suspend() has already been - executed and it turns out that the transcation should not have been - suspended. The function cancels the FR timer of the transacation. + executed and it turns out that the transaction should not have been + suspended. The function cancels the FR timer of the transaction. The message lumps are saved by t_suspend() which cannot be restored. diff --git a/src/modules/tm/config.c b/src/modules/tm/config.c index 00f86b12b..b5494fea5 100644 --- a/src/modules/tm/config.c +++ b/src/modules/tm/config.c @@ -93,8 +93,9 @@ struct cfg_group_tm default_tm_cfg = { 0, /* local_ack_mode, default 0 (rfc3261 conformant) */ 1, /* local_cancel_reason -- add Reason header to locally generated CANCELs; on by default */ - 1 /* e2e_cancel_reason -- copy the Reason headers from incoming CANCELs + 1, /* e2e_cancel_reason -- copy the Reason headers from incoming CANCELs into the corresp. hop-by-hop CANCELs, on by default */ + 0 /* relay_100 -- by default, assume stateful proxy and do not relay SIP 100 */ }; void *tm_cfg = &default_tm_cfg; @@ -204,5 +205,7 @@ cfg_def_t tm_cfg_def[] = { {"e2e_cancel_reason", CFG_VAR_INT | CFG_ATOMIC, 0, 1, 0, 0, "if set to 1, Reason headers from received CANCELs are copied into" " the corresponding generated hop-by-hop CANCELs"}, + {"relay_100", CFG_VAR_INT | CFG_ATOMIC, 0, 1, 0, 0, + "if set to 1, relay SIP 100 messages as a stateless proxy"}, {0, 0, 0, 0, 0, 0} }; diff --git a/src/modules/tm/config.h b/src/modules/tm/config.h index 963fea6ea..d46f71f9f 100644 --- a/src/modules/tm/config.h +++ b/src/modules/tm/config.h @@ -135,6 +135,7 @@ struct cfg_group_tm { int local_ack_mode; int local_cancel_reason; int e2e_cancel_reason; + unsigned int relay_100; }; extern struct cfg_group_tm default_tm_cfg; diff --git a/src/modules/tm/doc/api.xml b/src/modules/tm/doc/api.xml index 0a3c75161..395a82dc3 100644 --- a/src/modules/tm/doc/api.xml +++ b/src/modules/tm/doc/api.xml @@ -243,8 +243,8 @@ end of body This function is for revoking t_suspend() from the same process as it was executed before. t_cancel_suspend() can be used when something fails after t_suspend() has already been executed - and it turns out that the transcation should not have been - suspended. The function cancels the FR timer of the transacation. + and it turns out that the transaction should not have been + suspended. The function cancels the FR timer of the transaction. The message lumps are saved by t_suspend() which cannot be restored. diff --git a/src/modules/tm/doc/functions.xml b/src/modules/tm/doc/functions.xml index 7983de257..67cc5d017 100644 --- a/src/modules/tm/doc/functions.xml +++ b/src/modules/tm/doc/functions.xml @@ -19,7 +19,7 @@ used is the same protocol on which the message was received. - t_relay() is the statefull version for + t_relay() is the stateful version for forward() while t_relay(host, port) is similar to forward(host, port). @@ -75,7 +75,7 @@ if (!t_relay()) If no parameters are specified the message is sent to a destination - derived from the message uri (using sip sepcific DNS lookups), but with + derived from the message uri (using sip specific DNS lookups), but with the protocol corresponding to the function name. <function>t_relay_to_udp</function> usage @@ -360,6 +360,40 @@ t_reply("404", "Not found"); +
+ + <function>t_send_reply(code, reason)</function> + + + Creates the transaction if it does not exist (executing internally + t_newtran()) and sends a stateful reply (executing internally + t_reply()). If transaction exists, this function does not stop the + execution of config, t_reply() being still executed. + + + For more, see the docs for t_newtran() and t_reply(). + + Meaning of the parameters is as follows: + + + code - Reply code number. + + + + reason - Reason string. + + + + + <function>t_send_reply</function> usage + +... +t_send_reply("404", "Not found"); +... + + +
+
<function>t_lookup_request()</function> @@ -1144,7 +1178,7 @@ failure_route[1] { </para> <para> The q parameter of a branch contains a value from range 0-1.0 - and it expresses relative preferrence of the branch + and it expresses relative preference of the branch among all branches in the destination set. The higher the q value the more preference the user agent gave to the branch. Branches with higher q @@ -1312,7 +1346,7 @@ event_route[tm:branch-failure:outbound] <function moreinfo="none">t_check_status(re)</function> - Returns true if the regular expresion re match the + Returns true if the regular expression re match the reply code of the response message as follows: @@ -1386,7 +1420,7 @@ if (t_check_status("(487)|(408)")) { transaction wait time elapses, when the INVITE transaction no longer exists and thus would not match anything. There are also cases when tm would not keep all the information needed - for e2e ACK matching (since this is not needed for a statefull + for e2e ACK matching (since this is not needed for a stateful proxy and it requires additional memory, tm will not keep this information unless needed by some other module or callbacks). @@ -1432,7 +1466,7 @@ if ( method == "CANCEL" && !t_check_trans()) t_set_disable_6xx(0|1) - Turn off/on 6xx replies special rfc conformant handling on a per + Turn off/on 6xx replies special rfc conforming handling on a per transaction basis. If turned off (t_set_disable_6xx("1")) 6XXs will be treated like normal replies. @@ -1611,7 +1645,7 @@ t_replicate_to_udp("1.2.3.4", "5060"); proxy - address where the request should be sent. Format is: "proto:host:port" - any of proto or port can be - ommitted, along with the semicolon after or before. + omitted, along with the semicolon after or before. diff --git a/src/modules/tm/doc/params.xml b/src/modules/tm/doc/params.xml index fef700464..3692dab0d 100644 --- a/src/modules/tm/doc/params.xml +++ b/src/modules/tm/doc/params.xml @@ -603,7 +603,7 @@ modparam("tm", "blst_503_max_timeout", 604800) Change the value carefully, because requests that doesn't get a provisional response (everything but INVITE) can easily cause the next hop to be inserted into the blacklist - by mistake. For exmaple the next hop is a proxy, it is alive, + by mistake. For example the next hop is a proxy, it is alive, but waiting for the response of the UAS, and has higher fr_timer value. @@ -1454,6 +1454,33 @@ function ksr_tm_event(evname) return 1; end ... + + +
+ +
+ <varname>relay_100</varname> (str) + + This parameter controls whether or not a SIP 100 response is proxied. + Note that this is not valid behavior when operating in stateful mode + per RFC 3261 Section 21.1.1, and therefore is useful only when + operating as a stateless proxy. + When using this feature, it is possible to control which 100 responses + are proxied and which are not by detecting whether they are part of + an existing transaction and setting up the appropriate logic in + onreply_route. + + + + Default value is 0 (disabled). + + + + Set <varname>relay_100</varname> parameter + +... +modparam("tm", "relay_100", 1) +...
diff --git a/src/modules/tm/t_cancel.c b/src/modules/tm/t_cancel.c index 49751c995..3a6da2d87 100644 --- a/src/modules/tm/t_cancel.c +++ b/src/modules/tm/t_cancel.c @@ -173,7 +173,7 @@ int cancel_all_uacs(struct cell *trans, int how) } -/* should be called directly only if one of the condition bellow is true: +/* should be called directly only if one of the condition below is true: * - prepare_cancel_branch or prepare_to_cancel returned true for this branch * - buffer value was 0 and then set to BUSY in an atomic op.: * if (atomic_cmpxchg_long(&buffer, 0, BUSY_BUFFER)==0). diff --git a/src/modules/tm/t_fwd.c b/src/modules/tm/t_fwd.c index 985b96f19..398c27a84 100644 --- a/src/modules/tm/t_fwd.c +++ b/src/modules/tm/t_fwd.c @@ -347,7 +347,7 @@ static int prepare_new_uac( struct cell *t, struct sip_msg *i_req, bctx = sr_kemi_act_ctx_get(); init_run_actions_ctx(&ctx); sr_kemi_act_ctx_set(&ctx); - if(keng->froute(i_req, BRANCH_ROUTE, + if(sr_kemi_route(keng, i_req, BRANCH_ROUTE, sr_kemi_cbname_lookup_idx(branch_route), NULL)<0) { LM_ERR("error running branch route kemi callback\n"); } diff --git a/src/modules/tm/t_lookup.c b/src/modules/tm/t_lookup.c index 69aa75994..45cbf0b4e 100644 --- a/src/modules/tm/t_lookup.c +++ b/src/modules/tm/t_lookup.c @@ -1356,8 +1356,11 @@ int t_newtran( struct sip_msg* p_msg ) /* t_newtran() has been already called, and the script * might changed the flags after it, so we must update the flags * in shm memory -- Miklos */ - if (T->uas.request) + if (T->uas.request) { T->uas.request->flags = p_msg->flags; + memcpy(T->uas.request->xflags, p_msg->xflags, + KSR_XFLAGS_SIZE * sizeof(flag_t)); + } return E_SCRIPT; } diff --git a/src/modules/tm/t_msgbuilder.c b/src/modules/tm/t_msgbuilder.c index feb7513bf..aad14aa78 100644 --- a/src/modules/tm/t_msgbuilder.c +++ b/src/modules/tm/t_msgbuilder.c @@ -106,7 +106,7 @@ char *build_local(struct cell *Trans,unsigned int branch, } } #endif /* USE_TCP */ - via=via_builder(&via_len, &Trans->uac[branch].request.dst, + via=via_builder(&via_len, NULL, &Trans->uac[branch].request.dst, &branch_str, via_id.s?&via_id:0 , &hp ); /* via_id.s not needed anylonger => free it */ @@ -1192,7 +1192,7 @@ char *build_dlg_ack(struct sip_msg* rpl, struct cell *Trans, branch_str.s = branch_buf; branch_str.len = branch_len; set_hostport(&hp, 0); - via = via_builder(&via_len, dst, &branch_str, 0, &hp); + via = via_builder(&via_len, NULL, dst, &branch_str, 0, &hp); if (!via) { LM_ERR("No via header got from builder\n"); goto error; @@ -1367,7 +1367,7 @@ static inline int assemble_via(str* dest, struct cell* t, #endif set_hostport(&hp, 0); - via = via_builder(&via_len, dst, &branch_str, 0, &hp); + via = via_builder(&via_len, NULL, dst, &branch_str, 0, &hp); if (!via) { LM_ERR("via building failed\n"); return -2; diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c index 8e986e2fa..d4ed5592e 100644 --- a/src/modules/tm/t_reply.c +++ b/src/modules/tm/t_reply.c @@ -627,13 +627,12 @@ error: * returns 1 if everything was OK or -1 for error */ static int _reply( struct cell *trans, struct sip_msg* p_msg, - unsigned int code, char * text, int lock ) + unsigned int code, str *reason, int lock ) { unsigned int len; char * buf, *dset; struct bookmark bm; int dset_len; - str reason; if (code>=200) set_kr(REQ_RPLD); /* compute the buffer in private memory prior to entering lock; @@ -647,18 +646,16 @@ static int _reply( struct cell *trans, struct sip_msg* p_msg, } } - reason.s = text; - reason.len = strlen(text); if (code>=180 && p_msg->to && (get_to(p_msg)->tag_value.s==0 || get_to(p_msg)->tag_value.len==0)) { calc_crc_suffix( p_msg, tm_tag_suffix ); - buf = build_res_buf_from_sip_req(code, &reason, &tm_tag, p_msg, + buf = build_res_buf_from_sip_req(code, reason, &tm_tag, p_msg, &len, &bm); return _reply_light( trans, buf, len, code, tm_tag.s, TOTAG_VALUE_LEN, lock, &bm); } else { - buf = build_res_buf_from_sip_req(code, &reason, 0 /*no to-tag*/, + buf = build_res_buf_from_sip_req(code, reason, 0 /*no to-tag*/, p_msg, &len, &bm); return _reply_light(trans,buf,len,code, 0, 0, /* no to-tag */lock, &bm); @@ -1000,7 +997,7 @@ int run_failure_handlers(struct cell *t, struct sip_msg *rpl, /* run a failure_route action if some was marked */ keng = sr_kemi_eng_get(); if(unlikely(keng!=NULL)) { - if(keng->froute(faked_req, FAILURE_ROUTE, + if(sr_kemi_route(keng, faked_req, FAILURE_ROUTE, sr_kemi_cbname_lookup_idx(on_failure), NULL)<0) { LM_ERR("error running failure route kemi callback\n"); } @@ -1074,7 +1071,7 @@ int run_branch_failure_handlers(struct cell *t, struct sip_msg *rpl, /* run a branch_failure_route action if some was marked */ keng = sr_kemi_eng_get(); if(unlikely(keng!=NULL)) { - if(keng->froute(faked_req, BRANCH_FAILURE_ROUTE, + if(sr_kemi_route(keng, faked_req, BRANCH_FAILURE_ROUTE, sr_kemi_cbname_lookup_idx(on_branch_failure), NULL)<0) { LM_ERR("error running branch failure route kemi callback\n"); } @@ -1426,7 +1423,7 @@ static enum rps t_should_relay_response( struct cell *Trans , int new_code, /* look if the callback perhaps replied transaction; it also * covers the case in which a transaction is replied localy * on CANCEL -- then it would make no sense to proceed to - * new branches bellow + * new branches below */ if (Trans->uas.status >= 200) { *should_store=0; @@ -1509,9 +1506,10 @@ static enum rps t_should_relay_response( struct cell *Trans , int new_code, #else *should_store=0; #endif - /* 1xx and 2xx except 100 will be relayed */ + /* By default, 1xx and 2xx (except 100) will be relayed. 100 relaying can be + * controlled via relay_100 parameter */ Trans->uac[branch].last_received=new_code; - *should_relay= new_code==100? -1 : branch; + *should_relay= (new_code==100 && !cfg_get(tm, tm_cfg, relay_100)) ? -1 : branch; if (new_code>=200 ) { prepare_to_cancel( Trans, &cancel_data->cancel_bitmap, 0); #ifdef CANCEL_REASON_SUPPORT @@ -1620,16 +1618,36 @@ error: int t_reply( struct cell *t, struct sip_msg* p_msg, unsigned int code, char * text ) { - return _reply( t, p_msg, code, text, 1 /* lock replies */ ); + str reason; + + reason.s = text; + reason.len = strlen(text); + + return _reply( t, p_msg, code, &reason, 1 /* lock replies */ ); +} + +int t_reply_str( struct cell *t, struct sip_msg* p_msg, unsigned int code, + str* reason) +{ + return _reply( t, p_msg, code, reason, 1 /* lock replies */ ); } int t_reply_unsafe( struct cell *t, struct sip_msg* p_msg, unsigned int code, char * text ) { - return _reply( t, p_msg, code, text, 0 /* don't lock replies */ ); -} + str reason; + + reason.s = text; + reason.len = strlen(text); + return _reply( t, p_msg, code, &reason, 0 /* don't lock replies */ ); +} +int t_reply_str_unsafe( struct cell *t, struct sip_msg* p_msg, unsigned int code, + str* reason) +{ + return _reply( t, p_msg, code, reason, 0 /* don't lock replies */ ); +} void set_final_timer( struct cell *t ) { @@ -2370,7 +2388,11 @@ int reply_received( struct sip_msg *p_msg ) if (onreply_route) { set_route_type(TM_ONREPLY_ROUTE); /* transfer transaction flag to message context */ - if (t->uas.request) p_msg->flags=t->uas.request->flags; + if (t->uas.request) { + p_msg->flags=t->uas.request->flags; + memcpy(p_msg->xflags, t->uas.request->xflags, + KSR_XFLAGS_SIZE * sizeof(flag_t)); + } /* set the as avp_list the one from transaction */ backup_uri_from = set_avp_list(AVP_TRACK_FROM | AVP_CLASS_URI, @@ -2405,7 +2427,7 @@ int reply_received( struct sip_msg *p_msg ) bctx = sr_kemi_act_ctx_get(); init_run_actions_ctx(&ctx); sr_kemi_act_ctx_set(&ctx); - keng->froute(p_msg, TM_ONREPLY_ROUTE, + sr_kemi_route(keng, p_msg, TM_ONREPLY_ROUTE, sr_kemi_cbname_lookup_idx(onreply_route), NULL); sr_kemi_act_ctx_set(bctx); } else { @@ -2415,7 +2437,11 @@ int reply_received( struct sip_msg *p_msg ) /* restore brach last_received as before executing onreply_route */ uac->last_received = last_uac_status; /* transfer current message context back to t */ - if (t->uas.request) t->uas.request->flags=p_msg->flags; + if (t->uas.request) { + t->uas.request->flags=p_msg->flags; + memcpy(t->uas.request->xflags, p_msg->xflags, + KSR_XFLAGS_SIZE * sizeof(flag_t)); + } getbflagsval(0, &uac->branch_flags); /* restore original avp list */ diff --git a/src/modules/tm/t_reply.h b/src/modules/tm/t_reply.h index 06e0c7d7e..fe659e7a2 100644 --- a/src/modules/tm/t_reply.h +++ b/src/modules/tm/t_reply.h @@ -183,7 +183,10 @@ int t_reply( struct cell *t, struct sip_msg * , unsigned int , char * ); REPLY_LOCK -- useful to be called within reply processing */ +int t_reply_str( struct cell *t, struct sip_msg * , unsigned int , str * ); + int t_reply_unsafe( struct cell *t, struct sip_msg * , unsigned int , char * ); +int t_reply_str_unsafe( struct cell *t, struct sip_msg * , unsigned int , str * ); enum rps relay_reply( struct cell *t, struct sip_msg *p_msg, int branch, diff --git a/src/modules/tm/t_suspend.c b/src/modules/tm/t_suspend.c index 205c945d4..c37957dab 100644 --- a/src/modules/tm/t_suspend.c +++ b/src/modules/tm/t_suspend.c @@ -314,7 +314,7 @@ int t_continue_helper(unsigned int hash_index, unsigned int label, if(cbparam && cbparam->s) { evname = *cbparam; } - if(keng->froute(faked_req, FAILURE_ROUTE, cbname, + if(sr_kemi_route(keng, faked_req, FAILURE_ROUTE, cbname, &evname)<0) { LM_ERR("error running event route kemi callback\n"); return -1; @@ -392,8 +392,8 @@ int t_continue_helper(unsigned int hash_index, unsigned int label, if(cbparam && cbparam->s) { evname = *cbparam; } - if(keng->froute(t->uac[branch].reply, TM_ONREPLY_ROUTE, - cbname, &evname)<0) { + if(sr_kemi_route(keng, t->uac[branch].reply, + TM_ONREPLY_ROUTE, cbname, &evname)<0) { LM_ERR("error running event route kemi callback\n"); } } else { diff --git a/src/modules/tm/tm.c b/src/modules/tm/tm.c index 14860635a..c8afee9c4 100644 --- a/src/modules/tm/tm.c +++ b/src/modules/tm/tm.c @@ -111,6 +111,7 @@ static int child_init(int rank); static int w_t_check(struct sip_msg* msg, char* str, char* str2); static int w_t_lookup_cancel(struct sip_msg* msg, char* str, char* str2); static int w_t_reply(struct sip_msg* msg, char* str, char* str2); +static int w_t_send_reply(struct sip_msg* msg, char* p1, char* p2); static int w_t_release(struct sip_msg* msg, char* str, char* str2); static int w_t_retransmit_reply(struct sip_msg* p_msg, char* foo, char* bar ); static int w_t_newtran(struct sip_msg* p_msg, char* foo, char* bar ); @@ -233,186 +234,188 @@ str tm_event_callback = STR_NULL; static int fixup_t_check_status(void** param, int param_no); static cmd_export_t cmds[]={ - {"t_newtran", w_t_newtran, 0, 0, + {"t_newtran", w_t_newtran, 0, 0, 0, REQUEST_ROUTE}, - {"t_lookup_request", w_t_check, 0, 0, + {"t_lookup_request", w_t_check, 0, 0, 0, REQUEST_ROUTE}, - {"t_lookup_cancel", w_t_lookup_cancel, 0, 0, + {"t_lookup_cancel", w_t_lookup_cancel, 0, 0, 0, REQUEST_ROUTE}, - {"t_lookup_cancel", w_t_lookup_cancel, 1, fixup_int_1, + {"t_lookup_cancel", w_t_lookup_cancel, 1, fixup_int_1, 0, REQUEST_ROUTE}, - {"t_reply", w_t_reply, 2, fixup_t_reply, + {"t_reply", w_t_reply, 2, fixup_t_reply, 0, REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE }, - {"t_retransmit_reply", w_t_retransmit_reply, 0, 0, + {"t_send_reply", w_t_send_reply, 2, fixup_t_reply, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE }, + {"t_retransmit_reply", w_t_retransmit_reply, 0, 0, 0, REQUEST_ROUTE}, - {"t_release", w_t_release, 0, 0, + {"t_release", w_t_release, 0, 0, 0, REQUEST_ROUTE}, - {"t_relay_to_udp", w_t_relay_to_udp, 2, fixup_hostport2proxy, + {"t_relay_to_udp", w_t_relay_to_udp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE|FAILURE_ROUTE}, - {"t_relay_to_udp", w_t_relay_to_udp_uri, 0, 0, + {"t_relay_to_udp", w_t_relay_to_udp_uri, 0, 0, 0, REQUEST_ROUTE|FAILURE_ROUTE}, #ifdef USE_TCP - {"t_relay_to_tcp", w_t_relay_to_tcp, 2, fixup_hostport2proxy, + {"t_relay_to_tcp", w_t_relay_to_tcp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE|FAILURE_ROUTE}, - {"t_relay_to_tcp", w_t_relay_to_tcp_uri, 0, 0, + {"t_relay_to_tcp", w_t_relay_to_tcp_uri, 0, 0, 0, REQUEST_ROUTE|FAILURE_ROUTE}, #endif #ifdef USE_TLS - {"t_relay_to_tls", w_t_relay_to_tls, 2, fixup_hostport2proxy, + {"t_relay_to_tls", w_t_relay_to_tls, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE|FAILURE_ROUTE}, - {"t_relay_to_tls", w_t_relay_to_tls_uri, 0, 0, + {"t_relay_to_tls", w_t_relay_to_tls_uri, 0, 0, 0, REQUEST_ROUTE|FAILURE_ROUTE}, #endif #ifdef USE_SCTP - {"t_relay_to_sctp", w_t_relay_to_sctp, 2, fixup_hostport2proxy, + {"t_relay_to_sctp", w_t_relay_to_sctp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE|FAILURE_ROUTE}, - {"t_relay_to_sctp", w_t_relay_to_sctp_uri, 0, 0, + {"t_relay_to_sctp", w_t_relay_to_sctp_uri, 0, 0, 0, REQUEST_ROUTE|FAILURE_ROUTE}, #endif - {"t_replicate", w_t_replicate_uri, 0, 0, + {"t_replicate", w_t_replicate_uri, 0, 0, 0, REQUEST_ROUTE}, - {"t_replicate", w_t_replicate_uri, 1, fixup_spve_null, + {"t_replicate", w_t_replicate_uri, 1, fixup_spve_null, 0, REQUEST_ROUTE}, - {"t_replicate", w_t_replicate, 2, fixup_hostport2proxy, + {"t_replicate", w_t_replicate, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, - {"t_replicate_udp", w_t_replicate_udp, 2, fixup_hostport2proxy, + {"t_replicate_udp", w_t_replicate_udp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #ifdef USE_TCP - {"t_replicate_tcp", w_t_replicate_tcp, 2, fixup_hostport2proxy, + {"t_replicate_tcp", w_t_replicate_tcp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #endif #ifdef USE_TLS - {"t_replicate_tls", w_t_replicate_tls, 2, fixup_hostport2proxy, + {"t_replicate_tls", w_t_replicate_tls, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #endif #ifdef USE_SCTP - {"t_replicate_sctp", w_t_replicate_sctp, 2, fixup_hostport2proxy, + {"t_replicate_sctp", w_t_replicate_sctp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #endif - {"t_replicate_to", w_t_replicate_to, 2, fixup_proto_hostport2proxy, + {"t_replicate_to", w_t_replicate_to, 2, fixup_proto_hostport2proxy, 0, REQUEST_ROUTE}, - {"t_relay", w_t_relay, 0, 0, + {"t_relay", w_t_relay, 0, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_relay", w_t_relay2, 2, fixup_hostport2proxy, + {"t_relay", w_t_relay2, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_relay_to_avp", w_t_relay_to_avp, 2, fixup_proto_hostport2proxy, + {"t_relay_to_avp", w_t_relay_to_avp, 2, fixup_proto_hostport2proxy, 0, REQUEST_ROUTE}, - {"t_relay_to", w_t_relay_to, 0, 0, + {"t_relay_to", w_t_relay_to, 0, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_relay_to", w_t_relay_to, 1, fixup_t_relay_to, + {"t_relay_to", w_t_relay_to, 1, fixup_t_relay_to, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_relay_to", w_t_relay_to, 2, fixup_t_relay_to, + {"t_relay_to", w_t_relay_to, 2, fixup_t_relay_to, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_forward_nonack", w_t_forward_nonack, 2, fixup_hostport2proxy, + {"t_forward_nonack", w_t_forward_nonack, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, - {"t_forward_nonack_uri", w_t_forward_nonack_uri, 0, 0, + {"t_forward_nonack_uri", w_t_forward_nonack_uri, 0, 0, 0, REQUEST_ROUTE}, - {"t_forward_nonack_udp", w_t_forward_nonack_udp, 2, fixup_hostport2proxy, + {"t_forward_nonack_udp", w_t_forward_nonack_udp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #ifdef USE_TCP - {"t_forward_nonack_tcp", w_t_forward_nonack_tcp, 2, fixup_hostport2proxy, + {"t_forward_nonack_tcp", w_t_forward_nonack_tcp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #endif #ifdef USE_TLS - {"t_forward_nonack_tls", w_t_forward_nonack_tls, 2, fixup_hostport2proxy, + {"t_forward_nonack_tls", w_t_forward_nonack_tls, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #endif #ifdef USE_SCTP - {"t_forward_nonack_sctp", w_t_forward_nonack_sctp, 2, fixup_hostport2proxy, + {"t_forward_nonack_sctp", w_t_forward_nonack_sctp, 2, fixup_hostport2proxy, 0, REQUEST_ROUTE}, #endif - {"t_forward_nonack_to", w_t_forward_nonack_to, 2, fixup_proto_hostport2proxy, + {"t_forward_nonack_to", w_t_forward_nonack_to, 2, fixup_proto_hostport2proxy, 0, REQUEST_ROUTE}, - {"t_relay_cancel", w_t_relay_cancel, 0, 0, + {"t_relay_cancel", w_t_relay_cancel, 0, 0, 0, REQUEST_ROUTE}, - {"t_on_failure", w_t_on_failure, 1, fixup_on_failure, + {"t_on_failure", w_t_on_failure, 1, fixup_on_failure, 0, REQUEST_ROUTE | FAILURE_ROUTE | TM_ONREPLY_ROUTE | BRANCH_ROUTE }, - {"t_on_branch_failure",w_t_on_branch_failure, 1, fixup_on_branch_failure, + {"t_on_branch_failure",w_t_on_branch_failure, 1, fixup_on_branch_failure, 0, REQUEST_ROUTE | FAILURE_ROUTE | TM_ONREPLY_ROUTE | BRANCH_ROUTE }, - {"t_on_reply", w_t_on_reply, 1, fixup_on_reply, + {"t_on_reply", w_t_on_reply, 1, fixup_on_reply, 0, REQUEST_ROUTE | FAILURE_ROUTE | TM_ONREPLY_ROUTE | BRANCH_ROUTE }, - {"t_on_branch", w_t_on_branch, 1, fixup_on_branch, + {"t_on_branch", w_t_on_branch, 1, fixup_on_branch, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_check_status", t_check_status, 1, fixup_t_check_status, + {"t_check_status", t_check_status, 1, fixup_t_check_status, 0, REQUEST_ROUTE | FAILURE_ROUTE | ONREPLY_ROUTE}, - {"t_write_req", t_write_req, 2, fixup_t_write, + {"t_write_req", t_write_req, 2, fixup_t_write, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_write_unix", t_write_unix, 2, fixup_t_write, + {"t_write_unix", t_write_unix, 2, fixup_t_write, 0, REQUEST_ROUTE | FAILURE_ROUTE }, - {"t_set_fr", t_set_fr_inv, 1, fixup_var_int_1, + {"t_set_fr", t_set_fr_inv, 1, fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_set_fr", t_set_fr_all, 2, fixup_var_int_12, + {"t_set_fr", t_set_fr_all, 2, fixup_var_int_12, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_reset_fr", w_t_reset_fr, 0, 0, + {"t_reset_fr", w_t_reset_fr, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_set_retr", w_t_set_retr, 2, fixup_var_int_12, + {"t_set_retr", w_t_set_retr, 2, fixup_var_int_12, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_reset_retr", w_t_reset_retr, 0, 0, + {"t_reset_retr", w_t_reset_retr, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_set_max_lifetime", w_t_set_max_lifetime, 2, fixup_var_int_12, + {"t_set_max_lifetime", w_t_set_max_lifetime, 2, fixup_var_int_12, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_reset_max_lifetime", w_t_reset_max_lifetime, 0, 0, + {"t_reset_max_lifetime", w_t_reset_max_lifetime, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_set_auto_inv_100", w_t_set_auto_inv_100, 1, fixup_var_int_1, + {"t_set_auto_inv_100", w_t_set_auto_inv_100, 1, fixup_var_int_1, 0, REQUEST_ROUTE}, - {"t_set_disable_6xx", w_t_set_disable_6xx, 1, fixup_var_int_1, + {"t_set_disable_6xx", w_t_set_disable_6xx, 1, fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_set_disable_failover", w_t_set_disable_failover, 1, fixup_var_int_1, + {"t_set_disable_failover", w_t_set_disable_failover, 1, fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, #ifdef CANCEL_REASON_SUPPORT {"t_set_no_e2e_cancel_reason", w_t_set_no_e2e_cancel_reason, 1, - fixup_var_int_1, + fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, /* alias for t_set_no_e2e_cancel_reason */ {"t_disable_e2e_cancel_reason", w_t_set_no_e2e_cancel_reason, 1, - fixup_var_int_1, + fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, #endif /* CANCEL_REASON_SUPPORT */ {"t_set_disable_internal_reply", w_t_set_disable_internal_reply, 1, - fixup_var_int_1, + fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_branch_timeout", w_t_branch_timeout, 0, 0, + {"t_branch_timeout", w_t_branch_timeout, 0, 0, 0, FAILURE_ROUTE|EVENT_ROUTE}, - {"t_branch_replied", w_t_branch_replied, 0, 0, + {"t_branch_replied", w_t_branch_replied, 0, 0, 0, FAILURE_ROUTE|EVENT_ROUTE}, - {"t_any_timeout", w_t_any_timeout, 0, 0, + {"t_any_timeout", w_t_any_timeout, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_any_replied", w_t_any_replied, 0, 0, + {"t_any_replied", w_t_any_replied, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_is_canceled", w_t_is_canceled, 0, 0, + {"t_is_canceled", w_t_is_canceled, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_is_retr_async_reply", w_t_is_retr_async_reply, 0, 0, + {"t_is_retr_async_reply", w_t_is_retr_async_reply, 0, 0, 0, TM_ONREPLY_ROUTE}, - {"t_is_expired", w_t_is_expired, 0, 0, + {"t_is_expired", w_t_is_expired, 0, 0, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_grep_status", w_t_grep_status, 1, fixup_var_int_1, + {"t_grep_status", w_t_grep_status, 1, fixup_var_int_1, 0, REQUEST_ROUTE|TM_ONREPLY_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"t_drop_replies", w_t_drop_replies, 0, 0, + {"t_drop_replies", w_t_drop_replies, 0, 0, 0, FAILURE_ROUTE}, - {"t_drop_replies", w_t_drop_replies, 1, 0, + {"t_drop_replies", w_t_drop_replies, 1, 0, 0, FAILURE_ROUTE}, - {"t_save_lumps", w_t_save_lumps, 0, 0, + {"t_save_lumps", w_t_save_lumps, 0, 0, 0, REQUEST_ROUTE}, - {"t_check_trans", w_t_check_trans, 0, 0, + {"t_check_trans", w_t_check_trans, 0, 0, 0, REQUEST_ROUTE|ONREPLY_ROUTE|BRANCH_ROUTE }, - {"t_is_set", w_t_is_set, 1, fixup_t_is_set, + {"t_is_set", w_t_is_set, 1, fixup_t_is_set, 0, ANY_ROUTE }, - {"t_use_uac_headers", w_t_use_uac_headers, 0, 0, + {"t_use_uac_headers", w_t_use_uac_headers, 0, 0, 0, ANY_ROUTE }, - {"t_uac_send", (cmd_function)w_t_uac_send, 6, fixup_spve_all, + {"t_uac_send", (cmd_function)w_t_uac_send, 6, fixup_spve_all, 0, ANY_ROUTE }, - {"t_load_contacts", t_load_contacts, 0, 0, + {"t_load_contacts", t_load_contacts, 0, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE}, - {"t_next_contacts", t_next_contacts, 0, 0, + {"t_next_contacts", t_next_contacts, 0, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE}, - {"t_next_contact_flow", t_next_contact_flow, 0, 0, + {"t_next_contact_flow", t_next_contact_flow, 0, 0, 0, REQUEST_ROUTE }, /* not applicable from the script */ - {"load_tm", (cmd_function)load_tm, NO_SCRIPT, 0, 0}, - {"load_xtm", (cmd_function)load_xtm, NO_SCRIPT, 0, 0}, - {0,0,0,0,0} + {"load_tm", (cmd_function)load_tm, NO_SCRIPT, 0, 0, 0}, + {"load_xtm", (cmd_function)load_xtm, NO_SCRIPT, 0, 0, 0}, + {0,0,0,0,0,0} }; @@ -471,6 +474,7 @@ static param_export_t params[]={ #endif /* CANCEL_REASON_SUPPORT */ {"xavp_contact", PARAM_STR, &ulattrs_xavp_name }, {"event_callback", PARAM_STR, &tm_event_callback }, + {"relay_100", PARAM_INT, &default_tm_cfg.relay_100 }, {0,0,0} }; @@ -479,18 +483,16 @@ struct module_exports tm_exports = { #else struct module_exports exports= { #endif - "tm", - /* -------- exported functions ----------- */ - cmds, - tm_rpc, /* RPC methods */ - /* ------------ exported variables ---------- */ - params, - - mod_init, /* module initialization function */ - (response_function) reply_received, - (destroy_function) tm_shutdown, - 0, /* w_onbreak, */ - child_init /* per-child init function */ + "tm", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + tm_rpc, /* RPC method exports */ + 0, /* pv exports */ + reply_received, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + tm_shutdown /* module destroy function */ }; @@ -1314,18 +1316,23 @@ static int w_t_forward_nonack_to( struct sip_msg *p_msg , return r; } - -static int w_t_reply(struct sip_msg* msg, char* p1, char* p2) +/** + * + */ +static int ki_t_reply(sip_msg_t* msg, int code, str* reason) { - struct cell *t; - int code, ret = -1; - str reason; - char* r; + tm_cell_t *t = NULL; + int ret = -1; if (msg->REQ_METHOD==METHOD_ACK) { LM_DBG("ACKs are not replied\n"); return -1; } + if(msg->msg_flags & FL_MSG_NOREPLY) { + LM_INFO("message marked with no-reply flag\n"); + return -2; + } + if (t_check( msg , 0 )==-1) return -1; t=get_t(); if (!t) { @@ -1334,34 +1341,23 @@ static int w_t_reply(struct sip_msg* msg, char* p1, char* p2) return -1; } - if (get_int_fparam(&code, msg, (fparam_t*)p1) < 0) { - code = cfg_get(tm, tm_cfg, default_code); - } - - if (get_str_fparam(&reason, msg, (fparam_t*)p2) < 0) { - r = cfg_get(tm, tm_cfg, default_reason); - } else { - r = as_asciiz(&reason); - if (r == NULL) r = cfg_get(tm, tm_cfg, default_reason); - } - /* if called from reply_route, make sure that unsafe version * is called; we are already in a mutex and another mutex in * the safe version would lead to a deadlock */ - t->flags |= T_ADMIN_REPLY; if (is_route_type(FAILURE_ROUTE)) { LM_DBG("t_reply_unsafe called from w_t_reply\n"); - ret = t_reply_unsafe(t, msg, code, r); + ret = t_reply_str_unsafe(t, msg, (unsigned int)code, reason); } else if (is_route_type(REQUEST_ROUTE)) { - ret = t_reply( t, msg, code, r); + ret = t_reply_str( t, msg, (unsigned int)code, reason); } else if (is_route_type(ONREPLY_ROUTE)) { if (likely(t->uas.request)){ if (is_route_type(CORE_ONREPLY_ROUTE)) - ret=t_reply(t, t->uas.request, code, r); + ret=t_reply_str(t, t->uas.request, (unsigned int)code, reason); else - ret=t_reply_unsafe(t, t->uas.request, code, r); + ret=t_reply_str_unsafe(t, t->uas.request, (unsigned int)code, + reason); }else ret=-1; /* t_check() above has the side effect of setting T and @@ -1378,11 +1374,85 @@ static int w_t_reply(struct sip_msg* msg, char* p1, char* p2) ret = -1; } - if (r && (r != cfg_get(tm, tm_cfg, default_reason))) pkg_free(r); return ret; } +static int w_t_reply(struct sip_msg* msg, char* p1, char* p2) +{ + int code; + str reason; + + if (msg->REQ_METHOD==METHOD_ACK) { + LM_DBG("ACKs are not replied\n"); + return -1; + } + + if (get_int_fparam(&code, msg, (fparam_t*)p1) < 0) { + code = cfg_get(tm, tm_cfg, default_code); + } + + if (get_str_fparam(&reason, msg, (fparam_t*)p2) < 0) { + reason.s = cfg_get(tm, tm_cfg, default_reason); + reason.len = strlen(reason.s); + } + + return ki_t_reply(msg, code, &reason); +} + +/* wrapper for inter-module api */ +int w_t_reply_wrp(struct sip_msg *msg, unsigned int code, char *txt) +{ + str reason; + + reason.s = txt; + reason.len = strlen(reason.s); + + return ki_t_reply(msg, code, &reason); +} +/** + * + */ +static int ki_t_send_reply(sip_msg_t* msg, int code, str* reason) +{ + int ret; + + ret = t_newtran(msg); + if (ret==0) { + LM_NOTICE("transaction already in process %p\n", get_t()); + } + + return ki_t_reply(msg, code, reason); +} + +/** + * + */ +static int w_t_send_reply(struct sip_msg* msg, char* p1, char* p2) +{ + int code; + str reason; + + if (msg->REQ_METHOD==METHOD_ACK) { + LM_DBG("ACKs are not replied\n"); + return -1; + } + + if (get_int_fparam(&code, msg, (fparam_t*)p1) < 0) { + code = cfg_get(tm, tm_cfg, default_code); + } + + if (get_str_fparam(&reason, msg, (fparam_t*)p2) < 0) { + reason.s = cfg_get(tm, tm_cfg, default_reason); + reason.len = strlen(reason.s); + } + + return ki_t_send_reply(msg, code, &reason); +} + +/** + * + */ static int t_release(sip_msg_t* msg) { struct cell *t; @@ -2251,24 +2321,6 @@ static int w_t_save_lumps(struct sip_msg* msg, char* foo, char* bar) return ki_t_save_lumps(msg); } -/* wrapper function needed after changes in w_t_reply */ -int w_t_reply_wrp(struct sip_msg *m, unsigned int code, char *txt) -{ - fparam_t c; - fparam_t r; - - c.type = FPARAM_INT; - c.orig = NULL; /* ? */ - c.v.i = code; - - r.type = FPARAM_STRING; - r.orig = NULL; /* ? */ - r.v.asciiz = txt; - - return w_t_reply(m, (char *)&c, (char*)&r); -} - - /** script function, check if a msg is assoc. to a transaction. * @return -1 (not), 1 (reply, e2e ack or cancel for an existing transaction), @@ -2737,14 +2789,6 @@ static int ki_t_relay(sip_msg_t *msg) return _w_t_relay_to(msg, (struct proxy_l *)0, PROTO_NONE); } -/** - * - */ -static int ki_t_reply(sip_msg_t *msg, int code, str *reason) -{ - return w_t_reply_wrp(msg, (unsigned int)code, reason->s); -} - /** * */ @@ -2779,6 +2823,11 @@ static sr_kemi_t tm_kemi_exports[] = { { SR_KEMIP_INT, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("tm"), str_init("t_send_reply"), + SR_KEMIP_INT, ki_t_send_reply, + { SR_KEMIP_INT, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("tm"), str_init("t_check_trans"), SR_KEMIP_INT, t_check_trans, { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, diff --git a/src/modules/tm/uac.c b/src/modules/tm/uac.c index 29f298a5d..1686bd157 100644 --- a/src/modules/tm/uac.c +++ b/src/modules/tm/uac.c @@ -273,7 +273,7 @@ static inline int t_run_local_req( LM_WARN("event callback (%s) set, but no cfg engine\n", tm_event_callback.s); } else { - if(keng->froute(&lreq, EVENT_ROUTE, + if(sr_kemi_route(keng, &lreq, EVENT_ROUTE, &tm_event_callback, &evname)<0) { LM_ERR("error running event route kemi callback\n"); } diff --git a/src/modules/tmrec/Makefile b/src/modules/tmrec/Makefile index 9f04f41b5..a29758a87 100644 --- a/src/modules/tmrec/Makefile +++ b/src/modules/tmrec/Makefile @@ -1,5 +1,4 @@ # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -8,8 +7,6 @@ NAME=tmrec.so DEFS += LIBS += -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srutils/srutils diff --git a/src/modules/tmrec/README b/src/modules/tmrec/README index c57347583..bcb8380ee 100644 --- a/src/modules/tmrec/README +++ b/src/modules/tmrec/README @@ -103,7 +103,7 @@ Chapter 1. Admin Guide 3.1. separator (str) - Separator character used to delimit attributes in time reccurence + Separator character used to delimit attributes in time reccurrence definitions. Default value is '|'. @@ -148,7 +148,7 @@ modparam("tmrec", "separator", ";") duration means “foreverâ€. Negative-length durations are not allowed. See RFC 2445 for the format of duration. In short for common cases - when the duration doesn't exeed a data, it must start with PT + when the duration doesn't exceed a data, it must start with PT followed by the value for hours, minutes or seconds - e.g., a duration of 8 hours must be written as PT8H. * frequency - can be one of the following values: “daily†- specify diff --git a/src/modules/tmrec/doc/tmrec_admin.xml b/src/modules/tmrec/doc/tmrec_admin.xml index 100f07155..2a3193c9d 100644 --- a/src/modules/tmrec/doc/tmrec_admin.xml +++ b/src/modules/tmrec/doc/tmrec_admin.xml @@ -60,7 +60,7 @@ <varname>separator</varname> (str) Separator character used to delimit attributes in time - reccurence definitions. + reccurrence definitions. @@ -131,7 +131,7 @@ modparam("tmrec", "separator", ";") See RFC 2445 for the format of duration. In short for common cases - when the duration doesn't exeed a data, it must start with PT + when the duration doesn't exceed a data, it must start with PT followed by the value for hours, minutes or seconds - e.g., a duration of 8 hours must be written as PT8H. diff --git a/src/modules/tmrec/tmrec_mod.c b/src/modules/tmrec/tmrec_mod.c index 1ca4c7c4d..2334e16f2 100644 --- a/src/modules/tmrec/tmrec_mod.c +++ b/src/modules/tmrec/tmrec_mod.c @@ -85,16 +85,14 @@ static param_export_t params[]={ struct module_exports exports = { "tmrec", DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - mod_destroy, /* destroy function */ - child_init /* per child init function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + 0, /* exported pseudo-variables */ + 0, /* response function */ + mod_init, /* module init function */ + child_init, /* per child init function */ + mod_destroy /* destroy function */ }; @@ -379,4 +377,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_tmrec_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/tmx/Makefile b/src/modules/tmx/Makefile index 387801cf1..6d917e04a 100644 --- a/src/modules/tmx/Makefile +++ b/src/modules/tmx/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=tmx.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/tmx/README b/src/modules/tmx/README index d9c8024c3..58237382c 100644 --- a/src/modules/tmx/README +++ b/src/modules/tmx/README @@ -45,14 +45,15 @@ Juha Heinanen 4.2. t_cancel_callid(callid, cseq, flag [, rcode]) 4.3. t_reply_callid(callid, cseq, code, reason) 4.4. t_flush_flags() - 4.5. t_is_failure_route() - 4.6. t_is_branch_route() - 4.7. t_is_reply_route() - 4.8. t_is_request_route() - 4.9. t_suspend() - 4.10. t_continue(tindex, tlabel, rtname) - 4.11. t_reuse_branch() - 4.12. t_precheck_trans() + 4.5. t_flush_xflags() + 4.6. t_is_failure_route() + 4.7. t_is_branch_route() + 4.8. t_is_reply_route() + 4.9. t_is_request_route() + 4.10. t_suspend() + 4.11. t_continue(tindex, tlabel, rtname) + 4.12. t_reuse_branch() + 4.13. t_precheck_trans() 5. Exported Variables 6. Statistics @@ -79,14 +80,15 @@ Juha Heinanen 1.3. t_cancel_callid usage 1.4. t_reply_callid usage 1.5. t_flush_flags usage - 1.6. t_is_failure_route usage - 1.7. t_is_branch_route usage - 1.8. t_is_reply_route usage - 1.9. t_is_request_route usage - 1.10. t_suspend usage - 1.11. t_continue usage - 1.12. t_reuse_branch usage - 1.13. t_precheck_trans usage + 1.6. t_flush_xflags usage + 1.7. t_is_failure_route usage + 1.8. t_is_branch_route usage + 1.9. t_is_reply_route usage + 1.10. t_is_request_route usage + 1.11. t_suspend usage + 1.12. t_continue usage + 1.13. t_reuse_branch usage + 1.14. t_precheck_trans usage Chapter 1. Admin Guide @@ -108,14 +110,15 @@ Chapter 1. Admin Guide 4.2. t_cancel_callid(callid, cseq, flag [, rcode]) 4.3. t_reply_callid(callid, cseq, code, reason) 4.4. t_flush_flags() - 4.5. t_is_failure_route() - 4.6. t_is_branch_route() - 4.7. t_is_reply_route() - 4.8. t_is_request_route() - 4.9. t_suspend() - 4.10. t_continue(tindex, tlabel, rtname) - 4.11. t_reuse_branch() - 4.12. t_precheck_trans() + 4.5. t_flush_xflags() + 4.6. t_is_failure_route() + 4.7. t_is_branch_route() + 4.8. t_is_reply_route() + 4.9. t_is_request_route() + 4.10. t_suspend() + 4.11. t_continue(tindex, tlabel, rtname) + 4.12. t_reuse_branch() + 4.13. t_precheck_trans() 5. Exported Variables 6. Statistics @@ -166,7 +169,7 @@ Chapter 1. Admin Guide Enable/disable transaction pre-check via t_precheck_trans() function. If set to 0, the internal structures are not created at startup and the - funcation will return false always. + function will return false always. Default value is 1 (enabled). @@ -181,14 +184,15 @@ modparam("tmx", "precheck_trans", 0) 4.2. t_cancel_callid(callid, cseq, flag [, rcode]) 4.3. t_reply_callid(callid, cseq, code, reason) 4.4. t_flush_flags() - 4.5. t_is_failure_route() - 4.6. t_is_branch_route() - 4.7. t_is_reply_route() - 4.8. t_is_request_route() - 4.9. t_suspend() - 4.10. t_continue(tindex, tlabel, rtname) - 4.11. t_reuse_branch() - 4.12. t_precheck_trans() + 4.5. t_flush_xflags() + 4.6. t_is_failure_route() + 4.7. t_is_branch_route() + 4.8. t_is_reply_route() + 4.9. t_is_request_route() + 4.10. t_suspend() + 4.11. t_continue(tindex, tlabel, rtname) + 4.12. t_reuse_branch() + 4.13. t_precheck_trans() 4.1. t_cancel_branches(which) @@ -259,6 +263,10 @@ if (t_reply_callid("123qaz", "5", "458", "Replied remotely")) { transaction. It make sense only in routing block if the transaction was created via t_newtran() and the flags have been altered since. + It is not needed to execute this function when using t_relay() (or + similar tm relay functions, flags are synchronized automatically in + that case). + This function can be used from ANY_ROUTE . Example 1.5. t_flush_flags usage @@ -266,13 +274,31 @@ if (t_reply_callid("123qaz", "5", "458", "Replied remotely")) { t_flush_flags(); ... -4.5. t_is_failure_route() +4.5. t_flush_xflags() + + Flush the extended flags from current SIP message into the already + created transaction. It make sense only in routing block if the + transaction was created via t_newtran() and the extended flags have + been altered since. + + It is not needed to execute this function when using t_relay() (or + similar tm relay functions, xflags are synchronized automatically in + that case). + + This function can be used from ANY_ROUTE . + + Example 1.6. t_flush_xflags usage +... +t_flush_xflags(); +... + +4.6. t_is_failure_route() Returns true if the top-executed route block is failure_route. This function can be used from ANY_ROUTE . - Example 1.6. t_is_failure_route usage + Example 1.7. t_is_failure_route usage ... failure_route[xyz] { route(abc); @@ -283,13 +309,13 @@ route[abc] { } ... -4.6. t_is_branch_route() +4.7. t_is_branch_route() Returns true if the top-executed route block is branch_route. This function can be used from ANY_ROUTE . - Example 1.7. t_is_branch_route usage + Example 1.8. t_is_branch_route usage ... branch_route[xyz] { route(abc); @@ -300,13 +326,13 @@ route[abc] { } ... -4.7. t_is_reply_route() +4.8. t_is_reply_route() Returns true if the top-executed route block is reply_route. This function can be used from ANY_ROUTE . - Example 1.8. t_is_reply_route usage + Example 1.9. t_is_reply_route usage ... reply_route[xyz] { route(abc); @@ -317,13 +343,13 @@ route[abc] { } ... -4.8. t_is_request_route() +4.9. t_is_request_route() Returns true if the top-executed route block is request_route. This function can be used from ANY_ROUTE . - Example 1.9. t_is_request_route usage + Example 1.10. t_is_request_route usage ... request_route[xyz] { route(abc); @@ -334,7 +360,7 @@ route[abc] { } ... -4.9. t_suspend() +4.10. t_suspend() Suspend the execution of SIP request in a transaction. If transaction was not created yet, it is created by this function. Returns true in @@ -343,16 +369,16 @@ route[abc] { This function can be used from ANY_ROUTE . - Example 1.10. t_suspend usage + Example 1.11. t_suspend usage ... if(t_suspend()) { - xlog("proceesing suspended in trasaction [$T(id_index):$T(id_label)]\n"); + xlog("processing suspended in transaction [$T(id_index):$T(id_label)]\n"); exit; } ... -4.10. t_continue(tindex, tlabel, rtname) +4.11. t_continue(tindex, tlabel, rtname) Continue the execution of the transaction identified by tindex and tlabel with the actions defined in route[rtname]. @@ -371,7 +397,7 @@ if(t_suspend()) This function can be used in ANY_ROUTE. - Example 1.11. t_continue usage + Example 1.12. t_continue usage ... t_continue('123', '456', 'MYROUTE'); ... @@ -381,7 +407,7 @@ route[MYROUTE] { } ... -4.11. t_reuse_branch() +4.12. t_reuse_branch() Creates new "main" branch by making copy of branch-failure branch. Currently the following branch attributes are copied from @@ -390,7 +416,7 @@ route[MYROUTE] { This function can be used from tm:branch-failure event_route. - Example 1.12. t_reuse_branch usage + Example 1.13. t_reuse_branch usage ... event_route [tm:branch-failure:contact] { t_reuse_branch(); @@ -400,7 +426,7 @@ event_route [tm:branch-failure:contact] { } ... -4.12. t_precheck_trans() +4.13. t_precheck_trans() Check if current processed message is handled by other process. This function is useful to catch retransmissions before transaction is @@ -412,7 +438,7 @@ event_route [tm:branch-failure:contact] { This function can be used from REQUEST_ROUTE . - Example 1.13. t_precheck_trans usage + Example 1.14. t_precheck_trans usage ... # handle retransmissions if(t_precheck_trans()) { diff --git a/src/modules/tmx/doc/tmx_admin.xml b/src/modules/tmx/doc/tmx_admin.xml index 3f5b75135..19c808c93 100644 --- a/src/modules/tmx/doc/tmx_admin.xml +++ b/src/modules/tmx/doc/tmx_admin.xml @@ -65,7 +65,7 @@ Enable/disable transaction pre-check via t_precheck_trans() function. If set to 0, the internal structures are not created - at startup and the funcation will return false always. + at startup and the function will return false always. Default value is 1 (enabled). @@ -215,6 +215,11 @@ if (t_reply_callid("123qaz", "5", "458", "Replied remotely")) { created via t_newtran() and the flags have been altered since. + It is not needed to execute this function when using t_relay() (or + similar tm relay functions, flags are synchronized automatically in + that case). + + This function can be used from ANY_ROUTE . @@ -223,6 +228,32 @@ if (t_reply_callid("123qaz", "5", "458", "Replied remotely")) { ... t_flush_flags(); ... + + + +
+ + <function moreinfo="none">t_flush_xflags()</function> + + + Flush the extended flags from current SIP message into the already created + transaction. It make sense only in routing block if the transaction was + created via t_newtran() and the extended flags have been altered since. + + + It is not needed to execute this function when using t_relay() (or + similar tm relay functions, xflags are synchronized automatically in + that case). + + + This function can be used from ANY_ROUTE . + + + <function>t_flush_xflags</function> usage + +... +t_flush_xflags(); +...
@@ -345,7 +376,7 @@ route[abc] { ... if(t_suspend()) { - xlog("proceesing suspended in trasaction [$T(id_index):$T(id_label)]\n"); + xlog("processing suspended in transaction [$T(id_index):$T(id_label)]\n"); exit; } ... diff --git a/src/modules/tmx/tmx_mod.c b/src/modules/tmx/tmx_mod.c index 688c19aa2..a40a00da6 100644 --- a/src/modules/tmx/tmx_mod.c +++ b/src/modules/tmx/tmx_mod.c @@ -68,6 +68,7 @@ static int t_reply_callid(sip_msg_t* msg, char *cid, char *cseq, static int fixup_reply_callid(void** param, int param_no); static int t_flush_flags(sip_msg_t* msg, char*, char* ); +static int t_flush_xflags(sip_msg_t* msg, char *, char *); static int w_t_is_failure_route(sip_msg_t* msg, char*, char* ); static int w_t_is_branch_route(sip_msg_t* msg, char*, char* ); static int w_t_is_reply_route(sip_msg_t* msg, char*, char*); @@ -177,6 +178,8 @@ static cmd_export_t cmds[]={ fixup_reply_callid, 0, ANY_ROUTE }, {"t_flush_flags", (cmd_function)t_flush_flags, 0, 0, 0, ANY_ROUTE }, + {"t_flush_xflags", (cmd_function)t_flush_xflags, 0, 0, + 0, ANY_ROUTE }, {"t_is_failure_route", (cmd_function)w_t_is_failure_route, 0, 0, 0, ANY_ROUTE }, {"t_is_branch_route", (cmd_function)w_t_is_branch_route, 0, 0, @@ -206,22 +209,16 @@ static param_export_t params[]={ /** module exports */ struct module_exports exports= { - "tmx", + "tmx", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, -#ifdef STATISTICS - mod_stats, /* exported statistics */ -#else - 0, -#endif - 0, /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - (destroy_function) destroy, - child_init /* per-child init function */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + mod_pvs, /* pv exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + destroy /* module destroy function */ }; /** @@ -593,6 +590,33 @@ static int t_flush_flags(sip_msg_t* msg, char *foo, char *bar) return ki_t_flush_flags(msg); } +/** + * + */ +static int ki_t_flush_xflags(sip_msg_t* msg) +{ + tm_cell_t *t; + + t=_tmx_tmb.t_gett(); + if ( t==0 || t==T_UNDEFINED) { + LM_ERR("failed to flush flags - no transaction found\n"); + return -1; + } + + memcpy(t->uas.request->xflags, msg->xflags, + KSR_XFLAGS_SIZE * sizeof(flag_t)); + return 1; +} + +/** + * + */ +static int t_flush_xflags(sip_msg_t* msg, char *foo, char *bar) +{ + return ki_t_flush_xflags(msg); +} + + /** * */ @@ -1045,6 +1069,11 @@ static sr_kemi_t sr_kemi_tmx_exports[] = { { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("tmx"), str_init("t_flush_xflags"), + SR_KEMIP_INT, ki_t_flush_xflags, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("tmx"), str_init("t_cancel_branches"), SR_KEMIP_INT, ki_t_cancel_branches, { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, diff --git a/src/modules/topoh/Makefile b/src/modules/topoh/Makefile index f92e4923f..d82959c57 100644 --- a/src/modules/topoh/Makefile +++ b/src/modules/topoh/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=topoh.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/topoh/README b/src/modules/topoh/README index 2c6e3d17b..45e4b904d 100644 --- a/src/modules/topoh/README +++ b/src/modules/topoh/README @@ -93,7 +93,7 @@ Chapter 1. Admin Guide The module is transparent for the configuration writer. It only needs to be loaded (tune the parameters if needed). The SIP server can be - restarted whitout affecting ongoing calls - once it is up, can + restarted without affecting ongoing calls - once it is up, can encode/decode topology details, thus no call will be lost. By using same mask_key, many SIP servers can decode the message, for @@ -234,7 +234,7 @@ modparam("topoh", "callid_prefix", "***") If set to 1, topoh module will bind to sanity module in order to perform sanity checks over received SIP request. Default sanity checks - are done. It is useful to check if received request is well formated + are done. It is useful to check if received request is well formatted before proceeding to encoding/decoding. Default value is 0 (do not bind to sanity module). @@ -253,8 +253,8 @@ modparam("topoh", "sanity_checks", 1) Note: do not enable this option if you have SIP devices that can alter the URI values it takes from Contact or Record-Route headers (like - adding port 5060 when no port is in received URIs, or thet introduce - new parameters at unknown position). + adding port 5060 when no port is in received URIs, or that introduces + new parameters at an unknown position). Default value is 0. diff --git a/src/modules/topoh/doc/topoh_admin.xml b/src/modules/topoh/doc/topoh_admin.xml index bb3c44c9c..857813585 100644 --- a/src/modules/topoh/doc/topoh_admin.xml +++ b/src/modules/topoh/doc/topoh_admin.xml @@ -24,7 +24,7 @@ The module is transparent for the configuration writer. It only needs to be loaded (tune the parameters if needed). The SIP server can be restarted - whitout affecting ongoing calls - once it is up, can encode/decode + without affecting ongoing calls - once it is up, can encode/decode topology details, thus no call will be lost. @@ -237,7 +237,7 @@ modparam("topoh", "callid_prefix", "***") If set to 1, topoh module will bind to sanity module in order to perform sanity checks over received SIP request. Default sanity checks are done. It is useful to check if received request - is well formated before proceeding to encoding/decoding. + is well formatted before proceeding to encoding/decoding. @@ -265,7 +265,7 @@ modparam("topoh", "sanity_checks", 1) Note: do not enable this option if you have SIP devices that can alter the URI values it takes from Contact or Record-Route headers (like adding port 5060 when no port is in received URIs, or - thet introduce new parameters at unknown position). + that introduces new parameters at an unknown position). diff --git a/src/modules/topoh/topoh_mod.c b/src/modules/topoh/topoh_mod.c index 853140ff2..c1a597eb1 100644 --- a/src/modules/topoh/topoh_mod.c +++ b/src/modules/topoh/topoh_mod.c @@ -116,18 +116,16 @@ static cmd_export_t cmds[]={ /** module exports */ struct module_exports exports= { - "topoh", + "topoh", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - 0, - 0 /* per-child init function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + 0 /* module destroy function */ }; /** diff --git a/src/modules/topos/Makefile b/src/modules/topos/Makefile index bf43e1a72..58eb35161 100644 --- a/src/modules/topos/Makefile +++ b/src/modules/topos/Makefile @@ -1,7 +1,6 @@ # # topos module makefile # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,8 +8,6 @@ auto_gen= NAME=topos.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 SER_LIBS+=$(SERLIBPATH)/srutils/srutils diff --git a/src/modules/topos/README b/src/modules/topos/README index a9bd0d832..d75a9de69 100644 --- a/src/modules/topos/README +++ b/src/modules/topos/README @@ -33,10 +33,13 @@ Daniel-Constantin Mierla 3.6. dialog_expire (int) 3.7. clean_interval (int) 3.8. event_callback (str) + 3.9. event_mode (int) + 3.10. contact_host (str) 4. Event Routes 4.1. event_route[topos:msg-outgoing] + 4.2. event_route[topos:msg-sending] List of Examples @@ -48,7 +51,10 @@ Daniel-Constantin Mierla 1.6. Set dialog_expire parameter 1.7. Set clean_interval parameter 1.8. Set event_callback parameter - 1.9. Usage of event_route[topos:msg-outgoing] + 1.9. Set event_mode parameter + 1.10. Set contact_host parameter + 1.11. Usage of event_route[topos:msg-outgoing] + 1.12. Usage of event_route[topos:msg-sending] Chapter 1. Admin Guide @@ -70,10 +76,13 @@ Chapter 1. Admin Guide 3.6. dialog_expire (int) 3.7. clean_interval (int) 3.8. event_callback (str) + 3.9. event_mode (int) + 3.10. contact_host (str) 4. Event Routes 4.1. event_route[topos:msg-outgoing] + 4.2. event_route[topos:msg-sending] 1. Overview @@ -119,6 +128,8 @@ Chapter 1. Admin Guide 3.6. dialog_expire (int) 3.7. clean_interval (int) 3.8. event_callback (str) + 3.9. event_mode (int) + 3.10. contact_host (str) 3.1. storage (str) @@ -163,7 +174,7 @@ modparam("topos", "mask_callid", 1) If set to 1, topos module will bind to sanity module in order to perform sanity checks over received SIP request. Default sanity checks - are done. It is useful to check if received request is well formated + are done. It is useful to check if received request is well formatted before proceeding to encoding/decoding. Default value is 0 (do not bind to sanity module). @@ -227,9 +238,38 @@ function ksr_topos_event(evname) end ... +3.9. event_mode (int) + + Control what event_route blocks to be executed. It is a bitmask of: 1 - + execute event_route[topos:outgoing]; 2 - execute + event_route[topos:sending]. + + Default value is 3 (execute both event_route blocks). + + Example 1.9. Set event_mode parameter +... +modparam("topos", "event_mode", 2) +... + +3.10. contact_host (str) + + You may need to control the host part of the Contact header added by + topos. For example when using TLS with TOPOS the remote UAS must be + able to open a new TLS socket to the contact header. In this case, the + contact header must contain a domain name with a trusted CA signed + certitificate. + + Default value is taken from the Record-Route URI. + + Example 1.10. Set contact_host parameter +... +modparam("topos", "contact_host", "proxy.domain.com") +... + 4. Event Routes 4.1. event_route[topos:msg-outgoing] + 4.2. event_route[topos:msg-sending] 4.1. event_route[topos:msg-outgoing] @@ -243,7 +283,7 @@ end reparsing the outgoing SIP message for the cases when topology hiding is not wanted. - Example 1.9. Usage of event_route[topos:msg-outgoing] + Example 1.11. Usage of event_route[topos:msg-outgoing] ... event_route[topos:msg-outgoing] { if($sndto(ip)=="10.1.1.10") { @@ -251,3 +291,22 @@ event_route[topos:msg-outgoing] { } } ... + +4.2. event_route[topos:msg-sending] + + It is executed before doing topology stripping processing for a SIP + message to be sent out, being executed after + event_route[topos:sending]. + + Inside the event route the variables $sndto(ip), $sndto(port) and + $sndto(proto) point to the destination. The SIP message is the one to + be sent out. + + Example 1.12. Usage of event_route[topos:msg-sending] +... +event_route[topos:msg-sending] { + if(is_request() and $fU=="alice") { + drop; + } +} +... diff --git a/src/modules/topos/doc/topos_admin.xml b/src/modules/topos/doc/topos_admin.xml index 049d11ea8..b81672b00 100644 --- a/src/modules/topos/doc/topos_admin.xml +++ b/src/modules/topos/doc/topos_admin.xml @@ -153,7 +153,7 @@ modparam("topos", "mask_callid", 1) If set to 1, topos module will bind to sanity module in order to perform sanity checks over received SIP request. Default sanity checks are done. It is useful to check if received request - is well formated before proceeding to encoding/decoding. + is well formatted before proceeding to encoding/decoding. @@ -254,13 +254,59 @@ function ksr_topos_event(evname) return 1; end ... + + + +
+ <varname>event_mode</varname> (int) + + Control what event_route blocks to be executed. It is a bitmask of: + 1 - execute event_route[topos:outgoing]; 2 - execute + event_route[topos:sending]. + + + + Default value is 3 (execute both event_route blocks). + + + + Set <varname>event_mode</varname> parameter + +... +modparam("topos", "event_mode", 2) +... + + +
+
+ <varname>contact_host</varname> (str) + + You may need to control the host part of the Contact header added + by topos. + + For example when using TLS with TOPOS the remote UAS must be able to open + a new TLS socket to the contact header. + In this case, the contact header must contain a domain name with a trusted CA + signed certitificate. + + + + Default value is taken from the Record-Route URI. + + + + Set <varname>contact_host</varname> parameter + +... +modparam("topos", "contact_host", "proxy.domain.com") +...
Event Routes -
+
event_route[topos:msg-outgoing] It is executed before doing topology stripping processing for an outgoing @@ -284,6 +330,30 @@ event_route[topos:msg-outgoing] { } } ... + + +
+
+ event_route[topos:msg-sending] + + It is executed before doing topology stripping processing for a SIP + message to be sent out, being executed after event_route[topos:sending]. + + + Inside the event route the variables $sndto(ip), $sndto(port) and + $sndto(proto) point to the destination. The SIP message is the one + to be sent out. + + + Usage of event_route[topos:msg-sending] + +... +event_route[topos:msg-sending] { + if(is_request() and $fU=="alice") { + drop; + } +} +...
diff --git a/src/modules/topos/topos_mod.c b/src/modules/topos/topos_mod.c index 2a13d51a4..f6b6a3a2f 100644 --- a/src/modules/topos/topos_mod.c +++ b/src/modules/topos/topos_mod.c @@ -26,11 +26,12 @@ * Module: \ref topos */ -/*! \defgroup topoh Kamailio :: Topology stripping +/*! \defgroup topos Kamailio :: Topology stripping * * This module removes the SIP routing headers that show topology details. * The script interpreter gets the SIP messages with full content, so all * existing functionality is preserved. + * @{ */ #include @@ -84,16 +85,23 @@ extern int _tps_dialog_expire; int _tps_clean_interval = 60; +#define TPS_EVENTRT_OUTGOING 1 +#define TPS_EVENTRT_SENDING 2 +static int _tps_eventrt_mode = TPS_EVENTRT_OUTGOING | TPS_EVENTRT_SENDING; static int _tps_eventrt_outgoing = -1; static str _tps_eventrt_callback = STR_NULL; -static str _tps_eventrt_name = str_init("topos:msg-outgoing"); +static str _tps_eventrt_outgoing_name = str_init("topos:msg-outgoing"); +static int _tps_eventrt_sending = -1; +static str _tps_eventrt_sending_name = str_init("topos:msg-sending"); +str _tps_contact_host = str_init(""); sanity_api_t scb; int tps_msg_received(sr_event_param_t *evp); int tps_msg_sent(sr_event_param_t *evp); -static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp); +static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp, + int evtype, int evidx, str *evname); /** module functions */ /* Module init function prototype */ @@ -121,24 +129,24 @@ static param_export_t params[]={ {"dialog_expire", PARAM_INT, &_tps_dialog_expire}, {"clean_interval", PARAM_INT, &_tps_clean_interval}, {"event_callback", PARAM_STR, &_tps_eventrt_callback}, + {"event_mode", PARAM_STR, &_tps_eventrt_mode}, + {"contact_host", PARAM_STR, &_tps_contact_host}, {0,0,0} }; /** module exports */ struct module_exports exports= { - "topos", + "topos", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0, /* exported MI functions */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ 0, /* exported pseudo-variables */ - 0, /* extra processes */ + 0, /* response handling function */ mod_init, /* module initialization function */ - 0, - destroy, /* destroy function */ - child_init /* child initialization function */ + child_init, /* child initialization function */ + destroy /* destroy function */ }; /** @@ -146,11 +154,16 @@ struct module_exports exports= { */ static int mod_init(void) { - _tps_eventrt_outgoing = route_lookup(&event_rt, _tps_eventrt_name.s); + _tps_eventrt_outgoing = route_lookup(&event_rt, _tps_eventrt_outgoing_name.s); if(_tps_eventrt_outgoing<0 || event_rt.rlist[_tps_eventrt_outgoing]==NULL) { _tps_eventrt_outgoing = -1; } + _tps_eventrt_sending = route_lookup(&event_rt, _tps_eventrt_sending_name.s); + if(_tps_eventrt_sending<0 + || event_rt.rlist[_tps_eventrt_sending]==NULL) { + _tps_eventrt_sending = -1; + } if(faked_msg_init()<0) { LM_ERR("failed to init fmsg\n"); @@ -380,7 +393,8 @@ int tps_msg_sent(sr_event_param_t *evp) obuf = (str*)evp->data; - if(tps_execute_event_route(NULL, evp)==1) { + if(tps_execute_event_route(NULL, evp, TPS_EVENTRT_OUTGOING, + _tps_eventrt_outgoing, &_tps_eventrt_outgoing_name)==1) { return 0; } @@ -396,7 +410,14 @@ int tps_msg_sent(sr_event_param_t *evp) goto done; } + if(tps_execute_event_route(&msg, evp, TPS_EVENTRT_SENDING, + _tps_eventrt_sending, &_tps_eventrt_sending_name)==1) { + goto done; + } + if(msg.first_line.type==SIP_REQUEST) { + + dialog = (get_to(&msg)->tag_value.len>0)?1:0; local = 0; @@ -405,12 +426,9 @@ int tps_msg_sent(sr_event_param_t *evp) } if(local==1 && dialog==0) { - if((get_cseq(&msg)->method_id) & (METHOD_OPTIONS|METHOD_NOTIFY)) { - /* skip local out-of-dialog requests (e.g., keepalive) */ - goto done; - } - if(get_cseq(&msg)->method.len==4 - && strncmp(get_cseq(&msg)->method.s, "KDMQ", 4)==0) { + if((get_cseq(&msg)->method_id) + & (METHOD_OPTIONS|METHOD_NOTIFY|METHOD_KDMQ)) { + /* skip local out-of-dialog requests (e.g., keepalive, dmq) */ goto done; } } @@ -451,7 +469,8 @@ int tps_get_branch_expire(void) /** * */ -static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp) +static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp, + int evtype, int evidx, str *evname) { struct sip_msg *fmsg; struct run_act_ctx ctx; @@ -459,7 +478,11 @@ static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp) sr_kemi_eng_t *keng = NULL; struct onsend_info onsnd_info = {0}; - if(_tps_eventrt_outgoing<0) { + if(!(_tps_eventrt_mode & evtype)) { + return 0; + } + + if(evidx<0) { if(_tps_eventrt_callback.s!=NULL || _tps_eventrt_callback.len>0) { keng = sr_kemi_eng_get(); if(keng==NULL) { @@ -470,12 +493,12 @@ static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp) } } - if(_tps_eventrt_outgoing<0 && keng==NULL) { + if(evidx<0 && keng==NULL) { return 0; } - LM_DBG("executing event_route[topos:...] (%d)\n", - _tps_eventrt_outgoing); + LM_DBG("executing event_route[topos:%.*s] (%d)\n", evname->len, evname->s, + evidx); fmsg = faked_msg_next(); onsnd_info.to = &evp->dst->to; @@ -494,12 +517,12 @@ static int tps_execute_event_route(sip_msg_t *msg, sr_event_param_t *evp) rtb = get_route_type(); set_route_type(REQUEST_ROUTE); init_run_actions_ctx(&ctx); - if(_tps_eventrt_outgoing>=0) { - run_top_route(event_rt.rlist[_tps_eventrt_outgoing], (msg)?msg:fmsg, &ctx); + if(evidx>=0) { + run_top_route(event_rt.rlist[evidx], (msg)?msg:fmsg, &ctx); } else { if(keng!=NULL) { if(sr_kemi_ctx_route(keng, &ctx, (msg)?msg:fmsg, EVENT_ROUTE, - &_tps_eventrt_callback, &_tps_eventrt_name)<0) { + &_tps_eventrt_callback, evname)<0) { LM_ERR("error running event route kemi callback\n"); p_onsend=NULL; return -1; @@ -534,3 +557,5 @@ int bind_topos(topos_api_t *api) return 0; } + +/** @} */ diff --git a/src/modules/topos/tps_storage.c b/src/modules/topos/tps_storage.c index e434a45e6..83d81172d 100644 --- a/src/modules/topos/tps_storage.c +++ b/src/modules/topos/tps_storage.c @@ -53,6 +53,8 @@ extern sruid_t _tps_sruid; extern db1_con_t* _tps_db_handle; extern db_func_t _tpsdbf; +extern str _tps_contact_host; + #define TPS_STORAGE_LOCK_SIZE 1<<9 static gen_lock_set_t *_tps_storage_lock_set = NULL; @@ -208,6 +210,7 @@ int tps_storage_fill_contact(sip_msg_t *msg, tps_data_t *td, str *uuid, int dir) str sv; sip_uri_t puri; int i; + int contact_len; if(dir==TPS_DIR_DOWNSTREAM) { sv = td->bs_contact; @@ -219,14 +222,20 @@ int tps_storage_fill_contact(sip_msg_t *msg, tps_data_t *td, str *uuid, int dir) return 0; } - if(td->cp + 8 + (2*uuid->len) + sv.len >= td->cbuf + TPS_DATA_SIZE) { - LM_ERR("insufficient data buffer\n"); - return -1; - } if (parse_uri(sv.s, sv.len, &puri) < 0) { LM_ERR("failed to parse the uri\n"); return -1; } + + contact_len = sv.len; + if (_tps_contact_host.len) + contact_len = sv.len - puri.host.len + _tps_contact_host.len; + + if(td->cp + 8 + (2*uuid->len) + contact_len >= td->cbuf + TPS_DATA_SIZE) { + LM_ERR("insufficient data buffer\n"); + return -1; + } + if(dir==TPS_DIR_DOWNSTREAM) { td->b_uuid.s = td->cp; *td->cp = 'b'; @@ -263,8 +272,15 @@ int tps_storage_fill_contact(sip_msg_t *msg, tps_data_t *td, str *uuid, int dir) td->cp += uuid->len; *td->cp = '@'; td->cp++; - memcpy(td->cp, puri.host.s, puri.host.len); - td->cp += puri.host.len; + + if (_tps_contact_host.len) { // using configured hostname in the contact header + memcpy(td->cp, _tps_contact_host.s, _tps_contact_host.len); + td->cp += _tps_contact_host.len; + } else { + memcpy(td->cp, puri.host.s, puri.host.len); + td->cp += puri.host.len; + } + if(puri.port.len>0) { *td->cp = ':'; td->cp++; diff --git a/src/modules/topos_redis/Makefile b/src/modules/topos_redis/Makefile index 1f26efce9..d151e2985 100644 --- a/src/modules/topos_redis/Makefile +++ b/src/modules/topos_redis/Makefile @@ -13,12 +13,16 @@ HIREDIS_BUILDER = $(shell \ endif ifeq ($(HIREDIS_BUILDER),) - HIREDISDEFS=-I$(LOCALBASE)/include + HIREDISDEFS=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/hiredis -I/usr/include/hiredis HIREDISLIBS=-L$(LOCALBASE)/lib -lhiredis else HIREDISDEFS = $(shell $(HIREDIS_BUILDER) --cflags) HIREDISLIBS = $(shell $(HIREDIS_BUILDER) --libs) +ifeq (,$(findstring hiredis,$(HIREDISDEFS))) + DEFS+=-DWITH_HIREDIS_PATH +endif + ifeq ($(HIREDISLIBS),-L -lhiredis) HIREDISDEFS = $(shell $(HIREDIS_BUILDER) --cflags) /opt/local/include HIREDISLIBS = -L/opt/local/lib -lhiredis @@ -29,6 +33,4 @@ endif DEFS+=$(HIREDISDEFS) LIBS=$(HIREDISLIBS) -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/topos_redis/topos_redis_mod.c b/src/modules/topos_redis/topos_redis_mod.c index d7fd339df..22bdd5a13 100644 --- a/src/modules/topos_redis/topos_redis_mod.c +++ b/src/modules/topos_redis/topos_redis_mod.c @@ -57,18 +57,16 @@ static param_export_t params[]={ }; struct module_exports exports = { - "topos_redis", + "topos_redis", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, - 0, /* exported MI functions */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - mod_destroy, /* destroy function */ - child_init /* per child init function */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per child init function */ + mod_destroy /* destroy function */ }; diff --git a/src/modules/topos_redis/topos_redis_storage.c b/src/modules/topos_redis/topos_redis_storage.c index 6d09029b4..47ddad0c1 100644 --- a/src/modules/topos_redis/topos_redis_storage.c +++ b/src/modules/topos_redis/topos_redis_storage.c @@ -654,7 +654,7 @@ int tps_redis_load_invite_branch(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd) sval.s = NULL; switch(rrpl->element[i]->type) { case REDIS_REPLY_STRING: - LM_DBG("r[%d]: s[%.*s]\n", i, rrpl->element[i]->len, + LM_DBG("r[%d]: s[%.*s]\n", i, (int)rrpl->element[i]->len, rrpl->element[i]->str); sval.s = rrpl->element[i]->str; sval.len = rrpl->element[i]->len; @@ -677,7 +677,7 @@ int tps_redis_load_invite_branch(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd) && strncmp(skey.s, tt_key_x_vbranch.s, skey.len)==0) { TPS_REDIS_DATA_APPEND(sd, &skey, &sval, &sd->x_vbranch1); } else { - LM_INFO("unuseful key[%.*s]\n", skey.len, skey.s); + LM_INFO("useless key[%.*s]\n", skey.len, skey.s); } } @@ -807,7 +807,7 @@ int tps_redis_load_branch(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd, sval.s = NULL; switch(rrpl->element[i]->type) { case REDIS_REPLY_STRING: - LM_DBG("r[%d]: s[%.*s]\n", i, rrpl->element[i]->len, + LM_DBG("r[%d]: s[%.*s]\n", i, (int)rrpl->element[i]->len, rrpl->element[i]->str); sval.s = rrpl->element[i]->str; sval.len = rrpl->element[i]->len; @@ -884,7 +884,7 @@ int tps_redis_load_branch(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd, && strncmp(skey.s, tt_key_b_tag.s, skey.len)==0) { TPS_REDIS_DATA_APPEND(sd, &skey, &sval, &sd->b_tag); } else { - LM_WARN("unknow key[%.*s]\n", skey.len, skey.s); + LM_WARN("unknown key[%.*s]\n", skey.len, skey.s); } } @@ -1010,7 +1010,7 @@ int tps_redis_load_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd) sval.s = NULL; switch(rrpl->element[i]->type) { case REDIS_REPLY_STRING: - LM_DBG("r[%d]: s[%.*s]\n", i, rrpl->element[i]->len, + LM_DBG("r[%d]: s[%.*s]\n", i, (int)rrpl->element[i]->len, rrpl->element[i]->str); sval.s = rrpl->element[i]->str; sval.len = rrpl->element[i]->len; @@ -1089,7 +1089,7 @@ int tps_redis_load_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd) && strncmp(skey.s, td_key_s_cseq.s, skey.len)==0) { TPS_REDIS_DATA_APPEND(sd, &skey, &sval, &sd->s_cseq); } else { - LM_WARN("unknow key[%.*s]\n", skey.len, skey.s); + LM_WARN("unknown key[%.*s]\n", skey.len, skey.s); } } diff --git a/src/modules/tsilo/Makefile b/src/modules/tsilo/Makefile index 860108a81..20437fcfb 100644 --- a/src/modules/tsilo/Makefile +++ b/src/modules/tsilo/Makefile @@ -9,8 +9,6 @@ auto_gen= NAME=tsilo.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - ifeq ($(INSTALL_FLAVOUR),kamailio) DEFS+= -DWITH_EVENT_LOCAL_REQUEST endif # INSTALL_FLAVOUR diff --git a/src/modules/tsilo/README b/src/modules/tsilo/README index 979e60424..47c14ce1b 100644 --- a/src/modules/tsilo/README +++ b/src/modules/tsilo/README @@ -214,7 +214,7 @@ if (is_method("REGISTER")) { pseudo-variable. * domain - Name of table that should be used for looking up new contacts for r-uri. - * uri (optiona) - uri for which to do lookup for new destinations. + * uri (optional) - uri for which to do lookup for new destinations. This function can be used from REQUEST_ROUTE, FAILURE_ROUTE. diff --git a/src/modules/tsilo/doc/tsilo_admin.xml b/src/modules/tsilo/doc/tsilo_admin.xml index 7c79994d3..c294e7c28 100644 --- a/src/modules/tsilo/doc/tsilo_admin.xml +++ b/src/modules/tsilo/doc/tsilo_admin.xml @@ -213,7 +213,7 @@ if (is_method("REGISTER")) { - uri (optiona) - uri for which to do lookup for new + uri (optional) - uri for which to do lookup for new destinations. diff --git a/src/modules/tsilo/ts_handlers.c b/src/modules/tsilo/ts_handlers.c index 9015fcaa3..4491ef304 100644 --- a/src/modules/tsilo/ts_handlers.c +++ b/src/modules/tsilo/ts_handlers.c @@ -33,7 +33,7 @@ extern struct ts_table *t_table; * \brief add transaction structure to tm callbacks * \param t current transaction * \param req current sip request - * \param tma_t current transaction + * \param ts current transaction * \return 0 on success, -1 on failure */ int ts_set_tm_callbacks(struct cell *t, sip_msg_t *req, ts_transaction_t *ts) @@ -95,7 +95,7 @@ void ts_onreply(struct cell* t, int type, struct tmcb_params *param) LM_DBG("transaction %u:%u not found\n",cb_ptr->tindex, cb_ptr->tlabel); unlock_entry(_e); } else { - LM_DBG("called with uknown type %d\n", type); + LM_DBG("called with unknown type %d\n", type); } return; diff --git a/src/modules/tsilo/ts_handlers.h b/src/modules/tsilo/ts_handlers.h index 43da14215..0cb6f5c48 100644 --- a/src/modules/tsilo/ts_handlers.h +++ b/src/modules/tsilo/ts_handlers.h @@ -28,7 +28,7 @@ * \brief add transaction structure to tm callbacks * \param t current transaction * \param req current sip request - * \param tma_t current transaction + * \param ts current transaction * \return 0 on success, -1 on failure */ int ts_set_tm_callbacks(struct cell *t, sip_msg_t *req, ts_transaction_t *ts); diff --git a/src/modules/tsilo/ts_hash.c b/src/modules/tsilo/ts_hash.c index fec10431c..5532dfd52 100644 --- a/src/modules/tsilo/ts_hash.c +++ b/src/modules/tsilo/ts_hash.c @@ -42,7 +42,7 @@ struct ts_table *t_table = 0; /*! * \brief Destroy a urecord and free memory - * \param tma destroyed urecord + * \param urecord destroyed urecord */ void free_ts_urecord(struct ts_urecord *urecord) { @@ -231,6 +231,7 @@ int new_ts_urecord(str* ruri, ts_urecord_t** _r) /*! * \brief Insert a new record into transactions table * \param ruri request uri + * \param _r pointer to the new record * \return 0 on success, -1 on failure */ int insert_ts_urecord(str* ruri, ts_urecord_t** _r) @@ -266,7 +267,7 @@ int insert_ts_urecord(str* ruri, ts_urecord_t** _r) /*! * \brief remove a urecord from table and free the memory - * \param urecord t + * \param _r urecord * \return 0 on success, -1 on failure */ void remove_ts_urecord(ts_urecord_t* _r) @@ -295,9 +296,9 @@ void remove_ts_urecord(ts_urecord_t* _r) /*! * \brief Insert a new transaction structure into urecord + * \param t transaction + * \param msg SIP message * \param _r urecord - * \param tindex transaction index in tm table - * \param tlabel transaction label in tm table * \return 0 on success, -1 otherwise */ int insert_ts_transaction(struct cell* t, struct sip_msg* msg, struct ts_urecord* _r) @@ -397,7 +398,7 @@ ts_transaction_t* clone_ts_transaction(ts_transaction_t* ts) /*! * \brief remove a transaction from the urecord transactions list - * \param tma unlinked transaction + * \param ts_t unlinked transaction */ void remove_ts_transaction(ts_transaction_t* ts_t) { @@ -419,7 +420,7 @@ void remove_ts_transaction(ts_transaction_t* ts_t) /*! * \brief Destroy a transaction and free memory - * \param tma destroyed transaction + * \param ts_t destroyed transaction */ void free_ts_transaction(void *ts_t) { diff --git a/src/modules/tsilo/ts_hash.h b/src/modules/tsilo/ts_hash.h index 4bc002f77..a369abb8a 100644 --- a/src/modules/tsilo/ts_hash.h +++ b/src/modules/tsilo/ts_hash.h @@ -139,22 +139,23 @@ int new_ts_urecord(str* ruri, ts_urecord_t** _r); /*! * \brief Insert a new record into transactions table * \param ruri request uri + * \param _r pointer to the new record * \return 0 on success, -1 on failure */ int insert_ts_urecord(str* ruri, ts_urecord_t** _r); /*! * \brief remove a urecord from table and free the memory - * \param urecord t + * \param _r urecord * \return 0 on success, -1 on failure */ void remove_ts_urecord(ts_urecord_t* _r); /*! * \brief Insert a new transaction structure into urecord + * \param t transaction + * \param msg SIP message * \param _r urecord - * \param tindex transaction index in tm table - * \param tlabel transaction label in tm table * \return 0 on success, -1 otherwise */ int insert_ts_transaction(struct cell* t, sip_msg_t* msg, struct ts_urecord* _r); @@ -169,14 +170,14 @@ ts_transaction_t* new_ts_transaction(int tindex, int tlabel); /*! * \brief Clone a transaction structure - * \param tma transaction to be cloned + * \param ts transaction to be cloned * \return cloned transaction structure on success, NULL otherwise */ ts_transaction_t* clone_ts_transaction(ts_transaction_t* ts); /*! * \brief remove a transaction from the urecord transactions list - * \param tma unlinked transaction + * \param ts_t unlinked transaction */ void remove_ts_transaction(ts_transaction_t* ts_t); diff --git a/src/modules/tsilo/tsilo.c b/src/modules/tsilo/tsilo.c index 1bc50c293..0c531acc7 100644 --- a/src/modules/tsilo/tsilo.c +++ b/src/modules/tsilo/tsilo.c @@ -105,22 +105,16 @@ stat_export_t mod_stats[] = { /** module exports */ struct module_exports exports = { - "tsilo", - DEFAULT_DLFLAGS,/* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ -#ifdef STATISTICS - mod_stats, /* exported statistics */ -#else - 0, -#endif - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - destroy, /* destroy function */ - 0, /* Per-child init function */ + "tsilo", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module initialization function */ + 0, /* per-child init function */ + destroy /* destroy function */ }; /** @@ -432,4 +426,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_tsilo_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/uac/Makefile b/src/modules/uac/Makefile index 1791249c3..12bd0648b 100644 --- a/src/modules/uac/Makefile +++ b/src/modules/uac/Makefile @@ -8,8 +8,6 @@ auto_gen= NAME=uac.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/uac/README b/src/modules/uac/README index 34d11daab..1add3075d 100644 --- a/src/modules/uac/README +++ b/src/modules/uac/README @@ -43,12 +43,13 @@ Ramona-Elena Modroiu 3.10. auth_username_avp (string) 3.11. auth_password_avp (string) 3.12. reg_db_url (string) - 3.13. reg_timer_interval (string) + 3.13. reg_timer_interval (int) 3.14. reg_retry_interval (int) 3.15. reg_random_delay (int) 3.16. reg_db_table (string) 3.17. reg_contact_addr (string) - 3.18. reg_keep_callid (string) + 3.18. reg_keep_callid (int) + 3.19. reg_active (int) 4. Functions @@ -63,6 +64,9 @@ Ramona-Elena Modroiu 4.9. uac_reg_lookup(uuid, dst) 4.10. uac_reg_status(uuid) 4.11. uac_reg_request_to(user, mode) + 4.12. uac_reg_enable(attr, val) + 4.13. uac_reg_disable(attr, val) + 4.14. uac_reg_refresh(luuid) 5. Pseudo Variables 6. Event Routes @@ -78,6 +82,7 @@ Ramona-Elena Modroiu 8.4. uac.reg_disable 8.5. uac.reg_reload 8.6. uac.reg_refresh + 8.7. uac.reg_active 9. Remote Registration @@ -101,25 +106,30 @@ Ramona-Elena Modroiu 1.16. Set reg_db_table parameter 1.17. Set reg_contact_addr parameter 1.18. Set reg_keep_callid parameter - 1.19. uac_replace_from usage + 1.19. Set reg_active parameter 1.20. uac_replace_from usage - 1.21. uac_restore_from usage - 1.22. uac_replace_to usage + 1.21. uac_replace_from usage + 1.22. uac_restore_from usage 1.23. uac_replace_to usage - 1.24. uac_restore_to usage - 1.25. uac_auth usage - 1.26. uac_req_send usage - 1.27. uac_reg_lookup usage - 1.28. uac_reg_status usage - 1.29. uac_reg_request_to usage - 1.30. event_route[uac:reply] usage - 1.31. uac.reg_dump usage - 1.32. uac.reg_info usage - 1.33. uac.reg_enable usage - 1.34. uac.reg_disable usage - 1.35. uac.reg_reload usage - 1.36. uac.reg_refresh usage - 1.37. lookup remote registrations usage + 1.24. uac_replace_to usage + 1.25. uac_restore_to usage + 1.26. uac_auth usage + 1.27. uac_req_send usage + 1.28. uac_reg_lookup usage + 1.29. uac_reg_status usage + 1.30. uac_reg_request_to usage + 1.31. uac_reg_enable usage + 1.32. uac_reg_disable usage + 1.33. uac_reg_refresh usage + 1.34. event_route[uac:reply] usage + 1.35. uac.reg_dump usage + 1.36. uac.reg_info usage + 1.37. uac.reg_enable usage + 1.38. uac.reg_disable usage + 1.39. uac.reg_reload usage + 1.40. uac.reg_refresh usage + 1.41. uac.reg_active usage + 1.42. lookup remote registrations usage Chapter 1. Admin Guide @@ -145,12 +155,13 @@ Chapter 1. Admin Guide 3.10. auth_username_avp (string) 3.11. auth_password_avp (string) 3.12. reg_db_url (string) - 3.13. reg_timer_interval (string) + 3.13. reg_timer_interval (int) 3.14. reg_retry_interval (int) 3.15. reg_random_delay (int) 3.16. reg_db_table (string) 3.17. reg_contact_addr (string) - 3.18. reg_keep_callid (string) + 3.18. reg_keep_callid (int) + 3.19. reg_active (int) 4. Functions @@ -165,6 +176,9 @@ Chapter 1. Admin Guide 4.9. uac_reg_lookup(uuid, dst) 4.10. uac_reg_status(uuid) 4.11. uac_reg_request_to(user, mode) + 4.12. uac_reg_enable(attr, val) + 4.13. uac_reg_disable(attr, val) + 4.14. uac_reg_refresh(luuid) 5. Pseudo Variables 6. Event Routes @@ -180,6 +194,7 @@ Chapter 1. Admin Guide 8.4. uac.reg_disable 8.5. uac.reg_reload 8.6. uac.reg_refresh + 8.7. uac.reg_active 9. Remote Registration @@ -251,12 +266,13 @@ Chapter 1. Admin Guide 3.10. auth_username_avp (string) 3.11. auth_password_avp (string) 3.12. reg_db_url (string) - 3.13. reg_timer_interval (string) + 3.13. reg_timer_interval (int) 3.14. reg_retry_interval (int) 3.15. reg_random_delay (int) 3.16. reg_db_table (string) 3.17. reg_contact_addr (string) - 3.18. reg_keep_callid (string) + 3.18. reg_keep_callid (int) + 3.19. reg_active (int) 3.1. rr_from_store_param (string) @@ -434,7 +450,7 @@ modparam("uac", "reg_db_url", "mysql://kamailio:kamailiorw@localhost/kamailio") ... -3.13. reg_timer_interval (string) +3.13. reg_timer_interval (int) Timer interval (in seconds) at which registrations are managed, e.g. renewed as needed. @@ -495,7 +511,7 @@ modparam("uac", "reg_db_table", "uacreg") modparam("uac", "reg_contact_addr", "192.168.1.2:5080") ... -3.18. reg_keep_callid (string) +3.18. reg_keep_callid (int) If set to 0 (default), a new Call-Id will be generated for each registration attempt. If set to non-zero, the same Call-Id will be used @@ -507,6 +523,19 @@ modparam("uac", "reg_contact_addr", "192.168.1.2:5080") modparam("uac", "reg_keep_callid", 1) ... +3.19. reg_active (int) + + If set to 0, no remote regisrations are done. In other words, it can + control at once if the module should do remote registratios or not. It + can be changed at runtime via rpc command 'uac.reg_active 0|1'. + + The default value is 1 (active). + + Example 1.19. Set reg_active parameter +... +modparam("uac", "reg_active", 0) +... + 4. Functions 4.1. uac_replace_from(display,uri) @@ -520,6 +549,9 @@ modparam("uac", "reg_keep_callid", 1) 4.9. uac_reg_lookup(uuid, dst) 4.10. uac_reg_status(uuid) 4.11. uac_reg_request_to(user, mode) + 4.12. uac_reg_enable(attr, val) + 4.13. uac_reg_disable(attr, val) + 4.14. uac_reg_refresh(luuid) 4.1. uac_replace_from(display,uri) @@ -551,7 +583,7 @@ modparam("uac", "reg_keep_callid", 1) dialog variables and registering callbacks in dialog module for in dialog requests. - Example 1.19. uac_replace_from usage + Example 1.20. uac_replace_from usage ... # replace both display and uri uac_replace_from("$avp(s:display)","$avp(s:uri)"); @@ -572,7 +604,7 @@ uac_replace_from("",""); This function can be used from REQUEST_ROUTE and from BRANCH_ROUTE. - Example 1.20. uac_replace_from usage + Example 1.21. uac_replace_from usage ... uac_replace_from("sip:batman@gotham.org"); ... @@ -585,7 +617,7 @@ uac_replace_from("sip:batman@gotham.org"); This function can be used from REQUEST_ROUTE. - Example 1.21. uac_restore_from usage + Example 1.22. uac_restore_from usage ... uac_restore_from(); ... @@ -602,7 +634,7 @@ uac_restore_from(); automatically to display variable. That is no longer the case, if you expect that behavior, you will have to add the quotes by yourself. - Example 1.22. uac_replace_to usage + Example 1.23. uac_replace_to usage ... # replace both display and uri uac_replace_to("$avp(display)","$avp(uri)"); @@ -641,7 +673,7 @@ uac_replace_to("",""); variables and registering callbacks in dialog module for in dialog requests. - Example 1.23. uac_replace_to usage + Example 1.24. uac_replace_to usage ... uac_replace_to("sip:batman@gotham.org"); ... @@ -654,7 +686,7 @@ uac_replace_to("sip:batman@gotham.org"); This function can be used from REQUEST_ROUTE. - Example 1.24. uac_restore_to usage + Example 1.25. uac_restore_to usage ... uac_restore_to(); ... @@ -667,7 +699,7 @@ uac_restore_to(); This function can be used from FAILURE_ROUTE. - Example 1.25. uac_auth usage + Example 1.26. uac_auth usage ... modparam("uac","auth_username_avp","$avp(auser)") modparam("uac","auth_password_avp","$avp(apass)") @@ -704,7 +736,7 @@ failure_route[TRUNKAUTH] { This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE, ONREPLY_ROUTE, LOCAL_ROUTE. - Example 1.26. uac_req_send usage + Example 1.27. uac_req_send usage ... $uac_req(method)="OPTIONS"; $uac_req(ruri)="sip:kamailio.org"; @@ -717,11 +749,11 @@ uac_req_send(); 4.9. uac_reg_lookup(uuid, dst) This function sets the PV dst to SIP URI that correspond to uuid in uac - registations table. uuid and dst must be pseudo-variables. + registrations table. uuid and dst must be pseudo-variables. This function can be used from ANY_ROUTE. - Example 1.27. uac_reg_lookup usage + Example 1.28. uac_reg_lookup usage ... if(uac_reg_lookup("$rU", "$ru")) @@ -745,7 +777,7 @@ if(uac_reg_lookup("$rU", "$ru")) This function can be used from ANY_ROUTE. - Example 1.28. uac_reg_status usage + Example 1.29. uac_reg_status usage ... $var(status) = uac_reg_status("$rU"); ... @@ -764,7 +796,7 @@ $var(status) = uac_reg_status("$rU"); This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.29. uac_reg_request_to usage + Example 1.30. uac_reg_request_to usage ... if(uac_reg_request_to("$fU", 0)) @@ -783,6 +815,45 @@ failure_route[REMOTE_AUTH] { } ... +4.12. uac_reg_enable(attr, val) + + Enable a remote registration record based on a filter specified by + attribute and value. The attribute can be: l_uuid, l_username, + r_username or auth_username. The value is what should be matched + against the value of the attribute in the remote registration record. + + The SIP processing is done on the next timer routine. + + Example 1.31. uac_reg_enable usage +... + uac_reg_enable("l_uuid", "account123"); +... + +4.13. uac_reg_disable(attr, val) + + Disable a remote registration record based on a filter specified by + attribute and value. The attribute can be: l_uuid, l_username, + r_username or auth_username. The value is what should be matched + against the value of the attribute in the remote registration record. + + The SIP processing is done on the next timer routine. + + Example 1.32. uac_reg_disable usage +... + uac_reg_disable("l_uuid", "account123"); +... + +4.14. uac_reg_refresh(luuid) + + Refresh the uac remote registration record based on local uuid. If the + record was already loaded, new values are taken from database, + otherwise a new record is created. + + Example 1.33. uac_reg_refresh usage +... + uac_reg_refresh("account123"); +... + 5. Pseudo Variables * $uac_req(key) @@ -802,7 +873,7 @@ failure_route[REMOTE_AUTH] { then the event_route is executed twice, first for 401/407 and second for final reply of the transaction. - Example 1.30. event_route[uac:reply] usage + Example 1.34. event_route[uac:reply] usage ... $uac_req(method)="OPTIONS"; $uac_req(ruri)="sip:kamailio.org"; @@ -821,7 +892,7 @@ event_route[uac:reply] { * regtotal: Total number of registrations * regactive: Total number of active registrations (successfully - registred with service) + registered with service) * regdisabled: Total number of disabled registrations (no longer active) @@ -833,12 +904,13 @@ event_route[uac:reply] { 8.4. uac.reg_disable 8.5. uac.reg_reload 8.6. uac.reg_refresh + 8.7. uac.reg_active 8.1. uac.reg_dump Dump the content of remote registration table from memory. - Example 1.31. uac.reg_dump usage + Example 1.35. uac.reg_dump usage ... kamcmd uac.reg_dump ... @@ -859,7 +931,7 @@ event_route[uac:reply] { * 16 (2^4) - registration initialized (after loading from database, the registration process was initialized) - Example 1.32. uac.reg_info usage + Example 1.36. uac.reg_info usage ... kamcmd uac.reg_info l_uuid account123 ... @@ -872,7 +944,7 @@ event_route[uac:reply] { matched against the value of the attribute in the remote registration record. - Example 1.33. uac.reg_enable usage + Example 1.37. uac.reg_enable usage ... kamcmd uac.reg_enable l_uuid account123 ... @@ -885,7 +957,7 @@ event_route[uac:reply] { matched against the value of the attribute in the remote registration record. - Example 1.34. uac.reg_disable usage + Example 1.38. uac.reg_disable usage ... kamcmd uac.reg_disable l_uuid account123 ... @@ -894,7 +966,7 @@ event_route[uac:reply] { Reload the records from database for remote registrations. - Example 1.35. uac.reg_reload usage + Example 1.39. uac.reg_reload usage ... kamcmd uac.reg_reload ... @@ -905,11 +977,23 @@ event_route[uac:reply] { the record exists in memory, it will be replaced with the new values loaded from database. - Example 1.36. uac.reg_refresh usage + Example 1.40. uac.reg_refresh usage ... kamcmd uac.reg_refresh account123 ... +8.7. uac.reg_active + + Control if the module should do remote registrations or not. Setting to + 1 enables remote registrations for all records and 0 disables doing + them. + + Example 1.41. uac.reg_active usage +... + kamctl rpc uac.reg_active 0 + kamctl rpc uac.reg_active 1 +... + 9. Remote Registration The module can register contact addresses to remote REGISTRAR servers. @@ -949,7 +1033,7 @@ event_route[uac:reply] { if the call is coming from a remote SIP provider and can change the R-URI to local username@domain. Afterwards you can run location lookup. - Example 1.37. lookup remote registrations usage + Example 1.42. lookup remote registrations usage ... if(uac_reg_lookup("$rU", "$ru")) { xlog("request from a remote SIP provider [$ou => $ru]\n"); diff --git a/src/modules/uac/doc/uac_admin.xml b/src/modules/uac/doc/uac_admin.xml index 94a703218..6e514eeea 100644 --- a/src/modules/uac/doc/uac_admin.xml +++ b/src/modules/uac/doc/uac_admin.xml @@ -100,7 +100,7 @@
External Libraries or Applications - The following libraries or applications must be installed + The following libraries or applications must be installed before running &kamailio; with this module loaded: @@ -118,12 +118,12 @@
<varname>rr_from_store_param</varname> (string) - Name of Record-Route header parameter that will be used to store + Name of Record-Route header parameter that will be used to store an encoded version of the original FROM URI. - This parameter is optional, it's default value being + This parameter is optional, it's default value being vsf. @@ -139,12 +139,12 @@ modparam("uac","rr_from_store_param","my_param")
<varname>rr_to_store_param</varname> (string) - Name of Record-Route header parameter that will be used to store + Name of Record-Route header parameter that will be used to store (encoded) the original TO URI. - This parameter is optional, it's default value being + This parameter is optional, it's default value being vst. @@ -164,20 +164,20 @@ modparam("uac","rr_to_store_param","my_param") - none - no information about original URI is + none - no information about original URI is stored; restoration is not possible. manual - all following replies will be restored, - but not also the sequential requests - this must be manually + but not also the sequential requests - this must be manually updated based on original URI. - auto - all sequential requests and replies will + auto - all sequential requests and replies will be automatically updated based on stored original URI. For this option you have to set modparam("rr", "append_fromtag", 1). @@ -186,7 +186,7 @@ modparam("uac","rr_to_store_param","my_param") - This parameter is optional, it's default value being + This parameter is optional, it's default value being auto. @@ -273,7 +273,7 @@ modparam("uac","restore_from_avp","$avp(original_uri_from)") If defined and restore_mode is manual or auto, the avp is used to save the original To URI in order to be able to restore it in replies. That makes sense if the original-uri can not be extracted from the original - request, e.g. if msg_apply_changes() was used after calling uac_replace_to() + request, e.g. if msg_apply_changes() was used after calling uac_replace_to() If you create a dialog ( with dlg_manage() ) before calling or uac_replace_to(), @@ -324,10 +324,10 @@ modparam("uac","credential","username:domain:password") This can be used if the realm upstream will be using is not known in advance. - If you define it, you also need to define - auth_username_avp - () and - auth_username_avp + If you define it, you also need to define + auth_username_avp + () and + auth_username_avp (). @@ -346,10 +346,10 @@ modparam("uac","auth_realm_avp","$avp(i:10)") to perform authentication. - If you define it, you also need to define - auth_realm_avp - () and - auth_username_avp + If you define it, you also need to define + auth_realm_avp + () and + auth_username_avp (). @@ -402,7 +402,7 @@ modparam("uac", "reg_db_url",
- <varname>reg_timer_interval</varname> (string) + <varname>reg_timer_interval</varname> (int) Timer interval (in seconds) at which registrations are managed, e.g. renewed as needed. @@ -498,7 +498,7 @@ modparam("uac", "reg_contact_addr", "192.168.1.2:5080")
- <varname>reg_keep_callid</varname> (string) + <varname>reg_keep_callid</varname> (int) If set to 0 (default), a new Call-Id will be generated for each registration attempt. @@ -517,6 +517,27 @@ modparam("uac", "reg_keep_callid", 1)
+ +
+ <varname>reg_active</varname> (int) + + If set to 0, no remote regisrations are done. In other words, + it can control at once if the module should do remote registratios + or not. It can be changed at runtime via rpc command + 'uac.reg_active 0|1'. + + The default value is 1 (active). + + Set <varname>reg_active</varname> parameter + +... +modparam("uac", "reg_active", 0) +... + + +
+ +
@@ -801,7 +822,7 @@ uac_req_send(); This function sets the PV dst to SIP URI that correspond to uuid - in uac registations table. uuid and dst must be pseudo-variables. + in uac registrations table. uuid and dst must be pseudo-variables. This function can be used from ANY_ROUTE. @@ -911,6 +932,70 @@ failure_route[REMOTE_AUTH] {
+
+ + <function moreinfo="none">uac_reg_enable(attr, val)</function> + + + Enable a remote registration record based on a filter specified by + attribute and value. The attribute can be: l_uuid, l_username, + r_username or auth_username. The value is what should be matched + against the value of the attribute in the remote registration record. + + + The SIP processing is done on the next timer routine. + + + <function>uac_reg_enable</function> usage + +... + uac_reg_enable("l_uuid", "account123"); +... + + +
+ +
+ + <function moreinfo="none">uac_reg_disable(attr, val)</function> + + + Disable a remote registration record based on a filter specified by + attribute and value. The attribute can be: l_uuid, l_username, + r_username or auth_username. The value is what should be matched + against the value of the attribute in the remote registration record. + + + The SIP processing is done on the next timer routine. + + + <function>uac_reg_disable</function> usage + +... + uac_reg_disable("l_uuid", "account123"); +... + + +
+ +
+ + <function moreinfo="none">uac_reg_refresh(luuid)</function> + + + Refresh the uac remote registration record based on local uuid. If + the record was already loaded, new values are taken from database, + otherwise a new record is created. + + + <function>uac_reg_refresh</function> usage + +... + uac_reg_refresh("account123"); +... + + +
Pseudo Variables @@ -965,7 +1050,7 @@ event_route[uac:reply] { regtotal: Total number of registrations - regactive: Total number of active registrations (successfully registred with service) + regactive: Total number of active registrations (successfully registered with service) regdisabled: Total number of disabled registrations (no longer active) @@ -1111,6 +1196,26 @@ event_route[uac:reply] {
+
+ + <function moreinfo="none">uac.reg_active</function> + + + Control if the module should do remote registrations or not. Setting + to 1 enables remote registrations for all records and 0 disables + doing them. + + + <function>uac.reg_active</function> usage + +... + kamctl rpc uac.reg_active 0 + kamctl rpc uac.reg_active 1 +... + + +
+
diff --git a/src/modules/uac/replace.c b/src/modules/uac/replace.c index 46bd1c696..6231b5a7a 100644 --- a/src/modules/uac/replace.c +++ b/src/modules/uac/replace.c @@ -55,7 +55,7 @@ extern int_str restore_from_avp_name; extern unsigned short restore_to_avp_type; extern int_str restore_to_avp_name; -extern struct dlg_binds dlg_api; +struct dlg_binds dlg_api; static str from_dlgvar[] = {str_init("_uac_fu"), str_init("_uac_funew"), str_init("_uac_fdp"), str_init("_uac_fdpnew")}; static str to_dlgvar[] = {str_init("_uac_to"), str_init("_uac_tonew"), str_init("_uac_tdp"), str_init("_uac_tdpnew")}; @@ -1006,3 +1006,76 @@ free2: free: pkg_free(p); } + + +/* helper function to avoid code duplication */ +static inline int uac_load_callback_helper(struct dlg_cell* dialog, unsigned int uac_flag) { + + if( dlg_api.register_dlgcb(dialog, DLGCB_REQ_WITHIN, + (void*)(unsigned long)replace_callback, (void*)(unsigned long)uac_flag, 0) != 0) { + LM_ERR("can't register create dialog REQ_WITHIN callback\n"); + return -1; + } + + if( dlg_api.register_dlgcb(dialog, DLGCB_CONFIRMED, + (void*)(unsigned long)replace_callback, (void*)(unsigned long)uac_flag, 0) != 0) { + LM_ERR("can't register create dialog CONFIRM callback\n"); + return -1; + } + + if( dlg_api.register_dlgcb(dialog, DLGCB_TERMINATED, + (void*)(unsigned long)replace_callback, (void*)(unsigned long)uac_flag, 0) != 0) { + LM_ERR("can't register create dialog TERMINATED callback\n"); + return -1; + } + return 0; +} + + +/* callback for loading a dialog from database */ +static void uac_on_load_callback(struct dlg_cell* dialog, int type, struct dlg_cb_params* params) { + + if(!dialog) { + LM_ERR("invalid values\n!"); + return; + } + + /* Note: + * We don't have a way to access the real uac flags from the uac_replace_* + * method call at this point in time anymore. Therefore we just install a + * callback for both FROM and TO replace cases. This might be a bit + * inefficient in cases where only one of the functions is used. But as + * this applies only e.g. to a proxy restart with runnning dialogs, it + * does not matter. The replace_callback function will just not find a + * an entry in the dialog variables table and log an error. + */ + if(uac_load_callback_helper(dialog, FL_USE_UAC_FROM) != 0) { + LM_ERR("can't register create callbacks for UAC FROM\n"); + return; + } + if(uac_load_callback_helper(dialog, FL_USE_UAC_TO) != 0) { + LM_ERR("can't register create callbacks for UAC TO\n"); + return; + } + + LM_DBG("dialog '%p' loaded and callbacks registered\n", dialog); +} + + +/* initialization of all necessary callbacks to track a dialog */ +int uac_init_dlg(void) { + + memset(&dlg_api, 0, sizeof(struct dlg_binds)); + + if( load_dlg_api(&dlg_api) != 0) { + LM_ERR("can't load dialog API\n"); + return -1; + } + + if( dlg_api.register_dlgcb( 0, DLGCB_LOADED, uac_on_load_callback, 0, 0) != 0) { + LM_ERR("can't register on load callback\n"); + return -1; + } + LM_DBG("loaded dialog API and registered on load callback\n"); + return 0; +} diff --git a/src/modules/uac/replace.h b/src/modules/uac/replace.h index c5b6639d4..f2fb6f8a4 100644 --- a/src/modules/uac/replace.h +++ b/src/modules/uac/replace.h @@ -41,5 +41,7 @@ int restore_uri( struct sip_msg *msg, str *rr_param, str* restore_avp, int check /* RR callback functions */ void rr_checker(struct sip_msg *msg, str *r_param, void *cb_param); +/* init dlg module */ +int uac_init_dlg(void); #endif diff --git a/src/modules/uac/uac.c b/src/modules/uac/uac.c index 844b6025f..5a99e0820 100644 --- a/src/modules/uac/uac.c +++ b/src/modules/uac/uac.c @@ -76,6 +76,7 @@ int_str restore_from_avp_name; unsigned short restore_to_avp_type; int_str restore_to_avp_name; static int uac_restore_dlg = 0; +static int reg_active_param = 1; /* global param variables */ str rr_from_param = str_init("vsf"); @@ -89,7 +90,6 @@ struct rr_binds uac_rrb; pv_spec_t auth_username_spec; pv_spec_t auth_realm_spec; pv_spec_t auth_password_spec; -struct dlg_binds dlg_api; static int w_replace_from(struct sip_msg* msg, char* p1, char* p2); static int w_restore_from(struct sip_msg* msg, char* p1, char* p2); @@ -99,6 +99,9 @@ static int w_uac_auth(struct sip_msg* msg, char* str, char* str2); static int w_uac_reg_lookup(struct sip_msg* msg, char* src, char* dst); static int w_uac_reg_status(struct sip_msg* msg, char* src, char* dst); static int w_uac_reg_request_to(struct sip_msg* msg, char* src, char* mode_s); +static int w_uac_reg_enable(struct sip_msg* msg, char* pfilter, char* pval); +static int w_uac_reg_disable(struct sip_msg* msg, char* pfilter, char* pval); +static int w_uac_reg_refresh(struct sip_msg* msg, char* pluuid, char* p2); static int mod_init(void); static void mod_destroy(void); static int child_init(int rank); @@ -134,6 +137,12 @@ static cmd_export_t cmds[]={ {"uac_reg_request_to", (cmd_function)w_uac_reg_request_to, 2, fixup_spve_igp, fixup_free_spve_igp, REQUEST_ROUTE | FAILURE_ROUTE | BRANCH_ROUTE }, + {"uac_reg_enable", (cmd_function)w_uac_reg_enable, 2, fixup_spve_spve, + fixup_free_spve_spve, ANY_ROUTE }, + {"uac_reg_disable", (cmd_function)w_uac_reg_disable, 2, fixup_spve_spve, + fixup_free_spve_spve, ANY_ROUTE }, + {"uac_reg_refresh", (cmd_function)w_uac_reg_refresh, 1, fixup_spve_null, + fixup_free_spve_null, ANY_ROUTE }, {"bind_uac", (cmd_function)bind_uac, 1, 0, 0, 0}, {0,0,0,0,0,0} }; @@ -160,24 +169,23 @@ static param_export_t params[] = { {"reg_retry_interval", INT_PARAM, ®_retry_interval }, {"reg_keep_callid", INT_PARAM, ®_keep_callid }, {"reg_random_delay", INT_PARAM, ®_random_delay }, + {"reg_active", INT_PARAM, ®_active_param }, {0, 0, 0} }; struct module_exports exports= { - "uac", + "uac", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* exported functions */ - params, /* param exports */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - mod_destroy, - child_init /* per-child init function */ + cmds, /* cmd exports */ + params, /* param exports */ + 0, /* RPC method exports */ + mod_pvs, /* pseudo-variables exports */ + 0, /* response handling function */ + mod_init, /* module initialization function */ + child_init, /* per-child init function */ + mod_destroy }; @@ -285,15 +293,17 @@ static int mod_init(void) if (restore_mode==UAC_AUTO_RESTORE) { /* we need the append_fromtag on in RR */ - memset(&dlg_api, 0, sizeof(struct dlg_binds)); - if (uac_restore_dlg==0 || load_dlg_api(&dlg_api)!=0) { + if (uac_restore_dlg==0) { if (!uac_rrb.append_fromtag) { LM_ERR("'append_fromtag' RR param is not enabled!" " - required by AUTO restore mode\n"); goto error; } - if (uac_restore_dlg!=0) - LM_DBG("failed to find dialog API - is dialog module loaded?\n"); + } else { + if (uac_init_dlg()!=0) { + LM_ERR("failed to find dialog API - is dialog module loaded?\n"); + goto error; + } } /* get all requests doing loose route */ @@ -312,6 +322,10 @@ static int mod_init(void) LM_ERR("contact address parameter not set\n"); goto error; } + if(reg_active_init(reg_active_param)<0) { + LM_ERR("failed to init reg active mode\n"); + goto error; + } if(reg_htable_size>14) reg_htable_size = 14; if(reg_htable_size<2) @@ -621,6 +635,49 @@ static int ki_uac_reg_status(sip_msg_t *msg, str *sruuid) return uac_reg_status(msg, sruuid, 0); } +static int w_uac_reg_enable(struct sip_msg* msg, char* pfilter, char* pval) +{ + str sfilter; + str sval; + + if(fixup_get_svalue(msg, (gparam_t*)pfilter, &sfilter)<0) { + LM_ERR("cannot get the filter parameter\n"); + return -1; + } + if(fixup_get_svalue(msg, (gparam_t*)pval, &sval)<0) { + LM_ERR("cannot get the value parameter\n"); + return -1; + } + return uac_reg_enable(msg, &sfilter, &sval); +} + +static int w_uac_reg_disable(struct sip_msg* msg, char* pfilter, char* pval) +{ + str sfilter; + str sval; + + if(fixup_get_svalue(msg, (gparam_t*)pfilter, &sfilter)<0) { + LM_ERR("cannot get the filter parameter\n"); + return -1; + } + if(fixup_get_svalue(msg, (gparam_t*)pval, &sval)<0) { + LM_ERR("cannot get the value parameter\n"); + return -1; + } + return uac_reg_disable(msg, &sfilter, &sval); +} + +static int w_uac_reg_refresh(struct sip_msg* msg, char* pluuid, char* p2) +{ + str sluuid; + + if(fixup_get_svalue(msg, (gparam_t*)pluuid, &sluuid)<0) { + LM_ERR("cannot get the local uuid parameter\n"); + return -1; + } + return uac_reg_refresh(msg, &sluuid); +} + static int w_uac_reg_request_to(struct sip_msg* msg, char* src, char* pmode) { str sval; @@ -727,6 +784,21 @@ static sr_kemi_t sr_kemi_uac_exports[] = { { SR_KEMIP_STR, SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("uac"), str_init("uac_reg_enable"), + SR_KEMIP_INT, uac_reg_enable, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("uac"), str_init("uac_reg_disable"), + SR_KEMIP_INT, uac_reg_disable, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("uac"), str_init("uac_reg_refresh"), + SR_KEMIP_INT, uac_reg_refresh, + { 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/uac/uac_reg.c b/src/modules/uac/uac_reg.c index 4b636a589..625cd434b 100644 --- a/src/modules/uac/uac_reg.c +++ b/src/modules/uac/uac_reg.c @@ -118,6 +118,7 @@ int reg_htable_size = 4; int reg_fetch_rows = 1000; int reg_keep_callid = 0; int reg_random_delay = 0; +int *reg_active = NULL; str reg_contact_addr = STR_NULL; str reg_db_url = STR_NULL; str reg_db_table = str_init("uacreg"); @@ -167,12 +168,29 @@ counter_handle_t regtotal; /* Total number of registrations in memory */ counter_handle_t regactive; /* Active registrations - 200 OK */ counter_handle_t regdisabled; /* Disabled registrations */ +/* Init reg active mode */ +int reg_active_init(int mode) +{ + if(reg_active!=NULL) { + /* already allocated */ + *reg_active = mode; + return 0; + } + reg_active = (int*)shm_malloc(sizeof(int)); + if(reg_active==NULL) { + LM_ERR("not enough shared memory\n"); + return -1; + } + *reg_active = mode; + return 0; +} + /* Init counters */ static void uac_reg_counter_init() { LM_DBG("*** Initializing UAC reg counters\n"); counter_register(®total, "uac", "regtotal", 0, 0, 0, "Total number of registration accounts in memory", 0); - counter_register(®active, "uac", "regactive", 0, 0, 0, "Number of successfully registred accounts (200 OK)", 0); + counter_register(®active, "uac", "regactive", 0, 0, 0, "Number of successfully registered accounts (200 OK)", 0); counter_register(®disabled, "uac", "regdisabled", 0, 0, 0, "Counter of failed registrations (not 200 OK)", 0); } @@ -1076,6 +1094,8 @@ int uac_reg_update(reg_uac_t *reg, time_t tn) (int)reg->flags); reg->flags &= ~(UAC_REG_ONLINE|UAC_REG_AUTHSENT); } + if(reg_active && *reg_active == 0) + return 4; if(reg->flags&UAC_REG_DISABLED) return 4; @@ -1483,6 +1503,31 @@ error: return -1; } +/** + * + */ +int uac_reg_refresh(sip_msg_t *msg, str *l_uuid) +{ + int ret; + + if(l_uuid==NULL || l_uuid->s==NULL || l_uuid->len<=0) { + LM_ERR("invalid parameters\n"); + return -1; + } + + ret = uac_reg_db_refresh(l_uuid); + if(ret==0) { + LM_WARN("record not found: %.*s\n", l_uuid->len, l_uuid->s); + return -1; + } else if(ret<0) { + LM_WARN("failed to refresh record: %.*s - check log messages\n", + l_uuid->len, l_uuid->s); + return -1; + } + + return 1; +} + /** * */ @@ -1674,6 +1719,67 @@ error: return -1; } +/** + * + */ +static int uac_reg_update_flag(str *attr, str *val, int mode, int fval) +{ + reg_uac_t *reg = NULL; + int ret; + + if(_reg_htable==NULL) { + LM_ERR("uac remote registrations not enabled\n"); + return -1; + } + + if(attr->len<=0 || attr->s==NULL || val->len<=0 || val->s==NULL) { + LM_ERR("bad parameter values\n"); + return -1; + } + + ret = reg_ht_get_byfilter(®, attr, val); + if (ret == 0) { + LM_DBG("record not found for %.*s = %.*s\n", attr->len, attr->s, + val->len, val->s); + return -2; + } else if (ret < 0) { + LM_DBG("unsupported filter attribute %.*s = %.*s\n", attr->len, attr->s, + val->len, val->s); + return -3; + } + + if(mode==1) { + reg->flags |= fval; + } else { + reg->flags &= ~fval; + } + reg->timer_expires = time(NULL) + 1; + + lock_release(reg->lock); + return 1; +} + +/** + * + */ +int uac_reg_enable(sip_msg_t *msg, str *attr, str *val) +{ + counter_add(regdisabled, -1); + return uac_reg_update_flag(attr, val, 0, UAC_REG_DISABLED); +} + +/** + * + */ +int uac_reg_disable(sip_msg_t *msg, str *attr, str *val) +{ + counter_inc(regdisabled); + return uac_reg_update_flag(attr, val, 1, UAC_REG_DISABLED); +} + +/** + * + */ static int rpc_uac_reg_add_node_helper(rpc_t* rpc, void* ctx, reg_uac_t *reg, time_t tn) { void* th; @@ -1979,6 +2085,40 @@ static void rpc_uac_reg_add(rpc_t* rpc, void* ctx) } +static const char* rpc_uac_reg_active_doc[2] = { + "Set remote registration active or inactive for all records.", + 0 +}; + +static void rpc_uac_reg_active(rpc_t* rpc, void* ctx) +{ + int omode; + int nmode; + void* th; + + if(reg_active==NULL) { + rpc->fault(ctx, 500, "Not initialized"); + return; + } + if(rpc->scan(ctx, "d", &nmode)<1) { + LM_ERR("missing parameter"); + rpc->fault(ctx, 500, "Missing parameter"); + return; + } + omode = *reg_active; + *reg_active = (nmode)?1:0; + + /* add entry node */ + if (rpc->add(ctx, "{", &th) < 0) { + rpc->fault(ctx, 500, "Internal error creating rpc struct"); + return; + } + if(rpc->struct_add(th, "dd", "omode", omode, "nmode", nmode)<0) { + rpc->fault(ctx, 500, "Internal error creating response"); + return; + } +} + rpc_export_t uac_reg_rpc[] = { {"uac.reg_dump", rpc_uac_reg_dump, rpc_uac_reg_dump_doc, RET_ARRAY}, {"uac.reg_info", rpc_uac_reg_info, rpc_uac_reg_info_doc, 0}, @@ -1988,6 +2128,7 @@ rpc_export_t uac_reg_rpc[] = { {"uac.reg_refresh", rpc_uac_reg_refresh, rpc_uac_reg_refresh_doc, 0}, {"uac.reg_remove", rpc_uac_reg_remove, rpc_uac_reg_remove_doc, 0}, {"uac.reg_add", rpc_uac_reg_add, rpc_uac_reg_add_doc, 0}, + {"uac.reg_active", rpc_uac_reg_active, rpc_uac_reg_active_doc, 0}, {0, 0, 0, 0} }; diff --git a/src/modules/uac/uac_reg.h b/src/modules/uac/uac_reg.h index 6a6cd5b9c..55a443beb 100644 --- a/src/modules/uac/uac_reg.h +++ b/src/modules/uac/uac_reg.h @@ -54,4 +54,11 @@ int uac_reg_init_rpc(void); int uac_reg_lookup(struct sip_msg *msg, str *src, pv_spec_t *dst, int mode); int uac_reg_status(struct sip_msg *msg, str *src, int mode); int uac_reg_request_to(struct sip_msg *msg, str *src, unsigned int mode); + +int uac_reg_enable(sip_msg_t *msg, str *attr, str *val); +int uac_reg_disable(sip_msg_t *msg, str *attr, str *val); +int uac_reg_refresh(sip_msg_t *msg, str *l_uuid); + +int reg_active_init(int mode); + #endif diff --git a/src/modules/uac_redirect/Makefile b/src/modules/uac_redirect/Makefile index 27cfdd2d5..2e014fafa 100644 --- a/src/modules/uac_redirect/Makefile +++ b/src/modules/uac_redirect/Makefile @@ -8,8 +8,6 @@ auto_gen= NAME=uac_redirect.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srutils/srutils include ../../Makefile.modules diff --git a/src/modules/uac_redirect/README b/src/modules/uac_redirect/README index 8c8602e6a..0da60f08a 100644 --- a/src/modules/uac_redirect/README +++ b/src/modules/uac_redirect/README @@ -160,8 +160,8 @@ modparam("uac_redirect","default_filter","deny") 4.2. deny_filter (string) - The regular expression for default deny filtering. It make sens to be - defined on only if the default_filter parameter is set to “acceptâ€. All + The regular expression for default deny filtering. It makes sense to be + defined only if the default_filter parameter is set to “acceptâ€. All contacts matching the deny_filter will be rejected; the rest of them will be accepted for redirection. @@ -178,8 +178,8 @@ modparam("uac_redirect","deny_filter",".*@siphub\.net") 4.3. accept_filter (string) - The regular expression for default accept filtering. It make sens to be - defined on only if the default_filter parameter is set to “denyâ€. All + The regular expression for default accept filtering. It makes sense to + be defined only if the default_filter parameter is set to “denyâ€. All contacts matching the accept_filter will be accepted; the rest of them will be rejected for redirection. diff --git a/src/modules/uac_redirect/doc/uac_redirect_admin.xml b/src/modules/uac_redirect/doc/uac_redirect_admin.xml index fa5f8452b..2c7fc0e88 100644 --- a/src/modules/uac_redirect/doc/uac_redirect_admin.xml +++ b/src/modules/uac_redirect/doc/uac_redirect_admin.xml @@ -123,7 +123,7 @@
Parameters -
+
<varname>default_filter</varname> (string) The default behavior in filtering contacts. It may be @@ -144,11 +144,11 @@ modparam("uac_redirect","default_filter","deny")
-
+
<varname>deny_filter</varname> (string) - The regular expression for default deny filtering. It make sens - to be defined on only if the default_filter + The regular expression for default deny filtering. It makes sense + to be defined only if the default_filter parameter is set to accept. All contacts matching the deny_filter will be rejected; the rest of them will be accepted for redirection. @@ -176,11 +176,11 @@ modparam("uac_redirect","deny_filter",".*@siphub\.net")
-
+
<varname>accept_filter</varname> (string) - The regular expression for default accept filtering. It make sens - to be defined on only if the default_filter + The regular expression for default accept filtering. It makes sense + to be defined only if the default_filter parameter is set to deny. All contacts matching the accept_filter will be accepted; the rest of them will be rejected for redirection. @@ -208,7 +208,7 @@ modparam("uac_redirect","accept_filter",".*@siphub\.net")
-
+
<varname>acc_function</varname> (string) Specifies the accounting function to be used. Just by defining @@ -248,7 +248,7 @@ modparam("uac_redirect","acc_function","acc_db_request")
-
+
<varname>acc_db_table</varname> (string) Specifies the accounting table to be used if DB accounting was @@ -273,7 +273,7 @@ modparam("uac_redirect","acc_db_table","acc_redirect")
-
+
<varname>bflags</varname> (int) This parameter defines the branch-flags to be set for new, added branch. @@ -306,7 +306,7 @@ branch_route[1] {
Functions -
+
<function moreinfo="none">set_deny_filter(filter,flags) </function> @@ -356,7 +356,7 @@ set_deny_filter(".*@domain1.net",""); </example> </section> - <section> + <section id="uac_redirect.f.set_accept_filter"> <title> <function moreinfo="none">set_accept_filter(filter,flags) </function> @@ -406,7 +406,7 @@ set_accept_filter(".*@domain1.net",""); </example> </section> - <section> + <section id="uac_redirect.f.get_redirects1"> <title> <function moreinfo="none">get_redirects(max)</function> @@ -465,7 +465,7 @@ get_redirects("*");
-
+
<function moreinfo="none">get_redirects(max,reason)</function> @@ -556,7 +556,5 @@ failure_route[REDIRECT_ACC] {
- - diff --git a/src/modules/uac_redirect/uac_redirect.c b/src/modules/uac_redirect/uac_redirect.c index 788829ae6..e1f7d640d 100644 --- a/src/modules/uac_redirect/uac_redirect.c +++ b/src/modules/uac_redirect/uac_redirect.c @@ -91,18 +91,16 @@ static param_export_t params[] = { struct module_exports exports = { - "uac_redirect", + "uac_redirect", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - redirect_init, /* Module initialization function */ - 0, - 0, - child_init /* per-child init function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC functions */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + redirect_init, /* module initialization function */ + child_init, /* per-child init function */ + 0 /* module destroy function */ }; @@ -470,4 +468,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_uac_redirect_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/uid_auth_db/Makefile b/src/modules/uid_auth_db/Makefile index 3e94f9be6..3ceeab6df 100644 --- a/src/modules/uid_auth_db/Makefile +++ b/src/modules/uid_auth_db/Makefile @@ -1,7 +1,6 @@ # # Digest Authentication - Database support # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,8 +8,6 @@ auto_gen= NAME=uid_auth_db.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2 include ../../Makefile.modules diff --git a/src/modules/uid_auth_db/uid_auth_db_mod.c b/src/modules/uid_auth_db/uid_auth_db_mod.c index d67e40806..781ff3722 100644 --- a/src/modules/uid_auth_db/uid_auth_db_mod.c +++ b/src/modules/uid_auth_db/uid_auth_db_mod.c @@ -103,11 +103,15 @@ int credentials_n; /* Number of credentials in the list */ * Exported functions */ static cmd_export_t cmds[] = { - {"www_authenticate", www_authenticate, 2, authdb_fixup, REQUEST_ROUTE}, - {"www_authorize", www_authenticate, 2, authdb_fixup, REQUEST_ROUTE}, - {"proxy_authenticate", proxy_authenticate, 2, authdb_fixup, REQUEST_ROUTE}, - {"proxy_authorize", proxy_authenticate, 2, authdb_fixup, REQUEST_ROUTE}, - {0, 0, 0, 0, 0} + {"www_authenticate", www_authenticate, 2, authdb_fixup, 0, + REQUEST_ROUTE}, + {"www_authorize", www_authenticate, 2, authdb_fixup, 0, + REQUEST_ROUTE}, + {"proxy_authenticate", proxy_authenticate, 2, authdb_fixup, 0, + REQUEST_ROUTE}, + {"proxy_authorize", proxy_authenticate, 2, authdb_fixup, 0, + REQUEST_ROUTE}, + {0, 0, 0, 0, 0, 0} }; @@ -135,15 +139,16 @@ static param_export_t params[] = { * Module interface */ struct module_exports exports = { - "uid_auth_db", - cmds, /* Exported functions */ - 0, /* RPC methods */ - params, /* Exported parameters */ - mod_init, /* module initialization function */ + "uid_auth_db", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ 0, /* response function */ - destroy, /* destroy function */ - 0, /* oncancel function */ - child_init /* child initialization function */ + mod_init, /* module init function */ + child_init, /* child init function */ + destroy /* destroy function */ }; static authdb_table_info_t *registered_tables = NULL; diff --git a/src/modules/uid_avp_db/Makefile b/src/modules/uid_avp_db/Makefile index 2b08ae250..82718f408 100644 --- a/src/modules/uid_avp_db/Makefile +++ b/src/modules/uid_avp_db/Makefile @@ -1,7 +1,6 @@ # # uid_avp_db # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,8 +8,6 @@ auto_gen= NAME=uid_avp_db.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2 include ../../Makefile.modules diff --git a/src/modules/uid_avp_db/README b/src/modules/uid_avp_db/README index d5a1803a4..2dc71e383 100644 --- a/src/modules/uid_avp_db/README +++ b/src/modules/uid_avp_db/README @@ -84,7 +84,7 @@ Chapter 1. Admin Guide the contents of AVPs (Attribute-Value pairs). The AVPs are variables attached to the SIP message being processed. Each variable has its name and value. AVPs can be used to store arbitrary data or as a means of - inter-module comminication. + inter-module communication. You may also want to check the avpops module which is more flexible and contains more functions. In future SER releases the avp module will be @@ -296,7 +296,7 @@ route { id Identifier used for searching attributes. When searching for - user attributes it is UID, when searchnig uri attributes it is + user attributes it is UID, when searching uri attributes it is URI. 4.2. load_extra_attrs (group_id, id) diff --git a/src/modules/uid_avp_db/doc/functions.xml b/src/modules/uid_avp_db/doc/functions.xml index 85eb12599..c2cb3184d 100644 --- a/src/modules/uid_avp_db/doc/functions.xml +++ b/src/modules/uid_avp_db/doc/functions.xml @@ -102,7 +102,7 @@ id Identifier used for searching attributes. When - searching for user attributes it is UID, when searchnig uri + searching for user attributes it is UID, when searching uri attributes it is URI. diff --git a/src/modules/uid_avp_db/doc/uid_avp_db.xml b/src/modules/uid_avp_db/doc/uid_avp_db.xml index a68ade743..6ca0b2d9d 100644 --- a/src/modules/uid_avp_db/doc/uid_avp_db.xml +++ b/src/modules/uid_avp_db/doc/uid_avp_db.xml @@ -30,7 +30,7 @@ manipulate the contents of AVPs (Attribute-Value pairs). The AVPs are variables attached to the SIP message being processed. Each variable has its name and value. AVPs can be used to store - arbitrary data or as a means of inter-module comminication. + arbitrary data or as a means of inter-module communication. You may also want to check the avpops module which is more flexible diff --git a/src/modules/uid_avp_db/uid_avp_db.c b/src/modules/uid_avp_db/uid_avp_db.c index f4db66a40..b391d8778 100644 --- a/src/modules/uid_avp_db/uid_avp_db.c +++ b/src/modules/uid_avp_db/uid_avp_db.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * Copyright (C) 2004 FhG Fokus * * This file is part of ser, a free SIP server. @@ -25,12 +23,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -/* - * History: - * -------- - * 2004-06-14 added ability to read default values from DB table usr_preferences_types (kozlik) - */ - #include #include "../../core/sr_module.h" #include "../../core/mem/mem.h" @@ -80,18 +72,23 @@ static domain_get_did_t dm_get_did = NULL; * Exported functions */ static cmd_export_t cmds[] = { - {"load_attrs", load_attrs, 2, attrs_fixup, REQUEST_ROUTE | FAILURE_ROUTE}, - + {"load_attrs", load_attrs, 2, attrs_fixup, 0, + REQUEST_ROUTE | FAILURE_ROUTE}, /* functions for loading/storing flagged attributes into DB */ - {"load_extra_attrs", load_extra_attrs, 2, extra_attrs_fixup, REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, - {"save_extra_attrs", save_extra_attrs, 2, extra_attrs_fixup, REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, - {"remove_extra_attrs", remove_extra_attrs, 2, extra_attrs_fixup, REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, + {"load_extra_attrs", load_extra_attrs, 2, extra_attrs_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, + {"save_extra_attrs", save_extra_attrs, 2, extra_attrs_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, + {"remove_extra_attrs", remove_extra_attrs, 2, extra_attrs_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, /* locking attrs - needed for proper work! */ - {"lock_extra_attrs", lock_extra_attrs, 2, extra_attrs_fixup, REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, - {"unlock_extra_attrs", unlock_extra_attrs, 2, extra_attrs_fixup, REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, - - {0, 0, 0, 0, 0} + {"lock_extra_attrs", lock_extra_attrs, 2, extra_attrs_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, + {"unlock_extra_attrs", unlock_extra_attrs, 2, extra_attrs_fixup, 0, + REQUEST_ROUTE | ONREPLY_ROUTE | FAILURE_ROUTE}, + + {0, 0, 0, 0, 0, 0} }; @@ -118,15 +115,16 @@ static param_export_t params[] = { struct module_exports exports = { - "uid_avp_db", - cmds, /* Exported commands */ - 0, /* RPC methods */ - params, /* Exported parameters */ - mod_init, /* module initialization function */ + "uid_avp_db",/* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported commands */ + params, /* exported parameters */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ 0, /* response function*/ - 0, /* destroy function */ - 0, /* oncancel function */ - child_init /* per-child init function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + 0 /* destroy function */ }; diff --git a/src/modules/uid_domain/Makefile b/src/modules/uid_domain/Makefile index e1420ae88..947ce4193 100644 --- a/src/modules/uid_domain/Makefile +++ b/src/modules/uid_domain/Makefile @@ -1,7 +1,6 @@ # # uid-Domain module makefile # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,8 +8,6 @@ auto_gen= NAME=uid_domain.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2 include ../../Makefile.modules diff --git a/src/modules/uid_domain/README b/src/modules/uid_domain/README index 08889ae5f..a10646eed 100644 --- a/src/modules/uid_domain/README +++ b/src/modules/uid_domain/README @@ -256,7 +256,7 @@ iptel cached in memory, just like virtual domain themselves. If you disable caching then the domain module will attempt to load attributes from the database each time you call lookup_domain. Attributes cached in memory - can be realoaded with the domain.reload management function. + can be reloaded with the domain.reload management function. 1.3. Caching diff --git a/src/modules/uid_domain/doc/uid_domain.xml b/src/modules/uid_domain/doc/uid_domain.xml index fcbaa45d4..fc40f27e7 100644 --- a/src/modules/uid_domain/doc/uid_domain.xml +++ b/src/modules/uid_domain/doc/uid_domain.xml @@ -185,7 +185,7 @@ iptel table are cached in memory, just like virtual domain themselves. If you disable caching then the domain module will attempt to load attributes from the database each time you call - lookup_domain. Attributes cached in memory can be realoaded with + lookup_domain. Attributes cached in memory can be reloaded with the domain.reload management function.
diff --git a/src/modules/uid_domain/uid_domain_mod.c b/src/modules/uid_domain/uid_domain_mod.c index 5e11cce57..a26190458 100644 --- a/src/modules/uid_domain/uid_domain_mod.c +++ b/src/modules/uid_domain/uid_domain_mod.c @@ -120,13 +120,13 @@ static domain_t dom_buf[2]; * Exported functions */ static cmd_export_t cmds[] = { - {"is_local", is_local, 1, fixup_var_str_1, + {"is_local", is_local, 1, fixup_var_str_1, 0, REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE }, - {"lookup_domain", lookup_domain, 2, lookup_domain_fixup, + {"lookup_domain", lookup_domain, 2, lookup_domain_fixup, 0, REQUEST_ROUTE|FAILURE_ROUTE }, - {"get_did", (cmd_function)get_did, 0, 0, 0}, - {"bind_domain", (cmd_function)bind_domain, 0, 0, 0}, - {0, 0, 0, 0, 0} + {"get_did", (cmd_function)get_did, 0, 0, 0, 0}, + {"bind_domain", (cmd_function)bind_domain, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0} }; @@ -155,15 +155,16 @@ static param_export_t params[] = { * Module interface */ struct module_exports exports = { - "uid_domain", - cmds, /* Exported functions */ - domain_rpc, /* RPC methods */ - params, /* Exported parameters */ - mod_init, /* module initialization function */ - 0, /* response function*/ - destroy, /* destroy function */ - 0, /* cancel function */ - child_init /* per-child init function */ + "uid_domain", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + domain_rpc, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + destroy /* module destroy function */ }; diff --git a/src/modules/uid_gflags/Makefile b/src/modules/uid_gflags/Makefile index 139ce7f3a..b9d7d69aa 100644 --- a/src/modules/uid_gflags/Makefile +++ b/src/modules/uid_gflags/Makefile @@ -1,7 +1,7 @@ # # uid-gflags module makefile # -# +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,8 +9,6 @@ auto_gen= NAME=uid_gflags.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2 include ../../Makefile.modules diff --git a/src/modules/uid_gflags/uid_gflags.c b/src/modules/uid_gflags/uid_gflags.c index af02697c5..62f6df0ad 100644 --- a/src/modules/uid_gflags/uid_gflags.c +++ b/src/modules/uid_gflags/uid_gflags.c @@ -78,11 +78,15 @@ static avp_list_t *avps_2; static rpc_export_t rpc_methods[]; static cmd_export_t cmds[]={ - {"set_ugflag", set_gflag, 1, fixup_int_1, REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, - {"reset_ugflag", reset_gflag, 1, fixup_int_1, REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, - {"is_ugflag", is_gflag, 1, fixup_int_1, REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, - {"flush_ugflags", flush_gflags, 0, 0, REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, - {0, 0, 0, 0, 0} + {"set_ugflag", set_gflag, 1, fixup_int_1, 0, + REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, + {"reset_ugflag", reset_gflag, 1, fixup_int_1, 0, + REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, + {"is_ugflag", is_gflag, 1, fixup_int_1, 0, + REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, + {"flush_ugflags", flush_gflags, 0, 0, 0, + REQUEST_ROUTE|FAILURE_ROUTE|ONREPLY_ROUTE}, + {0, 0, 0, 0, 0, 0} }; static param_export_t params[]={ @@ -98,15 +102,16 @@ static param_export_t params[]={ }; struct module_exports exports = { - "uid_gflags", - cmds, - rpc_methods, /* RPC methods */ - params, - mod_init, /* module initialization function */ - 0, /* response function*/ - mod_destroy, /* destroy function */ - 0, /* oncancel function */ - child_init /* per-child init function */ + "uid_gflags", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + rpc_methods, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* response handling function*/ + mod_init, /* module init function */ + child_init, /* per-child init function */ + mod_destroy /* module destroy function */ }; @@ -361,7 +366,7 @@ int save_gflags(unsigned int flags) return -1; } - LM_DBG("successfuly stored in database\n"); + LM_DBG("successfully stored in database\n"); return 0; } diff --git a/src/modules/uid_uri_db/Makefile b/src/modules/uid_uri_db/Makefile index 37ff1cfd7..e8859cc91 100644 --- a/src/modules/uid_uri_db/Makefile +++ b/src/modules/uid_uri_db/Makefile @@ -1,7 +1,6 @@ # # uid-uri-db :: Various URI checks # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,8 +8,6 @@ auto_gen= NAME=uid_uri_db.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2 include ../../Makefile.modules 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 e3887fb75..de01f3ea3 100644 --- a/src/modules/uid_uri_db/uid_uri_db_mod.c +++ b/src/modules/uid_uri_db/uid_uri_db_mod.c @@ -100,13 +100,13 @@ str default_did = STR_STATIC_INIT("_default"); * Exported functions */ static cmd_export_t cmds[] = { - {"lookup_user", lookup_user, 1, header_fixup, + {"lookup_user", lookup_user, 1, header_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE}, - {"lookup_user", lookup_user_2, 2, lookup_user_fixup, + {"lookup_user", lookup_user_2, 2, lookup_user_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE}, - {"check_uri", check_uri, 1, header_fixup, + {"check_uri", check_uri, 1, header_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE}, - {0, 0, 0, 0, 0} + {0, 0, 0, 0, 0, 0} }; @@ -129,15 +129,16 @@ static param_export_t params[] = { * Module interface */ struct module_exports exports = { - "uid_uri_db", - cmds, /* Exported functions */ - 0, /* RPC methods */ - params, /* Exported parameters */ - 0, /* module initialization function */ - 0, /* response function */ - destroy, /* destroy function */ - 0, /* oncancel function */ - child_init /* child initialization function */ + "uid_uri_db", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported RPC methods */ + 0, /* exported pseudo-variables */ + 0, /* module init function */ + 0, /* response handling function */ + child_init, /* child init function */ + destroy /* destroy function */ }; diff --git a/src/modules/uri_db/Makefile b/src/modules/uri_db/Makefile index 791494780..913e5a171 100644 --- a/src/modules/uri_db/Makefile +++ b/src/modules/uri_db/Makefile @@ -8,8 +8,6 @@ auto_gen= NAME=uri_db.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/uri_db/README b/src/modules/uri_db/README index 4bad97c80..589fba5b0 100644 --- a/src/modules/uri_db/README +++ b/src/modules/uri_db/README @@ -176,7 +176,7 @@ modparam("uri_db", "uriuser_column", "uri_user") 3.6. use_uri_table (integer) - Specify if the “uri†table should be used for checkings instead of + Specify if the “uri†table should be used for checking instead of “subscriber†table. A non-zero value means true. Default value is “0 (false)â€. diff --git a/src/modules/uri_db/doc/uri_db_admin.xml b/src/modules/uri_db/doc/uri_db_admin.xml index e581fb769..157f43ebf 100644 --- a/src/modules/uri_db/doc/uri_db_admin.xml +++ b/src/modules/uri_db/doc/uri_db_admin.xml @@ -160,7 +160,7 @@ modparam("uri_db", "uriuser_column", "uri_user")
<varname>use_uri_table</varname> (integer) - Specify if the uri table should be used for checkings + Specify if the uri table should be used for checking instead of subscriber table. A non-zero value means true. diff --git a/src/modules/uri_db/uri_db.c b/src/modules/uri_db/uri_db.c index aa8f1ac99..97df3f36e 100644 --- a/src/modules/uri_db/uri_db.c +++ b/src/modules/uri_db/uri_db.c @@ -111,18 +111,16 @@ static param_export_t params[] = { * Module interface */ struct module_exports exports = { - "uri_db", + "uri_db", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported statistics */ - 0 , /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - destroy, /* destroy function */ - child_init /* child initialization function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0 , /* exported rpc functions */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* child init function */ + destroy /* module destroy function */ }; diff --git a/src/modules/userblacklist/Makefile b/src/modules/userblacklist/Makefile index 5d3c6b67a..0729a9088 100644 --- a/src/modules/userblacklist/Makefile +++ b/src/modules/userblacklist/Makefile @@ -5,8 +5,6 @@ auto_gen= NAME=userblacklist.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/trie/trie SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 diff --git a/src/modules/userblacklist/README b/src/modules/userblacklist/README index b91c3e192..d2d3c5444 100644 --- a/src/modules/userblacklist/README +++ b/src/modules/userblacklist/README @@ -234,9 +234,9 @@ modparam("userblacklist", "use_domain", 1) 3.2. match_mode (integer) The number of individual characters that are used for matching. Valid - values are 10 or 128. When you specifiy 10, only digits will be used - for matching, this operation mode is equivalent to the old behaviour. - When configured with 128, all standard ASCII chars are available for + values are 10 or 128. When you specify 10, only digits will be used for + matching, this operation mode is equivalent to the old behaviour. When + configured with 128, all standard ASCII chars are available for matching. Please be aware that memory requirements for storing the routing tree in shared memory will also increase by a factor of 12.8. diff --git a/src/modules/userblacklist/doc/userblacklist_admin.xml b/src/modules/userblacklist/doc/userblacklist_admin.xml index 2236248d0..bcc48705f 100644 --- a/src/modules/userblacklist/doc/userblacklist_admin.xml +++ b/src/modules/userblacklist/doc/userblacklist_admin.xml @@ -100,7 +100,7 @@ modparam("userblacklist", "use_domain", 1) <varname>match_mode</varname> (integer) The number of individual characters that are used for matching. - Valid values are 10 or 128. When you specifiy 10, only digits will be used for matching, + Valid values are 10 or 128. When you specify 10, only digits will be used for matching, this operation mode is equivalent to the old behaviour. When configured with 128, all standard ASCII chars are available for matching. Please be aware that memory requirements for storing the routing tree in shared memory will also diff --git a/src/modules/userblacklist/userblacklist.c b/src/modules/userblacklist/userblacklist.c index 253978d01..479c7bef8 100644 --- a/src/modules/userblacklist/userblacklist.c +++ b/src/modules/userblacklist/userblacklist.c @@ -160,18 +160,16 @@ static mi_export_t mi_cmds[] = { #endif struct module_exports exports= { - "userblacklist", - DEFAULT_DLFLAGS, - cmds, - params, - 0, - 0, - 0, - 0, - mod_init, - 0, - mod_destroy, - child_init + "userblacklist", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + 0, /* pseudo-variables exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + mod_destroy /* module destroy function */ }; @@ -1236,4 +1234,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_userblacklist_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/usrloc/Makefile b/src/modules/usrloc/Makefile index 6f14f11e9..09bd7a18a 100644 --- a/src/modules/usrloc/Makefile +++ b/src/modules/usrloc/Makefile @@ -8,8 +8,6 @@ auto_gen= NAME=usrloc.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 SER_LIBS+=$(SERLIBPATH)/srutils/srutils diff --git a/src/modules/usrloc/README b/src/modules/usrloc/README index 14453cd9e..e8e039f49 100644 --- a/src/modules/usrloc/README +++ b/src/modules/usrloc/README @@ -89,7 +89,9 @@ Carsten Bock 3.43. db_insert_null (int) 3.44. skip_remote_socket (int) 3.45. db_timer_clean (int) - 3.46. server_id_filter (int) + 3.46. rm_expired_delay (int) + 3.47. server_id_filter (int) + 3.48. version_table (integer) 4. RPC Commands @@ -182,7 +184,9 @@ Carsten Bock 1.43. Set db_insert_null parameter 1.44. Set skip_remote_socket parameter 1.45. Set db_timer_clean parameter - 1.46. Set server_id_filter parameter + 1.46. Set rm_expired_delay parameter + 1.47. Set server_id_filter parameter + 1.48. version_table parameter usage Chapter 1. Admin Guide @@ -244,7 +248,9 @@ Chapter 1. Admin Guide 3.43. db_insert_null (int) 3.44. skip_remote_socket (int) 3.45. db_timer_clean (int) - 3.46. server_id_filter (int) + 3.46. rm_expired_delay (int) + 3.47. server_id_filter (int) + 3.48. version_table (integer) 4. RPC Commands @@ -285,9 +291,8 @@ Chapter 1. Admin Guide The SIP RFC 3261 publishes a matching algorithm based only on the contact string with Call-id and Cseq extra checking (if the Call-ID is the same, it must have a higher Cseq number, otherwise it is invalid). - But as argumented above, this is not enough in NAT traversal context, - so the Kamailio implementation of contact matching offers more - algorithms: + But as argued above, this is not enough in NAT traversal context, so + the Kamailio implementation of contact matching offers more algorithms: * Contact based only - it is strict RFC 3261 compliancy - the Contact URI is matched as string and extra checked via Call-ID and cseq (if Call-ID is the same, it must have a higher cseq number, otherwise @@ -303,9 +308,9 @@ Chapter 1. Admin Guide * Call-id only based - it is not according to RFC3261, as it will check the Call-ID only (independent of the Contact-Header or Path). - To find out how to control/select the contact maching algorithm, please - see the module parameter matching_mode - Section 3.29, “matching_mode - (integer)â€. + To find out how to control/select the contact matching algorithm, + please see the module parameter matching_mode - Section 3.29, + “matching_mode (integer)â€. 2. Dependencies @@ -370,7 +375,9 @@ Chapter 1. Admin Guide 3.43. db_insert_null (int) 3.44. skip_remote_socket (int) 3.45. db_timer_clean (int) - 3.46. server_id_filter (int) + 3.46. rm_expired_delay (int) + 3.47. server_id_filter (int) + 3.48. version_table (integer) 3.1. nat_bflag (integer) @@ -612,7 +619,7 @@ modparam("usrloc", "partition_column", "part") 3.22. use_domain (integer) If the domain part of the user should be also saved and used for - identifing the user (along with the username part). Useful in multi + identifying the user (along with the username part). Useful in multi domain scenarios. Non 0 value means true. Default value is “0 (false)â€. @@ -688,7 +695,7 @@ modparam("usrloc", "db_url", "dbdriver://username:password@dbhost/dbname") more servers sharing the same DB without any replication at SIP level. The mode may be slower due the high number of DB operation. For example NAT pinging is a killer since during each ping cycle - all nated contact are loaded from the DB; The lack of memory + all natted contact are loaded from the DB; The lack of memory caching also disable the statistics exports. * 4 - This uses database to load records at startup but uses only memory during the runtime. Records are not written back at all, not @@ -847,7 +854,7 @@ modparam("usrloc", "db_check_update", 1) 3.36. timer_procs (int) Number of timer processes to be started by module. Timer processes take - care of checking expired records and syncronization with database. If + care of checking expired records and synchronization with database. If set to 0, no dedicated timer is started, the one from core will be used. @@ -947,7 +954,7 @@ modparam("usrloc", "db_raw_fetch_type", 1) not have table definitions that create automatically the null fields (e.g., db_mongodb) for each stored record. - When set to 0, the fiels that default to null are not added to the DB + When set to 0, the fields that default to null are not added to the DB insert statement if they don't have a different value, making the query smaller. @@ -984,17 +991,46 @@ modparam("usrloc", "skip_remote_socket", 1) modparam("usrloc", "db_timer_clean", 1) ... -3.46. server_id_filter (int) +3.46. rm_expired_delay (int) - Enable (1) or disable (0) filter records by server_id on load. + Specify the number of seconds to delay the removal of expired records. + For now it works for DB_ONLY mode (db_mode=3). Default value is “0â€. - Example 1.46. Set server_id_filter parameter + Example 1.46. Set rm_expired_delay parameter +... +modparam("usrloc", "rm_expired_delay", 30) +... + +3.47. server_id_filter (int) + + Enable (1) or disable (0) filter records by server_id on load and + during cleaning of expired db records. It could be usefull when you + want to use the same location table for several kamailio instances + which are configured to work in db_mode=1 or db_mode=2 (cache modes). + Otherwise one instance of proxy cleans records made by another proxy + and that breaks its cache. + + Default value is “0â€. + + Example 1.47. Set server_id_filter parameter ... modparam("usrloc", "server_id_filter", 1) ... +3.48. version_table (integer) + + If set to 0, the module will skip checking the version for location + table. + + Default value is “1 (check for table version)â€. + + Example 1.48. version_table parameter usage +... +modparam("usrloc", "version_table", 0) +... + 4. RPC Commands 4.1. ul.dump @@ -1109,24 +1145,24 @@ modparam("usrloc", "server_id_filter", 1) 5.1. users Number of AOR existing in the USRLOC memory cache for that domain - can - not be resetted; this statistic will be register for each used domain - (Ex: location). + not be reset; this statistic will be register for each used domain (Ex: + location). 5.2. contacts Number of contacts existing in the USRLOC memory cache for that domain - - can not be resetted; this statistic will be register for each used + - can not be reset; this statistic will be register for each used domain (Ex: location). 5.3. expires - Total number of expired contacts for that domain - can be resetted; - this statistic will be register for each used domain (Ex: location). + Total number of expired contacts for that domain - can be reset; this + statistic will be register for each used domain (Ex: location). 5.4. registered_users Total number of AOR existing in the USRLOC memory cache for all domains - - can not be resetted. + - can not be reset. Chapter 2. Developer Guide diff --git a/src/modules/usrloc/dlist.c b/src/modules/usrloc/dlist.c index a71d59a3d..b236de23a 100644 --- a/src/modules/usrloc/dlist.c +++ b/src/modules/usrloc/dlist.c @@ -43,6 +43,8 @@ #include "usrloc_mod.h" +extern int ul_version_table; + /*! \brief Global list of all registered domains */ dlist_t* root = 0; @@ -85,7 +87,7 @@ static inline int find_dlist(str* _n, dlist_t** _d) * \param flags contact flags * \param part_idx part index * \param part_max maximal part - * \param GAU options + * \param options options * \return 0 on success, positive if buffer size was not sufficient, negative on failure */ static inline int get_all_db_ucontacts(void *buf, int len, unsigned int flags, @@ -323,7 +325,7 @@ static inline int get_all_db_ucontacts(void *buf, int len, unsigned int flags, * \param flags contact flags * \param part_idx part index * \param part_max maximal part - * \param GAU options + * \param options options * \return 0 on success, positive if buffer size was not sufficient, negative on failure */ static inline int get_all_mem_ucontacts(void *buf, int len, unsigned int flags, @@ -473,7 +475,7 @@ static inline int get_all_mem_ucontacts(void *buf, int len, unsigned int flags, * \param flags contact flags * \param part_idx part index * \param part_max maximal part - * \param GAU options + * \param options options * \return 0 on success, positive if buffer size was not sufficient, negative on failure */ int get_all_ucontacts(void *buf, int len, unsigned int flags, @@ -645,7 +647,8 @@ int register_udomain(const char* _n, udomain_t** _d) goto err; } - if(db_check_table_version(&ul_dbf, con, &s, UL_TABLE_VERSION) < 0) { + if(ul_version_table != 0 + && db_check_table_version(&ul_dbf, con, &s, UL_TABLE_VERSION) < 0) { LM_ERR("error during table version check.\n"); goto err; } diff --git a/src/modules/usrloc/dlist.h b/src/modules/usrloc/dlist.h index 2ad223120..2f496b263 100644 --- a/src/modules/usrloc/dlist.h +++ b/src/modules/usrloc/dlist.h @@ -109,7 +109,7 @@ int synchronize_all_udomains(int istart, int istep); * \param flags contact flags * \param part_idx part index * \param part_max maximal part - * \param GAU options + * \param options options * \return 0 on success, positive if buffer size was not sufficient, negative on failure */ int get_all_ucontacts(void *buf, int len, unsigned int flags, diff --git a/src/modules/usrloc/doc/usrloc_admin.xml b/src/modules/usrloc/doc/usrloc_admin.xml index 1747d2555..91f381437 100644 --- a/src/modules/usrloc/doc/usrloc_admin.xml +++ b/src/modules/usrloc/doc/usrloc_admin.xml @@ -34,7 +34,7 @@ The SIP RFC 3261 publishes a matching algorithm based only on the contact string with Call-id and Cseq extra checking (if the Call-ID is the same, it must have a higher Cseq number, otherwise it is invalid). - But as argumented above, this is not enough in NAT traversal context, + But as argued above, this is not enough in NAT traversal context, so the &kamailio; implementation of contact matching offers more algorithms: @@ -73,7 +73,7 @@ - To find out how to control/select the contact maching algorithm, please see the + To find out how to control/select the contact matching algorithm, please see the module parameter matching_mode - .
@@ -540,7 +540,7 @@ modparam("usrloc", "partition_column", "part") <varname>use_domain</varname> (integer) If the domain part of the user should be also saved and used for - identifing the user (along with the username part). Useful in + identifying the user (along with the username part). Useful in multi domain scenarios. Non 0 value means true. @@ -671,7 +671,7 @@ modparam("usrloc", "db_url", "&exampledb;") more servers sharing the same DB without any replication at SIP level. The mode may be slower due the high number of DB operation. For example NAT pinging is a killer since during each ping cycle - all nated contact are loaded from the DB; The lack of memory + all natted contact are loaded from the DB; The lack of memory caching also disable the statistics exports. @@ -948,7 +948,7 @@ modparam("usrloc", "db_check_update", 1) <varname>timer_procs</varname> (int) Number of timer processes to be started by module. Timer processes - take care of checking expired records and syncronization with + take care of checking expired records and synchronization with database. If set to 0, no dedicated timer is started, the one from core will be used. @@ -1113,7 +1113,7 @@ modparam("usrloc", "db_raw_fetch_type", 1) null fields (e.g., db_mongodb) for each stored record. - When set to 0, the fiels that default to null are not + When set to 0, the fields that default to null are not added to the DB insert statement if they don't have a different value, making the query smaller. @@ -1177,10 +1177,33 @@ modparam("usrloc", "db_timer_clean", 1)
+
+ <varname>rm_expired_delay</varname> (int) + + Specify the number of seconds to delay the removal of expired + records. For now it works for DB_ONLY mode (db_mode=3). + + + + Default value is 0. + + + + Set <varname>rm_expired_delay</varname> parameter + +... +modparam("usrloc", "rm_expired_delay", 30) +... + + +
+
<varname>server_id_filter</varname> (int) - Enable (1) or disable (0) filter records by server_id on load. + Enable (1) or disable (0) filter records by server_id on load and during cleaning of expired db records. + It could be usefull when you want to use the same location table for several kamailio instances which are configured to work in db_mode=1 or db_mode=2 (cache modes). + Otherwise one instance of proxy cleans records made by another proxy and that breaks its cache. @@ -1197,6 +1220,25 @@ modparam("usrloc", "server_id_filter", 1)
+
+ <varname>version_table</varname> (integer) + + If set to 0, the module will skip checking the version + for location table. + + + Default value is 1 (check for table version). + + + <varname>version_table</varname> parameter usage + +... +modparam("usrloc", "version_table", 0) +... + + +
+
@@ -1406,7 +1448,7 @@ modparam("usrloc", "server_id_filter", 1) users Number of AOR existing in the USRLOC memory cache for that domain - - can not be resetted; this statistic will be register for each + - can not be reset; this statistic will be register for each used domain (Ex: location).
@@ -1414,14 +1456,14 @@ modparam("usrloc", "server_id_filter", 1) contacts Number of contacts existing in the USRLOC memory cache for that - domain - can not be resetted; this statistic will be register for + domain - can not be reset; this statistic will be register for each used domain (Ex: location).
expires - Total number of expired contacts for that domain - can be resetted; + Total number of expired contacts for that domain - can be reset; this statistic will be register for each used domain (Ex: location). @@ -1430,7 +1472,7 @@ modparam("usrloc", "server_id_filter", 1) registered_users Total number of AOR existing in the USRLOC memory cache for all - domains - can not be resetted. + domains - can not be reset.
diff --git a/src/modules/usrloc/ucontact.c b/src/modules/usrloc/ucontact.c index a43c5c6c0..93b30fab0 100644 --- a/src/modules/usrloc/ucontact.c +++ b/src/modules/usrloc/ucontact.c @@ -739,7 +739,7 @@ int db_update_ucontact_addr(ucontact_t* _c) LM_DBG("contact:%.*s\n", vals1[n1].val.str_val.len, vals1[n1].val.str_val.s); n1++; - switch (matching_mode) { + switch (ul_matching_mode) { case CONTACT_ONLY: /* update call-id */ keys2[nr_cols2] = &callid_col; @@ -796,7 +796,7 @@ int db_update_ucontact_addr(ucontact_t* _c) nr_cols2++; break; default: - LM_CRIT("unknown matching_mode %d\n", matching_mode); + LM_CRIT("unknown matching_mode %d\n", ul_matching_mode); return -1; } @@ -1464,7 +1464,7 @@ int db_delete_ucontact_addr(ucontact_t* _c) vals[n].val.str_val = _c->c; n++; - switch (matching_mode) { + switch (ul_matching_mode) { case CONTACT_ONLY: break; case CONTACT_CALLID: @@ -1486,7 +1486,7 @@ int db_delete_ucontact_addr(ucontact_t* _c) n++; break; default: - LM_CRIT("unknown matching_mode %d\n", matching_mode); + LM_CRIT("unknown matching_mode %d\n", ul_matching_mode); return -1; } diff --git a/src/modules/usrloc/udomain.c b/src/modules/usrloc/udomain.c index 95994c201..11378aade 100644 --- a/src/modules/usrloc/udomain.c +++ b/src/modules/usrloc/udomain.c @@ -40,6 +40,10 @@ #include "usrloc.h" #include "utime.h" #include "usrloc.h" +#include "ul_callback.h" +#include "urecord.h" + +extern int ul_rm_expired_delay; #ifdef STATISTICS static char *build_stat_name( str* domain, char *var_name) @@ -761,7 +765,7 @@ done: * \brief Loads from DB all contacts for a RUID * \param _c database connection * \param _d domain - * \param _aor address of record + * \param _ruid record unique id * \return pointer to the record on success, 0 on errors or if nothing is found */ urecord_t* db_load_urecord_by_ruid(db1_con_t* _c, udomain_t* _d, str *_ruid) @@ -883,6 +887,176 @@ done: return r; } +/*! + * \brief call contact expired call back for a domain with db_mode: DB_ONLY + * + * call contact expired call back for a domain with db_mode: DB_ONLY since + * database rows are removed by the timer function: db_timer_udomain + * \param _c database connection + * \param _d loaded domain + * \return 0 on success, -1 on failure + */ +int udomain_contact_expired_cb(db1_con_t* _c, udomain_t* _d) +{ + ucontact_info_t *ci; + db_row_t *row; + db_key_t columns[21], query_cols[3]; + db_op_t query_ops[3]; + db_val_t query_vals[3]; + int key_num = 2; + db1_res_t* res = NULL; + str user, contact; + int i; + int n; + urecord_t* r; + ucontact_t* c; + + if (db_mode!=DB_ONLY) { + return 0; + } + + columns[0] = &user_col; + columns[1] = &contact_col; + columns[2] = &expires_col; + columns[3] = &q_col; + columns[4] = &callid_col; + columns[5] = &cseq_col; + columns[6] = &flags_col; + columns[7] = &cflags_col; + columns[8] = &user_agent_col; + columns[9] = &received_col; + columns[10] = &path_col; + columns[11] = &sock_col; + columns[12] = &methods_col; + columns[13] = &last_mod_col; + columns[14] = &ruid_col; + columns[15] = &instance_col; + columns[16] = ®_id_col; + columns[17] = &srv_id_col; + columns[18] = &con_id_col; + columns[19] = &keepalive_col; + columns[20] = &domain_col; + + query_cols[0] = &expires_col; + query_ops[0] = "<"; + query_vals[0].nul = 0; + UL_DB_EXPIRES_SET(&query_vals[0], act_time + 1 - ul_rm_expired_delay); + + query_cols[1] = &expires_col; + query_ops[1] = OP_NEQ; + query_vals[1].nul = 0; + UL_DB_EXPIRES_SET(&query_vals[1], 0); + + if (ul_db_srvid != 0) { + query_cols[2] = &srv_id_col; + query_ops[2] = OP_EQ; + query_vals[2].type = DB1_INT; + query_vals[2].nul = 0; + query_vals[2].val.int_val = server_id; + key_num = 3; + } + + if (ul_dbf.use_table(_c, _d->name) < 0) { + LM_ERR("sql use_table failed\n"); + return -1; + } + +#ifdef EXTRA_DEBUG + LM_NOTICE("udomain contact-expired start time [%d]\n", (int)time(NULL)); +#endif + + if (DB_CAPABILITY(ul_dbf, DB_CAP_FETCH)) { + if (ul_dbf.query(_c, query_cols, query_ops, query_vals, columns, key_num, (use_domain)?(21):(20), 0, + 0) < 0) { + LM_ERR("db_query (1) failed\n"); + return -1; + } + if(ul_dbf.fetch_result(_c, &res, ul_fetch_rows)<0) { + LM_ERR("fetching rows failed\n"); + return -1; + } + } else { + if (ul_dbf.query(_c, query_cols, query_ops, query_vals, columns, key_num, (use_domain)?(21):(20), 0, + &res) < 0) { + LM_ERR("db_query failed\n"); + return -1; + } + } + + if (RES_ROW_N(res) == 0) { + LM_DBG("no rows to be contact expired\n"); + ul_dbf.free_result(_c, res); + return 0; + } + + n = 0; + do { + LM_DBG("calling contact expired records - cycle [%d]\n", ++n); + for(i = 0; i < RES_ROW_N(res); i++) { + row = RES_ROWS(res) + i; + + user.s = (char*)VAL_STRING(ROW_VALUES(row)); + if (VAL_NULL(ROW_VALUES(row)) || user.s==0 || user.s[0]==0) { + LM_CRIT("empty username record in table %s...skipping\n", + _d->name->s); + continue; + } + user.len = strlen(user.s); + + ci = dbrow2info(ROW_VALUES(row)+1, &contact, 0); + if (ci==0) { + LM_CRIT("skipping record for %.*s in table %s\n", + user.len, user.s, _d->name->s); + continue; + } + + lock_udomain(_d, &user); + if (get_urecord(_d, &user, &r) > 0) { + LM_ERR("failed to get a record\n"); + unlock_udomain(_d, &user); + goto error; + } + + if ( (c=mem_insert_ucontact(r, &contact, ci)) == 0) { + LM_ERR("inserting contact failed\n"); + release_urecord(r); + unlock_udomain(_d, &user); + goto error; + } + + /* Call the contact-expired call-back if it exists for the contact */ + if (exists_ulcb_type(UL_CONTACT_EXPIRE)) { + run_ul_callbacks( UL_CONTACT_EXPIRE, c); + } + c->state = CS_SYNC; + release_urecord(r); + unlock_udomain(_d, &user); + } + + if (DB_CAPABILITY(ul_dbf, DB_CAP_FETCH)) { + if(ul_dbf.fetch_result(_c, &res, ul_fetch_rows)<0) { + LM_ERR("fetching rows (1) failed\n"); + ul_dbf.free_result(_c, res); + return -1; + } + } else { + break; + } + } while(RES_ROW_N(res)>0); + + ul_dbf.free_result(_c, res); + +#ifdef EXTRA_DEBUG + LM_NOTICE("udomain contact-expired end time [%d]\n", (int)time(NULL)); +#endif + + return 0; + +error: + ul_dbf.free_result(_c, res); + return -1; +} + /*! * \brief Timer function to cleanup expired contacts, db_mode: DB_ONLY @@ -892,26 +1066,39 @@ done: */ int db_timer_udomain(udomain_t* _d) { - db_key_t keys[2]; - db_op_t ops[2]; - db_val_t vals[2]; + db_key_t keys[3]; + db_op_t ops[3]; + db_val_t vals[3]; + int key_num = 2; + + /* call contact expired call back for a domain before deleting database rows */ + udomain_contact_expired_cb(ul_dbh, _d); keys[0] = &expires_col; ops[0] = "<"; vals[0].nul = 0; - UL_DB_EXPIRES_SET(&vals[0], act_time + 1); + UL_DB_EXPIRES_SET(&vals[0], act_time + 1 - ul_rm_expired_delay); keys[1] = &expires_col; ops[1] = OP_NEQ; vals[1].nul = 0; UL_DB_EXPIRES_SET(&vals[1], 0); + if (ul_db_srvid != 0) { + keys[2] = &srv_id_col; + ops[2] = OP_EQ; + vals[2].type = DB1_INT; + vals[2].nul = 0; + vals[2].val.int_val = server_id; + key_num = 3; + } + if (ul_dbf.use_table(ul_dbh, _d->name) < 0) { LM_ERR("use_table failed\n"); return -1; } - - if (ul_dbf.delete(ul_dbh, keys, ops, vals, 2) < 0) { + + if (ul_dbf.delete(ul_dbh, keys, ops, vals, key_num) < 0) { LM_ERR("failed to delete from table %s\n",_d->name->s); return -1; } @@ -997,8 +1184,10 @@ void mem_delete_urecord(udomain_t* _d, struct urecord* _r) /*! - * \brief Run timer handler for given domain + * \brief Run timer handler for given domain, delete urecords * \param _d domain + * \param istart start of run + * \param istep loop steps */ void mem_timer_udomain(udomain_t* _d, int istart, int istep) { @@ -1116,6 +1305,7 @@ int get_urecord(udomain_t* _d, str* _aor, struct urecord** _r) { unsigned int sl, i, aorhash; urecord_t* r; + ucontact_t* ptr = NULL; if (db_mode!=DB_ONLY) { /* search in cache */ @@ -1125,7 +1315,18 @@ int get_urecord(udomain_t* _d, str* _aor, struct urecord** _r) for(i = 0; r!=NULL && i < _d->table[sl].n; i++) { if((r->aorhash==aorhash) && (r->aor.len==_aor->len) - && !memcmp(r->aor.s,_aor->s,_aor->len)){ + && !memcmp(r->aor.s,_aor->s,_aor->len)) + { + if (handle_lost_tcp) + { + for (ptr = r->contacts;ptr;ptr = ptr->next) + { + if (ptr->expires == UL_EXPIRED_TIME ) + continue; + if (is_valid_tcpconn(ptr) && !is_tcp_alive(ptr)) + ptr->expires = UL_EXPIRED_TIME; + } + } *_r = r; return 0; } diff --git a/src/modules/usrloc/ul_rpc.c b/src/modules/usrloc/ul_rpc.c index b5522994d..53031799a 100644 --- a/src/modules/usrloc/ul_rpc.c +++ b/src/modules/usrloc/ul_rpc.c @@ -666,6 +666,7 @@ static void ul_rpc_add(rpc_t* rpc, void* ctx) return; } ci.ruid = _ul_sruid.uid; + ci.server_id = server_id; lock_udomain(dom, &aor); diff --git a/src/modules/usrloc/urecord.c b/src/modules/usrloc/urecord.c index 9223b857d..279ab2d17 100644 --- a/src/modules/usrloc/urecord.c +++ b/src/modules/usrloc/urecord.c @@ -42,7 +42,7 @@ #include "usrloc.h" /*! contact matching mode */ -int matching_mode = CONTACT_ONLY; +int ul_matching_mode = CONTACT_ONLY; /*! retransmission detection interval in seconds */ int cseq_delay = 20; @@ -216,7 +216,7 @@ void mem_delete_ucontact(urecord_t* _r, ucontact_t* _c) free_ucontact(_c); } -static inline int is_valid_tcpconn(ucontact_t *c) +int is_valid_tcpconn(ucontact_t *c) { if (c->tcpconn_id == -1) return 0; /* tcpconn_id is not present */ @@ -224,7 +224,7 @@ static inline int is_valid_tcpconn(ucontact_t *c) return 1; /* valid tcpconn_id */ } -static inline int is_tcp_alive(ucontact_t *c) +int is_tcp_alive(ucontact_t *c) { struct tcp_connection *con = NULL; int rc = 0; @@ -286,8 +286,10 @@ static inline void nodb_timer(urecord_t* _r) if (!VALID_CONTACT(ptr, act_time)) { /* run callbacks for EXPIRE event */ - if (exists_ulcb_type(UL_CONTACT_EXPIRE)) + if (!(ptr->flags&FL_EXPCLB) && exists_ulcb_type(UL_CONTACT_EXPIRE)) { run_ul_callbacks( UL_CONTACT_EXPIRE, ptr); + ptr->flags |= FL_EXPCLB; + } LM_DBG("Binding '%.*s','%.*s' has expired\n", ptr->aor->len, ZSW(ptr->aor->s), @@ -733,7 +735,7 @@ static inline struct ucontact* contact_path_match( ucontact_t* ptr, str* _c, str /*! * \brief Match a contact record to a Call-ID only * \param ptr contact record - * \param _c contact string + * \param _callid callid string * \return ptr on successfull match, 0 when they not match */ static inline struct ucontact* contact_match_callidonly( ucontact_t* ptr, str* _callid) @@ -770,7 +772,7 @@ int get_ucontact(urecord_t* _r, str* _c, str* _callid, str* _path, int _cseq, no_callid = 0; *_co = 0; - switch (matching_mode) { + switch (ul_matching_mode) { case CONTACT_ONLY: ptr = contact_match( _r->contacts, _c); break; @@ -785,7 +787,7 @@ int get_ucontact(urecord_t* _r, str* _c, str* _callid, str* _path, int _cseq, ptr = contact_match_callidonly( _r->contacts, _callid); break; default: - LM_CRIT("unknown matching_mode %d\n", matching_mode); + LM_CRIT("unknown matching_mode %d\n", ul_matching_mode); return -1; } diff --git a/src/modules/usrloc/urecord.h b/src/modules/usrloc/urecord.h index 83b3c044e..5ac7c9ae6 100644 --- a/src/modules/usrloc/urecord.h +++ b/src/modules/usrloc/urecord.h @@ -189,4 +189,8 @@ int get_ucontact(urecord_t* _r, str* _c, str* _callid, str* _path, int get_ucontact_by_instance(urecord_t* _r, str* _c, ucontact_info_t* _ci, ucontact_t** _co); +int is_valid_tcpconn(ucontact_t *c); + +int is_tcp_alive(ucontact_t *c); + #endif diff --git a/src/modules/usrloc/usrloc.h b/src/modules/usrloc/usrloc.h index fbec7d844..6fb496553 100644 --- a/src/modules/usrloc/usrloc.h +++ b/src/modules/usrloc/usrloc.h @@ -61,7 +61,8 @@ typedef enum cstate { typedef enum flags { FL_NONE = 0, /*!< No flags set */ FL_MEM = 1 << 0, /*!< Update memory only */ - FL_RPL = 1 << 1, /*!< DMQ replication */ + FL_DMQRPL = 1 << 1, /*!< DMQ replication */ + FL_EXPCLB = 1 << 2, /*!< Expired callback executed */ FL_ALL = (int)0xFFFFFFFF /*!< All flags set */ } flags_t; diff --git a/src/modules/usrloc/usrloc_mod.c b/src/modules/usrloc/usrloc_mod.c index 2eb9037f2..240b9f24f 100644 --- a/src/modules/usrloc/usrloc_mod.c +++ b/src/modules/usrloc/usrloc_mod.c @@ -111,6 +111,8 @@ int ul_keepalive_timeout = 0; int ul_db_ops_ruid = 1; int ul_expires_type = 0; int ul_db_raw_fetch_type = 0; +int ul_rm_expired_delay = 0; +int ul_version_table = 1; str ul_xavp_contact_name = {0}; @@ -175,7 +177,7 @@ unsigned int init_flag = 0; db1_con_t* ul_dbh = 0; /* Database connection handle */ db_func_t ul_dbf; -/* filter on load by server id */ +/* filter on load and during cleanup by server id */ unsigned int ul_db_srvid = 0; /*! \brief @@ -219,7 +221,7 @@ static param_export_t params[] = { {"connection_id_column",PARAM_STR, &con_id_col }, {"keepalive_column", PARAM_STR, &keepalive_col }, {"partition_column", PARAM_STR, &partition_col }, - {"matching_mode", INT_PARAM, &matching_mode }, + {"matching_mode", INT_PARAM, &ul_matching_mode }, {"cseq_delay", INT_PARAM, &cseq_delay }, {"fetch_rows", INT_PARAM, &ul_fetch_rows }, {"hash_size", INT_PARAM, &ul_hash_size }, @@ -238,6 +240,8 @@ static param_export_t params[] = { {"db_insert_null", PARAM_INT, &ul_db_insert_null}, {"server_id_filter", PARAM_INT, &ul_db_srvid}, {"db_timer_clean", PARAM_INT, &ul_db_timer_clean}, + {"rm_expired_delay", PARAM_INT, &ul_rm_expired_delay}, + {"version_table", PARAM_INT, &ul_version_table}, {0, 0, 0} }; @@ -249,18 +253,16 @@ stat_export_t mod_stats[] = { struct module_exports exports = { - "usrloc", + "usrloc", /*!< module name */ DEFAULT_DLFLAGS, /*!< dlopen flags */ - cmds, /*!< Exported functions */ - params, /*!< Export parameters */ - mod_stats, /*!< exported statistics */ - 0, /*!< exported MI functions */ - 0, /*!< exported pseudo-variables */ - 0, /*!< extra processes */ - mod_init, /*!< Module initialization function */ - 0, /*!< Response function */ - destroy, /*!< Destroy function */ - child_init /*!< Child initialization function */ + cmds, /*!< exported functions */ + params, /*!< exported parameters */ + 0, /*!< exported rpc functions */ + 0, /*!< exported pseudo-variables */ + 0, /*!< response handling function */ + mod_init, /*!< module init function */ + child_init, /*!< child init function */ + destroy /*!< destroy function */ }; @@ -272,6 +274,17 @@ static int mod_init(void) int i; udomain_t* d; + if(ul_rm_expired_delay!=0) { + if(db_mode != DB_ONLY) { + LM_ERR("rm expired delay feature is available for db only mode\n"); + return -1; + } + } + if(ul_rm_expired_delay<0) { + LM_WARN("rm expired delay value is negative (%d) - setting it to 0\n", + ul_rm_expired_delay); + ul_rm_expired_delay = 0; + } if(sruid_init(&_ul_sruid, '-', "ulcx", SRUID_INC)<0) return -1; @@ -295,14 +308,14 @@ static int mod_init(void) ul_hash_size = 1<BUFSIZE) { + LM_BUG("output was truncated\n"); + } buf[BUFSIZE]='\0'; } else { snprintf(buf, BUFSIZE, "%s", token); diff --git a/src/modules/utils/utils.c b/src/modules/utils/utils.c index 026eb239e..8ef87ab6f 100644 --- a/src/modules/utils/utils.c +++ b/src/modules/utils/utils.c @@ -28,8 +28,8 @@ * \ingroup utils */ -/*! \defgroup Utils Kamailio :: Various utilities - * +/*! \defgroup utils Kamailio :: Various utilities + * @{ */ @@ -116,18 +116,16 @@ static mi_export_t mi_cmds[] = { /* Module interface */ struct module_exports exports = { - "utils", + "utils", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function*/ - destroy, /* destroy function */ - child_init /* per-child init function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + 0, /* exported pseudo-variables */ + 0, /* response handling function*/ + mod_init, /* module init function */ + child_init, /* per-child init function */ + destroy /* destroy function */ }; @@ -471,3 +469,5 @@ static struct mi_root* forward_fifo_proxy(struct mi_root* cmd_tree, void* param) return init_mi_tree(200, MI_OK_S, MI_OK_LEN); } #endif + +/** @} */ diff --git a/src/modules/uuid/Makefile b/src/modules/uuid/Makefile index 3fe786421..238625241 100644 --- a/src/modules/uuid/Makefile +++ b/src/modules/uuid/Makefile @@ -20,7 +20,4 @@ else LIBS+=-L$(LOCALBASE)/lib -L$(SYSBASE)/lib -luuid endif - -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/uuid/uuid_mod.c b/src/modules/uuid/uuid_mod.c index df39606e8..a5aae589d 100644 --- a/src/modules/uuid/uuid_mod.c +++ b/src/modules/uuid/uuid_mod.c @@ -61,18 +61,16 @@ static param_export_t params[]={ }; struct module_exports exports = { - "uuid", + "uuid", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, - 0, /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - mod_destroy, /* destroy function */ - child_init /* per child init function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + mod_pvs, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per child init function */ + mod_destroy /* destroy function */ }; diff --git a/src/modules/websocket/Makefile b/src/modules/websocket/Makefile index 16ffcf727..6d9977b0a 100644 --- a/src/modules/websocket/Makefile +++ b/src/modules/websocket/Makefile @@ -48,7 +48,5 @@ endif # #LIBS+= /usr/lib/libcurl.a /usr/lib/libssl.a /usr/lib/libcrypto.a -lkrb5 -lidn -lz -lgssapi_krb5 -lrt -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/websocket/websocket.c b/src/modules/websocket/websocket.c index c84fc446f..87cf4e3a5 100644 --- a/src/modules/websocket/websocket.c +++ b/src/modules/websocket/websocket.c @@ -164,18 +164,16 @@ static pv_export_t mod_pvs[] = { }; struct module_exports exports = { - "websocket", + "websocket", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - stats, /* exported statistics */ - 0, /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response function */ - destroy, /* destroy function */ - child_init /* per-child initialization function */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + mod_pvs, /* exported pseudo-variables */ + 0, /* response handlin function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + destroy /* destroy function */ }; /* clang-format on */ diff --git a/src/modules/websocket/ws_conn.c b/src/modules/websocket/ws_conn.c index 46cdf0986..a4442ae0d 100644 --- a/src/modules/websocket/ws_conn.c +++ b/src/modules/websocket/ws_conn.c @@ -300,10 +300,8 @@ static void wsconn_run_route(ws_connection_t *wsc) init_run_actions_ctx(&ctx); if(rt < 0) { /* kemi script event route callback */ - if(keng - && keng->froute( - fmsg, EVENT_ROUTE, &ws_event_callback, &evrtname) - < 0) { + if(keng && sr_kemi_route(keng,fmsg, EVENT_ROUTE, &ws_event_callback, + &evrtname) < 0) { LM_ERR("error running event route kemi callback\n"); } } else { diff --git a/src/modules/xcap_client/Makefile b/src/modules/xcap_client/Makefile index 1d9efb151..7a47bc059 100644 --- a/src/modules/xcap_client/Makefile +++ b/src/modules/xcap_client/Makefile @@ -25,8 +25,6 @@ else LIBS+=-L$(LOCALBASE)/lib -lcurl endif -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 diff --git a/src/modules/xcap_client/xcap_client.c b/src/modules/xcap_client/xcap_client.c index 0b8a707d8..b5131f4ed 100644 --- a/src/modules/xcap_client/xcap_client.c +++ b/src/modules/xcap_client/xcap_client.c @@ -82,7 +82,7 @@ static param_export_t params[]={ { "db_url", PARAM_STR, &xcap_db_url }, { "xcap_table", PARAM_STR, &xcap_db_table }, { "periodical_query", INT_PARAM, &periodical_query }, - { "query_period", INT_PARAM, &query_period }, + { "query_period", INT_PARAM, &query_period }, { 0, 0, 0 } }; @@ -95,18 +95,16 @@ static cmd_export_t cmds[]= /** module exports */ struct module_exports exports= { - "xcap_client", /* module name */ - DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* exported functions */ - params, /* exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response handling function */ - (destroy_function) destroy, /* destroy function */ - child_init /* per-child init function */ + "xcap_client", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + 0, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* child init function */ + destroy /* module destroy function */ }; /** diff --git a/src/modules/xcap_server/Makefile b/src/modules/xcap_server/Makefile index cdf3d5e3c..d5684bdd9 100644 --- a/src/modules/xcap_server/Makefile +++ b/src/modules/xcap_server/Makefile @@ -20,8 +20,6 @@ else LIBS+=-L$(LOCALBASE)/lib -lxml2 endif -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 diff --git a/src/modules/xcap_server/README b/src/modules/xcap_server/README index 7f8c9af6e..8cff81ec7 100644 --- a/src/modules/xcap_server/README +++ b/src/modules/xcap_server/README @@ -88,15 +88,15 @@ Chapter 1. Admin Guide 1. Overview - This module provides an XCAP server functionaly inside Kamailio and SER - SIP servers. + This module provides an XCAP server functionally inside Kamailio and + SER SIP servers. Benefits brought by this integrated XCAP server: * reuse of SIP router transport layer - XCAP documents can be sent via SIP (UDP, TCP, TLS and SCTP) and via HTTP (TCP or TLS (HTTPS)). - For HTTP/S, you neet to load XHTTP module to handle HTTP/S + For HTTP/S, you need to load XHTTP module to handle HTTP/S requests. - * the Presence server has access imediatelly to the latest version of + * the Presence server has access immediately to the latest version of XCAP documents. No more need to trigger refresh of XCAP documents via RPC command. * can be used stand-alone, with a different Presence server. It is @@ -210,7 +210,7 @@ modparam("xcap_server", "xml_ns", The URLs in an org.oma.xcap-directory listing must be be paths a client can use to download the listed XCAP documents. In some cases (for example, when the XCAP server is accessed using HTTP from an HTTP proxy - the client connectes to using HTTPS) the XCAP server may not be able to + the client connected to using HTTPS) the XCAP server may not be able to automatically determine the correct scheme to use based on the HTTP connection. * -1 (default) - determine scheme automatically. HTTP for TCP @@ -232,7 +232,7 @@ modparam("xcap_server", "directory_scheme", 0) The URLs in an org.oma.xcap-directory listing must be be paths a client can use to download the listed XCAP documents. In some cases (for example, when the XCAP server is accessed through a proxy that - re-writes headers, or a client is non-conformant and does not include a + re-writes headers, or a client is non-conforming and does not include a Host: header) the XCAP server may not be able to automatically determine the correct hostname to use. diff --git a/src/modules/xcap_server/doc/xcap_server_admin.xml b/src/modules/xcap_server/doc/xcap_server_admin.xml index f7cb7b0cd..a90c531b3 100644 --- a/src/modules/xcap_server/doc/xcap_server_admin.xml +++ b/src/modules/xcap_server/doc/xcap_server_admin.xml @@ -16,7 +16,7 @@
Overview - This module provides an XCAP server functionaly inside Kamailio + This module provides an XCAP server functionally inside Kamailio and SER SIP servers. @@ -26,13 +26,13 @@ reuse of SIP router transport layer - XCAP documents can be sent via SIP (UDP, TCP, TLS and SCTP) and via HTTP (TCP or TLS (HTTPS)). - For HTTP/S, you neet to load XHTTP module to handle HTTP/S + For HTTP/S, you need to load XHTTP module to handle HTTP/S requests. - the Presence server has access imediatelly to the latest version + the Presence server has access immediately to the latest version of XCAP documents. No more need to trigger refresh of XCAP documents via RPC command. @@ -226,7 +226,7 @@ modparam("xcap_server", "xml_ns", be paths a client can use to download the listed XCAP documents. In some cases (for example, when the XCAP server is accessed using HTTP from an HTTP proxy the - client connectes to using HTTPS) the XCAP server may + client connected to using HTTPS) the XCAP server may not be able to automatically determine the correct scheme to use based on the HTTP connection. @@ -264,7 +264,7 @@ modparam("xcap_server", "directory_scheme", 0) be paths a client can use to download the listed XCAP documents. In some cases (for example, when the XCAP server is accessed through a proxy that re-writes - headers, or a client is non-conformant and does not + headers, or a client is non-conforming and does not include a Host: header) the XCAP server may not be able to automatically determine the correct hostname to use. diff --git a/src/modules/xcap_server/xcap_server.c b/src/modules/xcap_server/xcap_server.c index 578a03b0f..7405071b2 100644 --- a/src/modules/xcap_server/xcap_server.c +++ b/src/modules/xcap_server/xcap_server.c @@ -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 * */ @@ -138,18 +138,16 @@ static cmd_export_t cmds[]={ /** module exports */ struct module_exports exports= { - "xcap_server", /* module name */ - DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* exported functions */ - params, /* exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, /* response handling function */ - destroy, /* destroy function */ - child_init /* per-child init function */ + "xcap_server", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ + mod_pvs, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module initialization function */ + child_init, /* per-child init function */ + destroy /* destroy function */ }; /** @@ -163,7 +161,7 @@ static int mod_init(void) LM_ERR("invalid xcaps_directory_scheme\n"); return -1; } - + if(xcaps_buf.len<=0) { LM_ERR("invalid buffer size\n"); @@ -183,7 +181,7 @@ static int mod_init(void) LM_ERR("Database module not found\n"); return -1; } - + if (!DB_CAPABILITY(xcaps_dbf, DB_CAP_ALL)) { LM_ERR("Database module does not implement all functions" " needed by the module\n"); @@ -1739,4 +1737,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_xcap_server_exports); return 0; -} \ No newline at end of file +} diff --git a/src/modules/xhttp/Makefile b/src/modules/xhttp/Makefile index ad713325e..1adbaddc2 100644 --- a/src/modules/xhttp/Makefile +++ b/src/modules/xhttp/Makefile @@ -1,5 +1,5 @@ # xhttp - Web server for Kamailio -# +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -8,6 +8,4 @@ NAME=xhttp.so DEFS += LIBS += -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/xhttp/xhttp_mod.c b/src/modules/xhttp/xhttp_mod.c index f62013cd9..22815d82a 100644 --- a/src/modules/xhttp/xhttp_mod.c +++ b/src/modules/xhttp/xhttp_mod.c @@ -94,18 +94,16 @@ static param_export_t params[] = { /** module exports */ struct module_exports exports= { - "xhttp", + "xhttp", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0 , /* exported MI functions */ - mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - 0, - 0 /* per-child init function */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* exported rpc functions */ + mod_pvs, /* exported pseudo-variables */ + 0, /* response handling function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + 0 /* module destroy function */ }; static tr_export_t mod_trans[] = { @@ -115,8 +113,8 @@ static tr_export_t mod_trans[] = { { { 0, 0 }, 0 } }; -/** - * +/** + * */ static int mod_init(void) { @@ -212,7 +210,7 @@ static char* xhttp_to_sip(sip_msg_t* msg, int* new_msg_len) hp.host = &ip; hp.port = &port; init_dst_from_rcv(&dst, &msg->rcv); - via = via_builder(&via_len, &dst, 0, 0, &hp); + via = via_builder(&via_len, NULL, &dst, 0, 0, &hp); if (via == 0) { LM_DBG("failed to build via\n"); @@ -304,7 +302,7 @@ static int xhttp_process_request(sip_msg_t* orig_msg, } else { keng = sr_kemi_eng_get(); if(keng!=NULL) { - if(keng->froute(msg, EVENT_ROUTE, + if(sr_kemi_route(keng, msg, EVENT_ROUTE, &xhttp_event_callback, &evrtname)<0) { LM_ERR("error running event route kemi callback\n"); } diff --git a/src/modules/xhttp_pi/Makefile b/src/modules/xhttp_pi/Makefile index 6e4b23b63..1b092231a 100644 --- a/src/modules/xhttp_pi/Makefile +++ b/src/modules/xhttp_pi/Makefile @@ -1,5 +1,4 @@ # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -21,8 +20,6 @@ else LIBS += -L$(LOCALBASE)/lib -lxml2 endif -DEFS+=-DKAMAILIO_MOD_INTERFACE - SERLIBPATH=../../lib SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 include ../../Makefile.modules diff --git a/src/modules/xhttp_pi/README b/src/modules/xhttp_pi/README index 967acef66..f1904aa2b 100644 --- a/src/modules/xhttp_pi/README +++ b/src/modules/xhttp_pi/README @@ -104,7 +104,7 @@ Chapter 1. Admin Guide 2. Usage - The layout of the provisionning interface is controlled via an external + The layout of the provisioning interface is controlled via an external xml file (see the framework parameter). An example of a framework xml file is provided inside the Kamailio's examples directory. A simple framework file can be generated by the kamdbctl command: @@ -221,7 +221,7 @@ kamdbctl pframework create 4. To-do Features to be added in the future: - * full subscriber provisionning with automatic ha1/ha1b fields. + * full subscriber provisioning with automatic ha1/ha1b fields. 5. Dependencies @@ -247,9 +247,9 @@ kamdbctl pframework create 6.1. xhttp_pi_root (str) - It specifies the root path for provisionning http requests. The link to + It specifies the root path for provisioning http requests. The link to the provisioning web interface must be constructed using the following - patern: http://[server_IP]:[tcp_port]/[xhttp_pi_root] + pattern: http://[server_IP]:[tcp_port]/[xhttp_pi_root] Default value is "pi". diff --git a/src/modules/xhttp_pi/doc/xhttp_pi_admin.xml b/src/modules/xhttp_pi/doc/xhttp_pi_admin.xml index 4fbe32000..13df71340 100644 --- a/src/modules/xhttp_pi/doc/xhttp_pi_admin.xml +++ b/src/modules/xhttp_pi/doc/xhttp_pi_admin.xml @@ -51,7 +51,7 @@
Usage - The layout of the provisionning interface is controlled via an external + The layout of the provisioning interface is controlled via an external xml file (see the framework parameter). An example of a framework xml file is provided inside the &kamailio;'s examples directory. @@ -239,7 +239,7 @@ kamdbctl pframework create - full subscriber provisionning with automatic ha1/ha1b fields. + full subscriber provisioning with automatic ha1/ha1b fields.
@@ -279,9 +279,9 @@ kamdbctl pframework create
<varname>xhttp_pi_root</varname> (str) - It specifies the root path for provisionning http requests. + It specifies the root path for provisioning http requests. The link to the provisioning web interface must be constructed - using the following patern: + using the following pattern: http://[server_IP]:[tcp_port]/[xhttp_pi_root] diff --git a/src/modules/xhttp_pi/xhttp_pi.c b/src/modules/xhttp_pi/xhttp_pi.c index dfa28c203..ca0cdc195 100644 --- a/src/modules/xhttp_pi/xhttp_pi.c +++ b/src/modules/xhttp_pi/xhttp_pi.c @@ -64,7 +64,7 @@ extern ph_framework_t *ph_framework_data; static int mod_init(void); -static int destroy(void); +static void destroy(void); static int xhttp_pi_dispatch(sip_msg_t* msg, char* s1, char* s2); @@ -104,22 +104,19 @@ static rpc_export_t rpc_methods[]; /** module exports */ struct module_exports exports= { - "xhttp_pi", - DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - (destroy_function) destroy, /* destroy function */ - NULL /* per-child init function */ + "xhttp_pi", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + 0, /* pv exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + destroy /* module destroy function */ }; - /** Implementation of pi_fault function required by the management API. * * This function will be called whenever a management function @@ -303,11 +300,10 @@ static int mod_init(void) } -int destroy(void) +void destroy(void) { destroy_http_db(ph_framework_data); ph_destroy_async_lock(); - return 0; } @@ -420,4 +416,6 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) { sr_kemi_modules_add(sr_kemi_xhttp_pi_exports); return 0; -} \ No newline at end of file +} + +/** @} */ diff --git a/src/modules/xhttp_rpc/Makefile b/src/modules/xhttp_rpc/Makefile index 8e99e094a..1d0dc5741 100644 --- a/src/modules/xhttp_rpc/Makefile +++ b/src/modules/xhttp_rpc/Makefile @@ -1,5 +1,4 @@ # -# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -8,6 +7,4 @@ NAME=xhttp_rpc.so DEFS += LIBS += -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/xhttp_rpc/xhttp_rpc.c b/src/modules/xhttp_rpc/xhttp_rpc.c index 0298b6ecb..61cb5b1cd 100644 --- a/src/modules/xhttp_rpc/xhttp_rpc.c +++ b/src/modules/xhttp_rpc/xhttp_rpc.c @@ -99,18 +99,16 @@ static param_export_t params[] = { /** module exports */ struct module_exports exports= { - "xhttp_rpc", - DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0, /* exported MI functions */ - 0, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - 0, - child_init /* per-child init function */ + "xhttp_rpc", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + 0, /* pv exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + 0 /* module destroy function */ }; @@ -923,3 +921,4 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) return 0; } +/** @} */ diff --git a/src/modules/xlog/Makefile b/src/modules/xlog/Makefile index 9f03ca444..faa90852f 100644 --- a/src/modules/xlog/Makefile +++ b/src/modules/xlog/Makefile @@ -9,6 +9,4 @@ auto_gen= NAME=xlog.so LIBS= -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/xlog/README b/src/modules/xlog/README index 08422c3f3..82fe92853 100644 --- a/src/modules/xlog/README +++ b/src/modules/xlog/README @@ -268,7 +268,7 @@ modparam("xlog", "long_format", 1) 5.1. xlog([ [facility,] level,] format) - Output a formated log message. + Output a formatted log message. Meaning of the parameters are as follows: * facility - The syslog facility that will be used for this single diff --git a/src/modules/xlog/doc/xlog_admin.xml b/src/modules/xlog/doc/xlog_admin.xml index 225b5a80c..3a6b029c6 100644 --- a/src/modules/xlog/doc/xlog_admin.xml +++ b/src/modules/xlog/doc/xlog_admin.xml @@ -248,7 +248,7 @@ modparam("xlog", "long_format", 1) xlog([ [facility,] level,] format) - Output a formated log message. + Output a formatted log message. Meaning of the parameters are as follows: diff --git a/src/modules/xlog/xlog.c b/src/modules/xlog/xlog.c index 1368aa75f..99df2d1c4 100644 --- a/src/modules/xlog/xlog.c +++ b/src/modules/xlog/xlog.c @@ -176,18 +176,16 @@ static param_export_t params[]={ /** module exports */ struct module_exports exports= { - "xlog", + "xlog", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, - params, - 0, /* exported statistics */ - 0 , /* exported MI functions */ - mod_items, /* exported pseudo-variables */ - 0, /* extra processes */ - mod_init, /* module initialization function */ - 0, - (destroy_function) destroy, - 0 /* per-child init function */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + mod_items, /* pseudo-variables exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + destroy /* module destroy function */ }; /** diff --git a/src/modules/xmlops/Makefile b/src/modules/xmlops/Makefile index 7622dc900..d31550301 100644 --- a/src/modules/xmlops/Makefile +++ b/src/modules/xmlops/Makefile @@ -1,7 +1,6 @@ # -# XMLOPS: XML operations -# -# +# XMLOPS: XML operations +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -26,6 +25,4 @@ else endif -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/xmlops/xmlops_mod.c b/src/modules/xmlops/xmlops_mod.c index 3c0827e1e..ebcf201c0 100644 --- a/src/modules/xmlops/xmlops_mod.c +++ b/src/modules/xmlops/xmlops_mod.c @@ -61,13 +61,11 @@ struct module_exports exports= { DEFAULT_DLFLAGS, /* dlopen flags */ 0, /* exported functions */ params, /* exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ + 0, /* exported rpc functions */ mod_pvs, /* exported pseudo-variables */ - 0, /* extra processes */ - 0, /* module initialization function */ 0, /* response handling function */ - 0, /* destroy function */ - 0 /* per-child init function */ + 0, /* module init function */ + 0, /* per-child init function */ + 0 /* destroy function */ }; diff --git a/src/modules/xmlrpc/Makefile b/src/modules/xmlrpc/Makefile index 5bd0c7e9b..358ab06b0 100644 --- a/src/modules/xmlrpc/Makefile +++ b/src/modules/xmlrpc/Makefile @@ -1,4 +1,4 @@ -# +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -20,6 +20,5 @@ endif # use system malloc DEFS+=-DXMLRPC_SYSTEM_MALLOC -DEFS+=-DSER_MOD_INTERFACE include ../../Makefile.modules diff --git a/src/modules/xmlrpc/README b/src/modules/xmlrpc/README index 52554848e..04cddfed2 100644 --- a/src/modules/xmlrpc/README +++ b/src/modules/xmlrpc/README @@ -24,6 +24,7 @@ Jan Janak 2.5. mode (integer) 2.6. url_skip (str) 2.7. url_match (str) + 2.8. event_callback (string) 3. Functions @@ -44,8 +45,9 @@ Jan Janak 1.5. Set the mode parameter 1.6. Set url_skip parameter 1.7. Set url_match parameter - 1.8. dispatch_rpc usage - 1.9. xmlrpc_reply usage + 1.8. Set event_callback parameter + 1.9. dispatch_rpc usage + 1.10. xmlrpc_reply usage 1. Design Goals @@ -486,7 +488,7 @@ Content-Length: 276 trying to open tcp connection to xmlrpc clients that closed it). Alternatively ending the XMLRPC route with return -1, exit -1 or drop -1 can also be used, but note that this will not work for async rpcs - (it will close the connection immeidately and not on the async + (it will close the connection immediately and not on the async response). Example 1. @@ -536,6 +538,7 @@ Chapter 1. Admin Guide 2.5. mode (integer) 2.6. url_skip (str) 2.7. url_match (str) + 2.8. event_callback (string) 3. Functions @@ -560,6 +563,7 @@ Chapter 1. Admin Guide 2.5. mode (integer) 2.6. url_skip (str) 2.7. url_match (str) + 2.8. event_callback (string) 2.1. route (string) @@ -665,6 +669,38 @@ modparam("xmlrpc", "url_skip", "^/sip") modparam("xmlrpc", "url_match", "^/RPC2") ... +2.8. event_callback (string) + + The name of the function in the kemi configuration file (embedded + scripting language such as Lua, Python, ...) to be executed instead of + route blocks defined by route parameter for xmlrpc request. + + This route will be called only for HTTP messages whose method is either + GET or POST. The message visible inside the route will be a HTTP + request converted to SIP (the uri will be fixed and a fake via will be + added). + + The route should perform additional security checks to ensure the + client is authorized to execute management/RPC functions and then it + should call the dispatch_rpc(). + + Example 1.8. Set event_callback parameter +... +modparam("xmlrpc", "event_callback", "ksr_xmlrpc_event") +... +-- event callback function implemented in Lua +function ksr_xmlrpc_event(evname) + KSR.info("===== xmlrpc triggered event: " .. evname .. "\n"); + local rpc_method = KSR.pv.get("$rm") or "" + if ((rpc_method == "POST" or rpc_method == "GET")) then + if (KSR.xmlrpc.dispatch_rpc() < 0) then + KSR.err("error while executing xmlrpc event") + end + end + return 1; +end +... + 3. Functions 3.1. dispatch_rpc() @@ -686,7 +722,7 @@ modparam("xmlrpc", "url_match", "^/RPC2") function with matching name. If such a function is found then dispatch_rpc() will pass control to the function to handle the request. - Example 1.8. dispatch_rpc usage + Example 1.9. dispatch_rpc usage #... modparam("xmlrpc", "route", "XMLRPC"); #... @@ -702,7 +738,7 @@ route[XMLRPC]{ This function can be called from the config script to directly generate an XML-RPC reply. - Example 1.9. xmlrpc_reply usage + Example 1.10. xmlrpc_reply usage #... modparam("xmlrpc", "route", "XMLRPC"); #... diff --git a/src/modules/xmlrpc/doc/xmlrpc.xml b/src/modules/xmlrpc/doc/xmlrpc.xml index d17cd2c61..07b64db41 100644 --- a/src/modules/xmlrpc/doc/xmlrpc.xml +++ b/src/modules/xmlrpc/doc/xmlrpc.xml @@ -684,7 +684,7 @@ Content-Length: 276 (avoid trying to open tcp connection to xmlrpc clients that closed it). Alternatively ending the XMLRPC route with return -1, exit -1 or drop -1 can also be used, but note that this will not work for - async rpcs (it will close the connection immeidately and not on the + async rpcs (it will close the connection immediately and not on the async response). diff --git a/src/modules/xmlrpc/doc/xmlrpc_admin.xml b/src/modules/xmlrpc/doc/xmlrpc_admin.xml index 381a1feff..a61d63e6d 100644 --- a/src/modules/xmlrpc/doc/xmlrpc_admin.xml +++ b/src/modules/xmlrpc/doc/xmlrpc_admin.xml @@ -60,7 +60,7 @@ modparam("xmlrpc", "route", "route_for_xmlrpcs")
<varname>autoconversion</varname> (string) - Enable or disable automatic parameter type conversion globally, + Enable or disable automatic parameter type conversion globally, for all the methods parameters. If on, a type mismatch in a method parameter will not cause a fault if it is possible to automatically @@ -192,6 +192,45 @@ modparam("xmlrpc", "url_match", "^/RPC2")
+
+ <varname>event_callback</varname> (string) + + The name of the function in the kemi configuration file (embedded + scripting language such as Lua, Python, ...) to be executed instead + of route blocks defined by route parameter for xmlrpc request. + + + This route will be called only for HTTP messages whose method is + either GET or POST. The message visible inside the route + will be a HTTP request converted to SIP (the uri will be fixed and + a fake via will be added). + + + The route should perform additional security checks to + ensure the client is authorized to execute management/RPC functions + and then it should call the dispatch_rpc(). + + + Set <varname>event_callback</varname> parameter + +... +modparam("xmlrpc", "event_callback", "ksr_xmlrpc_event") +... +-- event callback function implemented in Lua +function ksr_xmlrpc_event(evname) + KSR.info("===== xmlrpc triggered event: " .. evname .. "\n"); + local rpc_method = KSR.pv.get("$rm") or "" + if ((rpc_method == "POST" or rpc_method == "GET")) then + if (KSR.xmlrpc.dispatch_rpc() < 0) then + KSR.err("error while executing xmlrpc event") + end + end + return 1; +end +... + + +
diff --git a/src/modules/xmlrpc/http.c b/src/modules/xmlrpc/http.c index fb807ca0a..04e1cd06e 100644 --- a/src/modules/xmlrpc/http.c +++ b/src/modules/xmlrpc/http.c @@ -172,7 +172,7 @@ int create_via(sip_msg_t* msg, char* s1, char* s2) hp.port = &port; init_dst_from_rcv(&dst, &msg->rcv); - via = via_builder(&via_len, &dst, 0, 0, &hp); + via = via_builder(&via_len, NULL, &dst, 0, 0, &hp); if (!via) { ERR("Unable to build Via header field\n"); return -1; diff --git a/src/modules/xmlrpc/xmlrpc.c b/src/modules/xmlrpc/xmlrpc.c index 7b0066d98..9521af238 100644 --- a/src/modules/xmlrpc/xmlrpc.c +++ b/src/modules/xmlrpc/xmlrpc.c @@ -416,14 +416,15 @@ static regex_t xmlrpc_url_match_regexp; static char* xmlrpc_url_skip = NULL; static regex_t xmlrpc_url_skip_regexp; +static str xmlrpc_event_callback = STR_NULL; /* * Exported functions */ static cmd_export_t cmds[] = { - {"dispatch_rpc", w_dispatch_rpc, 0, 0, REQUEST_ROUTE}, - {"xmlrpc_reply", w_xmlrpc_reply, 2, fixup_xmlrpc_reply, REQUEST_ROUTE}, - {0, 0, 0, 0, 0} + {"dispatch_rpc", w_dispatch_rpc, 0, 0, 0, REQUEST_ROUTE}, + {"xmlrpc_reply", w_xmlrpc_reply, 2, fixup_xmlrpc_reply, 0, REQUEST_ROUTE}, + {0, 0, 0, 0, 0, 0} }; @@ -438,20 +439,22 @@ static param_export_t params[] = { {"mode", PARAM_INT, &xmlrpc_mode}, {"url_match", PARAM_STRING, &xmlrpc_url_match}, {"url_skip", PARAM_STRING, &xmlrpc_url_skip}, + {"event_callback", PARAM_STR, &xmlrpc_event_callback}, {0, 0, 0} }; struct module_exports exports = { - "xmlrpc", - cmds, /* Exported commands */ - 0, /* Exported RPC methods */ - params, /* Exported parameters */ - mod_init, /* module initialization function */ - 0, /* response function*/ - 0, /* destroy function */ - 0, /* oncancel function */ - 0 /* per-child init function */ + "xmlrpc", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + 0, /* pv exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + 0, /* per-child init function */ + 0 /* module destroy function */ }; /* XML-RPC reply helper functions */ @@ -2239,7 +2242,7 @@ static char* http_xmlrpc2sip(sip_msg_t* msg, int* new_msg_len) hp.host = &ip; hp.port = &port; init_dst_from_rcv(&dst, &msg->rcv); - via = via_builder(&via_len, &dst, 0, 0, &hp); + via = via_builder(&via_len, NULL, &dst, 0, 0, &hp); if (via == 0) { DEBUG("failed to build via\n"); return 0; @@ -2293,7 +2296,11 @@ static int em_receive_request(sip_msg_t* orig_msg, { int ret; sip_msg_t tmp_msg, *msg; + int backup_rt; struct run_act_ctx ra_ctx; + str evrtname = str_init("xmlrpc:request"); + backup_rt = get_route_type(); + sr_kemi_eng_t *keng = NULL; ret=0; if (new_buf && new_len) { @@ -2327,10 +2334,22 @@ static int em_receive_request(sip_msg_t* orig_msg, } /* exec routing script */ init_run_actions_ctx(&ra_ctx); - if (run_actions(&ra_ctx, main_rt.rlist[xmlrpc_route_no], msg) < 0) { - ret=-1; - DBG("xmlrpc: error while trying script\n"); - goto end; + if(xmlrpc_route_no>=0) { + if (run_actions(&ra_ctx, main_rt.rlist[xmlrpc_route_no], msg) < 0) { + ret=-1; + DBG("xmlrpc: error while trying script\n"); + goto end; + } + }else{ + keng = sr_kemi_eng_get(); + if(keng!=NULL) { + if(sr_kemi_route(keng, msg, EVENT_ROUTE, + &xmlrpc_event_callback, &evrtname)<0) { + LM_ERR("error running event route kemi callback\n"); + } + } else { + LM_ERR("no event route or kemi callback found for execution\n"); + } } end: exec_post_script_cb(msg, REQUEST_CB_TYPE); /* needed for example if tm is used */ @@ -2338,6 +2357,7 @@ end: if (msg != orig_msg) { /* avoid double free (freed from receive_msg too) */ free_sip_msg(msg); } + set_route_type(backup_rt); return ret; error: return -1; @@ -2582,22 +2602,31 @@ static int mod_init(void) { struct nonsip_hook nsh; int route_no; + sr_kemi_eng_t *keng = NULL; /* try to fix the xmlrpc route */ - if (xmlrpc_route){ - route_no=route_get(&main_rt, xmlrpc_route); - if (route_no==-1){ - ERR("xmlrpc: failed to fix route \"%s\": route_get() failed\n", - xmlrpc_route); + if(xmlrpc_event_callback.s!=NULL && xmlrpc_event_callback.len>0) { + keng = sr_kemi_eng_get(); + if(keng==NULL) { + LM_ERR("failed to find kemi engine\n"); return -1; } - if (main_rt.rlist[route_no]==0){ - WARN("xmlrpc: xmlrpc route \"%s\" is empty / doesn't exist\n", - xmlrpc_route); + xmlrpc_route_no=-1; + } else { + if (xmlrpc_route) { + route_no=route_get(&main_rt, xmlrpc_route); + if (route_no==-1) { + ERR("xmlrpc: failed to fix route \"%s\": route_get() failed\n", + xmlrpc_route); + return -1; + } + if (main_rt.rlist[route_no]==0) { + WARN("xmlrpc: xmlrpc route \"%s\" is empty / doesn't exist\n", + xmlrpc_route); + } + xmlrpc_route_no=route_no; } - xmlrpc_route_no=route_no; } - /* bind the SL API */ if (sl_load_api(&slb)!=0) { LM_ERR("cannot bind to SL API\n"); diff --git a/src/modules/xmpp/Makefile b/src/modules/xmpp/Makefile index cb611fe42..cebef6526 100644 --- a/src/modules/xmpp/Makefile +++ b/src/modules/xmpp/Makefile @@ -14,6 +14,4 @@ LIBS= DEFS += -I$(LOCALBASE)/include LIBS = -L$(LOCALBASE)/lib -lexpat -DEFS+=-DKAMAILIO_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/xmpp/README b/src/modules/xmpp/README index a42a56a1e..dd762ec17 100644 --- a/src/modules/xmpp/README +++ b/src/modules/xmpp/README @@ -138,7 +138,7 @@ Chapter 1. Admin Guide In the XMPP stand-alone server mode, the XMPP module is a minimal XMPP/Jabber server. In this mode, another Jabber server is not needed. - The gateway will connect to other XMPP servers basaed on the JID domain + The gateway will connect to other XMPP servers based on the JID domain and by using the standardized XMPP S2S protocol. If you want to change to server-mode, you have to change the "backend" @@ -162,7 +162,7 @@ Chapter 1. Admin Guide 'delim' is a character that can be set via 'domain_separator' parameter. - If 'gwmap' parameter is used, then the addresses are not enconding the + If 'gwmap' parameter is used, then the addresses are not encoding the domains in the username part. They are going to be straight 'username@domain' always. diff --git a/src/modules/xmpp/doc/xmpp_admin.xml b/src/modules/xmpp/doc/xmpp_admin.xml index 52c89f074..1ad36406a 100644 --- a/src/modules/xmpp/doc/xmpp_admin.xml +++ b/src/modules/xmpp/doc/xmpp_admin.xml @@ -108,7 +108,7 @@ In the XMPP stand-alone server mode, the XMPP module is a minimal XMPP/Jabber server. In this mode, another Jabber server is not needed. The gateway will connect to other - XMPP servers basaed on the JID domain and by using the standardized XMPP S2S protocol. + XMPP servers based on the JID domain and by using the standardized XMPP S2S protocol. If you want to change to server-mode, you have to change the "backend" parameter, @@ -143,7 +143,7 @@ 'delim' is a character that can be set via 'domain_separator' parameter. - If 'gwmap' parameter is used, then the addresses are not enconding the domains + If 'gwmap' parameter is used, then the addresses are not encoding the domains in the username part. They are going to be straight 'username@domain' always.
diff --git a/src/modules/xmpp/xmpp.c b/src/modules/xmpp/xmpp.c index 3c5816d22..d0b686947 100644 --- a/src/modules/xmpp/xmpp.c +++ b/src/modules/xmpp/xmpp.c @@ -22,14 +22,14 @@ * */ -/*! \defgroup xmpp XMPP: The SIP/Simple - XMPP integration core - * This module implements gateway functionality between SIP and XMPP. +/*! \defgroup xmpp XMPP: The SIP/Simple - XMPP integration core + * This module implements gateway functionality between SIP and XMPP. * * This module in parts replace the older \ref jabber module. */ /*! \file - * \brief Kamailio XMPP module :: + * \brief Kamailio XMPP module :: * \ingroup xmpp * * - \ref XMPProuting @@ -57,7 +57,7 @@ * Where '*' is the domain_separator, and gateway_domain and * xmpp_domain are defined below. * - * + * * 2-way dialback sequence with xmppd2: \verbatim * @@ -160,12 +160,6 @@ param_t *_xmpp_gwmap_list = NULL; #define DEFAULT_COMPONENT_PORT 5347 #define DEFAULT_SERVER_PORT 5269 -static proc_export_t procs[] = { - {"XMPP receiver", 0, 0, xmpp_process, 1 }, - {0,0,0,0,0} -}; - - /* * Exported functions */ @@ -195,18 +189,16 @@ static param_export_t params[] = { * Module description */ struct module_exports exports = { - "xmpp", /* Module name */ + "xmpp", /* module name */ DEFAULT_DLFLAGS, /* dlopen flags */ - cmds, /* Exported functions */ - params, /* Exported parameters */ - 0, /* exported statistics */ - 0, /* exported MI functions */ + cmds, /* exported functions */ + params, /* exported parameters */ + 0, /* exported rpc functions */ 0, /* exported pseudo-variables */ - procs, /* extra processes */ - mod_init, /* Initialization function */ - 0, /* Response function */ - 0, /* Destroy function */ - child_init, /* Child init function */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* child init function */ + 0 /* module destroy function */ }; /* @@ -218,7 +210,7 @@ static int mod_init(void) { LM_ERR("failed to load tm API\n"); return -1; } - + if (strcmp(backend, "component") && strcmp(backend, "server")) { LM_ERR("invalid backend '%s'\n", backend); return -1; diff --git a/src/modules/xprint/Makefile b/src/modules/xprint/Makefile index bd9fd7ee2..562404655 100644 --- a/src/modules/xprint/Makefile +++ b/src/modules/xprint/Makefile @@ -1,7 +1,7 @@ # # xprint module makefile # -# +# # WARNING: do not run this directly, it should be run by the master Makefile include ../../Makefile.defs @@ -9,6 +9,4 @@ auto_gen= NAME=xprint.so LIBS= -DEFS+=-DSER_MOD_INTERFACE - include ../../Makefile.modules diff --git a/src/modules/xprint/README b/src/modules/xprint/README index 4b0b4ee8c..d86509ab4 100644 --- a/src/modules/xprint/README +++ b/src/modules/xprint/README @@ -94,7 +94,7 @@ Chapter 1. Admin Guide * %ft : 'From' tag * %Hn : host's hostname (if system hostname is FQDN, part before first .) - * %Hd : host's domain (if system hosntame is FQDN, part behind first + * %Hd : host's domain (if system hostname is FQDN, part behind first .) * %Hf : host's FQDN hostname * %Hi : host's IP address @@ -133,7 +133,7 @@ Chapter 1. Admin Guide headers of that type are printed. The module should identify most of compact header names (the ones recognized by ser which should be all at this moment), if not, the - compact form has to be specified explicitely. It is recommended to + compact form has to be specified explicitly. It is recommended to use dedicated specifiers for headers (e.g., %ua for user agent header), if they are available -- they are faster. * % : print the value of AVP optionally %indexed by the [N] @@ -147,8 +147,8 @@ Chapter 1. Admin Guide extend select framework calls). * %| or %(space) : end of %@select.framework identifier. If you need to concatenate select framework call and another non-whitespace - literal, you need to explicitelly set the end of the select - framework identifier. + literal, you need to explicitly set the end of the select framework + identifier. E.g. %@ruri.user%|@%@ruri.host converts all featured request uri into user@host form only. @@ -174,7 +174,7 @@ modparam("xprint", "buf_size", 8192) 4.1. xplog(level, format) - Print a formated message using LOG function. + Print a formatted message using LOG function. Meaning of the parameters is as follows: * level - The level that will be used in LOG function. It can be: diff --git a/src/modules/xprint/doc/functions.xml b/src/modules/xprint/doc/functions.xml index fdff85399..284dc7094 100644 --- a/src/modules/xprint/doc/functions.xml +++ b/src/modules/xprint/doc/functions.xml @@ -13,7 +13,7 @@ xplog(level, format) - Print a formated message using LOG function. + Print a formatted message using LOG function. Meaning of the parameters is as follows: diff --git a/src/modules/xprint/doc/xprint.xml b/src/modules/xprint/doc/xprint.xml index d3e25fdde..d19609974 100644 --- a/src/modules/xprint/doc/xprint.xml +++ b/src/modules/xprint/doc/xprint.xml @@ -107,7 +107,7 @@ - %Hd : host's domain (if system hosntame is FQDN, part behind first .) + %Hd : host's domain (if system hostname is FQDN, part behind first .) @@ -257,7 +257,7 @@ The module should identify most of compact header names (the ones recognized by ser which should be all at this moment), if not, the compact form has to be specified - explicitely. It is recommended to use dedicated specifiers + explicitly. It is recommended to use dedicated specifiers for headers (e.g., %ua for user agent header), if they are available -- they are faster. @@ -285,7 +285,7 @@ %| or %(space) : end of %@select.framework identifier. If you need to concatenate select framework call and - another non-whitespace literal, you need to explicitelly + another non-whitespace literal, you need to explicitly set the end of the select framework identifier. diff --git a/src/modules/xprint/xprint.c b/src/modules/xprint/xprint.c index 8af8f4b88..2547868cc 100644 --- a/src/modules/xprint/xprint.c +++ b/src/modules/xprint/xprint.c @@ -1,6 +1,4 @@ /** - * $Id$ - * * Copyright (C) 2001-2003 FhG Fokus * * This file is part of ser, a free SIP server. @@ -63,18 +61,18 @@ static int xpdbg_fixup(void** param, int param_no); static void destroy(void); static cmd_export_t cmds[]={ - {"xplog", xplog, 2, xplog_fixup, ANY_ROUTE}, - {"xpdbg", xpdbg, 1, xpdbg_fixup, ANY_ROUTE}, - {"xbind", (cmd_function)xl_bind, NO_SCRIPT, 0, 0}, - {"xprint", (cmd_function)xl_print_log, NO_SCRIPT, 0, 0}, - {"xparse", (cmd_function)xl_parse_format, NO_SCRIPT, 0, 0}, - {"shm_xparse", (cmd_function)xl_shm_parse_format, NO_SCRIPT, 0, 0}, - {"xparse2", (cmd_function)xl_parse_format2, NO_SCRIPT, 0, 0}, - {"shm_xparse2", (cmd_function)xl_shm_parse_format2, NO_SCRIPT, 0, 0}, - {"xfree", (cmd_function)xl_elog_free_all, NO_SCRIPT, 0, 0}, - {"shm_xfree", (cmd_function)xl_elog_shm_free_all, NO_SCRIPT, 0, 0}, - {"xnulstr", (cmd_function)xl_get_nulstr, NO_SCRIPT, 0, 0}, - {0,0,0,0,0} + {"xplog", xplog, 2, xplog_fixup, 0, ANY_ROUTE}, + {"xpdbg", xpdbg, 1, xpdbg_fixup, 0, ANY_ROUTE}, + {"xbind", (cmd_function)xl_bind, NO_SCRIPT, 0, 0, 0}, + {"xprint", (cmd_function)xl_print_log, NO_SCRIPT, 0, 0, 0}, + {"xparse", (cmd_function)xl_parse_format, NO_SCRIPT, 0, 0, 0}, + {"shm_xparse", (cmd_function)xl_shm_parse_format, NO_SCRIPT, 0, 0, 0}, + {"xparse2", (cmd_function)xl_parse_format2, NO_SCRIPT, 0, 0, 0}, + {"shm_xparse2", (cmd_function)xl_shm_parse_format2, NO_SCRIPT, 0, 0, 0}, + {"xfree", (cmd_function)xl_elog_free_all, NO_SCRIPT, 0, 0, 0}, + {"shm_xfree", (cmd_function)xl_elog_shm_free_all, NO_SCRIPT, 0, 0, 0}, + {"xnulstr", (cmd_function)xl_get_nulstr, NO_SCRIPT, 0, 0, 0}, + {0,0,0,0,0,0} }; @@ -86,16 +84,16 @@ static param_export_t params[]={ /** module exports */ struct module_exports exports= { - "xprint", - cmds, - 0, /* RPC methods */ - params, - - mod_init, /* module initialization function */ - (response_function) 0, - (destroy_function) destroy, - 0, - child_init /* per-child init function */ + "xprint", /* module name */ + DEFAULT_DLFLAGS, /* dlopen flags */ + cmds, /* cmd (cfg function) exports */ + params, /* param exports */ + 0, /* RPC method exports */ + 0, /* pv exports */ + 0, /* response handling function */ + mod_init, /* module init function */ + child_init, /* per-child init function */ + destroy /* module destroy function */ }; /** diff --git a/utils/kamctl/Makefile b/utils/kamctl/Makefile index 3804d70dc..9736cf289 100644 --- a/utils/kamctl/Makefile +++ b/utils/kamctl/Makefile @@ -264,7 +264,18 @@ install-modules: $(bin_prefix)/$(bin_dir) fi ;\ done ; \ fi - + # install Redis stuff + if [ "$(REDISON)" = "yes" ]; then \ + mkdir -p $(data_prefix)/$(data_dir)/db_redis/kamailio ; \ + for FILE in $(wildcard db_redis/kamailio/*) ; do \ + if [ -f $$FILE ] ; then \ + $(INSTALL_TOUCH) $$FILE \ + $(data_prefix)/$(data_dir)/db_redis/kamailio/`basename "$$FILE"` ; \ + $(INSTALL_CFG) $$FILE \ + $(data_prefix)/$(data_dir)/db_redis/kamailio/`basename "$$FILE"` ; \ + fi ;\ + done ; \ + fi $(cfg_prefix)/$(cfg_dir): mkdir -p $(cfg_prefix)/$(cfg_dir) diff --git a/utils/kamctl/db_berkeley/kamailio/presentity b/utils/kamctl/db_berkeley/kamailio/presentity index c3ffcf313..179b77b7c 100644 --- a/utils/kamctl/db_berkeley/kamailio/presentity +++ b/utils/kamctl/db_berkeley/kamailio/presentity @@ -1,5 +1,5 @@ METADATA_COLUMNS -id(int) username(str) domain(str) event(str) etag(str) expires(int) received_time(int) body(str) sender(str) priority(int) +id(int) username(str) domain(str) event(str) etag(str) expires(int) received_time(int) body(str) sender(str) priority(int) ruid(str) METADATA_KEY 1 2 3 METADATA_READONLY @@ -7,4 +7,4 @@ METADATA_READONLY METADATA_LOGFLAGS 0 METADATA_DEFAULTS -NIL|NIL|NIL|NIL|NIL|NIL|NIL|NIL|NIL|0 +NIL|NIL|NIL|NIL|NIL|NIL|NIL|NIL|NIL|0|NIL diff --git a/utils/kamctl/db_berkeley/kamailio/subscriber b/utils/kamctl/db_berkeley/kamailio/subscriber index 76fbed3c1..9289b6769 100644 --- a/utils/kamctl/db_berkeley/kamailio/subscriber +++ b/utils/kamctl/db_berkeley/kamailio/subscriber @@ -1,5 +1,5 @@ METADATA_COLUMNS -id(int) username(str) domain(str) password(str) ha1(str) ha1b(str) email_address(str) rpid(str) +id(int) username(str) domain(str) password(str) ha1(str) ha1b(str) METADATA_KEY 1 2 METADATA_READONLY @@ -7,4 +7,4 @@ METADATA_READONLY METADATA_LOGFLAGS 0 METADATA_DEFAULTS -NIL|''|''|''|''|''|NULL|NULL +NIL|''|''|''|''|'' diff --git a/utils/kamctl/db_berkeley/kamailio/version b/utils/kamctl/db_berkeley/kamailio/version index 98b9aeccc..df0b4a402 100644 --- a/utils/kamctl/db_berkeley/kamailio/version +++ b/utils/kamctl/db_berkeley/kamailio/version @@ -91,7 +91,7 @@ pdt|1 pl_pipes| pl_pipes|1 presentity| -presentity|4 +presentity|5 pua| pua|7 purplemap| diff --git a/utils/kamctl/db_redis/kamailio/acc b/utils/kamctl/db_redis/kamailio/acc new file mode 100644 index 000000000..d2be703da --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/acc @@ -0,0 +1,2 @@ +id/int,method/string,from_tag/string,to_tag/string,callid/string,sip_code/string,sip_reason/string,time/int, +5 diff --git a/utils/kamctl/db_redis/kamailio/acc_cdrs b/utils/kamctl/db_redis/kamailio/acc_cdrs new file mode 100644 index 000000000..a8a5ff5f1 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/acc_cdrs @@ -0,0 +1,2 @@ +id/int,start_time/int,end_time/int,duration/double, +2 diff --git a/utils/kamctl/db_redis/kamailio/active_watchers b/utils/kamctl/db_redis/kamailio/active_watchers new file mode 100644 index 000000000..d8f74fb4c --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/active_watchers @@ -0,0 +1,2 @@ +id/int,presentity_uri/string,watcher_username/string,watcher_domain/string,to_user/string,to_domain/string,event/string,event_id/string,to_tag/string,from_tag/string,callid/string,local_cseq/int,remote_cseq/int,contact/string,record_route/string,expires/int,status/int,reason/string,version/int,socket_info/string,local_contact/string,from_user/string,from_domain/string,updated/int,updated_winfo/int,flags/int,user_agent/string, +12 diff --git a/utils/kamctl/db_redis/kamailio/address b/utils/kamctl/db_redis/kamailio/address new file mode 100644 index 000000000..4de27658e --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/address @@ -0,0 +1,2 @@ +id/int,grp/int,ip_addr/string,mask/int,port/int,tag/string, +6 diff --git a/utils/kamctl/db_redis/kamailio/aliases b/utils/kamctl/db_redis/kamailio/aliases new file mode 100644 index 000000000..cacabc782 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/aliases @@ -0,0 +1,2 @@ +id/int,ruid/string,username/string,domain/string,contact/string,received/string,path/string,expires/int,q/double,callid/string,cseq/int,last_modified/int,flags/int,cflags/int,user_agent/string,socket/string,methods/int,instance/string,reg_id/int,server_id/int,connection_id/int,keepalive/int,partition/int, +8 diff --git a/utils/kamctl/db_redis/kamailio/carrier_name b/utils/kamctl/db_redis/kamailio/carrier_name new file mode 100644 index 000000000..e41d5d93d --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/carrier_name @@ -0,0 +1,2 @@ +id/int,carrier/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/carrierfailureroute b/utils/kamctl/db_redis/kamailio/carrierfailureroute new file mode 100644 index 000000000..331af9206 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/carrierfailureroute @@ -0,0 +1,2 @@ +id/int,carrier/int,domain/int,scan_prefix/string,host_name/string,reply_code/string,flags/int,mask/int,next_domain/int,description/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/carrierroute b/utils/kamctl/db_redis/kamailio/carrierroute new file mode 100644 index 000000000..f4b5f6b36 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/carrierroute @@ -0,0 +1,2 @@ +id/int,carrier/int,domain/int,scan_prefix/string,flags/int,mask/int,prob/double,strip/int,rewrite_host/string,rewrite_prefix/string,rewrite_suffix/string,description/string, +3 diff --git a/utils/kamctl/db_redis/kamailio/cpl b/utils/kamctl/db_redis/kamailio/cpl new file mode 100644 index 000000000..85067a7f5 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/cpl @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,cpl_xml/string,cpl_bin/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/dbaliases b/utils/kamctl/db_redis/kamailio/dbaliases new file mode 100644 index 000000000..86f4d33a3 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dbaliases @@ -0,0 +1,2 @@ +id/int,alias_username/string,alias_domain/string,username/string,domain/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/dialog b/utils/kamctl/db_redis/kamailio/dialog new file mode 100644 index 000000000..38c658626 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dialog @@ -0,0 +1,2 @@ +id/int,hash_entry/int,hash_id/int,callid/string,from_uri/string,from_tag/string,to_uri/string,to_tag/string,caller_cseq/string,callee_cseq/string,caller_route_set/string,callee_route_set/string,caller_contact/string,callee_contact/string,caller_sock/string,callee_sock/string,state/int,start_time/int,timeout/int,sflags/int,iflags/int,toroute_name/string,req_uri/string,xdata/string, +7 diff --git a/utils/kamctl/db_redis/kamailio/dialog_vars b/utils/kamctl/db_redis/kamailio/dialog_vars new file mode 100644 index 000000000..0e9f27d54 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dialog_vars @@ -0,0 +1,2 @@ +id/int,hash_entry/int,hash_id/int,dialog_key/string,dialog_value/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/dialplan b/utils/kamctl/db_redis/kamailio/dialplan new file mode 100644 index 000000000..3c7b28c7a --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dialplan @@ -0,0 +1,2 @@ +id/int,dpid/int,pr/int,match_op/int,match_exp/string,match_len/int,subst_exp/string,repl_exp/string,attrs/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/dispatcher b/utils/kamctl/db_redis/kamailio/dispatcher new file mode 100644 index 000000000..c16745b56 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dispatcher @@ -0,0 +1,2 @@ +id/int,setid/int,destination/string,flags/int,priority/int,attrs/string,description/string, +4 diff --git a/utils/kamctl/db_redis/kamailio/domain b/utils/kamctl/db_redis/kamailio/domain new file mode 100644 index 000000000..ac77d71a5 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/domain @@ -0,0 +1,2 @@ +id/int,domain/string,did/string,last_modified/int, +2 diff --git a/utils/kamctl/db_redis/kamailio/domain_attrs b/utils/kamctl/db_redis/kamailio/domain_attrs new file mode 100644 index 000000000..5968bc1b1 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/domain_attrs @@ -0,0 +1,2 @@ +id/int,did/string,name/string,type/int,value/string,last_modified/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/domain_name b/utils/kamctl/db_redis/kamailio/domain_name new file mode 100644 index 000000000..dafbc3db0 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/domain_name @@ -0,0 +1,2 @@ +id/int,domain/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/domainpolicy b/utils/kamctl/db_redis/kamailio/domainpolicy new file mode 100644 index 000000000..d51a82f0b --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/domainpolicy @@ -0,0 +1,2 @@ +id/int,rule/string,type/string,att/string,val/string,description/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/dr_gateways b/utils/kamctl/db_redis/kamailio/dr_gateways new file mode 100644 index 000000000..85e073ff5 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dr_gateways @@ -0,0 +1,2 @@ +gwid/int,type/int,address/string,strip/int,pri_prefix/string,attrs/string,description/string, +3 diff --git a/utils/kamctl/db_redis/kamailio/dr_groups b/utils/kamctl/db_redis/kamailio/dr_groups new file mode 100644 index 000000000..dca09ae1a --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dr_groups @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,groupid/int,description/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/dr_gw_lists b/utils/kamctl/db_redis/kamailio/dr_gw_lists new file mode 100644 index 000000000..4694b8111 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dr_gw_lists @@ -0,0 +1,2 @@ +id/int,gwlist/string,description/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/dr_rules b/utils/kamctl/db_redis/kamailio/dr_rules new file mode 100644 index 000000000..99774e0cb --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/dr_rules @@ -0,0 +1,2 @@ +ruleid/int,groupid/string,prefix/string,timerec/string,priority/int,routeid/string,gwlist/string,description/string, +3 diff --git a/utils/kamctl/db_redis/kamailio/globalblacklist b/utils/kamctl/db_redis/kamailio/globalblacklist new file mode 100644 index 000000000..07084c7e3 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/globalblacklist @@ -0,0 +1,2 @@ +id/int,prefix/string,whitelist/int,description/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/grp b/utils/kamctl/db_redis/kamailio/grp new file mode 100644 index 000000000..c8e808d45 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/grp @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,grp/string,last_modified/int, +2 diff --git a/utils/kamctl/db_redis/kamailio/htable b/utils/kamctl/db_redis/kamailio/htable new file mode 100644 index 000000000..c01ec16f7 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/htable @@ -0,0 +1,2 @@ +id/int,key_name/string,key_type/int,value_type/int,key_value/string,expires/int, +2 diff --git a/utils/kamctl/db_redis/kamailio/imc_members b/utils/kamctl/db_redis/kamailio/imc_members new file mode 100644 index 000000000..b2675a79f --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/imc_members @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,room/string,flag/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/imc_rooms b/utils/kamctl/db_redis/kamailio/imc_rooms new file mode 100644 index 000000000..eefb6b584 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/imc_rooms @@ -0,0 +1,2 @@ +id/int,name/string,domain/string,flag/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/lcr_gw b/utils/kamctl/db_redis/kamailio/lcr_gw new file mode 100644 index 000000000..2a4c84cc5 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/lcr_gw @@ -0,0 +1,2 @@ +id/int,lcr_id/int,gw_name/string,ip_addr/string,hostname/string,port/int,params/string,uri_scheme/int,transport/int,strip/int,prefix/string,tag/string,flags/int,defunct/int, +3 diff --git a/utils/kamctl/db_redis/kamailio/lcr_rule b/utils/kamctl/db_redis/kamailio/lcr_rule new file mode 100644 index 000000000..b34558ce8 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/lcr_rule @@ -0,0 +1,2 @@ +id/int,lcr_id/int,prefix/string,from_uri/string,request_uri/string,mt_tvalue/string,stopper/int,enabled/int, +3 diff --git a/utils/kamctl/db_redis/kamailio/lcr_rule_target b/utils/kamctl/db_redis/kamailio/lcr_rule_target new file mode 100644 index 000000000..a8efdaf83 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/lcr_rule_target @@ -0,0 +1,2 @@ +id/int,lcr_id/int,rule_id/int,gw_id/int,priority/int,weight/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/location b/utils/kamctl/db_redis/kamailio/location new file mode 100644 index 000000000..7c0ea2ab8 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/location @@ -0,0 +1,2 @@ +id/int,ruid/string,username/string,domain/string,contact/string,received/string,path/string,expires/time,q/double,callid/string,cseq/int,last_modified/time,flags/int,cflags/int,user_agent/string,socket/string,methods/int,instance/string,reg_id/int,server_id/int,connection_id/int,keepalive/int,partition/int, +9 diff --git a/utils/kamctl/db_redis/kamailio/location_attrs b/utils/kamctl/db_redis/kamailio/location_attrs new file mode 100644 index 000000000..baef28adc --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/location_attrs @@ -0,0 +1,2 @@ +id/int,ruid/string,username/string,domain/string,aname/string,atype/int,avalue/string,last_modified/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/matrix b/utils/kamctl/db_redis/kamailio/matrix new file mode 100644 index 000000000..ddf335d53 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/matrix @@ -0,0 +1,2 @@ +first/int,second/int,res/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/missed_calls b/utils/kamctl/db_redis/kamailio/missed_calls new file mode 100644 index 000000000..a0b64d0a6 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/missed_calls @@ -0,0 +1,2 @@ +id/int,method/string,from_tag/string,to_tag/string,callid/string,sip_code/string,sip_reason/string,time/int, +4 diff --git a/utils/kamctl/db_redis/kamailio/mohqcalls b/utils/kamctl/db_redis/kamailio/mohqcalls new file mode 100644 index 000000000..bb0035a9d --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/mohqcalls @@ -0,0 +1,2 @@ +id/int,mohq_id/int,call_id/string,call_status/int,call_from/string,call_contact/string,call_time/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/mohqueues b/utils/kamctl/db_redis/kamailio/mohqueues new file mode 100644 index 000000000..a61d6415a --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/mohqueues @@ -0,0 +1,2 @@ +id/int,name/string,uri/string,mohdir/string,mohfile/string,debug/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/mtree b/utils/kamctl/db_redis/kamailio/mtree new file mode 100644 index 000000000..2eb6d5cb2 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/mtree @@ -0,0 +1,2 @@ +id/int,tprefix/string,tvalue/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/mtrees b/utils/kamctl/db_redis/kamailio/mtrees new file mode 100644 index 000000000..14b945ef4 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/mtrees @@ -0,0 +1,2 @@ +id/int,tname/string,tprefix/string,tvalue/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/pdt b/utils/kamctl/db_redis/kamailio/pdt new file mode 100644 index 000000000..03b06d547 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/pdt @@ -0,0 +1,2 @@ +id/int,sdomain/string,prefix/string,domain/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/pl_pipes b/utils/kamctl/db_redis/kamailio/pl_pipes new file mode 100644 index 000000000..344bf097f --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/pl_pipes @@ -0,0 +1,2 @@ +id/int,pipeid/string,algorithm/string,plimit/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/presentity b/utils/kamctl/db_redis/kamailio/presentity new file mode 100644 index 000000000..214539497 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/presentity @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,event/string,etag/string,expires/int,received_time/int,body/string,sender/string,priority/int,ruid/string, +5 diff --git a/utils/kamctl/db_redis/kamailio/pua b/utils/kamctl/db_redis/kamailio/pua new file mode 100644 index 000000000..21e710bf9 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/pua @@ -0,0 +1,2 @@ +id/int,pres_uri/string,pres_id/string,event/int,expires/int,desired_expires/int,flag/int,etag/string,tuple_id/string,watcher_uri/string,call_id/string,to_tag/string,from_tag/string,cseq/int,record_route/string,contact/string,remote_contact/string,version/int,extra_headers/string, +7 diff --git a/utils/kamctl/db_redis/kamailio/purplemap b/utils/kamctl/db_redis/kamailio/purplemap new file mode 100644 index 000000000..77b4efaee --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/purplemap @@ -0,0 +1,2 @@ +id/int,sip_user/string,ext_user/string,ext_prot/string,ext_pass/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/re_grp b/utils/kamctl/db_redis/kamailio/re_grp new file mode 100644 index 000000000..ecd19d538 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/re_grp @@ -0,0 +1,2 @@ +id/int,reg_exp/string,group_id/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/rls_presentity b/utils/kamctl/db_redis/kamailio/rls_presentity new file mode 100644 index 000000000..d70ac30df --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/rls_presentity @@ -0,0 +1,2 @@ +id/int,rlsubs_did/string,resource_uri/string,content_type/string,presence_state/string,expires/int,updated/int,auth_state/int,reason/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/rls_watchers b/utils/kamctl/db_redis/kamailio/rls_watchers new file mode 100644 index 000000000..38e1357d4 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/rls_watchers @@ -0,0 +1,2 @@ +id/int,presentity_uri/string,to_user/string,to_domain/string,watcher_username/string,watcher_domain/string,event/string,event_id/string,to_tag/string,from_tag/string,callid/string,local_cseq/int,remote_cseq/int,contact/string,record_route/string,expires/int,status/int,reason/string,version/int,socket_info/string,local_contact/string,from_user/string,from_domain/string,updated/int, +3 diff --git a/utils/kamctl/db_redis/kamailio/rtpengine b/utils/kamctl/db_redis/kamailio/rtpengine new file mode 100644 index 000000000..b3ebac8c2 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/rtpengine @@ -0,0 +1,2 @@ +id/int,setid/int,url/string,weight/int,disabled/int,stamp/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/rtpproxy b/utils/kamctl/db_redis/kamailio/rtpproxy new file mode 100644 index 000000000..a0e5f7ddf --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/rtpproxy @@ -0,0 +1,2 @@ +id/int,setid/string,url/string,flags/int,weight/int,description/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/sca_subscriptions b/utils/kamctl/db_redis/kamailio/sca_subscriptions new file mode 100644 index 000000000..827693d04 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/sca_subscriptions @@ -0,0 +1,2 @@ +id/int,subscriber/string,aor/string,event/int,expires/int,state/int,app_idx/int,call_id/string,from_tag/string,to_tag/string,record_route/string,notify_cseq/int,subscribe_cseq/int,server_id/int, +2 diff --git a/utils/kamctl/db_redis/kamailio/silo b/utils/kamctl/db_redis/kamailio/silo new file mode 100644 index 000000000..e5253cf07 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/silo @@ -0,0 +1,2 @@ +id/int,src_addr/string,dst_addr/string,username/string,domain/string,inc_time/int,exp_time/int,snd_time/int,ctype/string,body/string,extra_hdrs/string,callid/string,status/int, +8 diff --git a/utils/kamctl/db_redis/kamailio/sip_trace b/utils/kamctl/db_redis/kamailio/sip_trace new file mode 100644 index 000000000..34bc7db09 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/sip_trace @@ -0,0 +1,2 @@ +id/int,time_stamp/int,time_us/int,callid/string,traced_user/string,msg/string,method/string,status/string,fromip/string,toip/string,fromtag/string,totag/string,direction/string, +4 diff --git a/utils/kamctl/db_redis/kamailio/speed_dial b/utils/kamctl/db_redis/kamailio/speed_dial new file mode 100644 index 000000000..b4be4bb18 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/speed_dial @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,sd_username/string,sd_domain/string,new_uri/string,fname/string,lname/string,description/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/subscriber b/utils/kamctl/db_redis/kamailio/subscriber new file mode 100644 index 000000000..28fb69883 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/subscriber @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,password/string,ha1/string,ha1b/string, +7 diff --git a/utils/kamctl/db_redis/kamailio/topos_d b/utils/kamctl/db_redis/kamailio/topos_d new file mode 100644 index 000000000..e6463736a --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/topos_d @@ -0,0 +1,2 @@ +id/int,rectime/int,s_method/string,s_cseq/string,a_callid/string,a_uuid/string,b_uuid/string,a_contact/string,b_contact/string,as_contact/string,bs_contact/string,a_tag/string,b_tag/string,a_rr/string,b_rr/string,s_rr/string,iflags/int,a_uri/string,b_uri/string,r_uri/string,a_srcaddr/string,b_srcaddr/string,a_socket/string,b_socket/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/topos_t b/utils/kamctl/db_redis/kamailio/topos_t new file mode 100644 index 000000000..849faece0 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/topos_t @@ -0,0 +1,2 @@ +id/int,rectime/int,s_method/string,s_cseq/string,a_callid/string,a_uuid/string,b_uuid/string,direction/int,x_via/string,x_vbranch/string,x_rr/string,y_rr/string,s_rr/string,x_uri/string,a_contact/string,b_contact/string,as_contact/string,bs_contact/string,x_tag/string,a_tag/string,b_tag/string,a_srcaddr/string,b_srcaddr/string,a_socket/string,b_socket/string, +1 diff --git a/utils/kamctl/db_redis/kamailio/trusted b/utils/kamctl/db_redis/kamailio/trusted new file mode 100644 index 000000000..cc920270f --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/trusted @@ -0,0 +1,2 @@ +id/int,src_ip/string,proto/string,from_pattern/string,ruri_pattern/string,tag/string,priority/int, +6 diff --git a/utils/kamctl/db_redis/kamailio/uacreg b/utils/kamctl/db_redis/kamailio/uacreg new file mode 100644 index 000000000..383fa88c4 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uacreg @@ -0,0 +1,2 @@ +id/int,l_uuid/string,l_username/string,l_domain/string,r_username/string,r_domain/string,realm/string,auth_username/string,auth_password/string,auth_ha1/string,auth_proxy/string,expires/int,flags/int,reg_delay/int, +3 diff --git a/utils/kamctl/db_redis/kamailio/uid_credentials b/utils/kamctl/db_redis/kamailio/uid_credentials new file mode 100644 index 000000000..3411b84b5 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_credentials @@ -0,0 +1,2 @@ +id/int,auth_username/string,did/string,realm/string,password/string,flags/int,ha1/string,ha1b/string,uid/string, +7 diff --git a/utils/kamctl/db_redis/kamailio/uid_domain b/utils/kamctl/db_redis/kamailio/uid_domain new file mode 100644 index 000000000..2178839a8 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_domain @@ -0,0 +1,2 @@ +id/int,did/string,domain/string,flags/int, +2 diff --git a/utils/kamctl/db_redis/kamailio/uid_domain_attrs b/utils/kamctl/db_redis/kamailio/uid_domain_attrs new file mode 100644 index 000000000..b41295611 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_domain_attrs @@ -0,0 +1,2 @@ +id/int,did/string,name/string,type/int,value/string,flags/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/uid_global_attrs b/utils/kamctl/db_redis/kamailio/uid_global_attrs new file mode 100644 index 000000000..14c8b77cd --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_global_attrs @@ -0,0 +1,2 @@ +id/int,name/string,type/int,value/string,flags/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/uid_uri b/utils/kamctl/db_redis/kamailio/uid_uri new file mode 100644 index 000000000..4d0a85838 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_uri @@ -0,0 +1,2 @@ +id/int,uid/string,did/string,username/string,flags/int,scheme/string, +3 diff --git a/utils/kamctl/db_redis/kamailio/uid_uri_attrs b/utils/kamctl/db_redis/kamailio/uid_uri_attrs new file mode 100644 index 000000000..135cca044 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_uri_attrs @@ -0,0 +1,2 @@ +id/int,username/string,did/string,name/string,value/string,type/int,flags/int,scheme/string, +2 diff --git a/utils/kamctl/db_redis/kamailio/uid_user_attrs b/utils/kamctl/db_redis/kamailio/uid_user_attrs new file mode 100644 index 000000000..1e0851a9a --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uid_user_attrs @@ -0,0 +1,2 @@ +id/int,uid/string,name/string,value/string,type/int,flags/int, +3 diff --git a/utils/kamctl/db_redis/kamailio/uri b/utils/kamctl/db_redis/kamailio/uri new file mode 100644 index 000000000..130308b87 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/uri @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,uri_user/string,last_modified/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/userblacklist b/utils/kamctl/db_redis/kamailio/userblacklist new file mode 100644 index 000000000..b3986d5d0 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/userblacklist @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,prefix/string,whitelist/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/usr_preferences b/utils/kamctl/db_redis/kamailio/usr_preferences new file mode 100644 index 000000000..a6f1f94c9 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/usr_preferences @@ -0,0 +1,2 @@ +id/int,uuid/string,username/string,domain/string,attribute/string,type/int,value/string,last_modified/int, +2 diff --git a/utils/kamctl/db_redis/kamailio/version b/utils/kamctl/db_redis/kamailio/version new file mode 100644 index 000000000..b9353c067 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/version @@ -0,0 +1,2 @@ +table_name/string,table_version/int, +1 diff --git a/utils/kamctl/db_redis/kamailio/watchers b/utils/kamctl/db_redis/kamailio/watchers new file mode 100644 index 000000000..707ee0574 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/watchers @@ -0,0 +1,2 @@ +id/int,presentity_uri/string,watcher_username/string,watcher_domain/string,event/string,status/int,reason/string,inserted_time/int, +3 diff --git a/utils/kamctl/db_redis/kamailio/xcap b/utils/kamctl/db_redis/kamailio/xcap new file mode 100644 index 000000000..7f7cd3252 --- /dev/null +++ b/utils/kamctl/db_redis/kamailio/xcap @@ -0,0 +1,2 @@ +id/int,username/string,domain/string,doc/string,doc_type/int,etag/string,source/int,doc_uri/string,port/int, +4 diff --git a/utils/kamctl/db_sqlite/auth_db-create.sql b/utils/kamctl/db_sqlite/auth_db-create.sql index 827d8659f..85fb92d1e 100644 --- a/utils/kamctl/db_sqlite/auth_db-create.sql +++ b/utils/kamctl/db_sqlite/auth_db-create.sql @@ -5,8 +5,6 @@ CREATE TABLE subscriber ( password VARCHAR(64) DEFAULT '' NOT NULL, ha1 VARCHAR(128) DEFAULT '' NOT NULL, ha1b VARCHAR(128) DEFAULT '' NOT NULL, - email_address VARCHAR(128) DEFAULT NULL, - rpid VARCHAR(128) DEFAULT NULL, CONSTRAINT subscriber_account_idx UNIQUE (username, domain) ); diff --git a/utils/kamctl/db_sqlite/presence-create.sql b/utils/kamctl/db_sqlite/presence-create.sql index 8ddc8da4d..97cac9d6d 100644 --- a/utils/kamctl/db_sqlite/presence-create.sql +++ b/utils/kamctl/db_sqlite/presence-create.sql @@ -3,19 +3,21 @@ CREATE TABLE presentity ( username VARCHAR(64) NOT NULL, domain VARCHAR(64) NOT NULL, event VARCHAR(64) NOT NULL, - etag VARCHAR(64) NOT NULL, + etag VARCHAR(128) NOT NULL, expires INTEGER NOT NULL, received_time INTEGER NOT NULL, body BLOB NOT NULL, sender VARCHAR(128) NOT NULL, priority INTEGER DEFAULT 0 NOT NULL, - CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag) + ruid VARCHAR(64), + CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag), + CONSTRAINT presentity_ruid_idx UNIQUE (ruid) ); CREATE INDEX presentity_presentity_expires ON presentity (expires); CREATE INDEX presentity_account_idx ON presentity (username, domain, event); -INSERT INTO version (table_name, table_version) values ('presentity','4'); +INSERT INTO version (table_name, table_version) values ('presentity','5'); CREATE TABLE active_watchers ( id INTEGER PRIMARY KEY NOT NULL, @@ -75,7 +77,7 @@ CREATE TABLE xcap ( domain VARCHAR(64) NOT NULL, doc BLOB NOT NULL, doc_type INTEGER NOT NULL, - etag VARCHAR(64) NOT NULL, + etag VARCHAR(128) NOT NULL, source INTEGER NOT NULL, doc_uri VARCHAR(255) NOT NULL, port INTEGER NOT NULL, @@ -96,7 +98,7 @@ CREATE TABLE pua ( expires INTEGER NOT NULL, desired_expires INTEGER NOT NULL, flag INTEGER NOT NULL, - etag VARCHAR(64) NOT NULL, + etag VARCHAR(128) NOT NULL, tuple_id VARCHAR(64), watcher_uri VARCHAR(128) NOT NULL, call_id VARCHAR(255) NOT NULL, diff --git a/utils/kamctl/db_sqlite/usrloc-create.sql b/utils/kamctl/db_sqlite/usrloc-create.sql index c86c8f8f0..676574f03 100644 --- a/utils/kamctl/db_sqlite/usrloc-create.sql +++ b/utils/kamctl/db_sqlite/usrloc-create.sql @@ -38,7 +38,7 @@ CREATE TABLE location_attrs ( domain VARCHAR(64) DEFAULT NULL, aname VARCHAR(64) DEFAULT '' NOT NULL, atype INTEGER DEFAULT 0 NOT NULL, - avalue VARCHAR(255) DEFAULT '' NOT NULL, + avalue VARCHAR(512) DEFAULT '' NOT NULL, last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '2000-01-01 00:00:01' NOT NULL ); diff --git a/utils/kamctl/dbtext/kamailio/presentity b/utils/kamctl/dbtext/kamailio/presentity index 106289f30..8a3536893 100644 --- a/utils/kamctl/dbtext/kamailio/presentity +++ b/utils/kamctl/dbtext/kamailio/presentity @@ -1 +1 @@ -id(int,auto) username(string) domain(string) event(string) etag(string) expires(int) received_time(int) body(string) sender(string) priority(int) +id(int,auto) username(string) domain(string) event(string) etag(string) expires(int) received_time(int) body(string) sender(string) priority(int) ruid(string,null) diff --git a/utils/kamctl/dbtext/kamailio/subscriber b/utils/kamctl/dbtext/kamailio/subscriber index b425ad07a..f120ad60d 100644 --- a/utils/kamctl/dbtext/kamailio/subscriber +++ b/utils/kamctl/dbtext/kamailio/subscriber @@ -1 +1 @@ -id(int,auto) username(string) domain(string) password(string) ha1(string) ha1b(string) email_address(string,null) rpid(string,null) +id(int,auto) username(string) domain(string) password(string) ha1(string) ha1b(string) diff --git a/utils/kamctl/dbtext/kamailio/version b/utils/kamctl/dbtext/kamailio/version index c85eb0b55..c61ffc70e 100644 --- a/utils/kamctl/dbtext/kamailio/version +++ b/utils/kamctl/dbtext/kamailio/version @@ -40,7 +40,7 @@ mtree:1 mtrees:2 pdt:1 pl_pipes:1 -presentity:4 +presentity:5 pua:7 purplemap:1 re_grp:1 diff --git a/utils/kamctl/kamctl b/utils/kamctl/kamctl index 7283cbf38..62bb0a148 100755 --- a/utils/kamctl/kamctl +++ b/utils/kamctl/kamctl @@ -5,7 +5,7 @@ #=================================================================== ### version for this script -VERSION='5.0.0' +VERSION='5.2.0' PATH=$PATH:/usr/local/sbin/ @@ -246,20 +246,18 @@ require_ctlengine() { # ## -# wrapper to run MI or RPC command based on configured engine -# - first parameter is the MI command -# - second parameter is the RPC command -# - the rest are the parameters for the MI/RPC command +# wrapper to run RPC command based on configured engine +# - first parameter is the RPC command +# - the rest are the parameters for the RPC command ctl_cmd_run () { - VCMDMI="$1" - shift VCMDRPC="$1" shift if [ $CTLENGINETYPE -eq 1 ] ; then $CTLCMD $VCMDRPC $@ else - $CTLCMD $VCMDMI $@ + merr "ctl engine not configured" + exit 1 fi } @@ -425,7 +423,7 @@ $CLAUSE;" # check_ul_alias() { require_ctlengine - RES=`ctl_cmd_run ul_show_contact ul.lookup "$ALS_TABLE" "$1@$2"` + RES=`ctl_cmd_run ul.lookup "$ALS_TABLE" "$1@$2"` RET="$?" ALIAS_UL_EXISTS=0 if [ $RET -ne 0 ] ; then @@ -951,7 +949,7 @@ $AVP_USER_COLUMN='$OSERUSER' AND $AVP_DOMAIN_COLUMN='$OSERDOMAIN'" cisco_restart() { require_ctlengine myhost=`get_my_host` - CMDPARAMS="t_uac_dlg tm.t_uac_start NOTIFY $1 . . \"From:sip:daemon@$myhost\r\nTo:<$1>\r\nEvent:check-sync\r\nContact:sip:daemon@$myhost\r\n\"" + CMDPARAMS="tm.t_uac_start NOTIFY $1 . . \"From:sip:daemon@$myhost\r\nTo:<$1>\r\nEvent:check-sync\r\nContact:sip:daemon@$myhost\r\n\"" if [ $CTLENGINETYPE -eq 1 ] ; then ctl_cmd_run $CMDPARAMS @@ -1094,11 +1092,11 @@ domain() { case $1 in reload) require_ctlengine - ctl_cmd_run domain_reload domain.reload + ctl_cmd_run domain.reload ;; show) require_ctlengine - ctl_cmd_run domain_dump domain.dump + ctl_cmd_run domain.dump ;; showdb) require_dbengine @@ -1225,11 +1223,11 @@ permissions_trusted() { case $1 in reload) require_ctlengine - ctl_cmd_run trusted_reload permissions.trustedReload + ctl_cmd_run permissions.trustedReload ;; dump) require_ctlengine - ctl_cmd_run trusted_dump permissions.trustedDump + ctl_cmd_run permissions.trustedDump ;; show) require_dbengine @@ -1300,12 +1298,12 @@ permissions_address() { case $1 in reload) require_ctlengine - ctl_cmd_run address_reload permissions.addressReload + ctl_cmd_run permissions.addressReload ;; dump) require_ctlengine - ctl_cmd_run address_dump permissions.addressDump - ctl_cmd_run subnet_dump permissions.subnetDump + ctl_cmd_run permissions.addressDump + ctl_cmd_run permissions.subnetDump ;; show) require_dbengine @@ -1364,6 +1362,64 @@ permissions_address() { } +# +##### ------------------------------------------------ ##### +### mtree management +# +mtree_management() { + case $1 in + reload) + require_ctlengine + ctl_cmd_run mtree.reload $2 + ;; + dump) + require_ctlengine + ctl_cmd_run mtree.list $2 + ;; + showdb) + require_dbengine + QUERY="select * FROM $2 ; " + $DBROCMD "$QUERY" + ;; + add) + require_dbengine + if [ $# -lt 4 ] ; then + usage_mtree + exit 1 + fi + + QUERY="INSERT INTO $2 \ + (tprefix, tvalue) \ + VALUES ($3, '$4');" + $DBCMD "$QUERY" + if [ $? -ne 0 ] ; then + merr "mtree - SQL Error" + exit 1 + fi + minfo "execute '$0 mtree reload' to synchronize cache and database" + ;; + rm) + require_dbengine + shift + if [ $# -ne 3 ] ; then + usage_address + exit 1 + fi + QUERY="DELETE FROM $2 where tprefix='$3';" + $DBCMD "$QUERY" + if [ $? -ne 0 ] ; then + merr "mtree - SQL Error" + exit 1 + fi + minfo "execute '$0 mtree reload' to synchronize cache and database" + ;; + *) + usage_mtree + exit 1 + esac +} + + # ##### ------------------------------------------------ ##### ### LCR management @@ -1389,17 +1445,17 @@ lcr() { reload) merr "command disabled" exit 1 - ctl_cmd_run lcr.reload lcr.reload + ctl_cmd_run lcr.reload ;; dump_gws) merr "command disabled" exit 1 - ctl_cmd_run lcr.dump_gws lcr.dump_gws + ctl_cmd_run lcr.dump_gws ;; dump_routes) merr "command disabled" exit 1 - ctl_cmd_run lcr.dump_lcrs lcr.dump_lcrs + ctl_cmd_run lcr.dump_lcrs ;; eval_weights) shift @@ -1459,11 +1515,11 @@ cr() { $DBROCMD "$QUERY" ;; reload) - ctl_cmd_run cr_reload_routes cr.reload_routes + ctl_cmd_run cr.reload_routes ;; dump) - ctl_cmd_run cr_dump_routes cr.dump_routes + ctl_cmd_run cr.dump_routes ;; addcn) @@ -1699,12 +1755,12 @@ dispatcher() { ;; reload) require_ctlengine - ctl_cmd_run ds_reload dispatcher.reload + ctl_cmd_run dispatcher.reload ;; dump) require_ctlengine - ctl_cmd_run ds_list dispatcher.list + ctl_cmd_run dispatcher.list ;; *) @@ -1723,17 +1779,17 @@ ksr_srv() { sockets) require_ctlengine mecho "list listen sockets" - ctl_cmd_run corex.list_sockets corex.list_sockets + ctl_cmd_run corex.list_sockets ;; aliases) require_ctlengine mecho "list server aliases" - ctl_cmd_run corex.list_aliases corex.list_aliases + ctl_cmd_run corex.list_aliases ;; rpclist) require_ctlengine mecho "list server rpc commands" - ctl_cmd_run system.listMethods system.listMethods + ctl_cmd_run system.listMethods ;; *) usage_ksr_srv @@ -1752,7 +1808,7 @@ dialog() { show|list) require_ctlengine mecho "dialog memory records" - ctl_cmd_run dlg_list dlg.list + ctl_cmd_run dlg.list ;; showdb) require_dbengine @@ -1902,7 +1958,7 @@ dialplan() { ;; reload) - ctl_cmd_run dp_reload dialplan.reload + ctl_cmd_run dialplan.reload ;; *) @@ -1971,7 +2027,7 @@ kamailio_stop() { options_ping() { myhost=`get_my_host` require_ctlengine - CMDPARAMS="t_uac_dlg tm.t_uac_start OPTIONS \"$1\" \".\" \".\" \"From:sip:daemon@$myhost"$'\r\n'"To:<$1>"$'\r\n'"Contact:sip:daemon@$myhost"$'\r\n'"\"" + CMDPARAMS="tm.t_uac_start OPTIONS \"$1\" \".\" \".\" \"From:sip:daemon@$myhost"$'\r\n'"To:<$1>"$'\r\n'"Contact:sip:daemon@$myhost"$'\r\n'"\"" if [ $CTLENGINETYPE -eq 1 ] ; then ctl_cmd_run $CMDPARAMS else @@ -2502,14 +2558,14 @@ usrloc() { show) if [ $# -eq 2 ] ; then if [ "$2" = "--brief" ] ; then - ctl_cmd_run ul_dump ul.dump brief + ctl_cmd_run ul.dump brief else set_user $2 - ctl_cmd_run ul_show_contact ul.lookup \ + ctl_cmd_run ul.lookup \ $USRLOC_TABLE "$OSERUSER@$OSERDOMAIN" fi elif [ $# -eq 1 ] ; then - ctl_cmd_run ul_dump ul.dump + ctl_cmd_run ul.dump else merr "wrong number of params" usage_usrloc @@ -2569,7 +2625,7 @@ usrloc() { DEFAULT_Q="1.0" fi - ctl_cmd_run ul_add ul.add "$USRLOC_TABLE" "$OSERUSER@$OSERDOMAIN" "$2" \ + ctl_cmd_run ul.add "$USRLOC_TABLE" "$OSERUSER@$OSERDOMAIN" "$2" \ "$UL_EXPIRES" "$DEFAULT_Q" "$UL_PATH" "$UL_FLAGS" "$BR_FLAGS" "$ALL_METHODS" exit $? ;; @@ -2577,7 +2633,7 @@ usrloc() { if [ $# -eq 2 ] ; then shift set_user $1 - ctl_cmd_run ul_rm ul.rm $USRLOC_TABLE "$OSERUSER@$OSERDOMAIN" + ctl_cmd_run ul.rm $USRLOC_TABLE "$OSERUSER@$OSERDOMAIN" elif [ $# -eq 3 ] ; then shift @@ -2588,7 +2644,7 @@ usrloc() { exit 1 fi - ctl_cmd_run ul_rm_contact ul.rm_contact $USRLOC_TABLE "$OSERUSER@$OSERDOMAIN" "$2" + ctl_cmd_run ul.rm_contact $USRLOC_TABLE "$OSERUSER@$OSERDOMAIN" "$2" else merr "wrong number of params" @@ -2878,6 +2934,11 @@ case $1 in permissions_address "$@" ;; + mtree) + shift + mtree_management "$@" + ;; + rpc) require_ctlengine shift @@ -2928,7 +2989,7 @@ case $1 in online) require_ctlengine - ctl_cmd_run ul_dump ul.dump brief | $EGREP -i aor | $EGREP -v AoRs \ + ctl_cmd_run ul.dump brief | $EGREP -i aor | $EGREP -v AoRs \ | awk '{print $2}' | sed 's/"//g' | sort | sort -mu exit $? ;; @@ -2946,20 +3007,20 @@ case $1 in ps) require_ctlengine - ctl_cmd_run ps core.psx + ctl_cmd_run core.psx ;; uptime) require_ctlengine - ctl_cmd_run uptime core.uptime + ctl_cmd_run core.uptime ;; stats) require_ctlengine if [ "$#" -eq 1 ] ; then - ctl_cmd_run get_statistics stats.get_statistics all + ctl_cmd_run stats.get_statistics all else - ctl_cmd_run get_statistics stats.get_statistics "${2}:" + ctl_cmd_run stats.get_statistics "${2}:" fi ;; diff --git a/utils/kamctl/kamctl.base b/utils/kamctl/kamctl.base index 2873c2ddb..a776e10d8 100644 --- a/utils/kamctl/kamctl.base +++ b/utils/kamctl/kamctl.base @@ -552,6 +552,22 @@ EOF } USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_ksr_srv" +usage_mtree() { + echo + mecho " -- command 'add|dump|reload|rm|show' - manage mtree" + echo +cat < .................. show db content + mtree dump [] ................ show cache content + mtree reload [] .............. reload db table into cache + mtree add + ......................... add a new entry + mtree rm .......... remove entries for given tname and tprefix +EOF +} +USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_mtree" + + ##### ----------------------------------------------- ##### #### Common functions diff --git a/utils/kamctl/kamdbctl b/utils/kamctl/kamdbctl index ea15329a1..ae44c5df4 100755 --- a/utils/kamctl/kamdbctl +++ b/utils/kamctl/kamdbctl @@ -1,11 +1,11 @@ -#!/bin/bash +#!/bin/bash # # control tool for maintaining Kamailio databases # #=================================================================== ### version for this script -VERSION='4.4.0' +VERSION='5.2.0' PATH=$PATH:/usr/local/sbin/ @@ -288,29 +288,6 @@ kamailio_pframework() #pars: case $1 in - migrate) - if [ "$USED_DBENGINE" != "mysql" ] ; then - merr "$USED_DBENGINE don't support migrate operation" - exit 1 - fi - if [ $# -ne 3 ] ; then - merr "migrate requires 2 parameters: old and new database" - exit 1 - fi - # create new database - minfo "Creating new Database $3...." - NO_USER_INIT="yes" - kamailio_create $3 - if [ "$?" -ne 0 ] ; then - echo "migrate: creating new database failed" - exit 1 - fi - # migrate data - minfo "Migrating data from $2 to $3...." - migrate_db $2 $3 - minfo "Migration successfully completed." - exit 0; - ;; copy) # copy database to some other name if [ "$USED_DBENGINE" == "berkeley" -o "$USED_DBENGINE" == "dbtext" ] ; then diff --git a/utils/kamctl/kamdbctl.base b/utils/kamctl/kamdbctl.base index 0099aa8bf..7cdaf0788 100644 --- a/utils/kamctl/kamdbctl.base +++ b/utils/kamctl/kamdbctl.base @@ -97,7 +97,6 @@ usage: $COMMAND create ...(creates a new database $COMMAND backup ...........................(dumps current database to file) $COMMAND restore ..........................(restores tables from a file) $COMMAND copy ...........................(creates a new db from an existing one) - $COMMAND migrate ...............(migrates DB - no longer maintained!) $COMMAND presence ................................(adds the presence related tables) $COMMAND extra ...................................(adds the extra tables) $COMMAND dbuid ...................................(adds the uid tables) diff --git a/utils/kamctl/kamdbctl.db_berkeley b/utils/kamctl/kamdbctl.db_berkeley index 8e5b4a60e..666122ad2 100644 --- a/utils/kamctl/kamdbctl.db_berkeley +++ b/utils/kamctl/kamdbctl.db_berkeley @@ -176,12 +176,6 @@ kamailio_berkeley() # parms: exit $? ;; - migrate) - shift - kamailio_migrate $1 $DB_PATH - exit $? - ;; - import) shift kamailio_import $1 $DB_PATH @@ -308,21 +302,6 @@ kamailio_export() # parms: [DB_PATH] } -## -# MIGRATE (schema) -# Examine each plain-txt file in DUMP_DIR -# (Assumes that kamailio_export was already invoked) -# -# Migrate converts data from schema-old to schema-new in place. -# -# After this step is complete the IMPORT should be executed. -kamailio_migrate() # parms: [DB_PATH] -{ - merr "db_berkeley migrate not implemented" - exit 1 -} - - ## # IMPORT existing plain-txt files from DUMP_DIR to DB_PATH # eg. DUMP_DIR/version.txt --> DB_PATH/version diff --git a/utils/kamctl/kamdbctl.mysql b/utils/kamctl/kamdbctl.mysql index 422eed8be..6103705bc 100644 --- a/utils/kamctl/kamdbctl.mysql +++ b/utils/kamctl/kamdbctl.mysql @@ -373,172 +373,6 @@ kamailio_add_tables () # params: fi } # end kamailio_add_tables -migrate_table () # 4 paremeters (dst_table, dst_cols, src_table, src_cols) -{ - if [ $# -ne 4 ] ; then - merr "migrate_table function takes 4 params $@" - exit 1 - fi - - src_cols=`echo $4 | sed s/?/$3./g ` - - X=`sql_query "" "INSERT into $1 ($2) SELECT $src_cols from $3;" 2>&1` - - if [ $? -ne 0 ] ; then - echo $X | $GREP "ERROR 1146" > /dev/null - if [ $? -eq 0 ] ; then - echo " -- Migrating $3 to $1.....SKIPPED (no source)" - return 0 - fi - echo "ERROR: failed to migrate $3 to $1!!!" - echo -n "Skip it and continue (y/n)? " - read INPUT - if [ "$INPUT" = "y" ] || [ "$INPUT" = "Y" ] - then - return 0 - fi - - exit 1; - fi - - minfo " -- Migrating $3 to $1.....OK" - -} - -migrate_db () # 2 parameters (src_db, dst_db) -{ -if [ $# -ne 2 ] ; then - merr "migrate_db function takes 2 params" - exit 1 -fi - -dst_db=$2 -src_db=$1 - -migrate_table ${dst_db}.acc \ - "id,method,from_tag,to_tag,callid,sip_code,sip_reason,time" \ - ${src_db}.acc \ - "?id,?method,?from_tag,?to_tag,?callid,?sip_code,?sip_reason,?time" - -migrate_table ${dst_db}.missed_calls \ - "id,method,from_tag,to_tag,callid,sip_code,sip_reason,time" \ - ${src_db}.missed_calls \ - "?id,?method,?from_tag,?to_tag,?callid,?sip_code,?sip_reason,?time" - -migrate_table ${dst_db}.aliases \ - "id,username,domain,contact,expires,q,callid,cseq,last_modified,\ - flags,cflags,user_agent" \ - ${src_db}.aliases \ - "?id,?username,?domain,?contact,?expires,?q,?callid,?cseq,?last_modified,\ - ?flags,?cflags,?user_agent" - -migrate_table ${dst_db}.dbaliases \ - "id,alias_username,alias_domain,username,domain" \ - ${src_db}.dbaliases \ - "?id,?alias_username,?alias_domain,?username,?domain" - -migrate_table ${dst_db}.grp \ - "id,username,domain,grp,last_modified" \ - ${src_db}.grp \ - "?id,?username,?domain,?grp,?last_modified" - -migrate_table ${dst_db}.re_grp \ - "id,reg_exp,group_id" \ - ${src_db}.re_grp \ - "?id,?reg_exp,?group_id" - -migrate_table ${dst_db}.silo \ - "id,src_addr,dst_addr,username,domain,inc_time,exp_time,snd_time,\ - ctype,body" \ - ${src_db}.silo \ - "?id,?src_addr,?dst_addr,?username,?domain,?inc_time,?exp_time,?snd_time,\ - ?ctype,?body" - -migrate_table ${dst_db}.domain \ - "id,domain,last_modified" \ - ${src_db}.domain \ - "?id,?domain,?last_modified" - -migrate_table ${dst_db}.uri \ - "id,username,domain,uri_user,last_modified" \ - ${src_db}.uri \ - "?id,?username,?domain,?uri_user,?last_modified" - -migrate_table ${dst_db}.usr_preferences \ - "id,uuid,username,domain,attribute,type,value,last_modified" \ - ${src_db}.usr_preferences \ - "?id,?uuid,?username,?domain,?attribute,?type,?value,?last_modified" - -migrate_table ${dst_db}.trusted \ - "id,src_ip,proto,from_pattern,tag" \ - ${src_db}.trusted \ - "?id,?src_ip,?proto,?from_pattern,?tag" - -migrate_table ${dst_db}.address \ - "id,grp,ip_addr,mask,port" \ - ${src_db}.address \ - "?id,?grp,?ip_addr,?mask,?port" - -migrate_table ${dst_db}.speed_dial \ - "id,username,domain,sd_username,sd_domain,new_uri,\ - fname,lname,description" \ - ${src_db}.speed_dial \ - "?id,?username,?domain,?sd_username,?sd_domain,?new_uri,\ - ?fname,?lname,?description" - -migrate_table ${dst_db}.gw \ - "id,gw_name,grp_id,ip_addr,port,uri_scheme,transport,strip,prefix" \ - ${src_db}.gw \ - "?id,?gw_name,?grp_id,?ip_addr,?port,?uri_scheme,?transport,?strip,?prefix" - -migrate_table ${dst_db}.gw_grp \ - "grp_id,grp_name" \ - ${src_db}.gw_grp \ - "?grp_id,?grp_name" - -migrate_table ${dst_db}.lcr \ - "id,prefix,from_uri,grp_id,priority" \ - ${src_db}.lcr \ - "?id,?prefix,?from_uri,?grp_id,?priority" - -migrate_table ${dst_db}.pdt \ - "id,sdomain,prefix,domain" \ - ${src_db}.pdt \ - "?id,?sdomain,?prefix,?domain" - -# migrate subscribers with no serweb support -migrate_table ${dst_db}.subscriber \ - "id,username,domain,password,ha1,ha1b,rpid" \ - ${src_db}.subscriber \ - "?id,?username,?domain,?password,?ha1,?ha1b,?rpid" - -if [ "$HAS_EXTRA" = "yes" ] ; then - migrate_table ${dst_db}.cpl \ - "id,username,domain,cpl_xml,cpl_bin" \ - ${src_db}.cpl \ - "?id,?username,?domain,?cpl_xml,?cpl_bin" - - migrate_table ${dst_db}.siptrace \ - "id,date,callid,traced_user,msg,method,status,fromip,toip,\ - fromtag,direction" \ - ${src_db}.siptrace \ - "?id,?date,?callid,?traced_user,?msg,?method,?status,?fromip,?toip,\ - ?fromtag,?direction" - - migrate_table ${dst_db}.imc_rooms \ - "id,name,domain,flag" \ - ${src_db}.imc_rooms \ - "?id,?name,?domain,?flag" - - migrate_table ${dst_db}.imc_members \ - "id,username,domain,room,flag" \ - ${src_db}.im_members \ - "?id,?username,?domain,?room,?flag" -fi - - -} #end migrate_db() - export DBROOTPW if [ "$#" -ne 0 ] && [ "$DBROOTPW" = "" ]; then diff --git a/utils/kamctl/mongodb/kamailio/presentity.json b/utils/kamctl/mongodb/kamailio/presentity.json index cab9bccc1..10ae833e2 100644 --- a/utils/kamctl/mongodb/kamailio/presentity.json +++ b/utils/kamctl/mongodb/kamailio/presentity.json @@ -1,6 +1,6 @@ { "name": "presentity", - "version": 4, + "version": 5, "columns": [ "id": { "type": "int", @@ -51,6 +51,11 @@ "type": "int", "default": 0, "null": false + }, + "ruid": { + "type": "string", + "default": null, + "null": true } ] } \ No newline at end of file diff --git a/utils/kamctl/mongodb/kamailio/subscriber.json b/utils/kamctl/mongodb/kamailio/subscriber.json index 5cfb8d09a..d663c650f 100644 --- a/utils/kamctl/mongodb/kamailio/subscriber.json +++ b/utils/kamctl/mongodb/kamailio/subscriber.json @@ -31,16 +31,6 @@ "type": "string", "default": "", "null": false - }, - "email_address": { - "type": "string", - "default": null, - "null": true - }, - "rpid": { - "type": "string", - "default": null, - "null": true } ] } \ No newline at end of file diff --git a/utils/kamctl/mongodb/kamailio/version-create.mongo b/utils/kamctl/mongodb/kamailio/version-create.mongo index bfb164909..ed6d9e2cf 100644 --- a/utils/kamctl/mongodb/kamailio/version-create.mongo +++ b/utils/kamctl/mongodb/kamailio/version-create.mongo @@ -40,7 +40,7 @@ db.getCollection("version").insert({ table_name: "mtree", table_version: NumberI db.getCollection("version").insert({ table_name: "mtrees", table_version: NumberInt(2) }); db.getCollection("version").insert({ table_name: "pdt", table_version: NumberInt(1) }); db.getCollection("version").insert({ table_name: "pl_pipes", table_version: NumberInt(1) }); -db.getCollection("version").insert({ table_name: "presentity", table_version: NumberInt(4) }); +db.getCollection("version").insert({ table_name: "presentity", table_version: NumberInt(5) }); db.getCollection("version").insert({ table_name: "pua", table_version: NumberInt(7) }); db.getCollection("version").insert({ table_name: "purplemap", table_version: NumberInt(1) }); db.getCollection("version").insert({ table_name: "re_grp", table_version: NumberInt(1) }); diff --git a/utils/kamctl/mysql/auth_db-create.sql b/utils/kamctl/mysql/auth_db-create.sql index ecc56a4cd..32b2378e8 100644 --- a/utils/kamctl/mysql/auth_db-create.sql +++ b/utils/kamctl/mysql/auth_db-create.sql @@ -5,8 +5,6 @@ CREATE TABLE `subscriber` ( `password` VARCHAR(64) DEFAULT '' NOT NULL, `ha1` VARCHAR(128) DEFAULT '' NOT NULL, `ha1b` VARCHAR(128) DEFAULT '' NOT NULL, - `email_address` VARCHAR(128) DEFAULT NULL, - `rpid` VARCHAR(128) DEFAULT NULL, CONSTRAINT account_idx UNIQUE (`username`, `domain`) ); diff --git a/utils/kamctl/mysql/presence-create.sql b/utils/kamctl/mysql/presence-create.sql index 71778fb43..a0b409752 100644 --- a/utils/kamctl/mysql/presence-create.sql +++ b/utils/kamctl/mysql/presence-create.sql @@ -3,19 +3,21 @@ CREATE TABLE `presentity` ( `username` VARCHAR(64) NOT NULL, `domain` VARCHAR(64) NOT NULL, `event` VARCHAR(64) NOT NULL, - `etag` VARCHAR(64) NOT NULL, + `etag` VARCHAR(128) NOT NULL, `expires` INT(11) NOT NULL, `received_time` INT(11) NOT NULL, `body` BLOB NOT NULL, `sender` VARCHAR(128) NOT NULL, `priority` INT(11) DEFAULT 0 NOT NULL, - CONSTRAINT presentity_idx UNIQUE (`username`, `domain`, `event`, `etag`) + `ruid` VARCHAR(64), + CONSTRAINT presentity_idx UNIQUE (`username`, `domain`, `event`, `etag`), + CONSTRAINT ruid_idx UNIQUE (`ruid`) ); CREATE INDEX presentity_expires ON presentity (`expires`); CREATE INDEX account_idx ON presentity (`username`, `domain`, `event`); -INSERT INTO version (table_name, table_version) values ('presentity','4'); +INSERT INTO version (table_name, table_version) values ('presentity','5'); CREATE TABLE `active_watchers` ( `id` INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, @@ -75,7 +77,7 @@ CREATE TABLE `xcap` ( `domain` VARCHAR(64) NOT NULL, `doc` MEDIUMBLOB NOT NULL, `doc_type` INT(11) NOT NULL, - `etag` VARCHAR(64) NOT NULL, + `etag` VARCHAR(128) NOT NULL, `source` INT(11) NOT NULL, `doc_uri` VARCHAR(255) NOT NULL, `port` INT(11) NOT NULL, @@ -96,7 +98,7 @@ CREATE TABLE `pua` ( `expires` INT(11) NOT NULL, `desired_expires` INT(11) NOT NULL, `flag` INT(11) NOT NULL, - `etag` VARCHAR(64) NOT NULL, + `etag` VARCHAR(128) NOT NULL, `tuple_id` VARCHAR(64), `watcher_uri` VARCHAR(128) NOT NULL, `call_id` VARCHAR(255) NOT NULL, diff --git a/utils/kamctl/mysql/usrloc-create.sql b/utils/kamctl/mysql/usrloc-create.sql index a169ef878..024123b94 100644 --- a/utils/kamctl/mysql/usrloc-create.sql +++ b/utils/kamctl/mysql/usrloc-create.sql @@ -38,7 +38,7 @@ CREATE TABLE `location_attrs` ( `domain` VARCHAR(64) DEFAULT NULL, `aname` VARCHAR(64) DEFAULT '' NOT NULL, `atype` INT(11) DEFAULT 0 NOT NULL, - `avalue` VARCHAR(255) DEFAULT '' NOT NULL, + `avalue` VARCHAR(512) DEFAULT '' NOT NULL, `last_modified` DATETIME DEFAULT '2000-01-01 00:00:01' NOT NULL ); diff --git a/utils/kamctl/oracle/auth_db-create.sql b/utils/kamctl/oracle/auth_db-create.sql index 51cef596c..71d9492cc 100644 --- a/utils/kamctl/oracle/auth_db-create.sql +++ b/utils/kamctl/oracle/auth_db-create.sql @@ -5,8 +5,6 @@ CREATE TABLE subscriber ( password VARCHAR2(64) DEFAULT '', ha1 VARCHAR2(128) DEFAULT '', ha1b VARCHAR2(128) DEFAULT '', - email_address VARCHAR2(128) DEFAULT NULL, - rpid VARCHAR2(128) DEFAULT NULL, CONSTRAINT subscriber_account_idx UNIQUE (username, domain) ); diff --git a/utils/kamctl/oracle/presence-create.sql b/utils/kamctl/oracle/presence-create.sql index f7a595dfe..35a6f062e 100644 --- a/utils/kamctl/oracle/presence-create.sql +++ b/utils/kamctl/oracle/presence-create.sql @@ -3,13 +3,15 @@ CREATE TABLE presentity ( username VARCHAR2(64), domain VARCHAR2(64), event VARCHAR2(64), - etag VARCHAR2(64), + etag VARCHAR2(128), expires NUMBER(10), received_time NUMBER(10), body BLOB, sender VARCHAR2(128), priority NUMBER(10) DEFAULT 0 NOT NULL, - CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag) + ruid VARCHAR2(64), + CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag), + CONSTRAINT presentity_ruid_idx UNIQUE (ruid) ); CREATE OR REPLACE TRIGGER presentity_tr @@ -23,7 +25,7 @@ BEGIN map2users('presentity'); END; CREATE INDEX presentity_presentity_expires ON presentity (expires); CREATE INDEX presentity_account_idx ON presentity (username, domain, event); -INSERT INTO version (table_name, table_version) values ('presentity','4'); +INSERT INTO version (table_name, table_version) values ('presentity','5'); CREATE TABLE active_watchers ( id NUMBER(10) PRIMARY KEY, @@ -99,7 +101,7 @@ CREATE TABLE xcap ( domain VARCHAR2(64), doc BLOB, doc_type NUMBER(10), - etag VARCHAR2(64), + etag VARCHAR2(128), source NUMBER(10), doc_uri VARCHAR2(255), port NUMBER(10), @@ -128,7 +130,7 @@ CREATE TABLE pua ( expires NUMBER(10), desired_expires NUMBER(10), flag NUMBER(10), - etag VARCHAR2(64), + etag VARCHAR2(128), tuple_id VARCHAR2(64), watcher_uri VARCHAR2(128), call_id VARCHAR2(255), diff --git a/utils/kamctl/oracle/usrloc-create.sql b/utils/kamctl/oracle/usrloc-create.sql index 4857ed827..0cf6d822f 100644 --- a/utils/kamctl/oracle/usrloc-create.sql +++ b/utils/kamctl/oracle/usrloc-create.sql @@ -46,7 +46,7 @@ CREATE TABLE location_attrs ( domain VARCHAR2(64) DEFAULT NULL, aname VARCHAR2(64) DEFAULT '', atype NUMBER(10) DEFAULT 0 NOT NULL, - avalue VARCHAR2(255) DEFAULT '', + avalue VARCHAR2(512) DEFAULT '', last_modified DATE DEFAULT to_date('2000-01-01 00:00:01','yyyy-mm-dd hh24:mi:ss') ); diff --git a/utils/kamctl/postgres/auth_db-create.sql b/utils/kamctl/postgres/auth_db-create.sql index 55dad4bd5..a95322852 100644 --- a/utils/kamctl/postgres/auth_db-create.sql +++ b/utils/kamctl/postgres/auth_db-create.sql @@ -5,8 +5,6 @@ CREATE TABLE subscriber ( password VARCHAR(64) DEFAULT '' NOT NULL, ha1 VARCHAR(128) DEFAULT '' NOT NULL, ha1b VARCHAR(128) DEFAULT '' NOT NULL, - email_address VARCHAR(128) DEFAULT NULL, - rpid VARCHAR(128) DEFAULT NULL, CONSTRAINT subscriber_account_idx UNIQUE (username, domain) ); diff --git a/utils/kamctl/postgres/presence-create.sql b/utils/kamctl/postgres/presence-create.sql index 666c2fc88..729fb6a37 100644 --- a/utils/kamctl/postgres/presence-create.sql +++ b/utils/kamctl/postgres/presence-create.sql @@ -3,19 +3,21 @@ CREATE TABLE presentity ( username VARCHAR(64) NOT NULL, domain VARCHAR(64) NOT NULL, event VARCHAR(64) NOT NULL, - etag VARCHAR(64) NOT NULL, + etag VARCHAR(128) NOT NULL, expires INTEGER NOT NULL, received_time INTEGER NOT NULL, body BYTEA NOT NULL, sender VARCHAR(128) NOT NULL, priority INTEGER DEFAULT 0 NOT NULL, - CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag) + ruid VARCHAR(64), + CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag), + CONSTRAINT presentity_ruid_idx UNIQUE (ruid) ); CREATE INDEX presentity_presentity_expires ON presentity (expires); CREATE INDEX presentity_account_idx ON presentity (username, domain, event); -INSERT INTO version (table_name, table_version) values ('presentity','4'); +INSERT INTO version (table_name, table_version) values ('presentity','5'); CREATE TABLE active_watchers ( id SERIAL PRIMARY KEY NOT NULL, @@ -75,7 +77,7 @@ CREATE TABLE xcap ( domain VARCHAR(64) NOT NULL, doc BYTEA NOT NULL, doc_type INTEGER NOT NULL, - etag VARCHAR(64) NOT NULL, + etag VARCHAR(128) NOT NULL, source INTEGER NOT NULL, doc_uri VARCHAR(255) NOT NULL, port INTEGER NOT NULL, @@ -96,7 +98,7 @@ CREATE TABLE pua ( expires INTEGER NOT NULL, desired_expires INTEGER NOT NULL, flag INTEGER NOT NULL, - etag VARCHAR(64) NOT NULL, + etag VARCHAR(128) NOT NULL, tuple_id VARCHAR(64), watcher_uri VARCHAR(128) NOT NULL, call_id VARCHAR(255) NOT NULL, diff --git a/utils/kamctl/postgres/usrloc-create.sql b/utils/kamctl/postgres/usrloc-create.sql index 704629478..b9e9c9058 100644 --- a/utils/kamctl/postgres/usrloc-create.sql +++ b/utils/kamctl/postgres/usrloc-create.sql @@ -38,7 +38,7 @@ CREATE TABLE location_attrs ( domain VARCHAR(64) DEFAULT NULL, aname VARCHAR(64) DEFAULT '' NOT NULL, atype INTEGER DEFAULT 0 NOT NULL, - avalue VARCHAR(255) DEFAULT '' NOT NULL, + avalue VARCHAR(512) DEFAULT '' NOT NULL, last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '2000-01-01 00:00:01' NOT NULL ); diff --git a/utils/kamctl/xhttp_pi/auth_db-mod b/utils/kamctl/xhttp_pi/auth_db-mod index 8b9fc4c88..e1b966631 100644 --- a/utils/kamctl/xhttp_pi/auth_db-mod +++ b/utils/kamctl/xhttp_pi/auth_db-mod @@ -10,8 +10,6 @@ password ha1 ha1b - email_address - rpid add @@ -23,8 +21,6 @@ password ha1 ha1b - email_address - rpid update @@ -39,8 +35,6 @@ password ha1 ha1b - email_address - rpid delete diff --git a/utils/kamctl/xhttp_pi/auth_db-table b/utils/kamctl/xhttp_pi/auth_db-table index e163f764f..c95fdf29e 100644 --- a/utils/kamctl/xhttp_pi/auth_db-table +++ b/utils/kamctl/xhttp_pi/auth_db-table @@ -8,6 +8,4 @@ passwordDB1_STR ha1DB1_STR ha1bDB1_STR - email_addressDB1_STR - rpidDB1_STR diff --git a/utils/kamctl/xhttp_pi/pi_framework.xml b/utils/kamctl/xhttp_pi/pi_framework.xml index 486d8d6c1..81cda70f5 100644 --- a/utils/kamctl/xhttp_pi/pi_framework.xml +++ b/utils/kamctl/xhttp_pi/pi_framework.xml @@ -84,8 +84,6 @@ passwordDB1_STR ha1DB1_STR ha1bDB1_STR - email_addressDB1_STR - rpidDB1_STR @@ -507,6 +505,7 @@ bodyDB1_BLOB senderDB1_STR priorityDB1_INT + ruidDB1_STR @@ -1222,8 +1221,6 @@ password ha1 ha1b - email_address - rpid add @@ -1235,8 +1232,6 @@ password ha1 ha1b - email_address - rpid update @@ -1251,8 +1246,6 @@ password ha1 ha1b - email_address - rpid delete @@ -2970,6 +2963,7 @@ body sender priority + ruid add @@ -2985,6 +2979,7 @@ body sender priority + ruid update @@ -3003,6 +2998,7 @@ body sender priority + ruid delete diff --git a/utils/kamctl/xhttp_pi/presence-mod b/utils/kamctl/xhttp_pi/presence-mod index f2b2f607f..59a58fa07 100644 --- a/utils/kamctl/xhttp_pi/presence-mod +++ b/utils/kamctl/xhttp_pi/presence-mod @@ -14,6 +14,7 @@ body sender priority + ruid add @@ -29,6 +30,7 @@ body sender priority + ruid update @@ -47,6 +49,7 @@ body sender priority + ruid delete diff --git a/utils/kamctl/xhttp_pi/presence-table b/utils/kamctl/xhttp_pi/presence-table index 450c24c99..b76ce8853 100644 --- a/utils/kamctl/xhttp_pi/presence-table +++ b/utils/kamctl/xhttp_pi/presence-table @@ -12,6 +12,7 @@ bodyDB1_BLOB senderDB1_STR priorityDB1_INT + ruidDB1_STR diff --git a/utils/pdbt/pdb_server.c b/utils/pdbt/pdb_server.c index 4dac0ce13..7f25cb01a 100644 --- a/utils/pdbt/pdb_server.c +++ b/utils/pdbt/pdb_server.c @@ -40,8 +40,8 @@ void print_usage(char *program) { set_log_level(LOG_INFO); - LINFO("Listens on a UDP port for queries and sends answer UDP\n"); - LINFO("packets back.\n"); + LINFO("version: pdb_server %d\n", PDB_VERSION); + LINFO("Listens on a UDP port for queries and sends answer UDP packets back.\n"); LINFO("\n"); LINFO("Usage: %s [