Skip to content

Instantly share code, notes, and snippets.

View bklang's full-sized avatar

Ben Klang bklang

View GitHub Profile
@bklang
bklang / gist:661206
Created November 3, 2010 15:18
AppKonference diff for Asterisk 1.8
Index: konference/conference.c
===================================================================
--- konference/conference.c (revision 52)
+++ konference/conference.c (working copy)
@@ -1213,7 +1213,7 @@
#endif
ast_rwlock_unlock( &conf->lock );
- DEBUG("removed member from conference, name => %s, remaining => %d\n", member->conf_name, membercount) ;
+ DEBUG("removed member from conference, name => %s, remaining => %d\n", conf->name, membercount) ;
@bklang
bklang / priv_attr_accessors.rb
Created January 17, 2011 19:44
In Ruby 1.8 sending :attr_accessor to an object resulted in a public accessor method. In Ruby 1.9 the methods are private.
class Foo
attr_accessor :x
end
Foo.send(:attr_accessor, :y)
myfoo = Foo.new
# Using the attr_accessor defined initially works fine
myfoo.x = 1
# Using the attr_accessor defined at runtime gies NoMethodError
@bklang
bklang / adhearsion-rhel5.sh
Created February 25, 2011 15:35
Adhearsion QuickStart for RedHat Enterprise Linux/CentOS 5
bash < <( curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
source /etc/profile.d/rvm.sh
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
rvm install 1.9.3
rvm use --default 1.9.3
gem install --no-rdoc --no-ri adhearsion
@bklang
bklang / restful_example.rb
Created April 8, 2011 20:43
Example restful_rpc custom method
methods_for :rpc do
def transfer(channel, exten)
Adhearsion::VoIP::Asterisk::manager_interface.send_action(...)
end
end
Failures:
1) play command multiple strings can be passed to play, causing multiple playback commands to be issued
Failure/Error: output_stream_matches(/playback "#{audio_file}"/)
RegexpError:
empty range in char class: /playback "["cents-per-minute", "o-hai"]"/
# ./spec/voip/asterisk/commands_spec.rb:137:in `block in pbx_was_asked_to_play'
# ./spec/voip/asterisk/commands_spec.rb:136:in `each'
# ./spec/voip/asterisk/commands_spec.rb:136:in `pbx_was_asked_to_play'
# ./spec/voip/asterisk/commands_spec.rb:315:in `block (2 levels) in <top (required)>'
@bklang
bklang / dialplan.rb
Created May 4, 2011 14:13
Using Adhearsion and Asterisk Local channels to play sound files to a conference
trigger_context {
ami = Adhearsion::VoIP::Asterisk.manager_interface
ami.originate :Channel => 'Local/s@local-meetme', :Application => 'AGI', :Data => 'agi://localhost/play_announce'
}
play_announce {
play 'my-super-cool-announcement', 'thanks-and-goodbye'
}
@bklang
bklang / pry-threads.rb
Created June 10, 2011 14:59
Pry threading test
require 'rubygems'
require 'pry'
#require 'rbtrace'
puts $$
threads = []
threads << Thread.new do
loop do
puts "Thread 1"
sleep 1
@bklang
bklang / dialplan.rb
Created August 18, 2011 14:59
Example dynamically generated menu
menu 'my_menu_prompt', :timeout => 5.seconds, :tries => 2 do |link|
options.each do |digit, context|
link.send context.to_sym, digit
end
end
@bklang
bklang / dialplan.rb
Created October 14, 2011 15:46
Example call origination handling
robocall {
answer
# Join conference room based on dialed extension, in this case 8621
dial("WOOMERA/conf:#{variables[:exten]}")
hangup
}
noisemaker {
answer
play 'tt-monkeys'
@bklang
bklang / extensions.conf
Created November 9, 2011 17:12
Adhearsion dev setup
[adhearsion]
exten => _.,1,AGI(agi://localhost/adhearsion)