<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IgorG - персональные заметки &#187; Asterisk</title>
	<atom:link href="http://igorg.ru/category/voip/asterisk/feed/" rel="self" type="application/rss+xml" />
	<link>http://igorg.ru</link>
	<description>Записки asterisk&#039;ера</description>
	<lastBuildDate>Fri, 06 Apr 2012 18:38:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Отправка файла на asterisk</title>
		<link>http://igorg.ru/2012/04/07/otpravka-fajla-na-asterisk/</link>
		<comments>http://igorg.ru/2012/04/07/otpravka-fajla-na-asterisk/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 18:38:29 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[1C]]></category>
		<category><![CDATA[AJAM]]></category>
		<category><![CDATA[ami]]></category>
		<category><![CDATA[http.conf]]></category>
		<category><![CDATA[POST]]></category>
		<category><![CDATA[post_mappings]]></category>
		<category><![CDATA[МИКО]]></category>
		<category><![CDATA[файл]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1684</guid>
		<description><![CDATA[В Asterisk достаточно давно есть механизм AJAM для работы с командами менеджера через HTTP/HTTPS. Хотя возможность эта уже не нова, но её использование в основном ограничивается Asterisk GUI, в реальной жизни используется редко. Кроме аналогичных стандартному AMI функций AJAM позволяет и выполнить некоторые непривычные операции. Например, немногие знают, но Asterisk позволяет удаленно загружать файлы на [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/02/asterisk.png"><img class="alignleft size-medium wp-image-570" title="Asterisk" src="http://igorg.ru/wp-content/uploads/2009/02/asterisk-300x168.png" alt="" width="300" height="168" /></a>В Asterisk достаточно давно есть механизм AJAM для работы с командами менеджера через HTTP/HTTPS. Хотя возможность эта уже не нова, но её использование в основном ограничивается Asterisk GUI, в реальной жизни используется редко.</p>
<p>Кроме аналогичных стандартному AMI функций AJAM позволяет и выполнить некоторые непривычные операции. Например, немногие знают, но Asterisk позволяет удаленно загружать файлы на сервер. Эта возможность, кстати, используется в <a href="http://www.miko.ru/sales/product/asterisk_1c_crm/">панели телефонии 1С от МИКО</a> для передачи факса. Для истории опишу, какие шаги нужно выполнить чтобы загрузить файл через AJAM на сервер астериска.</p>
<p><span id="more-1684"></span></p>
<p>Для начала аккаунт менеджера, используемый для подключения, должен быть настроен в manager.conf обычным образом, у пользователя должна быть установлена привилегия config на запись. Далее в http.conf создаем секцию post_mappings:</p>
<blockquote>
<p>[post_mappings]<br />
uploads=/var/lib/asterisk/uploads</p>
</blockquote>
<p>В данном случае имя параметра&nbsp;&mdash; часть URL для запроса записи в папку, значение&nbsp;&mdash; папка для записи. Функция реализующую данную опцию содержится в отдельном модуле&nbsp;&mdash; res_http_post.so, он должен быть загружен для того чтобы все заработало. Если такого модуля нет, то его придется собрать из исходных кодов, для его сборки в свою очередь нужен libgmime-devel. После загрузки модуля проверяем что настройки применились:</p>
<blockquote>
<p>pbx*CLI&gt; http show status<br />
HTTP Server Status:<br />
Prefix: /asterisk<br />
Server Enabled and Bound to 0.0.0.0:8088</p>
<p>HTTPS Server Enabled and Bound to 0.0.0.0:4443</p>
<p>Enabled URI&#39;s:<br />
/asterisk/httpstatus =&gt; Asterisk HTTP General Status<br />
/asterisk/phoneprov/... =&gt; Asterisk HTTP Phone Provisioning Tool<br />
/asterisk/amanager =&gt; HTML Manager Event Interface w/Digest authentication<br />
<strong>/asterisk/uploads =&gt; HTTP POST mapping</strong><br />
/asterisk/arawman =&gt; Raw HTTP Manager Event Interface w/Digest authentication<br />
/asterisk/manager =&gt; HTML Manager Event Interface<br />
/asterisk/rawman =&gt; Raw HTTP Manager Event Interface<br />
/asterisk/static/... =&gt; Asterisk HTTP Static Delivery<br />
/asterisk/amxml =&gt; XML Manager Event Interface w/Digest authentication<br />
/asterisk/mxml =&gt; XML Manager Event Interface</p>
<p>Enabled Redirects:<br />
None.</p>
</blockquote>
<p>Протестировать загрузку файла можно выполнив из консоли следующие команды (конечно использовав ваши логин и пароль):</p>
<blockquote>
<p>curl --cookie cookies.txt --cookie-jar cookies.txt &laquo;http://pbx.mycorp.ru:8088/asterisk/rawman?action=Login&amp;username=admin&amp;secret=manager&raquo;</p>
</blockquote>
<blockquote>
<p>curl --cookie cookies.txt -F &laquo;file=@Fax.pdf&raquo; http://pbx.mycorp.ru:8088/asterisk/uploads</p>
</blockquote>
<p>Если все нормально, то файл будет загружен в нужную папку, а вы уведите ответ сервера:</p>
<blockquote>
<p>&lt;!DOCTYPE HTML PUBLIC &laquo;-//IETF//DTD HTML 2.0//EN&raquo;&gt;<br />
&lt;html&gt;&lt;head&gt;<br />
&lt;title&gt;200 OK&lt;/title&gt;<br />
&lt;/head&gt;&lt;body&gt;<br />
&lt;h1&gt;OK&lt;/h1&gt;<br />
&lt;p&gt;File successfully uploaded.&lt;/p&gt;<br />
&lt;hr /&gt;<br />
&lt;address&gt;Asterisk Server&lt;/address&gt;<br />
&lt;/body&gt;&lt;/html&gt;</p>
</blockquote>
<p>Если не авторизоваться вызовом первой команды, то вы получите привет от HAL9000:</p>
<blockquote>
<p>&lt;!DOCTYPE HTML PUBLIC &laquo;-//IETF//DTD HTML 2.0//EN&raquo;&gt;<br />
&lt;html&gt;&lt;head&gt;<br />
&lt;title&gt;403 Access Denied&lt;/title&gt;<br />
&lt;/head&gt;&lt;body&gt;<br />
&lt;h1&gt;Access Denied&lt;/h1&gt;<br />
&lt;p&gt;Sorry, I cannot let you do that, Dave.&lt;/p&gt;<br />
&lt;hr /&gt;<br />
&lt;address&gt;Asterisk Server&lt;/address&gt;<br />
&lt;/body&gt;&lt;/html&gt;</p>
</blockquote>
<p>Неправильно сформированный запрос. например использование метода PUT вместо POST:</p>
<blockquote>
<p>&lt;!DOCTYPE HTML PUBLIC &laquo;-//IETF//DTD HTML 2.0//EN&raquo;&gt;<br />
&lt;html&gt;&lt;head&gt;<br />
&lt;title&gt;501 Not Implemented&lt;/title&gt;<br />
&lt;/head&gt;&lt;body&gt;<br />
&lt;h1&gt;Not Implemented&lt;/h1&gt;<br />
&lt;p&gt;Attempt to use unimplemented / unsupported method&lt;/p&gt;<br />
&lt;hr /&gt;<br />
&lt;address&gt;Asterisk Server&lt;/address&gt;<br />
&lt;/body&gt;&lt;/html&gt;</p>
</blockquote>
<p style="text-align: left;">Есть и другие сообщения об ошибке, подробнее в них поможет разобраться код модуля, файл res_http_post.c</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2012/04/07/otpravka-fajla-na-asterisk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Обновление в поддержке протокола Unistim</title>
		<link>http://igorg.ru/2012/03/23/obnovlenie-v-podderzhke-protokola-unistim/</link>
		<comments>http://igorg.ru/2012/03/23/obnovlenie-v-podderzhke-protokola-unistim/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 16:05:14 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[FreePBX]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[asterisk 11]]></category>
		<category><![CDATA[chan_unistim]]></category>
		<category><![CDATA[i2002]]></category>
		<category><![CDATA[i2004]]></category>
		<category><![CDATA[Nortel]]></category>
		<category><![CDATA[unistim]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1703</guid>
		<description><![CDATA[Протокол Unistim&#160;&#8212; проприетарный протокол компании Nortel, который также поддерживается в Asterisk начиная, кажется, с версии 1.6.2. Изначально автор канала написалсобственный сервер для поддержки этого протокола, затем наработки использовал для создания канала chan_unistim. Однако после появления канала в 1.6.2 он не поддерживался, а так же не дорабатывался. Примерно год назад я начал заниматься доработкой данного канала, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/06/asterisk_ru.png"><img class="alignleft size-medium wp-image-732" title="Asterisk по-русски" src="http://igorg.ru/wp-content/uploads/2009/06/asterisk_ru-300x168.png" alt="" width="300" height="168" /></a>Протокол <a href="http://ru.wikipedia.org/wiki/Unistim">Unistim</a>&nbsp;&mdash; проприетарный протокол компании Nortel, который также поддерживается в Asterisk начиная, кажется, с версии 1.6.2. Изначально автор канала написалсобственный сервер для поддержки этого протокола, затем наработки использовал для создания канала chan_unistim.</p>
<p>Однако после появления канала в 1.6.2 он не поддерживался, а так же не дорабатывался. Примерно год назад я начал заниматься доработкой данного канала, что привело к следующим последствиям:</p>
<ul>
<li>Я <a href="http://www.venturevoip.com/news.php?rssid=2610">стал одним из</a> т.н. Asterisk Community Developers и мейнтейнером chan_unistim</li>
<li>Неделю назад весь объем доработок был <a href="http://svnview.digium.com/svn/asterisk?view=revision&amp;revision=358766">добавлен в trunk</a> и будет присутствовать в Asterisk 11</li>
</ul>
<p>Немного более подробно о том что сделано и что планируется.</p>
<p><span id="more-1703"></span>Прежде всего, что это и для чего нужно. Данный канал может быть интересен для тех, кто обладает станцией Nortel и думает над её расширением или заменой, ведь не все телефоны Nortel имеют поддержку SIP протокола (сейчас канал поддерживает модели 2001, 2002, 2004, 1110E, 1120E, 1140E, 1150E, с любыми версиями протокола Unistim). Кроме того, энтузиасты могут собрать очень бюджетную IP-телефонную станцию (телефон i2002 стоит на ebay от $10).</p>
<p>Текущий драйвер конечно не повторяет полностью функции станций Nortel, но со временем всё может стать возможным. Наиболее важные произведенные изменения:</p>
<ul>
<li>Добавлена поддержка нескольких линий</li>
<li>Добавлена поддержка многоязычности</li>
<li>Подбор вызова</li>
</ul>
<p>В целом сделана большая работа, хочется сделать большее:</p>
<ul>
<li>Улучшить стабильность работы канала</li>
<li>Добавить функцию 3-way call (возможно и n-way!)</li>
<li>Сделать сайт проекта (<a href="http://unistim.igorg.ru">unistim.igorg.ru</a>), чтобы помочь всем желающим использовать Nortel телефоны в полной мере с астериском</li>
<li>Добавить поддержку Unistim во FreePBX</li>
</ul>
<p>Готов ответить на все вопросы в комментариях.</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2012/03/23/obnovlenie-v-podderzhke-protokola-unistim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Несколько учетных записей одного провайдера на Asterisk</title>
		<link>http://igorg.ru/2012/02/22/sip-trank-neskolko-uchyotok/</link>
		<comments>http://igorg.ru/2012/02/22/sip-trank-neskolko-uchyotok/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 06:05:22 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[chan_sip]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[sip]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1612</guid>
		<description><![CDATA[В настоящее время самым доступным способом подключения к цифровой телефонии является использование протокола SIP. Даже средние компании при подключении часто используют более одного телефонного номера, либо количество каналов, привязанных к одному номеру не хватает и устраивается псевдо-серийный номер путем использования переадресации между несколькими SIP аккаунтами. Я хотел бы написать о небольших проблемах, которые несет в [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/02/asterisk.png"><img class="alignleft size-medium wp-image-570" title="Asterisk" src="http://igorg.ru/wp-content/uploads/2009/02/asterisk-300x168.png" alt="" width="300" height="168" /></a>В настоящее время самым доступным способом подключения к цифровой телефонии является использование протокола SIP. Даже средние компании при подключении часто используют более одного телефонного номера, либо количество каналов, привязанных к одному номеру не хватает и устраивается псевдо-серийный номер путем использования переадресации между несколькими SIP аккаунтами. Я хотел бы написать о небольших проблемах, которые несет в себе такой способ подключения, а так же о способах их решения. Необходимость такого разъяснения возникла после неоднократного появления на форумах типовых вопросов, на которые как правила многие &laquo;специалисты&raquo; дают неправильные ответы.</p>
<p>На данный момент реалии таковы, что многие операторы не могут вам предложить несколько SIP номеров в одном транке и выдают для каждого номера свои регистрационные данные. При этом успешно регистрируясь на сервере провайдера и успешно получая/отправляя вызовы можно не заметить каких-либо проблем, но важно их понимать. Однажды столкнувшись с проявлением такой проблемы и разобравшись с ней, вы можете сэкономить себе массу нервов, а так же будете яснее понимать что происходит в вашей сети.</p>
<p><span id="more-1612"></span></p>
<p><strong>Проблема:</strong></p>
<p>При регистрации на сервере оператора ваш Астериск сообщает серверу провайдера свой IP адрес, а так же порт, где будет ожидаться соединение по SIP протоколу. При этом Астериск для нескольких учетных записей использует один и тот же порт. Далее работа настроенного транка делится на два типа: совершение исходящих и входящих вызовов. При совершении исходящих вызовов в команде Dial/msk1111111 указывается имя пира, для вызова используются соответствующие авторизационные данные. Пример конфигурации:</p>
<blockquote>
<p>register=74951111111:xxx@myprovider.ru<br />
register=74952222222:yyy@myprovider.ru</p>
<p>[msk1111111]<br />
username=74951111111<br />
fromuser=74951111111<br />
<em>context=from-trunk1111111</em><br />
type=friend<br />
secret=xxx<br />
insecure=invite<br />
host=myprovider.ru</p>
<p>[msk2222222]<br />
username=74952222222<br />
fromuser=74952222222<br />
secret=yyy<br />
<em>context=from-trunk2222222</em><br />
type=friend<br />
insecure=invite<br />
host=myprovider.ru</p>
</blockquote>
<p>У многих существует иллюзия, что при входящем вызове так же произойдет авторизация по указанным логину и паролю, однако это не так (обратите внимание что при настройке транков вы повсеместно используете опцию <em>insecure=invite</em>). При поступлении входящего вызова авторизация не предусмотрена, поэтому поиск пира по имени пользователя и паролю невозможен. Однако поиск транка, по которому поступил вызов происходит и он отображается в наименовании входящего канала. Каким образом? По значению параметра host и port, а так как они одинаковы, то на какой бы номер вызов не поступил входящий вызов, всегда будет найден последний (поведение между версиями asterisk может отличаться) из пиров. В примере&nbsp;&mdash; это пир msk2222222.</p>
<p>Наблюдаемые аномалии:</p>
<ol>
<li>Если у пиров, с одним значением host,  указаны различные контексты, то будет создаваться впечатление что астериск игнорирует контексты всех пиров, кроме последнего из указанных в конфигурационном файле.</li>
<li>При входящем вызове, если завершение вызова идет со стороны астериска (например, сотрудник первым кладет трубку), то вызов не сможет завершиться нормально, пока звонящий самостоятельно не завершит вызов. При обычном диалоге эта проблема почти незаметна и изнутри компании не чувствуется&nbsp;&mdash; тишину вместо сигнала отбоя слышит звонящий, но если компанию будут осаждать автоинформаторы, такая проблема может стать серьезной&nbsp;&mdash; линии будут заняты и вы не сможете их освободить по своей воле.</li>
</ol>
<p><strong>Решение (способ1):</strong></p>
<p>Игнорировать наличие проблемы, максимально компенсировать её наличие настройками. Вызовы от всех аккаунтов, относящихся к одному серверу,принимать в едином контексте. Некорректное завершение вызова игнорируем, в первую очередь принимая вызовы через последний описанный в sip.conf аккаунт.</p>
<p><strong>Решение (способ2):</strong></p>
<p>Договориться с провайдером на передачу нескольких номеров по транку с единственной авторизацией, либо без регистрации вообще. Порой это бывает сложно с делать как технически, так и организационно.</p>
<p><strong>Решение (способ3):</strong></p>
<p>Использовать FreeSWITCH, для полной либо частичной замены Asterisk в такой ситуации. Этот способ решения позволяет сделать полностью технически верное решение для организации транка в такой ситуации. FreeSWITCH в отличии от Asterisk имеет возможность настройки нескольких SIP профилей, использующих различные порты и интерфейсы. При использовании  данного решения настраивается несколько профилей, по количеству регистраций. В зависимости от CallerID исходящие вызовы маршрутизируются в диалплане FS.</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2012/02/22/sip-trank-neskolko-uchyotok/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Asterisk 10 (релиз)</title>
		<link>http://igorg.ru/2011/12/16/asterisk-10-reliz/</link>
		<comments>http://igorg.ru/2011/12/16/asterisk-10-reliz/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 09:51:36 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[astdb]]></category>
		<category><![CDATA[asterisk 10]]></category>
		<category><![CDATA[T.140]]></category>
		<category><![CDATA[t.38]]></category>
		<category><![CDATA[конференции]]></category>
		<category><![CDATA[релиз]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1606</guid>
		<description><![CDATA[Команда разработчиков проекта Asterisk сегодня представила релиз новой версии проекта&#160;&#8212; Asterisk 10. Исходные коды доступны для загрузки с серверов проекта. Asterisk 10&#160;&#8212; очередная версия астериска с серьезным функциональным обновлением. Данный релиз имеет стандартную поддержку при исправлении ошибок, по срокам аналогичную версии 1.6.2. Более подробная информация о сроках поддержки доступна здесь. Так же в этом релизе [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/02/asterisk.png"><img class="alignleft size-medium wp-image-570" title="Asterisk" src="http://igorg.ru/wp-content/uploads/2009/02/asterisk-300x168.png" alt="" width="300" height="168" /></a>Команда разработчиков проекта Asterisk сегодня представила релиз новой версии проекта&nbsp;&mdash; Asterisk 10. Исходные коды доступны для загрузки с <a href="http://downloads.asterisk.org/pub/telephony/asterisk/">серверов проекта</a>.</p>
<p>Asterisk 10&nbsp;&mdash; очередная версия астериска с серьезным функциональным обновлением. Данный релиз имеет стандартную поддержку при исправлении ошибок, по срокам аналогичную версии 1.6.2. Более подробная информация о сроках поддержки <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions">доступна здесь</a>. Так же в этом релизе из номера версии удалена первая цифра &laquo;1&raquo;, о причинах такого шага можно прочитать в переводе <a href="http://asteriskblog.ru/2011/11/16/razvitie-asterisk-ili-kak-my-prishli-k-versii-aste/">здесь</a>.</p>
<p><span id="more-1606"></span>Короткий список наиболее заметных изменений и нововведений:</p>
<ul>
<li> Функция T.38 шлюза добавлена в модуль res_fax.</li>
<li>Независимая от протокола маршрутизация текстовых сообщений. Текстовые сообщения могут не ассоциироваться с активным голосовым вызовом, маршрутизироваться используя диалплан. На данный момент поддерживаются протоколы SIP и XMPP.</li>
<li>Новое, оптимизированное и хорошо настраиваемое приложение ConfBridge, позволяющее осуществлять работу с голосовыми потоками с частотой дискретизации 8kHz-192kHz</li>
<li>Добавление опции video_mode в confbridge.conf для предоставления режима простых видео-конференций в приложении ConfBridge ().</li>
<li>Поддержка определения hint-экстенженов используя pbx_lua.</li>
<li>Замена Berkeley DB на SQLite в качестве основной базы данных (AstDB).</li>
<li>Многое и много другое!</li>
</ul>
<p>Более полный список изменений может быть найден здесь: <a href="http://svn.asterisk.org/svn/asterisk/tags/10.0.0/asterisk-10.0.0-summary.txt" target="_blank">http://svn.asterisk.org/svn/asterisk/tags/10.0.0/asterisk-10.0.0-summary.txt</a></p>
<p>Полнейший список изменений в файле CHANGES: <a href="http://svn.asterisk.org/svn/asterisk/branches/10/CHANGES" target="_blank">http://svn.asterisk.org/svn/asterisk/branches/10/CHANGES</a></p>
<p>Так же, обновляя систему с предыдущих версий, убедитесь что вы прочли и, главное, поняли написанное в файле UPGRADE.txt: <a href="http://svn.asterisk.org/svn/asterisk/branches/10/UPGRADE.txt" target="_blank">http://svn.asterisk.org/svn/asterisk/branches/10/UPGRADE.txt</a></p>
<p>Этот релиз Asterisk 10 был бы невозможен без помощи и работы сообщества. Спасибо сообществу за внимание к проекту!</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/12/16/asterisk-10-reliz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Несколько h.323 endpoint в Yate</title>
		<link>http://igorg.ru/2011/11/13/multiple-h323-endpoint-vyate/</link>
		<comments>http://igorg.ru/2011/11/13/multiple-h323-endpoint-vyate/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 15:47:12 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[chan_h323]]></category>
		<category><![CDATA[gatekeeper]]></category>
		<category><![CDATA[H.323]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[Yate]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1553</guid>
		<description><![CDATA[Один из моих заказчиков столкнулся с &#171;магическим&#187; ограничением в 64 endpoint&#39;а в настройках модуля chan_h323 астериска. При создании большего количества записей астериск падает, вызывая ошибку  где-то в pwlib. Разбираться с давно уже не поддерживаемым модулем и новой для себя библиотекой желания не было, так что было предложено использовать более совершенную поддержку H323 протокола, имеющуюся в [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2011/11/h323.jpg"><img class="alignleft size-medium wp-image-1557" title="h323" src="http://igorg.ru/wp-content/uploads/2011/11/h323-300x199.jpg" alt="" width="300" height="199" /></a>Один из моих заказчиков столкнулся с &laquo;магическим&raquo; ограничением в 64 endpoint&#39;а в настройках модуля chan_h323 астериска. При создании большего количества записей астериск падает, вызывая ошибку  где-то в pwlib. Разбираться с давно уже не поддерживаемым модулем и новой для себя библиотекой желания не было, так что было предложено использовать более совершенную поддержку H323 протокола, имеющуюся в <a href="http://yate.null.ro">Yate</a>.</p>
<p>Во всех спецификациях yate среди перечисления функций указано: <em>H.323 multiple endpoint</em> <em>server</em>. Однако примеров настройки в wiki нет, вместо этого только описание основных <a href="http://yate.null.ro/pmwiki/index.php?n=Main.H323GatekeeperAmpMultipleEndpointServer">принципов и компонентов протокола H.323</a>.</p>
<p><span id="more-1553"></span>Ответ был найден в единственном сообщении в списке рассылки. В конфигурационном файле h323chan.conf могут быть созданы дополнительные секции, где после типа секции через пробел указывается внутреннее имя endpoint:</p>
<blockquote>
<p>[ep 99236264]<br />
gkip=11.222.3.44<br />
gkclient=true<br />
port=2764<br />
alias=99236264</p>
<p>[ep 99236265]<br />
gkip=11.222.3.44<br />
gkclient=true<br />
port=2765<br />
alias=99236265</p>
<p>[codecs 99236265]<br />
gsm=true</p>
</blockquote>
<p>На практике сейчас проверена работа свыше 100 устройств, обслуживаемых yate. Так же может быть для каждого h.323 устройства указаны свои кодеки, если какие-то настройки не указаны&nbsp;&mdash; используются глобальные значения. Маршрутизация через конкретный эндпоинт может быть осуществлена используя параметр line:</p>
<blockquote>
<p>${module}^sip$=h323/\0;line=99236265</p>
</blockquote>
<p>В завершении скажу, что для работы по h.323 протоколу, среди OpenSource разработок, последнее время я использую только Yate как конвертор протоколов h323&lt;-&gt;sip. Надеюсь на открытие и новых сфер применения в ближайшее время.</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/11/13/multiple-h323-endpoint-vyate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Простейший call-центр на &#171;голом&#187; Asterisk</title>
		<link>http://igorg.ru/2011/11/07/prostejshij-call-centr-na-golom-asterisk/</link>
		<comments>http://igorg.ru/2011/11/07/prostejshij-call-centr-na-golom-asterisk/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 08:56:54 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[blf]]></category>
		<category><![CDATA[call-центр]]></category>
		<category><![CDATA[queue]]></category>
		<category><![CDATA[Yealink]]></category>
		<category><![CDATA[диалплан]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1379</guid>
		<description><![CDATA[Каждый день клиенты ставят задачи, для решения которых нужно придумать что-то новое, изучить или написать. Постараюсь иногда рассказывать о тех, которых можно рассказать понятным образом. На этот раз простая задача&#160;&#8212; для группы секретарей (a&#39;la простейший call-центр) сделать механизм входа/выхода оператора и отображение текущего статуса на телефоне. Так как это секретари, то они иногда уходят, относят [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/02/asterisk.png"><img class="alignleft size-medium wp-image-570" title="Asterisk" src="http://igorg.ru/wp-content/uploads/2009/02/asterisk-300x168.png" alt="" width="300" height="168" /></a>Каждый день клиенты ставят задачи, для решения которых нужно придумать что-то новое, изучить или написать. Постараюсь иногда рассказывать о тех, которых можно рассказать понятным образом.</p>
<p>На этот раз простая задача&nbsp;&mdash; для группы секретарей (a&#39;la простейший call-центр) сделать механизм входа/выхода оператора и отображение текущего статуса на телефоне. Так как это секретари, то они иногда уходят, относят бумаги и оголяют тыл на телефонном фронте. Отсюда требования и особенности реализации:</p>
<ol>
<li>chan_agent не используется из-за наличия дополнительных обязанностей операторов</li>
<li>Телефоны имеют возможность отбить вызов, чтобы тот продолжил распределяться в очереди (телефоны Yealink)</li>
<li>Одна из BLF клавиш настроена на отображение статуса секретаря в очереди. Зеленый&nbsp;&mdash; принимает вызовы, красный&nbsp;&mdash; нет.</li>
</ol>
<p><span id="more-1379"></span>В примере 100&nbsp;&mdash; номер используемый для входа в очередь, 101-103&nbsp;&mdash; номера SIP телефонов секретарей. Под конкретную ситуацию пример можно обобщить или дописать по желанию.</p>
<p>Экстенжен для организации очереди:</p>
<blockquote>
<p>exten =&gt; 100,1,Queue (100,t,,,90)<br />
exten =&gt; 100,n,Playback (custom/bye_dnd)<br />
exten =&gt; 100,n,Hangup ()</p>
</blockquote>
<p>Экстенжен, выполняющий добавление/удаление секретаря из очереди при нажатии BLF клавиши на телефоне, использует контекст sub-queue-member, описанный ниже:</p>
<blockquote>
<p>exten =&gt; _100*XXX,1,GoSub (sub-queue-member,s,1 (${EXTEN:4}))</p>
</blockquote>
<p>Прописываем hint экстенжены, чтобы отображать корректный статус секретаря используя BLF клавишу:</p>
<blockquote>
<p>exten =&gt; 100*101,hint,Custom:QueueStat101<br />
exten =&gt; 100*102,hint,Custom:QueueStat102<br />
exten =&gt; 100*103,hint,Custom:QueueStat102</p>
</blockquote>
<p>Функция, выполняющая несколько функций при нажатии BLF клавиши:</p>
<ol>
<li>Добавление/удаление телефона из очереди</li>
<li>Обновление Custom статуса</li>
</ol>
<p>При вызове функции считывается текущий список устройств, зарегистрированных в очереди, если запрошенный внутренний номер уже находится в очереди&nbsp;&mdash; происходит удаление, если нет&nbsp;&mdash; добавление нового участника очереди (устройство не должно быть прописано в очереди статически в queues.conf) и соответственно обновляется статус.</p>
<blockquote>
<p>[sub-queue-member]<br />
exten =&gt; s,1,Set (LIST=${QUEUE_MEMBER_LIST (100)})<br />
exten =&gt; s,n,Set (X=1)<br />
exten =&gt; s,n,Set (DEV=${CUT (LIST,\,,${X})})<br />
exten =&gt; s,n,While ($[${EXISTS(${DEV})}])<br />
exten =&gt; s,n,Set (DEV=${DEV:4})<br />
exten =&gt; s,n,GotoIf ($[${DEV} = ${ARG1}]?del-begin)<br />
exten =&gt; s,n,Set (X=$[${X} + 1])<br />
exten =&gt; s,n,Set (DEV=${CUT (LIST,\,,${X})})<br />
exten =&gt; s,n,EndWhile ()<br />
exten =&gt; s,n,Goto (add-begin)</p>
<p>exten =&gt; s,n (add-begin),GotoIf ($[${ARG1} = 100]?add)<br />
exten =&gt; s,n,GotoIf ($[${ARG1} = 101]?add)<br />
exten =&gt; s,n,GotoIf ($[${ARG1} = 102]?add)<br />
exten =&gt; s,n,Return ()<br />
exten =&gt; s,n (add),AddQueueMember (100,SIP/${ARG1})<br />
exten =&gt; s,n,Set (DEVICE_STATE (Custom:QueueStat${ARG1})=INUSE)<br />
exten =&gt; s,n,Return ()</p>
<p>exten =&gt; s,n (del-begin),GotoIf ($[${ARG1} = 100]?del)<br />
exten =&gt; s,n,GotoIf ($[${ARG1} = 101]?del)<br />
exten =&gt; s,n,GotoIf ($[${ARG1} = 102]?del)<br />
exten =&gt; s,n,Return ()<br />
exten =&gt; s,n (del),RemoveQueueMember (100,SIP/${ARG1})<br />
exten =&gt; s,n,Set (DEVICE_STATE (Custom:QueueStat${ARG1})=NOT_INUSE)<br />
exten =&gt; s,n,Return ()</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/11/07/prostejshij-call-centr-na-golom-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Askozia: опыт использования</title>
		<link>http://igorg.ru/2011/10/22/askozia-opyt-ispolzovaniya/</link>
		<comments>http://igorg.ru/2011/10/22/askozia-opyt-ispolzovaniya/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 16:26:46 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[Советы]]></category>
		<category><![CDATA[askozia]]></category>
		<category><![CDATA[astlinux]]></category>
		<category><![CDATA[ISDN]]></category>
		<category><![CDATA[диалплан]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1528</guid>
		<description><![CDATA[Есть один клиент, с которого начались мои эксперименты (не безуспешные) с астериском. К сегодняшнему моменту у него была установлена система на базе Astlinux, настроенная вручную, используя конфигурационные файлы. Система уже старая, установлен астериск 1.2, который не удовлетворяет уже многим требованиям, к тому же ведет себя система непредсказуемо и периодически зависает. Было решено заменить систему на [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2011/06/askozia_logo_sm.png"><img class="size-full wp-image-1458 alignleft" title="Askozia Logo" src="http://igorg.ru/wp-content/uploads/2011/06/askozia_logo_sm.png" alt="" width="300" height="92" /></a>Есть один клиент, с которого начались мои эксперименты (не безуспешные) с астериском. К сегодняшнему моменту у него была установлена система на базе Astlinux, настроенная вручную, используя конфигурационные файлы. Система уже старая, установлен астериск 1.2, который не удовлетворяет уже многим требованиям, к тому же ведет себя система непредсказуемо и периодически зависает.</p>
<p>Было решено заменить систему на дистрибутив Askozia, который так же как Astlinux можно штатно установить на Disk on Module, а так же поддерживает из коробки ISDN BRI адаптеры на базе HFC чипа.</p>
<p><span id="more-1528"></span>Вся операция заняла около часа. Дольше всего занял бэкап DoM на компьютере с Windows, для чего заранее подготовленные утилиты не подошли, был найден и использован аналог утилиты dd для windows.</p>
<p>Запись образа с помощью physdiskwriter и запуск системы прошел без проблем. Приятно что DAHDI работает с платами на HFC чипе штатно, а Askozia не подвела и настроила плату двумя кликами. Все настройки понятны и вопросов не вызывают.</p>
<p>Одна особенность настройки, однако, присутствовала. При входящем вызове клиенту должно зачитываться сообщение после нескольких попыток вызова на телефон оператора. В качестве приложения был использован примерно следующий диал план:</p>
<blockquote>
<p>1, Dial (SIP/101&amp;SIP/102,8,t)<br />
2,Answer ()<br />
3,Playback (welcome)<br />
4,Goto (internal,200,1)</p>
</blockquote>
<p>Где 200&nbsp;&mdash; номер группы вызова, настроенной внутри askozia. Однако в такой ситуации происходило странное&nbsp;&mdash; если оператор принимал вызов до проигрывания приветствия, то после того как трубка была положена вызов от этого номера приходил снова.</p>
<p>Причина оказалась проста, на основе написанного в вебе диалплана, в диалплане создавалась запись вида:</p>
<blockquote>
<p>_[a-zA-z0-9],1, Dial (SIP/101&amp;SIP/102,8,t)</p>
</blockquote>
<p>При завершении вызова происходил переход на h экстенжен, который не определен отдельно, а подпадает под определенный шаблон, поэтому вызов повторно возвращался в определенный диалплан. После того как проблема найдена её просто исправить добавлением одной строки в начало определенного уже приложения:</p>
<blockquote>
<p>1, ExecIf ($["${EXTEN}" = "h"]?Hangup ())</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/10/22/askozia-opyt-ispolzovaniya/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Уровень поддержки модулей</title>
		<link>http://igorg.ru/2011/08/26/uroven-podderzhki-modulej/</link>
		<comments>http://igorg.ru/2011/08/26/uroven-podderzhki-modulej/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 05:19:07 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[модули]]></category>
		<category><![CDATA[поддержка]]></category>
		<category><![CDATA[проблемы]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1520</guid>
		<description><![CDATA[По-прежнему работая над доработками в chan_unistim, обновился сегодня до ревизии 333333 и обнаружил образовавшийся конфликт. Само исправление конфликта тривиально, но причина его вызвавшая заслуживает внимания. Причина &#160;&#8212; введение метаданных в модули, говорящих о степени поддержки модуля разработчиками проекта. Это значение поможет разработчикам на базе астериска оценить какие возможности asterisk лучше использовать для реализации своих идей. Полный [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/02/asterisk.png"><img class="size-medium wp-image-570 alignleft" title="Asterisk" src="http://igorg.ru/wp-content/uploads/2009/02/asterisk-300x168.png" alt="" width="300" height="168" /></a>По-прежнему работая над доработками в chan_unistim, обновился сегодня до ревизии 333333 и обнаружил образовавшийся конфликт. Само исправление конфликта тривиально, но причина его вызвавшая заслуживает внимания.</p>
<p>Причина &nbsp;&mdash; введение метаданных в модули, говорящих о степени поддержки модуля разработчиками проекта. Это значение поможет разработчикам на базе астериска оценить какие возможности asterisk лучше использовать для реализации своих идей.</p>
<p><span id="more-1520"></span>Полный список значений для существующих модулей и опция компиляции перечислены в соответствующей <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States">статье wiki</a>. Существуют три состояния поддержки:</p>
<ul>
<li><strong>Core.</strong> При нахождении проблемы в таком модуле и достаточном её описании, проблема помещается в очередь, которую разгребают основные разработчики проекта.
<ul>
<li>Примеры: app_dial, app_cdr, bridge_multiplexed, cdr_adaptive_odbc, chan_sip, func_volume, pbx_config, res_timing_timerfd</li>
</ul>
</li>
<li><strong>Extended.</strong> Модуль поддерживается сообществом, может иметь или не иметь активного разработчика. Если найдена проблема, то её решение не гарантируется&nbsp;&mdash; либо решайте сами, либо ждите или ищите того кто исправит её. Некоторые такие модули имеют активных разработчиков, некоторые&nbsp;&mdash; нет.
<ul>
<li>Примеры: res_config_mysql, chan_ooh323, app_fax, chan_gtalk, chan_unistim, pbx_lua, res_fax_spandsp, LOW_MEMORY</li>
</ul>
</li>
<li><strong>Deprecated.</strong> Для таких модулей имеется лучшая замена, а сам модуль в течении нескольких релизов скорее всего будет удален из дерева исходного кода.
<ul>
<li>Примеры: cdr_mysql, app_macro, app_meetme, cdr_sqlite</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/08/26/uroven-podderzhki-modulej/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Оптимизация Asterisk при сборке</title>
		<link>http://igorg.ru/2011/07/06/optimizaciya-asterisk-pri-sborke/</link>
		<comments>http://igorg.ru/2011/07/06/optimizaciya-asterisk-pri-sborke/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 14:09:29 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Блог]]></category>
		<category><![CDATA[Советы]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[la]]></category>
		<category><![CDATA[оптимизация]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1486</guid>
		<description><![CDATA[Столкнулся на днях с высокой нагрузкой, создаваемой астериском на одном из серверов. На быстрое увеличение вычислительной мощности рассчитывать не приходилось, а la стал уже выше 50.  Сервер работает с протоколами IAX и SIP, а так же в большом объеме перекодируют трафик из g723 в другие кодеки. Результат изысканий: load average меньше 20, загрузка процессора и [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/02/asterisk.png"><img class="alignleft size-medium wp-image-570" title="Asterisk" src="http://igorg.ru/wp-content/uploads/2009/02/asterisk-300x168.png" alt="" width="300" height="168" /></a>Столкнулся на днях с высокой нагрузкой, создаваемой астериском на одном из серверов. На быстрое увеличение вычислительной мощности рассчитывать не приходилось, а la стал уже выше 50.  Сервер работает с протоколами IAX и SIP, а так же в большом объеме перекодируют трафик из g723 в другие кодеки.</p>
<p><em>Результат изысканий:</em> load average меньше 20, загрузка процессора и использование памяти так же сократились. И это благодаря опциям компилятора.</p>
<p><span id="more-1486"></span></p>
<p>Ради интереса решил посмотреть, можно ли улучшить ситуацию оптимизировав сборку астериска. В результате в нижиприведенные строки были прописаны следующие значения:</p>
<blockquote>
<p>Makefile:</p>
<p>DEBUG=-g0</p>
<p>Makefile.rules:</p>
<p>OPTIMIZE?=-O2</p>
</blockquote>
<p>Первое отключает добавление отладочной  информации в модули. По-умолчанию в модули добавляется информация для отладки, что увеличивает размер исполняемых файлов и модулей.</p>
<p>Второе&nbsp;&mdash; переключает режим оптимизации (важно для  gcc4). В gcc3 второе действие не обязательно и может наоборот замедлить работу. В gcc4 максимальный уровень оптимизации излишне увеличивает размер файлов и чаще всего вызывает существенное замедление их выполнения.</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/07/06/optimizaciya-asterisk-pri-sborke/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Обзор IP-АТС от pbxware.ru</title>
		<link>http://igorg.ru/2011/06/08/review-miniats-pbxware-ru/</link>
		<comments>http://igorg.ru/2011/06/08/review-miniats-pbxware-ru/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 11:09:03 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Железо]]></category>
		<category><![CDATA[Обзоры]]></category>
		<category><![CDATA[A3002]]></category>
		<category><![CDATA[askozia]]></category>
		<category><![CDATA[IP-АТС]]></category>
		<category><![CDATA[pbxware.ru]]></category>
		<category><![CDATA[sipp]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1446</guid>
		<description><![CDATA[Небольшие компании, открывающие новые филиалы, расширяющиеся или думающие о замене старой  офисной АТС, все чаще обращают внимание на VoIP решения. Hosted решения сложно входят в бизнес среду российских компаний, видимо этому мешает менталитет и привычка иметь свою инфраструктуру под боком. Наиболее надежным решением VoIP решением в таком случае является IP АТС занимающая минимум места и [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2011/06/askozia_logo_sm.png"><img class="alignleft size-full wp-image-1458" title="Askozia Logo" src="http://igorg.ru/wp-content/uploads/2011/06/askozia_logo_sm.png" alt="" width="300" height="92" /></a>Небольшие компании, открывающие новые филиалы, расширяющиеся или думающие о замене старой  офисной АТС, все чаще обращают внимание на VoIP решения. Hosted решения сложно входят в бизнес среду российских компаний, видимо этому мешает менталитет и привычка иметь свою инфраструктуру под боком. Наиболее надежным решением VoIP решением в таком случае является IP АТС занимающая минимум места и не требующая обслуживания. В этом обзоре&nbsp;&mdash; SIP АТС начального уровня на базе Askozia.</p>
<p><span id="more-1446"></span></p>
<h2>Аппаратная часть</h2>
<p>Существует несколько вариантов аппаратной конфигурации АТС, предоставляемых pbxware.ru, возможные варианты можно увидеть на <a href="http://askozia.ru/shop/category-sip-atc">сайте продукта</a>. Варианты различаются количеством Ethernet портов и наличием WiFi модуля. У меня в распоряжении оказалась модель IP ATC A3002</p>
<p><a href="http://igorg.ru/wp-content/uploads/2011/06/DSCN7102.jpg"><img class="size-medium wp-image-1450 alignright" title="Вид изнутри" src="http://igorg.ru/wp-content/uploads/2011/06/DSCN7102-300x225.jpg" alt="" width="300" height="225" /></a>Аппаратные характеристики АТС:</p>
<ul>
<li>3 порта Ethernet</li>
<li>2 USB порта</li>
<li>COM порт</li>
<li>Mini PCI</li>
<li>AMD Geode LX800 (500 МГц)</li>
<li>CF 2Gb</li>
<li>ОЗУ&nbsp;&mdash; 256 Mb</li>
</ul>
<p>Внешне АТС представляет из себя металлический корпус с тремя индикаторами спереди и портами, расположенными сзади.  Из опознавательных знаков&nbsp;&mdash; только наклейка на нижней поверхности с серийным номером и ссылками на сайт производителя.</p>
<h2>Askozia</h2>
<p>Проект <a href="Asterisk.  http://www.askozia.com/software/">Askozia</a> стартовал 4 года назад, основываясь на FreeBSD проект ставил перед собой задачу предоставления наиболее простого и интуитивно понятного для простого человека интерфейса к телефонной станции на базе Asterisk. Со временем проект был перенесен на Linux, при этом часть функциональности видоизменилась, но ключевые особенности проекта были сохранены.</p>
<p>В данном устройстве установлен дистрибутив Askozia, отличающийся от дистрибутива по-умолчанию некоторыми доработками:</p>
<ul>
<li>Использование по-умолчанию русского языка</li>
<li>Наличие предварительных настроек</li>
<li>Использование статического адреса по-умолчанию</li>
<li>Разрешенный вход по SSH</li>
</ul>
<p>Набор ПО представленный в текущей прошивке:</p>
<ul>
<li>Askozia 2.0.3</li>
<li>Asterisk 1.6.1.22</li>
<li>Busybox 1.15.3</li>
<li>DAHDI 2.2.0.2 + oslec</li>
</ul>
<p>На данный момент актуальная версия проекта&nbsp;&mdash; 2.0.4, на лето планируется выход версии 2.1, в которой будут добавлены новые возможности, такие как работа с факсами и поддержка GSM модулей, а так же будет обновлен весь набор ПО.</p>
<p>Человек незнакомый с Asterisk без особых проблем сможет настроить АТС на базе Askozia. Интерфейс прост, интуитивно понятен. Использование JQuery делает использование веб-интерфейса приятнее.</p>
<p>Знакомство с Asterisk пригодится при использовании дополнительных настроек SIP или IAX устройств или создании приложений (для этого используются фрагменты классического диалплана).</p>
<h3>Система</h3>
<p>Системные настройки позволяют настроить доступ к веб-интерфейсу, изменить язык локализации, изменить настройки времени. Важной возможностью дистрибутива является простое обновление системы и сохранение всей конфигурации в одном единственном XML файле. Для интегратора это очень удобно&nbsp;&mdash; при выходе устройства из строя, требуются минуты для восстановления бэкапа.</p>
<h3>Аппаратные настройки</h3>
<p>Настройки сети позволяют задать для каждого интерфейса IP и MAC адреса, а так же используемую топологию. Система автоматически обнаруживает аналоговые и ISDN интерфейсы, проверить эту часть функциональности возможности не было&nbsp;&mdash; устройство не имеет встроенных телефонных интерфейсов, USB банков каналов в наличии нет.</p>
<h3>Телефонные функции</h3>
<p>Телефонные функции Askozia типичные для систем на базе Asterisk и в некоторм роде минималистичны, например не задействовано популярное приложение Queue (), нет возможности настраивать IVR без использования знания диалплана. Вот общий список</p>
<ul>
<li><a href="http://igorg.ru/wp-content/uploads/2011/06/Askozia-atc-accounts.png"><img class="size-medium wp-image-1461 alignright" title="Настройка аккаунтов" src="http://igorg.ru/wp-content/uploads/2011/06/Askozia-atc-accounts-300x236.png" alt="" width="300" height="236" /></a>Настройка IAX и SIP телефонов и транков</li>
<li>Настройка ISDN и аналоговых линий</li>
<li>Подключение аналоговых и цифровых портов</li>
<li>Групповые вызовы (только одновременный вызов)</li>
<li>Исходящая маршрутизация (с индивидуальными подстройками)</li>
<li>Парковка вызова</li>
<li>Перевод вызова</li>
<li>Голосовая почта</li>
<li>Конференции</li>
</ul>
<p>Интересные функции:</p>
<ul>
<li>Извещение о пропущенных вызовах на email</li>
<li>Приложения на базе Asterisk диалплана (для удобства есть справочник функций)</li>
</ul>
<p>Распределение входящих вызовов отличается от FreePBX:</p>
<ol>
<li>Вызов пришедший от провайдера направляется на любой телефон, группу, конференцию или приложение. Номер выбирается при настройке транка.</li>
<li>В случае если указана группа, если вызов не удался то вызов идет в голосовую почту первого участника группы</li>
<li>В случае если указан сотрудник, то при его недоступности вызов уходит в голосовую почту</li>
</ol>
<p>Исходящие вызовы используют шлюзы указанные в настройке внутреннего телефона, если вызов на основного провайдера не удался, то вызов направляется к резервному провайдеру (указывается в настройке оператора)</p>
<p>Чтобы понять телефонные возможности системы, специалистам знакомым с Asterisk, представляю список имеющихся в поставке модулей:</p>
<blockquote>
<p>Askozia-atc*CLI&gt; module show<br />
Module                         Description<br />
res_agi.so                     Asterisk Gateway Interface (AGI)<br />
res_indications.so             Region-specific tones<br />
res_smdi.so                    Simplified Message Desk Interface (SMDI)<br />
app_dial.so                    Dialing Application<br />
app_echo.so                    Simple Echo Application<br />
app_exec.so                    Executes dialplan applications<br />
app_macro.so                   Extension Macros<br />
app_meetme.so                  MeetMe conference bridge<br />
app_milliwatt.so               Digital Milliwatt (mu-law) Test Applicat<br />
app_playback.so                Sound File Playback Application<br />
app_setcallerid.so             Set CallerID Presentation Application<br />
app_stack.so                   Dialplan subroutines (Gosub, Return, etc<br />
app_system.so                  Generic System () application<br />
app_verbose.so                 Send verbose output<br />
app_voicemail.so               Comedian Mail (Voicemail System)<br />
app_wakeme.so                  Wake-up Call Manager<br />
app_while.so                   While Loops and Conditional Execution<br />
cdr_manager.so                 Asterisk Manager Interface CDR Backend<br />
chan_dahdi.so                  DAHDI Telephony w/PRI<br />
chan_iax2.so                   Inter Asterisk eXchange (Ver 2)<br />
chan_local.so                  Local Proxy Channel (Note: used internal<br />
chan_sip.so                    Session Initiation Protocol (SIP)<br />
chan_skinny.so                 Skinny Client Control Protocol (Skinny)<br />
codec_a_mu.so                  A-law and Mulaw direct Coder/Decoder<br />
codec_adpcm.so                 Adaptive Differential PCM Coder/Decoder<br />
codec_alaw.so                  A-law Coder/Decoder<br />
codec_dahdi.so                 Generic DAHDI Transcoder Codec Translato<br />
codec_g722.so                  ITU G.722-64kbps G722 Transcoder<br />
codec_gsm.so                   GSM Coder/Decoder<br />
codec_ulaw.so                  mu-Law Coder/Decoder<br />
format_gsm.so                  Raw GSM data<br />
format_pcm.so                  Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.<br />
format_sln.so                  Raw Signed Linear Audio support (SLN)<br />
format_wav.so                  Microsoft WAV format (8000Hz Signed Line<br />
format_wav_gsm.so              Microsoft WAV format (Proprietary GSM)<br />
func_callerid.so               Caller ID related dialplan functions<br />
func_channel.so                Channel information dialplan functions<br />
func_config.so                 Asterisk configuration file variable acc<br />
func_cut.so                    Cut out information from a string<br />
func_db.so                     Database (astdb) related dialplan functi<br />
func_logic.so                  Logical dialplan functions<br />
func_md5.so                    MD5 digest dialplan functions<br />
func_shell.so                  Returns the output of a shell command<br />
func_strings.so                String handling dialplan functions<br />
pbx_config.so                  Text Extension Configuration<br />
pbx_loopback.so                Loopback Switch<br />
pbx_spool.so                   Outgoing Spool Support<br />
res_adsi.so                    ADSI Resource<br />
res_crypto.so                  Cryptographic Digital Signatures<br />
res_limit.so                   Resource limits<br />
res_musiconhold.so             Music On Hold Resource<br />
res_qstat.so                   Gather system load statistics<br />
52 modules loaded</p>
</blockquote>
<h3>Статус системы</h3>
<p>Система представляет возможность для наблюдения за нагрузкой на систему, количеством обрабатываемых вызовов и загрузкой сети. Правда графики отображаемые в реальном времени позволяют увидеть нагрузку за последние 2 минуты, а просмотр лог-файла позволяет увидеть только последние записи.</p>
<h2>Использование</h2>
<p><a href="http://igorg.ru/wp-content/uploads/2011/06/Askozia-atc-encoding-fail.png"><img class="alignleft size-medium wp-image-1463" title="Askozia-atc-encoding-fail" src="http://igorg.ru/wp-content/uploads/2011/06/Askozia-atc-encoding-fail-300x92.png" alt="" width="300" height="92" /></a>По-умолчанию устройство имеет адрес 192.168.1.254, для управления доступны Web и SSH интерфейсы. Для доступа по-умолчанию используются логины admin и root, пароль&nbsp;&mdash; askozia.</p>
<p>Регистрация телефона не представляет проблем, все функции работают как ожидается. Единственной проблемой в работе веб-интерфейса оказалась проблема с локализацией списка внутренних экстенжнов при редактировании провайдера.</p>
<p>Веб-интерфейс работает быстро, все произведенные изменения применяются сразу после сохранения.</p>
<p>Было проведено небольшое нагрузочное тестирование с помощью утилиты sipp. При создании потока в 10 вызовов в секунду и установлении лимита в 100 вызовов (заявленная емкость) АТС функционирует нормально, загрузка процессора порядка 15%. Однако если увеличить поток вызовов до 100 в секунду, то процесс asterisk достаточно быстро прекращает работу, что может говорить о недостатке ресурсов. Автоматически процесс не восстанавливается, АТС приходится перегружать по питанию.  Загрузка АТС занимает около 20 секунд.</p>
<h2>Выводы</h2>
<p>Первым делом хочу выразить благодарность VoIP интернет-магазину <a href="http://pbxware.ru/" target="_blank">pbxware.ru</a> за предоставленное на тестирование оборудование.</p>
<p>Стоимость данной АТС составляет около 10 тысяч рублей, она поставляется с инструкциями и позволяет клиенту самостоятельно произвести подключение на месте, при этом на моей памяти это первая попытка продвижения Askozia в данном секторе в России. Конечно дистрибутив Askozia менее функционален чем дистрибутивы на базе FreePBX, но и предъявляет гораздо меньшие требования к аппаратному обеспечению.</p>
<p>Например цена на АТС от Yealink заметно выше, хотя и предлагает она большую функциональность&nbsp;&mdash; со временем этот разрыв будет устраняться. На данный момент слабой стороной Askozia я считаю ограниченную функциональность  работы со статистикой и историей вызовов.</p>
<p>Достоинства:</p>
<ul>
<li>Система с низким энергопотреблением и без возможности износа</li>
<li>Простая настройка и использование</li>
<li>Простое резервирование и восстановление</li>
<li>Настройка дополнительных сервисов используя диалплан Asterisk</li>
<li>Активно развивающийся проект</li>
<li>Доступная цена</li>
</ul>
<p>Недостатки:</p>
<ul>
<li>Нет статистики разговоров</li>
<li>Мелкие недочеты русификации</li>
<li>Нет настройки IVR и автосекретаря</li>
<li>Нестабильность при большой интенсивности вызовов</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/06/08/review-miniats-pbxware-ru/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
