adhearsion-drb Build Status

adhearsion-drb is an Adhearsion Plugin providing DRb connectivity. It allows third party ruby clients to connect to an Adhearsion instance for RPC.


  • Adhearsion 2.0+


Add adhearsion-drb to your Adhearsion app's Gemfile.


In your Adhearsion app configuration file, add the following values:

Adhearsion.config[:adhearsion_drb] do |config| = "DRb service host"
  config.port = "DRB service port".to_i
  config.acl.allow = [""] # list of allowed IPs (optional)
  config.acl.deny = [] # list of denied IPs (optional)
  config.shared_object = some_shared_object

The shared_object in the config is the endpoint to which a 3rd-party client will be bound on connection. The most basic scenario looks something like this:

class DrbEndpoint
  def foo

Adhearsion.config.adhearsion_drb.shared_object =

with the following client:

require 'drb'
adhearsion_api = DRbObject.new_with_uri 'druby://localhost:9050'

When the Adhearsion application is running, and the client script runs, it should print :foo to stdout.

A more useful example to return the number of active calls:

class DrbEndpoint
  def call_count

Or to trigger an outbound call:

class DrbEndpoint
  def place_call(number, provider)
    call = Adhearsion::OutboundCall.originate "SIP/#{number}@#{provider}", controller: FooController

NB: Be careful not to define #call on your shared object, else it will be evaluated by the config system incorrectly.


Original author: Juan de Bravo

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history.
    • If you want to have your own version, that is fine but bump version in a commit by itself so I can ignore when I pull
  • Send me a pull request. Bonus points for topic branches.

Copyright (C) 2012 Adhearsion Foundation Inc. Released under the MIT License - Check License file