Ede Telekom

IP SANTRAL API DÖKÜMANLARI

Sanal Santral API Dökümanları

IP SANTRAL API DÖKÜMANLARI
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

Copy

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"
}
]
}
]

Copy

Test bilgileri

myTelefon indir

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

Copy

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;

Copy

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');
}

}

Copy

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();
}
}
}
}

Copy

Ç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ı}

Copy

Ç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

Copy

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"
}
]
}
]

Copy

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;

Copy

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');
}

}

Copy

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();

}
}
}
}

Copy

Dahilileri Listeleme

Aşağıdaki api üzerinden dahili bilgileri ve register olma durumları görüntülenebilir. Json sistemi ile veriler çekilebilir.

http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=users

Copy

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)"
}
]
}
]

Copy

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;

Copy

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;

Copy

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();
}
}
}
}

Copy

Kuyrukları listeleme

Aşağıdaki api üzerinden kuyruk verileri görüntülenebilir.

http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=queues

Copy

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"
}
]
}
]

Copy

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;

Copy

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');
}

}

Copy

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();
}
}
}
}

Copy

Arama Başlatma

Aşağıdaki api üzerinden trunk araması başlatılabilir.

http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=callnumber&number={telefon numarası}&internal={dahili numarası}

Copy

IVR (Anons) Araması Başlatma

Aşağıdaki api üzerinden IVR araması başlatılabilir.

http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=callivr&number={telefon numarası}&dp={arama planı adı}&dest={robot numarası}&uf={CdraVeriGonder}&file={merhaba,mehmet%20bey}|SES1|SES2

Copy

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://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=callback&number1={telefon numarası1}&number2={telefon numarası2}&dp={arama planı adı}&uf={CdraVeriGonder}

Copy

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://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=record&id={cdr apisindeki id)

Copy

Uzak Rehber Listeleme

Aşağıdaki api üzerinden santralinizde var olan rehberdeki tüm verileri xml olarak çekebilirsiniz.

http://{site adı}/?username={kullanıcı adı}&password={api şifresi}&action=phonedirectory

Copy

Ekran çıktısı

Telsam Telekom
908502590259

Mehmet
90538XXXXXXX

Copy

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

Copy

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;

Copy

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}

Copy

Ö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}

Copy

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;

Copy

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

Copy

Başarılı dönüş

{“status”:true,”data”:{“sms_id”:13264888,”sms_count”:1,”amount”:”0.0060&Prime;,”credit”:”5202.2040&Prime;,”valid_receiver”:1,”invalid_receiver”:0,”receivers”:[{“id”:”123&Prime;,”gsmNo”:”538400xxxx”,”valid”:true}]}}

Copy

Hatalı dönüş

{“status”:false,”error”:{“code”:2,”message”:”Invalid username or password”}}

Copy

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