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