質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Twilio

Twilioは電話・SMS・ビデオ・チャット・SNS連携等、様々なコミュニケーションチャネルの融合を可能とするクラウドコミュニケーションAPIサービスです。 従来は大規模な設備投資が必要だった電話と連携したシステムも、汎用的な開発言語で容易に開発が可能となり、 様々なコミュニケーションチャネルを活用したシステム構築が可能となります。

Q&A

解決済

2回答

3902閲覧

Twilio ブラウザで保留、転送機能を実現したい

massy7

総合スコア45

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Twilio

Twilioは電話・SMS・ビデオ・チャット・SNS連携等、様々なコミュニケーションチャネルの融合を可能とするクラウドコミュニケーションAPIサービスです。 従来は大規模な設備投資が必要だった電話と連携したシステムも、汎用的な開発言語で容易に開発が可能となり、 様々なコミュニケーションチャネルを活用したシステム構築が可能となります。

0グッド

2クリップ

投稿2017/06/18 12:16

編集2017/06/20 06:03

###前提・実現したいこと
Twilio ブラウザで保留、転送機能を実現したい

###発生している問題
相手の電話を保留することはできています。(<Enqueue>)
Twilioブラウザから保留の部屋に入れません
他の携帯などからTwiMLを使ってキューに入ることはできています。(<Queue>)

TWILIO クライアント JAVASCRIPT クイックスタートブラウザのクライアント(client:XXXX)からJavascriptを変更して実現したいです。

To: のところを変えたりしてキューの名前にしたりしましたがどうしたら良いのかわかりません。

document.getElementById('button-call').onclick = function () { // get the phone number to connect the call to var params = { To: document.getElementById('phone-number').value }; console.log('Calling ' + params.To + '...'); Twilio.Device.connect(params); };

追記

Ajaxで飛ばし、PHPからDialQueueで行けました。
$response->dial()->queue('hold-room');

ブラウザから携帯などにかけた場合、相手を保留状態(Enqueue)するにはどうしたら良いのでしょうか?
これができないため、相手からの電話でも一度保留をかけて復帰すると、こちらからの通話扱いになるため再度保留をすることができない状態です

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

CallSidからParentSidを取得し、それを保存。
以降はそのParentSidをUpdateすることで何回も保留することができました。

php

1 // インスタンスを作成 2 $client = new Client($sid, $token); 3 4 // 保留 5 // 最初ののCallSidを取得 6 // ユーザーのCallSidを取得 7 // ユーザーの通話をアップデート 8 $callSid = $this->request->data('callSid'); 9 $count = $this->request->data('count'); 10 11 $call = $client->calls($callSid)->fetch(); 12 13 if($this->request->data('proc') == "in"){ // ユーザーからかかってきている場合 14 $parentCallSid = $call->parentCallSid; 15 $parentCall = $client->calls($parentCallSid)->fetch(); 16 $callSid = $parentCall->sid; 17 } 18 else if($this->request->data('proc') == "out"){ // こちらからかけた場合 19 if($count == 0){ 20 foreach ($client->calls->read(array("ParentCallSid" => $callSid)) as $call){ 21 $callSid = $call->sid; 22 } 23 } 24 } 25 else{ 26 // error 27 } 28 29 // 相手を保留キューに入れる 30 $client->calls($callSid) 31 ->update(array( 32 "url" => "https://twilio-browser.herokuapp.com/enqueue.php" 33 ) 34 ); 35 36 echo $callSid; 37 38

投稿2017/07/06 07:28

編集2017/07/06 07:29
massy7

総合スコア45

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

同様の問題で詰まっていました。少し調べたので共有いたします。

発信者->Twilio 間の通話はParent
受信者->Twilio 間の通話はChild
となります。

また、最初に取得可能なSIDは、オペレーター側とTwilio間の通話のSIDとなるようです。保留したい場合は、カスタマーとTwilio間の通話に更新をかける必要があります。

簡単にまとめると、かけた場合はChildをかかってきた場合はParentのSIDに対して更新を行えばオッケーです。

投稿2021/07/09 03:34

編集2021/07/09 03:43
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問