Hold with analog phones


i’m trying to make a simple hold service with Asterisk and analog phone.

I can’t use parking and threeway calling.

I need to use the ‘R’ key for the hold service.
Then the ‘R’ key again to pick up the call.

Could someone help me?



How does the phone signal recall?

  • earthing a leg (typical office extension, at least in Europe);
  • long loop disconnect (US domestic phones);
  • short loop disconnect (UK domestic phones);

What have you set in chan_dahdi.conf to match this?

What line card do you have?

(I don’t have an analogue card to play with, but a quick look at chan_dahdi.conf.sample suggests
that earth recall might not be supported, as does a very quick Google.)


TBR is now pretty much the defacto standard for the “R” button. Earth recall has been obsolete for many years and most modern phones wont support it. It is possible to alter teh source to accept a shorter break in line with UK/European timings as at the moment I think its inline with the US hookflash timing.

Why cant you use a # key or * for example. this way you could do an application map to hold / park the call ?

In a standard PBX the “R” doesn’t really put the call on hold it returns dialtone and waits for you to enter something, If you hangup or wait long enough the call will return to you. To hold a call normally needs a code.


thanks for you posts.

I’m living in europe (Italy) and i’m using TDM digium analog cards.
So for me press the ‘R’ key is the same as short brake in line.

I use the * or # for using services, according to features.conf files.

My problem is that customers ask me an Asterisk PBX like their legacy pbx… so they want continue using the ‘R’ key to start services like trasfer.

How can I hold a call with analogue phones without using threewaycalling?

Can i make a code (like *2, #34, ecc or better like R, R5) to hold a call (not parking)?


Have a look at voipuser.org/forum_topic_12285.html

I think this is what you are looking for , Sorry i didnt post it when you first asked


I have similar problem. I use Atcom AXE1600P card with AX210S modules. But I cannot catch pressing flash button on the analog telephone. Asterisk always detects it as pulse-encoded “1”. The length of flash pulse can be set on the phone, but it doesn’t help. Do you have any idea?

European TBR is, for all practical purposes, the same as loop disconnect 1.

Ok, I know that “1” in pulse environment is the same as “flash” in tone environment. But I should know how to configure something (probably DAHDI) to detect the flash button “as is” instead of “1”. Currently it doesn’t tell me that a short pulse on the line is “pulse 1”. Asterisks just tells “1” in the log, which can be also “tone 1”.
Detecting flash button in a PBX system is important because an IVR on the called side can use the same key combination as we configured locally in features.conf.
The www.voipuser.org is unavailable so I couldn’t check the recommended link above. I also tried some general Google searches in this topic, but there is no proper information.

Register recall is generally used in a context where digits are not expected. Historically, you needed the register before the digits could be processed.

Could you send me a configuration example, please? I’m not so expert in Asterisk configuration yet… Thanks!