$page_size = 20; $call_try[1] = 'First'; $call_try[2] = 'Second'; $call_try[3] = 'Third'; $call_try[4] = 'Fourth'; $call_try[5] = 'Fifth'; $call_try[6] = 'Sixth'; $call_try[7] = 'Seventh'; $call_try[8] = 'Eighth'; $call_try[9] = 'Ninth'; $call_try[10] = 'Tenth'; if (isset($_REQUEST['change_call_status']) && $_REQUEST['change_call_status'] == "1") { if ($_REQUEST['curr_status'] == "on") { qu("config", array("value" => "off"), "`key`='CALL_STATUS'"); } else { qu("config", array("value" => "on"), "`key`='CALL_STATUS'"); } die; } if (isset($_REQUEST['download']) && $_REQUEST['download'] == 3) { $destination_name_ulaw = "https://api.twilio.com/2010-04-01/Accounts/" . ACCOUNT_SID . "/Recordings/RE338a2c7e3153c26600a45d42c6c4b358.wav"; $src = $destination_name_ulaw; $dest = _PATH . "b.wav"; file_put_contents($dest, file_get_contents($src)); die; exit; } if (isset($_REQUEST['download'])) { //$destination_name_ulaw1 = 'a.wav'; $destination_name_ulaw = _PATH . 'RE338a2c7e3153c26600a45d42c6c4b358.wav'; //$destination_name_ulaw = "https://api.twilio.com/2010-04-01/Accounts/".ACCOUNT_SID."/Recordings/RE338a2c7e3153c26600a45d42c6c4b358";
$dealId = $each_data['deal_id']; $apiCall = new callWebhook(); $apiCall->callNow($phone_value, $new_agent_numbers, $dealId, "0"); echo "<br><br>Call Generated -<br>Agents:"; d($new_agent_numbers); echo "<br>Customer Phone:"; } } $agent_call_detail = q("SELECT deal_id,customer_phone, is_mail_send,COUNT(id) FROM `agent_call_dialed` where is_redial='0' AND modified_at>=CURRENT_DATE - INTERVAL 1 DAY GROUP BY deal_id HAVING COUNT(id)>=5"); foreach ($agent_call_detail as $each_data) { if ($each_data['is_mail_send'] == '0') { $apiPD = new apiPipeDrive(); $deal_data = json_decode($apiPD->getDealInfo($each_data['deal_id'])); $source_id = isset($deal_data->data->c2a6fc3129578b646ae55717ed15f03ce3ee4df0) ? $deal_data->data->c2a6fc3129578b646ae55717ed15f03ce3ee4df0 : ''; //qi("call_detail", _escapeArray(array("deal_id"=>$each_data['deal_id'],"recording_duration"=>"0","source_id"=>$source_id))); qu("agent_call_dialed", _escapeArray(array("is_mail_send" => "1")), " deal_id='{$each_data['deal_id']}'"); $dealId = $each_data['deal_id']; //$dealId = "5232";// Test Mode $apiPD = new apiPipeDrive(); $deal_data = $apiPD->getDealInfo($dealId); $deal_data = json_decode($deal_data); $deal_amount = number_format($deal_data->data->value, 2); $deal_amount = $deal_amount . ' ' . $deal_data->data->currency; $organization = $deal_data->data->org_name; $customer_name = $deal_data->data->person_name; $customer_phone = $each_data['customer_phone']; ob_start(); $mail_subject = $mail_heading = "Missed Customer Call"; include _PATH . "instance/front/tpl/missed_call_mail_template.php"; $content = ob_get_contents(); ob_end_clean();
$call_detail_id = qi('call_detail', _escapeArray($call_detail_fields)); qu("agent_call_dialed", _escapeArray(array("is_updated" => "1")), "deal_id='" . $dealId . "'"); $fields['subject'] = 'Call'; $fields['done'] = '1'; $fields['type'] = 'call'; $fields['deal_id'] = $dealId; // Test Deal Id - $fields['deal_id'] = '4586'; $fields['person_id'] = $person_id; $fields['org_id'] = $org_id; $param = http_build_query(array('call_detail_id' => $call_detail_id)); //$fields['note'] = "<iframe src='https://www.leadpropel.com/".FOLDER_RUN."playAudio?".$param."' width='380' height='110'></iframe>"; $fields['note'] = "<span call-recording-id-{$call_detail_id}>Call Recording: <br>We are loading call recording.</span>"; $data = $apiPD->createActivity($fields); $activity_data = json_decode($data); if (isset($activity_data->success) && $activity_data->success) { qu('call_detail', array("activity_id" => $activity_data->data->id), "id='{$call_detail_id}'"); } header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; // <Dial>+18774942065</Dial> ?> <Response> <Say>Connecting to customer!</Say> <Dial record="record-from-answer" action="<?php print _U; ?> RecordCallBack/<?php print $cur_agent; ?> /<?php print $dealId;
<?php /** * Admin side Login file * * * @version 1.0 * @package lysoft * */ //$jsInclude = "home.js.php"; //_R(lr('dashboard')); $urlArgs = _cg("url_vars"); if (isset($_REQUEST['hid_sid_id']) && isset($_REQUEST['hid_token_id'])) { qu("config", array("value" => $_REQUEST['txt_account_sid']), "id='{$_REQUEST['hid_sid_id']}'"); qu("config", array("value" => $_REQUEST['txt_auth_token']), "id='{$_REQUEST['hid_token_id']}'"); $_SESSION['greetings_msg'] = 'Keys Updated successfully!'; } $TWILIO_ACCOUNT_SID = qs("SELECT * FROM `config` WHERE `key` LIKE 'TWILIO_ACCOUNT_SID'"); $TWILIO_AUTH_TOKEN = qs("SELECT * FROM `config` WHERE `key` LIKE 'TWILIO_AUTH_TOKEN'"); _cg("page_title", "Twilio Settings");
$cell = _escape(trim($_REQUEST['cell'])); $group = _escape(trim($_REQUEST['group'])); $affected_row = -1; /*if ($phone || $cell) { $affected_row = qu('pd_users', array("phone" => $phone,"cell" => $cell,"group" => $group), " id = '{$agent_id}' "); }else{ $affected_row=0; }*/ $affected_row = qu('pd_users', array("phone" => $phone, "cell" => $cell, "group" => $group), " id = '{$agent_id}' "); echo $affected_row; die; } if ($_REQUEST['doUpdateAgent']) { $agent_id = _escape($_REQUEST['doUpdateAgent']); $value = _escape($_REQUEST['value']); if ($value) { qu('pd_users', array("phone" => $value), " id = '{$agent_id}' "); } die; } if ($_REQUEST['doUpdateAgentCell']) { $agent_id = _escape($_REQUEST['doUpdateAgentCell']); $value = _escape($_REQUEST['value']); if ($value) { qu('pd_users', array("cell" => $value), " id = '{$agent_id}' "); } die; } $agents = q("select * From pd_users where is_active='1' order by name asc "); _cg("page_title", "Pipedrive Agents List"); $jsInclude = "agents.js.php";
if (!empty($user_list) && count($user_list) > 0) { $json_user_list = json_encode($user_list); } $source_pk_id = ''; $source_pk_id = trim($_REQUEST["source_pk_id"]); $source_id_arr = array(); $source_id_arr = qs("SELECT * FROM pd_sources WHERE id = '{$source_pk_id}'"); $source_id = ''; $source_id = $source_id_arr["pd_source_id"]; if (1 == 1) { unset($fields); $check_source_id = 0; $check_source_id = Call_distribution::CheckSourceID($source_id); if ($check_source_id > 0) { $fields["pd_user_id"] = $json_user_list; $user_list_update = qu("call_list_by_source", $fields, " pd_source_id = '{$source_id}'"); $user_list_update = 1; } else { $user_list_insert = 0; $fields["pd_source_id"] = $source_id; $fields["pd_user_id"] = $json_user_list; $user_list_insert = qi("call_list_by_source", $fields); } } /* if (isset($_REQUEST['fields']) && $_REQUEST['fields'] != '') { if (isset($_REQUEST['fields']['call']) && count($_REQUEST['fields']['call']) > 0) { $call_list = $_REQUEST['fields']['call']; foreach ($call_list as $source_id => $each_call): if (isset($each_call) && count($each_call) > 0) {
if (count($new_agent_numbers) > 0) { qu("voice_call", array("in_progress" => "1"), "deal_id='" . $each_call['deal_id'] . "'"); $apiCall = new callWebhook(); echo "cust: " . $first_voice_call[0]['customer_phone'] . "<br>"; echo "Agents: <br>"; d($new_agent_numbers); $apiCall->callNow($first_voice_call[0]['customer_phone'], $new_agent_numbers, $each_call['deal_id'], "1", $cate); } else { qu("voice_call", array("is_aborted" => "2"), "deal_id='" . $each_call['deal_id'] . "'"); $data = qs("select * From pd_users where is_active='1' and is_default='1' order by name asc"); $dealId = $each_call['deal_id']; if (!empty($data)) { $apiPD = new apiPipeDrive(); $agent_id = $data['pd_id']; $deal_data = json_decode($apiPD->getDealInfo($dealId)); $person_id = isset($deal_data->data->person_id->value) ? $deal_data->data->person_id->value : ''; $org_id = isset($deal_data->data->org_id->value) ? $deal_data->data->org_id->value : ''; $apiPD->assignDeal($dealId, $agent_id); $apiPD->assignPerson($person_id, $agent_id); $apiPD->assignOrganization($org_id, $agent_id); die; } } break; } } else { qu("voice_call", array("is_handled" => "1"), "deal_id='" . $each_call['deal_id'] . "'"); } } } die;
$fields['agent_id'] = $each_deal['user_id']['id']; $fields['agent_name'] = $each_deal['user_id']['name']; $fields['agent_email'] = $each_deal['user_id']['email']; $fields['cust_id'] = $each_deal['person_id']['value']; $fields['cust_name'] = $each_deal['person_id']['name']; $fields['cust_email'] = $each_deal['person_id']['email'][0]['value']; $fields['stage_id'] = $each_deal['stage_id']; $fields['source'] = _e($source[$each_deal['c2a6fc3129578b646ae55717ed15f03ce3ee4df0']]['label'], ""); $fields['status'] = $each_deal['status']; $fields['curr_stage'] = $stage[$each_deal['stage_id']]['name']; $fields['initial_move_stage'] = $filter_stage_name; $fields['stage_order_nr'] = $stage[$each_deal['stage_id']]['order_nr']; $duplicate = qs("select * from dashboard_stage_entering_deals where deal_id = '{$fields['deal_id']}' and initial_move_stage = '{$fields['initial_move_stage']}'"); if (!empty($duplicate)) { unset($fields['reference']); qu("dashboard_stage_entering_deals", _escapeArray($fields), "deal_id= '{$fields['deal_id']}' and initial_move_stage = '{$fields['initial_move_stage']}'"); echo "<br> Record Update for deal: " . $fields['deal_id']; } else { $fields['date'] = _mysqlDate(); qi("dashboard_stage_entering_deals", _escapeArray($fields)); echo "<br>Record Insert for deal: " . $fields['reference']; } } echo "new call<Br><Br><br>"; $start_record_from += $no_of_records; $deal_data = array(); $deal_data = $apiPD->getFilterDeals($filter_id, $start_record_from, $no_of_records); $deal_data = json_decode($deal_data, "true"); } else { echo "no more records"; break;
$new['call_handled'] = '0'; $a = qi("call_detail", $new); //echo "<br>-" . $each_deal['is_updated'] . "-added-" . $each_deal['deal_id']; } } $apiPD = new apiPipeDrive(); $agent_call_dialed = q("select * from agent_call_dialed where is_updated='0'"); foreach ($agent_call_dialed as $each_deal) { $deal_data = $apiPD->getDealInfo($each_deal['deal_id']); $deal_data = json_decode($deal_data); //d($deal_data); $person_id = isset($deal_data->data->person_id->value) ? $deal_data->data->person_id->value : ''; $org_id = isset($deal_data->data->org_id->value) ? $deal_data->data->org_id->value : ''; $source_id = isset($deal_data->data->c2a6fc3129578b646ae55717ed15f03ce3ee4df0) ? $deal_data->data->c2a6fc3129578b646ae55717ed15f03ce3ee4df0 : ''; $cust_name = isset($deal_data->data->person_id->name) ? $deal_data->data->person_id->name : ''; $add_time = isset($deal_data->data->add_time) ? $deal_data->data->add_time : ''; $add_time = date("Y-m-d H:i:s", strtotime($add_time) - 3600 * 4); $cust_email = isset($deal_data->data->person_id->email[0]->value) ? $deal_data->data->person_id->email[0]->value : ''; $org_name = isset($deal_data->data->org_name) ? $deal_data->data->org_name : ''; $created_at = qs("select created_at from agent_call_dialed where deal_id='{$each_deal['deal_id']}' order by id asc limit 0,1"); $call_detail_fields['source_id'] = $source_id; $call_detail_fields['customer_name'] = $cust_name; $call_detail_fields['customer_email'] = $cust_email; $call_detail_fields['org_name'] = $org_name; $call_detail_fields['deal_id'] = $each_deal['deal_id']; $call_detail_fields['deal_added'] = $add_time; $call_detail_fields['created_at'] = $created_at['created_at']; $call_detail_id = qu('call_detail', _escapeArray($call_detail_fields), "deal_id='{$each_deal['deal_id']}'"); $call_detail_id = qu('agent_call_dialed', array("is_updated" => '1'), "deal_id='{$each_deal['deal_id']}'"); } }
function updateTripCar($tripCode, $limoApiObj = null) { if (is_null($limoApiObj)) { $limoApiObj = new apiLimo(); } $tripCodeOriginal = compatibleTripCode($tripCode); $tripId = getTripId($tripCode); //_ls('updating trip car '); //_ls("TripCode " . $tripCode); //_ls($tripCode); //_ls($tripCodeOriginal); //_ls($tripId); if (!$tripCodeOriginal || !$tripId) { return; } $data = $limoApiObj->getTripCar($tripCodeOriginal, $tripId); //d($data); $carName = $data['GetTripCarResult']->Car->CarName; $carId = $data['GetTripCarResult']->Car->CarId; //_ls("Updating TripCar: {$carName} - {$carId} - TripCode : - {$tripCode}"); $carType = Vehicle::getCarTypeFromCode($carName); //d($carType); qu("tripconfirmationtexts", array('carIdLA' => $carId, 'carName' => $carName, 'vehicleType' => $carType), " tripCode = '{$tripCode}' "); }
foreach ($source_list_arr as $each_source) { $source_id = ''; $source_id = trim($each_source["id"]); if ($source_id != '') { $check_source_id = array(); $check_source_id = Call_distribution::CheckMainSourceId($source_id); echo $check_source_id . "****" . $each_source["label"]; echo "<br/>"; $data_insert = 1; if (!empty($check_source_id)) { if ($check_source_id["id"] != '') { unset($fields); $fields["source_name"] = trim($each_source["label"]); $fields["is_deleted"] = 0; $fields = _escapeArray($fields); qu("pd_sources", $fields, " id = '{$check_source_id}' "); $data_insert = 0; } } if ($data_insert == 1) { $fields["pd_source_id"] = trim($each_source["id"]); $fields["source_name"] = trim($each_source["label"]); $fields["is_deleted"] = 0; $fields = _escapeArray($fields); qi("pd_sources", $fields); } } } } echo "<br/><br/>===================Script Is Done================"; die;
$messageId = $key; $phone = $value; } $conv_fields = array(); $conv_fields['deal_id'] = $_REQUEST['hidDealId']; $conv_fields['message_id'] = $messageId; $conv_fields['receiver'] = $phone; $conv_fields['receiver_last10'] = last10Char($phone); $conv_fields['type'] = 'SENT'; $conv_fields['text'] = $results['sent_text']; $conv_fields['messageTime'] = _mysqlDate(); $text_conv_list = q("select id from text_conversation where message_id='{$messageId}'"); if (count($text_conv_list) == 0) { qi("text_conversation", $conv_fields); } else { qu("text_conversation", $conv_fields, "message_id='{$messageId}'"); } } echo "success"; die; } if (isset($_REQUEST['conv_list'])) { $dealId = $_REQUEST['dealId']; $conversation_list = q("select * from text_conversation where deal_id='{$dealId}' order by messageTime asc"); include _PATH . 'instance/front/tpl/conversation_list_data.php'; die; } $dealId = $_REQUEST['dealId']; $phone_count = $_REQUEST['phone_count']; $contact_list = array(); for ($index = 1; $index <= $phone_count; $index++) {
<?php /** * Admin side Login file * * * @version 1.0 * @package lysoft * */ //$jsInclude = "home.js.php"; //_R(lr('dashboard')); $urlArgs = _cg("url_vars"); if (isset($_REQUEST['hid_is_edit'])) { qu("config", array("value" => $_REQUEST['txt_api_key']), "id='{$_REQUEST['hid_is_edit']}'"); $_SESSION['greetings_msg'] = 'Api Key Updated successfully!'; } $pipedriver_api_key = qs("SELECT * FROM `config` WHERE `key` LIKE 'PIPEDRIVER_API_KEY'"); _cg("page_title", "PipeDrive Settings");
public static function AllLeadSorceNull() { unset($fields); $fields["pd_user_id"] = ''; return qu("call_list_by_source", $fields, " 1 = 1 "); }
</Gather> <Gather timeout="5" action="<?php echo _U; ?> ConnectingCustomer" method="GET" numDigits="1"> <Say>You had not press any key.</Say> <Say>Please Press 1 to continue. Press 2 to Repeat. Press any other key to hangup</Say> </Gather> <Redirect method="POST"><?php echo _U . "ConnectingCustomer"; ?> </Redirect> </Response> <?php } else { qu("voice_call", array("in_progress" => "0"), "deal_id='" . $dealId . "'"); //Set in_progress=0 because call process is completed qi("voice_call", array("deal_id" => $dealId, "is_handled" => "0", "curr_agent" => $cur_agent, "all_agents" => $agent_numbers, "customer_phone" => $phone_value)); header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> <Response><Say>Good Buy!</Say></Response> <?php $agent_name = 'agent'; $agent_detail = qs("select * from pd_users where phone like '%" . $cur_agent . "%'"); if (isset($agent_detail)) { $agent_name = $agent_detail['name']; } $message = '<b>Note: </b><br>Call went into voicemail of <b>' . $agent_name . "</b>. System will call again in <b>10 minutes</b>."; sendNote($dealId, $message);
public function callNow($phone_value, $agent_numbers, $dealId, $is_redial = "0", $group = "A") { $account_sid = ACCOUNT_SID; $auth_token = AUTH_TOKEN; //$account_sid = 'AC4878ef9ccad9ce3b980fdd4d1d0f42ca'; //$auth_token = 'ea532dd88a9ee7fb43259da56a40a38f'; $call_status = qs("select *,value as call_status from config where `key` = 'CALL_STATUS'"); if (strtolower($call_status['call_status']) != "on") { qi("test", array("t" => "call distribution is off.", "payload" => "someone is trying to call without permission!!!")); die; } if ($phone_value == '') { qi("activity_log", _escapeArray(array("log" => "Call can not be generated. Phone value is blank", "deal_id" => $dealId))); die; } if (IS_DEV_ENV && $is_redial == "0") { $agent_numbers = array(TOLL_FREE_NO); $phone_value = AGENT_NO; } if (count($agent_numbers) == 0) { return; } include _PATH . "/Services/Twilio.php"; $agent_numbers_arr = $agent_numbers; $agent_numbers = implode(",", $agent_numbers_arr); $agent_numbers_search = implode("','", $agent_numbers_arr); $filter_agent_number = self::filterAgentsByGroup($agent_numbers_search, $group); //d($agent_numbers); //d($filter_agent_number); if (empty($filter_agent_number['agent'])) { qi("activity_log", _escapeArray(array("log" => "We have no agents for group '{$group}' or any lower level. ", "deal_id" => $dealId))); qu("agent_call_dialed", array("is_aborted" => "1"), "deal_id='" . $dealId . "'"); qu("voice_call", array("in_progress" => "0"), "deal_id='" . $dealId . "'"); die; } qi("agent_call_dialed", _escapeArray(array("agent_numbers" => $agent_numbers, "deal_id" => $dealId, "is_redial" => $is_redial, "customer_phone" => $phone_value, "category" => $filter_agent_number['group']))); $client = new Services_Twilio($account_sid, $auth_token); $deal_sid_data = q("select * from deal_sid where status!='R' AND status!='C' AND deal_id='{$dealId}'"); qu("deal_sid", array("status" => "C"), " status!='R' AND status!='C' AND deal_id='{$dealId}'"); foreach ($deal_sid_data as $each_sid) { $call = $client->account->calls->get($each_sid['sid']); $call->update(array("Status" => "completed")); } try { foreach ($filter_agent_number['agent'] as $key => $each_agent) { //foreach ($agent_numbers_arr as $key => $each_agent) { //echo $each_agent."<br>"; $url_agent_calling = _U . "DialingAgent?"; $url_agent_received = _U . "ReceivedAgent?"; $params = "agent_numbers=" . $agent_numbers . "&dealId=" . $dealId . "&phone_value=" . $phone_value . "&cur_agent=" . $each_agent; $url_agent_calling .= $params; $url_agent_received .= $params; $call = $client->account->calls->create(TWILIO_PHONE_NUMBER, $each_agent, $url_agent_received, array("Method" => "GET", "StatusCallback" => $url_agent_calling, "StatusCallbackMethod" => "POST", "StatusCallbackEvent" => array("ringing", "completed"), "Timeout" => "25")); echo $call->sid . "<br>"; //sleep(2); } echo "<br>We are calling on " . $phone_value; die; } catch (Exception $e) { // Failed calls will throw echo $e; die; } }
<?php //d($_REQUEST); $urlArgs = _cg("url_vars"); $click_to_call_id = $urlArgs[0]; $recording_url = isset($_REQUEST['RecordingUrl']) ? $_REQUEST['RecordingUrl'] : ''; $recording_duration = isset($_REQUEST['RecordingDuration']) ? $_REQUEST['RecordingDuration'] : '0'; $fields['recording_url'] = $recording_url; $fields['recording_duration'] = $recording_duration; qu("click_to_call", $fields, "id='{$click_to_call_id}'"); header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response></Response>"; die;
<?php $conv_fields = array(); $conv_fields['message_id'] = $_REQUEST['message_id']; $conv_fields['price'] = $_REQUEST['credits_cost']; $conv_fields['status'] = $_REQUEST['status']; sleep(10); // To Remove Duplicate Entry Sleep Is Required - Conversation List Page Also inserting Same Record; $text_conv_list = q("select id from text_conversation where message_id='{$_REQUEST['message_id']}'"); if (count($text_conv_list) == 0) { qi("text_conversation", $conv_fields); } else { qu("text_conversation", $conv_fields, "message_id='{$_REQUEST['message_id']}'"); } die;
<?php $params = explode("--", $_REQUEST['params']); if (isset($params[2]) && $params[2] == "status") { $fields['CallStatus'] = $_REQUEST['CallStatus']; qu("website_number_dials", _escapeArray($fields), "id='" . $params[0] . "'"); } else { $fields['dial_agent'] = $params[1]; qu("website_number_dials", _escapeArray($fields), "id='" . $params[0] . "'"); } header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> <Response><Say>Good Bye</Say> </Response> <?php die;
<?php // just add an entry - for deal id and call sid // to later hang the call // when the other agent picks up the code if ($_REQUEST['CallStatus'] == 'no-answer' || $_REQUEST['CallStatus'] == 'busy') { header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; qu("voice_call", array("in_progress" => "0"), "deal_id='" . $_REQUEST['dealId'] . "'"); //Set in_progress=0 because call process is completed echo "<Response><say>Call Status - {$_REQUEST['CallStatus']}</say></Response>"; die; } else { if ($_REQUEST['CallStatus'] == 'ringing') { $agent_numbers = explode(',', $_REQUEST['agent_numbers']); $rand = mt_rand(1, 1000) . "_" . mt_rand(1, 1000); // for testing - the deal id should be random $dealId = _e($_REQUEST['dealId'], "T{$rand}"); $phone_value = urlencode($_REQUEST['phone_value']); $cur_agent = $_REQUEST['cur_agent']; qi("deal_sid", array("deal_id" => $dealId, "sid" => $_REQUEST['CallSid'])); header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; echo "<Response><say>Connecting to customer!</say></Response>"; } else { header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; echo "<Response><say>Good Bye</say></Response>"; } } die;
$recording_duration = isset($_REQUEST['RecordingDuration']) ? $_REQUEST['RecordingDuration'] : '0'; //qi('config',array("key"=>$agent_id,"value"=>$urlArgs[1])); $apiPD = new apiPipeDrive(); //$apiPD->assignDeal($urlArgs[1], $agent_id); $call_detail_data = q("select * from call_detail where sid='{$_REQUEST['CallSid']}'"); $call_detail_fields['agent_phone'] = $urlArgs[0]; $call_detail_fields['agent_id'] = $agent_id; $call_detail_fields['agent_name'] = $agent_name; $call_detail_fields['status'] = isset($_REQUEST['DialCallStatus']) ? $_REQUEST['DialCallStatus'] : ''; $call_detail_fields['recording_duration'] = $recording_duration; $call_detail_fields['recording_url'] = $recording_url; $call_detail_fields['customer_phone'] = urlencode($urlArgs[2]); $call_detail_fields['deal_id'] = $urlArgs[1]; if (count($call_detail_data) > 0) { $call_detail_id = $call_detail_data[0]['id']; qu('call_detail', $call_detail_fields, "id='{$call_detail_data[0]['id']}'"); } else { $call_detail_fields['sid'] = $_REQUEST['CallSid']; $call_detail_id = qi('call_detail', $call_detail_fields); } $deal_data = json_decode($apiPD->getDealInfo($urlArgs[1])); //$deal_data = json_decode($apiPD->getDealInfo('4586')); //$deal_data = json_decode($apiPD->getDealInfo('4586')); $person_id = isset($deal_data->data->person_id->value) ? $deal_data->data->person_id->value : ''; $org_id = isset($deal_data->data->org_id->value) ? $deal_data->data->org_id->value : ''; //$apiPD->assignPerson($person_id, $agent_id); //$apiPD->assignOrganization($org_id, $agent_id); $fields['subject'] = 'Call'; $fields['done'] = '1'; $fields['type'] = 'call'; $fields['deal_id'] = $urlArgs[1];
if ($user_id != '') { $check_user_id = array(); $check_user_id = Call_distribution::CheckMainUserId($user_id); echo $check_user_id . "****" . $each_user["name"]; echo "<br/>"; unset($fields); $fields["name"] = $each_user["name"]; $fields["email"] = $each_user["email"]; $fields["phone"] = $each_user["phone"]; $fields["is_deleted"] = '0'; if ($each_user['active_flag']) { $fields["is_active"] = '1'; } else { $fields["phone"] = ''; $fields["is_active"] = '0'; } if ($check_user_id != '') { $fields = _escapeArray($fields); if ($each_user['active_flag']) { unset($fields['phone']); } qu("pd_users", $fields, " id = '{$check_user_id}' "); } else { $fields["pd_id"] = $user_id; $fields = _escapeArray($fields); qi("pd_users", $fields); } } } } die;
?> <Response> <Say>Call is already accepted by Other Agent.</Say> </Response> <?php die; } qu("deal_sid", array("status" => 'A'), "sid='" . $_REQUEST['CallSid'] . "'"); $apiPD = new apiPipeDrive(); $account_sid = ACCOUNT_SID; $auth_token = AUTH_TOKEN; include _PATH . "/Services/Twilio.php"; $client = new Services_Twilio($account_sid, $auth_token); // call first $data = q("select * from deal_sid where deal_id='{$dealId}' AND status!='C' AND sid!='{$_REQUEST['CallSid']}'"); qu("deal_sid", array("status" => 'R'), "deal_id='{$dealId}' AND status!='C' AND sid !='{$_REQUEST['CallSid']}'"); if (count($data) > 0) { foreach ($data as $each_data) { //echo "hanging up {$each_data['sid']} <br />\r\n"; //sleep(1); $status = qs("select * from deal_sid where sid = '{$each_data['sid']}' "); if ($status != 'A') { $call = $client->account->calls->get($each_data['sid']); $call->update(array("Status" => "completed")); } } } $deal_data = $apiPD->getDealInfo($dealId); //$deal_data = $apiPD->getDealInfo('5232'); //Test Mode //$deal_data = $apiPD->getDealInfo('5232'); $deal_data = json_decode($deal_data);