Whenever I get a missed call I store it in a database table of my own logic (maybe you could use the built-in table for that), later, when the user appears online again after a registration, I read the records belonging to him and I send him a SIP MESSAGE containing his missed calls.
Needless to say, the UA must support displaying IMs for this to make sense.
route[SEND_SIP_MESSAGE]
{
xlog("L_INFO", "MESSAGE to [$avp(s:sms_to_subscriber)]: $avp(s:sms_content)");
$uac_req(method) = "MESSAGE";
$uac_req(ruri) = $avp(s:subs_uri);
$uac_req(furi) = $avp(s:subs_from);
$uac_req(turi) = $avp(s:subs_to);
$uac_req(hdrs) = "Content-Type: text/plain\r\n";
$uac_req(body) = $avp(s:sms_content);
return uac_req_send();
}