Deploy Ladill Meet / deploy (push) Successful in 50s
Route guests through silent SSO to the Meet product page, fix Afia context query, add conference green-room UX and copy, and extend service API for Care/CRM/Invoice calendar integration. Co-authored-by: Cursor <cursoragent@cursor.com>
219 lines
6.8 KiB
PHP
219 lines
6.8 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
'roles' => [
|
|
'owner' => 'Owner',
|
|
'admin' => 'Administrator',
|
|
'moderator' => 'Moderator',
|
|
'member' => 'Member',
|
|
'guest' => 'Guest',
|
|
],
|
|
|
|
'room_types' => [
|
|
'instant' => 'Instant meeting',
|
|
'scheduled' => 'Scheduled meeting',
|
|
'personal' => 'Personal room',
|
|
'recurring' => 'Recurring meeting',
|
|
'webinar' => 'Webinar',
|
|
'town_hall' => 'Conference',
|
|
'space' => 'Room',
|
|
],
|
|
|
|
'room_statuses' => [
|
|
'scheduled' => 'Scheduled',
|
|
'live' => 'Live',
|
|
'ended' => 'Ended',
|
|
'cancelled' => 'Cancelled',
|
|
'recording_processing' => 'Recording processing',
|
|
],
|
|
|
|
'recording_statuses' => [
|
|
'recording' => 'Recording',
|
|
'processing' => 'Processing',
|
|
'ready' => 'Ready',
|
|
'failed' => 'Failed',
|
|
],
|
|
|
|
'recurrence_rules' => [
|
|
'daily' => 'Daily',
|
|
'weekly' => 'Weekly',
|
|
'monthly' => 'Monthly',
|
|
],
|
|
|
|
'schedule_timezones' => [
|
|
'UTC',
|
|
'America/New_York',
|
|
'America/Chicago',
|
|
'America/Los_Angeles',
|
|
'Europe/London',
|
|
'Africa/Accra',
|
|
'Africa/Lagos',
|
|
],
|
|
|
|
'participant_roles' => [
|
|
'host' => 'Host',
|
|
'co_host' => 'Co-host',
|
|
'panelist' => 'Panelist',
|
|
'participant' => 'Participant',
|
|
'attendee' => 'Attendee',
|
|
'guest' => 'Guest',
|
|
],
|
|
|
|
'session_statuses' => [
|
|
'live' => 'Live',
|
|
'ended' => 'Ended',
|
|
],
|
|
|
|
'default_settings' => [
|
|
'waiting_room' => true,
|
|
'join_before_host' => false,
|
|
'mute_on_join' => true,
|
|
'video_off_on_join' => false,
|
|
'allow_screen_share' => true,
|
|
'allow_chat' => true,
|
|
'allow_reactions' => true,
|
|
'lock_meeting' => false,
|
|
'auto_record' => false,
|
|
'live_captions' => false,
|
|
'auto_ai_summary' => true,
|
|
'lobby_mode' => false,
|
|
'webinar_auto_approve' => false,
|
|
'stage_mode' => true,
|
|
],
|
|
|
|
'breakouts' => [
|
|
'default_timer_minutes' => 15,
|
|
'max_rooms' => 20,
|
|
],
|
|
|
|
'files' => [
|
|
'disk' => env('MEET_FILES_DISK', 'local'),
|
|
'default_expiry_days' => (int) env('MEET_FILES_EXPIRY_DAYS', 30),
|
|
'drive_api_url' => env('LADILL_DRIVE_API_URL'),
|
|
'drive_api_key' => env('LADILL_DRIVE_API_KEY_MEET'),
|
|
],
|
|
|
|
'whiteboard_templates' => [
|
|
'blank' => 'Blank canvas',
|
|
'grid' => 'Grid',
|
|
'retrospective' => 'Retrospective',
|
|
],
|
|
|
|
'security_defaults' => [
|
|
'org_only' => false,
|
|
'authenticated_only' => false,
|
|
'allowed_domains' => [],
|
|
'recording_host_only' => true,
|
|
'guest_recording_disabled' => true,
|
|
'watermark_enabled' => false,
|
|
'session_idle_minutes' => 120,
|
|
],
|
|
|
|
'recordings' => [
|
|
'disk' => env('MEET_RECORDINGS_DISK', 'local'),
|
|
'max_mb' => (int) env('MEET_RECORDING_MAX_MB', 512),
|
|
],
|
|
|
|
'ai' => [
|
|
'enabled' => env('MEET_AI_ENABLED', true),
|
|
'auto_summarize' => env('MEET_AI_AUTO_SUMMARIZE', true),
|
|
'api_key' => env('MEET_AI_API_KEY', env('OPENAI_API_KEY')),
|
|
'model' => env('MEET_AI_MODEL', 'gpt-4o-mini'),
|
|
'platform_api_url' => env('IDENTITY_API_URL', 'https://ladill.com/api'),
|
|
'platform_api_key' => env('IDENTITY_API_KEY_MEET'),
|
|
],
|
|
|
|
'media' => [
|
|
'provider' => env('MEET_MEDIA_PROVIDER', 'livekit'),
|
|
'livekit' => [
|
|
'url' => env('LIVEKIT_URL', ''),
|
|
'api_key' => env('LIVEKIT_API_KEY', ''),
|
|
'api_secret' => env('LIVEKIT_API_SECRET', ''),
|
|
],
|
|
],
|
|
|
|
'report_types' => [
|
|
'summary' => 'Organization summary',
|
|
'meetings' => 'Meeting analytics',
|
|
'users' => 'Participant analytics',
|
|
'invitations' => 'Invitation & RSVP',
|
|
'branches' => 'Branch rollup',
|
|
],
|
|
|
|
'service_api_keys' => [
|
|
'care' => env('MEET_API_KEY_CARE'),
|
|
'crm' => env('MEET_API_KEY_CRM'),
|
|
'bookings' => env('MEET_API_KEY_BOOKINGS'),
|
|
'events' => env('MEET_API_KEY_EVENTS'),
|
|
'frontdesk' => env('MEET_API_KEY_FRONTDESK'),
|
|
'hr' => env('MEET_API_KEY_HR'),
|
|
'support' => env('MEET_API_KEY_SUPPORT'),
|
|
'invoice' => env('MEET_API_KEY_INVOICE'),
|
|
],
|
|
|
|
'webhook_events' => [
|
|
'meeting.scheduled',
|
|
'meeting.started',
|
|
'meeting.ended',
|
|
'meeting.cancelled',
|
|
'recording.ready',
|
|
],
|
|
|
|
'calendar' => [
|
|
'google' => [
|
|
'client_id' => env('GOOGLE_CALENDAR_CLIENT_ID'),
|
|
'client_secret' => env('GOOGLE_CALENDAR_CLIENT_SECRET'),
|
|
'redirect' => env('GOOGLE_CALENDAR_REDIRECT_URI'),
|
|
],
|
|
'microsoft' => [
|
|
'client_id' => env('MICROSOFT_CALENDAR_CLIENT_ID'),
|
|
'client_secret' => env('MICROSOFT_CALENDAR_CLIENT_SECRET'),
|
|
'redirect' => env('MICROSOFT_CALENDAR_REDIRECT_URI'),
|
|
'tenant' => env('MICROSOFT_CALENDAR_TENANT', 'common'),
|
|
],
|
|
'mail' => [
|
|
'api_url' => env('LADILL_MAIL_API_URL', 'https://mail.ladill.com/api/service/v1'),
|
|
'api_key' => env('MAIL_API_KEY_MEET'),
|
|
],
|
|
],
|
|
|
|
'live_stream' => [
|
|
'platforms' => ['youtube', 'facebook', 'linkedin', 'custom'],
|
|
'layouts' => ['speaker', 'gallery', 'screen'],
|
|
],
|
|
|
|
'billing' => [
|
|
'price_per_participant_ghs' => (float) env('MEET_PRICE_PER_PARTICIPANT', env('MEET_PRICE_PER_HOUR', 0.30)),
|
|
'price_per_gb_month_ghs' => (float) env('MEET_PRICE_PER_GB_MONTH', 0.30),
|
|
'billing_period_days' => (int) env('MEET_BILLING_PERIOD_DAYS', 30),
|
|
'grace_period_days' => (int) env('MEET_GRACE_PERIOD_DAYS', 15),
|
|
],
|
|
|
|
'audit_actions' => [
|
|
'organization.created' => 'Organization created',
|
|
'organization.updated' => 'Organization updated',
|
|
'organization.security_updated' => 'Security policy updated',
|
|
'branch.created' => 'Branch created',
|
|
'branch.updated' => 'Branch updated',
|
|
'member.created' => 'Member added',
|
|
'member.deleted' => 'Member removed',
|
|
'room.created' => 'Meeting created',
|
|
'room.updated' => 'Meeting updated',
|
|
'room.cancelled' => 'Meeting cancelled',
|
|
'session.started' => 'Meeting started',
|
|
'session.ended' => 'Meeting ended',
|
|
'participant.joined' => 'Participant joined',
|
|
'participant.left' => 'Participant left',
|
|
'participant.removed' => 'Participant removed',
|
|
'meeting.locked' => 'Meeting locked',
|
|
'meeting.unlocked' => 'Meeting unlocked',
|
|
'recording.started' => 'Recording started',
|
|
'recording.stopped' => 'Recording stopped',
|
|
'recording.ready' => 'Recording ready',
|
|
'recording.deleted' => 'Recording deleted',
|
|
'notification.meeting_started' => 'Meeting started notification',
|
|
],
|
|
|
|
];
|