['web', 'permission:reporting.vpn'], 'as' => 'vpn.', 'prefix' => 'vpn', 'namespace' => 'Modules\Reporting\Http\Controllers' ], function () { Route::get('list', 'VpnController@index')->name('list'); Route::get('create', 'VpnController@create')->name('create'); Route::post('store', 'VpnController@store')->name('store'); Route::get('edit/{id}', 'VpnController@edit')->name('edit'); Route::post('update/{id}', 'VpnController@update')->name('update'); Route::get('delete/{id}', 'VpnController@delete')->name('delete'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.survey_report'], 'prefix' => 'reporting', 'as' => 'reporting.', 'namespace' => 'Modules\Reporting\Http\Controllers' ], function () { Route::get('survey-report', 'SurveyReportController@index')->name('survey-report'); Route::get('survey-report/export', 'SurveyReportController@export')->name('survey-report.export'); Route::get('survey-report/export/summary', 'SurveyReportController@exportSummary')->name('survey-report.export.summary'); Route::get('survey-report/export/agents', 'SurveyReportController@exportAgents')->name('survey-report.export.agents'); Route::get('survey-report/export/responses', 'SurveyReportController@exportResponses')->name('survey-report.export.responses'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.browse'], 'prefix' => 'reporting', 'as' => 'reporting.', 'namespace' => 'Modules\Reporting\Http\Controllers' ], function () { Route::group([ 'middleware' => ['web', 'permission:reporting.dashboard'], ], function (){ Route::get('/', 'ReportingController@index'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.performance'], ], function (){ Route::get('performance', 'ReportingController@performance')->name('ccperformance'); Route::get('timeline', 'TimelineController@timeline')->name('cctimeline'); Route::get('outperformance', 'ReportingController@outPerformance')->name('ccoutPerformance'); Route::post('performance/agent_sheet', 'ReportingController@agent_sheet'); Route::get('performance/queue_sheet', 'ReportingController@queue_sheet'); Route::post('outperformance/out_agent_sheet', 'ReportingController@out_agent_sheet'); Route::post('outperformance/out_agent_by_agent_sheet', 'ReportingController@out_agent_by_agent_sheet'); Route::get('outperformance/out_summary_sheet', 'ReportingController@out_summary_sheet'); Route::get('getRejectedCalls', 'ReportingController@getRejectedCalls')->name('getRejectedCalls'); Route::get('getNoAnswerCalls', 'ReportingController@getNoAnswerCalls')->name('getNoAnswerCalls'); Route::get('exportRejectedCalls', 'ReportingController@exportRejectedCalls')->name('exportRejectedCalls'); Route::get('exportNoAnswerCalls', 'ReportingController@exportNoAnswerCalls')->name('exportNoAnswerCalls'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.blacklist'], ], function (){ Route::get('/blacklist', 'ReportingController@blacklist')->name('blacklist'); Route::get('/blacklist/create', 'ReportingController@blacklistcreate')->name('blacklist.create'); Route::post('/blacklist/add', 'ReportingController@blacklistadd')->name('blacklist.add'); Route::get('/blacklist/delete/{num}', 'ReportingController@blacklistdelete')->name('blacklist.delete'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.inbound'], ], function (){ Route::get('inbound', 'InboundController@inbound')->name('ccinbound'); Route::get('inDone/{id}', 'InboundController@inDone')->name('inDone'); Route::get('inbound/excelReport', 'InboundController@excelReport')->name('inbound.report'); Route::get('inbound/get-transfers/{linkedid}', 'InboundController@getTransfers')->name('inbound.get-transfers'); Route::get('/listen/{id}', 'InboundController@listenFile')->name('listen'); Route::get('/listen/page/{id}', 'InboundController@listenPageFile')->name('listen.page'); // Route::get('inbound/downloadRecordings', 'InboundController@downloadRecordings')->name('inbound.downloadRecordings'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.inbound_distribution'], ], function (){ Route::get('inDist', 'InboundController@inDist')->name('ccinDist'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.outbound_distribution'], ], function (){ Route::get('outDist', 'OutboundController@outDist')->name('ccoutDist'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.outbound'], ], function (){ Route::get('outbound', 'OutboundController@outbound')->name('ccoutbound'); Route::get('outDone/{id}', 'OutboundController@outDone')->name('outDone'); Route::get('outbound/excelReport', 'OutboundController@excelReport')->name('outbound.report'); // Route::get('outbound/downloadRecordings', 'OutboundController@downloadRecordings')->name('outbound.downloadRecordings'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.internal.calls'], ], function (){ Route::get('internal', 'InternalController@internal')->name('internal'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.missied'], ], function (){ Route::get('missed', 'MissedController@missed')->name('missed'); Route::get('missedDone/{id}', 'MissedController@missedDone')->name('missedDone'); Route::get('getRingDetails/{callid}', 'MissedController@getRingDetails'); Route::get('call/stats', 'MissedController@callStats')->name('call.stats'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.voicemail'], ], function (){ Route::get('voiceMail', 'VoicemailController@index')->name('voiceMail'); Route::get('voiceMailDone/{id}', 'VoicemailController@voiceMailDone')->name('voiceMailDone'); Route::get('voiceMail-Done/{id}', 'VoicemailController@Done')->name('voiceMail-Done'); Route::get('/voicemail/listen/{id}', 'VoicemailController@listenVoicemail')->name('voicemail.listen'); Route::get('/voicemail/listen/page/{id}', 'VoicemailController@listenPageVoicemail')->name('voicemail.listen.page'); }); Route::get('insights', 'ReportingController@insights')->name('insights')->middleware('permission:reporting.insights'); Route::get('billing', 'BillingController@billing')->name('billing')->middleware('permission:reporting.billing'); Route::get('utilization', 'UtilizationController@utilization')->name('utilization')->middleware('permission:reporting.utilization'); Route::get('attendance', 'AttendanceController@attendance')->name('attendance')->middleware('permission:reporting.attendance'); Route::get('attendance/summary', 'AttendanceController@attendanceSummaryDatatable')->name('attendance.summary'); // Route::post('reporting/update', ['as'=>'reporting.mass_update','uses'=> 'reportingController@massUpdate']); Route::group([ 'middleware' => ['web', 'permission:reporting.browse'], ], function (){ Route::get('agent/profile', 'AgentProfileController@profile')->name('agent.profile'); Route::get('agent/stats', 'AgentProfileController@getStats')->name('agent.stats'); }); Route::group([ 'middleware' => ['web', 'permission:reporting.users'], ], function (){ Route::get('users', 'AgentProfileController@index')->name('users.index'); }); }); Route::group([ 'middleware' => ['web', 'permission:reporting.browse'], 'prefix' => 'asterisk', 'as' => 'asterisk.', 'namespace' => 'App\Http\Controllers' ], function () { // Route::get('/info', 'AstmanController@info'); // Route::post('reporting/update', ['as'=>'reporting.mass_update','uses'=> 'reportingController@massUpdate']); }); /* |-------------------------------------------------------------------------- | AI call analysis (Summarize) |-------------------------------------------------------------------------- | The button lives in the Action column of the Inbound and Outbound listings; | these routes queue a call, serve its analysis page and answer the status poll | that page runs while the provider is working. */ Route::group([ 'middleware' => ['web', 'permission:reporting.summarize'], 'prefix' => 'reporting', 'as' => 'reporting.', 'namespace' => 'Modules\Reporting\Http\Controllers' ], function () { Route::post('summarize', 'CallAnalysisController@summarize')->name('summarize'); Route::get('analysis/{linkedid}', 'CallAnalysisController@show')->name('analysis'); Route::get('analysis/{linkedid}/status', 'CallAnalysisController@status')->name('analysis.status'); }); /* |-------------------------------------------------------------------------- | AI voice provider settings (administrators) |-------------------------------------------------------------------------- */ Route::group([ 'middleware' => ['web', 'permission:admin.settings'], 'prefix' => 'settings', 'as' => 'settings.', 'namespace' => 'Modules\Reporting\Http\Controllers\Settings' ], function () { Route::get('ai-voice', 'AiVoiceSettingsController@index')->name('ai_voice'); Route::post('ai-voice', 'AiVoiceSettingsController@save')->name('ai_voice.save'); Route::post('ai-voice/test', 'AiVoiceSettingsController@test')->name('ai_voice.test'); Route::post('ai-voice/models', 'AiVoiceSettingsController@models')->name('ai_voice.models'); Route::post('ai-voice/prompt', 'AiVoiceSettingsController@savePrompt')->name('ai_voice.prompt'); });