{"id":417,"date":"2012-09-06T07:20:58","date_gmt":"2012-09-06T05:20:58","guid":{"rendered":"http:\/\/bos-info.com\/?p=417"},"modified":"2016-07-23T14:25:58","modified_gmt":"2016-07-23T12:25:58","slug":"asterisk_realtime","status":"publish","type":"post","link":"https:\/\/bos-info.com\/?p=417","title":{"rendered":"Asterisk_Realtime"},"content":{"rendered":"<p>\u0421\u0442\u0440\u0430\u0448\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445, \u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u044d\u0442\u043e \u0434\u0435\u043b\u043e.<br \/>\n\u0411\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u043b\u043e\u0432 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c<br \/>\n\u041d\u0430 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u0435 \u0434\u043d\u044f:<br \/>\nI. Realtime over ODBC<br \/>\n A. extconfig.conf<br \/>\n B. Static Realtime<br \/>\n C. Dynamic Realtime<br \/>\nII. Realtime w\/o ODBC<br \/>\n\u041e\u0442 \u0441\u043b\u043e\u0432 \u043a \u0434\u0435\u043b\u0443:<br \/>\n<!--more--><br \/>\n<strong>I.<\/strong><br \/>\n\u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b Asterisk Realtime Architecture(ARA): \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f.<br \/>\n\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u0430 \u0440\u0435\u0436\u0438\u043c\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445. \u0421\u0434\u0435\u043b\u0430\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0442\u0430\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u0440\u0433\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c.<br \/>\n\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e.<br \/>\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 extconfig.conf. \u0412 \u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0443\u0434\u0430  \u0438 \u0447\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c.<br \/>\n<a href=\"https:\/\/bos-info.com\/asterisk\/mysqlasterisk.html\" title=\"MySQL+Asterisk\" target=\"_blank\">\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c ODBC<\/a><br \/>\n\u041a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u043d \u043a \u0431\u0430\u0437\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f &#8211; \u043e\u0442\u043b\u0438\u0447\u043d\u043e!<\/p>\n<p><strong>I.A.<\/strong>\u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043e extconfig.conf  \u0438 \u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/p>\n<p>\u041f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e: <\/p>\n<pre> \r\nfile.conf =&gt; driver,database[,table[,priority]]\r\n<\/pre>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0442\u043a\u0443\u0434\u0430 \u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438(\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0411\u0414, \u0411\u0414, \u0422\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e)  <\/p>\n<pre>\r\nqueues.conf =&gt; odbc,asterisk,ast_config\r\n<\/pre>\n<p>\u0424\u0430\u0439\u043b\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u041d\u0415 \u041c\u041e\u0413\u0423\u0422 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0438\u0437  Realtime \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430<br \/>\n       asterisk.conf<br \/>\n       extconfig.conf (\u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b)<br \/>\n       logger.conf<br \/>\n\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0432 modules.conf \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f &#8216;preload&#8217;<br \/>\n       manager.conf<br \/>\n       cdr.conf<br \/>\n       rtp.conf<\/p>\n<p> Realtime \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<br \/>\n\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0442\u043a\u0443\u0434\u0430 \u0447\u0438\u0442\u0430\u0442\u044c  \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e Realtime \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 (\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0411\u0414, \u0411\u0414, \u0422\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e), \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430\u043c, \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 1.    <\/p>\n<pre>\r\nexample =&gt; odbc,asterisk,alttable,1\r\nexample =&gt; mysql,asterisk,alttable,2\r\nexample2 =&gt; ldap,&quot;dc=oxymium,dc=net&quot;,example2\r\n<\/pre>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0411\u0414:<br \/>\n    odbc &#8230; res_config_odbc<br \/>\n    sqlite &#8230; res_config_sqlite<br \/>\n    pgsql &#8230; res_config_pgsql<br \/>\n    mysql &#8230; res_config_mysql<br \/>\n    curl &#8230; res_config_curl<br \/>\n    ldap &#8230; res_config_ldap<\/p>\n<p>\u0410\u0445\u0442\u0443\u043d\u0433:  res_config_pgsql res_config_mysql \u0438 res_config_sqlite \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u0438 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre>\r\niaxusers =&gt; odbc,asterisk\r\niaxpeers =&gt; odbc,asterisk\r\nsippeers =&gt; odbc,asterisk\r\nsipregs =&gt; odbc,asterisk ; (\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c sipregs, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f)\r\nvoicemail =&gt; odbc,asterisk\r\nextensions =&gt; odbc,asterisk\r\nmeetme =&gt; mysql,general\r\nqueues =&gt; odbc,asterisk\r\nqueue_members =&gt; odbc,asterisk\r\nmusiconhold =&gt; mysql,general\r\nqueue_log =&gt; mysql,general\r\n<\/pre>\n<p>\u0414\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u0434\u0438\u0430\u043b\u043f\u0430\u043d\u0430 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e switch \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre>\r\n      switch =&gt; Realtime\/[[db_context@]tablename]\/&lt;opts&gt;\r\n<\/pre>\n<p>\u041e\u043f\u0446\u0438\u044f p &#8211;  \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0431\u0434 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u044d\u043a\u0441\u0442\u0435\u043d\u0448\u0435\u043d\u043e\u0432.  \u0415\u0441\u043b\u0438 \u0443 \u0412\u0430\u0441 \u043d\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u044d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 \u0412\u0430\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0426\u041f\u0423.<br \/>\n\u041d\u041e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0438\u0430\u043b\u043f\u043b\u0430\u043d\u043e\u0432 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f, \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e  func_odbc \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0438\u0430\u043b\u043f\u043b\u0430\u043d\u0430. <\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434.<br \/>\n<strong>I.B.<\/strong><br \/>\n\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u0438\u0434 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435  extconfig.conf<\/p>\n<pre>\r\nfilename.conf =&gt; driver,database[,table]\r\n<\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0438\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430.<br \/>\n\u0414\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0421\u0442\u043e\u043b\u0431\u0446\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u0430\u0448\u0435\u0439 \u0411\u0414.<\/p>\n<table rules=\"all\" width=\"600\" align=\"center\" border=\"2\" cols=\"3\">\n<tbody>\n<tr>\n<td>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438<\/td>\n<td>\u0422\u0438\u043f \u043a\u043e\u043b\u043e\u043d\u043a\u0438<\/td>\n<td>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>id<\/td>\n<td>\u043f\u043e\u0441\u043b,\u0430\u0432\u0442\u043e\u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442<\/td>\n<td>\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435<\/td>\n<\/tr>\n<tr>\n<td>cat_metric<\/td>\n<td>\u0446\u0435\u043b\u043e\u0435<\/td>\n<td>\u0417\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435. \u0427\u0435\u043c \u043d\u0438\u0436\u0435 \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0434\u0430\u043b\u044c\u0448\u0435<\/td>\n<\/tr>\n<tr>\n<td>var_metric<\/td>\n<td>\u0446\u0435\u043b\u043e\u0435<\/td>\n<td>\u0417\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438. \u0427\u0435\u043c \u043d\u0438\u0436\u0435 \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0434\u0430\u043b\u044c\u0448\u0435. \u041f\u043e\u043b\u043d\u0435\u0437\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 \u0432 sip.conf, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c disallow=all \u043f\u0435\u0440\u0432\u044b\u043c(\u043c\u0435\u0442\u0440\u0438\u043a\u0430 0), \u0434\u0430\u043b\u0435\u0435  allow=ulaw (\u043c\u0435\u0442\u0440\u0438\u043a\u0430 1), \u043f\u043e\u0442\u043e\u043c allow=gsm (\u043c\u0435\u0442\u0440\u0438\u043a\u0430 2).<\/td>\n<\/tr>\n<tr>\n<td>filename<\/td>\n<td>Varchar 128<\/td>\n<td>\u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0434\u0438\u0441\u043a\u0430 (\u043d\u0430\u043f\u0440 musiconhold.conf, sip.conf, iax.conf, \u0438\u0442\u0434).<\/td>\n<\/tr>\n<tr>\n<td>category<\/td>\n<td>Varchar 128<\/td>\n<td>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 [general]. \u041d\u0435 \u0432\u043a\u043b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438 \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0445\u0440 \u0432 \u0411\u0414 <\/td>\n<\/tr>\n<tr>\n<td>var_name<\/td>\n<td>Varchar 128<\/td>\n<td>\u041b\u0435\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u041e\u043f\u0446\u0438\u0438 \u043e\u0442 \u0437\u043d\u0430\u043a\u0430 \u0440\u0430\u0432\u043d\u043e(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 disallow \u0432 var_name \u0432 disallow=all).<\/td>\n<\/tr>\n<tr>\n<td>var_val<\/td>\n<td>Varchar 128<\/td>\n<td>\u041f\u0440\u0430\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u041e\u043f\u0446\u0438\u0438 \u043e\u0442 \u0437\u043d\u0430\u043a\u0430 \u0440\u0430\u0432\u043d\u043e(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 all \u0432 var_name \u0432 disallow=all).<\/td>\n<\/tr>\n<tr>\n<td>commented<\/td>\n<td>\u0426\u0435\u043b\u043e\u0435<\/td>\n<td>\u041b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043e\u0442 0 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0446\u0435\u043d\u0435\u043d\u043e, \u0442\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 (\u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c cat_metric \u0438 var_metric  \u043a\u0430\u043a \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. <del datetime=\"2012-09-06T05:22:31+00:00\">\u0411\u043e\u043b\u0435\u0435 \u043b\u0443\u0447\u0448\u0435\u0435<\/del> \u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 cat_metric \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0410\u0441\u0442\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445,\u0430  \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0435  var_metric \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c,  (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443 disallow=all \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0438\u0436\u0435 \u0447\u0435\u043c \u0443 allow \u043e\u043f\u0446\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u0447\u0442\u043e disallow=all \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u043f\u0435\u0440\u0432\u044b\u043c).<br \/>\n\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c musiconhold.conf<\/p>\n<pre>\r\n$ cd \/usr\/local\/etc\/asterisk\r\n$ mv musiconhold.conf musiconhold.conf.old\r\n<\/pre>\n<p>\u0412\u044b\u0433\u0440\u0443\u0437\u0438\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c(\u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u0432\u0441\u0435\u0433\u043e \u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442) \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043a\u043b\u0430\u0441\u044b:<\/p>\n<pre>\r\n*CLI&gt; core restart now\r\n*CLI&gt; moh show classes\r\n*CLI&gt;\r\n<\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0431\u0430\u0437\u0443:<\/p>\n<pre>\r\nCREATE TABLE IF NOT EXISTS `ast_config` (\r\n  `id` int(11) NOT NULL AUTO_INCREMENT,\r\n  `cat_metric` int(10) DEFAULT NULL,\r\n  `var_metric` int(10) DEFAULT NULL,\r\n  `filename` varchar(128) DEFAULT NULL,\r\n  `category` varchar(128) DEFAULT NULL,\r\n  `var_name` varchar(128) DEFAULT NULL,\r\n  `var_val` varchar(128) DEFAULT NULL,\r\n  `commented` int(11) DEFAULT NULL,\r\n  PRIMARY KEY (`id`),\r\n  UNIQUE KEY `id` (`id`)\r\n) ENGINE=InnoDB;\r\n<\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0438:<\/p>\n<pre>\r\nINSERT INTO ast_config (filename,category,var_name,var_val)\r\n  VALUES (&#039;musiconhold.conf&#039;,&#039;default&#039;,&#039;mode&#039;,&#039;files&#039;);\r\n\r\nINSERT INTO ast_config (filename,category,var_name,var_val)\r\n  VALUES (&#039;musiconhold.conf&#039;,&#039;default&#039;,&#039;directory&#039;,&#039;\/usr\/local\/share\/asterisk\/moh&#039;);\r\n<\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre>\r\nmysql&gt; SELECT filename,category,var_name,var_val FROM ast_config;\r\n+------------------+----------+-----------+-------------------------------+\r\n| filename         | category | var_name  | var_val                       |\r\n+------------------+----------+-----------+-------------------------------+\r\n| musiconhold.conf | default  | mode      | files                         |\r\n| musiconhold.conf | default  | directory | \/usr\/local\/share\/asterisk\/moh |\r\n+------------------+----------+-----------+-------------------------------+\r\n2 rows in set (0.00 sec)\r\n<\/pre>\n<p>\u041f\u0440\u0430\u0432\u0438\u043c extconfig.conf<br \/>\n\u0413\u043e\u0432\u043e\u0440\u0438\u043c \u0447\u0442\u043e \u0434\u043b\u044f musiconhold.conf \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c odbc, \u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f asterisk(\u0432 res_odbc.conf), \u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b ast_config.<\/p>\n<pre>\r\nmusiconhold.conf =&gt; odbc,asterisk,ast_config\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441 MOH \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u043e\u0439(\u043c\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0431\u043b\u0435\u0439), \u0432\u0435\u0434\u044c \u0435\u0441\u0442\u044c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438, \u0438 \u0442\u0430\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 MOH.<br \/>\n\u041a\u0430\u043a \u043f\u043e \u043c\u043d\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u0435\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443<br \/>\n<strong>I.C. \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434<\/strong><\/p>\n<p><strong>MySQL_CDR<\/strong><br \/>\n\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b\u0438\u043a cdr.sql \u0441\u043b\u0435\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f:<\/p>\n<pre>\r\nCREATE TABLE `cdr` (\r\n`calldate` datetime NOT NULL default &#039;0000-00-00 00:00:00&#039;,\r\n`clid` varchar(80) NOT NULL default &#039;&#039;,\r\n`src` varchar(80) NOT NULL default &#039;&#039;,\r\n`dst` varchar(80) NOT NULL default &#039;&#039;,\r\n`dcontext` varchar(80) NOT NULL default &#039;&#039;,\r\n`channel` varchar(80) NOT NULL default &#039;&#039;,\r\n`dstchannel` varchar(80) NOT NULL default &#039;&#039;,\r\n`lastapp` varchar(80) NOT NULL default &#039;&#039;,\r\n`lastdata` varchar(80) NOT NULL default &#039;&#039;,\r\n`duration` int(11) NOT NULL default &#039;0&#039;,\r\n`billsec` int(11) NOT NULL default &#039;0&#039;,\r\n`disposition` varchar(45) NOT NULL default &#039;&#039;,\r\n`amaflags` int(11) NOT NULL default &#039;0&#039;,\r\n`accountcode` varchar(20) NOT NULL default &#039;&#039;,\r\n`userfield` varchar(255) NOT NULL default &#039;&#039;,\r\n`uniqueid` VARCHAR(32) NOT NULL default &#039;&#039;,\r\n`linkedid` VARCHAR(32) NOT NULL default &#039;&#039;,\r\n`sequence` VARCHAR(32) NOT NULL default &#039;&#039;,\r\n`peeraccount` VARCHAR(32) NOT NULL default &#039;&#039;\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;\r\nALTER TABLE `cdr` ADD INDEX ( `calldate` );\r\nALTER TABLE `cdr` ADD INDEX ( `dst` );\r\nALTER TABLE `cdr` ADD INDEX ( `accountcode` );\r\n<\/pre>\n<p>\u0417\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e \u0441\u0447\u0430\u0441\u0442\u044c\u0435 \u0432 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0411\u0414 asterisk<\/p>\n<pre>\r\nmysql -uuser -ppass asterisk &lt; cdr.sql\r\n<\/pre>\n<p>\u0418\u0434\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u0442\u044c \/usr\/local\/etc\/asterisk\/cdr_mysql.conf<\/p>\n<pre>\r\n[global]\r\nhostname=localhost\r\ndbname=asterisk\r\ntable=cdr\r\npassword=pass\r\nuser=user\r\nport=3306\r\n;sock=\/tmp\/mysql.sock\r\ntimezone=EEST ; Previously called usegmtime\r\n[columns]\r\n;\u0442\u0443\u0442 \u043f\u043e \u0432\u043a\u0443\u0441\u0443 \u043f\u0440\u0430\u0432\u0438\u043c, \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b 1 \u0430\u043b\u0438\u0430\u0441\r\nalias start =&gt; calldate\r\n<\/pre>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0410\u0441\u0442\u0435\u0440 \u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c:<\/p>\n<pre>\r\nasterisk -rvvvv\r\n*CLI&gt;module reload cdr_mysql.so\r\n<\/pre>\n<p>\u0418&#8230;.. \u0432\u0441\u0435)<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0410\u0441\u0442\u0435\u0440\u0438\u0441\u043a\u0443 \u043d\u0435 \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c, Uniqueid \u043d\u0443\u0436\u043d\u043e \u0432 \u0430\u043b\u0438\u0430\u0441\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c:<br \/>\nalias uniqueid => uniqueid<\/p>\n<p>\u0415\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0445\u0440\u0430\u043d\u0438\u0442\u044c CDR \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f cdr_adaptive_odbc, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0438\u043d\u0443\u0442\u044b, \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0434\u0438\u0430\u043b\u043f\u043d\u0430\u043d\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <strong>Set(CDR(per_minute_rate)=0.01)<\/strong><br \/>\n\u041f\u0440\u0430\u0432\u0438\u043c cdr_adaptive_odbc.conf<\/p>\n<pre>\r\n[adaptive_connection]\r\nconnection=asterisk\r\ntable=cdr\r\n<\/pre>\n<p>\u041c\u043e\u0436\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0432, \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u0431\u043b\u0438\u0446. \u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u043b\u0438\u0430\u0441\u044b(\u0441\u0438\u043d\u043e\u043d\u0438\u043c\u044b) \u0434\u043b\u044f \u043f\u043e\u043b\u0435\u0439:<\/p>\n<pre>\r\n[mssql_connection]\r\nconnection=production_mssql\r\ntable=call_records\r\nalias src =&gt; Source\r\nalias dst =&gt; Destination\r\nalias accountcode =&gt; AccountCode\r\nalias billsec =&gt; BillableTime\r\n<\/pre>\n<p>\u0410 \u0442\u0430\u043a\u0436\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<pre>\r\n[logging_for_device_0000FFFF0008]\r\nconnection=asterisk_mysql\r\ntable=cdr_for_0000FFFF0008\r\nfilter src =&gt; 0000FFFF0008\r\n<\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e  \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u043c:<br \/>\n(\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f accountcode.<\/p>\n<pre>\r\n[mysql_connection]\r\nconnection=asterisk_mysql\r\ntable=cdr\r\n\r\n[filtered_mysql_connection]\r\nconnection=asterisk_mysql\r\ntable=cdr\r\nfilter src =&gt; 0000FFFF0008\r\nstatic &quot;DoNotCharge&quot; =&gt; accountcode\r\n<\/pre>\n<p>\u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c, module reload cdr_adaptive_odbc.so<br \/>\n\u0418 \u0432\u0441\u0435)<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/p>\n<pre>\r\n\u0412 \u043c\u0443\u0441\u043a\u0443\u043b\u0435\r\nsql&gt; ALTER TABLE cdr ADD COLUMN route_rate varchar(10);\r\n\u0412 \u0410\u0441\u0442\u0435\u0440\u0438\u0441\u043a\u0435\r\n*CLI&gt; module reload cdr_adaptive_odbc.so\r\n\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0430\u0432\u0438\u043c \u0434\u0438\u0430\u043b\u043f\u043b\u0430\u043d\r\nexten =&gt; _NXXNXXXXXX,1,Verbose(1,Example of adaptive ODBC usage)\r\n   same =&gt; n,Set(CDR(route_rate)=0.01)\r\n   same =&gt; n,Dial(SIP\/my_itsp\/${EXTEN})\r\n   same =&gt; n,Hangup()\r\n<\/pre>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f cdr_adaptive_odbc \u0442\u0430\u043a\u0430\u044f:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\nCREATE TABLE IF NOT EXISTS `cdr` (\r\n  `calldate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\r\n  `start` timestamp NOT NULL DEFAULT &#039;0000-00-00 00:00:00&#039;,\r\n  `answer` timestamp NOT NULL DEFAULT &#039;0000-00-00 00:00:00&#039;,\r\n  `end` timestamp NOT NULL DEFAULT &#039;0000-00-00 00:00:00&#039;,\r\n  `clid` varchar(80) NOT NULL DEFAULT &#039;&#039;,\r\n  `src` varchar(80) NOT NULL DEFAULT &#039;&#039;,\r\n  `dst` varchar(80) NOT NULL DEFAULT &#039;&#039;,\r\n  `dcontext` varchar(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `channel` varchar(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `dstchannel` varchar(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `lastapp` varchar(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `lastdata` varchar(80) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `duration` int(11) NOT NULL DEFAULT &#039;0&#039;,\r\n  `billsec` int(11) NOT NULL DEFAULT &#039;0&#039;,\r\n  `disposition` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `amaflags` int(11) NOT NULL DEFAULT &#039;0&#039;,\r\n  `accountcode` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `userfield` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `uniqueid` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `linkedid` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `sequence` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  `peeraccount` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT &#039;&#039;,\r\n  KEY `calldate` (`calldate`),\r\n  KEY `dst` (`dst`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u043e\u043b\u044e <strong>src<\/strong>, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c callerid(ani), \u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 src, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0442, \u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f callerid(num). \u041d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u0439\u0442\u0435\u0441\u044c \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434 \u0437\u0432\u043e\u043d\u043a\u043e\u043c \u0432\u044b \u0441\u043c\u0435\u043d\u0438\u043b\u0438 callerid(num), \u0430 \u0432 cdr \u0432\u0441\u0435-\u0440\u0430\u0432\u043d\u043e \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8211; \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u043f\u043e\u043b\u0435 ANI ))<br \/>\n\u0412 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 queue_log \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f callerid(num)<\/p>\n<p>SIP REALTIME<br \/>\n\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443  sipppers.sql<\/p>\n<pre>\r\nCREATE TABLE `sippeers` (\r\n `id` int(11) NOT NULL AUTO_INCREMENT,\r\n `name` varchar(10) CHARACTER SET utf8 NOT NULL,\r\n `host` varchar(40) CHARACTER SET utf8 DEFAULT NULL, \r\n `ipaddr` varchar(45) CHARACTER SET utf8 DEFAULT NULL,\r\n `port` int(5) DEFAULT NULL,\r\n `regseconds` int(11) DEFAULT NULL,\r\n `defaultuser` varchar(10) CHARACTER SET utf8 DEFAULT NULL,\r\n `fullcontact` varchar(35) CHARACTER SET utf8 DEFAULT NULL,\r\n `regserver` varchar(20) CHARACTER SET utf8 DEFAULT NULL,\r\n `useragent` varchar(20) CHARACTER SET utf8 DEFAULT NULL,\r\n `lastms` int(11) DEFAULT NULL,\r\n `type` enum(&#039;friend&#039;,&#039;user&#039;,&#039;peer&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `context` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `deny` varchar(40) CHARACTER SET utf8 DEFAULT NULL, \r\n `permit` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `secret` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `md5secret` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `remotesecret` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `transport` enum(&#039;udp&#039;,&#039;tcp&#039;,&#039;udp,tcp&#039;,&#039;tcp,udp&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `dtmfmode` enum(&#039;rfc2833&#039;,&#039;info&#039;,&#039;shortinfo&#039;,&#039;inband&#039;,&#039;auto&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `directmedia` enum(&#039;yes&#039;,&#039;no&#039;,&#039;nonat&#039;,&#039;update&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `nat` enum(&#039;yes&#039;,&#039;no&#039;,&#039;never&#039;,&#039;route&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `callgroup` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `pickupgroup` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `language` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `disallow` varchar(40) CHARACTER SET utf8 DEFAULT &#039;all&#039;, \r\n `allow` varchar(40) CHARACTER SET utf8 DEFAULT &#039;g729;alaw&#039;,\r\n `insecure` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `cc_agent_policy` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT &#039;generic&#039;,\r\n `cc_monitor_policy` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT &#039;generic&#039;,\r\n `trustrpid` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `progressinband` enum(&#039;yes&#039;,&#039;no&#039;,&#039;never&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `promiscredir` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `useclientcode` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `accountcode` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `setvar` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `callerid` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `amaflags` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `callcounter` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT &#039;yes&#039;,\r\n `busylevel` int(11) DEFAULT &#039;1&#039;,\r\n `allowoverlap` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `allowsubscribe` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `videosupport` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `maxcallbitrate` int(11) DEFAULT NULL,\r\n `rfc2833compensate` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `mailbox` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `session-timers` enum(&#039;accept&#039;,&#039;refuse&#039;,&#039;originate&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `session-expires` int(11) DEFAULT NULL,\r\n `session-minse` int(11) DEFAULT NULL,\r\n `session-refresher` enum(&#039;uac&#039;,&#039;uas&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `t38pt_usertpsource` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `regexten` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `fromdomain` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `fromuser` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `qualify` varchar(40) CHARACTER SET utf8 DEFAULT &#039;yes&#039;,\r\n `defaultip` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `rtptimeout` int(11) DEFAULT NULL,\r\n `rtpholdtimeout` int(11) DEFAULT NULL,\r\n `sendrpid` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `outboundproxy` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `callbackextension` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `timert1` int(11) DEFAULT NULL,\r\n `timerb` int(11) DEFAULT NULL,\r\n `qualifyfreq` int(11) DEFAULT NULL,\r\n `constantssrc` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `contactpermit` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `contactdeny` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `usereqphone` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `textsupport` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `faxdetect` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `buggymwi` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `auth` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `fullname` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `trunkname` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `cid_number` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `callingpres` enum(&#039;allowed_not_screened&#039;,&#039;allowed_passed_screen&#039;,&#039;allowed_failed_screen&#039;,&#039;allowed&#039;,&#039;prohib_not_screened&#039;,&#039;prohib_passed_screen&#039;,&#039;prohib_failed_screen&#039;,&#039;prohib&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `mohinterpret` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `mohsuggest` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `parkinglot` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `hasvoicemail` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `subscribemwi` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `vmexten` varchar(40) CHARACTER SET utf8 DEFAULT NULL,\r\n `autoframing` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `rtpkeepalive` int(11) DEFAULT NULL,\r\n `g726nonstandard` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `ignoresdpversion` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `allowtransfer` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `dynamic` enum(&#039;yes&#039;,&#039;no&#039;) CHARACTER SET utf8 DEFAULT NULL,\r\n `notifyringing` varchar(10) COLLATE utf8_bin NOT NULL DEFAULT &#039;yes&#039;,\r\n `notifyhold` varchar(10) COLLATE utf8_bin NOT NULL DEFAULT &#039;yes&#039;,\r\n `notifycid` varchar(10) COLLATE utf8_bin NOT NULL DEFAULT &#039;yes&#039;,\r\n PRIMARY KEY (`id`),\r\n UNIQUE KEY `name` (`name`),\r\n KEY `ipaddr` (`ipaddr`,`port`),\r\n KEY `host` (`host`,`port`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin\r\n<\/pre>\n<p>\u041a\u0430\u043a \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435<br \/>\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u0434\u0435\u043a\u043e\u0432: allow disallow \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439  alaw;ulaw;gsm<br \/>\n\u0412\u0430\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u043a\u0430\u043a \u0438 \u0432 sip.conf,  disallow \u043f\u043e\u0442\u043e\u043c allow, deny \u043f\u043e\u0442\u043e\u043c permit<br \/>\n\u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0435 &#8220;ipaddr&#8221; \u0414\u041e &#8220;host&#8221; (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 dynamic) \u0442\u043e \u043c\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043f \u0434\u0435\u0432\u0430\u0439\u0441\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u043e\u043b\u0435\u043c &#8220;host&#8221;.<br \/>\n\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:  type, name, secret, context, host, defaultuser.<br \/>\n\u0414\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0438\u0440\u0430:  port, regseconds, ipaddr<br \/>\n\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 sip.conf, \u0438\u043d\u0430\u0447\u0435 \u043f\u0438\u0440 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043f\u0438\u0440\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u044e\u0442 \u0437\u0432\u043e\u043d\u043a\u0438 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c.<br \/>\n\u041e\u043f\u0446\u0438\u0438 \u0432 sip.conf [general] \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u043f\u0438\u0440\u044b:<\/p>\n<table rules=\"all\" width=\"600\" align=\"center\" border=\"2\" cols=\"3\">\n<tbody>\n<tr>\n<td>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0438<\/td>\n<td>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/td>\n<td>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>rtcachefriends<\/td>\n<td>yes,no<\/td>\n<td>\u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0438\u0440\u044b \u0432 \u043f\u0430\u043c\u044f\u0442\u0438,\u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c(\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f, \u0437\u0432\u043e\u043d\u043e\u043a)<\/td>\n<\/tr>\n<tr>\n<td>rtsavesysname<\/td>\n<td>yes,no<\/td>\n<td>\u041a\u043e\u0433\u0434\u0430 \u043f\u0438\u0440 \u0437\u0430\u0440\u0435\u0433\u0430\u043b\u0441\u044f, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c  systemname(\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0430\u043d \u0432 asterisk.conf) \u0432 \u043f\u043e\u043b\u0435 regserver. \u0423\u0434\u043e\u0431\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0445\u0440\u0430\u043d\u0438\u043c \u043f\u0438\u0440\u044b \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0431\u0430\u0437\u0435. <\/td>\n<\/tr>\n<tr>\n<td>rtupdate<\/td>\n<td>yes,no<\/td>\n<td>\u041e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u043a IP \u0430\u0434\u0440\u0435\u0441, \u043f\u043e\u0440\u0442, \u0440\u0435\u0433 \u043f\u0435\u0440\u0438\u043e\u0434, \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0411\u0414 <\/td>\n<\/tr>\n<tr>\n<td>rtautoclear<\/td>\n<td>yes,no, \u0437\u043d\u0430\u0447 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445<\/td>\n<td>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0430 friend, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb, \u043f\u043e \u0442\u043e\u043c\u0443 \u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0443, \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 yes, \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 friend \u0438\u0441\u0447\u0435\u0437\u043d\u0435\u0442 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u043e \u0446\u0435\u043b\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0435\u043a\u0443\u043d\u0434, \u0430 \u043d\u0435 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>ignoreregexpire<\/td>\n<td>yes,no<\/td>\n<td>\u0415\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u0438\u0440 \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f rtcachefriends=yes \u0432 sip.conf \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 chan_sip.so (module reload chan_sip.so), \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0438\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443. <\/p>\n<p>RealTime VoiceMail<br \/>\n\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 MySQL \u0443\u043c\u0435\u0435\u0442 BLOB(Binary Large OBject), \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0443\u044e \u043f\u043e\u0447\u0442\u0443 \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445! \u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u0434 \u0424\u0440\u0435\u0439 \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442 \u043a\u0430\u043a \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u0442\u044c \u043f\u0438\u0448\u0435\u043c)<br \/>\n\u041f\u043e \u043c\u0430\u043d\u0443\u0430\u043b\u0443 \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<br \/>\n\u041f\u0440\u0430\u0432\u0438\u043c voicemail.conf<\/p>\n<pre>\r\n[general]\r\nformat=wav49\r\nodbcstorage=asterisk\r\nodbctable=voicemessages\r\n<\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432 \u0411\u0414 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443 voicemessages<\/p>\n<pre>\r\nDROP TABLE IF EXISTS voicemessages;\r\nCREATE TABLE voicemessages (\r\n         uniqueid INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,\r\n        -- Logical directory\r\n        dir CHAR(255),\r\n        -- Message number within the logical directory\r\n        msgnum INT(4),\r\n        -- The recording itself\r\n        recording BLOB,\r\n        -- Dialplan context\r\n        context CHAR(80),\r\n        -- Dialplan context, if Voicemail was invoked from a macro\r\n        macrocontext CHAR(80),\r\n        -- CallerID, when the message was left\r\n        callerid CHAR(80),\r\n        -- Date when the message was left, in Unixtime\r\n        origtime INT(11),\r\n        -- Length of the message, in seconds\r\n        duration INT(11),\r\n        -- Owner of the mailbox\r\n        mailboxuser CHAR(30),\r\n        -- Context of the owner of the mailbox\r\n        mailboxcontext CHAR(30), \r\n        --label varchar30\r\n        label CHAR(30),\r\n        -- Context of the owner of the mailbox\r\n        `read` BOOLEAN NOT NULL default 0,\r\n        -- Text flags indicating urgency of the message\r\n        flag CHAR(30)\r\n  );\r\n<\/pre>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0449\u0438\u043a\u0430\u043c\u0438 \u0438\u0437 \u0411\u0414 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 2 \u043f\u0438\u043d\u043a\u0430:<br \/>\n\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443:<\/p>\n<pre>\r\nDROP TABLE IF EXISTS voicemail;\r\nCREATE TABLE voicemail (\r\n        -- All of these column names are very specific, including &quot;uniqueid&quot;.  Do not change them if you wish voicemail to work.\r\n        uniqueid INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,\r\n        -- Mailbox context.\r\n        context CHAR(80) NOT NULL DEFAULT &#039;default&#039;,\r\n        -- Mailbox number.  Should be numeric.\r\n        mailbox CHAR(80) NOT NULL,\r\n        -- Must be numeric.  Negative if you don&#039;t want it to be changed from VoicemailMain\r\n        password CHAR(80) NOT NULL,\r\n        -- Used in email and for Directory app\r\n        fullname CHAR(80),\r\n        -- Email address (will get sound file if attach=yes)\r\n        email CHAR(80),\r\n        -- Email address (won&#039;t get sound file)\r\n        pager CHAR(80),\r\n        -- Attach sound file to email - YES\/no\r\n        attach CHAR(3),\r\n        -- Which sound format to attach\r\n        attachfmt CHAR(10),\r\n        -- Send email from this address\r\n        serveremail CHAR(80),\r\n        -- Prompts in alternative language\r\n        language CHAR(20),\r\n        -- Alternative timezone, as defined in voicemail.conf\r\n        tz CHAR(30),\r\n        -- Delete voicemail from server after sending email notification - yes\/NO\r\n        deletevoicemail CHAR(3),\r\n        -- Read back CallerID information during playback - yes\/NO\r\n        saycid CHAR(3),\r\n        -- Allow user to send voicemail from within VoicemailMain - YES\/no\r\n        sendvoicemail CHAR(3),\r\n        -- Listen to voicemail and approve before sending - yes\/NO\r\n        review CHAR(3),\r\n        -- Warn user a temporary greeting exists - yes\/NO\r\n        tempgreetwarn CHAR(3),\r\n        -- Allow &#039;0&#039; to jump out during greeting - yes\/NO\r\n        operator CHAR(3),\r\n        -- Hear date\/time of message within VoicemailMain - YES\/no\r\n        envelope CHAR(3),\r\n        -- Hear length of message within VoicemailMain - yes\/NO\r\n        sayduration CHAR(3),\r\n        -- Minimum duration in minutes to say\r\n        saydurationm INT(3),\r\n        -- Force new user to record name when entering voicemail - yes\/NO\r\n        forcename CHAR(3),\r\n        -- Force new user to record greetings when entering voicemail - yes\/NO\r\n        forcegreetings CHAR(3),\r\n        -- Context in which to dial extension for callback\r\n        callback CHAR(80),\r\n        -- Context in which to dial extension (from advanced menu)\r\n        dialout CHAR(80),\r\n        -- Context in which to execute 0 or * escape during greeting\r\n        exitcontext CHAR(80),\r\n        -- Maximum messages in a folder (100 if not specified)\r\n        maxmsg INT(5),\r\n        -- Increase DB gain on recorded message by this amount (0.0 means none)\r\n        volgain DECIMAL(5,2),\r\n        -- IMAP user for authentication (if using IMAP storage)\r\n        imapuser VARCHAR(80),\r\n        -- IMAP password for authentication (if using IMAP storage)\r\n        imappassword VARCHAR(80),\r\n        stamp timestamp\r\n);\r\n<\/pre>\n<p>\u0432 extconfig.conf \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<pre>\r\nvoicemail =&gt; mysql,general\r\n<\/pre>\n<p>\u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c(\u043c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u0410\u0441\u0442\u0435\u0440\u0438\u0441\u043a\u0430)<br \/>\n\u0412\u0441\u0435..)<\/p>\n<p><a href=\"https:\/\/bos-info.com\/asterisk\/musiconhold.html\"><strong>MusicOnHold Realtime<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/bos-info.com\/asterisk\/realtime-queues.html\"><strong>Queues Realtime<\/strong><\/a><\/p>\n<p><strong>II.<\/strong><br \/>\n<a href=\"http:\/\/vk.com\/id13677128\" title=\"\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0424\u0435\u0434\u043e\u0440\u043e\u0432\">\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0424\u0451\u0434\u043e\u0440\u043e\u0432 <\/a>\u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0435, \u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e  ODBC \u043f\u043e\u0434 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e \u043f\u0430\u0434\u0430\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0431\u0435\u0437 ODBC:<br \/>\nA. C\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0438\u0437 sql \u0444\u0430\u0439\u043b\u043e\u0432 \u043b\u044e\u0431\u0435\u0437\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u043c\u0438<br \/>\n\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0432 \u043c\u0443\u0441\u043a\u0443\u043b\u0435<br \/>\nuse asterisk<br \/>\nsource \/destination\/config.sql;<\/p>\n<p>B. \u0432 \u0444\u0430\u0439\u043b\u0435 res_config_mysql.conf \u043f\u0440\u0430\u0432\u0438\u043c \u0441\u0435\u043a\u0446\u0438\u044e general \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b<br \/>\n[general]<br \/>\ndbhost = localhost<br \/>\ndbname = asterisk<br \/>\ndbuser = admin<br \/>\ndbpass = admin<br \/>\ndbport = 3306<br \/>\ndbsock = \/tmp\/mysql.sock<br \/>\n;dbcharset = utf8<br \/>\nrequirements=warn ; or createclose or createchar<\/p>\n<p>C. \u0432 extconfig.conf<br \/>\n\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435(\u0440\u0430\u0437\u0440\u0430\u0431\u044b \u043f\u043e\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0441\u0432\u0438\u043d\u044c\u044e \u043c\u0430\u043b\u0430\u0446\u044b:)<br \/>\n\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e<br \/>\nfile.conf => driver,database[,table[,priority]]<br \/>\n\u0427\u0418\u0422\u0410\u0422\u042c<br \/>\nfile.conf => driver,\u0421\u0415\u041a\u0426\u0418\u042f \u0432 res_config_&#8230;.[,table[,priority]]<br \/>\n\u0415\u0441\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b\u0430, \u0442\u043e \u0435\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c!<br \/>\n\u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439<br \/>\nmeetme => mysql,general,meetme<br \/>\n\u043d\u0443 \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u043c \u0432\u044b\u0435\u0436\u043d\u0443\u0442\u0441\u044f, \u0442\u043e<br \/>\nmeetme => mysql,general<\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u0440\u0438\u0442\u0438\u043a\u0430 \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f) <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u0442\u0440\u0430\u0448\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445, \u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u044d\u0442\u043e \u0434\u0435\u043b\u043e. \u0411\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u043b\u043e\u0432 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u041d\u0430 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u0435 \u0434\u043d\u044f: I. Realtime over ODBC A. extconfig.conf B. Static Realtime C. Dynamic Realtime II. Realtime w\/o ODBC \u041e\u0442 \u0441\u043b\u043e\u0432 \u043a \u0434\u0435\u043b\u0443:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[61],"_links":{"self":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts\/417"}],"collection":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=417"}],"version-history":[{"count":5,"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts\/417\/revisions"}],"predecessor-version":[{"id":899,"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts\/417\/revisions\/899"}],"wp:attachment":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}