2017-06-15 1 views
1

私はRuby On Railsでビルドされたアプリケーションをデータベースに格納されたメンバーに呼び出すことができます。これらのメンバーを呼び出すにはTwilioWebRTCを使用しており、TwiMLアプリケーションにリクエストして、このコードを返します:TwilioとRuby and Railsを使用してライブアウトバウンドコールに第三者を追加するにはどうすればいいですか?

member = Member.find_by_id params[:id] 
client = Client.find_by_id params[:client_id] 
response = Twilio::TwiML::Response.new do |r| 
    r.Say 'Hello. Connecting with the member now.', :voice => 'alice' 
    r.Dial :record => 'record-from-answer',:callerId => client.twilio_number do |d| 
    d.Number member.mobile_phone 
    end 
end 

問題は、特定の瞬間にこのコールを別の番号にリダイレクトする必要があるときに発生します。現在、私はこれでコールを更新し、ルートへの要求を行い、コールリダイレクトするには:

@call = @client.account.calls.get(outgoing_call.sid) 
@call.update(:url => "#{ENV['APP_BASE_URL']}/twilio/redirect_call?client_id=#{params[:client_id]}", 
      :method => "POST") 

この部分を返すURL:

client = Client.find_by_id params[:client_id] 
response = Twilio::TwiML::Response.new do |r| 
    r.Dial :record => 'record-from-answer' do |d| 
    d.Number client.redirect_number 
    end 
end 

これは私のコールをリダイレクトしますが、上の私の発信通話を切断しますクライアント クライアントにハングアップすることなくコールをリダイレクトする必要があるので、切断せずにアウトバウンドコールに第三者を追加するにはどうすればいいですか?ドキュメントはたくさん検索されていますが、 この場合、私はクライアントと他の参加者の両方を呼びます。

答えて

0

ここではTwilioの開発者のエバンジェリストです。

会話に3人必要な場合は、それらを接続するために<Conference>を使用する必要があります。

最初の呼び出しの場合は、代わりに1つのコールのいずれかにユーザーをダイヤルで、あなたは彼らが会議に入ると同時に第二のパーティにダイヤルが必要ですが:

member = Member.find_by_id params[:id] 
client = Client.find_by_id params[:client_id] 
room_id = "#{member.id}-#{client.id}" 
@client.calls.create(
    :to => member.mobile_phone, 
    :from => client.twilio_number, 
    :url => "#{ENV['APP_BASE_URL']}/twilio/conference?room_id=#{room_id}" 
) 
response = Twilio::TwiML::Response.new do |r| 
    r.Say 'Hello. Connecting with the member now.', :voice => 'alice' 
    r.Dial do |d| 
    d.Conference room_id, :record => 'record-from-start' 
    end 
end 

あなたはその後、/」のためのルートが必要twilio/conference "は、URLからroom_idを読み取り、会議用に同じTwiMLを返します。

room_id = params[:room_id] 
response = Twilio::TwiML::Response.new do |r| 
    r.Dial do |d| 
    d.Conference room_id 
    end 
end 

あなたが代わりにリダイレクトする、通話に別の発信者を追加したいときに、あなただけのもその会議のルートと部屋IDを使用して、それらに新しいコールを作成します。

client = Client.find_by_id params[:client_id] 
room_id = params[:room_id] 
@client.calls.create(
    :to => client.redirect_number, 
    :from => client.twilio_number, 
    :url => "#{ENV['APP_BASE_URL']}/twilio/conference?room_id=#{room_id}" 
) 

それがまったく役に立ったら教えてください。

+0

yeap、それは大変感謝していますが、メンバーに電話すると質問があります。プログラムは彼に会議に入るためのキーを押してもらえますか?これを無効にする方法はありますか?何もせずに入りますか? –

+0

アカウントをアップグレードしましたか?ユーザーに番号をダイヤルするように指示していない限り、このようなことは起こりません。 – philnash

関連する問題