Hmm that is difficult. What are the possible outcomes:
- defender sorties without relief - exit order
- attacker attacks before relief - attack garrison
- attacker lifts siege & attacks relief, no support from garrison - that's what's currently happening
- relief & garrison attack attacker together - currently not possible
If the garrison is strong you do 1. If the attacker is - 2.
3 would only happen if the attacker knows of the relief force and the garrison doesn't. Or the attacker has to split his forces and leave enough men to hold the siege.
4 would happen if the attacker is unaware of the relief force (until its there). If you show up with your relief force at the besieged city then both the beleaguering force as well as the defenders will know that you are there. No need for messages. The noise when the fighting starts should be more than enough to cue a sortie from the defenders.
How to put this in rules? I suggest to use the generals stats.
Compare relief's attack vs attackers defence.
If relief wins its 4. Garrison forces get added to relief force.
If attackers win compare garrisons attack vs attackers defence.
If garrison wins deduct garrison forces from attacker for battle (forces need to hold back to keep siege going).
If attacker wins its a normal battle between relief and attacker.