• Telefon : 0 216 693 11 04
  • Gsm : 0 505 939 16 46
  • Email :

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

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