}
else proto=msg.getRequestLine().getAddress().getTransport();
if (proto==null) proto=sip_provider.getDefaultTransport();
// add Via
ViaHeader via=new ViaHeader(proto,sip_provider.getViaAddress(),sip_provider.getPort());
if (sip_provider.isRportSet()) via.setRport();
String branch=sip_provider.pickBranch(msg);
if (server_profile.loop_detection)
{ String loop_tag=msg.getHeader(Loop_Tag).getValue();
if (loop_tag!=null)
{ msg.removeHeader(Loop_Tag);
branch+=loop_tag;
}
}
via.setBranch(branch);
msg.addViaHeader(via);
// decrement Max-Forwards
MaxForwardsHeader maxfwd=msg.getMaxForwardsHeader();
if (maxfwd!=null) maxfwd.decrement();