Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

freeclimb

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

freeclimb

  • 4.8.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

freeclimb

Freeclimb - the Ruby gem for the FreeClimb API

FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.

This SDK is automatically generated by the OpenAPI Generator project:

  • API version: 1.0.0
  • Package version: 4.8.0
  • Build package: org.openapitools.codegen.languages.RubyClientCodegen For more information, please visit https://www.freeclimb.com/support/

Installation

Add this to the Gemfile:

gem 'freeclimb', '~> 4.8.0'

and run from your terminal

bundle install

Install from Git

If the Ruby gem is hosted at a git repository: e.g. https://https://github.com/freeclimbapi/ruby-sdk, then add the following in the Gemfile:

gem 'freeclimb', :git => 'https://https://github.com/freeclimbapi/ruby-sdk.git'

Install from RubyGems

gem install freeclimb

or

bundle add freeclimb

Install/Build locally

To build the Ruby code into a gem:

gem build freeclimb.gemspec

Then either install the gem locally:

gem install ./freeclimb-4.8.0.gem

(for development, run gem install --dev ./freeclimb-4.8.0.gem to install the development dependencies)

Getting Started

Please follow the installation procedure and then run the following code:

# Load the gem
require 'freeclimb'

# Setup authorization
Freeclimb.configure do |config|
  # Configure HTTP basic authorization: fc
  config.username = 'ACCOUNT_ID'
  config.password = 'API_KEY'
end

api_instance = Freeclimb::DefaultApi.new

buy_incoming_number_request = Freeclimb::BuyIncomingNumberRequest.new({phone_number: 'phone_number_example'}) # BuyIncomingNumberRequest | Incoming Number transaction details


begin
  #Buy a Phone Number
  result = api_instance.buy_a_phone_number(buy_incoming_number_request)
  p result
rescue Freeclimb::ApiError => e
  puts "Exception when calling DefaultApi->buy_a_phone_number: #{e}"
end

Documentation for PerCL

The Performance Command Language (PerCL) defines a set of instructions, written in JSON format, that express telephony actions to be performed in response to an event on the FreeClimb platform. FreeClimb communicates with the application server when events associated with the application occur, so the webserver can instruct FreeClimb how to handle such events using PerCL scripts. PerCL commands are a part of the model schema and can be serialized into JSON like so:

require 'freeclimb'

say = Freeclimb::Say.new(text: "Hello, World")
play = Freeclimb::Play.new(file: "Example File")
get_digits = Freeclimb::GetDigits.new(action_url: "Example Action URL", prompts: [say, play])
percl_script = Freeclimb::PerclScript.new(commands: [get_digits])
puts percl_script.to_json

Documentation for API Endpoints

All URIs are relative to https://www.freeclimb.com/apiserver

ClassMethodHTTP requestDescription
Freeclimb::DefaultApibuy_a_phone_numberPOST /Accounts/{accountId}/IncomingPhoneNumbersBuy a Phone Number
Freeclimb::DefaultApicreate_a_conferencePOST /Accounts/{accountId}/ConferencesCreate a Conference
Freeclimb::DefaultApicreate_a_queuePOST /Accounts/{accountId}/QueuesCreate a Queue
Freeclimb::DefaultApicreate_an_applicationPOST /Accounts/{accountId}/ApplicationsCreate an application
Freeclimb::DefaultApicreate_knowledge_base_completionPOST /Accounts/{accountId}/KnowledgeBases/{knowledgeBaseId}/CompletionQuery the knowledge base
Freeclimb::DefaultApidelete_a_recordingDELETE /Accounts/{accountId}/Recordings/{recordingId}Delete a Recording
Freeclimb::DefaultApidelete_an_applicationDELETE /Accounts/{accountId}/Applications/{applicationId}Delete an application
Freeclimb::DefaultApidelete_an_incoming_numberDELETE /Accounts/{accountId}/IncomingPhoneNumbers/{phoneNumberId}Delete an Incoming Number
Freeclimb::DefaultApidequeue_a_memberPOST /Accounts/{accountId}/Queues/{queueId}/Members/{callId}Dequeue a Member
Freeclimb::DefaultApidequeue_head_memberPOST /Accounts/{accountId}/Queues/{queueId}/Members/FrontDequeue Head Member
Freeclimb::DefaultApidownload_a_recording_fileGET /Accounts/{accountId}/Recordings/{recordingId}/DownloadDownload a Recording File
Freeclimb::DefaultApifilter_logsPOST /Accounts/{accountId}/LogsFilter Logs
Freeclimb::DefaultApiget_a_callGET /Accounts/{accountId}/Calls/{callId}Get a Call
Freeclimb::DefaultApiget_a_conferenceGET /Accounts/{accountId}/Conferences/{conferenceId}Get a Conference
Freeclimb::DefaultApiget_a_memberGET /Accounts/{accountId}/Queues/{queueId}/Members/{callId}Get a Member
Freeclimb::DefaultApiget_a_participantGET /Accounts/{accountId}/Conferences/{conferenceId}/Participants/{callId}Get a Participant
Freeclimb::DefaultApiget_a_queueGET /Accounts/{accountId}/Queues/{queueId}Get a Queue
Freeclimb::DefaultApiget_a_recordingGET /Accounts/{accountId}/Recordings/{recordingId}Get a Recording
Freeclimb::DefaultApiget_an_accountGET /Accounts/{accountId}Get an Account
Freeclimb::DefaultApiget_an_applicationGET /Accounts/{accountId}/Applications/{applicationId}Get an Application
Freeclimb::DefaultApiget_an_incoming_numberGET /Accounts/{accountId}/IncomingPhoneNumbers/{phoneNumberId}Get an Incoming Number
Freeclimb::DefaultApiget_an_sms_messageGET /Accounts/{accountId}/Messages/{messageId}Get an SMS Message
Freeclimb::DefaultApiget_head_memberGET /Accounts/{accountId}/Queues/{queueId}/Members/FrontGet Head Member
Freeclimb::DefaultApiget_ten_dlc_sms_brandGET /Accounts/{accountId}/Messages/10DLC/Brands/{brandId}Get a 10DLC SMS Brand
Freeclimb::DefaultApiget_ten_dlc_sms_brandsGET /Accounts/{accountId}/Messages/10DLC/BrandsGet list of SMS 10DLC Brands
Freeclimb::DefaultApiget_ten_dlc_sms_campaignGET /Accounts/{accountId}/Messages/10DLC/Campaigns/{campaignId}Get a 10DLC SMS Campaign
Freeclimb::DefaultApiget_ten_dlc_sms_campaignsGET /Accounts/{accountId}/Messages/10DLC/CampaignsGet list of SMS 10DLC Campaigns
Freeclimb::DefaultApiget_ten_dlc_sms_partner_campaignGET /Accounts/{accountId}/Messages/10DLC/PartnerCampaigns/{campaignId}Get a 10DLC SMS Partner Campaign
Freeclimb::DefaultApiget_ten_dlc_sms_partner_campaignsGET /Accounts/{accountId}/Messages/10DLC/PartnerCampaignsGet list of SMS 10DLC Partner Campaigns
Freeclimb::DefaultApiget_toll_free_sms_campaignGET /Accounts/{accountId}/Messages/TollFree/Campaigns/{campaignId}Get a TollFree SMS Campaign
Freeclimb::DefaultApiget_toll_free_sms_campaignsGET /Accounts/{accountId}/Messages/TollFree/CampaignsGet list of TollFree Campaigns
Freeclimb::DefaultApilist_active_queuesGET /Accounts/{accountId}/QueuesList Active Queues
Freeclimb::DefaultApilist_all_account_logsGET /Accounts/{accountId}/LogsList All Account Logs
Freeclimb::DefaultApilist_applicationsGET /Accounts/{accountId}/ApplicationsList applications
Freeclimb::DefaultApilist_available_numbersGET /AvailablePhoneNumbersList available numbers
Freeclimb::DefaultApilist_call_logsGET /Accounts/{accountId}/Calls/{callId}/LogsList Call Logs
Freeclimb::DefaultApilist_call_recordingsGET /Accounts/{accountId}/Calls/{callId}/RecordingsList Call Recordings
Freeclimb::DefaultApilist_callsGET /Accounts/{accountId}/CallsList Calls
Freeclimb::DefaultApilist_conference_recordingsGET /Accounts/{accountId}/Conferences/{conferenceId}/RecordingsList Conference Recordings
Freeclimb::DefaultApilist_conferencesGET /Accounts/{accountId}/ConferencesList Conferences
Freeclimb::DefaultApilist_incoming_numbersGET /Accounts/{accountId}/IncomingPhoneNumbersList Incoming Numbers
Freeclimb::DefaultApilist_membersGET /Accounts/{accountId}/Queues/{queueId}/MembersList Members
Freeclimb::DefaultApilist_participantsGET /Accounts/{accountId}/Conferences/{conferenceId}/ParticipantsList Participants
Freeclimb::DefaultApilist_recordingsGET /Accounts/{accountId}/RecordingsList Recordings
Freeclimb::DefaultApilist_sms_messagesGET /Accounts/{accountId}/MessagesList SMS Messages
Freeclimb::DefaultApimake_a_callPOST /Accounts/{accountId}/CallsMake a Call
Freeclimb::DefaultApimake_a_webrtc_jwtPOST /Accounts/{accountId}/Calls/WebRTC/TokenMake a JWT for WebRTC calling
Freeclimb::DefaultApiremove_a_participantDELETE /Accounts/{accountId}/Conferences/{conferenceId}/Participants/{callId}Remove a Participant
Freeclimb::DefaultApisend_an_sms_messagePOST /Accounts/{accountId}/MessagesSend an SMS Message
Freeclimb::DefaultApistream_a_recording_fileGET /Accounts/{accountId}/Recordings/{recordingId}/StreamStream a Recording File
Freeclimb::DefaultApiupdate_a_conferencePOST /Accounts/{accountId}/Conferences/{conferenceId}Update a Conference
Freeclimb::DefaultApiupdate_a_live_callPOST /Accounts/{accountId}/Calls/{callId}Update a Live Call
Freeclimb::DefaultApiupdate_a_participantPOST /Accounts/{accountId}/Conferences/{conferenceId}/Participants/{callId}Update a Participant
Freeclimb::DefaultApiupdate_a_queuePOST /Accounts/{accountId}/Queues/{queueId}Update a Queue
Freeclimb::DefaultApiupdate_an_accountPOST /Accounts/{accountId}Manage an account
Freeclimb::DefaultApiupdate_an_applicationPOST /Accounts/{accountId}/Applications/{applicationId}Update an application
Freeclimb::DefaultApiupdate_an_incoming_numberPOST /Accounts/{accountId}/IncomingPhoneNumbers/{phoneNumberId}Update an Incoming Number
FreeClimb::DefaultApiget_next_pageGETGet next page of paginated resource

Documentation for Models

Documentation for Authorization

fc

  • Type: HTTP basic authentication

Documentation for verifying request signature

  • To verify the signature request, we will need to use the verifySignatureRequest method within the Request Verifier class

    Freeclimb::RequestVerifier.verify_request_signature(requestBody, requestHeader, signingSecret, tolerance)

    This is a method that you can call directly from the request verifier class, it will throw exceptions depending on whether all parts of the request signature is valid otherwise it will throw a specific error message depending on which request signature part is causing issues

    This method requires a requestBody of type string, a requestHeader of type string, a signingSecret of type string, and a tolerance value of type int

    Example code down below

    class RequestVerifier
      def verify_request_signature_example()
          request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
          signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
          tolerance = (5 * 60)
          request_body =  "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
          Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance)
    

Getting Help

If you are experiencing difficulties, contact support.

FAQs

Package last updated on 22 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc