public static function genRoute($context, $exten, $type, $dest) { switch ($type) { case 'hangup': return "Hangup"; break; case 'forward': return "Forward - " . $this->attributes['dest_target']; break; case 'extension': return "Extenstion - "; break; case 'ivr': return "Auto Attendant - "; break; case 'ringgroup': return "Ring Group - "; break; case 'schedule': return "Schedule - "; break; case 'confbridge': $Conf = ConferenceBridge::find($dest); Extension::create(['context' => $context, 'exten' => $exten, 'priority' => '1', 'app' => 'Answer', 'appdata' => '', 'customer' => Auth::user()->customer]); $priority = 2; if ($Conf->conf_auth) { Extension::create(['context' => $context, 'exten' => $exten, 'priority' => $priority, 'app' => 'Authenticate', 'appdata' => $Conf->conf_auth, 'customer' => Auth::user()->customer]); $priority++; } Extension::create(['context' => $context, 'exten' => $exten, 'priority' => $priority, 'app' => 'ConfBridge', 'appdata' => Auth::user()->customer . '_' . $Conf->conf_name, 'customer' => Auth::user()->customer]); break; case 'voicemail': return "Voicemail - "; break; case 'queue': return "Queue - "; break; case 'busy': return "Busy"; break; default: return "Error"; break; } }
public function buildDialPlan() { Extension::where('customer', Auth::user()->customer)->where('context', Auth::user()->Customer->internal_context)->where('exten', $this->exten)->delete(); switch ($this->getType()) { case 'Ring All': $Ring = array(); $tmp = json_decode($this->rg_members, true); foreach ($tmp as $u) { array_push($Ring, 'SIP/' . User::find($u)->SIPPeer->name); } Extension::create(['context' => Auth::user()->Customer->internal_context, 'exten' => $this->exten, 'priority' => 1, 'app' => 'Dial', 'appdata' => implode('&', $Ring) . ',' . $this->rg_time, 'customer' => Auth::user()->customer]); Extension::create(['context' => Auth::user()->Customer->internal_context, 'exten' => $this->exten, 'priority' => 2, 'app' => $this->getDefaultApp(), 'appdata' => $this->getDefaultAppData(), 'customer' => Auth::user()->customer]); break; case 'Hunt': break; } }