එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

මා වැනි ඔබගෙන් බොහෝ දෙනෙකුට අද්විතීය දෙයක් කිරීමට අදහසක් ඇති බව නිසැකය. මෙම ලිපියෙන් මම PBX සංවර්ධනය කිරීමේදී මුහුණ දීමට සිදු වූ තාක්ෂණික ගැටළු සහ විසඳුම් විස්තර කරමි. සමහර විට මෙය යමෙකුට තමන්ගේම අදහස තීරණය කිරීමට සහ යමෙකු හොඳින් ගමන් කළ මාර්ගය අනුගමනය කිරීමට උපකාරී වනු ඇත, මන්ද මම ද පුරෝගාමීන්ගේ අත්දැකීම් වලින් ප්‍රයෝජන ලැබූ බැවිනි.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

අදහස සහ ප්රධාන අවශ්යතා

ඒ සියල්ල ආරම්භ වූයේ ආදරය සමඟිනි තරු ලකුණු (සන්නිවේදන යෙදුම් ගොඩනැගීම සඳහා රාමුව), දුරකථන සහ ස්ථාපන ස්වයංක්රීයකරණය freepbx (වෙබ් අතුරුමුහුණත සඳහා තරු ලකුණු) සමාගමේ අවශ්‍යතා විශේෂතා නොමැතිව සහ හැකියාවන් තුළට වැටුනේ නම් freepbx - හැම දෙයක්ම නියමයි. සම්පූර්ණ ස්ථාපනය පැය XNUMXක් ඇතුළත සිදු වූ අතර, සමාගමට වින්‍යාසගත PBX, පරිශීලක-හිතකාමී අතුරු මුහුණතක් සහ කෙටි පුහුණුවක් සහ අවශ්‍ය නම් සහාය ලැබුණි.

නමුත් වඩාත්ම සිත්ගන්නා කාර්යයන් සම්මත නොවන අතර පසුව එය එතරම් විශ්මයජනක නොවීය. තරු ලකුණු බොහෝ දේ කළ හැකිය, නමුත් වෙබ් අතුරු මුහුණත වැඩ පිළිවෙලට තබා ගැනීමට, එය බොහෝ වාරයක් වැඩි කාලයක් ගත කිරීමට අවශ්ය විය. එබැවින් කුඩා විස්තරයක් ඉතිරි PBX ස්ථාපනය කිරීමට වඩා වැඩි කාලයක් ගතවනු ඇත. කාරණය වන්නේ වෙබ් අතුරු මුහුණතක් ලිවීමට බොහෝ කාලයක් ගත වීම නොවේ, නමුත් කාරණය වන්නේ වාස්තු විද්‍යාත්මක ලක්ෂණ වල ය. freepbx. ගෘහ නිර්මාණ ශිල්පයේ ප්රවේශයන් සහ ක්රම freepbx php4 අවස්ථාවේ සකස් කරන ලද අතර, ඒ මොහොතේ දැනටමත් php5.6 තිබී ඇති අතර එමඟින් සියල්ල සරල හා පහසු කළ හැකිය.

අවසාන පිදුරු වූයේ රූප සටහනක ස්වරූපයෙන් චිත්‍රක ඩයල්ප්ලෑන් ය. මම මේ වගේ දෙයක් ගොඩනඟා ගැනීමට උත්සාහ කළ විට freepbx, මම එය සැලකිය යුතු ලෙස නැවත ලිවිය යුතු බවත්, අලුත් දෙයක් ගොඩ නැගීම පහසු වනු ඇති බවත් මම තේරුම් ගතිමි.

ප්රධාන අවශ්යතා වූයේ:

  • සරල සැකසුම, නවක පරිපාලකයෙකුට පවා ප්‍රවේශ විය හැකිය. මේ අනුව, සමාගම්වලට අපගේ පැත්තෙන් PBX නඩත්තුව අවශ්‍ය නොවේ,
  • ප්‍රමාණවත් කාලයක් තුළ කාර්යයන් විසඳන පරිදි පහසු වෙනස් කිරීම,
  • PBX සමඟ ඒකාබද්ධ වීමේ පහසුව. යූ freepbx සැකසුම් වෙනස් කිරීම සඳහා API නොතිබුණි, i.e. ඔබට, උදාහරණයක් ලෙස, තෙවන පාර්ශවීය යෙදුමකින් කණ්ඩායම් හෝ හඬ මෙනු සෑදිය නොහැක, API ම පමණි තරු ලකුණු,
  • opensource - ක්‍රමලේඛකයින් සඳහා මෙය සේවාදායකයාගේ වෙනස් කිරීම් සඳහා අතිශයින් වැදගත් වේ.

වේගවත් සංවර්ධනය පිළිබඳ අදහස වූයේ සියලුම ක්‍රියාකාරීත්වය වස්තු ස්වරූපයෙන් මොඩියුල වලින් සමන්විත වීමයි. සියලුම වස්තූන් සඳහා පොදු මාපිය පන්තියක් තිබිය යුතුය, එයින් අදහස් වන්නේ සියලුම ප්‍රධාන කාර්යයන් වල නම් දැනටමත් දන්නා අතර එබැවින් දැනටමත් පෙරනිමි ක්‍රියාත්මක කිරීම් තිබේ. ඔබට සොයා ගත හැකි තන්තු යතුරු සහිත ආශ්‍රිත අරා ආකාරයේ තර්ක ගණන නාටකාකාර ලෙස අඩු කිරීමට වස්තු ඔබට ඉඩ සලසයි. freepbx සම්පූර්ණ ශ්‍රිතය සහ කැදලි ශ්‍රිත පරීක්ෂා කිරීමෙන් එය කළ හැකි විය. වස්තූන් සම්බන්ධයෙන්, banal autocompletion සියලු ගුණාංග පෙන්වනු ඇත, සහ පොදුවේ ජීවිතය බොහෝ වාරයක් සරල කරනු ඇත. තවද, උරුමය සහ නැවත අර්ථ දැක්වීම දැනටමත් වෙනස් කිරීම් සමඟ බොහෝ ගැටලු විසඳයි.

නැවත වැඩ කිරීමේ කාලය මන්දගාමී වූ සහ වළක්වා ගැනීම වටී වූ ඊළඟ දෙය නම් අනුපිටපත් කිරීමයි. සේවකයෙකු ඇමතීමට වගකිව යුතු මොඩියුලයක් තිබේ නම්, සේවකයෙකුට ඇමතුමක් යැවීමට අවශ්‍ය අනෙකුත් සියලුම මොඩියුල එය භාවිතා කළ යුතු අතර, ඔවුන්ගේම පිටපත් නිර්මාණය නොකළ යුතුය. එබැවින්, ඔබට යමක් වෙනස් කිරීමට අවශ්‍ය නම්, ඔබට වෙනස් කිරීමට සිදු වන්නේ එක් ස්ථානයක පමණක් වන අතර “එය ක්‍රියා කරන ආකාරය” සෙවීම එකම ස්ථානයක සිදු කළ යුතු අතර සම්පූර්ණ ව්‍යාපෘතිය පුරාවටම සෙවිය නොහැක.

පළමු අනුවාදය සහ පළමු දෝෂ

පළමු මූලාකෘතිය වසරක් ඇතුළත සූදානම් විය. සැලසුම් කර ඇති පරිදි සම්පූර්ණ PBX මොඩියුලර් වූ අතර මොඩියුලවලට ඇමතුම් සැකසීම සඳහා නව ක්‍රියාකාරිත්වය එක් කිරීමට පමණක් නොව, වෙබ් අතුරු මුහුණත වෙනස් කිරීමටද හැකි විය.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය
ඔව්, එවැනි යෝජනා ක්‍රමයක ස්වරූපයෙන් ඩයල්ප්ලෑන් එකක් තැනීමේ අදහස මගේ නොවේ, නමුත් එය ඉතා පහසු වන අතර මම ඒ සඳහාම කළෙමි තරු ලකුණු.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

මොඩියුලයක් ලිවීමෙන්, ක්‍රමලේඛකයින්ට දැනටමත්:

  • ඇමතුම් සැකසීම සඳහා ඔබේම ක්‍රියාකාරීත්වයක් සාදන්න, එය රූප සටහනේ මෙන්ම වම් පස ඇති මූලද්‍රව්‍ය මෙනුවේ තැබිය හැකිය,
  • වෙබ් අතුරුමුහුණත සඳහා ඔබේම පිටු සාදන්න සහ පවතින පිටු වලට ඔබේ සැකිලි එක් කරන්න (පිටු සංවර්ධකයා මේ සඳහා සපයා ඇත්නම්),
  • ප්‍රධාන සැකසුම් පටිත්ත වෙත ඔබගේ සැකසීම් එක් කරන්න හෝ ඔබගේම සැකසුම් පටිත්තක් සාදන්න,
  • ක්‍රමලේඛකයාට පවතින මොඩියුලයකින් උරුම වීමට, ක්‍රියාකාරීත්වයේ කොටසක් වෙනස් කිරීමට සහ එය නව නමක් යටතේ ලියාපදිංචි කිරීමට හෝ මුල් මොඩියුලය ප්‍රතිස්ථාපනය කිරීමට හැකිය.

උදාහරණයක් ලෙස, ඔබට ඔබේම හඬ මෙනුවක් සාදාගත හැකි ආකාරය මෙයයි:

......
class CPBX_MYIVR extends CPBX_IVR
{
 function __construct()
 {
 parent::__construct();
 $this->_module = "myivr";
 }
}
.....
$myIvrModule = new CPBX_MYIVR();
CPBXEngine::getInstance()->registerModule($myIvrModule,__DIR__); //Зарегистрировать новый модуль
CPBXEngine::getInstance()->registerModuleExtension($myIvrModule,'ivr',__DIR__); //Подменить существующий модуль

පළමු සංකීර්ණ ක්‍රියාත්මක කිරීම් පළමු අභිමානය සහ පළමු බලාපොරොත්තු සුන්වීම් ගෙන ආවේය. එය ක්‍රියාත්මක වීම ගැන මම සතුටු වුණා, මට දැනටමත් ප්‍රධාන අංග ප්‍රතිනිෂ්පාදනය කිරීමට හැකි වීම freepbx. යෝජනා ක්‍රමයේ අදහසට මිනිසුන් කැමති වීම ගැන මම සතුටු වුණා. සංවර්ධනය සරල කිරීමට තවමත් බොහෝ විකල්ප ඇත, නමුත් ඒ වන විටත් සමහර කාර්යයන් දැනටමත් පහසු වෙමින් පැවතුනි.

PBX වින්‍යාසය වෙනස් කිරීම සඳහා වූ API බලාපොරොත්තු සුන් කරවන්නක් විය - ප්‍රතිඵලය අපට අවශ්‍ය දේ නොවීය. මම එහි ඇති මූලධර්මයම ගත්තෙමි freepbx, Apply බොත්තම ක්ලික් කිරීමෙන්, සම්පූර්ණ වින්‍යාසය ප්‍රතිනිර්මාණය කර මොඩියුල නැවත ආරම්භ වේ.

එය මේ වගේ ය:

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය
*Dialplan යනු ඇමතුමක් සකසන රීතියකි (ඇල්ගොරිතම).

නමුත් මෙම විකල්පය සමඟ, PBX සැකසුම් වෙනස් කිරීම සඳහා සාමාන්ය API ලිවීමට නොහැකි ය. පළමුව, වෙනස්කම් යෙදීමේ මෙහෙයුම තරු ලකුණු ඉතා දිගු හා සම්පත් දැඩි.
දෙවනුව, ඔබට එකවර කාර්යයන් දෙකක් ඇමතිය නොහැක, මන්ද දෙකම වින්යාසය නිර්මාණය කරනු ඇත.
තෙවනුව, එය පරිපාලක විසින් සාදන ලද ඒවා ඇතුළුව සියලුම සැකසුම් අදාළ වේ.

මෙම අනුවාදයේ, ලෙස අස්කෝසියා, වෙනස් කළ මොඩියුලවල වින්‍යාසය පමණක් උත්පාදනය කිරීමට සහ අවශ්‍ය මොඩියුල පමණක් නැවත ආරම්භ කිරීමට හැකි විය, නමුත් මේ සියල්ල අඩ පියවර වේ. ප්රවේශය වෙනස් කිරීමට අවශ්ය විය.

දෙවන අනුවාදය. නාසය පිටතට ඇදගත් වලිගය සිරවී ඇත

ගැටළුව විසඳීමේ අදහස වූයේ වින්‍යාසය සහ ඩයල්ප්ලෑන් ප්‍රතිනිර්මාණය කිරීම නොවේ තරු ලකුණු, නමුත් දත්ත ගබඩාවට තොරතුරු සුරකින්න සහ ඇමතුම සකසන අතරතුර දත්ත සමුදායෙන් කෙලින්ම කියවන්න. තරු ලකුණු දත්ත සමුදායෙන් වින්‍යාසයන් කියවන්නේ කෙසේදැයි මම දැනටමත් දැන සිටියෙමි, දත්ත සමුදායේ අගය වෙනස් කරන්න සහ වෙනස්කම් සැලකිල්ලට ගනිමින් ඊළඟ ඇමතුම සකසනු ඇත, සහ ඩයල්ප්ලාන් පරාමිතීන් කියවීම සඳහා කාර්යය පරිපූර්ණ විය. REALTIME_HASH.

අවසානයේදී, නැවත ආරම්භ කිරීමට පවා අවශ්ය නොවීය තරු ලකුණු සැකසුම් වෙනස් කරන විට සහ සියලු සැකසුම් වහාම යෙදීමට පටන් ගත්තේය තරු ලකුණු.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

dialplan හි ඇති එකම වෙනස්කම් වන්නේ දිගු අංක එකතු කිරීම සහ ඉඟි. නමුත් මේවා කුඩා ස්ථාන වෙනස්කම් විය

exten=>101,1,GoSub(‘sub-callusers’,s,1(1)); - точечное изменение, добавляется/изменяется через ami

; sub-callusers – универсальная функция генерится при установке модуля.
[sub-callusers]
exten =>s,1,Noop()
exten =>s,n,Set(LOCAL(TOUSERID)=${ARG1})
exten =>s,n,ClearHash(TOUSERPARAM)
exten =>s,n,Set(HASH(TOUSERPARAM)=${REALTIME_HASH(rl_users,id,${LOCAL(TOUSERID)})})
exten =>s,n,GotoIf($["${HASH(TOUSERPARAM,id)}"=""]?return)
...

ඔබට පහසුවෙන් ඩයල්ප්ලෑන් එකෙහි රේඛාවක් එක් කිරීමට හෝ වෙනස් කිරීමට හැකිය ආමි (පාලන අතුරුමුහුණත තරු ලකුණු) සහ සම්පූර්ණ dialplan නැවත ආරම්භ කිරීම අවශ්‍ය නොවේ.

මෙය වින්‍යාස API සමඟ ඇති ගැටළුව විසඳා ඇත. ඔබට කෙලින්ම දත්ත සමුදායට ගොස් නව කණ්ඩායමක් එක් කිරීමට හෝ වෙනස් කිරීමට පවා හැකිය, උදාහරණයක් ලෙස, කණ්ඩායම සඳහා “ඩයල්ටයිම්” ක්ෂේත්‍රයේ ඩයල්-අප් වේලාව සහ ඊළඟ ඇමතුම දැනටමත් නියමිත වේලාවට පවතිනු ඇත (මෙය නිර්දේශයක් නොවේ. සමහර API මෙහෙයුම් සඳහා අවශ්‍ය වන බැවින් ක්‍රියාව ආමි ඇමතුම්).

පළමු දුෂ්කර ක්‍රියාත්මක කිරීම් නැවතත් පළමු ආඩම්බරය සහ බලාපොරොත්තු සුන්වීම ගෙන ආවේය. එය ක්‍රියාත්මක වීම ගැන මම සතුටු වුණා. දත්ත සමුදාය තීරනාත්මක සබැඳියක් බවට පත් විය, තැටිය මත යැපීම වැඩි විය, වැඩි අවදානම් ඇත, නමුත් සෑම දෙයක්ම ස්ථාවරව හා ගැටළු නොමැතිව වැඩ කළේය. තවද වඩාත්ම වැදගත් දෙය නම්, දැන් වෙබ් අතුරු මුහුණත හරහා කළ හැකි සියල්ල API හරහා කළ හැකි අතර එම ක්‍රම භාවිතා කරන ලදී. මීට අමතරව, වෙබ් අතුරු මුහුණත පරිපාලකයින්ට බොහෝ විට අමතක වූ "PBX වෙත සැකසුම් යොදන්න" බොත්තම ඉවත් කර ඇත.

අපේක්ෂා භංගත්වය වූයේ සංවර්ධනය වඩාත් සංකීර්ණ වීමයි. පළමු අනුවාදයේ සිට, PHP භාෂාව භාෂාව තුළ ඩයල්ප්ලෑන් එකක් ජනනය කර ඇත තරු ලකුණු සහ එය සම්පූර්ණයෙන්ම කියවිය නොහැකි බව පෙනේ, ඊට අමතරව භාෂාවම තරු ලකුණු dialplan එකක් ලිවීම සඳහා එය අතිශයින් ප්‍රාථමික වේ.

එය පෙනෙන්නේ කෙසේද:

$usersInitSection = $dialplan->createExtSection('usersinit-sub','s');
$usersInitSection
 ->add('',new Dialplanext_gotoif('$["${G_USERINIT}"="1"]','exit'))
 ->add('',new Dialplanext_set('G_USERINIT','1'))
 ->add('',new Dialplanext_gosub('1','s','sub-AddOnAnswerSub','usersconnected-sub'))
 ->add('',new Dialplanext_gosub('1','s','sub-AddOnPredoDialSub','usersinitondial-sub'))
 ->add('',new Dialplanext_set('LOCAL(TECH)','${CUT(CHANNEL(name),/,1)}'))
 ->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="SIP"]','sipdev'))
 ->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="PJSIP"]','pjsipdev'))

දෙවන අනුවාදයේ දී, dialplan විශ්වීය බවට පත් විය, එය පරාමිතීන් මත පදනම්ව හැකි සියලු සැකසුම් විකල්ප ඇතුළත් වූ අතර එහි ප්රමාණය සැලකිය යුතු ලෙස වැඩි විය. මේ සියල්ල සංවර්ධන කාලය බෙහෙවින් මන්දගාමී වූ අතර, නැවත වරක් ඩයල්ප්ලෑන් එකට මැදිහත් විය යුතු යැයි සිතීම මට කණගාටු විය.

තුන්වන අනුවාදය

ගැටලුව විසඳීමේ අදහස ජනනය කිරීම නොවේ තරු ලකුණු php වලින් dialplan සහ භාවිතා කරන්න FastAGI සහ සියලුම සැකසුම් රීති PHP තුලම ලියන්න. FastAGI එය ඉඩ තරු ලකුණු, ඇමතුම සැකසීමට, සොකට් එකට සම්බන්ධ කරන්න. එතනින් විධාන ලබාගෙන ප්‍රතිඵල යවන්න. මේ අනුව, dialplan හි තර්කනය දැනටමත් සීමාවෙන් පිටත පවතී තරු ලකුණු සහ ඕනෑම භාෂාවකින් ලිවිය හැක, මගේ නඩුවේදී PHP වලින්.

බොහෝ අත්හදා බැලීම් සහ දෝෂ ඇති විය. ප්‍රධානම ප්‍රශ්නය වුනේ මම දැනටමත් පන්ති/ෆයිල් ගොඩක් තිබ්බ එක. වස්තූන් සෑදීමට, ඒවා ආරම්භ කිරීමට සහ එකිනෙකා සමඟ එකිනෙකා ලියාපදිංචි කිරීමට තත්පර 1,5 ක් පමණ ගත වූ අතර, ඇමතුමකට මෙම ප්‍රමාදය නොසලකා හැරිය හැකි දෙයක් නොවේ.

ආරම්භ කිරීම එක් වරක් පමණක් සිදු විය යුතු අතර එබැවින් විසඳුමක් සෙවීම ආරම්භ වූයේ php භාවිතයෙන් සේවාවක් ලිවීමෙනි Pthreads. සතියක අත්හදා බැලීමකින් පසු, මෙම දිගුව ක්‍රියා කරන ආකාරය පිළිබඳ සංකීර්ණතා හේතුවෙන් මෙම විකල්පය අත්හැර දමන ලදී. මාසයක පරීක්‍ෂණයකින් පසු, මට PHP හි අසමමුහුර්ත ක්‍රමලේඛනය අත්හැරීමට ද සිදු විය; මට සරල, ඕනෑම PHP ආරම්භකයකුට හුරුපුරුදු යමක් අවශ්‍ය විය, සහ PHP සඳහා බොහෝ දිගු සමමුහුර්ත වේ.

විසඳුම වූයේ සම්පාදනය කරන ලද C හි අපගේම බහු-නූල් සේවාවයි PHPLB. එය සියලුම ATS php ගොනු පූරණය කරයි, සියලුම මොඩියුල ආරම්භ වන තෙක් බලා සිටී, එකිනෙකාට නැවත ඇමතුමක් එක් කරයි, සහ සියල්ල සූදානම් වූ විට, එය හැඹිලි කරයි. විසින් විමසන විට FastAGI ප්‍රවාහයක් සාදනු ලැබේ, සියලුම පන්තිවල හැඹිලියෙන් පිටපතක් සහ දත්ත එහි ප්‍රතිනිෂ්පාදනය කරනු ලැබේ, සහ ඉල්ලීම php ශ්‍රිතයට යවනු ලැබේ.

මෙම විසඳුම සමඟ, අපගේ සේවාවට ඇමතුමක් යැවීමේ සිට පළමු විධානය දක්වා කාලය තරු ලකුණු තත්පර 1,5 සිට 0,05 දක්වා අඩු වී ඇති අතර මෙම කාලය ව්‍යාපෘතියේ විශාලත්වය මත තරමක් රඳා පවතී.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

එහි ප්‍රතිඵලයක් වශයෙන්, ඩයල්ප්ලාන් සංවර්ධනය සඳහා ගතවන කාලය සැලකිය යුතු ලෙස අඩු වී ඇති අතර, PHP හි සියලුම මොඩියුලවල සම්පූර්ණ ඩයල්ප්ලෑන් නැවත ලිවීමට සිදු වූ බැවින් මට මෙය අගය කළ හැකිය. පළමුව, දත්ත සමුදායෙන් වස්තුවක් ලබා ගැනීම සඳහා ක්‍රම දැනටමත් php වලින් ලියා තිබිය යුතුය; ඒවා වෙබ් අතුරු මුහුණතේ ප්‍රදර්ශනය කිරීම සඳහා අවශ්‍ය වූ අතර, දෙවනුව, මෙය ප්‍රධාන දෙයයි, අවසානයේ අංක සහ අරා සහිත නූල් සමඟ පහසුවෙන් වැඩ කළ හැකිය. දත්ත සමුදාය සහ බොහෝ PHP දිගු සමඟ.

මොඩියුල පන්තියේ dialplan සැකසීමට ඔබට කාර්යය ක්රියාත්මක කිරීමට අවශ්ය වේ dialplanDynamicCall සහ තර්කය pbxCallRequest අන්තර්ක්‍රියා කිරීමට වස්තුවක් අඩංගු වනු ඇත තරු ලකුණු.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

ඊට අමතරව, dialplan නිදොස් කිරීමට හැකි විය (php සතුව xdebug ඇති අතර එය අපගේ සේවාව සඳහා ක්‍රියා කරයි), ඔබට විචල්‍යවල අගයන් බැලීමෙන් පියවරෙන් පියවර ගමන් කළ හැකිය.

ඇමතුම් දත්ත

ඕනෑම විශ්ලේෂණ සහ වාර්තා සඳහා නිවැරදිව එකතු කරන ලද දත්ත අවශ්‍ය වන අතර, මෙම PBX වාරණ පළමු සිට තුන්වන අනුවාදය දක්වා බොහෝ අත්හදා බැලීම් සහ දෝෂයන් හරහා ගියේය. බොහෝ විට, ඇමතුම් දත්ත සංඥාවකි. එක් ඇමතුමක් = එක් පටිගත කිරීමක්: කවුද කතා කළේ, කවුද පිළිතුරු දුන්නේ, ඔවුන් කොපමණ කාලයක් කතා කළාද. වඩාත් රසවත් විකල්ප වලදී, ඇමතුම අතරතුරදී කුමන PBX සේවකයෙකු කැඳවූයේද යන්න දැක්වෙන අතිරේක ලකුණක් තිබේ. නමුත් මේ සියල්ල ආවරණය කරන්නේ අවශ්‍යතාවලින් කොටසක් පමණි.

මූලික අවශ්‍යතා වූයේ:

  • PBX ඇමතුවේ කවුරුන්ද යන්න පමණක් නොව පිළිතුරු දුන්නේ කවුරුන්ද යන්නද සුරකින්න බාධා කිරීම් ඇති අතර ඇමතුම් විශ්ලේෂණය කිරීමේදී මෙය සැලකිල්ලට ගත යුතුය,
  • සේවකයෙකු සමඟ සම්බන්ධ වීමට පෙර කාලය. තුල freepbx සහ තවත් සමහර PBXs, PBX දුරකථනය අතට ගත් වහාම ඇමතුමට පිළිතුරු ලෙස සැලකේ. නමුත් හඬ මෙනුව සඳහා ඔබට දැනටමත් දුරකථනය ලබා ගැනීමට අවශ්‍ය වේ, එබැවින් සියලුම ඇමතුම් වලට පිළිතුරු ලැබෙන අතර පිළිතුරක් සඳහා රැඳී සිටින කාලය තත්පර 0-1ක් වේ. එබැවින්, ප්රතිචාර දැක්වීමට පෙර කාලය පමණක් නොව, ප්රධාන මොඩියුල සමඟ සම්බන්ධ වීමට පෙර කාලය ඉතිරි කිරීමට තීරණය විය (මොඩියුලයම මෙම ධජය සකසයි. දැනට එය "සේවක", "බාහිර රේඛාව"),
  • වඩාත් සංකීර්ණ ඩයල්ප්ලෑන් එකක් සඳහා, විවිධ කණ්ඩායම් අතර ඇමතුමක් ගමන් කරන විට, එක් එක් මූලද්‍රව්‍ය වෙන වෙනම පරීක්ෂා කිරීමට අවශ්‍ය විය.

හොඳම විකල්පය වූයේ PBX මොඩියුල ඇමතුම් සඳහා තමන් ගැන තොරතුරු යවා අවසානයේ ගසක ස්වරූපයෙන් තොරතුරු සුරැකීමයි.

එය මේ වගේ ය:

පළමුව, ඇමතුම පිළිබඳ සාමාන්ය තොරතුරු (අනෙක් සියල්ලන් මෙන් - විශේෂ කිසිවක් නැත).

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

  1. පිටත රේඛාවකින් ඇමතුමක් ලැබුණි"පරීක්ෂණය සඳහා"05:55:52 ට 89295671458 අංකයේ සිට 89999999999 අංකය දක්වා, අවසානයේ එයට පිළිතුරු දුන්නේ සේවකයෙකු විසිනි"ලේකම්2»අංක 104 සමඟ. සේවාදායකයා තත්පර 60ක් බලා සිට තත්පර 36ක් කතා කළේය.
  2. සේවකයා"ලේකම්2"112 ට ඇමතුමක් ගෙන සේවකයෙකු පිළිතුරු දෙයි"කළමනාකරු1»තත්පර 8කට පසුව. ඔවුන් තත්පර 14 ක් කතා කරයි.
  3. සේවාදායකයා සේවකයා වෙත මාරු කරනු ලැබේ "කළමනාකරු1"ඔවුන් තව තත්පර 13ක් කතා කරගෙන යනවා

නමුත් මෙය අයිස් කුට්ටියේ කෙළවරයි; සෑම වාර්තාවක් සඳහාම ඔබට PBX හරහා සවිස්තරාත්මක ඇමතුම් ඉතිහාසයක් ලබා ගත හැකිය.

එක් ව්‍යාපෘතියක කතාව හෝ මම Asterisk සහ Php මත පදනම්ව PBX නිර්මාණය කිරීමට වසර 7ක් ගත කළ ආකාරය

සියලුම තොරතුරු ඇමතුම් කැදැල්ලක් ලෙස ඉදිරිපත් කෙරේ:

  1. පිටත රේඛාවකින් ඇමතුමක් ලැබුණි"පරීක්ෂණය සඳහා» 05:55:52 ට 89295671458 අංකයෙන් 89999999999 අංකයට.
  2. 05:55:53 ට පිටත රේඛාව එන පරිපථයට ඇමතුමක් යවයි "ටෙස්ට්»
  3. යෝජනා ක්රමයට අනුව ඇමතුමක් සැකසීමේදී, මොඩියුලය "කළමනාකරු ඇමතුම", එහි ඇමතුම තත්පර 16 කි. මෙය සේවාදායකයා සඳහා නිර්මාණය කරන ලද මොඩියුලයකි.
  4. මොඩියුලය "කළමනාකරු ඇමතුම" අංකය (සේවාදායකයා) සඳහා වගකිව යුතු සේවකයාට ඇමතුමක් යවයි"කළමනාකරු1” සහ ප්‍රතිචාරයක් සඳහා තත්පර 5ක් රැඳී සිටියි. කළමනාකරු පිළිතුරු දුන්නේ නැත.
  5. මොඩියුලය "කළමනාකරු ඇමතුම"කණ්ඩායමට ඇමතුමක් යවයි"CORP කළමනාකරුවන්" මොවුන් එකම දිශාවේ (එකම කාමරයේ වාඩි වී සිටින) සහ ප්‍රතිචාරයක් සඳහා තත්පර 11ක් බලා සිටින අනෙකුත් කළමනාකරුවන් වේ.
  6. සමූහය "CORP කළමනාකරුවන්"සේවකයින් අමතන්න"කළමනාකරු1, කළමනාකරු2, කළමනාකරු3"තත්පර 11 ක් එකවර. පිළිතුරක් නැත.
  7. කළමනාකරුගේ ඇමතුම අවසන් වේ. තවද පරිපථය මොඩියුලයට ඇමතුමක් යවයි "1c සිට මාර්ගයක් තෝරා ගැනීම" සේවාදායකයා සඳහා ලියා ඇති මොඩියුලයක් ද වේ. මෙහිදී ඇමතුම තත්පර 0ක් සඳහා සකසන ලදී.
  8. පරිපථය හඬ මෙනුවට ඇමතුමක් යවයි "අතිරේක ඇමතුම් සමඟ මූලික" සේවාදායකයා තත්පර 31 ක් එහි රැඳී සිටියේය, අමතර ඇමතුමක් නොතිබුණි.
  9. යෝජනා ක්‍රමය කණ්ඩායමට ඇමතුමක් යවයි "ලේකම්වරු", සේවාදායකයා තත්පර 12 ක් රැඳී සිටියේය.
  10. කණ්ඩායමක් තුළ, සේවකයින් දෙදෙනෙකු එකවර කැඳවනු ලැබේ "ලේකම්1"සහ"ලේකම්2"සහ තත්පර 12 කට පසු සේවකයා පිළිතුරු දෙයි"ලේකම්2" ඇමතුමට පිළිතුර මාපිය ඇමතුම් වලට අනුපිටපත් කර ඇත. කණ්ඩායමේ ඔහු පිළිතුරු දුන් බව පෙනේ "ලේකම්2", පරිපථය ඇමතූ විට පිළිතුරු ලැබුණි"ලේකම්2"සහ පිටත රේඛාවේ ඇමතුමට පිළිතුරු දුන්නේය"ලේකම්2".

එක් එක් මෙහෙයුම පිළිබඳ තොරතුරු සුරැකීම සහ ඒවායේ කැදැල්ල සරලව වාර්තා කිරීමට හැකි වේ. කටහඬ මෙනුවේ වාර්තාවක් ඔබට එය උපකාරවත් හෝ බාධා කරන ආකාරය සොයා ගැනීමට උපකාරී වනු ඇත. සේවකයින් විසින් මග හැරුණු ඇමතුම් පිළිබඳ වාර්තාවක් සාදන්න, ඇමතුමට බාධා වූ බවත්, එබැවින් එය මඟ හැරුණු බවක් නොසැලකේ, සහ එය කණ්ඩායම් ඇමතුමක් බවත්, වෙනත් අයෙකු මීට පෙර පිළිතුරු දුන් බවත් සැලකිල්ලට ගෙන, එයින් අදහස් වන්නේ ඇමතුම ද මඟ හැරී නැති බවයි.

එවැනි තොරතුරු ගබඩා කිරීම ඔබට එක් එක් කණ්ඩායම වෙන වෙනම ගෙන එය කෙතරම් ඵලදායී ලෙස ක්‍රියා කරයිද යන්න තීරණය කිරීමටත්, පිළිතුරු දුන් සහ මඟ හැරුණු කණ්ඩායම්වල ප්‍රස්ථාරයක් පැයෙන් පැයට ගොඩනඟා ගැනීමටත් ඉඩ සලසයි. කළමනාකරුට සම්බන්ධ වීමෙන් පසු මාරුවීම් විශ්ලේෂණය කිරීමෙන් වගකිවයුතු කළමණාකරු වෙත ඇති සම්බන්ධතාවය කෙතරම් නිවැරදිදැයි ඔබට පරීක්ෂා කළ හැකිය.

ඔබට තරමක් අසාමාන්‍ය අධ්‍යයනයන් පැවැත්විය හැකිය, උදාහරණයක් ලෙස, දත්ත සමුදායේ නොමැති අංක කොපමණ වාරයක් නිවැරදි දිගුව අමතයිද යන්න හෝ පිටතට යන ඇමතුම් වලින් කොපමණ ප්‍රතිශතයක් ජංගම දුරකථනයකට යොමු කරන්නේද යන්න.

අවසානයේදී කුමක් ද?

PBX නඩත්තු කිරීම සඳහා විශේෂඥයෙකු අවශ්ය නොවේ; වඩාත්ම සාමාන්ය පරිපාලකයාට එය කළ හැකිය - ප්රායෝගිකව පරීක්ෂා කර ඇත.

වෙනස් කිරීම් සඳහා, බරපතල සුදුසුකම් ඇති විශේෂඥයින් අවශ්ය නොවේ; PHP පිළිබඳ දැනුම ප්රමාණවත් වේ, මන්ද SIP ප්‍රොටෝකෝලය සඳහා සහ පෝලිම සඳහා සහ සේවකයෙකු ඇමතීමට සහ වෙනත් අය සඳහා මොඩියුල දැනටමත් ලියා ඇත. සඳහා දවටන පන්තියක් ඇත තරු ලකුණු. මොඩියුලයක් සංවර්ධනය කිරීම සඳහා, ක්‍රමලේඛකයෙකුට (සහ හොඳ ආකාරයකින්) සූදානම් කළ මොඩියුල ඇමතීමට හැකිය. සහ දැනුම තරු ලකුණු සේවාදායකයා නව වාර්තාවක් සහිත පිටුවක් එක් කිරීමට ඉල්ලා සිටින්නේ නම් ඒවා සම්පූර්ණයෙන්ම අනවශ්‍යයි. නමුත් ප්‍රායෝගිකව පෙන්නුම් කරන්නේ තෙවන පාර්ශවීය ක්‍රමලේඛකයින්ට මුහුණ දිය හැකි වුවද, ලේඛනගත කිරීම් සහ සාමාන්‍ය අදහස් ආවරණයක් නොමැතිව ඔවුන්ට අනාරක්ෂිත බවක් දැනේ, එබැවින් වැඩිදියුණු කිරීමට තවමත් ඉඩ තිබේ.

මොඩියුලවලට හැකි:

  • නව ඇමතුම් සැකසුම් හැකියාවන් නිර්මාණය,
  • වෙබ් අතුරු මුහුණතට නව කොටස් එකතු කරන්න,
  • පවතින ඕනෑම මොඩියුලයකින් උරුම වන්න, ශ්‍රිත නැවත අර්ථ දැක්වීම සහ එය ප්‍රතිස්ථාපනය කරන්න, නැතහොත් තරමක් වෙනස් කළ පිටපතක් වන්න,
  • ඔබගේ සැකසුම් වෙනත් මොඩියුලවල සැකසුම් අච්චුවට එක් කරන්න සහ තවත් බොහෝ දේ.

API හරහා PBX සැකසුම්. ඉහත විස්තර කර ඇති පරිදි, සියලුම සැකසුම් දත්ත සමුදායේ ගබඩා කර ඇති අතර ඇමතුමේ වේලාවේදී කියවනු ලැබේ, එබැවින් ඔබට API හරහා සියලුම PBX සැකසුම් වෙනස් කළ හැකිය. API ඇමතීමේදී, වින්‍යාසය ප්‍රතිනිර්මාණය නොකරන අතර මොඩියුල නැවත ආරම්භ නොකෙරේ, එබැවින් ඔබට කොපමණ සැකසුම් සහ සේවකයින් සිටීද යන්න ගැටළුවක් නොවේ. API ඉල්ලීම් ඉක්මනින් ක්‍රියාත්මක වන අතර එකිනෙක අවහිර නොකරන්න.

PBX සියළුම ප්‍රධාන මෙහෙයුම් කාලසීමාවන් සහිත ඇමතුම් (බලා සිටීම/සංවාදය), කැදැල්ල සහ PBX නියමයන් (සේවකයා, කණ්ඩායම, බාහිර රේඛාව, නාලිකාව, අංකය නොවේ) සමඟ ගබඩා කරයි. විශේෂිත සේවාදායකයින් සඳහා විවිධ වාර්තා ගොඩනගා ගැනීමට මෙය ඔබට ඉඩ සලසයි, බොහෝ කාර්යයන් පරිශීලක-හිතකාමී අතුරු මුහුණතක් නිර්මාණය කිරීමයි.

ඊළඟට කුමක් සිදුවේදැයි කාලය කියනු ඇත. නැවත සකස් කළ යුතු බොහෝ සූක්ෂ්මතා තිබේ, තවමත් බොහෝ සැලසුම් ඇත, නමුත් 3 වන අනුවාදය නිර්මාණය කර වසරක් ගත වී ඇති අතර අදහස ක්‍රියාත්මක වන බව අපට දැනටමත් පැවසිය හැකිය. 3 අනුවාදයේ ප්‍රධාන අවාසිය නම් දෘඩාංග සම්පත් ය, නමුත් මෙය සාමාන්‍යයෙන් සංවර්ධනයේ පහසුව සඳහා ඔබ ගෙවිය යුතු දෙයයි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න