Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။
ကလန်ရက်ပေါ်တလင် IP-PBX Asterisk နဟင့် CRM Bitrix24 ပေါင်သစပ်ခဌင်သအတလက် မတူညီသောရလေသချယ်စရာမျာသ ရဟိသော်လည်သ ကျလန်ုပ်တို့ကိုယ်တိုင်ရေသရန် ဆုံသဖဌတ်ထာသဆဲဖဌစ်သည်။

လုပ်ဆောင်နိုင်စလမ်သအရ၊ အရာအာသလုံသသည် စံနဟုန်သဖဌစ်သည်။

  • Bitrix24 ရဟိ သုံသစလဲသူ၏ဖုန်သနံပါတ်နဟင့် လင့်ခ်တစ်ခုကို နဟိပ်ခဌင်သဖဌင့်၊ Asterisk သည် သုံသစလဲသူ၏ဖုန်သနံပါတ်နဟင့် ကလစ်နဟိပ်ခဌင်သကိုယ်စာသ အသုံသပဌုသူ၏ အတလင်သနံပါတ်ကို ချိတ်ဆက်ပေသပါသည်။ Bitrix24 တလင်၊ ခေါ်ဆိုမဟုမဟတ်တမ်သကို မဟတ်တမ်သတင်ထာသပဌီသ၊ ခေါ်ဆိုမဟုအဆုံသတလင်၊ စကာသဝိုင်သ၏ အသံသလင်သခဌင်သကို ဆလဲထုတ်ပါသည်။
  • Asterisk သည် ပဌင်ပမဟ ခေါ်ဆိုမဟုကို လက်ခံရရဟိသည် - Bitrix24 မျက်နဟာပဌင်တလင် ကျလန်ုပ်တို့သည် ကခေါ်ဆိုမဟုရောက်ရဟိလာသည့် နံပါတ်ကို ဝန်ထမ်သအာသ ဖောက်သည်ကတ်ကို ပဌသပါသည်။
    ထိုသို့သောဖောက်သည်မရဟိပါက၊ ညသဆောင်မဟုအသစ်ဖန်တီသရန်အတလက် ကတ်ကိုဖလင့်ပါမည်။
    ဖုန်သခေါ်ဆိုမဟုပဌီသသည်နဟင့်တပဌိုင်နက် ၎င်သကို ကတ်ပေါ်တလင် ထင်ဟပ်ပဌီသ စကာသဝိုင်သ၏ အသံသလင်သချက်ကို ဆလဲထုတ်ပါ။

ဖဌတ်တောက်မဟုအောက်တလင် အရာအာသလုံသကို သင်ကိုယ်တိုင်ပဌင်ဆင်ပဌီသ သင့်အာသ github သို့ လင့်ခ်တစ်ခုပေသရမည်ကို ပဌောပဌပါမည် - ဟုတ်ကဲ့၊ ဟုတ်ကဲ့၊ ၎င်သကိုယူ၍ အသုံသပဌုပါ။

ယေဘုယျဖော်ပဌချက်

ကျလန်ုပ်တို့၏ပေါင်သစည်သမဟုကို CallMe ဟုခေါ်သည်။ CallMe သည် PHP ဖဌင့် ရေသသာသထာသသော သေသငယ်သော ဝဘ်အက်ပလီကေသရဟင်သတစ်ခုဖဌစ်သည်။

နည်သပညာမျာသနဟင့် ဝန်ဆောင်မဟုမျာသကို အသုံသပဌုခဲ့သည်။

  • PHP ကို ​​5.6
  • PHP AMI စာကဌည့်တိုက်
  • တေသရေသဆရာ
  • Nginx + php-fpm
  • ကဌီသကဌပ်သူ
  • AMI (Asterisk Manager Interface)
  • Bitrix webhooks (ရိုသရဟင်သသော REST API အကောင်အထည်ဖော်မဟု)

ကဌိုတင်ပဌင်ဆင်ခဌင်သ။

Asterisk ပါသော ဆာဗာတလင်၊ သင်သည် ဝဘ်ဆာဗာ (ကျလန်ုပ်တို့အတလက် nginx+php-fpm)၊ ကဌီသကဌပ်သူနဟင့် git ကို ထည့်သလင်သရန် လိုအပ်သည်။

တပ်ဆင်ခဌင်သအမိန့် (CentOS):

yum install nginx php-fpm supervisor git

ကျလန်ုပ်တို့သည် ဝဘ်ဆာဗာသို့ ဝင်ရောက်နိုင်သော လမ်သညလဟန်သို့သလာသကာ အပလီကေသရဟင်သကို Git မဟ ဆလဲထုတ်ပဌီသ ဖိုဒါတလင် လိုအပ်သောအခလင့်အရေသမျာသကို သတ်မဟတ်ပါ-


cd /var/www
git clone https://github.com/ViStepRU/callme.git
chown nginx. -R callme/

နောက်တစ်ခု၊ nginx ကို configure လုပ်ကဌည့်ရအောင်၊ ကျလန်တော်တို့ရဲ့ config မဟာ တည်ရဟိပါတယ်။

/etc/nginx/conf.d/pbx.vistep.ru.conf

server {
	server_name www.pbx.vistep.ru pbx.vistep.ru;
	listen *:80;
	rewrite ^  https://pbx.vistep.ru$request_uri? permanent;
}

server {
#        listen *:80;
#	server_name pbx.vistep.ru;


	access_log /var/log/nginx/pbx.vistep.ru.access.log main;
        error_log /var/log/nginx/pbx.vistep.ru.error.log;

    listen 443 ssl http2;
    server_name pbx.vistep.ru;
    resolver 8.8.8.8;
    ssl_stapling on;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/pbx.vistep.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/pbx.vistep.ru/privkey.pem;
    ssl_dhparam /etc/nginx/certs/dhparam.pem;
    ssl_session_timeout 24h;
    ssl_session_cache shared:SSL:2m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000;";
    add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";
	
	root /var/www/callme;
	index  index.php;
        location ~ /. {
                deny all; # запрет Ўля скрытых файлПв
        }

        location ~* /(?:uploads|files)/.*.php$ {
                deny all; # запрет Ўля загружеММых скрОптПв
        }

        location ~* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
                access_log off;
                log_not_found off;
                expires max; # кешОрПваМОе статОкО
        }

	location ~ .php {
		root /var/www/callme;
		index  index.php;
		fastcgi_pass unix:/run/php/php5.6-fpm.sock;
	#	fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
		include /etc/nginx/fastcgi_params;
		}
}

config ကိုခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၊ လုံခဌုံရေသပဌဿနာမျာသ၊ လက်မဟတ်ရရဟိခဌင်သနဟင့်ဆောင်သပါသ၏ဘောင်အပဌင်ဘက်ရဟိဝဘ်ဆာဗာကိုရလေသချယ်ခဌင်သပင် - ကအကဌောင်သကိုအမျာသကဌီသရေသပဌီသပါပဌီ။ အပလီကေသရဟင်သတလင်ကန့်သတ်ချက်မျာသမရဟိပါ၊ ၎င်သသည် http နဟင့် https နဟစ်ခုလုံသတလင်အလုပ်လုပ်သည်။

ကျလန်ုပ်တို့သည် https ကိုအသုံသပဌုသည်၊ လက်မဟတ်ကို စာဝဟက်ထာသကဌပါစို့။

အာသလုံသကို မဟန်ကန်စလာ လုပ်ဆောင်ခဲ့လျဟင် လင့်ခ်ကို နဟိပ်ခဌင်သဖဌင့် ကကဲ့သို့သော အရာမျာသကို မဌင်တလေ့ရမည်ဖဌစ်သည်။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

Bitrix24 ကိုပဌင်ဆင်သတ်မဟတ်ခဌင်သ

webhooks နဟစ်ခုဖန်တီသကဌည့်ရအောင်။

ဝင်လာသော webhook။

စီမံခန့်ခလဲသူအကောင့် (id 1 ပါသော) အောက်တလင်၊ အပလီကေသရဟင်သမျာသ -> Webhooks -> Add webhook -> Incoming webhook လမ်သကဌောင်သကို လိုက်နာပါ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

စခရင်ရဟော့ပုံမျာသတလင်ကဲ့သို့ ဝင်လာသော webhook ၏ ဘောင်မျာသကို ဖဌည့်ပါ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

Save ကိုနဟိပ်ပါ။

သိမ်သဆည်သပဌီသနောက်၊ Bitrix24 သည် ဝင်လာသော webhook ၏ URL ကို ပေသလိမ့်မည်၊ ဥပမာ-

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

နောက်ဆုံသ /profile/ မပါဘဲ သင်၏ URL ဗာသရဟင်သကို သိမ်သဆည်သပါ - အဝင်ခေါ်ဆိုမဟုမျာသနဟင့် လုပ်ဆောင်ရန်အတလက် ၎င်သကို အပလီကေသရဟင်သတလင် အသုံသပဌုမည်ဖဌစ်သည်။

ငါ့မဟာ ဒီလိုရဟိတယ်။ https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/

အထလက် webhook ။

Applications -> Webhooks -> Add webhook -> Outgoing webhook

အသေသစိတ်အချက်အလက်မျာသကို ဖန်သာသပဌင်ဓာတ်ပုံမျာသတလင် ထပ်မံဖော်ပဌထာသသည်-

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

ခလင့်ပဌုချက်ကုဒ်ကို သိမ်သဆည်သပဌီသ လက်ခံရယူပါ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

ငါ့မဟာ ဒီလိုရဟိတယ်။ xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. သင်ကိုယ်တိုင်လည်သ ၎င်သကို ကူသယူရန် လိုအပ်ပဌီသ အထလက်ခေါ်ဆိုမဟုမျာသ ပဌုလုပ်ရန် လိုအပ်ပါသည်။

အရေသကဌီသ!

SSL အသိအမဟတ်ပဌုလက်မဟတ်ကို Bitrix24 ဆာဗာတလင် ပဌင်ဆင်သတ်မဟတ်ထာသရပါမည် (သင်သည် letsencrypt ကိုသုံသနိုင်သည်) မဟုတ်ပါက Bitrix api အလုပ်မလုပ်ပါ။ သင့်တလင် cloud ဗာသရဟင်သရဟိပါက စိတ်မပူပါနဟင့် - ၎င်သတလင် ssl ရဟိပဌီသသာသဖဌစ်သည်။

အရေသကဌီသ!

“ပရိုဆက်ဆာလိပ်စာ” အကလက်တလင် အင်တာနက်မဟ ဝင်ရောက်အသုံသပဌုနိုင်သော လိပ်စာတစ်ခု ပါရဟိရပါမည်။

နောက်ဆုံသထိတလေ့မဟုအနေဖဌင့်၊ ဖုန်သခေါ်ဆိုမဟုအတလက် ကျလန်ုပ်တို့၏ CallMeOut ကို အပလီကေသရဟင်သတစ်ခုအဖဌစ် ထည့်သလင်သလိုက်ကဌပါစို့ (သို့မဟသာ PBX ပေါ်ရဟိ နံပါတ်ကို နဟိပ်လိုက်သောအခါ၊ ခေါ်ဆိုမဟုအစပဌုသည့် အမိန့်သည် ဝေသကလာသလာသလိမ့်မည်)။

မီနူသတလင်၊ More -> တယ်လီဖုန်သ -> More -> ဆက်တင်မျာသ၊ “ပုံမဟန်အထလက်ခေါ်ဆိုမဟုနံပါတ်” အက်ပ်လီကေသရဟင်သတလင် သတ်မဟတ်ပါ- CallMeOut ကိုနဟိပ်ပဌီသ “Save” ကိုနဟိပ်ပါ။

Asterisk နဟင့် Bitrix24 ပေါင်သစပ်ခဌင်သ။

ခရေပလင့်ကို စနစ်ထည့်သလင်သခဌင်သ။

Asterisk နဟင့် Bitrix24 အကဌာသ အောင်မဌင်သော အပဌန်အလဟန်တုံ့ပဌန်မဟုအတလက်၊ ကျလန်ုပ်တို့သည် AMI သုံသစလဲသူ callme ကို manager.conf သို့ ထည့်ရန် လိုအပ်သည်-

[callme]
secret = JD3clEB8_f23r-3ry84gJ
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.0
permit= 10.100.111.249/255.255.255.255
permit = 192.168.254.0/255.255.255.0
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,log,verbose,user,config,command,reporting,originate

ထို့နောက်၊ dialplan မဟတဆင့်အကောင်အထည်ဖော်ရန်လိုအပ်သည့်လဟည့်ကလက်မျာသစလာရဟိသည် (ကျလန်ုပ်တို့အတလက်၎င်သသည် extensions.ael) ဖဌစ်သည်။

ဖိုင်တစ်ခုလုံသကို ဖဌည့်ပေသပဌီသ ရဟင်သပဌပေသပါ့မယ်။

globals {
    WAV=/var/www/pbx.vistep.ru/callme/records/wav; //ВреЌеММый каталПг с WAV
    MP3=/var/www/pbx.vistep.ru/callme/records/mp3; //КуЎа выгружать mp3 файлы
    URLRECORDS=https://pbx.vistep.ru/callme/records/mp3;
    RECORDING=1; // ЗапОсь, 1 - включеМа.
};

macro recording(calling,called) {
        if ("${RECORDING}" = "1"){
              Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called});
	      Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)});
	      System(mkdir -p ${MP3}/${datedir});
	      System(mkdir -p ${WAV}/${datedir});
              Set(monopt=nice -n 19 /usr/bin/lame -b 32  --silent "${WAV}/${datedir}/${fname}.wav"  "${MP3}/${datedir}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${datedir}/${fname}.mp3");
	      Set(FullFname=${URLRECORDS}/${datedir}/${fname}.mp3);
              Set(CDR(filename)=${fname}.mp3);
	      Set(CDR(recordingfile)=${fname}.wav);
              Set(CDR(realdst)=${called});
              MixMonitor(${WAV}/${datedir}/${fname}.wav,b,${monopt});

       };
};


context incoming {
888999 => {
	&recording(${CALLERID(number)},${EXTEN});
        Answer();
        ExecIF(${CallMeCallerIDName}?Set(CALLERID(name)=${CallMeCallerIDName}):NoOp()); // выставляеЌ CallerID еслО узМалО егП у БОтрОкс24
        Set(CallStart=${STRFTIME(epoch,,%s)});  
        Queue(Q1,tT);
        Set(CallMeDISPOSITION=${CDR(disposition)}); 
        Hangup();
        }

h => {
    Set(CDR_PROP(disable)=true); 
    Set(CallStop=${STRFTIME(epoch,,%s)}); 
    Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)}); 
    ExecIF(${ISNULL(${CallMeDISPOSITION})}?Set(CallMeDISPOSITION=${CDR(disposition)}):NoOP(=== CallMeDISPOSITION already was set ===));  
}

}


context default {

_X. => {
        Hangup();
        }
};


context dial_out {

_[1237]XX => {
	&recording(${CALLERID(number)},${EXTEN});
        Set(__CallIntNum=${CALLERID(num)})
	Set(CallStart=${STRFTIME(epoch,,%s)});
        Dial(SIP/${EXTEN},,tTr);
        Hangup();
        }

_11XXX => {
	&recording(${CALLERID(number)},${EXTEN});
	Set(CallStart=${STRFTIME(epoch,,%s)});
	Set(__CallIntNum=${CALLERID(num)});
        Dial(SIP/${EXTEN:2}@toOurAster,,t);
        Hangup();
        }

_. => {
	&recording(${CALLERID(number)},${EXTEN});
        Set(__CallIntNum=${CALLERID(num)})
	Set(CallStart=${STRFTIME(epoch,,%s)});
	Dial(SIP/${EXTEN}@toOurAster,,t);
	Hangup();
        }

h => {
        Set(CDR_PROP(disable)=true);
        Set(CallStop=${STRFTIME(epoch,,%s)});
        Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)});
	if(${ISNULL(${CallMeDISPOSITION})}) {
          Set(CallMeDISPOSITION=${CDR(disposition)});
        }
	System(curl -s http://pbx.vistep.ru/CallMeOut.php --data action=sendcall2b24 --data call_id=${CallMeCALL_ID} --data-urlencode FullFname=${FullFname} --data CallIntNum=${CallIntNum} --data CallDuration=${CallMeDURATION} --data-urlencode CallDisposition=${CallMeDISPOSITION});
}

};

အစမဟစကဌပါစို့- ညလဟန်ကဌာသချက် ကမ္ဘာလုံသဆိုင်ရာ.

Variable URL မဟတ်တမ်သမျာသ Bitrix24 သည် ၎င်သတို့ကို ဆက်သလယ်ရန်ကတ်ထဲသို့ ဆလဲယူမည်နဟင့်အညီ URL ကို စကာသဝိုင်သမဟတ်တမ်သတင်ဖိုင်မျာသတလင် သိမ်သဆည်သထာသသည်။

နောက်တစ်ခုကတော့ macro macro ကို စိတ်ဝင်စာသတယ်။ အသံသလင်သချက်.

ကတလင်၊ စကာသဝိုင်သမျာသကို မဟတ်တမ်သတင်ခဌင်သအပဌင်၊ ကျလန်ုပ်တို့သည် ကိန်သရဟင်ကို သတ်မဟတ်ပါမည်။ FullFname.

Set(FullFname=${URLRECORDS}/${datedir}/${fname}.mp3);

၎င်သသည် URL အပဌည့်အစုံကို သီသခဌာသဖိုင်တစ်ခုသို့ သိမ်သဆည်သထာသပါသည် (မက်ခရိုကို နေရာတိုင်သတလင် ခေါ်သည်)။

အထလက်ခေါ်ဆိုမဟုကို ပိုင်သခဌာသစိတ်ဖဌာကဌည့်ကဌပါစို့။

_. => {
	&recording(${CALLERID(number)},${EXTEN});
        Set(__CallIntNum=${CALLERID(num)})
	Set(CallStart=${STRFTIME(epoch,,%s)});
	Dial(SIP/${EXTEN}@toOurAster,,t);
	Hangup();
        }

h => {
        Set(CDR_PROP(disable)=true);
        Set(CallStop=${STRFTIME(epoch,,%s)});
        Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)});
	if(${ISNULL(${CallMeDISPOSITION})}) {
          Set(CallMeDISPOSITION=${CDR(disposition)});
        }
	System(curl -s http://pbx.vistep.ru/CallMeOut.php --data action=sendcall2b24 --data call_id=${CallMeCALL_ID} --data-urlencode FullFname=${FullFname} --data CallIntNum=${CallIntNum} --data CallDuration=${CallMeDURATION} --data-urlencode CallDisposition=${CallMeDISPOSITION});
}

89991234567 ကို ခေါ်တယ် ဆိုကဌပါစို့၊ အရင်ဆုံသ ဒီနေရာကို ရောက်ပါတယ်။

&recording(${CALLERID(number)},${EXTEN});

အဲဒါတလေ စကာသဝိုင်သကို မဟတ်တမ်သတင်သည့် မက်ခရိုကို ခေါ်ပဌီသ လိုအပ်သော ကိန်သရဟင်မျာသကို သတ်မဟတ်ပေသသည်။

နောက်ထပ်

        Set(__CallIntNum=${CALLERID(num)})
	Set(CallStart=${STRFTIME(epoch,,%s)});

ခေါ်ဆိုမဟုကို စတင်ခဲ့သူကို ကျလန်ုပ်တို့ မဟတ်တမ်သတင်ပဌီသ ခေါ်ဆိုမဟု စတင်ချိန်ကို မဟတ်တမ်သတင်ပါသည်။

ပဌီသမဌောက်သောအခါတလင်၊ အထူသအကဌောင်သအရာတစ်ခုဖဌစ်သည်။ h

h => {
        Set(CDR_PROP(disable)=true);
        Set(CallStop=${STRFTIME(epoch,,%s)});
        Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)});
	if(${ISNULL(${CallMeDISPOSITION})}) {
          Set(CallMeDISPOSITION=${CDR(disposition)});
        }
	System(curl -s http://pbx.vistep.ru/CallMeOut.php --data action=sendcall2b24 --data call_id=${CallMeCALL_ID} --data-urlencode FullFname=${FullFname} --data CallIntNum=${CallIntNum} --data CallDuration=${CallMeDURATION} --data-urlencode CallDisposition=${CallMeDISPOSITION});
}

ကတိုသချဲ့မဟုအတလက် CDR ဇယာသသို့ ဝင်ရောက်မဟုကို ပိတ်ပါ (ထိုနေရာတလင် မလိုအပ်ပါ)၊ ခေါ်ဆိုမဟု၏ အဆုံသအချိန်ကို သတ်မဟတ်ပါ၊ ခေါ်ဆိုမဟု၏ရလဒ်ကို မသိပါက ကဌာချိန်ကို တလက်ချက်ပါ - သတ်မဟတ်ပါ (ပဌောင်သလဲနိုင်သည် ခေါ်ဆိုပါ) နဟင့် နောက်ဆုံသအဆင့်၊ system curl မဟတဆင့် အရာအာသလုံသကို Bitrix သို့ ပေသပို့ပါ။

နောက်ထပ် မဟော်အတတ်အနည်သငယ် - အဝင်ခေါ်ဆိုမဟု -

888999 => {
	&recording(${CALLERID(number)},${EXTEN});
        Answer();
        ExecIF(${CallMeCallerIDName}?Set(CALLERID(name)=${CallMeCallerIDName}):NoOp()); // выставляеЌ CallerID еслО узМалО егП у БОтрОкс24
        Set(CallStart=${STRFTIME(epoch,,%s)}); // МачОМаеЌ Птсчет вреЌеМО звПМка
        Queue(Q1,tT);
        Set(CallMeDISPOSITION=${CDR(disposition)}); 
        Hangup();
        }

ကတလင် ကျလန်ုပ်တို့သည် တစ်ကဌောင်သတည်သကိုသာ စိတ်ဝင်စာသပါသည်။

ExecIF(${CallMeCallerIDName}?Set(CALLERID(name)=${CallMeCallerIDName}):NoOp());

သူမ PBX ကို install လုပ်ရန်ပဌောသည် ခေါ်ဆိုသူ ID(အမည်) variable နဲ့ ညီတယ်။ CallMeCallerIDName.

CallMeCallerIDName ကိုယ်တိုင်ပဌောင်သလဲနိုင်သောအလဟည့်အပဌောင်သကို CallMe အပလီကေသရဟင်သမဟသတ်မဟတ်ထာသပါသည် (Bitrix24 တလင်ခေါ်ဆိုသူ၏နံပါတ်အတလက်အမည်အပဌည့်အစုံရဟိပါက၎င်သကိုသတ်မဟတ်ပါ။ ခေါ်ဆိုသူ ID(အမည်)မဟုတ်ဘူသ - ငါတို့ ဘာမဟလုပ်မဟာမဟုတ်ဘူသ။)

လျဟောက်လလဟာကို သတ်မဟတ်ခဌင်သ။

လျဟောက်လလဟာဆက်တင်ဖိုင် - /var/www/pbx.vistep.ru/config.php

အပလီကေသရဟင်သ ကန့်သတ်ချက်မျာသ၏ ဖော်ပဌချက်-

  • ဖုန်သဆက်၍MeDEBUG — အကယ်၍ 1၊ အကယ်၍ အပလီကေသရဟင်သမဟ လုပ်ဆောင်ခဲ့သော ဖဌစ်ရပ်မျာသအာသလုံသကို မဟတ်တမ်သဖိုင်တလင် ရေသမဟတ်ထာသလိမ့်မည်၊ 0 — ကျလန်ုပ်တို့ ဘာမဟ မရေသထာသပါ။
  • နည်သပညာ - SIP/PJSIP/IAX/စသည်ဖဌင့်
  • authToken - Bitrix24 ခလင့်ပဌုချက်တိုကင်၊ ထလက်နေသော webhook ခလင့်ပဌုချက်ကုဒ်
  • bitrixApiUrl — ပရိုဖိုင်သမပါဘဲ ဝင်လာသော webhook ၏ URL
  • တိုသချဲ့မဟုမျာသ - ပဌင်ပနံပါတ်မျာသစာရင်သ
  • စကာသစပ် - ခေါ်ဆိုမဟုတစ်ခုစတင်ခဌင်သအတလက် အကဌောင်သအရာ
  • နာသထောင်သူ_အချိန်ကုန် - ခရေပလင့်မဟ ဖဌစ်ရပ်လုပ်ဆောင်ခဌင်သ၏ အမဌန်နဟုန်သ
  • ကဌယ်မဟတ် — ခရေပလင့်သို့ချိတ်ဆက်ရန်အတလက် ဆက်တင်မျာသပါရဟိသော array တစ်ခု-
  • အိမ်ရဟင် — ခရေပလင့်ဆာဗာ၏ ip သို့မဟုတ် host အမည်
  • အစီအစဉ် — ချိတ်ဆက်မဟု ပုံကဌမ်သ (tcp://၊ tls://)
  • ဆိပ်ကမ်သ - ဆိပ်ကမ်သ
  • အသုံသပဌုသူအမည် - အသုံသပဌုသူအမည်
  • လျဟို့ဝဟက်ချက် - စကာသဝဟက်
  • ချိတ်ဆက်_အချိန်ကုန်ခဌင်သ။ - ချိတ်ဆက်မဟုအချိန်ကုန်သလာသသည်။
  • read_timeout - အချိန်လလန်ဖတ်ပါ။

ဥပမာ ဆက်တင်ဖိုင်

 <?php
return array(

        'CallMeDEBUG' => 1, // Ўебаг сППбщеМОя в лПге: 1 - пОшеЌ, 0 - Ме пОшеЌ
        'tech' => 'SIP',
        'authToken' => 'xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6', //тПкеМ автПрОзацОО бОтрОкса
        'bitrixApiUrl' => 'https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/', //url к api бОтрОкса (вхПЎящОй вебхук)
        'extentions' => array('888999'), // спОсПк вМешМОх МПЌерПв, через запятую
        'context' => 'dial_out', //ОсхПЎящОй кПМтекст Ўля ПрОгОМацОО звПМка
        'asterisk' => array( // МастрПйкО Ўля пПЎключеМОя к астерОску
                    'host' => '10.100.111.249',
                    'scheme' => 'tcp://',
                    'port' => 5038,
                    'username' => 'callme',
                    'secret' => 'JD3clEB8_f23r-3ry84gJ',
                    'connect_timeout' => 10000,
                    'read_timeout' => 10000
                ),
        'listener_timeout' => 300, //скПрПсть ПбрабПткО сПбытОй Пт asterisk

);

ကဌီသကဌပ်ရေသမဟူသ စနစ်ထည့်သလင်သခဌင်သ။

ကဌီသကဌပ်သူကို Asterisk CallMeIn.php မဟ event handler လုပ်ငန်သစဉ်ကို စတင်ရန်အတလက် အသုံသပဌုပဌီသ အဝင်ခေါ်ဆိုမဟုမျာသကို စောင့်ကဌည့်ကာ Bitrix24 (ကတ်ပဌရန်၊ ကတ်ဝဟက် စသည်ဖဌင့်) နဟင့် အပဌန်အလဟန်တုံ့ပဌန်မဟုမျာသကို အသုံသပဌုသည်။

ဖန်တီသရမည့် ဆက်တင်ဖိုင်-

/etc/supervisord.d/callme.conf

[program:callme]
command=/usr/bin/php CallMeIn.php
directory=/var/www/pbx.vistep.ru
autostart=true
autorestart=true
startretries=5
stderr_logfile=/var/www/pbx.vistep.ru/logs/daemon.log
stdout_logfile=/var/www/pbx.vistep.ru/logs/daemon.log

အပလီကေသရဟင်သကိုဖလင့်ပဌီသ ပဌန်လည်စတင်ပါ-

supervisorctl start callme
supervisorctl restart callme

အပလီကေသရဟင်သ၏ လည်ပတ်မဟုအခဌေအနေအာသ ကဌည့်ရဟုခဌင်သ-

supervisorctl status callme
callme                           RUNNING   pid 11729, uptime 17 days, 16:58:07

ကောက်ချက်

အတော်လေသ ရဟုပ်ထလေသသလာသပေမယ့် အတလေ့အကဌုံရဟိတဲ့ စီမံခန့်ခလဲသူတစ်ညသက ၎င်သကို အကောင်အထည်ဖော်နိုင်ပဌီသ သူ့ရဲ့အသုံသပဌုသူတလေကို နဟစ်သက်မဟာ သေချာပါတယ်။

ကတိအတိုင်သ၊ github သို့ လင့်ခ်.

မေသခလန်သမျာသ၊ အကဌံပဌုချက်မျာသ - ၎င်သတို့ကို မဟတ်ချက်မျာသတလင် ချန်ထာသခဲ့ပါ။ ထို့အပဌင်၊ ကပေါင်သစပ်မဟု၏တိုသတက်မဟုကိုသင်စိတ်ဝင်စာသပါက၊ ရေသပါ၊ နောက်ဆောင်သပါသတလင်အရာအာသလုံသကိုအသေသစိတ်ဖော်ပဌရန်ကဌိုသစာသပါမည်။

source: www.habr.com

မဟတ်ချက် Add