SANAL SANTRAL API V2
Aktif aramaları listeleme
Aşağıdaki api üzerinden aktif aramaları çekebilirsiniz. Bu sayede web panelinizde müşteri bilgilerini getirebilirsiniz.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&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 : 45.10.253.225
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://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&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();
if (success == "True")
{
count = myJObject.SelectToken("count").Value();
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();
duration = dataparse.SelectToken("duration").Value();
calltype = dataparse.SelectToken("calltype").Value();
callinfo = dataparse.SelectToken("callinfo").Value();
src = dataparse.SelectToken("src").Value();
dst = dataparse.SelectToken("dst").Value();
}
}
}
}
Çağrı sonlandırma
Aşağıdaki api üzerinden varolan bir çağrı sonlandırılabilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=hangupcall& channel={kanal adı}
Çağrı detayları listeleme
Aşağıdaki api üzerinden çağrı detayları görüntülenebilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=cdr&date1={ ddMMyyyyhhmm)&date2={ ddMMyyyyhhmm}&number=&uf=yes
http://DOMAİN/?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;
Java script kodu
function cagridetlis(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("id: "+ rjson.data[i].id);
console.log("calldate: "+ rjson.data[i].calldate);
console.log("calltype: "+ rjson.data[i].calltype);
console.log("src: "+ rjson.data[i].src);
console.log("dst: "+ rjson.data[i].dst);
console.log("duration: "+ rjson.data[i].duration);
console.log("disposition: "+ rjson.data[i].disposition);
console.log("queue: "+ rjson.data[i].queue);
console.log("record: "+ rjson.data[i].record);
}
else
{
console.log('hata');
}
}
C# kodu
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
void jsonparse(string json)
{
int count = 0;
string id, calldate, calltype, src, dst, duration, disposition, queue, record, success;
var myJObject = JObject.Parse(json);
success = myJObject.SelectToken("success").Value();
if (success == "True")
{
count = myJObject.SelectToken("count").Value();
if (count > 0)
{
JToken[] data = myJObject["data"].ToArray();
for (int i = 0; i < count; i++)
{
var dataparse = JObject.Parse(data[i].ToString());
id = dataparse.SelectToken("id").Value();
calldate = dataparse.SelectToken("calldate").Value();
calltype = dataparse.SelectToken("calltype").Value();
src = dataparse.SelectToken("src").Value();
dst = dataparse.SelectToken("dst").Value();
duration = dataparse.SelectToken("duration").Value();
disposition = dataparse.SelectToken("disposition").Value();
queue = dataparse.SelectToken("queue").Value();
record = dataparse.SelectToken("record").Value();
}
}
}
}
Dahilileri Listeleme
Aşağıdaki api üzerinden dahili bilgileri ve register olma durumları görüntülenebilir. Json sistemi ile veriler çekilebilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=users
Ekran çıktısı
[
{
"success": true,
"count": 3,
"data": [
{
"username": "100",
"name": "Mehmet",
"regstatus": "OK (93 ms)"
},
{
"username": "101",
"name": "Telsam",
"regstatus": "OK (109 ms)"
},
{
"username": "102",
"name": "Telekom",
"regstatus": "OK (91 ms)"
}
]
}
]
Tanımlar
username=Dahili no
name=Dahili kullanıcısı adı
regstatus=Register durumu
Delphi kodu
Var
JSONObject, Veriler: TJsonObject;
VeriArray: TJSONArray;
don:Integer;
Begin
JSONObject := TJsonObject.Create;
try
JSONObject.Parse(TEncoding.UTF8.GetBytes(NetHTTPDahili.Get(' http://xxx.telsam.com.tr/?username=ApiKullanıcıAdı&password=ApiŞifre&action=users’).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(‘username’).Value);
UniMemo1.Lines.Add(Veriler.GetValue('name').Value);
UniMemo1.Lines.Add(Veriler.GetValue('regstatus').Value);
finally
Veriler.Free;
end;
end;
End;
finally
JSONObject.Free;
end;
end;
Java script kodu
Var
JSONObject, Veriler: TJsonObject;
VeriArray: TJSONArray;
don:Integer;
Begin
JSONObject := TJsonObject.Create;
try
JSONObject.Parse(TEncoding.UTF8.GetBytes(NetHTTPDahili.Get(' http://xxx.telsam.com.tr/?username=ApiKullanıcıAdı&password=ApiŞifre&action=users’).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(‘username’).Value);
UniMemo1.Lines.Add(Veriler.GetValue('name').Value);
UniMemo1.Lines.Add(Veriler.GetValue('regstatus').Value);
finally
Veriler.Free;
end;
end;
End;
finally
JSONObject.Free;
end;
end;
C# kodu
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
void jsonparse(string json)
{
int count = 0;
string username, name, regstatus, success;
var myJObject = JObject.Parse(json);
success = myJObject.SelectToken("success").Value();
if (success == "True")
{
count = myJObject.SelectToken("count").Value();
if (count > 0)
{
JToken[] data = myJObject["data"].ToArray();
for (int i = 0; i < count; i++)
{
var dataparse = JObject.Parse(data[i].ToString());
username = dataparse.SelectToken("username").Value();
name = dataparse.SelectToken("name").Value();
regstatus = dataparse.SelectToken("regstatus").Value();
}
}
}
}
Kuyrukları listeleme
Aşağıdaki api üzerinden kuyruk verileri görüntülenebilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=queues
Ekran çıktısı
[
{
"success": true,
"count": 3,
"data": [
{
"queuenumber": "630",
"name": "Muhasebe",
"internal": "100,101,102,103,104"
},
{
"queuenumber": "632",
"name": "Satis",
"internal": "105,106"
},
{
"queuenumber": "633",
"name": "Finans",
"internal": "107,108,109,110,111"
}
]
}
]
Tanımlar
queuenumber=Kuyruk numarası
name=Kuyruk adı
internal=Kuyruk dahilileri
Delphi kodu
Var
JSONObject, Veriler: TJsonObject;
VeriArray: TJSONArray;
don:Integer;
Begin
JSONObject := TJsonObject.Create;
try
JSONObject.Parse(TEncoding.UTF8.GetBytes(NetHTTPKuyruk.Get(' http://xxx.telsam.com.tr/?username=ApiKullanıcıAdı&password=ApiŞifre&action=queues’).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(‘queuenumber’).Value);
UniMemo1.Lines.Add(Veriler.GetValue('name').Value);
UniMemo1.Lines.Add(Veriler.GetValue('internal').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("queuenumber: "+ rjson.data[i].queuenumber);
console.log("name: "+ rjson.data[i].name);
console.log("internal: "+ rjson.data[i].internal);
}
else
{
console.log('hata');
}
}
C# kodu
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
void jsonparse(string json)
{
int count = 0;
string queuenumber, name, internal, success;
var myJObject = JObject.Parse(json);
success = myJObject.SelectToken("success").Value();
if (success == "True")
{
count = myJObject.SelectToken("count").Value();
if (count > 0)
{
JToken[] data = myJObject["data"].ToArray();
for (int i = 0; i < count; i++)
{
var dataparse = JObject.Parse(data[i].ToString());
queuenumber = dataparse.SelectToken("queuenumber").Value();
name = dataparse.SelectToken("name").Value();
internal = dataparse.SelectToken("internal").Value();
}
}
}
}
Arama Başlatma
Aşağıdaki api üzerinden trunk araması başlatılabilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=callnumber&number={telefon numarası}&internal={dahili numarası}
IVR (Anons) Araması Başlatma
Aşağıdaki api üzerinden IVR araması başlatılabilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=callivr&number={telefon numarası}&dp={arama planı adı}&dest={robot numarası}&uf={CdraVeriGonder}&file={merhaba,mehmet%20bey}|SES1|SES2
Tanımlar
username=Api kullanıcı adı
password= Api şifre
number= Çağrı gönderilecek numara
dp= Kullanılacak arama planı
dest= Okunacak robot numarası
uf= Taşınacak bilgi
file= Robotta bulunan metni ifade eder. Yukarıdaki örnekte {} içerisindeki yazılar text to speech tarafından sese çevrilir, | sonrası yazılan santralde yüklü olan sesin adıdır.
Bulut santral ıvr scripti
procedure baslat;
begin
Read(tuslama,’${XPLAY}’,3,5);
API(sonuc,’http://www.siteniz.com/api/sms.php?tuslama=${tuslama}&id=${MSTUF}’);
PlayBack(‘tesekkurler’);
Hangup;
end;
${XPLAY} ==>Apide bulunan file parametresindeki sesi okur.
${MSTUF}==>Apide bulunan uf parametresindeki veriyi çeker.
İki Numarayı Görüştürme
Aşağıdaki api üzerinden iki numarayı birbirinin numarasını görmeden konuşturma işlemini yapabilirsiniz.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=callback&number1={telefon numarası1}&number2={telefon numarası2}&dp={arama planı adı}&uf={CdraVeriGonder}
Ses Kayıt Dosyası İndirme
Aşağıdaki api üzerinden Çağrı detaylarında bulunan çağrı idsi ile çağrıların ses dosyaları *.gsm formatında indirilebilir.
“id” veya “chanid” paremetreleri kullanılabilir.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=record&id={cdr apisindeki id)
Uzak Rehber Listeleme
Aşağıdaki api üzerinden santralinizde var olan rehberdeki tüm verileri xml olarak çekebilirsiniz.
http://DOMAİN/api/old/get?username=APİKULLANICIADI&password=APİŞİFRE&action=phonedirectory
Ekran çıktısı
Telsam Telekom
908502590259
Mehmet
90538XXXXXXX
Delphi kodu & XML okuma
var
XMLNode: IXMLNode;
i:Integer;
begin
XMLDocument1.XML.Clear;
XMLDocument1.XML.Text := NetHTTPTelefonRehberi.Get('http://xxx.telsam.com.tr/?username=ApiKullanıcıAdı&password=ApiŞifre&action=phonedirectory').ContentAsString;
XMLDocument1.Active := True;
UniStringGrid3.RowCount:=XMLDocument1.DocumentElement.ChildNodes.Count;
for i:=0 to XMLDocument1.DocumentElement.ChildNodes.Count -1 do
begin
XMLNode := XMLDocument1.DocumentElement.ChildNodes[i];
UniStringGrid3.Cells[0,i]:=(i+1).ToString;
UniStringGrid3.Cells[1,i]:=XMLNode.ChildNodes['Name'].Text;
UniStringGrid3.Cells[2,i]:=XMLNode.ChildNodes['Telephone'].Text;
end;
End
Ivr Script Text to speech
Aşağıdaki kodu ıvr script bölümünde kullanarak, metini sese çevirebilirsiniz.
procedure TTS;
begin
TTS('Merhaba Mehmet Bey, bu bir test mesajıdır.');
end;
Get veri gönderme
Arama Bilgisi Gönderme
Santralinizden geçen çağrıların bilgilerini, kendi uygulamanıza göndermek için kullanılır. Arayan kişinin numarası, aranan numara ve aramanın kanal id bilgileri girilen URL’e Post edilir.
Parametreler ve alanlar
https://www.sirketm.com/caller/Veriler?caller={src}&callee={dst}&chan={chanid}
http://www.siteniz.com.tr/gonder.php?arayan={src}&aranan={dst}
Örnek URL'ler
DID Numarası, bu alan boş ise santralde kayıtlı (register) tüm numaralarda post işlemini gerçekleştirir
{src} Arayan kişi numarası
{dst} Aramayı alan numara
{chanid} Oluşan aramanın benzersiz idsi. (Api leri kullanarak ses kayıtlarını vs. çekmek için kullanılır.)
Kapanma bilgisi gönderme
Santralinizden geçen çağrılar sonlandıktan sonra oluşan verileri kendi uygulamanıza göndermek için kullanılır. Arama durumu, Arama süresi (sn cinsinden) ve aramanın kanal id bilgileri girilen URL’e Post edilir.
Örnek URL'ler
http://www.siteniz.com.tr/gonder.php?arayan={src}&aranan={dst}
Arama sonuçları
ANSWER: Çağrı cevaplanır. Başarılı çağrı
BUSY: Meşgul sinyali. Arama komutu numarasına ulaştı ancak numara meşgul.
NOANSWER: Cevap yok. Arama komutu numarasına ulaştı, numara çok uzun süre çaldı, sonra arama zaman aşımına uğradı.
CANCEL: Çağrı iptal edilir. Arama komutu numarasına ulaştı ancak arayan kişi, konuşmadan önce telefonu kapattı.
CONGESTION: Sıkışıklık. Bu durum genellikle aranan numaranın tanınmadığının bir işaretidir.
Arama sonuçları
DID Numarası, bu alan boş ise santralde kayıtlı (register) tüm numaralarda post işlemini gerçekleştirir
{status} Arama Sonucu
{duration} Arama süresi (sn cinsinden)
{chanid} Oluşan aramanın benzersiz idsi. (Api leri kullanarak ses kayıtlarını vs. çekmek için kullanılır.)
Otomatik SMS sistemi
GET veya POST methoduyla ilgili url’e tanımlanmış parametreler ile sms gönderme isteğinde bulunabilirsiniz.
procedure DonusYap;
begin
//API fonksiyonunu çalıştır.
API(s,'http://websms.telsam.com.tr/get_api.php?
username=ApiKullanıcıAdı&password=ApiŞifre&
recievers=538400XXXX&text=Donus%20yapılacak%20numara:${CALLERID(num)}&originator=Başlık');
//Ses çal.
Playback('Donusyapilacaktir');
//Çağrıyı sonlandır.
Hangup;
end;
Tanımlamalar
Parametre | Zorunluluk | Tanım | Açıklama |
username | + Zorunlu | Kullanıcı Adı | – |
password | + Zorunlu | Şifre | – |
receivers | + Zorunlu | Alıcı gsm numaraları | · Birden fazla numara belirtmek için “,” (virgül) ayracı kullanılmalıdır. · Eğer mesaj raporlarının takibi için id belirtmek isterseniz numaranın başına önce id değerinizi, ayraç olarak “:” karakterini daha sonra alıcı numarasını girebilirsiniz. Kullanmaz iseniz sistem kendi id leri ile döndürür. |
text | + Zorunlu | SMS Mesajı | Maksimum limit 1080 karakter olabilir. |
originator | + Zorunlu | SMS Başlığı | |
international | – | Uluslar arası – Yurtiçi mesah gönderim seçeneği | · 1 => Uluslararası mesaj · 0 veya belirtilmemiş => yurtiçi mesaj |
canceltext | – | Mesajın sonuna iptal bilgisi eklensin mi? | · 1 => iptal bilgisi eklensin · 0 veya belirtilmemiş => eklenmesin. |
unicode | – | Mesaj kodlaması | · 1 => Unicode karakter destekli · 8 => Türkçe karakter destekli · 0 veya belirtilmemiş =>standart gsm karakterleri |
delivery_time | – | İleri tarihli sms | · Belirtilmez ise hemen gönderim · Y-m-d H:i:s formatında tarih belirtilir ise ileri tarihli gönderim |
response_type | – | Dönüş cevap şekli | · “html” belirtilebilir · Belirtilmez ise defaul “json” değerini alır |
API
http://websms.telsam.com.tr/get_api.php?username=ApiKullanıcıAdı&password=ApiŞifre&receivers=538400XXXX&text=${CALLERID(num)}&originator=Telsam
http://websms.telsam.com.tr/get_api.php?username=ApiKullanıcıAdı&password=ApiŞifre&receivers=538400XXXX&text=Arama%20geldi:${CALLERID(num)}&originator=Telsam
Başarılı dönüş
{“status”:true,”data”:{“sms_id”:13264888,”sms_count”:1,”amount”:”0.0060″,”credit”:”5202.2040″,”valid_receiver”:1,”invalid_receiver”:0,”receivers”:[{“id”:”123″,”gsmNo”:”538400xxxx”,”valid”:true}]}}
Hatalı dönüş
{“status”:false,”error”:{“code”:2,”message”:”Invalid username or password”}}
Hatalı dönüş kodları
Hata Kodu | Hata Mesajı |
0 | İstek bulunamadı |
1 | İstek parametreleri eksik. Zorunlu değerler: kullanıcı adı, şifre, alıcılar, metin, kaynak |
2 | Geçersiz kullanıcı adı veya şifre |
3 | Erişim reddedildi |
4 | Orijinalinde geçersiz karakterler bulundu |
5 | Gönderen uzunluğu en az 3, en çok 11 karakter olmalıdır |
6 | Gönderen yasaklandı |
7 | Başlık sistemimizde bulunamadı |
8 | Gönderen onay bekliyor |
9 | Alfanümerik SMS bakımda geçici olarak gönderme |
10 | Alıcı bulunamadı |
11 | Geçerli bir alıcı bulunamadı |
12 | Mesaj metni boş |
13 | Mesajın içinde kötü kelimeler bulundu |
14 | Kredi yeterli değil |
15 | Teslim Süresi geçersiz |
16 | Sistem hatası. Lütfen tekrar deneyin |
99 | Bilinmeyen hata oluştu |