no you don't. ser can quite easily be made to turn the 302 to an another invite, where b is listed as caller in rpid or diversion header.
How do you turn 302 to an INVITE in ser?
I made simple function to avp.c with a new function called contact2attr and put it in the reply_route. Then in failure route just using attr2uri, append_branch, and relaying the new invite again (ofcourse adding diversion header first so guy would be billed).
Jens Davidsen