Page to conference

Hello FreePBX. New user here. Our school is using Freepbx as an internal communication system only. No outbound calling at all. FreePBX is up and working and we are using a mix of IP WiFi phones and Android/iOS apps. All is working great.

I was asked if FreePBX could enable a feature similar to a page. It would call a certain number of extensions (say five) and continue to ring for a long time (say 60 seconds or longer) to enable faculty to get to the phones and pick them up. When a person picked up the call, they would automatically get placed in a conference with everyone else who picked up.

Is something like this possible? I believe I had something created like this in an old version of FreePBX two years ago, but that server died and all of it’s configs died with it. I can’t seem to find out how to replicate something like that again. Any help would be appreciated.

Apologies in advance for not knowing the correct jargon and syntax. PBX administration is new to me. Thanks!

Asterisk version 1.8.15.0
PBX Firmware: 1.815.210.58-1
FreePBX 2.10.1.9 -taken from FreePBX System Status

This seems like a complicated issue. I was trying to associate it with something I wrote for our call center. If you setup a conference room, then have a PHP script that dials all the participants, it would work pretty well. I actually use the below script as part of a click-to-dial. Wouldn’t be terribly difficult to implement something that dials more than one extension. However, you would have to figure out the “ring for 60 seconds” issue … somehow force the channel to not go to voicemail.

I used Ring-Answer as part of my dial string, because I am using Polycom phones, and have configured them to auto-answer when they receive this attribute. You could remove this.

You would need to repeat the portion of the code that dials the extension for each of the extensions that you want to connect to.

Anyone else know of something Asterisk-specific that would perform this? It would probably be more desirable to have this action triggered by a phone call to a particular extension, rather than by a web page.

<?php #ip address that asterisk is on. $strHost = "127.0.0.1"; $strUser = "YourAsteriskMgrUsername";#specify the asterisk manager username you want to login with $strSecret = "YourAsteriskMgrPassword";#specify the password for the above user #specify the channel (extension) you want to receive the call requests with #e.g. SIP/XXX, IAX2/XXXX, ZAP/XXXX, etc $strChannel = "SIP/100"; $strContext = "from-internal"; #specify the amount of time you want to try calling the specified channel before hangin up $strWaitTime = "60"; #specify the priority you wish to place on making this call $strPriority = "1"; #specify the maximum amount of retries $strMaxRetry = "2"; #Specify the number to dial: $number="6000"; $pos=strpos ($number,"local"); if ($number == null) : exit() ; endif ; if ($pos===false) : $errno=0 ; $errstr=0 ; $strCallerId = "$number"; $oSocket = fsockopen ("localhost", 5038, &$errno, &$errstr, 20); if (!$oSocket) { echo "$errstr ($errno)
\n"; } else { fputs($oSocket, "Action: login\r\n"); fputs($oSocket, "Events: off\r\n"); fputs($oSocket, "Username: $strUser\r\n"); fputs($oSocket, "Secret: $strSecret\r\n\r\n"); fputs($oSocket, "Action: originate\r\n"); fputs($oSocket, "Channel: $strChannel\r\n"); fputs($oSocket, "WaitTime: $strWaitTime\r\n"); fputs($oSocket, "CallerId: $strCallerId\r\n"); fputs($oSocket, "Exten: $number\r\n"); fputs($oSocket, "Context: $strContext\r\n"); fputs($oSocket, "Priority: $strPriority\r\n"); fputs($oSocket, "Variable: __SIPADDHEADER51=Alert-Info: Ring Answer\r\n\r\n"); fputs($oSocket, "Action: Logoff\r\n\r\n"); sleep(2); fclose($oSocket); } echo "Extension $strChannel should be calling $number." ; else : exit() ; endif ; ?>