Call forwarding keeps a Safaricom call reachable when the handset is busy, unanswered, switched off, or outside coverage. The important choice is whether every call should leave the phone or only the calls that would otherwise be missed.
This guide keeps activation, status checks, testing, and cancellation in one place. It also separates established voice-diversion codes from SMS. I found no current Safaricom source that promises customer-controlled SMS forwarding, so the message section explains that limit instead of presenting an unverified code as a working service.
Choose the forwarding rule that matches your situation
Enter the code in your phone’s dialer, choose the Safaricom SIM if the phone has two SIMs, and press the call button. Replace +254722123456 with the number that should receive the forwarded calls.
| When to forward | Activate | Check status | Remove that rule |
|---|---|---|---|
| Every incoming call | **21*+254722123456# |
*#21# |
##21# |
| Only when the line is busy | **67*+254722123456# |
*#67# |
##67# |
| Only when you do not answer | **61*+254722123456# |
*#61# |
##61# |
| Only when the phone is off or unreachable | **62*+254722123456# |
*#62# |
##62# |
These are the standard mobile-network call-forwarding service codes. Code 21 is unconditional, 67 is for a busy line, 61 is for no reply, and 62 is for a line that cannot be reached. The network still decides whether a rule is available on your line and should return an acceptance or rejection message.
Activate the rule, query it, then make a real test call
- Dial the activation code for the condition you need.
- Wait for the network response instead of assuming the code worked.
- Run the matching
*#…#status code and confirm the destination number. - Call your Safaricom number from another phone while reproducing the condition.
For example, after setting the unreachable rule, switch off the Safaricom phone and call it from another line. For the busy rule, keep the Safaricom line on an active call during the test. I verify a network route change the same way. Configure it, inspect the state, exercise the actual path, and keep an undo command ready.
Use conditional forwarding unless every call should leave the phone
**21* is unconditional. Once the network accepts it, the Safaricom handset should not ring for normal incoming calls. That is suitable when another number must handle the line completely, but it can be surprising if you only wanted a backup for missed calls.
The conditional rules are safer for everyday use.
**67*keeps the first call on your line and redirects another call when you are busy.**61*lets the phone ring first and redirects the call only after no reply.**62*redirects the call when the SIM cannot be reached, such as when the phone is off or outside coverage.
Call forwarding can interact with voicemail, roaming, call barring, and your tariff. The forwarded leg is handled like an outgoing call by the mobile network, so confirm the applicable Safaricom charges before relying on it for frequent or international calls.
Remove one diversion without erasing the others
Use the matching double-hash code when you want to remove one stored rule. The choices are ##21#, ##67#, ##61#, and ##62#. Query the rule again afterward to confirm that the network removed it.
The current ETSI/3GPP MMI specification assigns 002 to all call forwarding and 004 to all conditional call forwarding. In practice, ##002# asks the network to erase every forwarding registration, including the unconditional rule. ##004# asks it to erase the busy, no-reply, and unreachable rules while leaving unconditional forwarding alone. A carrier can still reject either request or restore a voicemail diversion, so query 21, 61, 62, and 67 before and after a reset instead of treating the command as proof.
Do not assume the SMS bearer code forwards your messages
You may see **21*[number]*16# described online as an SMS-forwarding code. The number 16 exists in the mobile MMI standard as the SMS basic-service group, but that does not prove Safaricom exposes customer-controlled SMS redirection on your line. I could not verify a current Safaricom service page that promises this behavior, so I cannot present the code as a working Safaricom feature.
This distinction matters for privacy. SMS can contain one-time passwords, account alerts, and private conversations. Do not send an unverified forwarding command and assume the messages are protected. If you need the same messages on another device, use a device or messaging feature you can inspect and revoke, or ask Safaricom to confirm the service and its security behavior for your specific line.
Use the phone settings when the dialer rejects a code
Android and iPhone can expose call-forwarding controls through the Phone settings. The exact menu depends on the device, Android skin, iOS version, SIM arrangement, and carrier provisioning. On a dual-SIM phone, verify that you are editing the Safaricom line rather than the other SIM.
If the dialer reports an invalid MMI code, the rule remains stuck, or the displayed destination is unfamiliar, stop and contact Safaricom through an official support channel. Do not “fix” an unknown diversion by sending calls to a random number, and do not use call forwarding as a substitute for blocking one unwanted caller.
Verify the route before you depend on it
- Check the destination digit by digit before activation.
- Query the exact condition after every change.
- Make a test call from a different line.
- Test again after changing SIMs, roaming state, voicemail, or call-barring settings.
- Keep the condition-specific removal code available.
The call-forwarding categories and MMI structure are defined in the current 3GPP/ETSI user-interface specification and the 3GPP/ETSI call-forwarding specification. Safaricom Care also documented the carrier’s call-forwarding controls in an official support reply. Carrier provisioning can change, which is why the network response, status query, and real test call remain part of the procedure.