Hello igeantvert
Welcome to the world's best Arduino forum ever.
This is a very nice project.
To decouple the intercom from the Arduino, the use of an optocoupler is recommended.
The programme requires a timer module for debouncing of the input signal if needed and for monitoring the number of input pulses.
Here is a software design based on the IPO model:
INPUT: Debounce input
if (input goes high) counter++ and start timer
PROCESSING: When the timer has expired, signal a new doorBellEvent
OUTPUT: Execute doorBellEvent
Which interface is used for the handsets?
Have a nice day and enjoy coding in C++.