Hi Pavel,

Thanks for the logs - please apply the attached patch and let me know if this solved your problem.

Regards,
Bogdan

On 08/08/2011 11:59 PM, Pavel Eremin wrote:
Bogdan, here is debug 6 when i recieve 180 Message. 11.11.11.11 - A, 22.22.22.22 - B (opensips with Topologu_hiding), 33.33.33.33 - C

Aug  8 09:42:36 opensips ./opensips[20030]: incoming reply
Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_msg: SIP Reply (status): Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_msg: version: <SIP/2.0> Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_msg: status: <180> Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_msg: reason: <Ringing> Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=2 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_via_param: found param type 232, <branch> = <z9hG4bK8d86.1649d5a2.0>; state=16 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_via: end of header reached, state=5 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: via found, flags=2 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: this is the first via Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:receive_msg: After parse_msg... Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:forward_reply: found module tm, passing reply to it Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_check: start=0xffffffffffffffff Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=22 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_to_param: tag=1c416124843 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_to: end of header reached, state=29 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_to: display={}, ruri={sip:79128923945@22.22.22.22;user=phone} Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:get_hdr_field: <To> [58]; uri=[sip:79128923945@22.22.22.22;user=phone] Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:get_hdr_field: to body [<sip:79128923945@22.22.22.22;user=phone>] Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:get_hdr_field: cseq <CSeq>: <1> <INVITE> Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=8 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_reply_matching: hash 26840 label 710775905 branch 0 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_reply_matching: REF_UNSAFE:[0x7f4a74c66480] after is 1 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_reply_matching: reply matched (T=0x7f4a74c66480)! Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 2, id 5 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=2000 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:get_hdr_field: content_length=0 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 2, id 3 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_to_param: tag=2925795659-3759225282-335606691-1600804190 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_to: end of header reached, state=29 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_to: display={}, ruri={sip:73512453023@11.11.11.11} Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=40 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:siptrace:trace_onreply_in: storing info 7... Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 44 chars, out: 44 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 6 chars, out: 6 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 3 chars, out: 3 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 20 chars, out: 20 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 20 chars, out: 20 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 2 chars, out: 2 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 42 chars, out: 42 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 0 chars, out: 0 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_submit_query: 0x7dadc8 PQsendQuery (insert into sip_trace (msg,callid,method,status,fromip,toip,time_stamp,direction,fromtag,traced_user ) values ('SIP/2.0 180 Ringing\\015\\012Via: SIP/2.0/UDP 22.22.22.22;branch=z9hG4bK8d86.1649d5a2.0\\015\\012 From: <sip:73512453023@11.11.11.11>;tag=2925795659-3759225282-335606691-1600804190\\015\\012
To: <sip:79128923945@22.22.22.22;user=phone>;tag=1c416124843\\015\\012
Call-ID: 4b196530c23911e0a3f300145e556a5f@11.11.11.11\\015\\012CSeq: 1 INVITE\\015\\012
Contact: <sip:1...@media.sipproxy.xz:5060;transport=udp>\\015\\012
Supported: em,timer,replaces,path,early-session,resource-priority\\015\\012 Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE\\015\\012 Server: Audiocodes-Sip-Gateway-/v.5.80A.039.005\\015\\012Content-Length: 0\\015\\012 Record-Route: <sip:33.33.33.33;lr;ftag=2925795659-3759225282-335606691-1600804190;did=1a.9b364f41> \\015\\012\\015\\012','4b196530c23911e0a3f300145e556a5f@11.11.11.11','INVITE','180','udp:33.33.33.33:5060','udp:22.22.22.22:5060','2011-08-09 09:42:36','in','2925795659-3759225282-335606691-1600804190','')) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:db_new_result: allocate 48 bytes for result set at 0x7dc168 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_store_result: 0x7dadc8 PQresultStatus(PGRES_COMMAND_OK) PQgetResult(0x25b3bc0) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:free_query: PQclear(0x25b3bc0) result set Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:db_free_rows: freeing 0 rows Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:db_free_result: freeing result set at 0x7dc168 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 2, id 1 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:dlg_th_onreply: start Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:dlg_replace_contact: Replaced contact with [<sip:22.22.22.22:5060;did=1a8.a01b9366>] Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:dlg_th_onreply: peer_leg = 0 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:dlg_th_onreply: Added Via headers [Via: SIP/2.0/UDP 11.11.11.11:5061;rport;branch=z9hG4bK-2257328459-3759225282-335606691-1600804190#015#012] leg=0x7f4a74c65b08 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_check: end=0x7f4a74c66480 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:reply_received: org. status uas=100, uac[0]=100 local=0 is_invite=1)
Aug  9 09:42:36 opensips ./opensips[20031]: incoming reply
Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_should_relay_response: T_code=100, new_code=180 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:relay_reply: branch=0, save=0, relay=0 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 8, id 0 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:push_reply_in_dialog: 0x7f4a74c60318 totag in rpl is <1c416124843> (11) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:push_reply_in_dialog: new branch with tag <1c416124843> Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:init_leg_info: route_set , contact , cseq 1 and bind_addr udp:22.22.22.22:5060 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:dlg_add_leg_info: set leg 1 for 0x7f4a74c60318: tag=<1c416124843> rcseq=<1> Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:build_res_buf_from_sip_res: old size: 677, new size: 712 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:build_res_buf_from_sip_res: copied size: orig:350, new: 385, rest: 327 msg=#012SIP/2.0 180 Ringing#015#012Via: SIP/2.0/UDP 11.11.11.11:5061;rport;branch=z9hG4bK-2257328459-3759225282-335606691-1600804190#015#012From: <sip:73512453023@11.11.11.11>;tag=2925795659-3759225282-335606691-1600804190#015#012To: <sip:79128923945@22.22.22.22;user=phone>;tag=1c416124843#015#012Call-ID: 4b196530c23911e0a3f300145e556a5f@11.11.11.11#015#012CSeq: 1 INVITE#015#012Contact: <sip:22.22.22.22:5060;did=1a8.a01b9366>#015#012Supported: em,timer,replaces,path,early-session,resource-priority#015#012Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE#015#012Server: Audiocodes-Sip-Gateway-/v.5.80A.039.005#015#012Content-Length: 0#015#012Record-Route: <sip:33.33.33.33;lr;ftag=2925795659-3759225282-335606691-1600804190;did=1a.9b364f41>#015#012#015#012 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 64, id 0 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:dialog:next_state_dlg: dialog 0x7f4a74c60318 changed from state 1 to state 2, due event 2 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:relay_reply: sent buf=0x7de5f8: SIP/2.0 1..., shmem=0x7f4a74c736b0: SIP/2.0 1 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 128, id 5 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=2000 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:run_trans_callbacks: trans=0x7f4a74c66480, callback type 128, id 4 entered Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:parse_headers: flags=40 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:siptrace:trace_onreply_out: dest [udp:11.11.11.11:5061] Aug 9 09:42:36 opensips ./opensips[20031]: DBG:siptrace:trace_onreply_out: storing info 10... Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 44 chars, out: 44 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 6 chars, out: 6 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 3 chars, out: 3 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 20 chars, out: 20 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 20 chars, out: 20 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 3 chars, out: 3 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 42 chars, out: 42 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_val2str: PQescapeStringConn: in: 0 chars, out: 0 chars Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_submit_query: 0x7dadc8 PQsendQuery(insert into sip_trace (msg,callid,method,status,fromip,toip,time_stamp,direction,fromtag,traced_user ) values
('SIP/2.0 180 Ringing\\015\\012Via: SIP/2.0/UDP 11.11.11.11:5061;rport;
branch=z9hG4bK-2257328459-3759225282-335606691-1600804190\\015\\012
From: <sip:73512453023@11.11.11.11>;tag=2925795659-3759225282-335606691-1600804190\\015\\012To: <sip:79128923945@22.22.22.22;us er=phone>;tag=1c416124843\\015\\012Call-ID: 4b196530c23911e0a3f300145e556a5f@11.11.11.11\\015\\012CSeq: 1 INVITE\\015\\012 Contact: <sip:22.22.22.22:5060;did=1a8.a01b9366>\\015\\012Supported: em,timer,replaces,path,early-session,resource-priority\\01 5\\012Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE\\015\\012 Server: Audiocodes-Sip-Gateway-/v.5.80A.039.005\\015\\012Content-Length: 0\\015\\012 Record-Route: <sip:33.33.33.33;lr;ftag=2925795659-3759225282-335606691-1600804190;did=1a.9b364f41>\\015\\012\\015\\012', '4b196530c23911e0a3f300145e556a5f@11.11.11.11','INVITE','180','udp:22.22.22.22:5060','udp:11.11.11.11:5061', '2011-08-09 09:42:36','out','2925795659-3759225282-335606691-1600804190','')) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:db_new_result: allocate 48 bytes for result set at 0x7dc168 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:db_postgres_store_result: 0x7dadc8 PQresultStatus(PGRES_COMMAND_OK) PQgetResult(0x25b3bc0) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:db_postgres:free_query: PQclear(0x25b3bc0) result set Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:db_free_rows: freeing 0 rows Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:db_free_result: freeing result set at 0x7dc168 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:set_timer: relative timeout is 120 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:insert_timer_unsafe: [1]: 0x7f4a74c666d0 (87872) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:tm:t_unref: UNREF_UNSAFE: [0x7f4a74c66480] after is 0 Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:destroy_avp_list: destroying list (nil) Aug 9 09:42:36 opensips ./opensips[20031]: DBG:core:receive_msg: cleaning up



On Tue, 09 Aug 2011 01:35:19 +0600, Bogdan-Andrei Iancu <bog...@opensips.org> wrote:

HI Pavel,

My first guess is that the 180 somehow does no match the transaction....If you can reproduce the case, could you run a call with debug=6 and post the opensips log ?

Regards,
Bogdan

On 08/08/2011 08:24 AM, Pavel Eremin wrote:
Hi!

iF i use topology_hiding in initial request then initial 'INVITE' are
good. There are no Record-Route or Via(except myself) header exist. But in
180 and 183 SIP messages Record-Route is present.

Topology_hiding must delete RR header 180 and 183 in messages too, Does it?

Some scheme like sip_trace. I need to hide C sip-proxy. B is
topology_hiding opensips. A - some client.

A -> initial -> B
C <- initial <- B
B -> 100 try -> A
C -> 180 Ring -> B
A <- 180 Ring <- B (RR present with C ip) ???
C -> 200 OK -> B
A <- 200 OK <- B  (no RR present)
... ACK Exchange and Buy







--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 19th of September 2011
OpenSIPS solutions and "know-how"

Index: modules/dialog/dlg_tophiding.c
===================================================================
--- modules/dialog/dlg_tophiding.c	(revision 8223)
+++ modules/dialog/dlg_tophiding.c	(working copy)
@@ -213,6 +213,13 @@
 	struct dlg_leg* leg;
 
 	LM_DBG("start\n");
+
+	/* parse all headers to be sure that all RR and Contact hdrs are found */
+	if (parse_headers(rpl, HDR_EOH_T, 0)< 0) {
+		LM_ERR("Failed to parse reply\n");
+		return -1;
+	}
+
 	/* replace contact */
 	if(dlg_replace_contact(rpl, dlg) < 0) {
 		LM_ERR("Failed to replace contact\n");
@@ -460,6 +467,12 @@
 	/* add route headers */
 	fix_route_dialog(req, dlg);
 
+	/* replace contact*/
+	if(dlg_replace_contact(req, dlg) < 0) {
+		LM_ERR("Failed to replace contact\n");
+		return -1;
+	}
+
 	/* register tm callback for response in  */
 	ref_dlg( dlg , 1);
 	if ( d_tmb.register_tmcb( req, 0, TMCB_RESPONSE_IN,
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to