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 indir

myTelefon uygulamasını yukarıdaki linkten indirin ve kurun.

mytelefon

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.

MyTelefon2

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;
				
			

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<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());
                        id = dataparse.SelectToken("id").Value<string>();
                        calldate = dataparse.SelectToken("calldate").Value<string>();
                        calltype = dataparse.SelectToken("calltype").Value<string>();
                        src = dataparse.SelectToken("src").Value<string>();
                        dst = dataparse.SelectToken("dst").Value<string>();
                        duration = dataparse.SelectToken("duration").Value<string>();
                        disposition = dataparse.SelectToken("disposition").Value<string>();
                        queue = dataparse.SelectToken("queue").Value<string>();
                        record = dataparse.SelectToken("record").Value<string>();

                    }
                }
            }
        }

				
			

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
				
			

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<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());
                        username = dataparse.SelectToken("username").Value<string>();
                        name = dataparse.SelectToken("name").Value<string>();
                        regstatus = dataparse.SelectToken("regstatus").Value<string>();
                    }
                }
            }
        }
				
			

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
				
			

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<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());
                        queuenumber = dataparse.SelectToken("queuenumber").Value<string>();
                        name = dataparse.SelectToken("name").Value<string>();
                        internal = dataparse.SelectToken("internal").Value<string>();
                    }
                }
            }
        }
				
			

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

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
				
			

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}
				
			

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)
				
			

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
				
			

Ekran çıktısı

				
					<?xml version="1.0" encoding="UTF-8" ?>
<iexIPPhoneDirectory>
    <DirectoryEntry>
        <Name>Telsam Telekom</Name>
        <Telephone>908502590259</Telephone>
    </DirectoryEntry>
    
    <DirectoryEntry>
        <Name>Mehmet</Name>
        <Telephone>90538XXXXXXX</Telephone>
    </DirectoryEntry>
</iexIPPhoneDirectory>
				
			

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

ParametreZorunlulukTanımAçıklama
username+ ZorunluKullanıcı Adı
password+ ZorunluŞifre
receivers+ ZorunluAlı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+ ZorunluSMS MesajıMaksimum limit 1080 karakter olabilir.
originator+ ZorunluSMS Başlığı 
internationalUluslar arası – Yurtiçi mesah gönderim seçeneği·  1 => Uluslararası mesaj

·  0 veya belirtilmemiş => yurtiçi mesaj

canceltextMesajın sonuna iptal bilgisi eklensin mi?·  1 => iptal bilgisi eklensin

·  0 veya belirtilmemiş => eklenmesin.

unicodeMesaj 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_typeDö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 KoduHata Mesajı
0İstek bulunamadı
1İstek parametreleri eksik. Zorunlu değerler: kullanıcı adı, şifre, alıcılar, metin, kaynak
2Geçersiz kullanıcı adı veya şifre
3Erişim reddedildi
4Orijinalinde geçersiz karakterler bulundu
5Gönderen uzunluğu en az 3, en çok 11 karakter olmalıdır
6Gönderen yasaklandı
7Başlık sistemimizde bulunamadı
8Gönderen onay bekliyor
9Alfanümerik SMS bakımda geçici olarak gönderme
10Alıcı bulunamadı
11Geçerli bir alıcı bulunamadı
12Mesaj metni boş
13Mesajın içinde kötü kelimeler bulundu
14Kredi yeterli değil
15Teslim Süresi geçersiz
16Sistem hatası. Lütfen tekrar deneyin
99Bilinmeyen hata oluştu