Ցանցում IP-PBX Asterisk-ի և CRM Bitrix24-ի ինտեգրման տարբեր տարբերակներ կան, բայց մենք դեռ որոշեցինք գրել մերը:
Ֆունկցիոնալության առումով ամեն ինչ ստանդարտ է.
Bitrix24-ում կտտացնելով հաճախորդի հեռախոսահամարով հղման վրա՝ Asterisk-ը կապում է այն օգտատիրոջ ներքին համարը, որի անունից սեղմումը կատարվել է հաճախորդի հեռախոսահամարի հետ: Bitrix24-ում ձայնագրվում է զանգի ձայնագրությունը, իսկ զանգի վերջում վեր հանվում է խոսակցության ձայնագրությունը:
Աստղանիշը զանգ է ստանում դրսից. Bitrix24 ինտերֆեյսում մենք հաճախորդի քարտը ցույց ենք տալիս այն աշխատակցին, ում համարին հասել է այս զանգը:
Եթե այդպիսի հաճախորդ չլինի, մենք կբացենք նոր առաջատարի ստեղծման քարտը:
Զանգն ավարտվելուն պես մենք դա արտացոլում ենք քարտի վրա և վեր հանում խոսակցության ձայնագրությունը:
Կտրվածքի տակ ես ձեզ կասեմ, թե ինչպես կարգավորել ամեն ինչ ձեզ համար և ձեզ հղում տալ github-ին. այո, այո, վերցրեք այն և օգտագործեք այն:
Ընդհանուր նկարագրություն
Մենք մեր ինտեգրումն անվանեցինք CallMe: CallMe-ը փոքր վեբ հավելված է, որը գրված է PHP-ով:
Ես կթողնեմ կազմաձևի վերլուծությունը, անվտանգության խնդիրները, վկայական ստանալը և նույնիսկ վեբ սերվերի ընտրությունը հոդվածի շրջանակից դուրս. այս մասին շատ է գրվել: Հավելվածը սահմանափակումներ չունի, այն աշխատում է ինչպես http-ով, այնպես էլ https-ով:
Մենք օգտագործում ենք https, եկեք գաղտնագրենք վկայականը:
Եթե ամեն ինչ ճիշտ եք արել, ապա սեղմելով հղման վրա դուք պետք է տեսնեք նման բան
Bitrix24-ի կարգավորում
Եկեք ստեղծենք երկու վեբ-կեռիկներ:
Մուտքային վեբ կեռիկ:
Ադմինիստրատորի հաշվի տակ (id 1-ով) հետևեք ուղուն՝ Applications -> Webhooks -> Add webhook -> Incoming webhook
Լրացրեք մուտքային վեբ-կապիկի պարամետրերը, ինչպես սքրինշոթներում.
Եվ սեղմեք պահպանել:
Պահելուց հետո Bitrix24-ը կտրամադրի մուտքային վեբ-կապիկի URL-ը, օրինակ՝
Պահպանեք URL-ի ձեր տարբերակը առանց վերջնական /պրոֆիլի/-ի, այն կօգտագործվի հավելվածում՝ մուտքային զանգերի հետ աշխատելու համար:
Ես ունեմ սա https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Ելքային վեբ կեռիկ:
Ծրագրեր -> Webhooks -> Add webhook -> Outgoing webhook
Մանրամասները կրկին սքրինշոթերում են.
Պահպանեք և ստացեք թույլտվության կոդը
Ես ունեմ սա xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Դուք նաև պետք է պատճենեք այն ձեզ համար, այն ձեզ անհրաժեշտ է ելքային զանգեր կատարելու համար:
Կարեւոր!
SSL վկայագիրը պետք է կազմաձևված լինի Bitrix24 սերվերի վրա (կարող եք օգտագործել letsencrypt), հակառակ դեպքում Bitrix api-ն չի աշխատի։ Եթե ունեք ամպային տարբերակ, մի անհանգստացեք, այն արդեն ունի ssl:
Կարեւոր!
«Պրոցեսորի հասցե» դաշտը պետք է պարունակի ինտերնետից հասանելի հասցե:
Եվ որպես վերջին հպում, եկեք տեղադրենք մեր CallMeOut-ը որպես զանգեր կատարելու հավելված (որպեսզի PBX-ի համարի վրա սեղմելիս զանգի սկզբնավորման հրամանը կթռչի):
անջատել մուտքը CDR աղյուսակի այս ընդլայնման համար (այն այնտեղ անհրաժեշտ չէ), սահմանել զանգի ավարտի ժամանակը, հաշվարկել տևողությունը, եթե զանգի արդյունքը հայտնի չէ, սահմանել (փոփոխական CallMeDISPOSITION) և, վերջին քայլը, ուղարկեք ամեն ինչ Bitrix-ին համակարգի curl-ի միջոցով:
Եվ մի փոքր ավելի շատ կախարդություն՝ մուտքային զանգ.
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();
}
Նա ասում է PBX-ին տեղադրել Զանգողի ID (անուն) հավասար է փոփոխականին CallMeCallerIDName.
CallMeCallerIDName փոփոխականն ինքնին, իր հերթին, սահմանվում է CallMe հավելվածի կողմից (եթե Bitrix24-ն ունի զանգողի համարի լրիվ անվանումը, սահմանեք այն որպես Զանգողի ID (անուն), ոչ, մենք ոչինչ չենք անի):
հյուրընկալող — Աստղանիշ սերվերի ip կամ հոսթի անունը
սխեմա - կապի դիագրամ (tcp://, tls://)
նավահանգիստ - նավահանգիստ
օգտագործողի անունը - Օգտագործողի անունը
գաղտնիք - գաղտնաբառը
connect_timeout - կապի ժամանակի ավարտ
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
);
Վերահսկիչի կարգավորում
Supervisor-ն օգտագործվում է Asterisk CallMeIn.php-ից իրադարձությունների մշակման գործընթացը գործարկելու համար, որը վերահսկում է մուտքային զանգերը և փոխազդում Bitrix24-ի հետ (ցույց տալ քարտը, թաքցնել քարտը և այլն):
Հարցեր, առաջարկություններ - խնդրում ենք թողնել դրանք մեկնաբանություններում: Բացի այդ, եթե ձեզ հետաքրքրում է, թե ինչպես է ընթացել այս ինտեգրման զարգացումը, գրեք, իսկ հաջորդ հոդվածում ես կփորձեմ ամեն ինչ ավելի մանրամասն բացահայտել։