{"id":176019,"date":"2013-04-14T22:21:03","date_gmt":"2013-04-14T18:21:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=176019"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=176019","title":{"rendered":"<span class=\"post_title\">\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043d\u0430 Asterisk+Cisco<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0422\u0430\u043a \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441\u0440\u043e\u043a\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u0435\u0437\u0442\u0438 70 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u043c\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u043c\u0438 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u043b\u0430\u0441\u044c \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 \u043d\u043e\u0432\u043e\u043c \u043e\u0444\u0438\u0441\u0435 \u0443 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u0432 \u0410\u0422\u0421, \u0430 \u0410\u0422\u0421 \u0432 \u0441\u0442\u0430\u0440\u043e\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u043b\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441\u0440\u043e\u043a\u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u044e \u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0432\u0441\u0435\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0438\u0445 \u043b\u0438\u043d\u0438\u0439 \u043d\u0430 Asterisk. \u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043d\u0430 \u0434\u0435\u043d\u044c \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0434\u043d\u044e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e.<\/p>\n<p>  \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0448\u043b\u043e \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.<br \/>  \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u043c\u043d\u043e\u0433\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u043f\u0443\u0433\u0430\u0439\u0442\u0435\u0441\u044c.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0418\u0442\u0430\u043a \u0438\u043c\u0435\u044e\u0449\u0430\u044f\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f:  <\/p>\n<ul>\n<li>60 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u043c\u0438.<\/li>\n<li>60 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 Cisco SPA 502G<\/li>\n<li>4 \u043f\u0430\u043d\u0435\u043b\u0438 Cisco SPA500S<\/li>\n<li>5 \u0431\u0430\u0437 Siemens C610A \u0441 \u043f\u0430\u0440\u043e\u0439 \u0442\u0440\u0443\u0431\u043e\u043a \u043a \u043a\u0430\u0436\u0434\u043e\u0439.<\/li>\n<li>\u041e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 FreeBSD.<\/li>\n<li>\u041f\u0430\u0440\u0430 \u0441\u0432\u0438\u0447\u0435\u0439 Cisco SF300-24P<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0438\u0441\u043a\u0430\u0432 \u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 autoprovision \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e asterisk \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0430\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0412\u0441\u0451 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u043d\u043e \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0430\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 sql \u0431\u0430\u0437\u0443 \u0432 asterisk \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u044d\u043a\u0441\u0442\u0435\u043d\u0448\u0435\u043d\u0430 \u043d\u0430 \u0434\u043e\u043f\u043f\u0430\u043d\u0435\u043b\u044f\u0445. \u0422.\u0435. \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c hint(\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432 \u0430\u0432\u0433\u0443\u0441\u0442\u0435 2012 \u043e\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e\u0441\u044c). \u0418\u043c\u0435\u044f \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u0430\u0440\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0433\u043e autoprovision.<\/p>\n<p>  \u041d\u0430\u0447\u0430\u043b\u0438 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441\u0432\u0438\u0447\u0435\u0439. \u0421\u043e\u0437\u0434\u0430\u043b\u0438 2 VLAN \u0441 \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438 204 \u0438 214. \u041f\u0435\u0440\u0432\u044b\u0439 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043b\u044f IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438. \u0422.\u043a. \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u0438\u043c\u0435\u044e\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043b\u0443\u0447\u0448\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0441 \u043d\u0430\u0448\u0435\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f.<br \/>  \u0412\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0440\u0442\u044b \u043d\u0430 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440\u0430\u0445 \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0432 \u0442\u0440\u0430\u043d\u043a \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 native vlan.  <\/p>\n<pre><code class=\"coffeescript\">interface fastethernet1 switchport trunk allowed vlan add 204 switchport trunk native vlan 214 exit <\/code><\/pre>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u043a \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440\u0443 \u0432 \u0442\u0440\u0430\u043d\u043a\u043e\u0432\u044b\u0439 \u043f\u043e\u0440\u0442 \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <b>dhcpd.conf<\/b>  <\/p>\n<pre><code class=\"coffeescript\"># Phones Subnet Vlan 214 subnet 172.16.214.0 netmask 255.255.255.0 {         range 172.16.214.10 172.16.214.250;         option routers 172.16.214.1;         option tftp-server-name &quot;http:\/\/172.16.214.1\/XMLDefault.cnf.xml&quot;;         option domain-name &quot;phones.mydomain.local&quot;;         option domain-name-servers 172.16.214.1;         option broadcast-address 172.16.214.255;         ddns-updates on;         ddns-domainname &quot;phones.mydomain.local&quot;;         ddns-rev-domainname &quot;in-addr.arpa&quot;; }  # Computers Subnet Vlan 204 subnet 172.16.6.0 netmask 255.255.255.0 {   range 172.16.6.12 172.16.6.240;   option broadcast-address 172.16.6.255;   option domain-name-servers 172.16.6.1;   option domain-name &quot;mydomain.local&quot;;   option routers 172.16.6.1;   if option host-name = &quot;&quot; {         option host-name = concat (&quot;dev-&quot;, binary-to-ascii( 10, 8, &quot;&quot;, substring( reverse( 1, leased-address), 0, 1)));         ddns-hostname = concat (&quot;dev-&quot;, binary-to-ascii( 10, 8, &quot;&quot;, substring( reverse( 1, leased-address), 0, 1)));   } } <\/code><\/pre>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u0410\u0434\u0440\u0435\u0441\u043e\u0447\u043a\u0438 \u0440\u0430\u0437\u0434\u0430\u044e\u0442\u0441\u044f, \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u0431\u0443\u0442\u044f\u0442\u0441\u044f, \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433.<br \/>  \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c thttpd \u0438 \u043a\u043b\u0430\u0434\u0451\u043c \u0435\u043c\u0443 \u0432 \u043a\u043e\u0440\u0435\u043d\u044c <b>XMLDefault.cnf.xml<\/b>  <\/p>\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt; &lt;flat-profile xmlns=&quot;http:\/\/www.sipura.net\/xsd\/SPA50x-30x-SIP&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http:\/\/www.sipura.net\/xsd\/SPA50x-30x-SIP http:\/\/www.sipura.net\/xsd\/SPA50x-30x-SIP\/SPA50x-30x-SIP-7-5-2.xsd&quot;&gt;  &lt;Admin_Passwd ua=&quot;na&quot;&gt;7654321&lt;\/Admin_Passwd&gt; &lt;SPCP_Auto-detect ua=&quot;na&quot;&gt;No&lt;\/SPCP_Auto-detect&gt; &lt;Domain ua=&quot;rw&quot;&gt;phones.mydomain.local&lt;\/Domain&gt; &lt;Primary_DNS ua=&quot;rw&quot;&gt;172.16.214.1&lt;\/Primary_DNS&gt; &lt;Syslog_Server ua=&quot;na&quot;&gt;172.16.214.1&lt;\/Syslog_Server&gt; &lt;Debug_Server ua=&quot;na&quot;&gt;172.16.214.1&lt;\/Debug_Server&gt; &lt;Debug_Level ua=&quot;na&quot;&gt;0&lt;\/Debug_Level&gt; &lt;Primary_NTP_Server ua=&quot;na&quot;&gt;172.16.214.1&lt;\/Primary_NTP_Server&gt; &lt;Enable_VLAN ua=&quot;rw&quot;&gt;Yes&lt;\/Enable_VLAN&gt; &lt;Enable_PC_Port_VLAN_Tagging ua=&quot;na&quot;&gt;Yes&lt;\/Enable_PC_Port_VLAN_Tagging&gt; &lt;Enable_CDP ua=&quot;na&quot;&gt;No&lt;\/Enable_CDP&gt; &lt;Enable_LLDP-MED ua=&quot;na&quot;&gt;No&lt;\/Enable_LLDP-MED&gt; &lt;PC_Port_VLAN_ID ua=&quot;na&quot;&gt;204&lt;\/PC_Port_VLAN_ID&gt; &lt;Profile_Rule ua=&quot;na&quot;&gt;http:\/\/172.16.214.1\/XMLDefault.cnf.xml&lt;\/Profile_Rule&gt; &lt;Profile_Rule_B ua=&quot;na&quot;&gt;http:\/\/172.16.214.1\/cfg\/cfg.cgi?SN=$SN&MAC=$MA&lt;\/Profile_Rule_B&gt; &lt;Key_System_Auto_Discovery ua=&quot;na&quot;&gt;No&lt;\/Key_System_Auto_Discovery&gt; &lt;G722_Enable_1_ ua=&quot;na&quot;&gt;Yes&lt;\/G722_Enable_1_&gt; &lt;L16_Enable_1_ ua=&quot;na&quot;&gt;No&lt;\/L16_Enable_1_&gt; &lt;G726-16_Enable_1_ ua=&quot;na&quot;&gt;No&lt;\/G726-16_Enable_1_&gt; &lt;G726-24_Enable_1_ ua=&quot;na&quot;&gt;No&lt;\/G726-24_Enable_1_&gt; &lt;G726-32_Enable_1_ ua=&quot;na&quot;&gt;No&lt;\/G726-32_Enable_1_&gt; &lt;G726-40_Enable_1_ ua=&quot;na&quot;&gt;No&lt;\/G726-40_Enable_1_&gt; &lt;Enable_IP_Dialing_1_ ua=&quot;na&quot;&gt;No&lt;\/Enable_IP_Dialing_1_&gt; &lt;Use_Remote_Pref_Codec_1_ ua=&quot;na&quot;&gt;Yes&lt;\/Use_Remote_Pref_Codec_1_&gt; &lt;Time_Format ua=&quot;rw&quot;&gt;24hr&lt;\/Time_Format&gt; &lt;Date_Format ua=&quot;rw&quot;&gt;day\/month&lt;\/Date_Format&gt; &lt;Text_Logo ua=&quot;na&quot;&gt;Company&lt;\/Text_Logo&gt; &lt;Time_Zone ua=&quot;na&quot;&gt;GMT+04:00&lt;\/Time_Zone&gt; &lt;Upgrade_Rule ua=&quot;na&quot;&gt;( $SWVER ne 7.5.2b )? http:\/\/172.16.214.1\/sw\/spa50x-30x-7-5-2b.bin&lt;\/Upgrade_Rule&gt; &lt;\/flat-profile&gt; <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432\u043e\u0437\u044c\u043c\u0451\u0442 \u0438\u0437 dhcp \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0430\u0432\u0442\u043e\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0431\u0435\u0440\u0435\u0442 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433, \u043e\u043d \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u0443\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043a \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0435\u0433\u043e \u043c\u0430\u043a \u0430\u0434\u0440\u0435\u0441\u0443. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430, \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u0442 \u043f\u043e\u0440\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0432 204 VLAN, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432 \u0435\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u044c\u044e.<br \/>  \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0441\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438:  <\/p>\n<pre><code class=\"bash\">sqlite=&quot;\/usr\/local\/bin\/sqlite3&quot; ast_provisiondb=&quot;\/var\/db\/asterisk\/asterisk_provision.sqlite3&quot; ast_ext_dialplan=&quot;\/var\/db\/asterisk\/asterisk_ext_dialplan.conf&quot; ast_ext_accounts=&quot;\/var\/db\/asterisk\/asterisk_ext_accounts.conf&quot; logger_tag=&quot;astprov&quot; include=&quot;\/etc\/rc.conf&quot; <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0431\u0430\u0437\u0443 sqlite3 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b:  <\/p>\n<pre><code class=\"sql\">PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE `provision` ( `macaddress` varchar(12) NOT NULL, `serial` varchar(12) NOT NULL, `secret` varchar(32) NOT NULL, `ext` int(11) NOT NULL, `fullname` varchar(64) NOT NULL, `callerid` varchar(64) NOT NULL, `callgroup` varchar(32) NOT NULL default '1', `pickupgroup` varchar(32) NOT NULL default '1', `context` varchar(32) NOT NULL, `subscribecontext` varchar(32) NOT NULL default '1', `ip` varchar(15) NOT NULL); COMMIT; <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043c\u0435\u0441\u0442 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0430\u0439\u043b \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u043c\u0438  <\/p>\n<pre><code class=\"coffeescript\">3027|Buhgalter 3097|Igor 3018|Sergey 3016|Oleg 3091|Vladimir 3014|Ekaterina 3012|Andrey 3015|Maxim <\/code><\/pre>\n<p>  \u0438 \u0441\u043a\u0430\u0440\u043c\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh set -x . \/usr\/local\/etc\/astprov.subr  context='local_pool' callgroup=1 pickupgroup=1 subscribecontext=1 ip=&quot;none&quot; cat $1 | while IFS= read -r line; do         randomstr=`&lt; \/dev\/urandom tr -dc A-Za-z0-9 | head -c10`         randompas=`&lt; \/dev\/urandom tr -dc A-Za-z0-9 | head -c10`         ext=$(echo $line | cut -d '|' -f1 )         fullname=$(echo $line | cut -d '|' -f2 )         # fullname &lt;&lt;&lt; $(IFS=&quot;;&quot;; echo $line)         insertline=&quot;insert into provision values ('$randomstr','$randompas','$randompas',$ext,'$fullname','$fullname &lt;$ext&gt;',$callgroup,$pickupgroup,'$context',$subscribecontext,'$ip')&quot; #       echo $insertline         $sqlitecmd &quot;$insertline&quot; done <\/code><\/pre>\n<p>  \u0441\u043a\u0440\u0438\u043f\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442 \u0431\u0430\u0437\u0443 \u0438 \u0434\u0430\u0441\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0434\u043e\u0432\u0441\u0442\u0432\u0430.<br \/>  Asterisk \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434 \u0443\u0447\u0451\u0442\u043a\u043e\u0439 asterisk:asterisk, thttpd \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434 www:www. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0433\u0440\u0443\u043f\u043f\u0443 astprov \u043a\u0443\u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c asterisk \u0438 www.  <\/p>\n<pre><code class=\"bash\"># chown -R asterisk.astprov \/var\/db\/asterisk # chmod 0775 \/var\/db\/asterisk # chmod 0664 \/var\/db\/asterisk\/* <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u043a\u0440\u0438\u043f\u0442 <b>\/usr\/local\/www\/data\/cfg\/cfg.cgi<\/b>, \u044f \u043b\u044e\u0431\u043b\u044e perl \u043f\u043e\u0441\u0435\u043c\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u043b\u0435.  <\/p>\n<pre><code class=\"perl\">#!\/usr\/bin\/perl  use strict; #use Data::Dumper; use DBI; use vars qw\/%sv %form %cookie %rq $sth $dbh $config\/; use FileHandle; use Sys::Syslog qw(:standard);  my $configfilename=&quot;\/usr\/local\/etc\/astprov.conf&quot;; $config=_read_config_file($configfilename);  &systeminit; &printhead; #$form{SN}='CBT1602095Z'; #$form{MAC}='649ef37761c2'; #$sv{ip}=&quot;172.16.214.10&quot;;  openlog(&quot;astprov&quot;, 'cons,pid');  exit(1) if (not defined $form{SN} or not defined $form{MAC});  &baseconnect; &get_info; &baseclose; closelog(); exit(1);  sub get_info { $form{SN} =~ s\/[^0-9A-Za-z]\/\/g; $form{MAC} =~ s\/[^0-9A-Za-z]\/\/g; my $dbdata; if($dbdata = &request_phone_info)     {         &print_xml($dbdata);     } else {     if(keys %{$dbdata} &lt; 1)     {         &insert_new_phone;     }     $dbdata = &request_phone_info;     &print_xml($dbdata); } #print Dumper $dbdata; }  sub print_xml { my $dbdata=shift; my $additional; if(-f &quot;\/usr\/local\/www\/data\/cfg\/additional&quot;.lc($form{MAC}).&quot;.xml&quot;) {     open IN,&quot;&lt;\/usr\/local\/www\/data\/cfg\/additional&quot;.lc($form{MAC}).&quot;.xml&quot;;     undef $\/;     $additional = &lt;IN&gt;;     close IN; } my $hostname = &quot;office-&quot;.$dbdata-&gt;{ext}; print &lt;&lt; &quot;[end]&quot;; &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt; &lt;flat-profile xmlns=&quot;http:\/\/www.sipura.net\/xsd\/SPA50x-30x-SIP&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http:\/\/www.sipura.net\/xsd\/SPA50x-30x-SIP http:\/\/www.sipura.net\/xsd\/SPA50x-30x-SIP\/SPA50x-30x-SIP-7-5-2.xsd&quot;&gt;         &lt;HostName ua=&quot;rw&quot;&gt;$hostname&lt;\/HostName&gt;         &lt;Phone-UI-readonly ua=&quot;na&quot;&gt;Yes&lt;\/Phone-UI-readonly&gt;         &lt;Phone-UI-user-mode ua=&quot;na&quot;&gt;Yes&lt;\/Phone-UI-user-mode&gt;         &lt;Proxy_1_ ua=&quot;na&quot;&gt;172.16.214.1&lt;\/Proxy_1_&gt;         &lt;Display_Name_1_ ua=&quot;na&quot;&gt;$dbdata-&gt;{fullname}&lt;\/Display_Name_1_&gt;         &lt;User_ID_1_ ua=&quot;na&quot;&gt;$dbdata-&gt;{ext}&lt;\/User_ID_1_&gt;         &lt;Password_1_ ua=&quot;na&quot;&gt;$dbdata-&gt;{secret}&lt;\/Password_1_&gt;         &lt;Dial_Plan_1_ ua=&quot;na&quot;&gt;(7[0-9][0-9]xxxxS0|*8|*xx|xxxx|0xxxxxxxxxxxx.)&lt;\/Dial_Plan_1_&gt;         &lt;Station_Name ua=&quot;na&quot;&gt;$dbdata-&gt;{ext}&lt;\/Station_Name&gt;         &lt;Station_Display_Name ua=&quot;na&quot;&gt;$dbdata-&gt;{fullname}&lt;\/Station_Display_Name&gt;         &lt;Server_Type ua=&quot;na&quot;&gt;Asterisk&lt;\/Server_Type&gt;         &lt;XML_Directory_Service_Name ua=&quot;na&quot;&gt;My Company&lt;\/XML_Directory_Service_Name&gt;         &lt;XML_Directory_Service_URL ua=&quot;na&quot;&gt;http:\/\/172.16.213.1\/directory.cgi&lt;\/XML_Directory_Service_URL&gt; $additional &lt;\/flat-profile&gt; [end] }  sub request_phone_info { my $cmd = &quot;select ext,callerid,fullname,secret from provision where macaddress='&quot;.lc($form{MAC}).&quot;' and serial='&quot;.lc($form{SN}).&quot;'&quot;; my $dbdata = $dbh-&gt;selectrow_hashref($cmd); if($dbh-&gt;err) {     print &quot;cmd = &quot;,$cmd,&quot;\\n&quot;;     print &quot;err = &quot;,$dbh-&gt;err,&quot;\\n&quot;;     print &quot;errstr = &quot;,$dbh-&gt;errstr,&quot;\\n&quot;;     print &quot;state = &quot;,$dbh-&gt;state,&quot;\\n&quot;;     return undef; } return $dbdata; }  sub insert_new_phone {     my $maxnum = $dbh-&gt;selectrow_array(&quot;SELECT MAX(ext) FROM provision where ext &lt; 2000&quot;) || &quot;1000&quot;;     $maxnum++;     $dbh-&gt;do(&quot;INSERT INTO provision (ip,macaddress,serial,secret,ext,fullname,callerid,context) VALUES ('&quot;.join (&quot;','&quot;,$sv{ip},lc($form{MAC}),lc($form{SN}),lc($form{SN}),$maxnum,'Unregistered','Unregistered &lt;'.$maxnum.'&gt;','unreg').&quot;')&quot;);     syslog('info|local7',&quot;New host added MAC:$form{MAC} SN:$form{SN}&quot;);      if($dbh-&gt;err)     {         print &quot;err = &quot;,$dbh-&gt;err,&quot;\\n&quot;;         print &quot;errstr = &quot;,$dbh-&gt;errstr,&quot;\\n&quot;;         print &quot;state = &quot;,$dbh-&gt;state,&quot;\\n&quot;;         exit(1);     } }   sub systeminit { $sv{&quot;ip&quot;} = $ENV{&quot;REMOTE_ADDR&quot;}; $sv{&quot;userhost&quot;} = $ENV{&quot;REMOTE_HOST&quot;}; $sv{&quot;url&quot;} = $ENV{&quot;HTTP_HOST&quot;}; $sv{&quot;doc&quot;} = $ENV{&quot;DOCUMENT_ROOT&quot;}; $sv{&quot;ref&quot;} = $ENV{&quot;HTTP_REFERER&quot;};  # ----------------------------------------------------------------------------------------  my $request_url = $ENV{&quot;REQUEST_URI&quot;}; $request_url =~ s\/%(..)\/pack(&quot;c&quot;,hex($1))\/ge; $request_url =~ s\/[^A-Za-z0-9\\-\\_\\+\\=\\:\\.\\,\\\/\\@]\/\/g; $request_url =~ s\/([\\-\\_\\+\\=\\.\\:\\,\\\/\\@\\s]){2,}\/$1\/g; $request_url =~ s\/\\+\/\\&\/g; $request_url =~ s\/^\\\/+\/\/g; my $count = 0; while ($request_url =~ \/^([\\w\\-\\=\\_\\&\\.\\,\\:\\@\\s]+)\\\/\/) {       $rq{$count} = $1; $request_url =~ s\/$rq{$count}\\\/\/\/; $count++;  } $request_url =~ s\/^\\s+$\/\/g; chomp $request_url; $rq{$count} = $request_url if (length($request_url) &gt; 0);  # ----------------------------------------------------------------------------------------  if ( defined($ENV{&quot;HTTP_COOKIE&quot;}) && length($ENV{&quot;HTTP_COOKIE&quot;}) &gt; 0 ) {     my @cookies = split(\/;\/,$ENV{&quot;HTTP_COOKIE&quot;});     foreach (@cookies)     {         my ($name,$value) = split(\/=\/,$_);         $cookie{$name} = $value;     } }  # ----------------------------------------------------------------------------------------      if ((defined($ENV{&quot;QUERY_STRING&quot;}) && length($ENV{&quot;QUERY_STRING&quot;}) != 0) || (defined($ENV{&quot;CONTENT_LENGTH&quot;}) && $ENV{&quot;CONTENT_LENGTH&quot;} != 0))     {         my $data = undef;         my @data = undef;             if ($ENV{&quot;REQUEST_METHOD&quot;} eq &quot;GET&quot;)             {                 $data = $ENV{&quot;QUERY_STRING&quot;};             }             else             {                 read(STDIN,$data,$ENV{&quot;CONTENT_LENGTH&quot;});             }         @data = split(\/&\/,$data);             foreach (@data)             {                 $_ =~ s\/\\+\/ \/g;                 my ($name, $value) = split(\/=\/,$_,2);                 $name =~ s\/%(..)\/pack(&quot;c&quot;,hex($1))\/ge;                 $name =~ tr\/[^A-Za-z0-9\\-\\_\\$\\+\\=\\~\\.\\,]\/\/;                 $value =~ s\/%(..)\/pack(&quot;c&quot;,hex($1))\/ge;                 $form{$name} .= &quot;\\0&quot; if (defined($form{$name}));                 $form{$name} .= $value;             }     } }  sub baseconnect { my $dbname = eval $config-&gt;{ast_provisiondb}; $dbh = DBI-&gt;connect(&quot;dbi:SQLite:dbname=$dbname&quot;,&quot;&quot;,&quot;&quot;); $sth = $dbh-&gt;table_info('%', '%', 'provision'); my $result = $sth-&gt;fetchall_hashref('TABLE_NAME'); if(!defined($result-&gt;{'provision'})) { $dbh-&gt;do(&quot; CREATE TABLE `provision` ( `macaddress` varchar(12) NOT NULL, `serial` varchar(12) NOT NULL, `secret` varchar(32) NOT NULL, `ext` int(11) NOT NULL, `fullname` varchar(64) NOT NULL, `callerid` varchar(64) NOT NULL, `callgroup` varchar(32) NOT NULL default '1', `pickupgroup` varchar(32) NOT NULL default '1', `context` varchar(32) NOT NULL, `subscribecontext` varchar(32) NOT NULL default 'internal_phones', `ip` varchar(15) NOT NULL) &quot;);  } }  sub baseclose { if ($dbh-&gt;{Active} && defined($sth)) { $sth-&gt;finish }; $dbh-&gt;disconnect; }  sub printhead { print &quot;Content-Type: text\/plain; charset=UTF-8;\\r\\n\\r\\n&quot;; }   sub _read_config_file {     my $file = shift or return;      my $conf = {};     my $FH = new FileHandle;     $FH-&gt;open(&quot;$file&quot;) or (                         warn(loc(q[Could not open config file '%1': %2],$file,$!)),                         return {}                     );      while(&lt;$FH&gt;) {         next if     \/\\s*#\/;         next unless \/\\S\/;          chomp; s\/^\\s*\/\/; s\/\\s*$\/\/;          my ($param,$val) = split \/\\s*=\\s*\/;          ### add these to the config hash ###         $conf-&gt;{ lc $param } = $val;     }     close $FH;      return $conf; }  <\/code><\/pre>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 MAC \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0435\u0433\u043e \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0441\u0432\u044f\u0437\u043a\u0430 \u0435\u0441\u0442\u044c \u0432 \u0431\u0430\u0437\u0435, \u0442\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c\/\u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443. \u0415\u0441\u043b\u0438 \u0441\u0432\u044f\u0437\u043a\u0438 \u043d\u0435\u0442, \u0442\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0430\u0437\u0443, \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\u00bb, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442 1000 \u0434\u043e 2000 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433. \u0415\u0441\u043b\u0438 \u0432 \u043f\u0430\u043f\u043a\u0443 &quot;<b>cfg<\/b>&quot; \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <b>additional&lt;MAC&gt;.xml<\/b>, \u0442\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u0430\u043d\u0435\u043b\u0435\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"xml\">&lt;Attendant_Console_Call_Pickup_Code ua=&quot;na&quot;&gt;*8&lt;\/Attendant_Console_Call_Pickup_Code&gt; &lt;Unit_1_Key_1 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2010@172.16.213.1;nme=2010&lt;\/Unit_1_Key_1&gt; &lt;Unit_1_Key_2 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2012@172.16.213.1;nme=2012&lt;\/Unit_1_Key_2&gt; &lt;Unit_1_Key_3 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2014@172.16.213.1;nme=2014&lt;\/Unit_1_Key_3&gt; &lt;Unit_1_Key_4 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2100@172.16.213.1;nme=2100&lt;\/Unit_1_Key_4&gt; &lt;Unit_1_Key_5 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2110@172.16.213.1;nme=2110&lt;\/Unit_1_Key_5&gt; &lt;Unit_1_Key_6 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2111@172.16.213.1;nme=2111&lt;\/Unit_1_Key_6&gt; &lt;Unit_1_Key_7 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2112@172.16.213.1;nme=2112&lt;\/Unit_1_Key_7&gt; &lt;Unit_1_Key_8 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2120@172.16.213.1;nme=2120&lt;\/Unit_1_Key_8&gt; &lt;Unit_1_Key_9 ua=&quot;na&quot;&gt;fnc=sd+cp+blf;sub=2121@172.16.213.1;nme=2121&lt;\/Unit_1_Key_9&gt; <\/code><\/pre>\n<p>  \u0438\u043b\u0438 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0435\u0433\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 VLAN  <\/p>\n<pre><code class=\"xml\">&lt;Enable_VLAN ua=&quot;rw&quot;&gt;Yes&lt;\/Enable_VLAN&gt; &lt;Enable_PC_Port_VLAN_Tagging ua=&quot;na&quot;&gt;Yes&lt;\/Enable_PC_Port_VLAN_Tagging&gt; &lt;Enable_CDP ua=&quot;na&quot;&gt;No&lt;\/Enable_CDP&gt; &lt;Enable_LLDP-MED ua=&quot;na&quot;&gt;No&lt;\/Enable_LLDP-MED&gt; &lt;PC_Port_VLAN_ID ua=&quot;na&quot;&gt;300&lt;\/PC_Port_VLAN_ID&gt; <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043b\u0438 \u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043b\u0438 \u0438\u043c \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433.<br \/>  \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0440\u0443\u043a\u0430\u043c\u0438, \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0432 \u0432 thttpd.log \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u0430\u0441\u0442\u0435\u0440\u0438\u0441\u043a\u0430. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u0448\u0435\u0442 \u043d\u0430 \u0442\u043e\u043c, \u043d\u0430 \u0447\u0451\u043c \u0435\u043c\u0443 \u0443\u0434\u043e\u0431\u043d\u043e, \u043d\u043e \u0443\u0436 \u043a\u043e\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0440\u0443\u043b\u0438\u0442\u044c sqlite3 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0436\u0435\u043b\u0435\u0437\u043e\u0431\u0435\u0442\u043e\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 shell. \u0421 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430 \u0441\u0442\u0440\u0430\u0448\u043d\u043e, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e. \u041e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u0430 \u0441 asterisk. \u0412\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 asterisk \u043b\u043e\u0433\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b. \u041f\u043e\u0447\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u043f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438. \u0415\u0441\u043b\u0438 \u043d\u0438\u0436\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0443\u0442\u044c, \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u043b\u0435\u0436\u0438\u0442 \u0432 <b>\/usr\/local\/etc\/asterisk\/scripts\/<\/b>.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0444\u0438\u0433 extensions.conf \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c<br \/>  <b>#include &quot;\/var\/db\/asterisk\/asterisk_ext_dialplan.conf&quot;<\/b><\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0444\u0438\u0433 sip.conf \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <br \/>  <b>#include &quot;\/var\/db\/asterisk\/asterisk_ext_accounts.conf&quot;<\/b><\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 asterisk \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0433\u0440\u0443\u043f\u043f\u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432:<br \/>  <b>\/usr\/local\/etc\/astprov.subr<\/b> \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  . \/usr\/local\/etc\/astprov.conf  #set -x  getvalue() {         result=         _request=$1         _ext=$2         selectcmd='select '${_request}' from provision where ext='${_ext}';'         result=`$sqlitecmd &quot;$selectcmd&quot;`         if [ &quot;$result&quot; ]; then                 echo $result                 return 0         else                 syslog &quot;Error: SQL request cannot be made (request ${_request},extention ${_ext})&quot;                 return 1         fi }  checkvalue() {         result=         _request=$1         _ext=$2         selectcmd='select '${_request}' from provision where ext='${_ext}';'         result=`$sqlitecmd &quot;$selectcmd&quot;`         echo $result         return 0 }  setvalue() {         result=         _what=$1         _new=$2         _where=$3         _old=$4         updatecmd=&quot;update provision set ${_what}='${_new}' where ${_where}='${_old}';&quot;         $sqlitecmd &quot;$updatecmd&quot;         if [ $? -ne 0 ]; then                 syslog &quot;Error: SQL update cannot be made (set ${_what}=${_new} where ${_where}=${_old})&quot;                 return 1         else                 return 0         fi }  get_script_name() {          result=          result=`echo $0 | rev | cut -d\/ -f1 | rev`          echo $result }  syslog() {         result=         _message=$@         logger -t $logger_tag `get_script_name`&quot;: ${_message}&quot; }  sqlitecmdcoln=&quot;$sqlite -column $ast_provisiondb&quot; sqlitecmdline=&quot;$sqlite -line $ast_provisiondb&quot; sqlitecmd=&quot;$sqlite $ast_provisiondb&quot; <\/code><\/pre>\n<p>  <b>showall.sh<\/b> \u0434\u0430\u043c\u043f \u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh set -e . \/usr\/local\/etc\/astprov.subr $sqlitecmd 'select * from provision' <\/code><\/pre>\n<p>  <b>rebuildlist.sh<\/b> \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f asterisk.  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  set -e  . \/usr\/local\/etc\/astprov.subr  if [ -f $ast_ext_accounts -a ! -w $ast_ext_accounts ]; then         syslog 'Cannot write to astprov extension database'         exit 1 fi if [ -f $ast_ext_accounts ]; then         mv $ast_ext_accounts $ast_ext_accounts.backup fi if [ -f $ast_ext_dialplan -a ! -w $ast_ext_dialplan ]; then         syslog 'Cannot write to astprov extension dialplan'         exit 1 fi if [ -f $ast_ext_dialplan ]; then         mv $ast_ext_dialplan $ast_ext_dialplan.backup fi echo '[dynamic_internal_numbers]' &gt;&gt; $ast_ext_dialplan selectcmd='select ext from provision order by ext;' for ext in `$sqlitecmdcoln &quot;$selectcmd&quot;`; do         echo 'exten =&gt; '$ext',1,dumpchan()' &gt;&gt; $ast_ext_dialplan         echo 'same =&gt; n,Dial(SIP\/'$ext',60,Tt)' &gt;&gt; $ast_ext_dialplan         echo 'same =&gt; hint,SIP\/'$ext &gt;&gt; $ast_ext_dialplan         echo 'same =&gt; n,Hangup()' &gt;&gt; $ast_ext_dialplan         echo ''&gt;&gt; $ast_ext_dialplan         selectcmd='select callerid,fullname,macaddress,secret,context,callgroup,pickupgroup,subscribecontext,ip from provision where ext='$ext';'         echo '['$ext'](all)' &gt;&gt; $ast_ext_accounts $sqlitecmdline &quot;$selectcmd&quot; | sed -E 's\/ = \/=\/g' |                 while IFS= read -r line; do                 echo $line &gt;&gt; $ast_ext_accounts         done         echo &gt;&gt; $ast_ext_accounts done syslog 'Asterisk dynamic list succesfully updated' <\/code><\/pre>\n<p>  <b>changenumber.sh<\/b> \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043c\u0435\u043d\u044b \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439.  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  #set -x  . \/usr\/local\/etc\/astprov.subr  oldname=`getvalue 'ext' $1` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then         echo -n GETERR         exit fi numberexist=`checkvalue 'ext' $2` if [ -z &quot;$numberexist&quot; ]; then         setvalue 'ext' $2 'ext' $1         if [ &quot;$?&quot; -ne &quot;0&quot; ]; then                 echo -n SETERR                 exit         fi         setvalue 'callerid' &quot;$oldname &lt;$2&gt;&quot; 'ext' $2         if [ &quot;$?&quot; -ne &quot;0&quot; ]; then                 echo -n SETERR                 exit         fi         syslog &quot;Number $1 renamed to $2&quot;         echo -n OK else         syslog &quot;Number $1 cannot be renamed to $2. Number $2 already exist&quot;         echo -n NUMEXIST         exit #       return 1 fi <\/code><\/pre>\n<p>  <b>togglenumbers.sh<\/b> \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u043c\u0435\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432. \u0441\u043a\u0430\u0436\u0435\u043c \u043d\u0443\u0436\u043d\u043e ext 1023 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0441 2035. \u041e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0441\u0430\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0438. \u0422\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u0430\u043c\u0438.  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  #set -x  . \/usr\/local\/etc\/astprov.subr  macaddress_from=`getvalue 'macaddress' $1` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n GETERR ; exit ; fi  macaddress_to=`getvalue 'macaddress' $2` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n GETERR; exit; fi  secret_from=`getvalue 'secret' $1` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n GETERR; exit; fi  secret_to=`getvalue 'secret' $2` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n GETERR; exit; fi  serial_from=`getvalue 'serial' $1` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n GETERR; exit; fi  serial_to=`getvalue 'serial' $2` if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n GETERR; exit; fi  setvalue macaddress $macaddress_from'_'$macaddress_to macaddress $macaddress_from if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue macaddress $macaddress_to'_'$macaddress_from macaddress $macaddress_to if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue secret $secret_to macaddress $macaddress_from'_'$macaddress_to if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue secret $secret_from macaddress $macaddress_to'_'$macaddress_from if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue serial $serial_to macaddress $macaddress_from'_'$macaddress_to if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue serial $serial_from macaddress $macaddress_to'_'$macaddress_from if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue macaddress $macaddress_to macaddress $macaddress_from'_'$macaddress_to if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  setvalue macaddress $macaddress_from macaddress $macaddress_to'_'$macaddress_from if [ &quot;$?&quot; -ne &quot;0&quot; ]; then echo -n SETERR; exit; fi  syslog &quot;Phones $1($serial_from:$macaddress_from) and $2($serial_to:$macaddress_to) are reversed&quot; echo -n OK <\/code><\/pre>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u044b. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438 \u0440\u0443\u043a\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437<br \/>  <b>su -m asterisk<\/b>, \u043d\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u00ab\u0444\u0438\u0447\u0443\u00bb \u0432 asterisk.<br \/>  \u0422.\u043a. \u0432\u0441\u0435 \u043d\u043e\u0432\u044b\u0435 \u043d\u0435\u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 &quot;[unreg]&quot;, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432 asterisk \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<pre><code class=\"coffeescript\">;goto service menu exten =&gt; 3999,1,Goto(unreg,_X.,1)  [unreg] exten =&gt; _X.,1,Answer() ;same =&gt; n,Authenticate(040478) same =&gt; n,NoOp(Entering Service Menu) same =&gt; n,Playback(ivr\/prov-welcome-to-service-menu) same =&gt; n(menu),Background(ivr\/change-number&ivr\/swap-numbers&ivr\/rebuild-list&ivr\/reboot-phone&ivr\/reload-server) same =&gt; n,Read(CHOICE,,1,,1,10) ; 1 - Change Number ; 2 - Swap Numbers ; 3 - Rebuild extensions list ; 4 - Reload phone ; 5 - Reload server  ; Rename Number exten =&gt; 1,1,Read(RENAMETO,ivr\/enter-dest-number,4,,1,5) same =&gt; n,GotoIf($[&quot;${RENAMETO}&quot; = &quot;&quot;]?menu) same =&gt; n,Playback(ivr\/entered-number) same =&gt; n,SayDigits(${RENAMETO}) same =&gt; n,Read(APPROVE,ivr\/press-1-for-accept,1,,1,5) same =&gt; n,GotoIf($[&quot;${APPROVE}&quot; != &quot;1&quot;]?menu) same =&gt; n,Set(CHGNM=${SHELL(\/usr\/local\/etc\/asterisk\/scripts\/changenumber.sh ${CALLERID(num)} ${RENAMETO})}) same =&gt; n,NoOp(${CHGNM}) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;GETERR&quot;]?geterr) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;SETERR&quot;]?seterr) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;NUMEXIST&quot;]?numexist) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;OK&quot;]?ok) same =&gt; n(ok),Playback(ivr\/prov-saved&privacy-thankyou) same =&gt; n,System(\/usr\/local\/etc\/asterisk\/scripts\/rebuildlist.sh) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/rebuild-ok) same =&gt; n,System(\/usr\/local\/sbin\/asterisk -rx &quot;sip notify cisco-check-cfg ${CALLERID(num)}&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/send-phone-reboot-ok) same =&gt; n,System(\/usr\/local\/sbin\/asterisk -rx &quot;reload&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/server-reload-ok) same =&gt; n,Hangup() same =&gt; n(geterr),Playback(ivr\/script-get-error) same =&gt; n,Hangup() same =&gt; n(seterr),Playback(ivr\/script-set-error) same =&gt; n,Hangup() same =&gt; n(numexist),Playback(ivr\/prov-exist) same =&gt; n,Hangup() same =&gt; n(menu),Goto(_X.,menu) same =&gt; n,Hangup() same =&gt; n(error),Playback(ivr\/script-error) same =&gt; n,Hangup()  ; Reverse numbers exten =&gt; 2,1,Read(SWAPTO,ivr\/enter-dest-number,4,,1,5) same =&gt; n,GotoIf($[&quot;${SWAPTO}&quot; = &quot;&quot;]?menu) same =&gt; n,Playback(ivr\/entered-number) same =&gt; n,SayDigits(${SWAPTO}) same =&gt; n,Read(APPROVE,ivr\/press-1-for-accept,1,,1,5) same =&gt; n,GotoIf($[&quot;${APPROVE}&quot; != &quot;1&quot;]?menu) same =&gt; n,Set(CHGNM=${SHELL(\/usr\/local\/etc\/asterisk\/scripts\/togglenumbers.sh ${CALLERID(num)} ${SWAPTO})}) same =&gt; n,NoOp(${CHGNM}) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;GETERR&quot;]?geterr) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;SETERR&quot;]?seterr) same =&gt; n,GotoIf($[&quot;${CHGNM}&quot; = &quot;OK&quot;]?ok) same =&gt; n(ok),Playback(ivr\/prov-saved&privacy-thankyou) same =&gt; n,System(\/usr\/local\/etc\/asterisk\/scripts\/rebuildlist.sh) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/rebuild-ok) same =&gt; n,System(\/usr\/local\/sbin\/asterisk -rx &quot;sip notify cisco-check-cfg ${CALLERID(num)} ${SWAPTO}&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/send-phone-reboot-ok) same =&gt; n,System(\/usr\/local\/sbin\/asterisk -rx &quot;reload&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/server-reload-ok) same =&gt; n,Hangup() same =&gt; n(geterr),Playback(ivr\/script-get-error) same =&gt; n,Hangup() same =&gt; n(seterr),Playback(ivr\/script-set-error) same =&gt; n,Hangup() same =&gt; n(error),Playback(ivr\/script-error) same =&gt; n,Hangup() same =&gt; n(menu),Goto(_X.,menu) same =&gt; n,Hangup()  exten =&gt; 3,1,System(\/usr\/local\/etc\/asterisk\/scripts\/rebuildlist.sh) same =&gt; n,NoOp(${SYSTEMSTATUS}) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/rebuild-ok) same =&gt; n,System(\/usr\/local\/sbin\/asterisk -rx &quot;reload&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/server-reload-ok) same =&gt; n,Goto(_X.,menu) same =&gt; n(error),Playback(ivr\/script-error) same =&gt; n,Goto(_X.,menu)  exten =&gt; 4,1,System(\/usr\/local\/sbin\/asterisk -rx &quot;sip notify cisco-check-cfg ${CALLERID(num)}&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/send-phone-reboot-ok) same =&gt; n,System(\/usr\/local\/sbin\/asterisk -rx &quot;reload&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/server-reload-ok) same =&gt; n,Hangup() same =&gt; n(error),Playback(ivr\/script-error) same =&gt; n,Goto(_X.,menu) same =&gt; n,Hangup()  exten =&gt; 5,1,System(\/usr\/local\/sbin\/asterisk -rx &quot;reload&quot;) same =&gt; n,GotoIF($[&quot;${SYSTEMSTATUS}&quot; != &quot;SUCCESS&quot;]?error) same =&gt; n,Playback(ivr\/server-reload-ok) same =&gt; n,Goto(_X.,menu) same =&gt; n(error),Playback(ivr\/script-error) same =&gt; n,Goto(_X.,menu) same =&gt; n,Hangup() <\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u0431\u0443\u043a\u0432 \u0438 \u0446\u0438\u0444\u0440.<br \/>  1. \u0421\u043c\u0435\u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430.<br \/>  \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439. \u0417\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c. \u041f\u043e\u0441\u043b\u0435 \u0441\u043c\u0435\u043d\u044b \u043d\u043e\u043c\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f reload \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f.<br \/>  2. \u041f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438<br \/>  \u0412\u044b\u0437\u043e\u0432 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u043c. \u041f\u0440\u0438 \u0437\u0430\u043c\u0435\u043d\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u0430\u0437\u044b \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0442\u0434\u0430\u0432\u0430\u0435\u043c\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u041b\u043e\u0433\u0438\u043d \u043f\u0430\u0440\u043e\u043b\u044c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442\u0441\u044f, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e callerid \u0438 ext.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u0441\u043c\u0435\u043d\u044b \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f reload \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f.<br \/>  3. \u041f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432.<br \/>  \u041f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0423\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 \u0432 \u0430\u0432\u0442\u043e\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u043e\u044f\u0442 \u0438 \u0436\u0434\u0443\u0442 \u0441\u0432\u043e\u0435\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0432 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0438, \u043d\u043e \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430.\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f reload \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>  4. \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0430<br \/>  \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u043b\u0441\u044f \u0432\u044b\u0437\u043e\u0432. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0435\u043b\u0430\u0435\u0442 reload \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>  5. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>  \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0435\u043b\u0430\u0435\u0442 reload \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u0432\u0441\u0451. \u041f\u0440\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u043c \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0451\u0433\u043a\u0438\u043c \u0437\u0430\u043d\u044f\u0442\u0438\u0435\u043c. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c dialplan \u0438 \u0432\u043b\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u0430\u0437\u0443. \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u043b\u044e\u0431\u043e\u043c\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u043e\u043c\u0443 \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c asterisk. \u0411\u0443\u0434\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u043f\u0438\u0448\u0438\u0442\u0435. \u0421\u0445\u0435\u043c\u0430 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u0430 \u043d\u0430 \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0412\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043b\u044e\u0431\u0438\u0442\u0435.<\/p>\n<p>  <font>\u00a9 Aborche 2013<\/font><br \/>  <img decoding=\"async\" src=\"http:\/\/aborche.com\/pics\/aborchelogo.jpg\"\/>    \t \t\t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/176019\/\"> http:\/\/habrahabr.ru\/post\/176019\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0422\u0430\u043a \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441\u0440\u043e\u043a\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u0435\u0437\u0442\u0438 70 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u043c\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u043c\u0438 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u043b\u0430\u0441\u044c \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 \u043d\u043e\u0432\u043e\u043c \u043e\u0444\u0438\u0441\u0435 \u0443 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u0432 \u0410\u0422\u0421, \u0430 \u0410\u0422\u0421 \u0432 \u0441\u0442\u0430\u0440\u043e\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u043b\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441\u0440\u043e\u043a\u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u044e \u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0432\u0441\u0435\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0438\u0445 \u043b\u0438\u043d\u0438\u0439 \u043d\u0430 Asterisk. \u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043d\u0430 \u0434\u0435\u043d\u044c \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0434\u043d\u044e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e.<\/p>\n<p>  \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0448\u043b\u043e \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.<br \/>  \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u043c\u043d\u043e\u0433\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u043f\u0443\u0433\u0430\u0439\u0442\u0435\u0441\u044c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-176019","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/176019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=176019"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/176019\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=176019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=176019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=176019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}