Skip to content

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

{"event": "callInfoRespNum", "uniqueId": "unique_call_id", "intNum": "short_PBX_extension", "extNum": "external_subscriber_number"}

Сіз жауап ретінде аласыз:

{"responsibleNumbers":["short_number_of_responsible","short_number_of_second_responsible(if_any)"]}

НЕМЕСЕ

Егер контактіге қатысты:

  • бақылаушылар жоқ болса
  • қысқа нөмірлер тағайындалмаған болса
  • бақылаушы ретінде шақырылған нөмірге қоңырау шалған қызметкер ("short_PBX_extension")

болса, жауапта келесі болады:

{"error":"no persons responsible"}


Жоғалтылған қоңырау туралы хабарлама

  • Осы әдісті пайдалану үшін интеграция баптауларында — “Record missed calls only by a separate special request” опциясын таңдаңыз:

7TWeHF.png


Интеграцияда көрсетілген 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-reload
sudo systemctl restart crm-asterisk-listener


  • Интеграцияны өшіру үшін орындаңыз:
sudo systemctl stop crm-asterisk-listener
sudo systemctl disable crm-asterisk-listener


  • Барлық қосылу әдістерінде сіз баптаған болуыңыз керек:
    • ішкі қалталар (Extensions)
    • кіріс және шығыс бағыттау (Inbound/Outbound Routes)


Өту