Hi,
I am trying to use t_suspend()/t_continue() multiple times on the same
transaction. Calling t_suspend() more than once works, but the second
time I call t_continue() the transaction is killed and a 500 response is
sent. It is the "if (branch == t->nr_of_outgoings)" check from the code
fragment below (from t_suspend.c:t_continue()) that results in the
transaction being killed - you can see the debug/error line I added to
determine this in the fragment.
Is using t_suspend()/t_continue() multiple times something that should
work?
Thanks,
Peter
if (t->uas.status < 200) {
/* No final reply has been sent yet.
* Check whether or not there is any pending branch.
*/
for ( branch = 0;
branch < t->nr_of_outgoings;
branch++
) {
if ((t->uac[branch].request.buffer != NULL)
&& (t->uac[branch].last_received < 200)
)
break;
}
if (branch == t->nr_of_outgoings) {
/* There is not any open branch so there is
* no chance that a final response will be
received. */
ret = 0;
LM_ERR("branch == t->nr_of_outgoings\n");
goto kill_trans;
}
}
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd
Module: sip-router
Branch: master
Commit: 0f702f6e236eb0cbb238bf83a0c4ae94d7b3cad8
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0f702f6…
Author: Anca Vamanu <anca.vamanu(a)1and1.ro>
Committer: Anca Vamanu <anca.vamanu(a)1and1.ro>
Date: Thu Jul 19 17:49:13 2012 +0300
modules_k/uac: uac_replace_from/to AUTO mode with dialog module
Added a implementation for uac_replace_from/to() that uses the dialog
module for AUTO mode. In this mode the URIs are stored as dialog
variables.
The change in tm module fixes a bug: if uac_replace_to() was called, the
URI was not changed accordingly in Cancel.
---
modules/tm/t_cancel.c | 5 +-
modules_k/dialog/dialog.c | 2 +
modules_k/dialog/dlg_load.h | 6 +
modules_k/uac/README | 111 +++++++++++-----
modules_k/uac/doc/uac_admin.xml | 68 +++++++++-
modules_k/uac/replace.c | 292 ++++++++++++++++++++++++++++++---------
modules_k/uac/uac.c | 17 ++-
7 files changed, 393 insertions(+), 108 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=0f7…
Hi All,
I'm observing a core intermittently at "qm_status (qm=0x786cd000) at
mem/q_malloc.c:763" for kamailio version 3.1.0
looking at the backtrace this is occurring while doing a tcp buffer
overrun. Please have a look and let me know if anyone observed this issue
or how can we debug it.
Please find the backtrace and kamailio version
osbprod-V2R0:~ # /usr/sbin/kamailio -V
version: kamailio 3.1.0 (i386/linux) 21a375
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
DBG_QM_MALLOC, 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_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535, PKG_SIZE 15MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 21a375
compiled on 12:38:44 Apr 26 2012 with gcc 4.5.0
#0 qm_status (qm=0x786cd000) at mem/q_malloc.c:763
#1 0x0819c0f3 in qm_debug_frag (qm=0x786cd000, f=<value optimized out>) at
mem/q_malloc.c:167
#2 0x0819c352 in qm_free (qm=0x786cd000, p=0x7a6cb6ac, file=0x821cce2
"<core>: tcp_main.c", func=0x822285f "wbufq_run", line=880) at
mem/q_malloc.c:457
#3 0x0815f686 in wbufq_run (tcpconn=0x7a1a7548, ev=4, fd_i=-1) at
tcp_main.c:880
#4 handle_tcpconn_ev (tcpconn=0x7a1a7548, ev=4, fd_i=-1) at tcp_main.c:4141
#5 0x08169bf2 in io_wait_loop_epoll () at io_wait.h:1092
#6 tcp_main_loop () at tcp_main.c:4606
#7 0x080b0404 in main_loop () at main.c:1655
#8 0x080b1f84 in main (argc=9, argv=0xbfb4c9f4) at main.c:2446
(gdb) l
758 LOG_(DEFAULT_FACILITY, memlog, "qm_status: ",
759 "dumping free list stats :\n");
760 for(h=0,i=0;h<QM_HASH_SIZE;h++){
761 unused=0;
762 for (f=qm->free_hash[h].head.u.nxt_free,j=0;
763 f!=&(qm->free_hash[h].head);
f=f->u.nxt_free, i++, j++){
764 if (!FRAG_WAS_USED(f)){
765 unused++;
766 #ifdef DBG_QM_MALLOC
767 LOG_(DEFAULT_FACILITY,
memlog, "qm_status: ",
Hi, full agree with this bug report. Adding the devel maillist. More
comments at the end of the mail:
2012/7/26 José Luis Millán <jmillan(a)aliax.net>:
> Hi,
>
> I'm using Kamilio 3.3.0 as registrar server. I`m using an outbound proxy so
> 'use_path' parameter or 'registrar' module is enabled.
>
> According to RFC 5626, a re-registration from a specific combination of AoR,
> instance_id and reg_id must update the binding.
>
> ""
> If the registrar receives a re-registration for a specific
> combination of AOR, and instance-id and reg-id values, the registrar
> MUST update any information that uniquely identifies the network flow
> over which the request arrived if that information has changed, and
> SHOULD update the time the binding was last updated.
> ""
>
> In my installation this is not fullfilled as shown:
>
> ""
> AOR:: jmillan
> Contact:: sip:jmillan@MY_IP;transport=ws;ov-ob=a570655c14 Q=
> Expires:: 181
> Callid:: 1hgq3khalq2rzfr
> Cseq:: 108
> User-agent:: JsSIP 0.1.0
> Path::
> <sip:OUTBOUND_IP:9090;transport=tcp;lr;ovid=de0c0b9f>,<sip:a570655c14@OUTBOUND_IP:10080;transport=ws;lr;ovid=de0c0b9f;ob>
> State:: CS_SYNC
> Flags:: 0
> Cflag:: 0
> Socket:: tcp:KAM_IP:5060
> Methods:: 783
> Ruid:: uloc-50119d99-328e-1
> Instance::
> <urn:uuid:38dce009-ae1f-4fd1-91dc-99ed9affddc1>
> Reg-Id:: 1
> Contact:: sip:jmillan@MY_IP;transport=ws;ov-ob=1dd97b4d51 Q=
> Expires:: 193
> Callid:: 1hgq3khalq2rzfr
> Cseq:: 110
> User-agent:: JsSIP 0.1.0
> Path::
> <sip:OUTBOUND_IP:9090;transport=tcp;lr;ovid=de0c0b9f>,<sip:1dd97b4d51@OUTBOUND_IP:10080;transport=ws;lr;ovid=de0c0b9f;ob>
> State:: CS_SYNC
> Flags:: 0
> Cflag:: 0
> Socket:: tcp:KAM_IP:5060
> Methods:: 783
> Ruid:: uloc-50119d99-3290-2
> Instance::
> <urn:uuid:38dce009-ae1f-4fd1-91dc-99ed9affddc1>
> Reg-Id:: 1
> ""
>
> The scenario is such that when the client looses the connection with the
> Outbound Server, it reconnects and re-registers to Kamailio in order to
> replace registration and be able to receive in-dialog messages.
Receiving in-dialog requests should work since GRUU is also being
used. The problem is that the new REGISTER (after UA disconnection)
does not update the previous one (as this thread reports) so Kamailio
still chooses the previous binding which does not work anymore.
Regards.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>
At least some links at http://www.kamailio.org/wiki/ don't work at the
moment:
Install Kamailio v3.3.x From GIT
Upgrade Kamailio v3.1.x to v3.2.0
Upgrade Kamailio v3.2.x to v3.3.0
you are redirected to some instruction from DokuWiki Installer when
trying to visit them. Could somebody please check it?
Thanks.
Andrew