Hello all
Testing dialog timeout event callback for kemi lua setup on kamailio 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the dlg timeroute behaviour the same as we could on native version. If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that on a dialog timeout, the dlg_ontimeout event route was not triggered, and only the dialog callback was executed with evname dialog:end. (only executing event_route -1 on state 5) So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?) Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing ..... 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg 0x7f9a961f5f90 with 1 -> 3 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing route -1 on timeout 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead child 16, pid 5579 (shutting down?) .... Adding some debug, i could see that the call was not attempting the kemi function of line 1598 of dlg_handlers.c, and was trying the code i think was for native on line 1593. We think the issue is that the toroute is defined as unsigned dlg_hash.h: unsigned int toroute; /*!< index of route that is executed on timeout */ but after that when setting $dlg_ctx(timeout_route) with pv module, it tries to compare an integer being unsigned, so it's always true and never uses kemi with this change we made it work + if ((int)(dlg->toroute) > 0) { + /*if(dlg->toroute>0) {*/ but i don't know maybe there is a better way to do it.
best regards david
Hello,
indeed keeping route block index in unsigned it can create problems. I pushed a patch for it:
- https://github.com/kamailio/kamailio/commit/6c557efc1b9cb8c880a05235c94780bb...
Can you try and see if now works ok? If yes, it will be backported.
Cheers, Daniel
On 13.02.20 13:27, David Escartin wrote:
Hello all
Testing dialog timeout event callback for kemi lua setup on kamailio 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the dlg timeroute behaviour the same as we could on native version. If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that on a dialog timeout, the dlg_ontimeout event route was not triggered, and only the dialog callback was executed with evname dialog:end. (only executing event_route -1 on state 5) So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?) Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing ..... 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg 0x7f9a961f5f90 with 1 -> 3 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing route -1 on timeout 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead child 16, pid 5579 (shutting down?) .... Adding some debug, i could see that the call was not attempting the kemi function of line 1598 of dlg_handlers.c, and was trying the code i think was for native on line 1593. We think the issue is that the toroute is defined as unsigned dlg_hash.h: unsigned int toroute; /*!< index of route that is executed on timeout */ but after that when setting $dlg_ctx(timeout_route) with pv module, it tries to compare an integer being unsigned, so it's always true and never uses kemi with this change we made it work
- if ((int)(dlg->toroute) > 0) {
- /*if(dlg->toroute>0) {*/
but i don't know maybe there is a better way to do it.
best regards david
Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
hello Daniel
i have tried it and seems fine.
thanks a lot and regards david
El jue., 13 feb. 2020 a las 17:13, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
indeed keeping route block index in unsigned it can create problems. I pushed a patch for it:
https://github.com/kamailio/kamailio/commit/6c557efc1b9cb8c880a05235c94780bb...
Can you try and see if now works ok? If yes, it will be backported.
Cheers, Daniel
On 13.02.20 13:27, David Escartin wrote:
Hello all
Testing dialog timeout event callback for kemi lua setup on kamailio 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the dlg timeroute behaviour the same as we could on native version. If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that on a dialog timeout, the dlg_ontimeout event route was not triggered, and only the dialog callback was executed with evname dialog:end. (only executing event_route -1 on state 5) So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?) Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing ..... 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg 0x7f9a961f5f90 with 1 -> 3 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing route -1 on timeout 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead child 16, pid 5579 (shutting down?) .... Adding some debug, i could see that the call was not attempting the kemi function of line 1598 of dlg_handlers.c, and was trying the code i think was for native on line 1593. We think the issue is that the toroute is defined as unsigned dlg_hash.h: unsigned int toroute; /*!< index of route that is executed on timeout */ but after that when setting $dlg_ctx(timeout_route) with pv module, it tries to compare an integer being unsigned, so it's always true and never uses kemi with this change we made it work
if ((int)(dlg->toroute) > 0) {
/*if(dlg->toroute>0) {*/
but i don't know maybe there is a better way to do it.
best regards david
Kamailio (SER) - Development Mailing Listsr-dev@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio Advanced Training - March 9-11, 2020, Berlin - www.asipto.com Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com
Dear Daniel
hope everything is ok. Sorry if i missed something, but has been this patch already backported from master to 5.3 yet?
thanks alot and regards david
El jue., 13 feb. 2020 a las 18:12, David Escartin (descartin@sonoc.io) escribió:
hello Daniel
i have tried it and seems fine.
thanks a lot and regards david
El jue., 13 feb. 2020 a las 17:13, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
indeed keeping route block index in unsigned it can create problems. I pushed a patch for it:
https://github.com/kamailio/kamailio/commit/6c557efc1b9cb8c880a05235c94780bb...
Can you try and see if now works ok? If yes, it will be backported.
Cheers, Daniel
On 13.02.20 13:27, David Escartin wrote:
Hello all
Testing dialog timeout event callback for kemi lua setup on kamailio 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the dlg timeroute behaviour the same as we could on native version. If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that on a dialog timeout, the dlg_ontimeout event route was not triggered, and only the dialog callback was executed with evname dialog:end. (only executing event_route -1 on state 5) So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?) Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing ..... 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg 0x7f9a961f5f90 with 1 -> 3 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing route -1 on timeout 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead child 16, pid 5579 (shutting down?) .... Adding some debug, i could see that the call was not attempting the kemi function of line 1598 of dlg_handlers.c, and was trying the code i think was for native on line 1593. We think the issue is that the toroute is defined as unsigned dlg_hash.h: unsigned int toroute; /*!< index of route that is executed on timeout */ but after that when setting $dlg_ctx(timeout_route) with pv module, it tries to compare an integer being unsigned, so it's always true and never uses kemi with this change we made it work
if ((int)(dlg->toroute) > 0) {
/*if(dlg->toroute>0) {*/
but i don't know maybe there is a better way to do it.
best regards david
Kamailio (SER) - Development Mailing Listsr-dev@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio Advanced Training - March 9-11, 2020, Berlin - www.asipto.com Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com
Hello,
apparently it was not backported to 5.3, somehow I forgot about it. I just did it a few minutes ago.
Cheers, Daniel
On 06.04.20 10:49, David Escartin wrote:
Dear Daniel
hope everything is ok. Sorry if i missed something, but has been this patch already backported from master to 5.3 yet?
thanks alot and regards david
El jue., 13 feb. 2020 a las 18:12, David Escartin (<descartin@sonoc.io mailto:descartin@sonoc.io>) escribió:
hello Daniel i have tried it and seems fine. thanks a lot and regards david El jue., 13 feb. 2020 a las 17:13, Daniel-Constantin Mierla (<miconda@gmail.com <mailto:miconda@gmail.com>>) escribió: Hello, indeed keeping route block index in unsigned it can create problems. I pushed a patch for it: - https://github.com/kamailio/kamailio/commit/6c557efc1b9cb8c880a05235c94780bbaf305073 Can you try and see if now works ok? If yes, it will be backported. Cheers, Daniel On 13.02.20 13:27, David Escartin wrote:
Hello all Testing dialog timeout event callback for kemi lua setup on kamailio 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the dlg timeroute behaviour the same as we could on native version. If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that on a dialog timeout, the dlg_ontimeout event route was not triggered, and only the dialog callback was executed with evname dialog:end. (only executing event_route -1 on state 5) So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?) Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing ..... 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg 0x7f9a961f5f90 with 1 -> 3 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing route -1 on timeout 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead child 16, pid 5579 (shutting down?) .... Adding some debug, i could see that the call was not attempting the kemi function of line 1598 of dlg_handlers.c, and was trying the code i think was for native on line 1593. We think the issue is that the toroute is defined as unsigned dlg_hash.h: unsigned int toroute; /*!< index of route that is executed on timeout */ but after that when setting $dlg_ctx(timeout_route) with pv module, it tries to compare an integer being unsigned, so it's always true and never uses kemi with this change we made it work + if ((int)(dlg->toroute) > 0) { + /*if(dlg->toroute>0) {*/ but i don't know maybe there is a better way to do it. best regards david _______________________________________________ Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org <mailto:sr-dev@lists.kamailio.org> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
-- 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 - March 9-11, 2020, Berlin - www.asipto.com <http://www.asipto.com> Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com <http://www.kamailioworld.com>
Hello Daniel
thanks a lot
Regards david
El lun., 6 abr. 2020 a las 13:22, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
apparently it was not backported to 5.3, somehow I forgot about it. I just did it a few minutes ago.
Cheers, Daniel On 06.04.20 10:49, David Escartin wrote:
Dear Daniel
hope everything is ok. Sorry if i missed something, but has been this patch already backported from master to 5.3 yet?
thanks alot and regards david
El jue., 13 feb. 2020 a las 18:12, David Escartin (descartin@sonoc.io) escribió:
hello Daniel
i have tried it and seems fine.
thanks a lot and regards david
El jue., 13 feb. 2020 a las 17:13, Daniel-Constantin Mierla (< miconda@gmail.com>) escribió:
Hello,
indeed keeping route block index in unsigned it can create problems. I pushed a patch for it:
https://github.com/kamailio/kamailio/commit/6c557efc1b9cb8c880a05235c94780bb...
Can you try and see if now works ok? If yes, it will be backported.
Cheers, Daniel
On 13.02.20 13:27, David Escartin wrote:
Hello all
Testing dialog timeout event callback for kemi lua setup on kamailio 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the dlg timeroute behaviour the same as we could on native version. If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that on a dialog timeout, the dlg_ontimeout event route was not triggered, and only the dialog callback was executed with evname dialog:end. (only executing event_route -1 on state 5) So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?) Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing ..... 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg 0x7f9a961f5f90 with 1 -> 3 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing route -1 on timeout 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead child 16, pid 5579 (shutting down?) .... Adding some debug, i could see that the call was not attempting the kemi function of line 1598 of dlg_handlers.c, and was trying the code i think was for native on line 1593. We think the issue is that the toroute is defined as unsigned dlg_hash.h: unsigned int toroute; /*!< index of route that is executed on timeout */ but after that when setting $dlg_ctx(timeout_route) with pv module, it tries to compare an integer being unsigned, so it's always true and never uses kemi with this change we made it work
if ((int)(dlg->toroute) > 0) {
/*if(dlg->toroute>0) {*/
but i don't know maybe there is a better way to do it.
best regards david
Kamailio (SER) - Development Mailing Listsr-dev@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio Advanced Training - March 9-11, 2020, Berlin - www.asipto.com Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda