code: def name_for_number(numobj, lang, script=None, region=None):
      
      ntype = number_type(numobj)
      if _is_mobile(ntype):
          return name_for_valid_number(numobj, lang, script, region)
      return U_EMPTY_STRING
docs: Returns a carrier name for the given PhoneNumber object, in the
      language provided.
  
      The carrier name is the one the number was originally allocated to,
      however if the country supports mobile number portability the number might
      not belong to the returned carrier anymore. If no mapping is found an
      empty string is returned.
  
      This function explicitly checks the validity of the number passed in
  
      Arguments:
      numobj -- The PhoneNumber object for which we want to get a carrier name.
      lang -- A 2-letter lowercase ISO 639-1 language code for the language in
                    which the description should be returned (e.g. "en")
      script -- A 4-letter titlecase (first letter uppercase, rest lowercase)
                    ISO script code as defined in ISO 15924, separated by an
                    underscore (e.g. "Hant")
      region --  A 2-letter uppercase ISO 3166-1 country code (e.g. "GB")
  
      Returns a carrier name in the given language code, for the given phone
      number, or an empty string if no description is available.