Bandwidth

Ruby gem for consuming the Bandwidth REST API.

Installation

gem install bandwidth

Example

API Docs

require 'rubygems'
require 'bandwidth'
bandwidth = Bandwidth.new(:developer_key => 'your developer key')
bandwidth.area_code_number_search :area_code => '720', :max_quantity => 1

Returns (using awesome_print gem):

{
       "body" => {
        "numberSearchResponse" => {
                   "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema",
                    "quantity" => "1",
                   "requestID" => "463f5cd2-e75d-4cc2-9ab1-1235a3dd283c",
                "dateTimeSent" => "2011-03-18 19:48:04Z",
                    "warnings" => nil,
                      "errors" => nil,
                   "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
            "telephoneNumbers" => {
                "telephoneNumber" => {
                               "e164" => "+17205551212",
                             "npaNxx" => "720555",
                           "tenDigit" => "7205551212",
                    "formattedNumber" => "1-720-555-1212",
                           "numberID" => "6f37a640-0d9d-45cc-b97b-d6ad77f220b2",
                             "status" => "Available",
                         "rateCenter" => {
                         "name" => "DENVERSLVN",
                         "lata" => "656",
                        "state" => "CO"
                    }
                }
            },
                     "message" => "Successfully executed specified number search.",
                      "status" => "success",
                       "xmlns" => "http://www.bandwidth.com/api/"
        }
    },
       "code" => 200,
    "headers" => {
              "X-Powered-By" => "Bandwidth.com",
        "X-API-SupportEmail" => "[email protected]",
              "Content-Type" => "text/xml; charset=utf-8",
                      "Date" => "Fri, 18 Mar 2011 19:48:04 GMT",
            "Content-Length" => "825",
                    "Server" => "Microsoft-IIS/7.0",
             "Cache-Control" => "private",
          "X-AspNet-Version" => "2.0.50727"
    }
}

Available Methods

Full details of available methods here.

[2.x] Supported Operations, Numbers - getTelephoneNumber
[2.x] Supported Operations, Numbers - getNumberOrder
[2.x] Supported Operations, Numbers - getNumberOrders (developer, account)
[2.x] Supported Operations, Numbers - areaCodeNumberSearch
[2.x] Supported Operations, Numbers - npaNxxNumberSearch
[2.x] Supported Operations, Numbers - rateCenterNumberSearch
[2.x] Supported Operations, Numbers - rateCenterNumberOrder
[2.x] Supported Operations, Numbers - tollfreeNumberSearch
[2.x] Supported Operations, Numbers - tollfreeNumberOrder
[2.x] Supported Operations, Numbers - basicNumberOrder
[2.x] Supported Operations, Numbers - changeNumber
[2.x] Supported Operations, Numbers - sipTrunkOrder
[2.x] Supported Operations, Cdr - getCdrArchive
(restricted use)
[2.x] Restricted Operations, Numbers - consumedNumbers
[2.x] Restricted Operations, Numbers - reserveNumbers
[2.x] Restricted Operations, Numbers - pbod
[2.x] Restricted Operations, Numbers - rateCenterBlockOrder
[2.x] Restricted Operations, Numbers - getRateCenterBlockOrder
[2.x] Restricted Operations, Numbers - getRateCenterBlockOrders

Notes

When calling the 'basic_number_order' method, be sure to use ':number_IDs' & ':ext_ref_ID' as the correct options, given that the Bandwidth API is not following camelCase standards in this case.

Copyright (c) 2011 Jason Goecke. See LICENSE.txt for further details.