FreePBX
FreePBX — компанияда қоңырауларды басқаруға мүмкіндік беретін тегін бағдарламалық қамтамасыз ету telephone system.
Ерекшеліктер
- Интернет арқылы телефон қоңыраулары: VoIP технологиясын қолданады, дәстүрлі телефон желісі орнына интернет арқылы қоңырау шалу мүмкіндігі.
- Автоматты қоңырауларды тарату: кіріс қоңырауларды дұрыс нөмірлерге немесе бөлімшелерге автоматты түрде бағыттауға көмектеседі.
- Интерактивті дауыстық мәзірлер (IVR): қоңырау шалушы тиісті бөлімшені таңдау үшін пернелерді басу арқылы мәзірден өтуіне мүмкіндік береді.
- Дауыстық пошта: қоңырауға жауап берілмесе, FreePBX хабарды жазып алып кейін тыңдауға болады.
- Конференция қоңыраулары: бірнеше адамның бір уақытта қатысуына мүмкіндік беретін конференцияларды ұйымдастыру.
- Қоңырауларды жазу: телефон әңгімелерін кейінгі тыңдау немесе талдау үшін жазып алуға болады.
- Басқа жүйелермен интеграция: FreePBX әртүрлі CRM жүйелерімен, оның ішінде Planfix-пен интеграциялануы мүмкін.
Байланыс
FreePBX-ты Planfix-пен екі тәсілмен қосуға болады:
Ескерту: Planfix командасы клиенттің жағында Asterisk-ті конфигурацияламайды және осыған қатысты консультация бермейді.
Planfix телефония үшін API
- Осы әдісті қолдана отырып, сіз тек Planfix-те қоңырау оқиғаларын ала аласыз, яғни қоңырау болғанда белсенді Planfix қойындысында қоңырау картасы пайда болады.
- Planfix-тен қоңырау жасау мүмкіндігі жоқ.
- Қоңырау жазбаларын алу үшін қосымша apache/nginx баптауларын жасауыңыз қажет (5-қадам).
1-қадам
Серверде /etc/asterisk/extensions_override_freepbx.conf файлын өңдеп, оның ішінде келесі 3 контексттің болуын қамтамасыз етіңіз (мысал файл):
- [macro-dialout-one-predial-hook]
- [macro-dialout-trunk-predial-hook]
- [macro-hangupcall]
[macro-hangupcall] үшін дәл дәлме-дәл үлгі бірдей болуы міндетті емес.
extensions_additional.conf файлын ашып, оның ішінен [macro-hangupcall] контекстін тауып — көшіріп — өте басына келесі жолды қосыңыз:
exten => s,1,Macro(hangupcall-send-post)
2-қадам
Барлық контексттерді мысалынан extension_custom.conf-ке көшіріңіз. Бұл әрекетті FreePBX интерфейсі арқылы да орындауға болады.
3-қадам
globals_custom.conf файлына 3 жол қосып, {…} орнына сәйкес мәндерді қойыңыз:
- PBX_URL = {…} — сіздің PBX-тің URL-ы
- PF_URL = {…} — сұрауларды қабылдайтын адрес
- PF_KEY = {…} — Planfix авторизация токені
4-қадам
- Planfix-та Account management — Integrations — Virtual PBXs — Planfix API for telephony бөліміне өтіңіз.
- PBX мекенжайын толтырыңыз, сол арқылы Planfix сол сайттан/адрестен келетін оқиғаларды қабылдай алатынын біледі.
5-қадам
Жазбаларды алу үшін оларды веб-сервер арқылы сырттан қолжетімді ету керек. FreePBX-те қосылған Apache арқылы мұны орындау үшін жазбалар қалтасына сілтеме жасаңыз. Қалтаның дұрыс меншік иесі, тобы және құқықтары — 775 болуы тиіс.
- Сілтеме құрыңыз:
ln -s /var/spool/asterisk/monitor /var/www/html/monitor
- Құқықтар мен меншік иесін өзгертіңіз:
chmod -R 775 /var/www/html/monitor/chown -R asterisk:asterisk /var/www/html/monitor/
Егер Apache жоқ жинақ қолдансаңыз — өз веб-серверіңізге ұқсас баптауды жасаңыз.
FreePBX интеграциясы
(FreePBX 16+ / Asterisk 18+)
Бастамас бұрын extensions_override_freepbx.conf файлында келесі енгізбені жасаңыз:
[macro-dialout-trunk-predial-hook]
exten => s,1,Gosub(planfix-mark-outbound,s,1)
same => n,MacroExit()
[planfix-mark-outbound]
exten => s,1,NoOp(Outgoing call from ${CALLERID(all)} to ${EXTEN})
same => n,Set(__CRM_DIRECTION=OUTBOUND)
same => n,NoOp(Setting CRM_DIRECTION=${CRM_DIRECTION})
same => n,Return()
[macro-dialout-one-predial-hook]
exten => s,1,Gosub(planfix-mark-inbound,s,1)
same => n,MacroExit()
[macro-dial-ringall-predial-hook]
exten => s,1,Gosub(planfix-mark-inbound,s,1)
same => n,MacroExit()
[planfix-mark-inbound]
exten => s,1,NoOp(Incoming call to ${EXTEN} from ${CALLERID(all)})
same => n,Set(__CRM_DIRECTION=INBOUND)
same => n,NoOp(Setting CRM_DIRECTION=${CRM_DIRECTION})
same => n,Return()
1-қадам
FreePBX-те пайдаланушы қосыңыз: Settings — Asterisk REST Interface Users — Add User.
Келесі өрістерді толтырыңыз:
- REST Interface User Name: пайдаланушы аты
- REST Interface User Password: пароль
- Password Type: Plain Text
- Read Only: No
Көшіріп алыңыз (4-қадамда қажет) және сақтаңыз.
2-қадам
Manager қосыңыз: Settings — Asterisk Manager Users — Add Manager:
- Name: атауы
- Secret: әдепкі қалдырыңыз немесе өзіңіз орнатыңыз
- Қалған баптауларды өзгерткен ұтымды емес.
Көшіріп алыңыз (4 және 6-қадамдарда қажет) және сақтаңыз.
3-қадам
Оң жақ жоғарғы бұрыштағы Apply Config батырмасын басып баптауларды сақтаңыз.
4-қадам
Planfix-та Primary Account Admin — Integrations — Virtual PBXs — FreePBX бөліміне өтіңіз.
Төмендегілерді толтырыңыз:
- PBX address: сіздің PBX-тің URL-ы (ARI қолжетімді протокол мен портты қоса)
- ARI User Name: 1-қадамдағы Name
- ARI User Password: 1-қадамдағы Password
Қабылдаушы скрипт URL-ын көшіріп, интеграцияны сақтаңыз.
5-қадам
Серверде:
- /var/spool/asterisk/ ішінде monitor қалтасына recording атты символдық сілтеме жасаңыз (сол каталогта). Команда:
ln –s /var/spool/asterisk/monitor /var/spool/asterisk/recording
6-қадам
- /etc/asterisk/ қалтасына өтіңіз
- Егер scripts қалтасы болмаса, оны жасаңыз
- scripts қалтасының ішінде ami_listener.py файлын жасаңыз
7-қадам
ami_listener.py файлын мысалына сәйкес толтырыңыз, мыналарды ауыстырыңыз:
- Your_user_name: 2-қадамдағы Name-пен
- Your_user_password: 2-қадамдағы Secret-пен
- Your_planfix_endpoint_url: 4-қадамнан алынған қабылдаушы скрипт URL-пен
8-қадам
Файлға орындалатын құқық беріңіз:
chmod +x /etc/asterisk/scripts/ami_listener.py
9-қадам
- /lib/systemd/system/ қалтасына өтіңіз
- crm-asterisk-listener.service атты файл жасаңыз
- crm-asterisk-listener.service файлын мысалына сәйкес толтырыңыз
10-қадам
Файлды автожүктелуге қосып, сервисті іске қосыңыз:
sudo systemctl enable crm-asterisk-listener
sudo systemctl start crm-asterisk-listener
Asterisk-тің ескі нұсқаларымен жұмыс
Asterisk 13+ үшін конфигурация файлдарына қосымша қасиеттер қосу қажет.
/etc/asterisk/cdr.conf үшін
[general] enable = yes batch = no unanswered = yes
/etc/asterisk/cdr_manager.conf үшін
[general] enable = yes unanswered = yes
Ескерту: қоңыраулар жазбаларын алу тек Asterisk 14+ үшін жұмыс істейтінін ескеріңіз.
Қосымша әдістер
Сіз осы әдістерді өзіңіз dialplan-нан шақыра аласыз.
Бақылаушылар туралы ақпарат алу
Интеграцияда көрсетілген URL-ға POST сұрауын жіберіп, келесі мәліметтерді ұсына аласыз:
Content-type: application/json
Сіз жауап ретінде аласыз:
НЕМЕСЕ
Егер контактіге қатысты:
- бақылаушылар жоқ болса
- қысқа нөмірлер тағайындалмаған болса
- бақылаушы ретінде шақырылған нөмірге қоңырау шалған қызметкер ("short_PBX_extension")
болса, жауапта келесі болады:
Жоғалтылған қоңырау туралы хабарлама
- Осы әдісті пайдалану үшін интеграция баптауларында — “Record missed calls only by a separate special request” опциясын таңдаңыз:
Интеграцияда көрсетілген URL-ға POST сұрауын жіберіп, келесі мәліметтерді ұсына аласыз:
Content-type: application/json
{"event": "callMissedNotify", "uniqueId": "unique_call_id", "intNum": "short_PBX_extension_to_receive_missed_call_notification", "extNum": "external_subscriber_number"}
Егер сол қысқа нөмірге ие қызметкер бар болса, ол жоғалтылған қоңырау туралы хабарлама алады.
POST сұрауына қайтарылатын жауап бос болады.
Жұмыс істеу туралы ескертулер
- Скрипт жұмыс істеуі үшін "panoramisk" кітапханасы орнатылғанына көз жеткізіңіз. Оны 'pip install panoramisk' көмегімен орнатуға болады.
- Егер скрипт дереу басталмаса немесе ami_listener-ге өзгерістер енгізгеннен кейін командаларды орындасаңыз, келесі командалар көмектесуі мүмкін:
sudo systemctl daemon-reloadsudo systemctl restart crm-asterisk-listener
- Интеграцияны өшіру үшін орындаңыз:
sudo systemctl stop crm-asterisk-listenersudo systemctl disable crm-asterisk-listener
- Барлық қосылу әдістерінде сіз баптаған болуыңыз керек:
- ішкі қалталар (Extensions)
- кіріс және шығыс бағыттау (Inbound/Outbound Routes)