Simon,
I made some small modification in TM to allow dropping provisional
replies from onreply_route[] - I'm not 100% that I didn't messed up
something else :-( . Please apply the attached patch and try to see if
it works.
In script do:
onreply_route[1] {
if (t_check_status("183"))
drop();
}
IMPORTANT: be sure that drop is the last executed function before ending
the route (when you want to drop the reply)
Best regards,
Marian
Simon Miles wrote:
Thanks for the advise guys.
I've asked both vendors to firm this problem but in the meantime I would
still like the ser to stop sending the 183 message - any suggestions ?
Simon
--
Voice System
http://www.voice-system.ro
Index: modules/tm/t_reply.c
===================================================================
RCS file: /cvsroot/ser/sip_router/modules/tm/t_reply.c,v
retrieving revision 1.98
diff -u -r1.98 t_reply.c
--- modules/tm/t_reply.c 3 Dec 2004 19:09:33 -0000 1.98
+++ modules/tm/t_reply.c 26 Jan 2005 21:17:51 -0000
@@ -1195,7 +1195,7 @@
*/
int reply_received( struct sip_msg *p_msg )
{
-
+ int ret;
int msg_status;
int last_uac_status;
char *ack;
@@ -1275,12 +1275,17 @@
if (t->uas.request) p_msg->flags=t->uas.request->flags;
/* set the as avp_list the one from transaction */
backup_list = set_avp_list( &t->user_avps );
- if (run_actions(onreply_rlist[t->on_reply], p_msg)<0)
+ ret = run_actions(onreply_rlist[t->on_reply], p_msg);
+ if (ret<0)
LOG(L_ERR, "ERROR: on_reply processing failed\n");
/* transfer current message context back to t */
if (t->uas.request) t->uas.request->flags=p_msg->flags;
/* restore original avp list */
set_avp_list( backup_list );
+ if (ret==0 && msg_status<200) {
+ DBG("DEBUG: on_reply processing dropped the reply\n");
+ goto done;
+ }
}
LOCK_REPLIES( t );
if ( is_local(t) ) {