<?php
define("STANZA_BREAK", "\n\n"); // mesaj ayraci. TCP protokolunde bir mesajin bitip diger mesajin basladigini belirtmenin standardi yoktur fakat de-facto standart olarak \n\n kullanilmaktadir (HTTP'de \r\n\r\n kullanılır). VAMI bu karakterleri görünce komutunuzun bittigini anlar ve işlemeye başlar. VAMI cevapları da \n\n ile biter.
$vami_port = 1234; // firmaniza ozel port. Verimor tarafindan tahsis edilecek
$vami_username = "kullanici_adi";
$vami_password = "sifre";
// socket baglantisi kurabilmek için sunucunuzun internet ip adresini verimor'a bildirmis olmaniz gereklidir.
$socket = stream_socket_client("tcp://vami.verimor.com.tr:$vami_port",$errno,$errstr, 5);
if (!$socket){
echo "$errstr ($errno)\n";
exit();
}
// Herhangi bir islemden once login olmalisiniz.
// Ayni socket ile birden fazla islem yaparken bir kez login olmaniz yeterli
$params = array(
"command" => "login",
"username" => $vami_username,
"password" => $vami_password,
"crm_id" => microtime(), // herhangi bir unique string
);
fwrite($socket, json_encode($params).STANZA_BREAK);
$result = fread($socket, 4096);
echo $result;
$result = json_decode($result);
if($result->status != "success"){
echo "LOGIN BASARISIZ: $result->status: $result->message\n";
fclose($socket);
exit();
}
// Cagri baslatma islemi.
$customer_num = "905321234567"; // aranacak telefon numarasi
$pbx_num = "908501234567"; // santralinizin harici numarasi
$internal_num = "3001"; // gorusmeyi yapacak dahili hattin numarasi
$params = array(
"command" => "originate",
"customer_num" => $customer_num,
"pbx_num" => $pbx_num,
"internal_num" => $internal_num,
"ring_timeout" => "30",
"crm_id" => microtime(),
"wait_response" => "1",
"originate_order" => "if", // if: once dahili calsin, sonra karsi taraf aransin. of: tersi.
"manual_answer" => "0", // 1(default): dahili telefon calmadan acilip cagri baslasin. 0: dahili telefon calip, acilmayi beklesin.
"trunk" => "verimor" // surekli verimor olmali
);
fwrite($socket, json_encode($params).STANZA_BREAK);
$result = fread($socket, 4096);
echo $result;
$result = json_decode($result);
if($result->status != "success"){
echo "ORIGINATE BASARISIZ: $result->status: $result->message\n";
fclose($socket);
exit();
}
// baslatilan cagrinin uzerinde islemler (sesi kis, cagriyi kapat, ses kaydini getir vb.) yapmak icin unique_id'yi saklamaniz gereklidir
$unique_id = $result->unique_id;
echo "BASLATILAN CAGRININ UNIQUE_ID'SI: $unique_id\n";
fclose($socket);