The old dial telephone uses pulses of current to dial phone numbers. I thought it might be useful to enter digits into an Arduino. I have to investigate if there is already a program that can do this.
The phone has to have some current, maybe 10 mA, flowing through it so that the pulses will develop a voltage across the phone or load resistor. This should be from 0 th 5 volts maximum, with no switch bounces to give false numbers. The voltages should be clamped to the negative and positive supply voltages.
I found an Instructable that does this. It accepts pulsed input and puts out ASCII digits on the serial port.