{"id":817,"date":"2026-09-17T22:53:44","date_gmt":"2026-09-17T19:53:44","guid":{"rendered":"https:\/\/imaxis.ru\/?p=817"},"modified":"2026-09-18T00:05:17","modified_gmt":"2026-09-17T21:05:17","slug":"hranenie-konfigov-asterisk-v-mysql-mariadb-na-ubuntu-realtime-cherez-odbc","status":"publish","type":"post","link":"https:\/\/imaxis.ru\/?p=817","title":{"rendered":"\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 Asterisk \u0432 MySQL\/MariaDB \u043d\u0430 Ubuntu: RealTime \u0447\u0435\u0440\u0435\u0437 ODBC"},"content":{"rendered":"<h1>\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 Asterisk \u0432 MySQL\/MariaDB \u043d\u0430 Ubuntu: RealTime \u0447\u0435\u0440\u0435\u0437 ODBC<\/h1>\n<p>Asterisk \u0443\u043c\u0435\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043d\u0435 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445, \u0430 \u0432 \u0421\u0423\u0411\u0414 \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>RealTime<\/strong>. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0431\u0430\u0437\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0410\u0422\u0421. \u0412 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0432\u044f\u0437\u043a\u0443 Asterisk + MariaDB \u0447\u0435\u0440\u0435\u0437 ODBC-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440: \u043f\u0438\u0440\u044b, \u0434\u0438\u0430\u043b\u043f\u043b\u0430\u043d \u0438 CDR.<\/p>\n<p>\u041f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e Asterisk \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d (\u0441\u043c. <a href=\"https:\/\/www.imaxis.ru\/miniinstruktions.php?mini=asterisk-ubuntu\">\u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e<\/a>). \u041f\u0440\u0438\u043c\u0435\u0440 \u2014 <strong>Asterisk 22 LTS<\/strong>.<\/p>\n<hr \/>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0421\u0423\u0411\u0414<\/h2>\n<pre><code class=\"language-bash\">apt install mariadb-server\nsystemctl enable mariadb\nsystemctl start mariadb\nmysqladmin -u root password\n<\/code><\/pre>\n<p><strong>\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u0441\u043b\u0443\u0436\u0431\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>mariadb<\/code>, \u0430 \u043d\u0435 <code>mysql<\/code>.<\/strong><\/p>\n<hr \/>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430 Asterisk \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 MySQL<\/h2>\n<p>\u0415\u0441\u043b\u0438 Asterisk \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0431\u0435\u0437 MySQL, \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<pre><code class=\"language-bash\">asterisk -V\n<\/code><\/pre>\n<pre><code class=\"language-bash\">cd \/usr\/src\n<\/code><\/pre>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a (\u0441\u0441\u044b\u043b\u043a\u0443 \u0431\u0435\u0440\u0451\u043c \u043d\u0430 <a href=\"https:\/\/downloads.asterisk.org\/pub\/telephony\/asterisk\/\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a<\/a>):<\/p>\n<pre><code class=\"language-bash\">wget https:\/\/downloads.asterisk.org\/pub\/telephony\/asterisk\/asterisk-22-current.tar.gz\ntar -zxf asterisk-*.tar.gz\ncd asterisk-*\/\n<\/code><\/pre>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 MySQL \u2014 <code>--with-mysqlclient<\/code>:<\/p>\n<pre><code class=\"language-bash\">.\/configure --prefix=\/usr --sysconfdir=\/etc --localstatedir=\/var --libdir=\/usr\/lib64 \n  --with-dahdi --with-pri --with-iconv --with-libcurl --with-speex --with-mysqlclient\n<\/code><\/pre>\n<p>\u0412 \u043c\u0435\u043d\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u0451, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 MySQL:<\/p>\n<pre><code class=\"language-bash\">make menuselect\n<\/code><\/pre>\n<p><strong>\u0420\u0430\u0437\u0434\u0435\u043b Add-ons \u2192 \u043c\u043e\u0434\u0443\u043b\u0438 <code>res_config_odbc<\/code>, <code>cdr_adaptive_odbc<\/code> \u0438 \u043f\u0440\u043e\u0447\u0438\u0435. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c Save &amp; Exit.<\/strong><\/p>\n<pre><code class=\"language-bash\">make\nmake install\n<\/code><\/pre>\n<hr \/>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h2>\n<h3>\u0421\u0423\u0411\u0414<\/h3>\n<pre><code class=\"language-bash\">mysql -u root -p\n<\/code><\/pre>\n<pre><code class=\"language-sql\">&gt; CREATE DATABASE asterisk DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;\n&gt; CREATE USER 'asteruser'@'localhost' IDENTIFIED BY 'asterpassword123';\n&gt; GRANT ALL PRIVILEGES ON asterisk.* TO 'asteruser'@'localhost';\n<\/code><\/pre>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0430 \u0431\u0430\u0437\u0430 <code>asterisk<\/code> \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c <code>asteruser<\/code> \/ <code>asterpassword123<\/code>.<\/strong><\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0441\u0445\u0435\u043c\u044b:<\/p>\n<pre><code class=\"language-sql\">&gt; use asterisk\n&gt; source \/usr\/src\/asterisk-22.11.0\/contrib\/realtime\/mysql\/mysql_config.sql\n&gt; source \/usr\/src\/asterisk-22.11.0\/contrib\/realtime\/mysql\/mysql_cdr.sql\n&gt; source \/usr\/src\/asterisk-22.11.0\/contrib\/realtime\/mysql\/mysql_voicemail.sql\n&gt; q\n<\/code><\/pre>\n<p><strong>\u041f\u0443\u0442\u044c <code>\/usr\/src\/asterisk-22.11.0<\/code> \u2014 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430.<\/strong><\/p>\n<h3>ODBC-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440<\/h3>\n<p>\u0414\u043b\u044f MariaDB \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 <code>libmaodbc<\/code> \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (\u0432\u043c\u0435\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e MySQL Connector\/ODBC):<\/p>\n<pre><code class=\"language-bash\">apt install mariadb-plugin-odbc odbcinst unixodbc\n<\/code><\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438 DSN:<\/p>\n<pre><code class=\"language-bash\">odbcinst -i -d -f \/usr\/share\/mariadb-connector-odbc\/odbcinst.ini\n<\/code><\/pre>\n<p>\u041b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0432 <code>\/etc\/odbcinst.ini<\/code>:<\/p>\n<pre><code class=\"language-ini\">[MariaDB]\nDescription     = ODBC for MariaDB\nDriver          = \/usr\/lib\/x86_64-linux-gnu\/libmaodbc.so\nFileUsage       = 1\n<\/code><\/pre>\n<p>DSN \u0432 <code>\/etc\/odbc.ini<\/code>:<\/p>\n<pre><code class=\"language-ini\">[Asterisk]\nDriver   = MariaDB\nSERVER   = 127.0.0.1\nDATABASE = asterisk\nUID      = asteruser\nPWD      = asterpassword123\n<\/code><\/pre>\n<p><strong>\u0433\u0434\u0435 <code>MariaDB<\/code> \u2014 \u0438\u043c\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430; <code>asterisk<\/code>, <code>asteruser<\/code>, <code>asterpassword123<\/code> \u2014 \u0431\u0430\u0437\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u043f\u0430\u0440\u043e\u043b\u044c.<\/strong><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"language-bash\">isql Asterisk\n<\/code><\/pre>\n<pre><code>+---------------------------------------+\n| Connected!                            |\n|                                       |\n| sql-statement                         |\n| help [tablename]                     |\n| quit                                  |\n+---------------------------------------+\n<\/code><\/pre>\n<pre><code>SQL&gt; show tables\nSQL&gt; quit\n<\/code><\/pre>\n<h3>Asterisk<\/h3>\n<pre><code class=\"language-bash\">vi \/etc\/asterisk\/modules.conf\n<\/code><\/pre>\n<pre><code>preload =&gt; res_odbc.so\npreload =&gt; res_config_odbc.so\n<\/code><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435:<\/p>\n<pre><code class=\"language-bash\">vi \/etc\/asterisk\/res_odbc.conf\n<\/code><\/pre>\n<pre><code class=\"language-ini\">[asterisk-conf]\nenabled         =&gt; yes\ndsn             =&gt; Asterisk\nusername        =&gt; asteruser\npassword        =&gt; asterpassword123\npre-connect     =&gt; yes\nmax_connections =&gt; 100\nsanitysql       =&gt; select 1\n<\/code><\/pre>\n<pre><code class=\"language-bash\">systemctl restart asterisk\nasterisk -r\n&gt; odbc show\n<\/code><\/pre>\n<hr \/>\n<h2>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 \u0431\u0430\u0437\u0443<\/h2>\n<p>\u041f\u043e\u043a\u0430 Asterisk \u0447\u0438\u0442\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b. \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0421\u0423\u0411\u0414.<\/p>\n<h3>\u041f\u0438\u0440\u044b (sippeers)<\/h3>\n<pre><code class=\"language-bash\">vi \/etc\/asterisk\/extconfig.conf\n<\/code><\/pre>\n<pre><code class=\"language-ini\">[settings]\nsipusers =&gt; odbc,asterisk-conf,sippeers\nsippeers =&gt; odbc,asterisk-conf,sippeers\n<\/code><\/pre>\n<p><strong>\u0413\u043e\u0432\u043e\u0440\u0438\u043c Asterisk \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0438\u0440\u044b \u0447\u0435\u0440\u0435\u0437 ODBC \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 <code>asterisk-conf<\/code>.<\/strong><\/p>\n<pre><code class=\"language-bash\">systemctl restart asterisk\n<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0438\u0437 \u0431\u0430\u0437\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0410\u0422\u0421.<\/p>\n<pre><code class=\"language-bash\">mysql -uasteruser -pasterpassword123\n<\/code><\/pre>\n<pre><code class=\"language-sql\">&gt; INSERT INTO asterisk.sippeers\n(`name`, `defaultuser`, `host`, `type`, `context`, `secret`, `nat`, `callgroup`,\n `language`, `disallow`, `allow`, `regexten`, `call-limit`)\nVALUES\n('1001', '1001', 'dynamic', 'friend', 'outcalling', '1234', 'no', '1', 'ru', 'all', 'alaw,ulaw', '1001', '4'),\n('1002', '1002', 'dynamic', 'friend', 'outcalling', '1234', 'no', '1', 'ru', 'all', 'alaw,ulaw', '1002', '4'),\n('1003', '1003', 'dynamic', 'friend', 'outcalling', '1234', 'no', '1', 'ru', 'all', 'alaw,ulaw', '1003', '4'),\n('1004', '1004', 'dynamic', 'friend', 'outcalling', '1234', 'no', '1', 'ru', 'all', 'alaw,ulaw', '1004', '4');\n<\/code><\/pre>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u044b \u043d\u043e\u043c\u0435\u0440\u0430 <code>1001<\/code>\u2013<code>1004<\/code> \u0441 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c <code>outcalling<\/code> \u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u043c <code>1234<\/code>.<\/strong><\/p>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438:<\/p>\n<pre><code class=\"language-sql\">&gt; UPDATE asterisk.sippeers SET `secret`='password' WHERE `name`='1001';\n<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432:<\/p>\n<pre><code class=\"language-bash\">asterisk -r\n*CLI&gt; sip show peers\n<\/code><\/pre>\n<blockquote>\n<p>\u0414\u043b\u044f PJSIP-\u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u044b\u043c\u0438 (<code>ps_endpoints<\/code>, <code>pjsip show endpoints<\/code>). \u0422\u0430\u0431\u043b\u0438\u0446\u0430 <code>sippeers<\/code> \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u043c\u0443 <code>chan_sip<\/code>; \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 RealTime-\u0441\u0445\u0435\u043c\u0443 PJSIP.<\/p>\n<\/blockquote>\n<h3>\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 (\u0434\u0438\u0430\u043b\u043f\u043b\u0430\u043d)<\/h3>\n<pre><code class=\"language-bash\">vi \/etc\/asterisk\/extconfig.conf\n<\/code><\/pre>\n<pre><code class=\"language-ini\">[settings]\nextensions =&gt; odbc,asterisk-conf,extensions\n<\/code><\/pre>\n<pre><code class=\"language-bash\">vi \/etc\/asterisk\/extensions.conf\n<\/code><\/pre>\n<pre><code>[outcalling]\nswitch =&gt; Realtime\/outcalling@extensions\n<\/code><\/pre>\n<pre><code class=\"language-bash\">systemctl restart asterisk\n<\/code><\/pre>\n<pre><code class=\"language-bash\">mysql -uasteruser -pasterpassword123\n<\/code><\/pre>\n<pre><code class=\"language-sql\">&gt; INSERT INTO asterisk.extensions VALUES (NULL, 'outcalling', '_XXXX', '1', 'DIAL', 'PJSIP\/${EXTEN},,m');\n<\/code><\/pre>\n<hr \/>\n<h2>Call Detail Record (CDR)<\/h2>\n<p>\u0425\u0440\u0430\u043d\u0438\u043c \u0436\u0443\u0440\u043d\u0430\u043b \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0432 \u0431\u0430\u0437\u0435.<\/p>\n<pre><code class=\"language-bash\">vi \/etc\/asterisk\/cdr_adaptive_odbc.conf\n<\/code><\/pre>\n<pre><code class=\"language-ini\">[cdr]\nconnection=asterisk-conf\ntable=cdr\nalias src =&gt; source\nalias channel =&gt; source_channel\nalias dst =&gt; dest\nalias dstchannel =&gt; dest_channel\n<\/code><\/pre>\n<pre><code class=\"language-bash\">systemctl restart asterisk\n<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0432\u043e\u043d\u043a\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438:<\/p>\n<pre><code class=\"language-bash\">mysql -uasteruser -pasterpassword123 -e &quot;SELECT * FROM asterisk.cdr&quot;\n<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code>| src | dst | dcontext | clid | channel | dstchannel | lastapp | start | answer | end | duration | billsec | disposition |\n| 1001| 1004| outcalling| &quot;1001&quot;| PJSIP\/1001-...| PJSIP\/1004-...| Dial | 2026-... | NULL | 2026-... | 7 | 0 | NO ANSWER |\n<\/code><\/pre>\n<p>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u041f\u043e\u043b\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>src<\/code><\/td>\n<td>\u041a\u0442\u043e \u0437\u0432\u043e\u043d\u0438\u0442<\/td>\n<\/tr>\n<tr>\n<td><code>dst<\/code><\/td>\n<td>\u041a\u043e\u043c\u0443 \u0437\u0432\u043e\u043d\u0438\u043b\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>dcontext<\/code><\/td>\n<td>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (\u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0440\u0430\u0432\u0438\u043b)<\/td>\n<\/tr>\n<tr>\n<td><code>clid<\/code><\/td>\n<td>Caller ID (\u0438\u043c\u044f \u0438 \u043d\u043e\u043c\u0435\u0440)<\/td>\n<\/tr>\n<tr>\n<td><code>channel<\/code><\/td>\n<td>\u041a\u0430\u043d\u0430\u043b \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>dstchannel<\/code><\/td>\n<td>\u041a\u0430\u043d\u0430\u043b \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>lastapp<\/code><\/td>\n<td>\u0414\u0438\u0430\u043b\u043f\u043b\u0430\u043d-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td><code>start<\/code><\/td>\n<td>\u041d\u0430\u0447\u0430\u043b\u043e \u0437\u0432\u043e\u043d\u043a\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>answer<\/code><\/td>\n<td>\u0412\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u044f \u0442\u0440\u0443\u0431\u043a\u0438 (<code>NULL<\/code> \u2014 \u043d\u0435 \u043f\u043e\u0434\u043d\u044f\u043b\u0438)<\/td>\n<\/tr>\n<tr>\n<td><code>end<\/code><\/td>\n<td>\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0437\u0432\u043e\u043d\u043a\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>duration<\/code><\/td>\n<td>\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0441\u0435\u043a<\/td>\n<\/tr>\n<tr>\n<td><code>billsec<\/code><\/td>\n<td>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430, \u0441\u0435\u043a<\/td>\n<\/tr>\n<tr>\n<td><code>disposition<\/code><\/td>\n<td>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435: <code>ANSWERED<\/code>, <code>NO ANSWER<\/code>, <code>BUSY<\/code>, <code>CONGESTION<\/code>\/<code>FAILED<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>uniqueid<\/code><\/td>\n<td>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID \u043a\u0430\u043d\u0430\u043b\u0430 \u0437\u0432\u043e\u043d\u044f\u0449\u0435\u0433\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>linkedid<\/code><\/td>\n<td>\u0421\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 ID \u043a\u0430\u043d\u0430\u043b\u0430<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 CDR \u0432 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0435\u0441\u0442\u044c \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <strong>Asterisk CDR Viewer<\/strong>.<\/p>\n<hr \/>\n<h2>\u0422\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438<\/h2>\n<ul>\n<li><strong><code>sippeers<\/code> \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f <code>chan_sip<\/code>.<\/strong> \u0412 Asterisk 22 <code>chan_sip<\/code> \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442; \u0434\u043b\u044f PJSIP \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <code>ps_endpoints<\/code>, <code>ps_auths<\/code>, <code>ps_aors<\/code> \u0438 <code>extconfig.conf<\/code> \u0441 <code>ps_endpoints =&gt; odbc,...<\/code>.<\/li>\n<li><strong>MariaDB \u0432\u043c\u0435\u0441\u0442\u043e MySQL Connector<\/strong> \u2014 \u043f\u0430\u043a\u0435\u0442 <code>mysql-connector-odbc<\/code> \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u044b\u0445 Ubuntu \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>libmaodbc<\/code>.<\/li>\n<li><strong>\u0412\u0435\u0440\u0441\u0438\u044f Asterisk \u0438 \u0441\u0445\u0435\u043c\u044b SQL<\/strong> \u2014 \u043f\u0443\u0442\u044c <code>\/usr\/src\/asterisk-*\/contrib\/realtime\/mysql<\/code> \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438.<\/li>\n<li><strong>CDR \u0447\u0435\u0440\u0435\u0437 <code>cdr_adaptive_odbc<\/code><\/strong> \u2014 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e <code>cdr_odbc<\/code>; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0447\u0435\u0440\u0435\u0437 <code>alias<\/code>.<\/li>\n<li><strong>RealTime \u2014 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432<\/strong> \u2014 \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>asterisk.conf<\/code>) \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445.<\/li>\n<li><strong>\u041f\u0440\u0430\u0432\u0430 \u043d\u0430 ODBC-\u0441\u043e\u043a\u0435\u0442<\/strong> \u2014 \u043f\u0440\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 <code>\/tmp\/mysql.sock<\/code> \u0438 <code>Server<\/code> \u0432 <code>odbc.ini<\/code>.<\/li>\n<\/ul>\n<hr \/>\n<h2>\u0428\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430<\/h2>\n<pre><code class=\"language-bash\">apt install mariadb-server mariadb-plugin-odbc odbcinst unixodbc\nmysql -u root -p\n# CREATE DATABASE asterisk; CREATE USER 'asteruser'@'localhost' ...; GRANT ...\n# source contrib\/realtime\/mysql\/mysql_{config,cdr,voicemail}.sql\n\n# \u0441\u0431\u043e\u0440\u043a\u0430 asterisk \u0441 mysql\n.\/configure ... --with-mysqlclient\nmake menuselect   # \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c res_config_odbc, cdr_adaptive_odbc\nmake &amp;&amp; make install\n\n# \/etc\/odbc.ini -&gt; [Asterisk] Driver=MariaDB ...\n# \/etc\/asterisk\/res_odbc.conf -&gt; [asterisk-conf] dsn =&gt; Asterisk\n# \/etc\/asterisk\/extconfig.conf -&gt; extensions =&gt; odbc,asterisk-conf,extensions\nsystemctl restart asterisk\n<\/code><\/pre>\n<p><em>\u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u043d\u0430: Ubuntu 22.04\/24.04\/26.04 + Asterisk 22 LTS, MariaDB 10.11+.<\/em><br \/>\n<em>\u0414\u0430\u0442\u0430: \u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c 2026.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 Asterisk \u0432 MySQL\/MariaDB \u043d\u0430 Ubuntu: RealTime \u0447\u0435\u0440\u0435\u0437 ODBC<\/p>\n","protected":false},"author":0,"featured_media":958,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"aioseo_notices":[],"views":10,"_links":{"self":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts\/817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=817"}],"version-history":[{"count":3,"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts\/817\/revisions"}],"predecessor-version":[{"id":853,"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts\/817\/revisions\/853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/media\/958"}],"wp:attachment":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}