Hello,
please check that you call handle_subscribe within a condition like
this:
if (t_newtran()) {
...
};
Jan.
On 29-07 09:14, Kevin Chu wrote:
Hi,
I tried to use the pa modules to process SUBSCRIBE request from SIP user.
However, the following error message was returned when the pa module tried
to send 200 OK response:
0(19584) ERROR: t_reply: cannot send a t_reply to a message for which no
T-state has been established
0(19584) send_reply(): Error while sending 200 OK
Looks like the transaction state was missing while sending the response.
Please see the attached debug
and error message. I can't figure out the reason for that error, could
anybody help me out? Thanks!
BR,
Kevin
0(19584) SIP Request:
0(19584) method: <SUBSCRIBE>
0(19584) uri: <sip:kchu@192.170.106.71>
0(19584) version: <SIP/2.0>
0(19584) parse_headers: flags=1
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c06cc frag. 0x80c06b4 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 116) called from parser/msg_parser.c: get_hdr_field(109)
0(19584) qm_malloc(0x80b6f60, 116) returns address 0x80bfd10 frag. 0x80bfcf8 (size=116)
on 1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/parse_via.c: parse_via(1776)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0954 frag. 0x80c093c (size=32) on
1 -th hit
0(19584) Found param type 232, <branch> =
<35a62b0a16a04f4549dade71a3fb09b5.0>; state=16
0(19584) end of header reached, state=5
0(19584) parse_headers: Via found, flags=1
0(19584) parse_headers: this is the first via
0(19584) After parse_msg...
0(19584) preparing to run routing scripts...
0(19584) DEBUG : is_maxfwd_present: searching for max_forwards header
0(19584) parse_headers: flags=128
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0904 frag. 0x80c08ec (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 116) called from parser/msg_parser.c: get_hdr_field(109)
0(19584) qm_malloc(0x80b6f60, 116) returns address 0x80bf720 frag. 0x80bf708 (size=116)
on 1 -th hit
0(19584) end of header reached, state=5
0(19584) parse_headers: Via found, flags=128
0(19584) parse_headers: this is the second via
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c067c frag. 0x80c0664 (size=32) on
1 -th hit
0(19584) DEBUG: is_maxfwd_present: value = 69
0(19584) parse_headers: flags=8
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c08b4 frag. 0x80c089c (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 36) called from parser/parse_from.c:
parse_from_header(62)
0(19584) qm_malloc(0x80b6f60, 36) returns address 0x80c09a4 frag. 0x80c098c (size=36) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 24) called from parser/parse_to.c: parse_to_param(283)
0(19584) qm_malloc(0x80b6f60, 24) returns address 0x80c026c frag. 0x80c0254 (size=24) on
1 -th hit
0(19584) DEBUG: add_param: tag=30f66dc2fb1c48f582334745f71cc15b
0(19584) qm_malloc(0x80b6f60, 24) called from parser/parse_to.c: parse_to_param(283)
0(19584) qm_malloc(0x80b6f60, 24) returns address 0x80c09f8 frag. 0x80c09e0 (size=28) on
1 -th hit
0(19584) DEBUG: add_param: epid=2ffb27842c
0(19584) end of header reached, state=29
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: anchor_lump(292)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0864 frag. 0x80c084c (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: anchor_lump(292)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0814 frag. 0x80c07fc (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_cond_lump_after(212)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c07c4 frag. 0x80c07ac (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_cond_lump_before(238)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0304 frag. 0x80c02ec (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 24) called from record.c: build_rr(109)
0(19584) qm_malloc(0x80b6f60, 24) returns address 0x80bf7c4 frag. 0x80bf7ac (size=28) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 45) called from record.c: build_rr(115)
0(19584) qm_malloc(0x80b6f60, 48) returns address 0x80c0760 frag. 0x80c0748 (size=52) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 2) called from record.c: build_rr(117)
0(19584) qm_malloc(0x80b6f60, 4) returns address 0x80be940 frag. 0x80be928 (size=4) on 1
-th hit
0(19584) qm_malloc(0x80b6f60, 6) called from record.c: build_rr(119)
0(19584) qm_malloc(0x80b6f60, 8) returns address 0x80bf8bc frag. 0x80bf8a4 (size=8) on 1
-th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_after(111)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c062c frag. 0x80c0614 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_subst_lump_after(161)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c05dc frag. 0x80c05c4 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_cond_lump_after(212)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c03a4 frag. 0x80c038c (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_after(111)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c02b4 frag. 0x80c029c (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_before(136)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c058c frag. 0x80c0574 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_before(136)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c053c frag. 0x80c0524 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: anchor_lump(292)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c04ec frag. 0x80c04d4 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: anchor_lump(292)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c049c frag. 0x80c0484 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 24) called from record.c: build_rr(109)
0(19584) qm_malloc(0x80b6f60, 24) returns address 0x80c0354 frag. 0x80c033c (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 45) called from record.c: build_rr(115)
0(19584) qm_malloc(0x80b6f60, 48) returns address 0x80c0438 frag. 0x80c0420 (size=52) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 2) called from record.c: build_rr(117)
0(19584) qm_malloc(0x80b6f60, 4) returns address 0x80beccc frag. 0x80becb4 (size=4) on 1
-th hit
0(19584) qm_malloc(0x80b6f60, 6) called from record.c: build_rr(119)
0(19584) qm_malloc(0x80b6f60, 8) returns address 0x80bf930 frag. 0x80bf918 (size=8) on 1
-th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_after(111)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0178 frag. 0x80c0160 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_subst_lump_after(161)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c01c8 frag. 0x80c01b0 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_cond_lump_after(212)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0128 frag. 0x80c0110 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_after(111)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c00d8 frag. 0x80c00c0 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_before(136)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0088 frag. 0x80c0070 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from data_lump.c: insert_new_lump_before(136)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80c0038 frag. 0x80c0020 (size=32) on
1 -th hit
0(19584) parse_headers: flags=256
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bffe8 frag. 0x80bffd0 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 36) called from parser/msg_parser.c: get_hdr_field(149)
0(19584) qm_malloc(0x80b6f60, 36) returns address 0x80bfe54 frag. 0x80bfe3c (size=36) on
1 -th hit
0(19584) end of header reached, state=9
0(19584) DEBUG: get_hdr_field: <To> [27]; uri=[sip:kchu@192.170.106.71]
0(19584) DEBUG: to body [<sip:kchu@192.170.106.71>
]
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bff98 frag. 0x80bff80 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bff48 frag. 0x80bff30 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 20) called from parser/msg_parser.c: get_hdr_field(128)
0(19584) qm_malloc(0x80b6f60, 20) returns address 0x80c071c frag. 0x80c0704 (size=20) on
1 -th hit
0(19584) get_hdr_field: cseq <CSeq>: <1> <SUBSCRIBE>
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bfef8 frag. 0x80bfee0 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bfea8 frag. 0x80bfe90 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bfe04 frag. 0x80bfdec (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bfdb4 frag. 0x80bfd9c (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bfcc0 frag. 0x80bfca8 (size=32) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bf9b8 frag. 0x80bf9a0 (size=32) on
1 -th hit
0(19584) DEBUG: get_hdr_body : content_length=0
0(19584) qm_malloc(0x80b6f60, 32) called from parser/msg_parser.c: parse_headers(271)
0(19584) qm_malloc(0x80b6f60, 32) returns address 0x80bf968 frag. 0x80bf950 (size=32) on
1 -th hit
0(19584) found end of header
0(19584) qm_free(0x80b6f60, 0x80bf968), called from parser/msg_parser.c:
parse_headers(287)
0(19584) qm_free: freeing frag. 0x80bf950 alloc'ed from parser/msg_parser.c:
parse_headers(271)
0(19584) find_first_route(): No Route headers found
0(19584) loose_route(): There is no Route HF
0(19584) check_self - checking if host==us: 14==14 && [192.170.106.71] ==
[192.170.106.71]
0(19584) parse_headers: flags=6299656
0(19584) qm_malloc(0x80b6f60, 12) called from parser/parse_event.c: parse_event(115)
0(19584) qm_malloc(0x80b6f60, 12) returns address 0x80bf654 frag. 0x80bf63c (size=12) on
1 -th hit
0(19584) qm_malloc(0x80b6f60, 43) called from subscribe.c: parse_accept(155)
0(19584) qm_malloc(0x80b6f60, 44) returns address 0x80c0a44 frag. 0x80c0a2c (size=56) on
1 -th hit
0(19584) qm_free(0x80b6f60, 0x80c0a44), called from subscribe.c: parse_accept(171)
0(19584) qm_free: freeing frag. 0x80c0a2c alloc'ed from subscribe.c:
parse_accept(155)
0(19584) qm_malloc(0x42133000, 51) called from presentity.c: new_presentity(54)
0(19584) qm_malloc(0x42133000, 52) returns address 0x422c051c frag. 0x422c0504 (size=52)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 108) called from dlg.c: new_dlg_uas(733)
0(19584) qm_malloc(0x42133000, 108) returns address 0x422c0580 frag. 0x422c0568
(size=108) on 1 -th hit
0(19584) parse_headers: flags=-1
0(19584) qm_malloc(0x80b6f60, 8) called from parser/contact/parse_contact.c:
parse_contact(81)
0(19584) qm_malloc(0x80b6f60, 8) returns address 0x80bf884 frag. 0x80bf86c (size=8) on 1
-th hit
0(19584) qm_malloc(0x80b6f60, 36) called from parser/contact/contact.c:
parse_contacts(194)
0(19584) qm_malloc(0x80b6f60, 36) returns address 0x80c0218 frag. 0x80c0200 (size=36) on
1 -th hit
0(19584) qm_malloc(0x42133000, 25) called from dlg.c: str_duplicate(88)
0(19584) qm_malloc(0x42133000, 28) returns address 0x422c061c frag. 0x422c0604 (size=28)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 32) called from dlg.c: str_duplicate(88)
0(19584) qm_malloc(0x42133000, 32) returns address 0x422c0668 frag. 0x422c0650 (size=32)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 48) called from dlg.c: str_duplicate(88)
0(19584) qm_malloc(0x42133000, 48) returns address 0x422c06b8 frag. 0x422c06a0 (size=48)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 46) called from dlg.c: get_dlg_uri(640)
0(19584) qm_malloc(0x42133000, 48) returns address 0x422c0718 frag. 0x422c0700 (size=48)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 25) called from dlg.c: get_dlg_uri(640)
0(19584) qm_malloc(0x42133000, 28) returns address 0x422c0778 frag. 0x422c0760 (size=28)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 37) called from dlg.c: str_duplicate(88)
0(19584) qm_malloc(0x42133000, 40) returns address 0x422c07c4 frag. 0x422c07ac (size=40)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 45) called from watcher.c: new_watcher(53)
0(19584) qm_malloc(0x42133000, 48) returns address 0x422c081c frag. 0x422c0804 (size=48)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 40) called from urecord.c: new_urecord(53)
0(19584) qm_malloc(0x42133000, 40) returns address 0x422c087c frag. 0x422c0864 (size=40)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 23) called from urecord.c: new_urecord(60)
0(19584) qm_malloc(0x42133000, 24) returns address 0x422c08d4 frag. 0x422c08bc (size=24)
on 1 -th hit
0(19584) qm_malloc(0x42133000, 12) called from notify.c: add_watcher(31)
0(19584) qm_malloc(0x42133000, 12) returns address 0x422c091c frag. 0x422c0904 (size=12)
on 1 -th hit
0(19584) DEBUG: t_check: msg id=2 global id=0 T start=0xffffffff
0(19584) parse_headers: flags=-1
0(19584) parse_headers: flags=60
0(19584) t_lookup_request: start searching: hash=45014, isACK=0
0(19584) DEBUG: proceeding to pre-RFC3261 transaction matching
0(19584) DEBUG: t_lookup_request: no transaction found
0(19584) DEBUG: t_check: msg id=2 global id=2 T end=(nil)
0(19584) ERROR: t_reply: cannot send a t_reply to a message for which no T-state has
been established
0(19584) send_reply(): Error while sending 200 OK
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers