Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evaluate deprecation of function t_newtran() #2155

Closed
pwakano opened this issue Nov 27, 2019 · 1 comment
Closed

Evaluate deprecation of function t_newtran() #2155

pwakano opened this issue Nov 27, 2019 · 1 comment

Comments

@pwakano
Copy link

pwakano commented Nov 27, 2019

Description

It was discovered that the function t_newtran() is causing a conflict with the transaction flags. When calling it before setting transaction flags, the flags are apparently lost, so for instance when using the ACC module, if the ACC flags are set after the t_newtran, these flags seems to get lost and no ACC entries are saved....
Some discussion around the t_newtran usage was already held in the past and it seems the function is not needed anymore to help detecting retransmissions, given the t_precheck_trans() can do this job without having to have an early creation of the transaction.
Not sure if the t_newtran is necessary in any other scenario, but if it is not I think it should be deprecated.

Reproduction

Create simple script which uses ACC and the setflag to save ACC entries in DB. Verify ACC records are being saved properly.
Before calling the setflag(), add a call to t_newtran(). Make calls and check ACC records are not saved anymore.

Additional Information

  • Kamailio Version - output of kamailio -v
# kamailio -v
version: kamailio 5.2.2 (x86_64/linux) 67f967
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 67f967 
compiled on 11:40:41 Mar 11 2019 with gcc 4.8.5

  • Operating System:
# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
# uname -a
Linux dev1-sbc-01 3.10.0-1062.1.1.el7.x86_64 #1 SMP Fri Sep 13 22:55:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

@miconda
Copy link
Member

miconda commented Nov 28, 2019

The function is still needed (e.g., presence server or registrar server when transaction needs to be created for proper generation of replies for retransmissions or execution of some transaction related callbacks.

What you experienced is by design, there is a function to sync back the flags to transaction:

If you still want to discuss further, then let's continue on sr-users mailing list.

@miconda miconda closed this as completed Nov 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants