VoipmsRates

This Adhearsion plugin fetches the per minute rate from voip.ms for any phone number. It uses the public voip.ms API.

Note that this is intended to be used within an Adhearsion app. If you require this gem to use anywhere else than an Adhearsion app, it will probably not work out of the box.

Installation

Add gem 'voipms_rates' to your Gemfile and run bundle install.

Configuration

The gem will fetch the standard rate by default. If you have changed the routing settings in your voip.ms account (voip.ms > Main Menu > Account Settings > Account Routing) and use premium routing for Canadian and/or international numbers, you can override the defaults by adding the following lines to your app's config/adhearsion.rb:

##
# voipms_rates settings override
config.voipms_rates.canada_use_premium = true # default value is false
config.voipms_rates.intl_use_premium   = true # default value is false

Alternatively, you can set the AHN_VOIPMS_RATES_CANADA_USE_PREMIUM and AHN_VOIPMS_RATES_INTL_USE_PREMIUM environment variables to true.

Usage

In your app's controller:

include VoipmsRates::ControllerMethods

def run
  @rate = get_rate_for(call.to)
  say "This call will cost #{@rate} USD per minute."
  end
end

get_rate_for

Expects one argument, either the E.164 phone number without + or the call.to string directly from the controller.

Example of an E.164 phone number:

Consider the following US number: (555) 123-4567. The US country code is +1, which we add to the beginning of the phone number. Thus, we get +1 (555) 123-4567. We then strip any special chracters and the leading + whih results in 15551234567. This is the number get_rate_for expects.

The method can also handle standard SIP strings. For the sample US phone number above, that would be sip:[email protected]. This string is stored in call.to within the controller for the dialled number.

License

MIT, see the LICENSE file within the repo.