Detect ring signal using a low pass filter
If you want the 300ms signal to be received, while filtering the 1.25ms one, then it's the high frequency signal you need to filter out, not the other. Which means your chosen time constant is too large and affects the 300ms one. The high frequency signal has a period of 1.25ms, so choose a time constant that is more than 10x larger, say 25ms, which is also more than 10x smaller than the 300ms. Here's a quick test in LTspice:



V(a) shows the modulated output, V(b) shows the filtered output with a time constant of 22ms, and V(c) shows the recovered signal with a minor hysteresis of 10mV to counter the non-ideal filtering of the RC. Notice that the filtered signal has a somewhat thicker trace, that's because of the residual. You could use a Bessel or Gaussian filter for better results, but that would only add to the complexity and, besides, you'll still need the recovery of the signal, so that means you can simplify things.



If your Vcc's value is 5V, then the collector resistor is too much, remember the optoisolators have a strong Ic dependency. If so, then try a 2k2 resistor, which will only use Ic~2.2mA, and you could give up the extra R and place C directly across the collector (10uF, adapted value for time constant). This will get Ic higher when C discharges, though. Otherwise make R=2k7 and C=3u9 (for example). Don't forget that the signal is inverted now, so I've used an inverting hysteresis comparator (the Schmitt trigger). I don't have a TLP opto, so I've just used whatever you see, adapt to your needs. I'm not home right now, but here's an attempt at exemplifying (V(n004) is the 300ms signal):