Aktif aramaları listeleme
Aşağıdaki api üzerinden aktif aramaları çekebilirsiniz. Bu sayede web panelinizde müşteri bilgilerini getirebilirsiniz.
http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=activecalls
Ekran çıktısı
[
{
"success": true,
"count": 1,
"data": [
{
"channel": "SIP/trunk-sip-Trunk110-36a9b",
"duration": "00:01:14",
"calltype": "Kuyruk(630)",
"callinfo": "Konuşuyor",
"src": "9053xxxxxxxxx",
"dst": "110"
}
]
}
]
Test bilgileri
myTelefon uygulamasını yukarıdaki linkten indirin ve kurun.
Hesap sekmesine giriş sağlayın.
Dahili kurma bilgileri:
Sunucu : 85.111.24.38
Kullanıcı adı : 341100
Şifre : TelsamTest1*
Yukarıdaki bilgiler ile aşağıdaki alanları eksiksiz bir şekilde doldurun.
Kaydet tuşuna basarak dahilinin register olmasını sağlayabilirsiniz.
90850 259 10 93 numarasını arayarak çağrının kurmuş olduğunuz my Telefon uygulamasına düşmesini sağlayabilirsiniz. Aktif çağrılara aşağıdaki linke tıklayarak ulaşabilirsiniz.
http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=activecalls
Test numarası : 908502591093
Api kullanıcı adı : telsamwebsitesi
Api şifre : Telsam112*
Tanımlar
channel= Çağrının ayırt edici alanıdır, ses kayıtları indirmede vs. kullanılır.
duration= Çağrı süresi
calltype= Çağrı tipi
callinfo= Çağrı bilgisi
src= Arayan
dst= Aranan
Delphi kodu
Var
JSONObject, Veriler: TJsonObject;
VeriArray: TJSONArray;
don:Integer;
Begin
JSONObject := TJsonObject.Create;
try
JSONObject.Parse(TEncoding.UTF8.GetBytes(NetHTTPCagriDetaylari.Get(' http://xxx.telsam.com.tr/?username=ApiKullanıcıAdı&password=ApiŞifre&action=activecalls’).ContentAsString), 1);
if StrToInt(JSONObject.GetValue('count').Value)<>0 then
Begin
VeriArray := JSONObject.GetValue('data') as TJSONArray;
for don := 0 to VeriArray.Count-1 do
begin
Veriler := TJsonObject.Create;
try
Veriler.Parse(TEncoding.UTF8.GetBytes(VeriArray.Items[don].ToString), 0);
UniMemo1.Lines.Add(Veriler.GetValue('channel').Value);
UniMemo1.Lines.Add(Veriler.GetValue('duration').Value);
UniMemo1.Lines.Add(Veriler.GetValue('calltype').Value);
UniMemo1.Lines.Add(Veriler.GetValue('callinfo').Value);
UniMemo1.Lines.Add(Veriler.GetValue('src').Value);
UniMemo1.Lines.Add(Veriler.GetValue('dst').Value);
finally
Veriler.Free;
end;
end;
End;
finally
JSONObject.Free;
end;
end;
Java script kodu
function aktifaramalar(j){
var rjson=JSON.parse(j);
if (rjson.success==true){
for (var i = 0; i < rjson.count; i++) {
var counter = rjson.data[i];
console.log("data: "+ (i+1));
console.log("channel: "+ rjson.data[i].channel);
console.log("duration: "+ rjson.data[i].duration);
console.log("calltype: "+ rjson.data[i].calltype);
console.log("callinfo: "+ rjson.data[i].callinfo);
console.log("src: "+ rjson.data[i].src);
console.log("dst: "+ rjson.data[i].dst);
}
else
{
console.log('hata');
}
}
C# kodu
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
void jsonparse(string json)
{
int count = 0;
string channel, duration, calltype, callinfo, src, dst, success;
var myJObject = JObject.Parse(json);
success = myJObject.SelectToken("success").Value<string>();
if (success == "True")
{
count = myJObject.SelectToken("count").Value<int>();
if (count > 0)
{
JToken[] data = myJObject["data"].ToArray();
for (int i = 0; i < count; i++)
{
var dataparse = JObject.Parse(data[i].ToString());
channel = dataparse.SelectToken("channel").Value<string>();
duration = dataparse.SelectToken("duration").Value<string>();
calltype = dataparse.SelectToken("calltype").Value<string>();
callinfo = dataparse.SelectToken("callinfo").Value<string>();
src = dataparse.SelectToken("src").Value<string>();
dst = dataparse.SelectToken("dst").Value<string>();
}
}
}
}
Çağrı sonlandırma
Aşağıdaki api üzerinden varolan bir çağrı sonlandırılabilir.
http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=hangupcall& channel={kanal adı}
Çağrı detayları listeleme
Aşağıdaki api üzerinden çağrı detayları görüntülenebilir.
http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=cdr&date1={ ddMMyyyyhhmm)&date2={ ddMMyyyyhhmm}&number=&uf=yes
http://pbx2.telsam.com.tr/?username=Kullanıcı&password=Şifre&action=cdr&date1=030920190100&date2=030920191500&number=90507XXXXXXX&uf=yes
Ekran çıktısı
[
{
"success": true,
"count": 3,
"data": [
{
"id": "28699",
"calldate": "03.09.2019 12:30:38",
"calltype": "incoming",
"src": "90507XXXXXXX",
"dst": "101",
"duration": "85,6972",
"disposition": "ANSWERED",
"queue": "",
"record": true,
"userfield": "Gelen bilgi"
},
{
"id": "68871",
"calldate": "03.09.2019 11:31:54",
"calltype": "outcoming",
"src": "100",
"dst": "9050XXXXXXXX",
"duration": "4,39364",
"disposition": "BUSY",
"queue": "",
"record": true,
"userfield": "Test bilgisi"
},
{
"id": "28674",
"calldate": "03.09.2019 10:13:11",
"calltype": "incoming",
"src": "905XXXXXXXX",
"dst": "100",
"duration": "28,382",
"disposition": "NO ANSWER",
"queue": "630",
"record": false,
"userfield": "Gelen bilgi"
}
]
}
]
Tanımlar
id=Ses kayıtları indirmede vs. kullanılır.
calldate= Tarih ve saat bilgisi
calltype= Çağrı tipi
src= Arayan
dst= Aranan
duration= Çağrı süresi
disposition= Çağrı sonucu
queue= Kuyruk no
record= Ses kaydı olup olmadığı verisi
uf= Ivr araması ve iki numara görüştürme apilerinden gönderilen verileri listelemek için yes değeri verilmelidir.
Var
JSONObject, Veriler: TJsonObject;
VeriArray: TJSONArray;
don:Integer;
Begin
JSONObject := TJsonObject.Create;
try
JSONObject.Parse(TEncoding.UTF8.GetBytes(NetHTTPCagriDetaylari.Get(' http://xxx.telsam.com.tr/?username=ApiKullanıcıAdı&password=ApiŞifre&action=cdr&date1=030920190100&date2=030920191500&number=’).ContentAsString), 1);
if StrToInt(JSONObject.GetValue('count').Value)<>0 then
Begin
VeriArray := JSONObject.GetValue('data') as TJSONArray;
for don := 0 to VeriArray.Count-1 do
begin
Veriler := TJsonObject.Create;
try
Veriler.Parse(TEncoding.UTF8.GetBytes(VeriArray.Items[don].ToString), 0);
UniMemo1.Lines.Add(Veriler.GetValue(id).Value);
UniMemo1.Lines.Add(Veriler.GetValue('calldate').Value);
UniMemo1.Lines.Add(Veriler.GetValue('calltype').Value);
UniMemo1.Lines.Add(Veriler.GetValue(src).Value);
UniMemo1.Lines.Add(Veriler.GetValue('dst').Value);
UniMemo1.Lines.Add(Veriler.GetValue('duration').Value);
UniMemo1.Lines.Add(Veriler.GetValue('disposition').Value);
UniMemo1.Lines.Add(Veriler.GetValue('queue').Value);
UniMemo1.Lines.Add(Veriler.GetValue('record').Value);
finally
Veriler.Free;
end;
end;
End;
finally
JSONObject.Free;
end;
end;