ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு
நெட்வொர்க்கில் IP-PBX ஆஸ்டரிஸ்க் மற்றும் CRM Bitrix24 ஐ ஒருங்கிணைக்க வெவ்வேறு விருப்பங்கள் உள்ளன, இருப்பினும் நாங்கள் சொந்தமாக எழுத முடிவு செய்தோம்.

செயல்பாட்டு ரீதியாக, எல்லாம் நிலையானது:

  • Bitrix24 இல் உள்ள கிளையண்டின் ஃபோன் எண்ணுடன் உள்ள இணைப்பைக் கிளிக் செய்வதன் மூலம், Asterisk ஆனது வாடிக்கையாளரின் தொலைபேசி எண்ணுடன் இந்தக் கிளிக் செய்யப்பட்ட பயனரின் உள் எண்ணை இணைக்கிறது. Bitrix24 இல், அழைப்பின் பதிவு பதிவு செய்யப்படுகிறது, மேலும் அழைப்பின் முடிவில், உரையாடல் பதிவு மேலே இழுக்கப்படும்.
  • வெளியில் இருந்து ஆஸ்டரிஸ்கில் ஒரு அழைப்பு வருகிறது - Bitrix24 இடைமுகத்தில், இந்த அழைப்பு யாருடைய எண்ணுக்கு வந்ததோ அந்த ஊழியரிடம் கிளையன்ட் கார்டைக் காண்பிப்போம்.
    அத்தகைய கிளையன்ட் இல்லை என்றால், புதிய முன்னணி உருவாக்க கார்டைத் திறக்கவும்.
    அழைப்பு முடிந்தவுடன், இதை கார்டில் பிரதிபலித்து உரையாடலின் பதிவை மேலே இழுப்போம்.

வெட்டுக்கு கீழ், உங்களுக்காக எல்லாவற்றையும் எவ்வாறு அமைப்பது மற்றும் கிதுப்பிற்கான இணைப்பைக் கொடுப்பது எப்படி என்று நான் உங்களுக்குச் சொல்கிறேன் - ஆம், ஆம், அதை எடுத்துப் பயன்படுத்தவும்!

பொது விளக்கம்

எங்கள் ஒருங்கிணைப்பை CallMe என்று அழைத்தோம். CallMe என்பது PHP இல் எழுதப்பட்ட ஒரு சிறிய வலை பயன்பாடு ஆகும்.

பயன்படுத்திய தொழில்நுட்பங்கள் மற்றும் சேவைகள்

  • PHP, 5.6
  • PHP AMI நூலகம்
  • இசையமைப்பாளர்
  • nginx + php fpm
  • மேற்பார்வையாளர்
  • AMI (நட்சத்திர மேலாளர் இடைமுகம்)
  • பிட்ரிக்ஸ் வெப்ஹூக்ஸ் (எளிமைப்படுத்தப்பட்ட 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 ஐ உள்ளமைக்கவும், எங்கள் 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;
		}
}

கட்டமைப்பின் பகுப்பாய்வு, பாதுகாப்பு சிக்கல்கள், சான்றிதழைப் பெறுதல் மற்றும் கட்டுரையின் எல்லைக்கு வெளியே ஒரு வலை சேவையகத்தைத் தேர்ந்தெடுப்பது போன்றவற்றை நான் விட்டுவிடுகிறேன் - இதைப் பற்றி நிறைய எழுதப்பட்டுள்ளது. பயன்பாட்டிற்கு எந்த கட்டுப்பாடுகளும் இல்லை, இது http மற்றும் https இரண்டிலும் வேலை செய்கிறது.

எங்களிடம் https உள்ளது, சான்றிதழை என்க்ரிப்ட் செய்வோம்.

நீங்கள் எல்லாவற்றையும் சரியாகச் செய்திருந்தால், இணைப்பைக் கிளிக் செய்வதன் மூலம் இதுபோன்ற ஒன்றை நீங்கள் பார்க்க வேண்டும்

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

Bitrix24 ஐ கட்டமைக்கிறது

இரண்டு வெப்ஹூக்குகளை உருவாக்குவோம்.

உள்வரும் வெப்ஹூக்.

நிர்வாகி கணக்கின் கீழ் (ஐடி 1 உடன்) பாதையில் செல்லவும்: பயன்பாடுகள் -> வெப்ஹூக்ஸ் -> வெப்ஹூக்கைச் சேர் -> உள்வரும் வெப்ஹூக்

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

ஸ்கிரீன்ஷாட்களில் உள்ளதைப் போல உள்வரும் வெப்ஹூக்கின் அளவுருக்களை நிரப்பவும்:

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

மற்றும் சேமி என்பதைக் கிளிக் செய்யவும்.

சேமித்த பிறகு, Bitrix24 உள்வரும் webhook இன் URL ஐ வழங்கும், எடுத்துக்காட்டாக:

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

URL இன் உங்கள் பதிப்பை /profile/ இல்லாமல் சேமிக்கவும் - இது உள்வரும் அழைப்புகளுடன் வேலை செய்ய பயன்பாட்டில் பயன்படுத்தப்படும்.

நான் வைத்திருக்கிறேன் https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/

வெளிச்செல்லும் வெப்ஹூக்.

பயன்பாடுகள் -> Webhooks -> Webhook சேர் -> Outgoing Webhook

விவரங்கள் ஸ்கிரீன்ஷாட்டில் உள்ளன:

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

அங்கீகரிப்புக் குறியீட்டைச் சேமித்து பெறவும்

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

நான் வைத்திருக்கிறேன் xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. அதை நீங்களே நகலெடுக்க வேண்டும், வெளிச்செல்லும் அழைப்புகளைச் செய்ய இது தேவை.

முக்கியம்!

Bitrix24 சேவையகத்தில் ssl சான்றிதழ் கட்டமைக்கப்பட வேண்டும் (நீங்கள் letsencrypt ஐப் பயன்படுத்தலாம்), இல்லையெனில் BitrixXNUMX api இயங்காது. உங்களிடம் கிளவுட் பதிப்பு இருந்தால், கவலைப்பட வேண்டாம் - ssl ஏற்கனவே உள்ளது.

முக்கியம்!

"செயலியின் முகவரி" புலத்தில், இணையத்திலிருந்து அணுகக்கூடிய ஒரு முகவரியைக் குறிப்பிட வேண்டும்!

இறுதித் தொடுதலுடன், அழைப்புகளைச் செய்வதற்கான ஒரு பயன்பாடாக எங்கள் CallMeOut ஐ நிறுவுவோம் (இதனால் PBX இல் உள்ள எண்ணைக் கிளிக் செய்வதன் மூலம், அழைப்பைத் தொடங்க ஒரு கட்டளை பறக்கும்).

மெனுவில், தேர்ந்தெடுக்கவும்: மேலும் -> தொலைபேசி -> மேலும் -> அமைப்புகள், "இயல்புநிலையாக வெளிச்செல்லும் அழைப்புகளுக்கான எண்" பயன்பாடு: CallMeOut மற்றும் "சேமி" என்பதைக் கிளிக் செய்யவும்.

ஆஸ்டரிஸ்க் மற்றும் பிட்ரிக்ஸ்24 இன் ஒருங்கிணைப்பு

நட்சத்திர அமைப்பு

Asterisk மற்றும் Bitrix24 இடையேயான வெற்றிகரமான தொடர்புக்கு, நாங்கள் callme 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

அடுத்து, 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});
}

};

ஆரம்பத்தில் இருந்து ஆரம்பிக்கலாம்: உத்தரவு குளோபல்ஸ்.

மாறி 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 நிறுவு என்கிறார் அழைப்பாளர் ஐடி(பெயர்) மாறி CallMeCallerIDName.

CallMeCallerIDName மாறியே, CallMe பயன்பாட்டால் அமைக்கப்படுகிறது (Bitrix24 ஆனது அழைப்பாளரின் எண்ணுக்கு முழுப் பெயரைக் கொண்டிருந்தால், அதை இவ்வாறு அமைப்போம் அழைப்பாளர் ஐடி(பெயர்), இல்லை - நாங்கள் எதுவும் செய்ய மாட்டோம்).

விண்ணப்ப அமைப்பு

பயன்பாட்டு அமைப்புகள் கோப்பு - /var/www/pbx.vistep.ru/config.php

பயன்பாட்டு அளவுருக்களின் விளக்கம்:

  • CallMeDEBUG - 1 என்றால், பயன்பாட்டால் செயலாக்கப்பட்ட அனைத்து நிகழ்வுகளும் பதிவு கோப்பில் எழுதப்படும், 0 - நாங்கள் எதையும் எழுத மாட்டோம்
  • தொழில்நுட்ப SIP/PJSIP/IAX/etc
  • authToken — Bitrix24 அங்கீகார டோக்கன், வெளிச்செல்லும் webhook அங்கீகார குறியீடு
  • bitrixApiUrl - சுயவிவரம் இல்லாமல் உள்வரும் வெப்ஹூக்கின் URL/
  • நீட்டிப்புகள் - வெளிப்புற எண்களின் பட்டியல்
  • சூழல் - அழைப்பு தோற்றத்திற்கான சூழல்
  • கேட்பவர்_நேரம் முடிந்தது - நட்சத்திரக் குறியிலிருந்து நிகழ்வு செயலாக்க வேகம்
  • நட்சத்திர குறி - நட்சத்திரத்துடன் இணைப்பு அமைப்புகளுடன் கூடிய வரிசை:
  • தொகுப்பாளர் - ஐபி அல்லது நட்சத்திர சர்வரின் ஹோஸ்ட்பெயர்
  • திட்டம் - இணைப்பு வரைபடம் (tcp://, tls://)
  • துறைமுக - துறைமுகம்
  • பயனர்பெயர் - பயனர் பெயர்
  • இரகசிய - கடவுச்சொல்
  • இணைப்பு_நேரம் முடிந்தது - இணைப்பு நேரம் முடிந்தது
  • படிக்க_நேரம் முடிந்தது - படிக்க நேரம் முடிந்தது

எடுத்துக்காட்டு அமைப்புகள் கோப்பு:

 <?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 இலிருந்து நிகழ்வு ஹேண்ட்லர் செயல்முறையைத் தொடங்க மேற்பார்வையாளர் பயன்படுத்தப்படுகிறார், இது உள்வரும் அழைப்புகளைக் கண்காணிக்கிறது மற்றும் 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

கருத்தைச் சேர்