For some years I've used various work-arounds to combine CallerID and distinctive ring services. Distinctive ring call routers normally do not connect quickly enough to pass the original caller ID signal (though some do for some ports some of the time). Recently I wanted a front-end for some Voip FXO ports that would route on distinctive ring and pass CallerID all of the time. I tried Command Communications latest product which buffers and resends the CallerID information after the second ring. It works, but the extra ring delay is noticeable and it also does a double- click of the relay when the port answers. This requires additional delay to avoid cutting off the beginning of the voice-mail greeting and the click is heard by the caller.
Looking at the ring patterns used here (typical for a 5ESS I think) it seemed to me that it should be possible to make the routing decision during the first ring cycle and connect the line such that it sees at least half of that ring and the CallerID information. To test this theory I wrote replacement PIC firmware for the Multi-Link SR3. I used this device because I had one handy, the PIC was in a socket, and it was relatively simple to understand the device's operation. (My SR3--actually a modified SR2--is pretty old. I've ordered a new one to be sure they are compatible.)
The result of my effort is replacement firmware that supports most of the normal features of the device (I do not generate the busy tones yet) and routes calls as described above. I've just put this into service and it appears to work so far. If anyone else is interested the firmware source is available on my home automation page:
Dan Lanciani ddl@danlan.*com