lib/adhearsion/punchblock_plugin.rb in adhearsion-2.0.1 vs lib/adhearsion/punchblock_plugin.rb in adhearsion-2.1.0
- old
+ new
@@ -9,22 +9,24 @@
config :punchblock do
platform :xmpp , :transform => Proc.new { |v| v.to_sym }, :desc => <<-__
Platform punchblock shall use to connect to the Telephony provider. Currently supported values:
- :xmpp
- :asterisk
+ - :freeswitch
__
username "usera@127.0.0.1", :desc => "Authentication credentials"
password "1" , :desc => "Authentication credentials"
- host nil , :desc => "Host punchblock needs to connect (where rayo or asterisk are located)"
- port nil , :transform => Proc.new { |v| PunchblockPlugin.validate_number v }, :desc => "Port punchblock needs to connect (by default 5038 for Asterisk, 5222 for Rayo)"
+ host nil , :desc => "Host punchblock needs to connect (where rayo/asterisk/freeswitch is located)"
+ port Proc.new { PunchblockPlugin.default_port_for_platform platform }, :transform => Proc.new { |v| PunchblockPlugin.validate_number v }, :desc => "Port punchblock needs to connect"
root_domain nil , :desc => "The root domain at which to address the server"
calls_domain nil , :desc => "The domain at which to address calls"
mixers_domain nil , :desc => "The domain at which to address mixers"
connection_timeout 60 , :transform => Proc.new { |v| PunchblockPlugin.validate_number v }, :desc => "The amount of time to wait for a connection"
reconnect_attempts 1.0/0.0 , :transform => Proc.new { |v| PunchblockPlugin.validate_number v }, :desc => "The number of times to (re)attempt connection to the server"
reconnect_timer 5 , :transform => Proc.new { |v| PunchblockPlugin.validate_number v }, :desc => "Delay between connection attempts"
media_engine nil , :transform => Proc.new { |v| v.to_sym }, :desc => "The media engine to use. Defaults to platform default."
+ default_voice nil , :transform => Proc.new { |v| v.to_sym }, :desc => "The default TTS voice to use."
end
init :punchblock do
Initializer.init
end
@@ -38,9 +40,18 @@
delegate :connection, :to => Initializer
def validate_number(value)
return 1.0/0.0 if ["Infinity", 1.0/0.0].include? value
value.to_i
+ end
+
+ def default_port_for_platform(platform)
+ case platform
+ when :freeswitch then 8021
+ when :asterisk then 5038
+ when :xmpp then 5222
+ else nil
+ end
end
def execute_component(command, timeout = 60)
client.execute_command command, :async => true
response = command.response timeout