<?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; Советы</title>
	<atom:link href="http://igorg.ru/category/sovety/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>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>Оптимизация 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>Как отредактировать .cap</title>
		<link>http://igorg.ru/2011/04/02/howto-modify-pcap-file/</link>
		<comments>http://igorg.ru/2011/04/02/howto-modify-pcap-file/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 14:15:58 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[Советы]]></category>
		<category><![CDATA[ast-2009-010]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[libpcap]]></category>
		<category><![CDATA[rtp]]></category>
		<category><![CDATA[wireshark]]></category>
		<category><![CDATA[уязвимость]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1287</guid>
		<description><![CDATA[Обратились ко мне с интересным вопросом&#160;&#8212; продемонстрировать возможность вызвать падение удаленного Asterisk отправкой RTP пакета определенного вида. Я люблю интересные вопросы, поэтому потратил некоторое время для изысканий, в которых самым интересным было&#160;&#8212; найти возможность модифицировать один из пакетов в libpcap дампе. Отправить RTP пакеты в сеть с помощью sipp уже задача простая и описанная. На [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2010/02/asterisk_security.png"><img class="alignleft size-medium wp-image-945" title="asterisk_security" src="http://igorg.ru/wp-content/uploads/2010/02/asterisk_security-300x168.png" alt="" width="300" height="168" /></a>Обратились ко мне с интересным вопросом&nbsp;&mdash; продемонстрировать возможность вызвать падение удаленного Asterisk отправкой RTP пакета определенного вида. Я люблю интересные вопросы, поэтому потратил некоторое время для изысканий, в которых самым интересным было&nbsp;&mdash; найти возможность модифицировать один из пакетов в libpcap дампе. Отправить RTP пакеты в сеть с помощью sipp уже задача простая и описанная.</p>
<p><span id="more-1287"></span>На просторах интернета информации не так много, есть лишь несколько утилит предназначенных для внесение изменений в .pcap файлы. Я использовал утилиту <em>bittwiste</em> проекта <a href="http://bittwist.sourceforge.net/">Bit-Twist</a>. Проект предназначен для отправки трафика записанного в файле в реальную сеть используя libpcap.</p>
<p>Меня интересовало исправление единственного пакета, который нужно было сформировать. Записав трейс вызова к серверу, который передает CNG пакеты, смотрим номер пакета в дампе&nbsp;&mdash; в моем случае он номер 142. Извлекаем пакет (то же можно сделать из wireshark):</p>
<blockquote>
<p>bittwiste -I /home/igorg/original.cap -R 142 -O /rtp-cng.cap</p>
</blockquote>
<p>Моя задача была добавить дополнительный объем полезной нагрузки в CNG пакет. Если использовать для этого HEX редактор, придется  исправлять поля IP и UDP заголовков, а так же служебную информацию в pcap файле. Здесь и пригодится bittwiste&nbsp;&mdash; утилита позволяет вставить в пакеты в .pcap файле произвольную информацию.</p>
<p>Через wireshark смотрим в шестнадцатеричном формате данные RTP пакета (они начинаются после контрольной суммы UDP пакета), выписываем в строку, добавляем произвольное количество нужных данных. При вызове bittwiste используем параметры -L 4 -T udp, чтобы переписать данные в UDP пакете, следующие после UDP заголовка.</p>
<blockquote>
<p>bittwiste -I /rtp-cng.cap -X 800dce3117850593f60538ea4751a2728c8c8c8c8c8c00 -O /rtp-cng-long.cap -L 4 -T udp</p>
</blockquote>
<p>В результате получен модифицированный пакет, который можно использовать в дальнейших экспериментах. По похожей схеме возможно создавать пакеты, позволяющие повторить ту или иную уязвимость в ПО. Желаю удачи в изысканиях и экспериментах!</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/04/02/howto-modify-pcap-file/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FreePBX и Skype</title>
		<link>http://igorg.ru/2011/03/27/freepbx-i-skype/</link>
		<comments>http://igorg.ru/2011/03/27/freepbx-i-skype/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 06:04:36 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[FreePBX]]></category>
		<category><![CDATA[Советы]]></category>
		<category><![CDATA[followme]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=1278</guid>
		<description><![CDATA[Пришлось настраивать недавно FreePBX для компании где активно используется Skype. Кроме подключения по SIP, каждый абонент имеет подключение к Skype. При этом подключение к скайп используется гораздо чаще по SIP и внутреннего сотрудника стоит искать и по SIP, и по Skype. FreePBX позволяет достаточно просто штатными средствами организовать поиск абонента, даже если он подключен не [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://igorg.ru/wp-content/uploads/2009/12/projectsv2.png"><img class="alignleft size-full wp-image-858" title="FreePBX v2" src="http://igorg.ru/wp-content/uploads/2009/12/projectsv2.png" alt="" width="234" height="174" /></a>Пришлось настраивать недавно FreePBX для компании где активно используется Skype. Кроме подключения по SIP, каждый абонент имеет подключение к Skype. При этом подключение к скайп используется гораздо чаще по SIP и внутреннего сотрудника стоит искать и по SIP, и по Skype. FreePBX позволяет достаточно просто штатными средствами организовать поиск абонента, даже если он подключен не как стандартный SIP/IAX/DAHDI экстенжн</p>
<p>Действия:</p>
<ol>
<li>Устанавливаем chan_skype, как описано во всех мануалах. В качестве контекста в chan_skype.conf указываем from-trunk, экстенжен&nbsp;&mdash; имя пользователя Skype. Теперь можно используя это имя пользователя как DID маршрутизировать вызовы в <em>Inbound Routes</em></li>
<li>Создаем два внутренних номера. Один&nbsp;&mdash; SIP (например: 101). Второй&nbsp;&mdash; <em>Other (Custom) Device</em> (201), в поле dial указывается строка вызова абонента через Skype&nbsp;&mdash; <em>Skype/user_to_call</em></li>
<li>Модуль <em>FollowMe</em> позволяет осуществить поиск сотрудника по нескольким номерам с последующим переходам в голосовую почту. Выбираем абонента с номером 101, добавляем в список поиска номер 201 и сохраняем правило. Теперь при вызове на 101 будет происходить поиск сотрудника и в Skype сети.</li>
</ol>
<p><span id="more-1278"></span></p>
<p>Стоит заметить что в последней версии chan_skype была добавлена поддержка приложения Transfer (), что позволит оптимизировать использование Skype лицензий в такой схеме. Для этого вызов Skype абонента должен происходить через chan_local, где проверяются несколько условий:</p>
<ol>
<li>Исходный вызов поступил из Skype канала</li>
<li>Вызываемый Skype абонент доступен</li>
<li>При соблюдении обоих условий вместо Dial () используем Transfer () для прямого соединения двух Skype пользователей</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2011/03/27/freepbx-i-skype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Крах приложений при использовании MySQL в ODBC</title>
		<link>http://igorg.ru/2010/01/18/krax-prilozhenij-pri-ispolzovanii-mysql-v-odbc/</link>
		<comments>http://igorg.ru/2010/01/18/krax-prilozhenij-pri-ispolzovanii-mysql-v-odbc/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 04:25:51 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[ИТ]]></category>
		<category><![CDATA[Советы]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[odbc]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=891</guid>
		<description><![CDATA[Недавно пришлось столкнуться с проблемой, возникающей, как свидетельствует Гугл в Debian и Centos. После обновления системы невозможно использовать MySQL через ODBC.  Проблема проявляется появлением подобного сообщения: relocation error: /usr/lib/odbc/libmyodbc.so: symbol mysql_odbc_escape_string, version libmysqlclient_15 not defined in file libmysqlclient_r.so.15 with link time reference Сообщение появляется при любой попытки обращения к ODBC, вызывает аварийное завершение приложения. В [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно пришлось столкнуться с проблемой, возникающей, как свидетельствует Гугл в Debian и Centos. После обновления системы невозможно использовать MySQL через ODBC.  Проблема проявляется появлением подобного сообщения:</p>
<blockquote>
<p>relocation error: /usr/lib/odbc/libmyodbc.so: symbol mysql_odbc_escape_string, version libmysqlclient_15 not defined in file libmysqlclient_r.so.15 with link time reference</p>
</blockquote>
<p>Сообщение появляется при любой попытки обращения к ODBC, вызывает аварийное завершение приложения. В случае с астериском его можно увидеть только запустив приложение непосредственно из консоли, не используя режима демона. При падении core файл не создается.</p>
<p>Причина заключается в том, что при очередном обновлении системы устанавливается обновление для libmysqlclient, несовместимое с libmyodbc. Решением является удалить из системы пакет libmyodbc, поставляемый в дистрибутиве и скачать <a href="http://dev.mysql.com/downloads/connector/odbc/">последнюю версию с сайта MySQL</a>. распаковать и разместить в прежнем месте, либо исправить путь к драйверу в /etc/odbcinst.ini</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2010/01/18/krax-prilozhenij-pri-ispolzovanii-mysql-v-odbc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Неполадка в работе E1 (треск)</title>
		<link>http://igorg.ru/2009/11/16/nepoladka-v-rabote-e1-tresk/</link>
		<comments>http://igorg.ru/2009/11/16/nepoladka-v-rabote-e1-tresk/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 16:24:58 +0000</pubDate>
		<dc:creator>igorg</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Советы]]></category>
		<category><![CDATA[1.2]]></category>
		<category><![CDATA[avaya]]></category>
		<category><![CDATA[E1]]></category>
		<category><![CDATA[PRI]]></category>
		<category><![CDATA[vicidial]]></category>
		<category><![CDATA[кодек]]></category>

		<guid isPermaLink="false">http://igorg.ru/?p=834</guid>
		<description><![CDATA[Урок сегодняшнего дня. Если при звонках через поток E1 в одну сторону наблюдается треск и искажения голоса, кроме того существуют проблемы с входящими или исходящими вызовами (не проходят вообще, в моем случае q.931 код 88). Вероятно на станции настроено использование кодека uLaw. Я наблюдал этот эффект при работе Asterisk 1.2 со станцией Avaya Definity.]]></description>
			<content:encoded><![CDATA[<p>Урок сегодняшнего дня. Если при звонках через поток E1 в одну сторону наблюдается треск и искажения голоса, кроме того существуют проблемы с входящими или исходящими вызовами (не проходят вообще, в моем случае q.931 код 88). Вероятно на станции настроено использование кодека uLaw.</p>
<p>Я наблюдал этот эффект при работе Asterisk 1.2 со станцией Avaya Definity.</p>
]]></content:encoded>
			<wfw:commentRss>http://igorg.ru/2009/11/16/nepoladka-v-rabote-e1-tresk/feed/</wfw:commentRss>
		<slash:comments>1</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! -->
