ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ
నెట్‌వర్క్‌లో IP-PBX ఆస్టరిస్క్ మరియు CRM Bitrix24ని ఏకీకృతం చేయడానికి వివిధ ఎంపికలు ఉన్నాయి, కానీ మేము ఇప్పటికీ మా స్వంతంగా వ్రాయాలని నిర్ణయించుకున్నాము.

కార్యాచరణ పరంగా, ప్రతిదీ ప్రామాణికం:

  • Bitrix24లో క్లయింట్ ఫోన్ నంబర్‌తో ఉన్న లింక్‌పై క్లిక్ చేయడం ద్వారా, ఆస్టరిస్క్ క్లయింట్ ఫోన్ నంబర్‌తో క్లిక్ చేసిన వినియోగదారు యొక్క అంతర్గత నంబర్‌ను కనెక్ట్ చేస్తుంది. Bitrix24లో, కాల్ యొక్క రికార్డ్ రికార్డ్ చేయబడుతుంది మరియు కాల్ ముగింపులో, సంభాషణ యొక్క రికార్డింగ్ పైకి లాగబడుతుంది.
  • ఆస్టరిస్క్ బయటి నుండి కాల్ అందుకుంటుంది - Bitrix24 ఇంటర్‌ఫేస్‌లో మేము ఈ కాల్ ఎవరి నంబర్‌కు వచ్చిందో ఆ ఉద్యోగికి క్లయింట్ కార్డ్‌ని చూపుతాము.
    అటువంటి క్లయింట్ లేకపోతే, మేము కొత్త లీడ్‌ను సృష్టించడం కోసం కార్డ్‌ని తెరుస్తాము.
    కాల్ పూర్తయిన వెంటనే, మేము దీన్ని కార్డ్‌లో ప్రతిబింబిస్తాము మరియు సంభాషణ యొక్క రికార్డింగ్‌ను పైకి లాగుతాము.

కట్ క్రింద నేను మీ కోసం ప్రతిదాన్ని ఎలా సెటప్ చేయాలో మీకు చెప్తాను మరియు మీకు గితుబ్‌కి లింక్‌ను ఇస్తాను - అవును, అవును, దాన్ని తీసుకొని దాన్ని ఉపయోగించండి!

సాధారణ వివరణ

మేము మా ఇంటిగ్రేషన్‌ని CallMe అని పిలిచాము. CallMe అనేది PHPలో వ్రాయబడిన చిన్న వెబ్ అప్లికేషన్.

ఉపయోగించిన సాంకేతికతలు మరియు సేవలు

  • PHP 5.6
  • PHP AMI లైబ్రరీ
  • కంపోజర్
  • Nginx + php-fpm
  • సూపర్వైజర్
  • AMI (ఆస్టరిస్క్ మేనేజర్ ఇంటర్‌ఫేస్)
  • Bitrix webhooks (సరళీకృత REST API అమలు)

ముందస్తు సెట్టింగ్

ఆస్టరిస్క్ ఉన్న సర్వర్‌లో, మీరు వెబ్ సర్వర్‌ను ఇన్‌స్టాల్ చేయాలి (మాకు ఇది 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ని కాన్ఫిగర్ చేద్దాం, మా కాన్ఫిగర్ ఉంది

/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;
		}
}

నేను కాన్ఫిగరేషన్, భద్రతా సమస్యలు, సర్టిఫికేట్ పొందడం మరియు వ్యాసం యొక్క పరిధికి వెలుపల వెబ్ సర్వర్‌ను ఎంచుకోవడం వంటివి వదిలివేస్తాను - దీని గురించి చాలా వ్రాయబడింది. అనువర్తనానికి ఎటువంటి పరిమితులు లేవు, ఇది http మరియు https రెండింటిలోనూ పని చేస్తుంది.

మేము https ఉపయోగిస్తాము, సర్టిఫికేట్‌ను గుప్తీకరిద్దాం.

మీరు ప్రతిదీ సరిగ్గా చేస్తే, లింక్‌పై క్లిక్ చేయడం ద్వారా మీరు ఇలాంటివి చూడాలి

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

Bitrix24ని కాన్ఫిగర్ చేస్తోంది

రెండు వెబ్‌హుక్‌లను క్రియేట్ చేద్దాం.

ఇన్‌కమింగ్ వెబ్‌హుక్.

అడ్మినిస్ట్రేటర్ ఖాతా కింద (ID 1తో), మార్గాన్ని అనుసరించండి: అప్లికేషన్‌లు -> Webhooks -> webhook జోడించండి -> ఇన్‌కమింగ్ webhook

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

స్క్రీన్‌షాట్‌లలో వలె ఇన్‌కమింగ్ వెబ్‌హుక్ యొక్క పారామితులను పూరించండి:

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

మరియు సేవ్ క్లిక్ చేయండి.

సేవ్ చేసిన తర్వాత, Bitrix24 ఇన్‌కమింగ్ వెబ్‌హుక్ యొక్క URLని అందిస్తుంది, ఉదాహరణకు:

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

తుది /ప్రొఫైల్/ లేకుండా మీ URL సంస్కరణను సేవ్ చేయండి - ఇది ఇన్‌కమింగ్ కాల్‌లతో పని చేయడానికి అప్లికేషన్‌లో ఉపయోగించబడుతుంది.

నా దగ్గర ఇది ఉంది https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/

అవుట్‌గోయింగ్ వెబ్‌హుక్.

అప్లికేషన్లు -> Webhooks -> webhook జోడించండి -> అవుట్గోయింగ్ webhook

వివరాలు మళ్లీ స్క్రీన్‌షాట్‌లపై ఉన్నాయి:

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

అధీకృత కోడ్‌ను సేవ్ చేయండి మరియు స్వీకరించండి

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

నా దగ్గర ఇది ఉంది xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. మీరు దీన్ని మీ కోసం కూడా కాపీ చేసుకోవాలి; అవుట్‌గోయింగ్ కాల్‌లు చేయడానికి మీకు ఇది అవసరం.

ముఖ్యం!

ఒక SSL ప్రమాణపత్రం తప్పనిసరిగా Bitrix24 సర్వర్‌లో కాన్ఫిగర్ చేయబడాలి (మీరు letsencrypt ఉపయోగించవచ్చు), లేకుంటే Bitrix api పని చేయదు. మీకు క్లౌడ్ వెర్షన్ ఉంటే, చింతించకండి - ఇది ఇప్పటికే sslని కలిగి ఉంది.

ముఖ్యం!

"ప్రాసెసర్ చిరునామా" ఫీల్డ్ తప్పనిసరిగా ఇంటర్నెట్ నుండి యాక్సెస్ చేయగల చిరునామాను కలిగి ఉండాలి!

మరియు చివరి టచ్‌గా, కాల్‌లు చేయడానికి అప్లికేషన్‌గా మా CallMeOutని ఇన్‌స్టాల్ చేద్దాం (తద్వారా మీరు PBXలోని నంబర్‌పై క్లిక్ చేసినప్పుడు, కాల్‌ను ప్రారంభించే ఆదేశం దూరంగా వెళ్లిపోతుంది).

మెనులో, ఎంచుకోండి: మరిన్ని -> టెలిఫోనీ -> మరిన్ని -> సెట్టింగ్‌లు, “డిఫాల్ట్ అవుట్‌గోయింగ్ కాల్ నంబర్”లో సెట్ చేయండి అప్లికేషన్: CallMeOut మరియు “సేవ్” క్లిక్ చేయండి

ఆస్టరిస్క్ మరియు Bitrix24 యొక్క ఏకీకరణ

నక్షత్రం గుర్తును సెటప్ చేస్తోంది

ఆస్టరిస్క్ మరియు Bitrix24 మధ్య విజయవంతమైన పరస్పర చర్య కోసం, మేము AMI వినియోగదారు కాల్‌మేని 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

తర్వాత, డయల్‌ప్లాన్ ద్వారా అమలు చేయాల్సిన అనేక ఉపాయాలు ఉన్నాయి (మాకు ఇది 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});
}

};

ప్రారంభం నుండి ప్రారంభిద్దాం: ఆదేశం గ్లోబల్స్.

వేరియబుల్ URLరికార్డులు సంభాషణ రికార్డింగ్ ఫైల్‌లకు URLని నిల్వ చేస్తుంది, దీని ప్రకారం Bitrix24 వాటిని కాంటాక్ట్ కార్డ్‌లోకి లాగుతుంది.

తదుపరి మేము మాక్రో మాక్రోలో ఆసక్తి కలిగి ఉన్నాము రికార్డింగ్.

ఇక్కడ, సంభాషణలను రికార్డ్ చేయడంతో పాటు, మేము వేరియబుల్‌ను సెట్ చేస్తాము పూర్తి పేరు.

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 టేబుల్‌కి ఎంట్రీని నిలిపివేయండి (అక్కడ అవసరం లేదు), కాల్ ముగింపు సమయాన్ని సెట్ చేయండి, కాల్ ఫలితం తెలియకపోతే వ్యవధిని లెక్కించండి - సెట్ (వేరియబుల్ కాల్ మెడిస్పోసిషన్) మరియు, చివరి దశ, సిస్టమ్ కర్ల్ ద్వారా బిట్రిక్స్‌కు ప్రతిదీ పంపండి.

మరికొంత మేజిక్ - ఇన్‌కమింగ్ కాల్:

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ని ఇన్‌స్టాల్ చేయమని చెప్పింది కాలర్ ID(పేరు) వేరియబుల్‌కు సమానం CallMeCallerIDName.

CallMeCallerIDName వేరియబుల్ కూడా CallMe అప్లికేషన్ ద్వారా సెట్ చేయబడింది (Bitrix24 కాలర్ నంబర్‌కు పూర్తి పేరుని కలిగి ఉంటే, దానిని ఇలా సెట్ చేయండి కాలర్ ID(పేరు), లేదు - మేము ఏమీ చేయము).

అప్లికేషన్‌ను సెటప్ చేస్తోంది

అప్లికేషన్ సెట్టింగ్‌ల ఫైల్ - /var/www/pbx.vistep.ru/config.php

అప్లికేషన్ పారామితుల వివరణ:

  • కాల్మీడెబగ్ — 1 అయితే, అప్లికేషన్ ద్వారా ప్రాసెస్ చేయబడిన అన్ని ఈవెంట్‌లు లాగ్ ఫైల్‌కు వ్రాయబడతాయి, 0 — మేము ఏమీ వ్రాయము
  • టెక్ - SIP/PJSIP/IAX/మొదలైనవి
  • authToken — Bitrix24 అధికార టోకెన్, అవుట్‌గోయింగ్ webhook అధికార కోడ్
  • bitrixApiUrl - ప్రొఫైల్ లేకుండా ఇన్‌కమింగ్ వెబ్‌హుక్ యొక్క URL/
  • విస్తరణలు - బాహ్య సంఖ్యల జాబితా
  • సందర్భం - కాల్‌ను ప్రారంభించే సందర్భం
  • వినేవారు_సమయం ముగిసింది - నక్షత్రం నుండి ఈవెంట్ ప్రాసెసింగ్ వేగం
  • నక్షత్రం — నక్షత్రం గుర్తుకు కనెక్ట్ చేయడానికి సెట్టింగ్‌లతో కూడిన శ్రేణి:
  • హోస్ట్ — ip లేదా నక్షత్రం సర్వర్ యొక్క హోస్ట్ పేరు
  • పథకం — కనెక్షన్ రేఖాచిత్రం (tcp://, tls://)
  • పోర్ట్ - పోర్ట్
  • <span style="font-family: Mandali; "> యూజర్ పేరు </span> - వినియోగదారు పేరు
  • రహస్య - పాస్వర్డ్
  • కనెక్ట్_సమయం ముగిసింది - అనుసంధాన సమయం సమాప్తం
  • చదవడానికి_సమయం ముగిసింది - చదవడానికి సమయం ముగిసింది

ఉదాహరణ సెట్టింగుల ఫైల్:

 <?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

);

సూపర్‌వైజర్ సెటప్

సూపర్‌వైజర్ ఆస్టరిస్క్ CallMeIn.php నుండి ఈవెంట్ హ్యాండ్లర్ ప్రాసెస్‌ను ప్రారంభించడానికి ఉపయోగించబడుతుంది, ఇది ఇన్‌కమింగ్ కాల్‌లను పర్యవేక్షిస్తుంది మరియు 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 కి లింక్.

ప్రశ్నలు, సూచనలు - దయచేసి వాటిని వ్యాఖ్యలలో రాయండి. అలాగే, ఈ ఏకీకరణ యొక్క అభివృద్ధి ఎలా జరిగిందనే దానిపై మీకు ఆసక్తి ఉంటే, వ్రాయండి మరియు తదుపరి వ్యాసంలో నేను ప్రతిదీ మరింత వివరంగా వెల్లడించడానికి ప్రయత్నిస్తాను.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి