Index: /team/irroot/distrotech-customers-1.8/channels/chan_sip.c =================================================================== --- /team/irroot/distrotech-customers-1.8/channels/chan_sip.c (revision 337540) +++ /team/irroot/distrotech-customers-1.8/channels/chan_sip.c (working copy) @@ -5051,7 +5051,7 @@ if (!(dialog->vrtp = ast_rtp_instance_new(dialog->engine, sched, &bindaddr_tmp, NULL))) { return -1; } - ast_rtp_instance_set_timeout(dialog->vrtp, global_rtptimeout); + ast_rtp_instance_set_timeout(dialog->vrtp, (dialog->rtptimeout) ? dialog->rtptimeout : global_rtptimeout); ast_rtp_instance_set_hold_timeout(dialog->vrtp, global_rtpholdtimeout); ast_rtp_instance_set_keepalive(dialog->vrtp, global_rtpholdtimeout); @@ -5062,14 +5062,14 @@ if (!(dialog->trtp = ast_rtp_instance_new(dialog->engine, sched, &bindaddr_tmp, NULL))) { return -1; } - ast_rtp_instance_set_timeout(dialog->trtp, global_rtptimeout); + ast_rtp_instance_set_timeout(dialog->trtp, (dialog->rtptimeout) ? dialog->rtptimeout : global_rtptimeout); ast_rtp_instance_set_hold_timeout(dialog->trtp, global_rtpholdtimeout); ast_rtp_instance_set_keepalive(dialog->trtp, global_rtpholdtimeout); ast_rtp_instance_set_prop(dialog->trtp, AST_RTP_PROPERTY_RTCP, 1); } - ast_rtp_instance_set_timeout(dialog->rtp, global_rtptimeout); + ast_rtp_instance_set_timeout(dialog->rtp, (dialog->rtptimeout) ? dialog->rtptimeout : global_rtptimeout); ast_rtp_instance_set_hold_timeout(dialog->rtp, global_rtpholdtimeout); ast_rtp_instance_set_keepalive(dialog->rtp, global_rtpkeepalive); @@ -5132,6 +5132,7 @@ ast_string_field_set(dialog, engine, peer->engine); + dialog->rtptimeout = peer->rtptimeout; if (dialog_initialize_rtp(dialog)) { return -1; } @@ -5182,7 +5183,6 @@ dialog->pickupgroup = peer->pickupgroup; dialog->allowtransfer = peer->allowtransfer; dialog->jointnoncodeccapability = dialog->noncodeccapability; - dialog->rtptimeout = peer->rtptimeout; /* Update dialog authorization credentials */ ao2_lock(peer); @@ -15598,6 +15598,7 @@ else p->noncodeccapability &= ~AST_RTP_DTMF; p->jointnoncodeccapability = p->noncodeccapability; + p->rtptimeout = peer->rtptimeout; if (!dialog_initialize_rtp(p)) { if (p->rtp) { ast_rtp_codecs_packetization_set(ast_rtp_instance_get_codecs(p->rtp), p->rtp, &peer->prefs); @@ -15719,6 +15720,7 @@ /* Finally, apply the guest policy */ if (sip_cfg.allowguest) { get_rpid(p, req); + p->rtptimeout = global_rtptimeout; if (!dialog_initialize_rtp(p)) { res = AUTH_SUCCESSFUL; } else {