Skip to content

Instantly share code, notes, and snippets.

@onsails
Created December 15, 2009 17:13
Show Gist options
  • Save onsails/257098 to your computer and use it in GitHub Desktop.
Save onsails/257098 to your computer and use it in GitHub Desktop.
1 require "rubygems"
2 require 'adhearsion'
3 require 'adhearsion/voip/asterisk/manager_interface'
4 class DropsController < ApplicationController
5 include Adhearsion::VoIP::Asterisk::Manager
6 include Adhearsion::VoIP::Asterisk::Commands
7 AMI_SERVER = "localhost"
8 AMI_USER_NAME = "admin"
9 AMI_PASSWORD = "amp111"
10 def show
11 @drop = Drop.find_by_real_id(params[:id], :order => "id DESC")
12 if @drop
13 render :text => @drop.call_status_str
14 else
15 render :text => "record_not_found"
16 end
17 end
18
19 def new
20 @drop = Drop.new
21 # Я знаю, что это быдлокод, да. Вся звонилка - сплошной быдлокод.
22 @drop.phone = params[:phone]
23 if "#{@drop.phone}".length == 10
24 @drop.phone = "1" + "#{@drop.phone}"
25 elsif "#{@drop.phone}".length != 11
26 render :text => 'failure'
27 return
28 end
29 @drop.real_id = params[:id]
30 @drop.call_status_str = 'in_progress'
31 @drop.save!
32 require "rubygems"
33 require 'adhearsion'
34 require 'adhearsion/voip/asterisk/manager_interface'
35
36
37
38 asterisk = ManagerInterface.connect :host => AMI_SERVER, :username => AMI_USER_NAME, :password => AMI_PASSWORD
39 asterisk.call_into_context("local/#{@drop.phone}@dialout", "dialout", {:async => true})
40
41 render :text => 'ok'
42 end
43 end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment