code: public function get_number_type($phone_number = '', $region = NULL)
      {
          $inputParams = array(
              'phone_number' => $phone_number,
              'region'       => $region
          );
          $this->debug->info(__FUNCTION__, 'Input Params: ', $inputParams);
          if (empty($phone_number)) {
              $this->debug->warning(__FUNCTION__, 'Phone Number input is Empty!');
  
              return NULL;
          }
          $phone_number = trim($phone_number);
          try {
              $phoneNumberUtil   = PhoneNumberUtil::getInstance();
              $use_region        = NULL !== $region ? strtoupper($region) : self::DEFAULT_REGION;
              $phoneNumberObject = $phoneNumberUtil->parse(trim($phone_number), $use_region);
              $result            = $phoneNumberUtil->getNumberType($phoneNumberObject);
              $this->debug->debug(__FUNCTION__, 'Use REGION: ' . $use_region);
              $this->debug->info(__FUNCTION__, 'Final Result: ' . $result);
  
              return $result;
          }
          catch (\Exception $e) {
              $message = 'Error File: ' . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage();
              $this->debug->error(__FUNCTION__, $message);
  
              return NULL;
          }
      }
docs: Function get_number_type
  Returns a PhoneNumberType constant for the PhoneNumber object you pass.
  
  @author: 713uk13m <dev@nguyenanhung.com>
  @time  : 9/21/18 01:46
  
  @param string $phone_number Phone Number to Get Type
  @param null   $region       Region, example VN
  
  @see   https://github.com/nguyenanhung/vn-telco-phonenumber/blob/master/test_phone_number.php
  @see   https://github.com/giggsey/libphonenumber-for-php/blob/master/docs/PhoneNumberUtil.md
  
  @return int|mixed|null Int if Success, Null if Not