phoneNumberUtil->parse($rawNumber, $defaultCountry); } catch (NumberParseException $exception) { return new PhoneNumberResult($rawNumber, null, null, false, false, $exception->getMessage()); } $isValid = $this->phoneNumberUtil->isValidNumber($number); $normalizedNumber = $isValid ? $this->phoneNumberUtil->format($number, PhoneNumberFormat::E164) : null; $country = $this->phoneNumberUtil->getRegionCodeForNumber($number); $mobileRegex = (string) config('relais_sms.default_settings.mobile_phone_regex'); $numberType = $this->phoneNumberUtil->getNumberType($number); $isMobile = $isValid && ( in_array($numberType, [PhoneNumberType::MOBILE, PhoneNumberType::FIXED_LINE_OR_MOBILE], true) || ($mobileRegex !== '' && ( preg_match($mobileRegex, $rawNumber) === 1 || ($normalizedNumber !== null && preg_match($mobileRegex, $normalizedNumber) === 1) )) ); return new PhoneNumberResult( rawNumber: $rawNumber, normalizedNumber: $normalizedNumber, country: $country, isValid: $isValid, isMobile: $isMobile, error: $isValid ? null : 'Numero invalide.', ); } }