【发布时间】:2021-08-19 21:38:07
【问题描述】:
我想拥有使用 twilio 的循环呼叫功能。
让我们说。我有 100 个用户和他们的电话号码。
我想同时给他们打电话。
然后,无论第一个人接到电话,我都会将该电话连接到我的销售部门,并立即切断或断开其他电话。
我通过 twiML 知道我可以拨打我的销售团队,并且我还知道我可以检查正在进行的事件以查看呼叫是否已连接。
但是,我坚持同时呼叫所有用户,并在第一个用户连接到呼叫后断开连接,这是我的第一步。
我正在做更多更新,因为我的场景发生了一些变化。
在这种情况下,我首先打电话给填写了我的潜在客户表单的用户。一旦主要用户接到电话,我将致电销售团队的 10 名座席,但我想跟踪哪个座席收到了主导电话,并希望将座席信息保存到我的数据库中并切断其他呼叫。
在我的计数器中
<?php
namespace App\Http\Controllers;
use App\Listing;
use App\User;
use Illuminate\Http\Request;
use Twilio\Rest\Client;
use Twilio\TwiML\VoiceResponse;
use Twilio\Twiml;
class TwilioController extends Controller
{
public function leadCall(Request $request)
{
// Lead user
$lead = Lead::where('id', $request->lead_id)->first();
$country_code = "+1";
$visitor_phone = $country_code . $lead->details_phone;
$url = "https://www.samplewebsite.com/outbound?multi_call=true";
// Twilio Credentials
$AccountSid = 'xyz';
$AuthToken = 'xyz';
$twilio_number = "123";
$client = new Client($AccountSid, $AuthToken);
// Calling the lead visitor first
try {
$call = $client->account->calls->create($visitor_phone, $twilio_number,
array(
"url" => $url
)
);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
}
if($request->multi_call)
{
// Fetch 10 agents
$users = User::all()->take(10);
// Calling Twilio
$twiml = new VoiceResponse();
$twiml->say('Please hold, we are connecting your call to one of our agent.', array('voice' => 'alice'));
$dial = $twiml->dial();
foreach ($users as $user) {
if($user->phone && $user->live_call)
{
$dial->number($user->phone,
['statusCallbackEvent' => 'answered',
'statusCallback' => 'https://www.samplewebsite.com/outbound?agent_call=true',
'statusCallbackMethod' => 'GET']);
}
}
$response = response()->make($twiml, 200);
$response->header('Content-Type', 'text/xml');
return $response;
}
if($request->agent_call)
{
return "Call was made to: " . $request->to;
}
}
这就是我目前所做的
在路由文件中
Route::post('lead-call', 'TwilioController@leadCall')->name('leadCall');
Route::get('outbound', 'TwilioController@outboundMultiCall');
和 TwiML 共鸣
<Response>
<Say voice="alice">Please hold, we are connecting your call to one of our agent.</Say>
<Dial>
<Number statusCallbackEvent="answered" statusCallback="https://www.samplewebsite.com/outbound?agent_call=true" statusCallbackMethod="GET">xxx-xxx-xxxx</Number>
<Number statusCallbackEvent="answered" statusCallback="https://www.samplewebsite.com/outbound?agent_call=true" statusCallbackMethod="GET">xxx-xxx-xxxx</Number>
<Number statusCallbackEvent="answered" statusCallback="https://www.samplewebsite.com/outbound?agent_call=true" statusCallbackMethod="GET">xxx-xxx-xxxx</Number>
</Dial>
</Response>
我有两个问题。当我在 webhook 中添加像 multi_call=true 这样的 get 参数时,我得到应用程序错误。所以我不能给我的代理拨打 10 次电话。
另外我想跟踪哪个用户首先参加了电话会议,以便我可以维护到我的数据库并提高他们的评分。
谢谢
【问题讨论】:
-
到目前为止你尝试过什么?什么有效,什么无效?
-
@philnash up 能够呼叫一位用户并连接到我的销售团队。我已经更新了我的问题。如果有任何一个用户接听电话,我就会同时打电话给用户并断开所有其他电话。
标签: laravel twilio twilio-php