我想從第二段調用中獲得通話詳細信息,並將它們插入到我的數據庫中。我怎樣才能獲得twilio第二次電話會議的詳細信息?
以下是這種情況:將免費號碼的呼入呼叫路由到第二部電話。所以有兩條腿,1)對免費電話號碼的入站呼叫,然後2)連接到第二個號碼。
用於獲取通話細節首回合代碼:
get '/hangup' do
user_key = numbers.where(:number => params["To"]).join(:credentials, :user_id => :user_id).get(:user_key)
user_token = numbers.where(:number => params["To"]).join(:credentials, :user_id => :user_id).get(:user_token)
call_sid = params["CallSid"]
call_parent_sid = ["ParentCallSid"]
@sub_account_client = Twilio::REST::Client.new(user_key, user_token)
@subaccount = @sub_account_client.account
call = @subaccount.calls.get(call_sid)
call_sid = call.sid,
call_parent_sid = call.parent_call_sid,
phone_number_id = call.phone_number_sid,
call_from = call.from,
call_to = call.to,
call_start = call.start_time,
call_end = call.end_time,
call_duration = call.duration,
charged_duration = ((call_duration.to_f)/60).ceil
call_price = call.price
call_charged_price = (charged_duration * 0.07)
call_logs.insert(:call_sid => call_sid, :call_parent_sid => call_parent_sid, :phone_number_id => phone_number_id, :call_from => call_from, :call_to => call_to, :call_start => call_start, :call_end => call_end, :call_duration => call_duration, :charged_duration => charged_duration, :call_price => call_price, :call_charged_price => call_charged_price)
end
這工作掛機之後和status_callback_url是「/掛斷」。但是,我怎樣才能獲得第二段電話的相同細節。我曾嘗試如下:
get '/receive' do
destination_number = numbers.where(:number => params["To"]).join(:users, :id => :user_id).get(:primary_number)
user_id = numbers.where(:number => params["To"]).join(:users, :id => :user_id).get(:id)
greeting_url = voicemail.where(:user_id => user_id).get(:voicemail_play_url)
resp = Twilio::TwiML::Response.new do |r|
r.Dial destination_number, :status_callback => '/hangup_second_leg', :status_callback_method => 'GET'
等。
這有效地試圖創建它,不用說,沒有工作第二status_callback_url。
那麼,我怎樣才能得到呼叫的第二條(甚至第三條)腿的細節,並把它塞進我的數據庫?
Twilio evangelist .....
非常感謝提前。
謝謝親愛的TDE。對不起,我的答覆很慢(我在日本),我們遇到了問題。 parentcallsid是空的,這裏是我的終端:GET/hangup?AccountSid = ACac2a5b815cdcd688200c30dd3a7de092&CallStatus = completed&ToZip =&ToCity = ToState =&Callled =%2B448008085510&To =%2B448008085510&CallDuration = 15&ToCountry = GB&CalledZip =&Direction = inbound&ApiVersion = 2010-04-01& %2B1000000000&CalledCity =&CalledCountry = GB&Duration = 1&CallSid = CAeaf9b93be24f664be078e934a6443617&CalledState =&From =%2B1000000000 HTTP/1.1「12 - 2.2821 您可以看到沒有parentcallsid參數。我被卡住了。 – user1903663 2014-11-06 08:18:30
我應該補充說明callnback_url的設置如下::status_callback =>「http://6c93ce61.ngrok.com/hangup」,:status_callback_method =>'GET',這裏是我查詢的時候得到的已知的call_sid:{「sid」:「CAeaf9b93be24f664be078e934a6443617」,「parent」:null,「phone_number_id」:「PNa337ddde1fe16df6757b764d8b7be5f9」,「date」:「Thu,2014年11月6日08:13:31 +0000」,「from」: 「+1000000000」,「to」:「+ 448008085510」,「start」:「Thu,2014年11月6日08:13:33 +0000」,「end」:「Thu,2014年11月6日08:13:48 +0000 「,」價格「:」 - 0.05750「,」持續時間「:」15「}即使呼叫被重定向,仍然沒有父母。 – user1903663 2014-11-06 08:21:37
啊,所以在這種情況下,您沒有在回調中獲得ParentCallSid或DialedCallSid。我不能告訴你爲什麼,但我可以告訴你的是你的電話是家長電話。所以,你可以通過你在那裏的呼叫sid來查找孩子的呼叫。嘗試調用'@subaccount.calls.list:parent_call_sid =>'CAeaf9b93be24f664be078e934a6443617''。你應該在那裏找到孩子的電話。 – philnash 2014-11-06 08:57:25