I will use Zain as my reference. I'm pretty sure this functionality is available on other operators too.
Dial 155
Choose language by pressing 1(Eng) or 2(swa),
Listen to the prompts till it says press 4 to upload your tone.
You will be instructed to record your tone after the beep for a max of 15sec,
After recording you will be asked whether you want to set this recorded tone as your default to all callers, once you agree you will be required to press 1 to confirm.
(The call costs 3/= per min, the tone costs 40/=)
NB: If you know your way around, there is no need to wait for the prompts to end before keying in your choices eg Dialing 155, pressing 1, then pressing 4 in quick succession takes you to the recording bit)
The above assumes that u r already registered for the service. If not, there is the initial registration bit at the beginning of the call. The rest is pretty much the same. Hope this helps.