Virtual Extension that rings for the max without an endpoint registered

Hi, I want to forward calls to an extension that is part of a Ring Group so I can use Directed Call Pickup to retrieve the calls from somewhere else. It’s a workaround for not being able to give multi-tenant customers call parking or SLA hold.

The problem is if there is no device attached to a SIP Extension or Virtual Extension, it goes to VM or the Failover immediately.

Is there a way to call an extension and have it ring for the programmed interval if there is no endpoint attached?


Setting the SIP extension to an IP does ring, but does not change the BLF nor FOP status.
I am just looking for a way to provide multiple parking lots. We have more than one department and like to announce who is on Park-1, Park-2, etc… So when they are not at their desk, the proper person can pick up their call. Unless I am mistaken, it appears that a Queue only allows you to pick up the next caller in line, not skip to your caller on Park-2.

Do you know of a setting that I need to change to allow BLF monitoring of a SIP extension set to static IP, no Endpoint device?

how would you go about this? The problem to be solved is the inability to put a call on hold and other lines be able to see it and pick it up. The old SLA discussion. Thanks.

Why don’t you just use a simplified queue?

If you create a SIP extension with a static IP (doesn’t matter what as long as it is on net an unreachable) and set qualify no Asterisk will try and signal the extension accomplishing what you want.

I sure am glad I am not either one of your customers as these are not great solutions.

I am looking for the same solution so I can use it as a second parking lot, real or virtual extensions. I can get it to work by using FXS ports, but it uses a lot of ports for no reason.

You can’t solve it.

1 - FreePBX not designed for Multi-Tennant, just no getting around this
2 - Asterisk Broadsoft SLA patch is touchy and has not been ported to the release version of 1.8

As you say it’s an old argument. If you want to do the call pickup bit I gave you a workaround that should be OK.

The only open source PBX that supports BLF’s is Sipxecs’s

The only reliable Asterisk SLA is with chan_sccp2 and that limits you to Cisco devices. It works well though.

I was able to use the following tutorial by cjonesmo, Apr 24, 2012 (then modified for my use)

To setup Multiple Parking Lots (FreePBX Ver: 2.10, Asterisk Ver: 1.8, April 30, 2012):

  1. Add the following to features_general_custom.conf

nano /etc/asterisk/features_general_custom.conf

This defines customer’s parking lot as “park98” with the parking with 4-9 “slots” in which they can park calls.



  1. Then Modify extension_custom.conf

nano /etc/asterisk/extensions_custom.conf

exten => 1071,1,ParkedCall(1071)
exten => 1071,hint,park:[email protected]
exten => 1072,1,ParkedCall(1072)
exten => 1072,hint,park:[email protected]
exten => 1073,1,ParkedCall(1073)
exten => 1073,hint,park:[email protected]
exten => 1074,1,ParkedCall(1074)
exten => 1074,hint,park:[email protected]

exten => 1271,1,ParkedCall(1271)
exten => 1271,hint,park:[email protected]
exten => 1272,1,ParkedCall(1272)
exten => 1272,hint,park:[email protected]
exten => 1273,1,ParkedCall(1273)
exten => 1273,hint,park:[email protected]
exten => 1274,1,ParkedCall(1274)
exten => 1274,hint,park:[email protected]

  1. Then add the following to

nano /var/www/html/admin/modules/core/

//This line just above the DTMF LINE that says:
// $sipfields[] = array($account,‘dtmfmode’,$db>escapeSimple((isset($_REQUEST[‘dtmfmode’]))?$_REQUEST[‘dtmfmode’]:’’),$flag++);

$sipfields[] = array($account,‘parkinglot’,$db->escapeSimple((isset($_REQUEST[‘parkinglot’]))?$_REQUEST[‘parkinglot’]:’’),$flag++);

//This line just above the DTMF LINE that says:
// $tmparr[‘dtmfmode’] = array(‘value’ => ‘rfc2833’, ‘tt’ => $tt, ‘select’ => $select, ‘level’ => 0);
$tmparr[‘parkinglot’] = array(‘value’ => ‘’, ‘tt’ => $tt, ‘level’ => 1);

BEFORE it will work (if you put the changes into the file) - you will have to re-start http by going to linux and issuing the “service httpd restart” command. Then, open your extensions configuration in the freepbx GUI and you should see the “parkinglot” field between the “secret” and “dtmfmode” fields.

You should populate that with “park98” or “park12” (or whatever name you defined in features_general_custom.conf, save the extension, and apply the changes.

Once this is done, if you dial the REGULAR PARKING LOT EXTENSION (as defined by parkext in features_general_additional.conf) from a phone with a custom parking lot defined, they should start at the slot you specified in the configuration above - meaning, for example, that if I assign parkinglot_pt to x2000 in my system, and my default parking lot is defined as x7000 - then when I dial x7000 from x2000, I should hear 7011 as the parking slot that I received.

To pickup the call, any phone can dial the parking lot (slot) that was announced (in this case 7011). If the call isn’t picked up by the timeout (in this case 45 seconds), it will ring back to the extension that tried to park it.

If this still isn’t working for you after following these steps, please contact me directly so that I can correct the post - as I have this working on 2 of my systems and want others to be able to take advantage of the feature.

Finally, remember that if you upgrade the freepbx core, you will most likely have to re-insert the code into the file as it will be over-written when you upgrade freepbx.

I still have a problem with ring back if the call is not picked up off park, default is to ring the phone that parked the call. I need the call to ring back to a Ring Group. I think it can be done with “comebackcontext option” just having problems with the syntax. If someone could point me to an example it would be helpful.