The "user end" of a T1 usually takes timing from the line.
The line coding for a T1 provides a ~12.5 % ones density to keep the timing at the user end to stay sync'd. The original signaling type was AMI (it's still used in some areas) - AMI = Alternate Mark Inversion .... meaning that within a time slot, there is either a pulse, or not ... if there's a pules it will be the opposite polarity of the pulse before it. If thre are two consecutive pulses of the same polarity, it's considered a "Bi-Polar Violation."
When When T1s started to become popular for data, the ones density rule could be violated, depending on the data (i.e., less than 12.5%). To counter that effect, B8ZS - Binary Eight-Zeros substitution was developed. With B8Zs, anytime thre are eight zeros in a row, the system (CSU/MUX, whatever) removes the zeros and inserts a Bi-Polar Violation (followed by a marker indicating it's intentional). The BPV gives the PLL or receiving timing logic enough ones to stay sync'd.
Signaling within the frame is a different issue (CAS - Channel Associated Signaling), RBS (Robbed Bit Signaling) ....
The "D" channel is used with a PRI (ISDN). ISDN uses a completely different signaling - no robbed bits. While a PRI and T1 both use the same framing and line codes (usually ESF / B8ZS), the actual signaling within the frame is completely different (a T1 and PRI are NOT the same).
The first PRI only uses 23 of the 24 channels (a T1 uses all 24). An advantage with a PRI is that the one 64K D channel from the first PRI can control a number of subsequent PRIs so they can use all 24 channels. In addition, a PRI provides calling party info, data type, and a bunch of other information that is not possible to signal within a T1.
FWIW
Scott