I’ve heard there’re two options to cross the border into Iran, either by using mini buses to break the trip or by taking a direct bus. The direct bus takes around 22 hours to get to Tehran. It leaves at 10:30 in Yerevan and arrives at 8:10 (Iranian time). It’s probably the longest bus ride I’ve ever done.
I’m not sure if it is really necessary to get the ticket in advance but I did it anyway just to be sure. There are some travel agencies that sell the ticket if you don't want to go all the way to the station. Ticket costs 25000 dram (44€). The bus was only half full and most of the passengers were Iranians. I was surprised to realize that I was the only tourist in the bus, I thought it would be packed with travelers instead.
Iranians on the bus are super friendly, most of them have families in both countries. One guy showed me a photo of his wife, he told me proudly, « Life is good in Yerevan, my wife doesn’t need to wear hijab ».
Here is some piratical information that might to useful.
- The bus leaves at Kalakia (central) terminal, you find it at the right side in front of the unique church-transferred bus station.
- There is no toilet in the bus, they did make some stops every 2-3 hours.
- Bring some Armenian dram (3000ish dram should be enough) order to buy some meals on the way. Later at the border you can change them back to Iranian rial. (the euro/rial rate they gave wasn’t the best but that's normal.)
- The seat was comfortable, with big leg space, temperature was at the warm side.
- The bus arrives at Tehran Azadi Bus Station, which is messy, full of hassles. Luckily I got my ticket for Isfahan in the end.