PHP code example of netgsm / netsantral

1. Go to this page and download the library: Download netgsm/netsantral library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

netgsm / netsantral example snippets


       use Netgsm\Netsantral\Package as NetsantralPackage;
       
       $data=array(   
            "customer_num"=>"553xxxxxxx",
            "pbxnum"=>"850xxxxxxx",
            "internal_num"=>"110",
            "ring_timeout"=>"20",
            "crm_id"=>"xxx",
            "wait_response"=>"1",
            "originate_order"=>"if",
            "trunk"=>"312xxxxxxx",
            "call_time"=>"49",
            // "caller_text"=>"merhaba bu bir test aramasıdır.",//caller_record varsa caller_text yazılmamalıdır.
            // "called_text"=>"merhaba bu bir test aramasıdır.",//called_record varsa caller_text yazılmamalıdır.
            "called_record"=>"mesaidisistandart.wav"//called_text varsa called_record yazılmamalıdır.
        );
        $islem=new NetsantralPackage;
        $sonuc=$islem->cagribaslat($data);
        
        dd($sonuc);
	die;


Array
(
    [unique_id] => sip3-xxxxxxxx.53336
    [caller_num] => 102
    [called_num] => 553xxxxxxx
    [crm_id] => xxx
    [response] => originate
    [status] => Success
    [message] => Successfully
)

Array
(
    [code] => 30
    [status] => Error
    [message] => Eksik yada yanlis parametre 2 
)

       use Netgsm\Netsantral\Package as NetsantralPackage;
       $data=array(   
            "pbxnum"=>"312xxxxxxx",
            "caller"=>"110",
            "called"=>"153",
            "ring_timeout"=>"20",
            "crm_id"=>"123456",
            "wait_response"=>"1",
            // "caller_text"=>"merhaba bu bir test aramasıdır.",
            // "called_text"=>"merhaba bu bir test aramasıdır.",
            "called_record"=>"mesaidisistandart.wav"
        );
        $islem=new NetsantralPackage;
        $sonuc=$islem->icDahiliCagriBaslat($data);
        dd($sonuc);
	die;


Array
(
    [unique_id] => sip3-xxxxxxxx.53336
    [caller_num] => 102
    [called_num] => 553xxxxxxx
    [crm_id] => xxx
    [response] => originate
    [status] => Success
    [message] => Successfully
)

Array
(
    [code] => 30
    [status] => Error
    [message] => Eksik yada yanlis parametre 2 
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(   
            "unique_id"=>"sip9-167xxxx620.xxxxx",
            "crm_id"=>"xxx",
            
        );
        $islem=new NetsantralPackage;
        $sonuc=$islem->cagrisonlandirma($data);
        dd($sonuc);
	die;


Array
(
    [crm_id] => xxx
    [response] => hangup
    [status] => Success
    [message] => Successful
)

Array
(
    [code] => 30
    [status] => Error
    [message] => Eksik yada yanlis parametre
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(   
            "unique_id"=>"sip9-1675xxxx16.207479",
            "crm_id"=>"xxx",
            "state"=>'unmute',
            'direction'=>'all'
            
        );
        $islem=new NetsantralPackage;
        $sonuc=$islem->cagrisessizeal($data);
	dd($sonuc);
	die;


Array
(
    [crm_id] => xxx
    [response] => muteaudio
    [status] => Success
    [message] => Successful
)


Array
(
    [code] => 30
    [status] => Error
    [message] => Eksik yada yanlis parametre
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(   
            "caller"=>"553xxxxxx",
            "called"=>"553xxxxxx",
            "internal_num"=>"110",
            "ring_timeout"=>"20",
            "crm_id"=>"xxx",
            "wait_response"=>"1",
            "originate_order"=>"if",
            "trunk"=>"312xxxxxxx",
            "call_time"=>"49",
            // "caller_text"=>"merhaba bu bir test aramasıdır.",
            // "called_text"=>"merhaba bu bir test aramasıdır.",
            "called_record"=>"mesaidisistandart.wav"
        );
        $islem=new NetsantralPackage;
        $sonuc=$islem->cagribagla($data);
        dd($sonuc);
	die;


Array
(
    [unique_id] => sip3-16757xxxxx.xxxx
    [caller_num] => 553xxxxxxx
    [called_num] => 537xxxxxxx
    [crm_id] => xxx
    [response] => linkup
    [status] => Success
    [message] => Successfully
)

Array
(
    [code] => 30
    [status] => Error
    [message] => Eksik yada yanlis parametre 2 
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(   
            "unique_id"=>"sip9-16xxxxxxxx.6541",
            "crm_id"=>"123456",
            "type"=>"xfer",
            "exten"=>"0544xxxxxxx"
        );
        $islem=new NetsantralPackage;
        $sonuc=$islem->cagritransfer($data);
        
        dd($sonuc);
	die;


Array
(
    [crm_id] => 123456
    [response] => xfer
    [status] => Success
    [message] => Successful
)

Array
(
    [status] => Error
    [message] => Hatali istek: URI hatali
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(
                "exten"=>"110",
                "queue"=>"muhasebe",
                "paused"=>"0",
                "crm_id"=>"345",
                "penalty"=>"0"
                );
         
        $islem=new NetsantralPackage;
        $sonuc=$islem->kuyrukEkle($data);
        dd($sonuc);
	die;


Array
(
    [crm_id] => 345
    [status] => Success
    [message] => Successful
)

Array
(
    [status] => Error
    [message] => Bir veya birden fazla kuyrukta hata olustuUnable to add interface to queue: No such queue
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(
                "exten"=>"101",
                "queue"=>"muhasebe",
                "crm_id"=>"345",
                );
         
        $islem=new NetsantralPackage;
        $sonuc=$islem->kuyrukCikar($data);
        dd($sonuc);
	die;


Array
(
    [crm_id] => 345
    [status] => Success
    [message] => Successful
)

Array
(
    [status] => Error
    [message] => Bir veya birden fazla kuyrukta hata olustuUnable to remove interface from queue: No such queue
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(
            "queue"=>"muhasebe",
            "crm_id"=>"345",
            );
     
        $islem=new NetsantralPackage;
        $sonuc=$islem->kuyrukSorgula($data);
        dd($sonuc);
	die;


Array
(
    [crm_id] => 345
    [pbx_num] => 312xxxxxxxx
    [queues] => Array
        (
            [0] => stdClass Object
                (
                    [queuename] => 312xxxxxxxx-queue-Operator
                    [callers] => stdClass Object
                        (
                        )

                    [agents] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [agent] => 101
                                    [status] => empty
                                    [membership] => static
                                    [paused] => false
                                    [reason] => 
                                )

                        )

                    [calls] => 0
                    [holdtime] => 0
                    [talktime] => 0
                    [completed] => 0
                    [abondaned] => 0
                    [max] => 0
                )

        )

)       


(
    [code] => 70
    [status] => Error
    [message] => 312xxxxxxx isimli santrale ait boyle bir kuyruk yoktur
)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(
            "exten"=>"110",
            "queue"=>"muhasebe",
            "paused"=>"1",
            "crm_id"=>"345",
            "reason"=>"test"
            );
     
        $islem=new NetsantralPackage;
        $sonuc=$islem->mola($data);
        dd($sonuc);
	die;


Array
(
    [crm_id] => 345
    [status] => Success
    [message] => Successful
)

Array
(
    [status] => Error
    [message] => Bir veya birden fazla kuyrukta hata olustuInterface not found
)

use Netgsm\Netsantral\Package as NetsantralPackage;
$data=array(
            "command"=>"queuedelnumber",
            "tenant"=>"312xxxxxxx",
            "queue"=>"muhasebe",
            "no"=>"553xxxxxxx",
            "penalty"=>"1"
            );
     
        $islem=new NetsantralPackage;
        $sonuc=$islem->kuyrukDisNum($data);
        dd($sonuc);
	die;


Array
(
    [code] => 200
    [message] => queuedelnumber islemi yapildi.
)

Array
(
    [code] => 70
    [error] => gecersiz tenant
)


        use Netgsm\Netsantral\Package as NetsantralPackage;
        $data=array(
            "called"=>"553xxxxxxx",
            "ring_timeout"=>"35",
            "crm_id"=>"1234",
            "wait_response"=>"1",
            "trunk"=>"850xxxxxxx",
            "redirect_menu"=>"muhasabe",
            "redirect_type"=>"queue",
            "call_time"=>"75",
            "prefix"=>"test",
            );
     
        $islem=new NetsantralPackage;
        $sonuc=$islem->dinamikyonlendirme($data);
        dd($sonuc);
	die;
    
  
 
Array
(
    [unique_id] => sip3-xxxxxxxxxxxxx.108813
    [caller_num] => 3129xxxxxx
    [called_num] => 3129xxxxxx
    [crm_id] => 1234
    [response] => dynamic_redirect
    [status] => Success
    [message] => Successfully
)
  
 
Array
(
    [caller_num] => caller
    [called_num] => 3129xxxxxx
    [crm_id] => 1234
    [response] => dynamic_redirect
    [status] => Error
    [message] => Unsuccessful
)
  

		use Netgsm\Netsantral\Package as NetsantralPackage;

        $islem=new NetsantralPackage;
        $data=array(
            "list_name"       => "list_name",
            "list_prefix"     => "110",
            "liste_type"      => "2",
            "list_startdate"  => "2023-02-01",
            "list_stopdate"   => "2023-02-01",
            "list_starttime"  => "11:00",
            "list_stoptime"   => "11:15",
            "retry_count"     => "1",
            "try_time"        => "5",
            "department"      => "muhasebe",
            "trunk"           => "312xxxxxxx",
            "destination_type"=> "queue",
            "destination_name"=> "muhasebe",
            "queue_limit"     => "1",                                      
            "groups"          => ["otolist"],
            "callstop_type "    =>1,
            "numbers"         => [
				array( "number" => "553xxx","name" => "name1"),
			  ]
                
        ); 

	$sonuc=$islem->otoAramaListeOlustur($data);
        dd($sonuc);
	die;

Array
(
    [header] => stdClass Object
        (
            [error] => 
            [code] => 200
            [message] => Otomatik arama listesi başarıyla oluşturuldu.
        )

    [body] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 12504
                    [list_name] => list_name
                    [list_prefix] => 110
                    [list_type] => 2
                    [list_startdate] => 2023-02-01
                    [list_stopdate] => 2023-02-01
                    [list_starttime] => 11:00
                    [list_stoptime] => 11:15
                    [retry_count] => 1
                    [try_time] => 5
                    [department] => muhasebe
                    [trunk] => 312xxxxxxx
                    [destination_type] => queue
                    [destination_name] => muhasebe
                    [queue_limit] => 1
                    [groups] => Array
                        (
                        )

                )

        )
)

Array
(
    [header] => stdClass Object
        (
            [error] => 1
            [code] => 70
            [message] => Hatalı sorgulama. Gönderdiğiniz parametrelerden birisi hatalı veya zorunlu alanlardan birinin eksik olduğunu ifade eder. Departman adı belirtmek zorunludur.
        )

    [body] => Array
        (
        )

)

        use Netgsm\Netsantral\Package as NetsantralPackage;
        $islem=new NetsantralPackage;
        $data=array('list_id'=>"12406");
        $sonuc=$islem->otomatikAramaList($data);
        dd($sonuc);
	die;


Array
(
    [header] => stdClass Object
        (
            [error] => 
            [code] => 200
            [message] => Otomatik arama listeleme başarılı.
        )

    [body] => Array
        (
            [0] => stdClass Object
                (
                    [list_id] => 12505
                    [list_name] => list_name
                    [list_status] => 0
                    [list_prefix] => 110
                    [list_type] => 2
                    [list_startdate] => 2023-02-01
                    [list_stopdate] => 2023-02-01
                    [list_starttime] => 11:00     
                    [list_stoptime] => 11:15     
                    [retry_count] => 1
                    [try_time] => 5
                    [department] => muhasebe
                    [destination_type] => queue
                    [destination_name] => muhasebe
                    [queue_limit] => 1
                    [groups] => Array
                        (
                        )

                )

        )

)

Array
(
    [header] => stdClass Object
        (
            [error] => 1
            [code] => 400
            [message] => HAtalı sorgulama. Bu id ye ait otomatik arama listesi yok yada yetkiniz yok.
        )

    [body] => Array
        (
        )

)

       use Netgsm\Netsantral\Package as NetsantralPackage;
       $islem=new NetsantralPackage;
        $data=array(
            'list_id'=>"12430",
            'status'=>"1"
        );
        $sonuc=$islem->listChangeStatus($data);
        dd($sonuc);
	die;


Array
(
    [header] => stdClass Object
        (
            [error] => 
            [code] => 200
            [message] => Otomatik arama listesi başarıyla aktifleştirildi.
        )

    [body] => Array
        (
            [0] => stdClass Object
                (
                    [list_id] => 12505
                    [status] => 1
                )

        )

)

Array
(
    [header] => stdClass Object
        (
            [error] => 1
            [code] => 70
            [message] => Hatalı sorgulama. Gönderdiğiniz parametrelerden birisi hatalı veya zorunlu alanlardan birinin eksik olduğunu ifade eder. Liste ID si yok.
        )

    [body] => Array
        (
        )

)

	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array('list_id'=>"12431");
        $sonuc=$islem->aramaRapor($data);
        dump($sonuc);
	die;
	


Array
(
    [header] => stdClass Object
        (
            [error] => 
            [code] => 200
            [message] => Raporlama basarili.
        )

    [body] => Array
        (
            [0] => stdClass Object
                (
                    [numbers_status] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [type] => Hiç aranmamış
                                    [count] => 0
                                )

                            [1] => stdClass Object
                                (
                                    [type] => Başarılı
                                    [count] => 0
                                )

                            [2] => stdClass Object
                                (
                                    [type] => Başarısız
                                    [count] => 0
                                )

                            [3] => stdClass Object
                                (
                                    [type] => Tekrar aranacak
                                    [count] => 0
                                )

                        )

                    [numbers] => Array
                        (
                        )

                )

        )

)

Array
(
    [header] => stdClass Object
        (
            [error] => 1
            [code] => 301
            [message] => Gönderilen ID değeri numerik ve sıfırdan büyük bir değer olmalıdır. 
        )

    [body] => Array
        (
        )

)

{
  "header": {
    "App": "AutomaticCall"
  },
  "body": {
    "JobID": 12651,
    "crm_id": "OtoArama-286481536",
    "called": "055xxxxxxxx",
    "redirect_menu": "muhasebe",
    "redirect_type": "queue",
    "trunk": "312xxxxxxx",
    "prefix": "101",
    "callerid": "name1",
    "filter": "sip3-xxxxxxxxx.4237",
    "pbxtype": "12",
    "Brandcode": null,
    "unique_id": null,
    "status": "Success",
    "message": "Successfully"
  }
}

   use Illuminate\Http\Request;
   public function index(Request $request)
    {

   	 $data = json_decode($request->getContent(),false);
    	 $data->body->JobID;
      	 $data->body->callerid;
      
    }

    use Symfony\Component\HttpFoundation\Request;	
    public function index(Request $request)
    {
      $data = json_decode($request->getContent(),false);
      $data->body->JobID;
      $data->body->callerid;
    }
	


Servisten Alınan Örnek Cevap
{  "response" : "login",  "crm_id" : "XXX",  "status" : "success",  "message" : "açıklama" }

Servisten Alınan Örnek Cevap : Outbound Çağrılar
{"pbx_num":"850304XXXX","unique_id":"1428481945.3543","internal_num":"101","scenario":"Outbound_call","customer_num":"05XXXXXXXXX","timestamp":"1652080580926"}

Servisten Alınan Örnek Cevap : Inbound Çağrılar
{"pbx_num":"101","unique_id":"1428481992.3556","scenario":"Inbound_call","customer_num":"90312911XXXX","timestamp":"1652080580926"}

Servisten Alınan Örnek Cevap : Scenario : DTMF
{"Context":"XX.XX","pbx_num":"212XXXXXXX","unique_id":"XXX.XXX","scenario":"DTMF","digit":"0","timestamp":"1652080580926"}

Servisten Alınan Örnek Cevap : Scenario : Context
{"pbx_num":"212XXXXXXX","customer_num":"05XXXXXXXXX","unique_id":"XXX.XXX","context_name":"XXX-212XXXXXXX","type":"ivr","scenario":"Context","timestamp":"1652080580926"}

Servisten Alınan Örnek Cevap : Scenario : Queue
{"queue_name":"850XXXXXXX-queue-Destek","pbx_num":"850XXXXXXX","unique_id":"","scenario":"Queue","timestamp":"1652080580926"}

Servisten Alınan Örnek Cevap :  Scenario : Cdr
{"bas":"2021-01-27 16:05:38","kimlik":18664xxxxx,"ortakkimlik":18664xxxxx,"clid":"\"NECLA 561523\" <05xxxxxxxxx>","arayan":"05xxxxxxxxx","aranan":"85030xxxxx-queue-MusteriHizmetleri","sure":164,"sondurum":3,"santral":"85030xxxxx","yon":1,"seskaydi":"https://dosyaindir.netgsm.com.tr/upload.php?tip=1&q=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","asteriskId":"sip8-1611752738.106785","trunk":"312xxxxxxx","scenario":"cdr","timestamp":"1652080580926"}


   use Illuminate\Http\Request;
   public function index(Request $request)
    {
        
        $data = json_decode($request->getContent(),false);
        echo $data->pbx_num;
        echo $data->scenario;
       
    }

    use Symfony\Component\HttpFoundation\Request;	
    public function index(Request $request)
    {
      $data = json_decode($request->getContent(),false);
        echo $data->pbx_num;
        echo $data->scenario;
      
    }
	

	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array(
            'list_id'=>"12431",
            'numbers'=>array( "number" => "542xxxxxxx","name" => "netgsm")
        );
        $sonuc=$islem->listeNumEkle($data);
        dd($sonuc);
	die;

Array
(
    [header] => stdClass Object
        (
            [error] => 
            [code] => 200
            [message] => 12505 ID numaralı projeye 1 numara eklenemedi. 
        )

    [body] => Array
        (
            [0] => stdClass Object
                (
                    [list_id] => 12505
                    [list_name] => list_name
                    [numbers] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [number] => 542xxxxxxx
                                    [name] => netgsm
                                    [status] => error
                                )

                        )

                )

        )

)

Array
(
    [header] => stdClass Object
        (
            [error] => 1
            [code] => 70
            [message] => Hatalı sorgulama. Gönderdiğiniz parametrelerden birisi hatalı veya zorunlu alanlardan birinin eksik olduğunu ifade eder. Numaraların ekleneceği proje ID si girilmelidir.
        )

    [body] => Array
        (
        )

)

	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array('list_id'=>"12431",
                    'id'=>"12356",
                    'name'=>'test',
                    'calltime'=>'50',
                    'trunk'=>'312xxxxxxx',
                    'nstatus'=>'0'

            );
        $sonuc=$islem->listeNumGuncelle($data);
        dd($sonuc);
	die;


	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array(
            'uniqueid' =>"sip9-167524xxxx4.94499",
            );
        $sonuc=$islem->gorusmeDetay($data);
        dd($sonuc);
	die;


	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array(
            'querytype' =>"2",
            'startdate'=>'010220231000',
            'stopdate'=>'010220231400',
            'no'  =>"553xxxxxxx",
            );
        $sonuc=$islem->gorusmeDetay($data);
        dump($sonuc);
	die;

	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array(
            'startdate'=>'010220231000',
            'stopdate'=>'010220231400',
            );
        $sonuc=$islem->gorusmeDetay($data);
        dd($sonuc);
	die;

Array
(
    [0] => stdClass Object
        (
            [uniqueid] => sip3-167xxxxx3.92222
            [values] => Array
                (
                    [0] => stdClass Object
                        (
                            [date] => 07.02.2023 13:50:33
                            [destination] => 553xxxxxxx
                            [source] => 102
                            [duration] => 54
                            [direction] => 0
                            [recording] => https://dosyaindir.netgsm.com.tr/upload.php?tip=1&a=8f344a1062ac54................
                            [line] => 312xxxxxxx
                            [directory] => "102" <102>
                            [commonID] => 36xxxxxx
                        )

                )

        )
)

Array
(
    [code] => 40
    [error] => Kayit bulunamadi
)

	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array(
            'startdate' =>'310120231000',
            'stopdate'  =>'010220231600',
            );
        $sonuc=$islem->istatistikGelenCagri($data);
        dd($sonuc);
	die;


Array
(
    [date] => 01.02.2023
    [answered] => 2
    [noanswer] => 0
    [t_calltime] => 39
    [t_waittime] => 42
    [max_waiting] => 16
    [avr_waiting] => 11
    [avr_answered] => 20
)

Array
(
    [code] => 40
    [error] => Kayit Bulunamadi
)

	use Netgsm\Netsantral\Package as NetsantralPackage;
	$islem=new NetsantralPackage;
        $data=array(
            'date' =>'01022023',
            );
        $sonuc=$islem->istatistikGunDetay($data);
        dd($sonuc);
	die;

Array
(
    [date] => 01.02.2023
    [answered] => 2
    [noanswer] => 0
    [t_calltime] => 39
    [t_waittime] => 42
    [max_waiting] => 16
    [avr_waiting] => 11
    [avr_answered] => 20
)

Array
(
    [code] => 40
    [error] => Kayit Bulunamadi
)