moveAttachmentsToAsterisk($entity); } public function updated($entity) { // \Log::debug("Campaign updated"); $this->moveAttachmentsToAsterisk($entity); // \Log::debug("Moved"); } public function moveAttachmentsToAsterisk($entity){ if($entity->attachments->count() >= 1){ foreach($entity->attachments as $attachment){ if(in_array($attachment->filetype,['audio/mp3','audio/mpeg3','audio/x-mpeg-3','audio/x-wav','audio/wav'])){ $attachment_path = storage_path('app/'.$attachment->filepath); $file_name = explode('/',$attachment->filepath); $file_name = end($file_name); $file_name = explode('.',$file_name); $sln_file_name = $file_name[0].'.sln'; $process = new Process([ 'ffmpeg', '-i',$attachment_path, '-ar','8000', '-ac','1', '-acodec','pcm_s16le', '-f','s16le', '/var/lib/asterisk/sounds/en/custom/'.$sln_file_name ]); $process->run(); $recording_id = \DB::table('asterisk.recordings')->insertGetId([ 'displayname' => $file_name[0], 'filename' => 'custom/'.$file_name[0], 'description' => 'Sound file uploaded by '.$entity->name, 'fcode' => 0, 'fcode_pass' => '', 'fcode_lang' => 'en' ]); $announcement_id = \DB::table('asterisk.announcement')->insertGetId([ 'description' => $entity->name.'-'.$file_name[0], 'recording_id' => $recording_id, 'allow_skip' => 1, 'post_dest' => 'ext-queues,700,1', 'return_ivr' => 0, 'noanswer' => 0, 'repeat_msg' => '' ]); \DB::table('campaigns')->where('id',$entity->id)->update([ 'announcement_id' => $announcement_id ]); } } $process = new Process(['fwconsole','reload']); $process->run(); } } }