Class: Plivo::Resources::NumberInterface

Inherits:
Base::ResourceInterface show all
Defined in:
lib/plivo/resources/numbers.rb

Constant Summary

Constants included from Utils

Utils::TYPE_WHITELIST

Instance Method Summary collapse

Methods included from Utils

GetSortedQueryParamString?, compute_signatureV3?, expected_type?, expected_value?, generate_url?, getMapFromQueryString?, is_one_among_string_url?, multi_valid_param?, raise_invalid_request, valid_account?, valid_date_format?, valid_mainaccount?, valid_multiple_destination_integers?, valid_multiple_destination_nos?, valid_param?, valid_range?, valid_signature?, valid_signatureV3?, valid_subaccount?, valid_url?

Constructor Details

#initialize(client, resource_list_json = nil) ⇒ NumberInterface

Returns a new instance of NumberInterface.



191
192
193
194
195
196
# File 'lib/plivo/resources/numbers.rb', line 191

def initialize(client, resource_list_json = nil)
  @_name = 'Number'
  @_resource_type = Number
  @_identifier_string = 'number'
  super
end

Instance Method Details

#add_number(numbers, carrier, region, options = nil) ⇒ Object

Parameters:

  • numbers (Array)

    An array of numbers that need to be added for the carrier. Make sure that you configure the numbers to point to the sip server @sbc.plivo.com. Eg: If the number you own from your carrier is 18554675486 then the sip address it needs to point to is [email protected]

  • carrier (String)

    The carrier_id of the IncomingCarrier that the number is associated with. For more information, check our IncomingCarrier API /

  • region (String)

    This is the region that is associated with the Number. You can use it to organize numbers based on the area they are from.

  • options (Hash) (defaults to: nil)

Options Hash (options):

  • :number_type (String)

    This field does not impact the way Plivo uses this number. It is primarily adding more information about your number. You may use this field to categorize between local and tollfree numbers. Default is local.

  • :app_id (String)

    The application id of the application that is to be linked.

  • :subaccount (String)

    The auth_id of the subaccount to which this number should be added. This can only be performed by a main account holder.



285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
# File 'lib/plivo/resources/numbers.rb', line 285

def add_number(numbers, carrier, region, options = nil)
  valid_param?(:carrier, carrier, [String, Symbol], true)
  valid_param?(:region, region, [String, Symbol], true)
  valid_param?(:numbers, numbers, Array, true)
  numbers.each do |number|
    valid_param?(:number, number, [Integer, String, Symbol], true)
  end

  params = {
    numbers: numbers.join(','),
    carrier: carrier,
    region: region
  }

  return perform_post(params) if options.nil?

  if options.key?(:subaccount) &&
     valid_subaccount?(options[:subaccount], true)
    params[:subaccount] = options[:subaccount]
  end

  %i[number_type app_id].each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], true)
      params[param] = options[param]
    end
  end

  perform_post(params)
end

#delete(number) ⇒ Object

Parameters:

  • number (String)


328
329
330
331
# File 'lib/plivo/resources/numbers.rb', line 328

def delete(number)
  valid_param?(:number, number, [String, Symbol], true)
  Number.new(@_client, resource_id: number).delete
end

#eachObject



268
269
270
271
272
273
274
275
276
# File 'lib/plivo/resources/numbers.rb', line 268

def each
  offset = 0
  loop do
    number_list = list(offset: offset)
    number_list[:objects].each { |number| yield number }
    offset += 20
    return unless number_list.length == 20
  end
end

#get(number) ⇒ Object

Parameters:

  • number (String)


199
200
201
# File 'lib/plivo/resources/numbers.rb', line 199

def get(number)
  perform_get(number)
end

#list(options = nil) ⇒ Object

Parameters:

  • options (Hash) (defaults to: nil)

Options Hash (options):

  • :type (String)

    The type of number you are filtering. You can filter by local and tollfree numbers. Defaults to a local number.

  • :number_startswith (String|Int)

    Used to specify the beginning of the number. For example, if the number ‘24’ is specified, the API will fetch only those numbers beginning with ‘24’.

  • :subaccount (String)

    Requires the auth_id of the subaccount as input. If this parameter is included in the request, all numbers of the particular subaccount are displayed.

  • :alias (String)

    This is a name given to the number. The API will fetch only those numbers with the alias specified.

  • :services (String)

    Filters out phone numbers according to the services you want from that number. The following values are valid:

    • voice - Returns a list of numbers that provide ‘voice’ services. Additionally, if the numbers offer both ‘voice’ and ‘sms’, they are also listed. Note - This option does not exclusively list those services that provide both voice and sms .

    • voice,sms - Returns a list of numbers that provide both ‘voice’ and ‘sms’ services.

    • sms - Returns a list of numbers that provide only ‘sms’ services.

  • :limit (Int)

    Used to display the number of results per page. The maximum number of results that can be fetched is 20.

  • :offset (Int)

    Denotes the number of value items by which the results should be offset. Eg:- If the result contains a 1000 values and limit is set to 10 and offset is set to 705, then values 706 through 715 are displayed in the results. This parameter is also used for pagination of the results.

  • :tendlc_campaign_id (String)

    The 10DLC campaign that the number is currently linked with. You can filter US/CA local numbers linked to a specific campaign.

  • :tendlc_registration_status (String)

    Indicates the 10DLC registration status of a US/CA local number. The following values are valid:

    • unregistered - Returns a list of numbers that are not linked to any campaign

    • processing - Returns a list of numbers that are currently in the process of being linked to respective campaigns.

    • completed - Returns a list of numbers that are successfully linked to respective campaigns.

  • :toll_free_sms_verification (String)

    Indicates the toll-free SMS verification status of SMS-enabled US/CA toll-free number. The following values are valid:

    • unverified - Returns a list of SMS-enabled US/CA toll-free numbers that are not verified.

    • pending_verification - Returns a list of SMS-enabled US/CA toll-free numbers that are pending verification

    • verified - Returns a list of SMS-enabled US/CA toll-free numbers that are verified for enhanced outbound SMS limits.



223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
# File 'lib/plivo/resources/numbers.rb', line 223

def list(options = nil)
  return perform_list if options.nil?

  valid_param?(:options, options, Hash, true)

  params = {}

  %i[number_startswith subaccount alias tendlc_campaign_id tendlc_registration_status toll_free_sms_verification].each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], true)
      params[param] = options[param]
    end
  end

  if options.key?(:services) &&
     valid_param?(:services, options[:services], [String, Symbol],
                  true, %w[sms voice voice,sms])
    params[:services] = options[:services]
  end

  if options.key?(:type) &&
     valid_param?(:type, options[:type], [String, Symbol],
                  true, %w[local tollfree])
    params[:type] = options[:type]
  end

  %i[offset limit].each do |param|
    if options.key?(param) && valid_param?(param, options[param],
                                           [Integer, Integer], true)
      params[param] = options[param]
    end
  end

  if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
    raise_invalid_request('The maximum number of results that can be '\
    "fetched is 20. limit can't be more than 20 or less than 1")
  end

  if options.key?(:offset) && options[:offset] < 0
    raise_invalid_request("Offset can't be negative")
  end

  perform_list(params)
end

#update(number, options = nil) ⇒ Object

Parameters:

  • number (String)
  • options (Hash) (defaults to: nil)

Options Hash (options):

  • :alias (String)

    The textual name given to the number.

  • :app_id (String)

    The application id of the application that is to be linked.

  • :subaccount (String)

    The auth_id of the subaccount to which this number should be added. This can only be performed by a main account holder.



321
322
323
324
325
# File 'lib/plivo/resources/numbers.rb', line 321

def update(number, options = nil)
  valid_param?(:number, number, [String, Symbol], true)
  Number.new(@_client,
             resource_id: number).update(options)
end