Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

originate calls via DRb throws exception on answer.

#89

Summary

The call is 'originated', but exception 'Adhearsion::VoIP::Asterisk::Manager::ManagerInterfaceResponse does not refer class/module (TypeError)' is raised.

Setup

  • Asterisk 1.4.21 running on IP 10.46.163.219
  • Outcalling on Asterisk is via H.323 trunk to 10.46.163.13:1720 (this works flawless for everything else)
  • Adhearsion 0.8.3 is running on IP 10.46.163.107
  • ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  • rubygems 1.3.5
  • Installed gems
    activesupport (2.3.4)
    adhearsion (0.8.3)
    cgi_multipart_eof_fix (2.5.0)
    daemons (1.0.10)
    fastthread (1.0.7)
    gem_plugin (0.2.3)
    jsgoecke-restful_adhearsion (0.1.1)
    json (1.1.9)
    log4r (1.1.2)
    mongrel (1.1.5)
    rack (1.0.1)
    rest-client (1.0.3)
    rubigen (1.5.2)
    sinatra (0.9.4)
    

Asterisk Configs

manager.conf

[ahn_ami]
secret = adhearsion
read    = system,call,log,verbose,command,agent,user
write   = system,call,log,verbose,command,agent,user

extensions.conf

[default]
; single Adhearsion extension
exten => 8001,1,AGI(agi://10.46.163.107)
exten => 8001,n,Hangup
...

Adhearsion configs

config/startup.rb

  ...
  config.logging :level => :debug
  ...
  config.asterisk.enable_ami :host => "10.46.163.219", :username => "ahn_ami", :password => "adhearsion", :events => true

  config.enable_drb
  ...

dialplan.rb

default {
  @destination = self.call.variables[:destination] = variable("destination")

  if @destination
    play 'one-moment-please'
    dial @destination
  end
}

test.rb

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

options = { :channel  => "H323/6702@10.46.163.13:1720",
              :context  => "default",
              :priority => "1",
              :exten    => "8001",
              :async    => 'true',
              :variable => "destination=H323/6969@10.46.163.13:1720"}

Adhearsion.originate options

Results

  • Extension H323/6702 rings
  • H323/6702 hears "One Moment please"
  • Extension H323/6969 rings and is connected to H323/6702

Output from test.rb

ruby test.rb 
/usr/lib/ruby/1.8/drb/drb.rb:585:in `load': Adhearsion::VoIP::Asterisk::Manager::ManagerInterfaceResponse does not refer class/module (TypeError)
    from /usr/lib/ruby/1.8/drb/drb.rb:585:in `load'
    from /usr/lib/ruby/1.8/drb/drb.rb:581:in `synchronize'
    from /usr/lib/ruby/1.8/drb/drb.rb:581:in `load'
    from /usr/lib/ruby/1.8/drb/drb.rb:633:in `recv_reply'
    from /usr/lib/ruby/1.8/drb/drb.rb:923:in `recv_reply'
    from /usr/lib/ruby/1.8/drb/drb.rb:1202:in `send_message'
    from /usr/lib/ruby/1.8/drb/drb.rb:1093:in `method_missing'
    from /usr/lib/ruby/1.8/drb/drb.rb:1177:in `open'
    from /usr/lib/ruby/1.8/drb/drb.rb:1092:in `method_missing'
    from /usr/lib/ruby/1.8/drb/drb.rb:1110:in `with_friend'
    from /usr/lib/ruby/1.8/drb/drb.rb:1091:in `method_missing'
    from test.rb:11

Output from ahn start .

 INFO ahn: Adhearsion initialized!
DEBUG ami: Sending AMI action: 
>>> Action: login
>>> ActionID: ncJRdg3j-ZoZ3-53UX-CE2J-XJx5zuhAYU7h
>>> Username: ahn_ami
>>> Secret: adhearsion
>>> Events: Off
>>> 
 INFO ami: Successful AMI actions-only connection into ahn_ami@10.46.163.219
 INFO ami: Successful AMI events-only connection into ahn_ami@10.46.163.219
 WARN deprecation: The implementation of the ping, originate, introduce, hangup, call_into_context and call_and_exec methods will soon be moved from this class to SuperManager. At the moment, the SuperManager abstractions are not completed. Don't worry. The migration to SuperManager will be very easy. See http://docs.adhearsion.com/AMI for more information.
DEBUG ami: Sending AMI action: 
>>> Action: originate
>>> ActionID: ei65iJoY-s6NT-HiMT-WD9e-dpLntOqkFUFL
>>> exten: 8001
>>> priority: 1
>>> channel: H323/6702@10.46.163.13:1720
>>> context: default
>>> async: true
>>> variable: destination=H323/6969@10.46.163.13:1720
>>> 
 INFO agi: Handling call with variables {:type=>"H323", :language=>"en", :enhanced=>0.0, :uniqueid=>"asterisk-1259059528.412", :dnid=>6702, :request=>#<URI::Generic:0xb7822168 URL:agi://10.46.163.107>, :callingpres=>0, :query=>{}, :callerid=>nil, :calleridname=>nil, :callingtns=>0, :rdnis=>nil, :context=>"default", :extension=>8001, :type_of_calling_number=>:unknown, :accountcode=>"", :network=>true, :channel=>"H323/10.46.163.13:1720-73", :callingani2=>0, :priority=>1}
DEBUG agi: >>> ANSWER
DEBUG agi: <<< 200 result=0

DEBUG agi: >>> GET VARIABLE destination
DEBUG agi: <<< 200 result=1 (H323/6969@10.46.163.13:1720)

DEBUG agi: >>> EXEC playback one-moment-please
DEBUG agi: <<< 200 result=0

DEBUG agi: >>> EXEC Dial H323/6969@10.46.163.13:1720||
DEBUG agi: <<< 200 result=-1

Hopefully that's enough info to fix the error ..

Reported by Daniel Boyles · November 24th, 2009 @ 06:37 AM

State: invalid
Milestone: none
Assigned to: Ben Klang Ben Klang

Activity

  1. Daniel Boyles
    Daniel Boyles

    Updated the ticket with ruby & rubygems version.
    Also corrected the installed adhearsion version to 0.8.3 (not 0.8.4)

    November 24th, 2009 @ 08:20 AM

  2. jreynolds
    jreynolds

    I had this same problem, it is because you are naming the remote drb object "Adhearsion" which conflicts with module called "Ahearsion". Try:

    AdhearsionRemote = DRbObject.new_with_uri 'druby://localhost:9050'
    ... AdhearsionRemote.originate options

    I no longer get that exception, but asterisk hangs up once it's answered.

    December 11th, 2009 @ 10:46 AM

  3. Daniel Boyles
    Daniel Boyles

    Thanks jreynolds.

    It works now & thanks for the explanation.
    I actually got the code for test.rb from jicksta's click-to-call
    Now I can hopefully get that to work for me :-)

    I don't get asterisk hanging up on me, so perhaps you're experiencing another issue ?

    December 16th, 2009 @ 03:44 PM

  4. Ben Klang
    Ben Klang
    • Assigned user changed from Jay Phillips to Ben Klang
    • Milestone order changed from 0 to 0

    Just a bit of housekeeping: it looks like this is not a bug (though perhaps a documentation issue). Any reason not to close this out?

    July 28th, 2010 @ 09:55 PM

  5. Ben Klang
    Ben Klang
    • State changed from new to invalid

    August 19th, 2010 @ 07:52 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.