FusionPBX、たたは再びクヌル、FreeSWITCH

同じ川ぞ


最近では、FreeSWITCHをセットアップするためのチヌトシヌトを自分で曞きたした。 そこに蚘茉されおいるセットアッププロセスは、テスト条件䞋で動䜜する構成に぀ながりたした。 このテストは、組織を移動し、運甚環境でテレフォニヌを開始した埌、䜕を凊理するかの予備的なアむデアを䜜成するために必芁でした。 ただし、移動が行われ、接続が動䜜モヌドで開始されたずき、最初のむンクルヌゞョンでは、構成が動䜜しおいなかったこずが瀺されたした。内郚コヌルは停止したした。

チヌトシヌトが曞き蟌たれた最終セットアップずヘルスチェックの瞬間から、動䜜モヌドでスむッチを入れたずき、蚭定に倉曎が加えられなかったため、これは私にずっお完党な驚きでした。 盎接的な郜垂番号玄60個の数字の末尟が割り圓おられた埓業員の着信および発信コヌルに察しお、内郚番号ずルヌトのみが䞀括しお远加されたした。

デバッグが行われ、劚害が明らかになり、すべお機胜したした。 しかし、束葉杖の感芚がありたした。 私はそれを説明したせん。なぜなら、私は適甚された解決策が正しいず確信しおいるからです。 さらに、ニュアンスが明確になりたした。内郚から倖郚ぞの発信コヌルに぀いおは、 default_provider_usernameフィヌルドのSIPトランク蚭定で指定された番号のみが決定されたした 。

<X-PRE-PROCESS cmd="set" data="default_provider_username=3435555555"/> 

加入者番号の構成に瀺されおいるものではありたせん。

 <variable name="outbound_caller_id_name" value="3435555566"/> 

プロバむダヌのテクニカルサポヌトは、 Fromフィヌルドで私たちからそれらに到着するすべおのコヌルには、正確に3435555555番号、぀たり、私の偎の暪棒があるこずを報告したした。 さらに、私は突然電話を転送するタスクに完党に電話を切った。 そしお、ケヌキの桜は、コヌルの転送を拒吊したEricsson Dialog 4422デバむスず、蚭定にこのような蚭定のわずかなヒントがない堎合、接続期間の制限が90〜100秒であるず決定したCisco 7945gデバむスによる脳の陀去でした。 同時に、Yealink T21 E2デバむスは完党に問題なく動䜜したした。

この段階で、電話の分野で自分の胜力の限界に達したこずに気付き、すべおが萜ち着いお頭に収たるようにタむムアりトしたした。 たた、この決定は、䌑業日のない2週間の絶察的な野生の埌、組織の新しい堎所に到着した盎埌に䞍芏則な劎働時間を䌎う䞀般的な疲劎のため、非垞に匷力でした。

Fusionpbx


コン゜ヌルルヌルずテキスト蚭定のグラフィカルむンタヌフェむスに察する同情がなかったにもかかわらず、FusionPBXず呌ばれるWebマズルを䜿甚した゜リュヌションに目を向け始めたした。 このような独自の原則の裏切りの最初の理由は、各機胜芁玠の蚭定のボリュヌム党䜓を、実行可胜な「箱から出した」構成の圢で1か所に集めたいずいう欲求でした。 これはたさにグラフィカルむンタヌフェヌスが提䟛するものです。 よく考え抜かれたグラフィカルむンタヌフェむスの远加のボヌナスは、モゞュヌルず機胜間の関係を芖芚的に衚珟するこずです。 初心者にずっお個人的には、特定の実装方法を䜿甚した抜象化のレベルが䜎いほど、このこずの仕組みの孊習ず理解が速くなりたす。 2番目の理由はwww.pbxforums.comで 、 FreeSWITCHの情報を怜玢するずきにリンクを介しお取埗したしたが、皮肉なこずに、FusionPBX蚭定ペヌゞのスクリヌンショットでした。

FusionPBXは、デヌタベヌスにWeb銃口ず蚭定が保存されおいるFreeSWITCHです。 無人むンストヌルスクリプトは、FreeSWITCH、Nginx、PostgreSQL、および実際にはFusionPBX自䜓のWebむンタヌフェむスの䞡方をむンストヌルしたす。 私はこの瞬間にこだわる぀もりはありたせん。すべおはドキュメントの指瀺に埓っおためらうこずなく蚭定されおいたす。 開発者が掚奚する64ビットDebian 8にすべおを眮きたした。

加入者番号のむンポヌト

ここでは、加入者番号ず着信ルヌトを蚭定するプロセスは考慮されたせん。 このプロセスは公匏ドキュメントに蚘茉されおいたす。

代わりに、すべおを䞀括でむンポヌトする手順に぀いお説明したす。 この手順を実行するための説明、マニュアル、ヒントは芋぀かりたせんでした。

むンストヌルの最埌に、AdminerphpMyAdminのアナログぞの自動ログむンを有効にしたす。
詳现蚭定→デフォルト蚭定 
auto_login
Value : true
Enabled : true
珟圚のペヌゞの倀を倉曎した埌、デフォルト蚭定ペヌゞの「再読み蟌み 」で「保存 」をクリックしたす 。

管理者 詳现蚭定→管理者に移動したす。

次の衚は、私たちにずっお興味深いものです。

v_extensions-サブスクラむバヌ番号。
v_destinations-内郚加入者番号に割り圓おられた郜垂番号ぞの着信コヌルのルヌト。
v_dialplans - dialplansディレクトリ。
v_dialplan_details-着信コヌルのダむダルプラン蚭定。
v_voicemails-ボむスメヌル蚭定。

タスクのステヌトメントは次のずおりでしたAD名から埓業員ずその内郚電話番号をアンロヌドし、CSVファむルにアップロヌドを保存し、サブスクラむバヌ番号ずボむスメヌル蚭定のテヌブルのデヌタベヌスにむンポヌトしたすボむスメヌルは無効にする必芁がありたす。
郜垂番号ず内線番号の察応ディレクトリを䜿甚しお、着信コヌルのルヌトずダむダルプランを含むテヌブルにむンポヌトするためのCSVファむルを䜜成したす。

このタスクを詳现に怜蚎するのではなく、完成したスクリプトをネタバレの䞋に隠すだけです。
泚意

提案されたスクリプトはご自身の責任で䜿甚しおください。䜜成者は、誀った䜿甚たたは正しい䜿甚による予期しない副䜜甚に぀いお責任を負いたせん。

  • $ nums倉数を、数倀に䞀臎する倀に蚭定したす。
  • スクリプトを䜿甚する前に、ドメむンUUIDを垞にむンストヌル䞭にドメむンに割り圓おられた倀 domain_uuidフィヌルドに眮き換える必芁がありたす。
  • ドメむンのIPアドレス172.18.253.1を自分のものに眮き換える必芁もありたす。
  • -SearchBaseスむッチの倀を調敎するこずを忘れないでください。 「OU =゚カテリンブルグ、DC = dc、DC =ドメむン、DC =ロヌカル」ではなくサンプリング゚リアを瀺したす。
  • ボむスメヌルアプリケヌションのUUID app_uuidフィヌルドも、むンストヌル䞭に割り圓おられたUUIDに眮き換えられたす。
  • UUIDの倀は、たずえばv_dialplansテヌブルで衚瀺できたす。
  • すべおの加入者番号には登録甚のパスワヌド「12345」が割り圓おられ、ボむスメヌルおよび他のサヌビスのパスワヌドは加入者番号ず同じになりたす。
  • スクリプトはファむルを1行ず぀远加したす したがっお、各スクリプトを実行する前にファむルを削陀するか、その内容を消去するこずを忘れないでください
。
加入者番号ずボむスメヌル
 $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False $nums=@{"1111"="5555555";"1112"="5555566"} [System.IO.File]::AppendAllText("d:\v_extensions.csv", "extension_uuid;domain_uuid;extension;number_alias;password;accountcode;effective_caller_id_name;effective_caller_id_number;outbound_caller_id_name;outbound_caller_id_number;emergency_caller_id_name;emergency_caller_id_number;directory_full_name;directory_visible;directory_exten_visible;limit_max;limit_destination;missed_call_app;missed_call_data;user_context;toll_allow;call_timeout;call_group;call_screen_enabled;user_record;hold_music;auth_acl;cidr;sip_force_contact;nibble_account;sip_force_expires;mwi_account;sip_bypass_media;unique_id;dial_string;dial_user;dial_domain;do_not_disturb;forward_all_destination;forward_all_enabled;forward_busy_destination;forward_busy_enabled;forward_no_answer_destination;forward_no_answer_enabled;follow_me_uuid;enabled;description;forward_caller_id_uuid;absolute_codec_string;forward_user_not_registered_destination;forward_user_not_registered_enabled;force_ping`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "domain_uuid;voicemail_uuid;voicemail_id;voicemail_password;greeting_id;voicemail_alternate_greet_id;voicemail_mail_to;voicemail_sms_to;voicemail_attach_file;voicemail_file;voicemail_local_after_email;voicemail_enabled;voicemail_description;voicemail_name_base64`r`n", $Utf8NoBomEncoding) Get-ADUser -Filter * -SearchBase "OU=Ekaterinburg,DC=dc,DC=domain,DC=local" -Properties Telephonenumber,sn,initials,cn|%{ if(-not $_.Telephonenumber -eq ""){ if($nums.Get_Item($_.Telephonenumber) -eq $null) {$outn = "5555555"} else {$outn = $nums.Get_Item($_.Telephonenumber)} $extension_uuid = (New-Guid).Tostring() $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $extension = $_.Telephonenumber $number_alias = "" $password = "12345" $accountcode = "172.18.253.1" $effective_caller_id_name = $_.sn + " " + $_.initials $effective_caller_id_number = $extension $outbound_caller_id_name = $outn $outbound_caller_id_number = $outn $emergency_caller_id_name = $effective_caller_id_name $emergency_caller_id_number = $extension $directory_full_name = $_.cn $directory_visible = "true" $directory_exten_visible = "true" $limit_max = "1" $limit_destination = "error/user_busy" $missed_call_app = "" $missed_call_data = "" $user_context = "172.18.253.1" $toll_allow = "domestic,international,local" $call_timeout = "30" $call_group = "" $call_screen_enabled = "false" $user_record = "" $hold_music = "local_stream://default" $auth_acl = "" $cidr = "" $sip_force_contact = "" $nibble_account = "" $sip_force_expires = "3600" $mwi_account = "" $sip_bypass_media = "" $unique_id = "" $dial_string = "" $dial_user = "" $dial_domain = "" $do_not_disturb = "" $forward_all_destination = "" $forward_all_enabled = "" $forward_busy_destination = "" $forward_busy_enabled = "" $forward_no_answer_destination = "" $forward_no_answer_enabled = "" $follow_me_uuid = "" $enabled = "true" $description = $_.sn + " " + $_.initials $forward_caller_id_uuid = "" $absolute_codec_string = "" $forward_user_not_registered_destination = "" $forward_user_not_registered_enabled = "" $force_ping = "" $csv="$extension_uuid;$domain_uuid;$extension;$number_alias;$password;$accountcode;$effective_caller_id_name;$effective_caller_id_number;$outbound_caller_id_name;$outbound_caller_id_number;$emergency_caller_id_name;$emergency_caller_id_number;$directory_full_name;$directory_visible;$directory_exten_visible;$limit_max;$limit_destination;$missed_call_app;$missed_call_data;$user_context;`"$toll_allow`";$call_timeout;$call_group;$call_screen_enabled;$user_record;$hold_music;$auth_acl;$cidr;$sip_force_contact;$nibble_account;$sip_force_expires;$mwi_account;$sip_bypass_media;$unique_id;$dial_string;$dial_user;$dial_domain;$do_not_disturb;$forward_all_destination;$forward_all_enabled;$forward_busy_destination;$forward_busy_enabled;$forward_no_answer_destination;$forward_no_answer_enabled;$follow_me_uuid;$enabled;$description;$forward_caller_id_uuid;$absolute_codec_string;$forward_user_not_registered_destination;$forward_user_not_registered_enabled;`"$force_ping`"`r`n" [System.IO.File]::AppendAllText("d:\v_extensions.csv", $csv, $Utf8NoBomEncoding) $voicemail_uuid = (New-Guid).Tostring() $voicemail_id = $extension $voicemail_password = $extension $greeting_id $voicemail_alternate_greet_id $voicemail_mail_to = "" $voicemail_sms_to $voicemail_attach_file $voicemail_file = "" $voicemail_local_after_email = "true" $voicemail_enabled = "false" $voicemail_description = $description $voicemail_name_base64 [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "$domain_uuid;$voicemail_uuid;$voicemail_id;$voicemail_password;$greeting_id;$voicemail_alternate_greet_id;$voicemail_mail_to;$voicemail_sms_to;$voicemail_attach_file;$voicemail_file;$voicemail_local_after_email;$voicemail_enabled;$voicemail_description;$voicemail_name_base64`r`n", $Utf8NoBomEncoding)}} \ v_extensions.csv"、「extension_uuid; domain_uuid;拡匵; number_alias;パスワヌド; accountcode; effective_caller_id_name; effective_caller_id_number; outbound_caller_id_name; outbound_caller_id_number; emergency_caller_id_name; emergency_caller_id_number; directory_full_name; directory_visible; directory_exten_visible $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False $nums=@{"1111"="5555555";"1112"="5555566"} [System.IO.File]::AppendAllText("d:\v_extensions.csv", "extension_uuid;domain_uuid;extension;number_alias;password;accountcode;effective_caller_id_name;effective_caller_id_number;outbound_caller_id_name;outbound_caller_id_number;emergency_caller_id_name;emergency_caller_id_number;directory_full_name;directory_visible;directory_exten_visible;limit_max;limit_destination;missed_call_app;missed_call_data;user_context;toll_allow;call_timeout;call_group;call_screen_enabled;user_record;hold_music;auth_acl;cidr;sip_force_contact;nibble_account;sip_force_expires;mwi_account;sip_bypass_media;unique_id;dial_string;dial_user;dial_domain;do_not_disturb;forward_all_destination;forward_all_enabled;forward_busy_destination;forward_busy_enabled;forward_no_answer_destination;forward_no_answer_enabled;follow_me_uuid;enabled;description;forward_caller_id_uuid;absolute_codec_string;forward_user_not_registered_destination;forward_user_not_registered_enabled;force_ping`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "domain_uuid;voicemail_uuid;voicemail_id;voicemail_password;greeting_id;voicemail_alternate_greet_id;voicemail_mail_to;voicemail_sms_to;voicemail_attach_file;voicemail_file;voicemail_local_after_email;voicemail_enabled;voicemail_description;voicemail_name_base64`r`n", $Utf8NoBomEncoding) Get-ADUser -Filter * -SearchBase "OU=Ekaterinburg,DC=dc,DC=domain,DC=local" -Properties Telephonenumber,sn,initials,cn|%{ if(-not $_.Telephonenumber -eq ""){ if($nums.Get_Item($_.Telephonenumber) -eq $null) {$outn = "5555555"} else {$outn = $nums.Get_Item($_.Telephonenumber)} $extension_uuid = (New-Guid).Tostring() $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $extension = $_.Telephonenumber $number_alias = "" $password = "12345" $accountcode = "172.18.253.1" $effective_caller_id_name = $_.sn + " " + $_.initials $effective_caller_id_number = $extension $outbound_caller_id_name = $outn $outbound_caller_id_number = $outn $emergency_caller_id_name = $effective_caller_id_name $emergency_caller_id_number = $extension $directory_full_name = $_.cn $directory_visible = "true" $directory_exten_visible = "true" $limit_max = "1" $limit_destination = "error/user_busy" $missed_call_app = "" $missed_call_data = "" $user_context = "172.18.253.1" $toll_allow = "domestic,international,local" $call_timeout = "30" $call_group = "" $call_screen_enabled = "false" $user_record = "" $hold_music = "local_stream://default" $auth_acl = "" $cidr = "" $sip_force_contact = "" $nibble_account = "" $sip_force_expires = "3600" $mwi_account = "" $sip_bypass_media = "" $unique_id = "" $dial_string = "" $dial_user = "" $dial_domain = "" $do_not_disturb = "" $forward_all_destination = "" $forward_all_enabled = "" $forward_busy_destination = "" $forward_busy_enabled = "" $forward_no_answer_destination = "" $forward_no_answer_enabled = "" $follow_me_uuid = "" $enabled = "true" $description = $_.sn + " " + $_.initials $forward_caller_id_uuid = "" $absolute_codec_string = "" $forward_user_not_registered_destination = "" $forward_user_not_registered_enabled = "" $force_ping = "" $csv="$extension_uuid;$domain_uuid;$extension;$number_alias;$password;$accountcode;$effective_caller_id_name;$effective_caller_id_number;$outbound_caller_id_name;$outbound_caller_id_number;$emergency_caller_id_name;$emergency_caller_id_number;$directory_full_name;$directory_visible;$directory_exten_visible;$limit_max;$limit_destination;$missed_call_app;$missed_call_data;$user_context;`"$toll_allow`";$call_timeout;$call_group;$call_screen_enabled;$user_record;$hold_music;$auth_acl;$cidr;$sip_force_contact;$nibble_account;$sip_force_expires;$mwi_account;$sip_bypass_media;$unique_id;$dial_string;$dial_user;$dial_domain;$do_not_disturb;$forward_all_destination;$forward_all_enabled;$forward_busy_destination;$forward_busy_enabled;$forward_no_answer_destination;$forward_no_answer_enabled;$follow_me_uuid;$enabled;$description;$forward_caller_id_uuid;$absolute_codec_string;$forward_user_not_registered_destination;$forward_user_not_registered_enabled;`"$force_ping`"`r`n" [System.IO.File]::AppendAllText("d:\v_extensions.csv", $csv, $Utf8NoBomEncoding) $voicemail_uuid = (New-Guid).Tostring() $voicemail_id = $extension $voicemail_password = $extension $greeting_id $voicemail_alternate_greet_id $voicemail_mail_to = "" $voicemail_sms_to $voicemail_attach_file $voicemail_file = "" $voicemail_local_after_email = "true" $voicemail_enabled = "false" $voicemail_description = $description $voicemail_name_base64 [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "$domain_uuid;$voicemail_uuid;$voicemail_id;$voicemail_password;$greeting_id;$voicemail_alternate_greet_id;$voicemail_mail_to;$voicemail_sms_to;$voicemail_attach_file;$voicemail_file;$voicemail_local_after_email;$voicemail_enabled;$voicemail_description;$voicemail_name_base64`r`n", $Utf8NoBomEncoding)}} ; user_context; toll_allow; call_timeout; call_group; call_screen_enabled; user_record; hold_music; auth_acl; CIDR; sip_force_contact; nibble_account; sip_force_expires; mwi_account; sip_bypass_media; UNIQUE_ID; dial_string; dial_user; dial_domain; do_not_disturb; forward_all_destination; forward_all_enabled $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False $nums=@{"1111"="5555555";"1112"="5555566"} [System.IO.File]::AppendAllText("d:\v_extensions.csv", "extension_uuid;domain_uuid;extension;number_alias;password;accountcode;effective_caller_id_name;effective_caller_id_number;outbound_caller_id_name;outbound_caller_id_number;emergency_caller_id_name;emergency_caller_id_number;directory_full_name;directory_visible;directory_exten_visible;limit_max;limit_destination;missed_call_app;missed_call_data;user_context;toll_allow;call_timeout;call_group;call_screen_enabled;user_record;hold_music;auth_acl;cidr;sip_force_contact;nibble_account;sip_force_expires;mwi_account;sip_bypass_media;unique_id;dial_string;dial_user;dial_domain;do_not_disturb;forward_all_destination;forward_all_enabled;forward_busy_destination;forward_busy_enabled;forward_no_answer_destination;forward_no_answer_enabled;follow_me_uuid;enabled;description;forward_caller_id_uuid;absolute_codec_string;forward_user_not_registered_destination;forward_user_not_registered_enabled;force_ping`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "domain_uuid;voicemail_uuid;voicemail_id;voicemail_password;greeting_id;voicemail_alternate_greet_id;voicemail_mail_to;voicemail_sms_to;voicemail_attach_file;voicemail_file;voicemail_local_after_email;voicemail_enabled;voicemail_description;voicemail_name_base64`r`n", $Utf8NoBomEncoding) Get-ADUser -Filter * -SearchBase "OU=Ekaterinburg,DC=dc,DC=domain,DC=local" -Properties Telephonenumber,sn,initials,cn|%{ if(-not $_.Telephonenumber -eq ""){ if($nums.Get_Item($_.Telephonenumber) -eq $null) {$outn = "5555555"} else {$outn = $nums.Get_Item($_.Telephonenumber)} $extension_uuid = (New-Guid).Tostring() $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $extension = $_.Telephonenumber $number_alias = "" $password = "12345" $accountcode = "172.18.253.1" $effective_caller_id_name = $_.sn + " " + $_.initials $effective_caller_id_number = $extension $outbound_caller_id_name = $outn $outbound_caller_id_number = $outn $emergency_caller_id_name = $effective_caller_id_name $emergency_caller_id_number = $extension $directory_full_name = $_.cn $directory_visible = "true" $directory_exten_visible = "true" $limit_max = "1" $limit_destination = "error/user_busy" $missed_call_app = "" $missed_call_data = "" $user_context = "172.18.253.1" $toll_allow = "domestic,international,local" $call_timeout = "30" $call_group = "" $call_screen_enabled = "false" $user_record = "" $hold_music = "local_stream://default" $auth_acl = "" $cidr = "" $sip_force_contact = "" $nibble_account = "" $sip_force_expires = "3600" $mwi_account = "" $sip_bypass_media = "" $unique_id = "" $dial_string = "" $dial_user = "" $dial_domain = "" $do_not_disturb = "" $forward_all_destination = "" $forward_all_enabled = "" $forward_busy_destination = "" $forward_busy_enabled = "" $forward_no_answer_destination = "" $forward_no_answer_enabled = "" $follow_me_uuid = "" $enabled = "true" $description = $_.sn + " " + $_.initials $forward_caller_id_uuid = "" $absolute_codec_string = "" $forward_user_not_registered_destination = "" $forward_user_not_registered_enabled = "" $force_ping = "" $csv="$extension_uuid;$domain_uuid;$extension;$number_alias;$password;$accountcode;$effective_caller_id_name;$effective_caller_id_number;$outbound_caller_id_name;$outbound_caller_id_number;$emergency_caller_id_name;$emergency_caller_id_number;$directory_full_name;$directory_visible;$directory_exten_visible;$limit_max;$limit_destination;$missed_call_app;$missed_call_data;$user_context;`"$toll_allow`";$call_timeout;$call_group;$call_screen_enabled;$user_record;$hold_music;$auth_acl;$cidr;$sip_force_contact;$nibble_account;$sip_force_expires;$mwi_account;$sip_bypass_media;$unique_id;$dial_string;$dial_user;$dial_domain;$do_not_disturb;$forward_all_destination;$forward_all_enabled;$forward_busy_destination;$forward_busy_enabled;$forward_no_answer_destination;$forward_no_answer_enabled;$follow_me_uuid;$enabled;$description;$forward_caller_id_uuid;$absolute_codec_string;$forward_user_not_registered_destination;$forward_user_not_registered_enabled;`"$force_ping`"`r`n" [System.IO.File]::AppendAllText("d:\v_extensions.csv", $csv, $Utf8NoBomEncoding) $voicemail_uuid = (New-Guid).Tostring() $voicemail_id = $extension $voicemail_password = $extension $greeting_id $voicemail_alternate_greet_id $voicemail_mail_to = "" $voicemail_sms_to $voicemail_attach_file $voicemail_file = "" $voicemail_local_after_email = "true" $voicemail_enabled = "false" $voicemail_description = $description $voicemail_name_base64 [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "$domain_uuid;$voicemail_uuid;$voicemail_id;$voicemail_password;$greeting_id;$voicemail_alternate_greet_id;$voicemail_mail_to;$voicemail_sms_to;$voicemail_attach_file;$voicemail_file;$voicemail_local_after_email;$voicemail_enabled;$voicemail_description;$voicemail_name_base64`r`n", $Utf8NoBomEncoding)}} \ v_voicemails.csv"、「domain_uuid; voicemail_uuid; voicemail_id; voicemail_password; greeting_id; voicemail_alternate_greet_id; voicemail_mail_to; voicemail_sms_to; voicemail_attach_file; voicemail_file; voicemail_local_after_email; voicemail_enabled; voicemail_description; voicemail_name_base64`r $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False $nums=@{"1111"="5555555";"1112"="5555566"} [System.IO.File]::AppendAllText("d:\v_extensions.csv", "extension_uuid;domain_uuid;extension;number_alias;password;accountcode;effective_caller_id_name;effective_caller_id_number;outbound_caller_id_name;outbound_caller_id_number;emergency_caller_id_name;emergency_caller_id_number;directory_full_name;directory_visible;directory_exten_visible;limit_max;limit_destination;missed_call_app;missed_call_data;user_context;toll_allow;call_timeout;call_group;call_screen_enabled;user_record;hold_music;auth_acl;cidr;sip_force_contact;nibble_account;sip_force_expires;mwi_account;sip_bypass_media;unique_id;dial_string;dial_user;dial_domain;do_not_disturb;forward_all_destination;forward_all_enabled;forward_busy_destination;forward_busy_enabled;forward_no_answer_destination;forward_no_answer_enabled;follow_me_uuid;enabled;description;forward_caller_id_uuid;absolute_codec_string;forward_user_not_registered_destination;forward_user_not_registered_enabled;force_ping`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "domain_uuid;voicemail_uuid;voicemail_id;voicemail_password;greeting_id;voicemail_alternate_greet_id;voicemail_mail_to;voicemail_sms_to;voicemail_attach_file;voicemail_file;voicemail_local_after_email;voicemail_enabled;voicemail_description;voicemail_name_base64`r`n", $Utf8NoBomEncoding) Get-ADUser -Filter * -SearchBase "OU=Ekaterinburg,DC=dc,DC=domain,DC=local" -Properties Telephonenumber,sn,initials,cn|%{ if(-not $_.Telephonenumber -eq ""){ if($nums.Get_Item($_.Telephonenumber) -eq $null) {$outn = "5555555"} else {$outn = $nums.Get_Item($_.Telephonenumber)} $extension_uuid = (New-Guid).Tostring() $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $extension = $_.Telephonenumber $number_alias = "" $password = "12345" $accountcode = "172.18.253.1" $effective_caller_id_name = $_.sn + " " + $_.initials $effective_caller_id_number = $extension $outbound_caller_id_name = $outn $outbound_caller_id_number = $outn $emergency_caller_id_name = $effective_caller_id_name $emergency_caller_id_number = $extension $directory_full_name = $_.cn $directory_visible = "true" $directory_exten_visible = "true" $limit_max = "1" $limit_destination = "error/user_busy" $missed_call_app = "" $missed_call_data = "" $user_context = "172.18.253.1" $toll_allow = "domestic,international,local" $call_timeout = "30" $call_group = "" $call_screen_enabled = "false" $user_record = "" $hold_music = "local_stream://default" $auth_acl = "" $cidr = "" $sip_force_contact = "" $nibble_account = "" $sip_force_expires = "3600" $mwi_account = "" $sip_bypass_media = "" $unique_id = "" $dial_string = "" $dial_user = "" $dial_domain = "" $do_not_disturb = "" $forward_all_destination = "" $forward_all_enabled = "" $forward_busy_destination = "" $forward_busy_enabled = "" $forward_no_answer_destination = "" $forward_no_answer_enabled = "" $follow_me_uuid = "" $enabled = "true" $description = $_.sn + " " + $_.initials $forward_caller_id_uuid = "" $absolute_codec_string = "" $forward_user_not_registered_destination = "" $forward_user_not_registered_enabled = "" $force_ping = "" $csv="$extension_uuid;$domain_uuid;$extension;$number_alias;$password;$accountcode;$effective_caller_id_name;$effective_caller_id_number;$outbound_caller_id_name;$outbound_caller_id_number;$emergency_caller_id_name;$emergency_caller_id_number;$directory_full_name;$directory_visible;$directory_exten_visible;$limit_max;$limit_destination;$missed_call_app;$missed_call_data;$user_context;`"$toll_allow`";$call_timeout;$call_group;$call_screen_enabled;$user_record;$hold_music;$auth_acl;$cidr;$sip_force_contact;$nibble_account;$sip_force_expires;$mwi_account;$sip_bypass_media;$unique_id;$dial_string;$dial_user;$dial_domain;$do_not_disturb;$forward_all_destination;$forward_all_enabled;$forward_busy_destination;$forward_busy_enabled;$forward_no_answer_destination;$forward_no_answer_enabled;$follow_me_uuid;$enabled;$description;$forward_caller_id_uuid;$absolute_codec_string;$forward_user_not_registered_destination;$forward_user_not_registered_enabled;`"$force_ping`"`r`n" [System.IO.File]::AppendAllText("d:\v_extensions.csv", $csv, $Utf8NoBomEncoding) $voicemail_uuid = (New-Guid).Tostring() $voicemail_id = $extension $voicemail_password = $extension $greeting_id $voicemail_alternate_greet_id $voicemail_mail_to = "" $voicemail_sms_to $voicemail_attach_file $voicemail_file = "" $voicemail_local_after_email = "true" $voicemail_enabled = "false" $voicemail_description = $description $voicemail_name_base64 [System.IO.File]::AppendAllText("d:\v_voicemails.csv", "$domain_uuid;$voicemail_uuid;$voicemail_id;$voicemail_password;$greeting_id;$voicemail_alternate_greet_id;$voicemail_mail_to;$voicemail_sms_to;$voicemail_attach_file;$voicemail_file;$voicemail_local_after_email;$voicemail_enabled;$voicemail_description;$voicemail_name_base64`r`n", $Utf8NoBomEncoding)}} 

ルヌトずダむダルプレヌン
 $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False [System.IO.File]::AppendAllText("d:\v_destinations.csv", "domain_uuid;destination_uuid;dialplan_uuid;fax_uuid;destination_type;destination_number;destination_number_regex;destination_caller_id_name;destination_caller_id_number;destination_cid_name_prefix;destination_context;destination_app;destination_data;destination_enabled;destination_description;destination_accountcode`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_dialplans.csv", "domain_uuid;dialplan_uuid;app_uuid;dialplan_context;dialplan_name;dialplan_number;dialplan_continue;dialplan_order;dialplan_enabled;dialplan_description`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "domain_uuid;dialplan_uuid;dialplan_detail_uuid;dialplan_detail_tag;dialplan_detail_type;dialplan_detail_data;dialplan_detail_break;dialplan_detail_inline;dialplan_detail_group;dialplan_detail_order`r`n", $Utf8NoBomEncoding) $nums="1111=5555555;1112=5555566" $nums.Split(";")|%{ $innum = $_.Split("=")[0] $outnum = $_.Split("=")[1] $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $destination_uuid = (New-Guid).Tostring() $dialplan_uuid = (New-Guid).Tostring() $fax_uuid $destination_type = "inbound" $destination_number = "343$outnum" $destination_number_regex = "^(343$outnum)$" $destination_caller_id_name $destination_caller_id_number $destination_cid_name_prefix $destination_context = "public" $destination_app $destination_data $destination_enabled = "true" $destination_description = "$outnum-$innum" $destination_accountcode [System.IO.File]::AppendAllText("d:\v_destinations.csv", "$domain_uuid;$destination_uuid;$dialplan_uuid;$fax_uuid;$destination_type;$destination_number;$destination_number_regex;$destination_caller_id_name;$destination_caller_id_number;$destination_cid_name_prefix;$destination_context;$destination_app;$destination_data;$destination_enabled;$destination_description;$destination_accountcode`r`n", $Utf8NoBomEncoding) $app_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $dialplan_context = "public" $dialplan_name = $destination_number $dialplan_number = $destination_number $dialplan_continue = "false" $dialplan_order = "100" $dialplan_enabled = "true" $dialplan_description = $destination_description [System.IO.File]::AppendAllText("d:\v_dialplans.csv", "$domain_uuid;$dialplan_uuid;$app_uuid;$dialplan_context;$dialplan_name;$dialplan_number;$dialplan_continue;$dialplan_order;$dialplan_enabled;$dialplan_description`r`n", $Utf8NoBomEncoding) $dialplan_detail_break $dialplan_detail_inline $dialplan_detail_group $dialplan_detail_uuid = (New-Guid).Tostring() $dialplan_detail_tag = "condition" $dialplan_detail_type = "destination_number" $dialplan_detail_data = "^(343$outnum)$" $dialplan_detail_order = 20 [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "$domain_uuid;$dialplan_uuid;$dialplan_detail_uuid;$dialplan_detail_tag;$dialplan_detail_type;$dialplan_detail_data;$dialplan_detail_break;$dialplan_detail_inline;$dialplan_detail_group;$dialplan_detail_order`r`n", $Utf8NoBomEncoding) $dialplan_detail_uuid = (New-Guid).Tostring() $dialplan_detail_tag = "action" $dialplan_detail_type = "transfer" $dialplan_detail_data = "$innum XML 172.18.253.1" $dialplan_detail_order = 30 [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "$domain_uuid;$dialplan_uuid;$dialplan_detail_uuid;$dialplan_detail_tag;$dialplan_detail_type;$dialplan_detail_data;$dialplan_detail_break;$dialplan_detail_inline;$dialplan_detail_group;$dialplan_detail_order`r`n", $Utf8NoBomEncoding) } \ v_dialplans.csv"、 "domain_uuid; dialplan_uuid; app_uuid; dialplan_context; dialplan_name; dialplan_number; dialplan_continue; dialplan_order; dialplan_enabled; dialplan_description`r`n"、$ Utf8NoBomEncoding $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False [System.IO.File]::AppendAllText("d:\v_destinations.csv", "domain_uuid;destination_uuid;dialplan_uuid;fax_uuid;destination_type;destination_number;destination_number_regex;destination_caller_id_name;destination_caller_id_number;destination_cid_name_prefix;destination_context;destination_app;destination_data;destination_enabled;destination_description;destination_accountcode`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_dialplans.csv", "domain_uuid;dialplan_uuid;app_uuid;dialplan_context;dialplan_name;dialplan_number;dialplan_continue;dialplan_order;dialplan_enabled;dialplan_description`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "domain_uuid;dialplan_uuid;dialplan_detail_uuid;dialplan_detail_tag;dialplan_detail_type;dialplan_detail_data;dialplan_detail_break;dialplan_detail_inline;dialplan_detail_group;dialplan_detail_order`r`n", $Utf8NoBomEncoding) $nums="1111=5555555;1112=5555566" $nums.Split(";")|%{ $innum = $_.Split("=")[0] $outnum = $_.Split("=")[1] $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $destination_uuid = (New-Guid).Tostring() $dialplan_uuid = (New-Guid).Tostring() $fax_uuid $destination_type = "inbound" $destination_number = "343$outnum" $destination_number_regex = "^(343$outnum)$" $destination_caller_id_name $destination_caller_id_number $destination_cid_name_prefix $destination_context = "public" $destination_app $destination_data $destination_enabled = "true" $destination_description = "$outnum-$innum" $destination_accountcode [System.IO.File]::AppendAllText("d:\v_destinations.csv", "$domain_uuid;$destination_uuid;$dialplan_uuid;$fax_uuid;$destination_type;$destination_number;$destination_number_regex;$destination_caller_id_name;$destination_caller_id_number;$destination_cid_name_prefix;$destination_context;$destination_app;$destination_data;$destination_enabled;$destination_description;$destination_accountcode`r`n", $Utf8NoBomEncoding) $app_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $dialplan_context = "public" $dialplan_name = $destination_number $dialplan_number = $destination_number $dialplan_continue = "false" $dialplan_order = "100" $dialplan_enabled = "true" $dialplan_description = $destination_description [System.IO.File]::AppendAllText("d:\v_dialplans.csv", "$domain_uuid;$dialplan_uuid;$app_uuid;$dialplan_context;$dialplan_name;$dialplan_number;$dialplan_continue;$dialplan_order;$dialplan_enabled;$dialplan_description`r`n", $Utf8NoBomEncoding) $dialplan_detail_break $dialplan_detail_inline $dialplan_detail_group $dialplan_detail_uuid = (New-Guid).Tostring() $dialplan_detail_tag = "condition" $dialplan_detail_type = "destination_number" $dialplan_detail_data = "^(343$outnum)$" $dialplan_detail_order = 20 [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "$domain_uuid;$dialplan_uuid;$dialplan_detail_uuid;$dialplan_detail_tag;$dialplan_detail_type;$dialplan_detail_data;$dialplan_detail_break;$dialplan_detail_inline;$dialplan_detail_group;$dialplan_detail_order`r`n", $Utf8NoBomEncoding) $dialplan_detail_uuid = (New-Guid).Tostring() $dialplan_detail_tag = "action" $dialplan_detail_type = "transfer" $dialplan_detail_data = "$innum XML 172.18.253.1" $dialplan_detail_order = 30 [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "$domain_uuid;$dialplan_uuid;$dialplan_detail_uuid;$dialplan_detail_tag;$dialplan_detail_type;$dialplan_detail_data;$dialplan_detail_break;$dialplan_detail_inline;$dialplan_detail_group;$dialplan_detail_order`r`n", $Utf8NoBomEncoding) } \ v_dialplan_details.csv"、 "domain_uuid; dialplan_uuid; dialplan_detail_uuid; dialplan_detail_tag; dialplan_detail_type; dialplan_detail_data; dialplan_detail_break; dialplan_detail_inline; dialplan_detail_group; dialplan_detail_order`r`n"、$ Utf8NoBomEncoding $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False [System.IO.File]::AppendAllText("d:\v_destinations.csv", "domain_uuid;destination_uuid;dialplan_uuid;fax_uuid;destination_type;destination_number;destination_number_regex;destination_caller_id_name;destination_caller_id_number;destination_cid_name_prefix;destination_context;destination_app;destination_data;destination_enabled;destination_description;destination_accountcode`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_dialplans.csv", "domain_uuid;dialplan_uuid;app_uuid;dialplan_context;dialplan_name;dialplan_number;dialplan_continue;dialplan_order;dialplan_enabled;dialplan_description`r`n", $Utf8NoBomEncoding) [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "domain_uuid;dialplan_uuid;dialplan_detail_uuid;dialplan_detail_tag;dialplan_detail_type;dialplan_detail_data;dialplan_detail_break;dialplan_detail_inline;dialplan_detail_group;dialplan_detail_order`r`n", $Utf8NoBomEncoding) $nums="1111=5555555;1112=5555566" $nums.Split(";")|%{ $innum = $_.Split("=")[0] $outnum = $_.Split("=")[1] $domain_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $destination_uuid = (New-Guid).Tostring() $dialplan_uuid = (New-Guid).Tostring() $fax_uuid $destination_type = "inbound" $destination_number = "343$outnum" $destination_number_regex = "^(343$outnum)$" $destination_caller_id_name $destination_caller_id_number $destination_cid_name_prefix $destination_context = "public" $destination_app $destination_data $destination_enabled = "true" $destination_description = "$outnum-$innum" $destination_accountcode [System.IO.File]::AppendAllText("d:\v_destinations.csv", "$domain_uuid;$destination_uuid;$dialplan_uuid;$fax_uuid;$destination_type;$destination_number;$destination_number_regex;$destination_caller_id_name;$destination_caller_id_number;$destination_cid_name_prefix;$destination_context;$destination_app;$destination_data;$destination_enabled;$destination_description;$destination_accountcode`r`n", $Utf8NoBomEncoding) $app_uuid = "ffffffff-ffff-ffff-ffff-ffffffffffff" ## !!! $dialplan_context = "public" $dialplan_name = $destination_number $dialplan_number = $destination_number $dialplan_continue = "false" $dialplan_order = "100" $dialplan_enabled = "true" $dialplan_description = $destination_description [System.IO.File]::AppendAllText("d:\v_dialplans.csv", "$domain_uuid;$dialplan_uuid;$app_uuid;$dialplan_context;$dialplan_name;$dialplan_number;$dialplan_continue;$dialplan_order;$dialplan_enabled;$dialplan_description`r`n", $Utf8NoBomEncoding) $dialplan_detail_break $dialplan_detail_inline $dialplan_detail_group $dialplan_detail_uuid = (New-Guid).Tostring() $dialplan_detail_tag = "condition" $dialplan_detail_type = "destination_number" $dialplan_detail_data = "^(343$outnum)$" $dialplan_detail_order = 20 [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "$domain_uuid;$dialplan_uuid;$dialplan_detail_uuid;$dialplan_detail_tag;$dialplan_detail_type;$dialplan_detail_data;$dialplan_detail_break;$dialplan_detail_inline;$dialplan_detail_group;$dialplan_detail_order`r`n", $Utf8NoBomEncoding) $dialplan_detail_uuid = (New-Guid).Tostring() $dialplan_detail_tag = "action" $dialplan_detail_type = "transfer" $dialplan_detail_data = "$innum XML 172.18.253.1" $dialplan_detail_order = 30 [System.IO.File]::AppendAllText("d:\v_dialplan_details.csv", "$domain_uuid;$dialplan_uuid;$dialplan_detail_uuid;$dialplan_detail_tag;$dialplan_detail_type;$dialplan_detail_data;$dialplan_detail_break;$dialplan_detail_inline;$dialplan_detail_group;$dialplan_detail_order`r`n", $Utf8NoBomEncoding) } 

ランダムに遞択された番号ぞの接続を確認するず、むンポヌトのパフォヌマンスが瀺されたした。

ゲヌトりェむのセットアップ
アカりント→ゲヌトりェむ
Gateway : 172.16.253.3
Username : 3435555555
Password : not-used
From User : 3435555555
From Domain : 172.16.253.3
Proxy : 172.16.253.3
Register : False
Caller ID In From : True
泚意しおください
FusionPBXのドキュメントには、蚭定を行う際に倪字のフィヌルドが必須であるこずが明瀺的に蚘茉されおいたす。
ただし、なんらかの理由で理解できたせんでしたが、 Proxyフィヌルドの脂肪含有量は認識できず、倀を蚭定したせんでした。 その結果、私は倖郚からの通話を受信したしたが、発信は動䜜したせんでした。 sofia status gateway ffffffff-ffff-ffff-ffff-ffffffffffffは、構成の異垞を衚瀺せず、 ゲヌトりェむ倀に察応する割り圓おられたプロキシフィヌルド倀も衚瀺したした。 たったく同じ蚭定のチヌムからのたったく同じ出力が、前のむンストヌルの「裞の」FreeSWITCHによっお実蚌されたず同時に、倖郚ぞの発信を完党に問題なく行うこずができたした。
䞀方、FusionPBXは、 Proxyの倀を明瀺的に指定した埌にのみ機胜したした。
* ffffffff-ffff-ffff-ffff-ffffffffffffゲヌトりェむUUID
ACLセットアップ

チヌトシヌトに埓っお蚭定を行い、すぐに壊れた内郚コヌルを受け取りたした。 ログは、䜕らかの理由でデバむスがそれぞれ倖郚コンテキストにあるこずを瀺し、それらは「異なる」ダむダルパンによっお凊理され、そこから呌び出しがROUTE_NOT_FOUND゚ラヌで終了したこずを瀺したした。

叙情的な䜙談
状況のナヌモアは、 プロキシ蚭定がゲヌトりェむ蚭定で必須であるこずを発芋する前に、この「トラブル」が私に起こったずいう事実にもありたした。 そしお、ACLを蚭定するずすぐに、倖郚からの呌び出しが開始されたしたが、内郚の呌び出しは壊れたした。 そしお、ACLを䜿甚しおその意味をどのように操䜜しおも、結果は1぀でした。倖郚から内郚ぞの呌び出し、たたは内郚から倖郚ぞ、倖郚から内郚ぞの呌び出しのない内郚呌び出しです。

刀明したように、ACL構成は正しく実行されたせんでした
重芁

ACLは、ネットワヌクおよびドメむンプロバむダヌ専甚です。
独自のネットワヌクずドメむンをそこに入れないでください。
ドメむンリストはデフォルトで拒吊する必芁がありたす。
ルヌル自䜓は寛容である必芁があり、マスク/ 32が付いたプロバむダヌのゲヌトりェむのIPアドレスが曞き蟌たれおいる必芁がありたす。 ドメむンフィヌルドに入力する必芁はありたせん。

そこで、ACLを構成したす 詳现蚭定→アクセス制埡→ドメむン 。 既存のルヌルを削陀し、新しいルヌルを䜜成したす。
Type : allow
CIDR : 172.16.253.3/32
Domain :
Description : default SIP-trunk

最埌に[ 保存 ]をクリックし、新しいACLを有効にするために、[ ステヌタス ] → [ Sipステヌタス ]をクリックし、[ ACLのリロヌド ]をクリックしたす。

システム倉数

詳现蚭定→デフォルト蚭定
ここでは、チヌトシヌトで11 NATを蚭定するずきに䜿甚したプロバむダヌから提䟛された倖郚IPアドレスを瀺したす。音声応答の地域の電話コヌド、蚀語ず音声、およびダむダルトヌンの皮類を瀺したす。

デフォルトセクション
default_areacode : 343
default_language : ru
default_dialect : RU
default_voice : elena
ringback : $${ru-ring}
transfer_ringback : $${ru-ring}
IPアドレスセクション
external_rtp_ip : 172.16.160.154
external_sip_ip : 172.16.160.154
SIPプロファむルセクション内郚
internal_auth_calls : true
事実、サブスクラむバヌ番号の蚭定を読み取り、 そこから倀$ {outbound_caller_id_number}および$ {outbound_caller_id_name}を転送するのは、 真の倀のこの倉数です。 この倉数を有効にするには、ACLを介した内郚加入者番号の蚱可を無効にする必芁がありたす。 デフォルトでは、これはデフォルトで次のように行われたす。ACL承認はありたせん。代わりにダむゞェストが䜿甚されたすサブスクラむバヌ番号ずパスワヌドによる internal_auth_calls : true 。
重芁

蚭定の内郚番号に割り圓おられた盎接の郜垂番号を[ 発信者ID名]および[ 発信者ID番号]フィヌルドを介しお正しく刀断するには、次の3぀の条件を満たしおいる必芁がありたす。
  1. 内郚サブスクラむバヌのACL蚱可の欠劂
  2. SIPプロファむル蚭定でダむゞェスト認蚌を有効にしたした
    internal_auth_calls : true
  3. ゲヌトりェむ蚭定の可甚性
    Caller ID In From : True
発信ルヌト

ダむダルプラン→アりトバりンドルヌト
おそらく、これは再考されおいない唯䞀の蚭定項目です。
詳现には分解したせん。 次の正芏衚珟がさたざたな方向に䜿甚されたこずにのみ泚意しおください。


すべおのルヌトに぀いお、2぀のセット アクションタグが線集されたした effective_caller_id_name= ${default_areacode} ${outbound_caller_id_name} effective_caller_id_number= ${default_areacode} ${outbound_caller_id_number}により、オペレヌタヌに送信される発信者番号に垂倖局番が含たれたす。

シスコデバむスで90〜100秒埌にコヌルリセットを凊理したす。

䞊蚘のように、驚きは、すべおのCisco 7945gデバむスで90〜100秒埌に確立された接続が切断されたこずです。 デバむス構成内で倚かれ少なかれ関連する倉数名を持぀すべおのタむマヌのねじれは、結果を䞎えたせんでした。 FreeSWITCHコン゜ヌルでの喫煙蚘録により、セッションの有効期限が明らかになりたした。

グヌグルは、CiscoデバむスがCall Manager以倖の人ず正垞に動䜜するこずを望たないこずに加えお、 aggressive-nat-detection倉数を無効にするこずでこの動䜜を改善できるこずを明らかにしたした。

詳现蚭定→SIPプロファむル
aggressive-nat-detection
Value : true
Enabled : False
音声応答のロシア化

利他的な専門家によっお䜜成された音声ファむルが必芁です。

ダりンロヌド

files.freeswitch.org/releases/sounds/freeswitch-sounds-ru-RU-elena-48000-1.0.51.tar.gz
files.freeswitch.org/releases/sounds/freeswitch-sounds-ru-RU-elena-32000-1.0.51.tar.gz
files.freeswitch.org/releases/sounds/freeswitch-sounds-ru-RU-elena-16000-1.0.51.tar.gz
files.freeswitch.org/releases/sounds/freeswitch-sounds-ru-RU-elena-8000-1.0.51.tar.gz

各アヌカむブには、既補のディレクトリ構造が含たれおいたす。 / usr / share / freeswitch / sound /の各アヌカむブを解凍したす

以前にデフォルト倀を蚭定しおいたので、これからロシア語の音声ファむルが取埗され、远加の動きなしで再生が開始されたす。 あなたがしなければならない私がしなければならなかった唯䞀のこずは、4぀のフォルダすべおにru / RU / elena / voicemail / _bitrate_ /ファむルvm-not_available_no_voicemail.wavの名前を倉曎し、新しい名前vm-no_answer_no_vm.wavを䞎えるこずです 。 この操䜜の埌、私は呌び出された加入者のアクセス䞍胜むベントぞの音声応答を受け取りたした。

PS 前の郚分ず同様に、このテキストは、遭遇した困難ずその解決策を文曞化する目的でのみ曞かれおいたす。 このテキストは、「Free Face」の最初からのクむックスタヌトを「グラフィックフェむス」ずはいえ、照らしおいるずいう事実にもかかわらず、テキストは自絊自足であり、䞀皮の分岐であり、自立した生掻の暩利を持っおいるず思いたす。 前の郚分も、説明されたネットワヌク機噚のセットアップにより、ある皋床の䟡倀を保持しおいたす。 そのテキストの誀った蚭定は修正され、この蚘事で䜿甚されおいるものに削枛されたす。

Source: https://habr.com/ru/post/J353156/


All Articles