$Extension_D = DB_Extension($called_ext); // Get 'Intercom' Parameters $Intercom = Database_Entry('Ext_Intercom', $Extension_D['PK_Extension']); // Get the extension of the caller $cid = $agi->parse_callerid(); $caller_ext = $cid['username']; // See if the caller is allowed to use this extension if ($Intercom['Use_Admins_ByAccount']) { $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Admins\n\t\t\tINNER JOIN Extensions ON PK_Extension = FK_Ext_Admin\n\t\tWHERE\n\t\t\tFK_Extension = {$Intercom['PK_Extension']}\n\t\t\tAND\n\t\t\tExtensions.Extension = {$caller_ext}\n\t\tLIMIT 1\n\t"; } else { $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Admins\n\t\t\tINNER JOIN Extension_Groups ON Extension_Groups.FK_Group = Ext_Intercom_Admins.FK_Ext_Group\n\t\t\tINNER JOIN Extensions ON Extensions.PK_Extension = Extension_Groups.FK_Extension\n\t\tWHERE\n\t\t\tExt_Intercom_Admins.FK_Extension = {$Intercom['PK_Extension']}\n\t\t\tAND\n\t\t\tExtensions.Extension = {$caller_ext}\n\t\tLIMIT 1\n\t"; } $result = $mysqli->query($query) or $agi->verbose($mysqli->error . $query); if ($mysqli->numrows($result) != 1) { $agi->stream_file('beeperr'); $agi->hangup(); exit(0); } //CDR: Set called info $cdr->set_called("{$Intercom['PK_Extension']}", "Intercom", "Intercom", "{$Extension_D['Extension']}"); $agi->set_variable('__SIP_URI_OPTIONS', 'intercom=true'); $agi->set_variable('SIPURI', 'intercom=true'); $agi->set_variable('_VXML_URL', 'intercom=true'); $agi->exec('AbsoluteTimeout', $Intercom['Timeout']); $agi->exec('SipAddHeader', $Intercom['Header']); $agi->exec('SipAddHeader', '"Call Info: Answer-After=0"'); $agi->exec('SipAddHeader', '"Alert-Info: Ring Answer"'); $agi->exec('SipAddHeader', '"Call-Info: <uri>\\;answer-after=0"'); // Get a list of phones we want to page if ($Intercom['Use_Members_ByAccount']) { $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Members\n\t\t\tINNER JOIN Extensions ON PK_Extension = FK_Ext_Member\n\t\tWHERE\n\t\t\tFK_Extension = {$Intercom['PK_Extension']}\n\t";
$context = $agi->request['agi_context']; $dnid = $agi->request['agi_dnid']; $extension = $agi->request['agi_extension']; $trunkname = $age->get_variable("TRUNK"); // format should be callshop-XXXX $tmp = split("-", $context); $userid = $tmp[1]; $query = "SELECT clid FROM clid WHERE groupid = {$groupid} AND pin = '{$dnid}'"; debug($query); print "here"; exit; $clid = $db->getOne($query); if (!$clid) { // invalid pin number // hangup $agi->hangup($agi->request['agi_channel']); } # play dial prompt $dtmf = $agi->get_data($prompt_enter_dest, 4000, 20, "#"); $agi->set_callerid($clid); $agi->exec_dial($trunkname, $dtmf); /***********************************************************************/ function debug($string) { print $string; return; } exit; $charge_callback = 0; $G_startime = time(); $agi_date = "Release : no date";