You can use the 5.6 branch, secsipid module should be the same as in master branch.
Otherwise, C99 should be required to be supported by the compiler because of code in many other components, is rpm build script enforcing an older C standard in the compiler?
Cheers, Daniel
On 27.09.22 17:31, Володимир Іванець wrote:
I will try the master branch too. Unfortunately there is a problem with the RPM build procedure. I will try a different approach and update you when I have something. Thank you for your help!
In file included from core/ppcfg.c:37:0: core/utils/snexpr.h: In function 'snexpr_op': core/utils/snexpr.h:272:2: error: 'for' loop initial declarations are only allowed in C99 mode for(unsigned int i = 0; i < sizeof(OPS) / sizeof(OPS[0]); i++) { ^ core/utils/snexpr.h:272:2: note: use option -std=c99 or -std=gnu99 to compile your code core/utils/snexpr.h: In function 'snexpr_parse_number': core/utils/snexpr.h:286:2: error: 'for' loop initial declarations are only allowed in C99 mode for(unsigned int i = 0; i < len; i++) { ^ core/utils/snexpr.h: In function 'snexpr_func_find': core/utils/snexpr.h:322:2: error: 'for' loop initial declarations are only allowed in C99 mode for(struct snexpr_func *f = funcs; f->name; f++) { ^ core/utils/snexpr.h: In function 'snexpr_convert_num': core/utils/snexpr.h:398:3: warning: implicit declaration of function 'asprintf' [-Wimplicit-function-declaration] asprintf(&e->param.stz.sval, "%g", value); ^ core/utils/snexpr.h: In function 'snexpr_create': core/utils/snexpr.h:1193:6: error: 'for' loop initial declarations are only allowed in C99 mode for(struct snexpr_var *v = vars->head; v; v = v->next) { ^ core/utils/snexpr.h:1217:7: error: 'for' loop initial declarations are only allowed in C99 mode for(int j = 0; j < sne_vec_len(&arg.args); j++) { ^ core/utils/snexpr.h:1231:15: error: redefinition of 'j' for(int j = 1; j < sne_vec_len(&m.body); j++) { ^ core/utils/snexpr.h:1217:15: note: previous definition of 'j' was here for(int j = 0; j < sne_vec_len(&arg.args); j++) { ^ core/utils/snexpr.h:1231:7: error: 'for' loop initial declarations are only allowed in C99 mode for(int j = 1; j < sne_vec_len(&m.body); j++) { ^ core/utils/snexpr.h: In function 'snexpr_destroy': core/utils/snexpr.h:1412:3: error: 'for' loop initial declarations are only allowed in C99 mode for(struct snexpr_var *v = vars->head; v;) { ^ make[1]: Leaving directory `/builddir/build/BUILD/kamailio-5.7.0-dev1/src' make[1]: *** [core/ppcfg.o] Error 1 make: *** [default] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.I4sU6o (%build) Bad exit status from /var/tmp/rpm-tmp.I4sU6o (%build) RPM build errors: ERROR: Exception(../../kamailio-5.7.0-dev1.0.el7.centos.src.rpm) Config(epel-7-x86_64) 1 minutes 45 seconds INFO: Results and/or logs in: /var/lib/mock/epel-7-x86_64/result ERROR: Command failed. See logs for output. # bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/kamailio.spec make: *** [rpm] Error 1
вт, 27 вер. 2022 р. о 17:50 Daniel-Constantin Mierla miconda@gmail.com пише:
Hello, I just tested with git master branch using: secsipid_check_identity(""); and started fine. Maybe is something else wrong in your config. Cheers, Daniel On 27.09.22 13:58, Володимир Іванець wrote:
Hello Daniel, Sorry for the delayed response. I can confirm that I get the "unknown command, missing loadmodule?" error when using an empty parameter /if (secsipid_check_identity(""))/. And thank you for the clarification about the file with the certificate. пн, 26 вер. 2022 р. о 19:50 Daniel-Constantin Mierla <miconda@gmail.com> пише: Hello, secsipid_check_identity("") should be ok, because the parameter is empty, but secsipid_check_identity() is not ok, because is no parameter. Isn't it working when you have secsipid_check_identity("")? It has to be one certificate, which corresponds to the key that was used to generate the identity header. The function does not expect many certificates and loop to see if one of them corresponds to the key. Cheers, Daniel On 26.09.22 17:53, Володимир Іванець wrote:
Hello Daniel! I started with a simpler configuration: /if (secsipid_check_identity()) {/ and /if (secsipid_check_identity("")) {/ - according to documentation: /If the parameter is empty, the function is downloading the key using the URL from "info" parameter of the Identity header, using the value od "timeout" parameter to limit the download time./ If this matters, I did not configure modparam "expire" and "timeout". When I called secsipid_check_identity with a path to the certificate, Kamailio started as expected. Is there something else I need to do or the function /secsipid_check_identity/ must receive a path to certificate as parameter? Also, is it safe to assume that this file can contain multiple certificates? Thank you very much! пн, 26 вер. 2022 р. о 17:36 Daniel-Constantin Mierla <miconda@gmail.com> пише: Hello, maybe the function is provided with invalid parameters? What's the line 47 in the file? Cheers, Daniel On 26.09.22 15:54, Володимир Іванець wrote:
Hello everyone! I'm testing calls with STIR/SHAKEN with a Secsipid module on a Kamailio version 5.6.1 and ran into a problem. Outbound calls work fine when the function /secsipid_add_identity/ with appropriate parameters is called. But as soon as I add function /secsipid_check_identity/ to my configuration, Kamilio would not start. Here is an error message I get: /kamailio: CRITICAL: <core> [core/cfg.y:3791]: yyerror_at(): parse error in config file /etc/kamailio/include/registrar.cfg, line 47, column 39: unknown command, missing loadmodule?/ / / /loadmodule "secsipid.so"/ is present and is above the function /secsipid_check_identity/ call. Both secsipid.so and secsipid_proc.so module files are the correct version and present on the system. Another question is related to the rpm package build. How do you build additional modules? I made adjustment to the pkg/kamailio/Makefile file. In the *cfg* section changed /$(MAKE) -C ../../src cfg/ with /$(MAKE) FLAVOUR=kamailio include_modules="secsipid secsipid_proc" -C ../../src cfg/. Required modules appeared in the modules.lst file but their rpm packages were not built. Thank you very much! __________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions * sr-users@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Kamailio Advanced Training - Online Nov 7-10, 2022 (Europe Timezone) * https://www.asipto.com/sw/kamailio-advanced-training-online/
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Kamailio Advanced Training - Online Nov 7-10, 2022 (Europe Timezone) * https://www.asipto.com/sw/kamailio-advanced-training-online/
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Kamailio Advanced Training - Online Nov 7-10, 2022 (Europe Timezone) * https://www.asipto.com/sw/kamailio-advanced-training-online/