2011-09-12 7 views
1

私は音声メッセージを記録し、クラウドに保存する1つのアプリケーションを開発したいと思います。私は音声関連アプリケーションを開発するためにどの技術を使うべきですか

このように動作します

1)ユーザーは携帯電話を呼び出してメッセージを録音します。

2)録音された音声メッセージ/ボイスメールは、web/onlineを介してユーザーの電話番号とともに他のすべてのユーザーにアクセス可能である必要があります。

ウェブ用PHP/Pythonを使用できます。

しかし、Web /クラウド上でボイスメール/ボイスメッセージを保存する方法はわかりません。

など、ハードウェア、実際の音声回線を確保しなくても、あなたが必要なものを達成するためにTwilioTropoまたはone of the other providers in this spaceを使用していないなぜ

+0

なぜ私の答えは受け入れられませんでしたか? – Sim

答えて

1

を助けてください?

Twilioの例はvoicemail applicationなので、プロジェクトにとっては良いスタートになるかもしれません。

電話会社からボイスメールにアクセスする必要がある場合は、プロバイダ固有の詳細が表示されますので、あなたのターゲットにする情報に関する情報を含むように投稿を更新する必要があります(そのプロバイダが複数の市場で)。

0

そのためには、Tropoスクリプトをお勧めします。特に、録音や録音を行うボイスメールシステムを示すtheir exampleを見てください。

私はTropo録音を取り、Amazon S3バケットに入れてシンプルなSinatraアプリをまとめました。そこから、必要に応じて使用できます。

%w(rubygems sinatra yaml logger aws/s3).each do |lib| 
    require lib 
end 

# Open configuration file and connect to Amazon 
AWS_CONFIG = YAML.load(File.open('config/amazon_s3.yml')) 
AWS::S3::Base.establish_connection!(
    :access_key_id  => AWS_CONFIG['access_key_id'], 
    :secret_access_key => AWS_CONFIG['secret_access_key'] 
) 

# Exception class with HTTP error codes 
class HTTPError < StandardError 
    attr_reader :code 
    def initialize(message, code = 500) 
    super(message) 
    @code = code 
    end 
end 

# Put an uploaded file on S3 
def handle_post(params) 
    params['bucket'] ||= AWS_CONFIG['default_bucket'] 

    raise HTTPError.new("invalid token", 403) if params['token'] != AWS_CONFIG['api_token'] 
    raise HTTPError.new("missing filename", 400) unless params['name'] 
    raise HTTPError.new("bucket #{params['bucket']} is not allowed", 403) unless AWS_CONFIG['allowed_buckets'].include? params['bucket'] 

    AWS::S3::S3Object.store(params['name'], 
          File.open(params['filename'][:tempfile].path), 
          params['bucket']) 
rescue HTTPError => ex 
    error(ex.code) 
rescue => ex 
    puts ex 
    error(500) 
end 


# Method that receives the file and sends to S3 
# /save-to-s3?token=<token>[&bucket=<one-of-allowed-buckets>]&name=filename 
post '/save-to-s3' do 
    handle_post(params) 
end 

私はHeroku上でアプリケーションを実行するので、単純なconfig.ruファイルを追加して、Rackアプリケーションとして認識できるようにしました。

Rubyを使用する必要はありません。 Tropoスクリプトは多くの言語を処理します(Tropoは​​Voxeoのアプリケーションサーバー上に構築されているため、すべてJVM上で実行されます)。また、どの言語でもファイルアップロードを処理できます。

幸運。

関連する問題