{"id":185468,"date":"2013-07-03T16:52:03","date_gmt":"2013-07-03T12:52:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=185468"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=185468","title":{"rendered":"<span class=\"post_title\">\u0428\u043b\u044e\u0437\u044b Digium G400 \u0438 G800 (E1 PRI)<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/682\/0c6\/26b\/6820c626b1c1b7499de25e8c05153f4c.png\"\/><\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0433\u043e\u0434\u0443 <a href=\"http:\/\/digium.com\">Digium<\/a> \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b \u043d\u0430\u0441 \u043d\u043e\u0432\u044b\u043c\u0438 IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f Asterisk, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e\u043c \u0448\u043b\u044e\u0437\u043e\u0432 TDM-SIP. <\/p>\n<p>  \u042d\u0442\u043e <a href=\"http:\/\/habrahabr.ru\/post\/152319\/\">\u0431\u044b\u043b\u043e<\/a> \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430: G100 \u0438 G200, \u043d\u0430 \u043e\u0434\u0438\u043d E1 \u043f\u043e\u0440\u0442, \u0438 \u0434\u0432\u0430 E1 \u043f\u043e\u0440\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0435, \u0438 \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0435, \u044d\u0442\u0438 \u0448\u043b\u044e\u0437\u044b \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0438 \u0441\u0435\u0431\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043b\u0443\u0447\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0421 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0434\u0440\u0443\u0436\u0430\u0442 \u0441 Avaya-\u043c\u0438, Panasonic-\u0430\u043c\u0438, Asterisk-\u043e\u043c \u0441\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439\u2026 \u0414\u0430 \u0447\u0442\u043e \u0443\u0436 \u0442\u0430\u043c, PRI \u043e\u043d \u0438 \u0432 \u0410\u0444\u0440\u0438\u043a\u0435 PRI \ud83d\ude42<\/p>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0434 \u0412\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432 \u043b\u0438\u043d\u0435\u0439\u043a\u0435 \u0448\u043b\u044e\u0437\u043e\u0432 \u043e\u0442 Digium. G400 \u0438 Digium G800, \u0438 \u043a\u0430\u043a \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u043d\u0430 4 \u0438\u2026 8 (!) E1 \u043f\u043e\u0440\u0442\u043e\u0432.<\/p>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h5>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438<\/h5>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/99c\/0da\/37e\/99c0da37eac11d5e4c1e7e04549b5720.png\"\/><br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/fbd\/f89\/4b1\/fbdf894b1007343d4df9abc2247fa4e3.png\"\/><br \/>  \u041a\u0430\u043a \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c. \u042d\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0447\u0430\u0442\u0430\u044f, 1U \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0432 \u0441\u0442\u043e\u0439\u043a\u0443. \u0411\u0435\u0437 \u0434\u0432\u0438\u0436\u0443\u0449\u0438\u0445\u0441\u044f \u0447\u0430\u0441\u0442\u0435\u0439. <br \/>  \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 Asterisk, \u043d\u043e \u0438\u043c\u0435\u044e\u0449\u0430\u044f \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u042d\u0445\u043e\u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043e.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e SIP \u0442\u0440\u0430\u043d\u043a\u043e\u0432, \u043d\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 (\u043a\u0430\u043a \u043f\u0440\u0438 G711, \u0442\u0430\u043a \u0438 G729) \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435: G100: 30, G200: 60, G400: 120, G800: 240.<\/p>\n<p>  \u041a\u0430\u043a \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043d\u0430 \u0448\u043b\u044e\u0437\u0430\u0445 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 LAN \u043f\u043e\u0440\u0442\u0430 (\u041d\u0430 G100 \u0438 G200 \u0431\u044b\u043b \u043e\u0434\u0438\u043d). <\/p>\n<p>  \u041f\u043e\u043a\u0430 \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e VoIP \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c, \u043d\u043e \u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0442\u0438. \u041d\u043e \u0434\u0432\u0430 IP \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0448\u043b\u044e\u0437 \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, \u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u043e \u0434\u0432\u0430 VLAN-\u0430 \u043d\u0430 \u043e\u0434\u0438\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0440\u0442 (\u043b\u044e\u0431\u043e\u0439 \u0438\u0437 4096 Vlan tag \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 GUI).<\/p>\n<h5>Gateway API<\/h5>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0444\u0438\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u044f \u0431\u044b \u0434\u0430\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 (\u043f\u043e\u043f\u0440\u0430\u0432\u044c\u0442\u0435, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u0430\u044e\u0441\u044c).<\/p>\n<p>  \u041f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c HTTPS \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 JSON \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0448\u043b\u044e\u0437\u0430, \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0443. <\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u043d\u0430 PHP \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u043f\u0442\u0430\u0439\u043c\u0430  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0430\u0441\u043a\u0440\u044b\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">&lt;? \t$GATEWAY_IP = 'CHANGEME'; \t$USERNAME = 'admin'; \t$PASSWORD = 'admin';  \t$ch = curl_init();  \t$fields = array( \t\t'admin_uid'      =&gt; $USERNAME, \t\t'admin_password' =&gt; $PASSWORD \t);  \tcurl_setopt($ch, CURLOPT_URL, &quot;https:\/\/$GATEWAY_IP\/admin\/main.html&quot;); \tcurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); \tcurl_setopt($ch, CURLOPT_POST, 1); \tcurl_setopt($ch, CURLOPT_POSTFIELDS, $fields); \tcurl_setopt($ch, CURLOPT_HEADER, false); \tcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true); \tcurl_setopt($ch, CURLOPT_COOKIEFILE, ''); \t$result = curl_exec($ch);  \tif ($result === false) { \t\t$error = curl_error($ch); \t\tcurl_close($ch);  \t\tdie(&quot;Login failed: $error&quot;); \t}  \tif (preg_match(&quot;\/Welcome,\\\\s+$USERNAME\/i&quot;, $result) == 0 \t\t|| preg_match(&quot;\/Log Out\/i&quot;, $result) == 0) { \t\tcurl_close($ch); \t\tdie(&quot;Login Failed!&quot;); \t}  \t$request = array( \t\t'request' =&gt; array( \t\t\t'method'     =&gt; 'gateway_list', \t\t\t'parameters' =&gt; array() \t\t) \t);  \t$string = json_encode($request, JSON_FORCE_OBJECT); \t$fields = array( \t\t'request' =&gt; $string \t);  \tcurl_setopt($ch, CURLOPT_URL, &quot;https:\/\/$GATEWAY_IP\/json&quot;); \tcurl_setopt($ch, CURLOPT_POST, 1); \tcurl_setopt($ch, CURLOPT_POSTFIELDS, $fields); \tcurl_setopt($ch, CURLOPT_HEADER, false); \tcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  \t$result = curl_exec($ch);  \tif ($result === false) { \t\t$error = curl_error($ch); \t\tcurl_close($ch);  \t\tdie(&quot;Request failed: $error&quot;); \t}  \tcurl_close($ch);  \t$response = json_decode($result); \t$response_object = json_decode($response-&gt;response-&gt;result); \tprint $response_object-&gt;gateway-&gt;model_name; print &quot;\\n&quot;; \tprint &quot;Uptime &quot;; print $response_object-&gt;gateway-&gt;uptime; print &quot;\\n&quot;; ?&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 PERL \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u0442 \u0442\u0430\u043a<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"perl\">#!\/usr\/bin\/perl  use strict; use HTTP::Cookies; use LWP::UserAgent; use Data::Dumper; use JSON;  $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; my $ua = new LWP::UserAgent; # Sometimes both of these are required  my $cookies = new HTTP::Cookies(); $ua-&gt;cookie_jar($cookies);  $ua-&gt;ssl_opts({'verify_hostname' =&gt; 0});  my $GATEWAY_IP = 'CHANGEME'; my $USERNAME = 'admin'; my $PASSWORD = 'admin';  # log in my $response = $ua-&gt;post(&quot;https:\/\/$GATEWAY_IP\/admin\/main.html&quot;, { \tadmin_uid =&gt; $USERNAME, \tadmin_password =&gt; $PASSWORD, \tact =&gt; 'login', });  my $content = $response-&gt;content; print $content; # Response from login is HTML page, check that the main page init() # function is called to be sure we have logged in and are looking at # the main page. if ($content !~ m\/Welcome,\\s+$USERNAME\/i || $content !~ m\/Log Out\/i) { \tprint &quot;Login Failed!\\n&quot;; \texit 1; }  # get software version my $params = { 'request' =&gt; { \t'method' =&gt; 'gateway_list', \t'parameters' =&gt; { } }};  $response = $ua-&gt;post(&quot;https:\/\/$GATEWAY_IP\/json&quot;, { \t'request' =&gt; JSON-&gt;new-&gt;utf8-&gt;encode($params) });  # Response from non-login requests are JSON and must be decoded twice # as follows: $content = JSON-&gt;new-&gt;utf8-&gt;decode($response-&gt;content); my $res = JSON-&gt;new-&gt;utf8-&gt;decode($content-&gt;{'response'}{'result'});  # Uncomment this to see all available information #print Data::Dumper::Dumper($res); print sprintf(&quot;Model Number: %s\\n&quot;, $res-&gt;{'gateway'}{'model_no'}); print sprintf(&quot;Software Version: %s\\n&quot;, $res-&gt;{'gateway'}{'software_version'}); print sprintf(&quot;MAC Address: %s\\n&quot;, $res-&gt;{'gateway'}{'mac_address'}); print sprintf(&quot;Uptime: %s\\n&quot;, $res-&gt;{'gateway'}{'uptime'});  # shutdown my $params = { 'request' =&gt; { \t'method' =&gt; 'system_reboot_save', \t'parameters' =&gt; { \t\t'action' =&gt; 'shutdown', \t\t'confirm' =&gt; 'yes' \t} }};  # Change to actually reboot. if (0) { \tprint &quot;Shutting down.\\n&quot;; \t$response = $ua-&gt;post(&quot;https:\/\/$GATEWAY_IP\/json&quot;, { \t\t'request' =&gt; JSON-&gt;new-&gt;utf8-&gt;encode($params) \t}); } else { \tprint &quot;NOT ACTUALLY REBOOTING.\\n&quot;; }  # Response from reboot\/shutdown is unique in that the webserver cannot # send us a response verifying the shutdown went as expected  # $content = JSON-&gt;new-&gt;utf8-&gt;decode($response-&gt;content); # print Data::Dumper::Dumper($content); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418 \u0434\u043b\u044f \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 Python \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440: <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 email \u043f\u0440\u0438 \u0443\u043f\u0430\u0432\u0448\u0435\u043c \u043b\u0438\u043d\u043a\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import sys import re import mechanize import cookielib import urllib import json from pprint import pprint  def main():     gateway_ip = 'CHANGEME'     gateway_user = 'admin'     gateway_pass = 'admin'     data = {         'admin_uid': gateway_user,         'admin_password': gateway_pass,         'act': 'login'     }     data_str = '&'.join(['%s=%s' % (k,v) for k,v in data.iteritems()])      # Log in     req = mechanize.Request(&quot;https:\/\/%s\/admin\/main.html&quot; % gateway_ip, data_str)     cj = cookielib.LWPCookieJar()     cj.add_cookie_header(req)     res = mechanize.urlopen(req)     lines = res.read()      # Response from login is an HTML page. Check that the main page's init()     # function is called to be sure we have logged in and are looking at     # the main page.     if re.search(&quot;Welcome,\\s+%s&quot; % gateway_user, lines) is None:         print &quot;Login Failed!&quot;         return 1      # Request connection status     data = {         &quot;request&quot; : {             &quot;method&quot;: &quot;connection_status.list&quot;,         }     }      # Something (mechanize?) doesn't like JSON with spaces in it.     data_str = json.dumps(data, separators=(',',':'))      req = mechanize.Request(&quot;https:\/\/%s\/json&quot; % gateway_ip, data_str)     res = mechanize.urlopen(req)      lines = res.read()     response = json.loads(lines)     result = json.loads(response['response']['result'])      # check result     for interface in result['connection_status']['t1_e1_interfaces']:         if True or interface['status_desc'] != 'Up, Active':             print &quot;%s is down (status '%s') on %s!&quot; % (                 interface['name'], interface['status_desc'], gateway_ip             )             # Send an email, postcard, or pidgeon to the sysadmin  sys.exit(main() or 0) <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430 <a href=\"https:\/\/wiki.asterisk.org\/wiki\/display\/DIGIUM\/Digium+Gateways\">wiki.asterisk.org<\/a><\/p>\n<h5>\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h5>\n<p>  \u041d\u0443 \u0432 \u043e\u0431\u0449\u0435\u043c, \u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c, \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 G-\u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430. <\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c E1 \u043f\u043e\u0442\u043e\u043a\u0438 \u043e\u0442 \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438 \u0441\u0442\u0430\u0440\u043e\u0439 \u0410\u0422\u0421-\u043a\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/072\/1e8\/6af\/0721e86affdb2c5bf96c81bfe29689de.png\"\/><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0448\u043b\u044e\u0437\u044b \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/48c\/9ab\/eb3\/48c9abeb31bcf3796085a94de6198719.png\"\/><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/5f2\/f5a\/570\/5f2f5a57011fea9028f511cc6cfc6a76.png\"\/><\/p>\n<p>  \u0418\u043b\u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e SIP \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0443\u044e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 Switchvox:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/488\/9e7\/1d4\/4889e71d48e1352dc5c0b9167623731d.png\"\/><\/p>\n<h5>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f<\/h5>\n<p>  \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0446\u0438\u0438, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0443\u0441\u043b\u0443\u0433. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u044f \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0433\u0443 \u043e\u0433\u043b\u0430\u0441\u0438\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438:  <\/p>\n<ul>\n<li>\u0414\u043e 3-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G100 \u2014 <b>129$<\/b><\/li>\n<li>\u0414\u043e 5-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G100 \u2014 <b>216$<\/b><\/li>\n<li>\u0414\u043e 3-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G200 \u2014 <b>216$<\/b><\/li>\n<li>\u0414\u043e 5-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G200 \u2014 <b>288$<\/b><\/li>\n<li>\u0414\u043e 3-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G400 \u2014 <b>324$<\/b><\/li>\n<li>\u0414\u043e 5-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G400 \u2014 <b>432$<\/b><\/li>\n<li>\u0414\u043e 3-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G800 \u2014 <b>432$<\/b><\/li>\n<li>\u0414\u043e 5-\u0435\u0445 \u043b\u0435\u0442 \u043d\u0430 \u0448\u043b\u044e\u0437 Digium G800 \u2014 <b>576$<\/b><\/li>\n<\/ul>\n<h5>\u0426\u0435\u043d\u043e\u0432\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430<\/h5>\n<p>  \u0426\u0435\u043d\u044b, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<br \/>  Digium G100 \u2014 <b>1195<\/b>$<br \/>  Digium G200 \u2014 <b>1995<\/b>$<br \/>  Digium G400 \u2014 <b>2995<\/b>$<br \/>  Digium G800 \u2014 <b>3995<\/b>$ <\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435 \u0420\u043e\u0441\u0441\u0438\u0438 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0447\u0443\u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u0448\u0435. \u0418 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, Digium \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430\u043c\u0438:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"105\"> Vendor\/Model<\/td>\n<td> Digium Gateway Series<\/td>\n<td> Audiocodes Mediant 600<\/td>\n<td> Audiocodes Mediant 1000\/2000<\/td>\n<td> Mediatrix 3500 Series<\/td>\n<td> NET (formerly Quintum) Tenor<\/td>\n<td> Sangoma Vega Series<\/td>\n<td> Patton SmartNode<\/td>\n<\/tr>\n<tr>\n<td> \u041e\u0434\u0438\u043d E1<\/td>\n<td> G100<\/td>\n<td> &nbsp;<\/td>\n<td> Mediant 1000<\/td>\n<td> Model: 3531<\/td>\n<td> ResponsePoint<\/td>\n<td> Vega 100<\/td>\n<td> SN4950<\/td>\n<\/tr>\n<tr>\n<td> * Street Price<\/td>\n<td> 1195<\/td>\n<td> 2950<\/td>\n<td> 3300<\/td>\n<td> 1499<\/td>\n<td> 1530<\/td>\n<td> 1158<\/td>\n<td> 2309<\/td>\n<\/tr>\n<tr>\n<td> * List Price<\/td>\n<td> 1195<\/td>\n<td> 3278<\/td>\n<td> 3857<\/td>\n<td> 1950<\/td>\n<td> 1800<\/td>\n<td> 1395<\/td>\n<td> &nbsp;<\/td>\n<\/tr>\n<tr>\n<td> \u0414\u0432\u0430 \u04151<\/td>\n<td> G200<\/td>\n<td> &nbsp;<\/td>\n<td> Mediant 1000<\/td>\n<td> Model: 3532<\/td>\n<td> Tenor DX 2030<\/td>\n<td> Vega 200<\/td>\n<td> SN4950<\/td>\n<\/tr>\n<tr>\n<td> * Street Price<\/td>\n<td> 1995<\/td>\n<td> 4000<\/td>\n<td> 4500<\/td>\n<td> 2299<\/td>\n<td> 3077<\/td>\n<td> 1821<\/td>\n<td> 3999<\/td>\n<\/tr>\n<tr>\n<td> * List Price<\/td>\n<td> 1995<\/td>\n<td> 4485<\/td>\n<td> 5277<\/td>\n<td> 2950<\/td>\n<td> 3620<\/td>\n<td> 2195<\/td>\n<td> &nbsp;<\/td>\n<\/tr>\n<tr>\n<td> \u0427\u0435\u0442\u044b\u0440\u0435 \u04151<\/td>\n<td> G400<\/td>\n<td> &nbsp;<\/td>\n<td> Mediant 1000<\/td>\n<td> &nbsp;<\/td>\n<td> Tenor DX 4060<\/td>\n<td> Vega 400<\/td>\n<td> &nbsp;<\/td>\n<\/tr>\n<tr>\n<td> * Street Price<\/td>\n<td> 2995<\/td>\n<td> N\/A<\/td>\n<td> 8000<\/td>\n<td> &nbsp;N\/A<\/td>\n<td> 4790<\/td>\n<td> 7092<\/td>\n<td> 2050<\/td>\n<\/tr>\n<tr>\n<td> * List Price<\/td>\n<td> 2995<\/td>\n<td> N\/A<\/td>\n<td> 9180<\/td>\n<td> N\/A&nbsp;<\/td>\n<td> 5865<\/td>\n<td> 8545<\/td>\n<td> 2700<\/td>\n<\/tr>\n<tr>\n<td> \u0412\u043e\u0441\u0435\u043c\u044c \u04151<\/td>\n<td> G800<\/td>\n<td> &nbsp;<\/td>\n<td> Mediant 2000<\/td>\n<td> &nbsp;<\/td>\n<td> Tenor DX 8120<\/td>\n<td> N\/A<\/td>\n<td> &nbsp;<\/td>\n<\/tr>\n<tr>\n<td> * Street Price<\/td>\n<td> 3995<\/td>\n<td> N\/A<\/td>\n<td> 15500<\/td>\n<td> &nbsp;N\/A<\/td>\n<td> 9999<\/td>\n<td> &nbsp;<\/td>\n<td> N\/A<\/td>\n<\/tr>\n<tr>\n<td> * List Price<\/td>\n<td> 3995<\/td>\n<td> N\/A<\/td>\n<td> 17820<\/td>\n<td> N\/A&nbsp;<\/td>\n<td> 11750<\/td>\n<td> &nbsp;<\/td>\n<td> N\/A<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439, \u043a\u0442\u043e \u043f\u043e\u0434\u043e\u0448\u0435\u043b \u0431\u043b\u0438\u0437\u043a\u043e \u2014 \u044d\u0442\u043e Sangoma, \u043d\u043e Digium \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u044b \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435. \u0422\u0430\u043a \u043b\u0438 \u044d\u0442\u043e \u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443, \u043c\u043e\u0436\u0435\u0442 \u043a\u0442\u043e-\u0442\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u0436\u0435\u043b\u0435\u0437\u043e\u043c? <\/p>\n<p>  \u0412 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043e\u0436\u0438\u0434\u0430\u044e\u0442\u0441\u044f \u043a \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044e 2013 \u0433. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<p>  P.S. \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0434\u043e\u0448\u0435\u043b \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0434\u0430\u044e \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043e\u0447\u043a\u0443 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0448\u043b\u044e\u0437\u0430 <a href=\"http:\/\/gatewaytestdrive.digium.com\/\">gatewaytestdrive.digium.com\/<\/a><br \/>  \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0438 \u043f\u0440\u043e\u0447\u0435\u0435\u2026    \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\/185468\/\"> http:\/\/habrahabr.ru\/post\/185468\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/682\/0c6\/26b\/6820c626b1c1b7499de25e8c05153f4c.png\"\/><\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0433\u043e\u0434\u0443 <a href=\"http:\/\/digium.com\">Digium<\/a> \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b \u043d\u0430\u0441 \u043d\u043e\u0432\u044b\u043c\u0438 IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f Asterisk, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e\u043c \u0448\u043b\u044e\u0437\u043e\u0432 TDM-SIP. <\/p>\n<p>  \u042d\u0442\u043e <a href=\"http:\/\/habrahabr.ru\/post\/152319\/\">\u0431\u044b\u043b\u043e<\/a> \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430: G100 \u0438 G200, \u043d\u0430 \u043e\u0434\u0438\u043d E1 \u043f\u043e\u0440\u0442, \u0438 \u0434\u0432\u0430 E1 \u043f\u043e\u0440\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0435, \u0438 \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0435, \u044d\u0442\u0438 \u0448\u043b\u044e\u0437\u044b \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0438 \u0441\u0435\u0431\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043b\u0443\u0447\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0421 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0434\u0440\u0443\u0436\u0430\u0442 \u0441 Avaya-\u043c\u0438, Panasonic-\u0430\u043c\u0438, Asterisk-\u043e\u043c \u0441\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439\u2026 \u0414\u0430 \u0447\u0442\u043e \u0443\u0436 \u0442\u0430\u043c, PRI \u043e\u043d \u0438 \u0432 \u0410\u0444\u0440\u0438\u043a\u0435 PRI \ud83d\ude42<\/p>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0434 \u0412\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432 \u043b\u0438\u043d\u0435\u0439\u043a\u0435 \u0448\u043b\u044e\u0437\u043e\u0432 \u043e\u0442 Digium. G400 \u0438 Digium G800, \u0438 \u043a\u0430\u043a \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u043d\u0430 4 \u0438\u2026 8 (!) E1 \u043f\u043e\u0440\u0442\u043e\u0432.<\/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-185468","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/185468","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=185468"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/185468\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=185468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=185468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=185468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}