{"id":14,"date":"2010-06-18T06:16:14","date_gmt":"2010-06-18T08:16:14","guid":{"rendered":"http:\/\/skeletor.org.ua\/wordpress\/?p=14"},"modified":"2013-06-09T16:15:30","modified_gmt":"2013-06-09T13:15:30","slug":"asterisk-postgresql-%d0%bf%d0%b8%d1%88%d0%b5%d0%bc-%d1%81%d1%82%d0%b0%d1%82%d0%b8%d1%81%d1%82%d0%b8%d0%ba%d1%83-%d0%b7%d0%b2%d0%be%d0%bd%d0%ba%d0%be%d0%b2-%d0%b2-%d0%b1%d0%b0%d0%b7%d1%83","status":"publish","type":"post","link":"https:\/\/skeletor.org.ua\/?p=14","title":{"rendered":"Asterisk + Postgresql = \u043f\u0438\u0448\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0432 \u0431\u0430\u0437\u0443"},"content":{"rendered":"<p><strong><span style=\"color: #ff0000;\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/span><\/strong><\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 <strong>Asterisk<\/strong> \u0438 <strong>Postgresql<\/strong> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0438\u0431\u043e \u043e\u043d\u0430<br \/>\n\u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0443\u0436\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 http:\/\/www.lissyara.su\/?id=1771 \u0438 http:\/\/www.lissyara.su\/?id=1543.\u00a0\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<p><!--more--><\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u0430\u0437\u044b \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0430\u044f<\/p>\n<p><em><strong><span style=\"color: #ff6600;\">acctid<\/span><\/strong><\/em> = \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0435<br \/>\n<em><strong><span style=\"color: #ff6600;\">calldate<\/span><\/strong><\/em> = \u0434\u0430\u0442\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u043e\u043d\u043a\u0430<br \/>\n<em><strong><span style=\"color: #ff6600;\">clid<\/span><\/strong><\/em> = <strong>callerID<\/strong> (\u043d\u043e\u043c\u0435\u0440+\u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0438\u043c\u0435\u043d\u0435\u043c) \u0437\u0432\u043e\u043d\u044f\u0449\u0435\u0433\u043e,<br \/>\n\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 <strong>sip.conf<\/strong> \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 <strong>callerid<\/strong><br \/>\n<em><strong><span style=\"color: #ff6600;\">src<\/span><\/strong><\/em> = \u043d\u043e\u043c\u0435\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u043b\u0441\u044f \u0437\u0432\u043e\u043d\u043e\u043a<br \/>\n<em><strong><span style=\"color: #ff6600;\">dst<\/span><\/strong><\/em> = \u043a\u0443\u0434\u0430 \u0437\u0432\u043e\u043d\u0438\u043b\u0438<br \/>\n<em><strong><span style=\"color: #ff6600;\">dcontext<\/span><\/strong><\/em> = <strong>context<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u0430 (\u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 context<br \/>\n\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u0430\u043d \u0434\u043b\u044f sip \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u0437\u0432\u043e\u043d\u044f\u0449\u0435\u0433\u043e \u0432 <strong>sip.conf<\/strong>)<br \/>\n<em><strong><span style=\"color: #ff6600;\">channel<\/span><\/strong><\/em> = \u043a\u0430\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u0431\u043e\u0440\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (<strong>SIP, IAX2<\/strong>)<br \/>\n<em><strong><span style=\"color: #ff6600;\">dstchannel<\/span><\/strong><\/em> = \u043a\u0430\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0437\u0432\u043e\u043d\u043a\u0435 \u043d\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (<strong>SIP, IAX2<\/strong>)<br \/>\n<em><strong><span style=\"color: #ff6600;\">lastapp<\/span><\/strong><\/em> = \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0435 <strong>Asterisk&#8217;om<\/strong> <strong>(dial<\/strong> &#8211; \u0435\u0441\u043b\u0438 \u0437\u0432\u043e\u043d\u044f\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u044b\u043c\u00a0\u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0442\u0440\u0443\u0431\u043a\u0443, <strong>hangup<\/strong> &#8211; \u0435\u0441\u043b\u0438 \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0437\u0432\u043e\u043d\u0438\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0442\u0440\u0443\u0431\u043a\u0443)<br \/>\n<em><strong><span style=\"color: #ff6600;\">lastdata<\/span><\/strong><\/em> = \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 <strong>Asterisk&#8217;om<\/strong><br \/>\n<em><strong><span style=\"color: #ff6600;\">duration<\/span><\/strong><\/em> = \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0432\u043e\u043d\u043a\u0430<br \/>\n<em><strong><span style=\"color: #ff6600;\">billsec<\/span><\/strong><\/em> = \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430<br \/>\n<em><strong><span style=\"color: #ff6600;\">disposition<\/span><\/strong><\/em> = \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0437\u0432\u043e\u043d\u043a\u0430 (<strong>ANSWERED, NO ANSWER, FAILED<\/strong>)<br \/>\n<em><strong><span style=\"color: #ff6600;\">amaflags<\/span><\/strong><\/em><br \/>\n<em><strong><span style=\"color: #ff6600;\"> accountcode<\/span><\/strong><\/em><br \/>\n<em><strong><span style=\"color: #ff6600;\"> uniqueid<\/span><\/strong><\/em><br \/>\n<em><strong><span style=\"color: #ff6600;\"> userfield<\/span><\/strong><\/em><\/p>\n<p><strong><span style=\"color: #ff0000;\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 Asterisk&#8217;a.<\/span><\/strong><\/p>\n<p>\u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0444\u0430\u0439\u043b <strong>cdr_pgsql.conf<\/strong> (\u041f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 \u043b\u0435\u0436\u0438\u0442 \u0432<br \/>\n<strong>\/usr\/local\/etc\/asterisk\/<\/strong>) \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0432\u0438\u0434\u0443.<\/p>\n<p><code>[global]<br \/>\nhostname=localhost<br \/>\nport=5432<br \/>\ndbname=asterisk<br \/>\npassword=P@ssw0rD<br \/>\nuser=ast_user<br \/>\ntable=cdr ;SQL table where CDRs will be inserted<br \/>\nspool=pgsql.spool<\/code><\/p>\n<p>\u041f\u043e\u044f\u0441\u043d\u044f\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0434\u0443\u043c\u0430\u044e \u043d\u0435\u0447\u0435\u0433\u043e, \u043a\u0440\u043e\u043c\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430<strong> spool=pgsql.spool<\/strong> &#8211; \u0435\u0433\u043e<br \/>\n\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f \u043d\u0435 \u0437\u043d\u0430\u044e, \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u0434\u0435-\u0442\u043e \u0432 \u0438\u043d\u0435\u0442\u0435 \u0432 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u0443\u0432\u0438\u0434\u0435\u043b,<br \/>\n\u0434\u0443\u043c\u0430\u044e \u0438\u043c\u0435\u0435\u0442 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a \u0441\u043f\u0443\u043b\u0443 \ud83d\ude42\u00a0\u0412\u0441\u0451, \u043d\u0430 \u044d\u0442\u043e\u043c \u0440\u0438\u0445\u0442\u043e\u0432\u043a\u0430 <strong>Asterisk<\/strong> \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430.<br \/>\n\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0437\u0432\u043e\u043d\u043e\u043a \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c <strong>Asterisk<\/strong>.<\/p>\n<p><code>host*CLI&gt;ERROR[59821] cdr_pgsql.c: cdr_pgsql: Unable to connect to database server localhost. Calls will not be logged!<br \/>\nERROR[59821] cdr_pgsql.c: cdr_pgsql: Reason: FATAL: database \"asterisk\" does not exist<\/code><\/p>\n<p>\u0421\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0431\u0430\u0437\u044b. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u0447\u0438\u0442\u0430\u0435\u043c \u043d\u0438\u0436\u0435 \ud83d\ude42<br \/>\n\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0432 <strong>PostgreSQL<\/strong>.<br \/>\n\u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u0411\u0414? \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445 \u043e\u043d\u0430 <strong>Open Source<\/strong>. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445,<br \/>\n\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435 <strong>mysql<\/strong> \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043f\u0438\u0441\u0435\u0439<br \/>\n(\u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435).<br \/>\n\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 <strong>PostgreSQL<\/strong> \u043f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044e\u0437\u0435\u0440 <strong>pgsql<\/strong> (\u0432<br \/>\n<strong>linux-like<\/strong> \u043e\u043d \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>postgres<\/strong>). \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442 \u043d\u0435\u0433\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0430\u0437\u0430.<br \/>\n\u0415\u0441\u043b\u0438 <strong>PostgreSQL<\/strong> \u0443 \u0432\u0430\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u0431\u0443\u0434\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 3 \u0431\u0430\u0437\u044b:<\/p>\n<p><code>[root@\/usr\/local\/etc\/asterisk]# sudo -u pgsql psql -l<br \/>\nList of databases<br \/>\nName | Owner | Encoding<br \/>\n-----------+-------+----------<br \/>\npostgres | pgsql | UTF8<br \/>\ntemplate0 | pgsql | UTF8<br \/>\ntemplate1 | pgsql | UTF8<br \/>\n(3 rows)<\/code><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a \u0431\u0430\u0437\u0435 <strong>postgres<\/strong> \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0431\u0430\u0437\u0443<strong> asterisk<\/strong><\/p>\n<p><code>[root@\/usr\/local\/etc\/asterisk]# sudo -u pgsql psql postgres<br \/>\nWelcome to psql 8.2.11, the PostgreSQL interactive terminal.<br \/>\nType: \\copyright for distribution terms<br \/>\n\\h for help with SQL commands<br \/>\n\\? for help with psql commands<br \/>\n\\g or terminate with semicolon to execute query<br \/>\n\\q to quit<br \/>\npostgres=#<\/code><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <strong>ast_user<\/strong> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 <strong>\/usr\/local\/etc\/asterisk\/cdr_pgsql.conf<\/strong>), \u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0431\u0430\u0437\u0443 \u0438 \u0434\u0430\u0451\u043c \u0435\u043c\u0443\u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c (\u044f \u0434\u0430\u043b \u0435\u043c\u0443 \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0430).<\/p>\n<p><code>postgres=# CREATE USER ast_user WITH PASSWORD 'P@ssw0rD';<br \/>\npostgres=# CREATE DATABASE asterisk;<br \/>\npostgres=# CREATE TABLE cdr (<br \/>\nacctid bigserial NOT NULL UNIQUE PRIMARY KEY,<br \/>\ncalldate timestamptz NOT NULL,<br \/>\nclid text NOT NULL,<br \/>\nsrc text NOT NULL,<br \/>\ndst text NOT NULL,<br \/>\ndcontext text NOT NULL,<br \/>\nchannel text NOT NULL,<br \/>\ndstchannel text NOT NULL,<br \/>\nlastapp text NOT NULL,<br \/>\nlastdata text NOT NULL,<br \/>\nduration int8 NOT NULL,<br \/>\nbillsec int8 NOT NULL,<br \/>\ndisposition text NOT NULL,<br \/>\namaflags int8 NOT NULL,<br \/>\naccountcode text NOT NULL,<br \/>\nuniqueid text NOT NULL,<br \/>\nuserfield text NOT NULL<br \/>\n);<br \/>\npostgres=#GRANT ALL ON asterisk TO ast_user;<\/code><\/p>\n<p>\u042d\u0442\u043e \u0432\u0441\u0451 \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0434 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <strong>sql.db<\/strong> ,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0434\u0451\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 <strong>Asterisk&#8217;a<\/strong>.\u00a0\u042d\u0442\u043e \u0432\u0441\u0451!<br \/>\n\u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f \u0447\u0442\u043e \u0431\u0430\u0437\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442<\/p>\n<p><code>[root@\/usr\/local\/etc\/asterisk]# sudo -u pgsql psql -l<br \/>\nList of databases<br \/>\nName | Owner | Encoding<br \/>\n-----------+-------+----------<br \/>\nasterisk | pgsql | UTF8<br \/>\npostgres | pgsql | UTF8<br \/>\ntemplate0 | pgsql | UTF8<br \/>\ntemplate1 | pgsql | UTF8<br \/>\n(4 rows)<\/code><\/p>\n<p>\u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0432\u043e\u043d\u0438\u0442\u044c \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c<strong> asterisk<\/strong><\/p>\n<p><code>ERROR[59821] cdr_pgsql.c: cdr_pgsql: Connection may have been lost... attempting to reconnect.<br \/>\nERROR[59821] cdr_pgsql.c: cdr_pgsql: Connection reestablished.<br \/>\nERROR[59821] cdr_pgsql.c: cdr_pgsql: HARD ERROR! Attempted reconnection failed. DROPPING CALL RECORD!<br \/>\nERROR[59821] cdr_pgsql.c: cdr_pgsql: Reason: ERROR: permission denied for sequence cdr_acctid_seq<\/code><\/p>\n<p>\u0418\u0434\u0451\u043c \u0432 \u0433\u0443\u0433\u043b \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c: \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 <strong>SQL<\/strong>-\u0437\u0430\u043f\u0440\u043e\u0441<\/p>\n<p><code>GRANT UPDATE ON cdr_acctid_seq TO asterisk;<\/code><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0438 \u0440\u0430\u0434\u0443\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0435\u0442.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 Asterisk \u0438 Postgresql \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0438\u0431\u043e \u043e\u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0443\u0436\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 http:\/\/www.lissyara.su\/?id=1771 \u0438 http:\/\/www.lissyara.su\/?id=1543.\u00a0\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-14","post","type-post","status-publish","format-standard","hentry","category-telephony"],"_links":{"self":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14"}],"version-history":[{"count":7,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions"}],"predecessor-version":[{"id":3504,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions\/3504"}],"wp:attachment":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}