sls/config/services.php
kushal.saha 3aca6d90f3 feat(webrtc): implement IceCandidateProviderInterface with Metered and ConvexSol drivers
- Add Metered and ConvexSol (CoTURN) provider drivers with response validation and caching
- Add IceCandidateManager with automatic failover and structured logging
- Add IceCandidateProviderInterface and DTOs conforming to RTCIceServer format
2026-08-26 12:44:41 +00:00

79 lines
3.0 KiB
PHP

<?php
return [
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Mailgun, Postmark, AWS and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'postmark' => [
'key' => env('POSTMARK_API_KEY'),
],
'resend' => [
'key' => env('RESEND_API_KEY'),
],
'ses' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
'slack' => [
'notifications' => [
'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'),
],
],
'microsoft' => [
'client_id' => env('MICROSOFT_CLIENT_ID', env('MICROSOFT_GRAPH_CLIENT_ID')),
'client_secret' => env('MICROSOFT_CLIENT_SECRET', env('MICROSOFT_GRAPH_CLIENT_SECRET')),
'redirect' => env('MICROSOFT_REDIRECT_URI', env('APP_URL', 'http://localhost:8000').'/auth/microsoft/callback'),
'tenant' => env('MICROSOFT_TENANT_ID', env('MICROSOFT_GRAPH_TENANT_ID', 'common')),
],
'metered' => [
'url' => env('METERED_URL'),
'key' => env('METERED_KEY'),
],
'convexsol' => [
'username' => env('CONVEXSOL_USERNAME', env('CONVEXSOL_TURN_USERNAME')),
'password' => env('CONVEXSOL_PASSWORD', env('CONVEXSOL_TURN_PASSWORD')),
'turn_urls' => env('CONVEXSOL_TURN_URLS', 'turn:turn.convexsol.com:3478,turns:turn.convexsol.com:5349'),
'stun_urls' => env('CONVEXSOL_STUN_URLS', 'stun:stun.convexsol.com:3478,stun:stun.l.google.com:19302'),
],
'ice' => [
'default' => env('ICE_CANDIDATE_PROVIDER', env('ICE_PROVIDER', 'metered')),
'fallback' => env('ICE_FALLBACK_PROVIDER', 'convexsol'),
'providers' => [
'metered' => [
'url' => env('METERED_URL'),
'key' => env('METERED_KEY'),
'timeout' => (int) env('METERED_TIMEOUT', 5),
'cache_ttl' => (int) env('METERED_CACHE_TTL', 600),
],
'convexsol' => [
'username' => env('CONVEXSOL_USERNAME', env('CONVEXSOL_TURN_USERNAME')),
'password' => env('CONVEXSOL_PASSWORD', env('CONVEXSOL_TURN_PASSWORD')),
'turn_urls' => env('CONVEXSOL_TURN_URLS', 'turn:turn.convexsol.com:3478,turns:turn.convexsol.com:5349'),
'stun_urls' => env('CONVEXSOL_STUN_URLS', 'stun:stun.convexsol.com:3478,stun:stun.l.google.com:19302'),
'timeout' => (int) env('CONVEXSOL_TIMEOUT', 5),
'cache_ttl' => (int) env('CONVEXSOL_CACHE_TTL', 600),
],
],
],
];