Сегодня занимались очень полезным и занимательным занятием — обновляли временные зоны на всех серверах, чтобы они не улетели в будущее в воскресенье 26 октября 2014 при переходе на зимнее время. Спасибо всем законодателям за полезно проведенное время на благо ВВП нашей страны.

На паре серверов у нас еще трудится Debian Lenny, пришлось собрать пакет самостоятельно, если вам нужно — можно скачать. Установка — dpkg -i

Для остальных поддерживаемых систем вполне работают штатные методы обновления ОС. Много полезных советов на Хабре.

автор igorg \\ теги: , , , ,

Буквально заметка на полях. практически всегда приходится разделять исходящие вызовы по нескольким операторам и ограничивать внутренних абонентов. Поэтому важно правильно разделять исходящие вызовы в зависимости от номера. На всех устанавливаемых нами системах основные типы направлений примерно однотипны, курсивом комментарий:

1) Международные

  • 810XXXX. (международные номера не имеют фиксированной длинны, обычно такого формата достаточно для отделения международных направлений)
  • 833622XXXXX (Байконур)
  • 8840XXXXXXX (Абхазия)
  • 8[67]XXXXXXXXX (Казахстан)

2) Сотовые

  • 89XXXXXXXXX

Часто требуется разделить вызовы по региону или оператору, для этого мы используем собственное API для загрузки на АТС списка актуальных префиксов. Но вообще задача решается выборкой нужных операторов из базы Россвязи:  http://www.rossvyaz.ru/activity/num_resurs/registerNum/
Список сотовых номеров данного региона можно по-прежнему строить, а вот с выборкой по конкретному оператору сложнее:

  1. Операторы часто имеют различные наименования в разных регионах
  2. Хотя масштаб еще не большой, но MNP работает. Хотя и есть способы поиска реального оператора по номеру телефона.

4) Номера бесплатного доступа 8800

  • 8800[1-7]XXXXXX (Российские номера 8800)
  • 8804XXXXXXX (Тоже номера, на которые вызов бесплатен, остальные 880x номера запрещаем, так как там могут быть платные сервисы)

5) Номера в области

  • 8381[3-9]XXXXXX (на примере Омской области)

6) Городские номера

  • [2-9]XXXXX (шестизначная нумерация) или, например, [2-9]XXXXXX (для городов с семизначной нумерацией, можно уменьшить диапазон в зависимости от реально используемого) + предусмотреть варианты набора с кодом города
  • 849[589]XXXXXX (актуально в Москве)

5) Россия стационарные

  • 8[348]XXXXXXXXX (за исключением номеров из п.1)

Будучи педантичным, очень важно понимать какие номера бывают, по следующим причинам:

  1. Нужно начинать набор номера как только он был набран, чтобы пользователь по-возможности никогда не ждал таймаута или не был вынужден нажимать #;
  2. Нужно точно описать возможные варианты набираемых номеров, чтобы обезопасить себя от различных видов атак и злоупотреблений;
  3. Не давать пользователю набрать неправильный номер и стараться сразу сообщать об ошибке набора.

Надеюсь был полезен, если кому-то нужна информация о поиске реального оператора, обслуживающего номер, или, например есть желание использовать наше API — прошу в комментарии. Кстати была идея написать модуль для FreePBX, который бы учитывал сложные варианты (MNP, текущий регион) при вызове, но руки так и не дошли.

автор igorg

Всем читателям, я думаю, известно что asterisk сейчас это не просто АТС, а коммуникационная платформа. Основываясь на гибкости Asterisk построено уже множество продуктов, которые, как правило делятся на две категории и два подхода:

  1. Перенимаем гибкость астериска, строим мега-комбайн с большим набором опций настроек. Цена — большая сложность в освоении (как пример FreePBX).
  2. «Закрываем» открытый asterisk внутри продукта и делаем продукт готовым к употреблению с минимумом необходимых настроек. Обычно такие продукты не бесплатны и не являются открытыми в полном понимании этого слова (если брать пример АТС — Askozia).

Сегодня поговорим о call-центрах. Как пример первого подхода я могу привести продукт, с которым мы давно работаем — call-центр Vicidial (который имеет на редкость недружелюбный интерфейс). Примером второго подхода — call центр от компании из Санкт-Петербурга  - Линия24. Обзор этого продукта более года назад попросил написать Вадим Марков, с которым мы уже знакомы длительное время, кроме того некоторые из наших клиентов по нашей рекомендации купили и уже длительное время являются пользователями этого продукта. Набор ссылок для ознакомления:

Далее »

автор igorg \\ теги: , , , ,

Пока работаю над завершением пары крупных разработок, вот пример с полей. Если у вас на сервере работавшем годы внезапно перестал работать поток:
  1. Поднятый на карте Digium
  2. Вы ничего не меняли
  3. На другой стороне ничего не меняли
  4. Индикация внешне в порядке

При этом в логах по pri debug span 1 что-то вроде:

PRI Span: 1 TEI=0 MDL-ERROR (G): T200 expired N200 times sending SABME in state 5 (Awaiting establishment)
PRI Span: 1 Changing from state 5 (Awaiting establishment) to 4 (TEI assigned)
PRI Span: 1 TEI=0 DL event: Q931_DL_EVENT_DL_RELEASE_IND (3)
PRI Span: 1 SAPI/TEI=0/0 Kick starting link
PRI Span: 1 TEI=0 Sending SABME
PRI Span: 1 Changing from state 4 (TEI assigned) to 5 (Awaiting establishment)
PRI Span: 1 TEI=0 Sending SABME
PRI Span: 1 TEI=0 Sending SABME
PRI Span: 1 TEI=0 Sending SABME
У вас сдохла плата, меняйте. 🙂

автор igorg \\ теги: , , , ,

Бесспорно, самый популярный бесплатный web-интерфейс для АТС на базе asterisk — FreePBX. И в общем плюсом данного продукта являются является регулярные обновления продукта. Например, произошедшее не так давно (в глобально масштабе времени) обновление до версии 2.10 — это хорошо. Однако за большим количеством изменений, в том числе и в настройках авторы FreePBX не очень аккуратно реализовали миграцию настроек записи разговоров в модуле Extensions.

Если у вас перед обновлением было настроено достаточно большое количество записываемых внутренних номеров ( в моем случае около 400 внутренних номеров), ручная их корректировка станет кошмаром. После обновления настройки записи разговора становятся неактивными и записи разговоров не ведутся.

Дело в том, что ранее запись разговоров разделялась только на входящие и сходящие разговоры. В 2.10 добавились дополнительные градации и изменился формат хранения записей о настройках записи разговоров в astdb. Для того чтобы привести astdb к нужному вижу:

  1. Нужно удалить  старые записи вида AMPUSER/100/recording и содержания out=Always|in=Never
  2. Создать 6 новых записей в astdb

Эту задачу лучше автоматизировать, пример выкладываю. Постараюсь сделанные на коленки скрипты в дальнейшем выкладывать.

Скачать пример решения на PHP

автор igorg \\ теги: , , ,

Написано по мотивам заметки о «особенностях» оборудования DLink. Когда работаешь с VoIP оборудованием часто хочется простоты, чтобы телефон

просто настраивался, просто работал и его было просто использовать. Но есть продукты, где за простотой, которую производитель придает продукту кроются просто адские неприятные подробности. Так, наряду с установкой FreePBX как оболочки АТС для предпри

ятия мы всегда смотрим на возможные дешевые решения для малых организаций и подразделений организаций. И вот мы увидели, что компания Atcom выпустила прошивку 3.0 для своих станций на blackfin (IP01, IP02, IP04 и т.п.), которая была в наличии у нас и попробовали её. Все выглядит вкусно:

  1. Возможно создавать свои конфиги
  2. Полная запись разговоров
  3. Фаервол и защита от атак по SIP
  4. И еще море возможностей

Но от вкусностей осталось послевкусие...

Далее »

автор igorg \\ теги: , , , , , , ,

Всем доброго дня. Разгребая архивы записей наткнулся на записи, полученные в 2010 году от тогда еще сотрудника «Скайлинк» в Рязани, Михаила Аникеенко. Давно не общались, но чтобы полезная кому-то информация не потерялась, размещаю творчески доработанную информацию в блоге.

В свое время стояла задача подключения Asterisk по ОКС7 и нужно было коррекно настроить передачу номера звонящего, в том числе отображать или нет номер локальному абоненту. Далее следует подробное описание и связь стандарта и зачений опций CallerID Presentation в астериске:

  • allowed_not_screened    : Presentation Allowed, Not Screened
  • allowed_passed_screen   : Presentation Allowed, Passed Screen
  • allowed_failed_screen   : Presentation Allowed, Failed Screen
  • allowed                 : Presentation Allowed, Network Number
  • prohib_not_screened     : Presentation Prohibited, Not Screened
  • prohib_passed_screen    : Presentation Prohibited, Passed Screen
  • prohib_failed_screen    : Presentation Prohibited, Failed Screen
  • prohib                  : Presentation Prohibited, Network Number
  • unavailable             : Number Unavailable

Далее »

автор igorg \\ теги: , , , , ,

Несмотря на долгое молчание продолжаем работать с астериском в полную силу. Молчание наверное связано с тем, что работа затягивает сильнее, и желание поделиться своими знаниями погибает под грузом рутины. Однако буквально месяц назад мы столкнулись с просьбой заказчика, который осознал после установки Askozia, что ему необходима еще и CRM, интегрированная с телефонией. Мы выбрали AmoCRM — система проста, понятна и имеет уже возможность интеграции, реализованную компанией VoxLink. Однако инструкция имеет некоторое количество упущений, которые могут выпить у вас много крови, постараюсь собрать здесь дополнения инструкции, они под катом. Наши клиенты получают после интеграции с Asterisk еще и приятную скидку по промо-коду (её можно получить перейдя по ссылке), не стесняйтесь задавать вопросы здесь и по email igorg@iqtek.ru.

Ссылки по теме:

Далее »

автор igorg \\ теги: , , , , ,

На днях после обновления системы у одного из клиентов возникла проблема с переводом вызовов средствами телефона SNR 6020. Долго не мог добраться до проблемы, после просмотре дампа стало ясно что данный телефон похоже генерирует версию SDP функцией random (). В астериске старше 1.6 для того чтобы работать с такими телефонами есть опция ignoresdpversion=yes, поэтому на всех обслуживаемых системах где есть такие телефоны и их клоны (Fanvil, SNR всех моделей, Gigalink и т.п.) пришлось включить эту опцию. Кстати прошивка DLink не содержит такой проблемы. Вот еще несколько замеченных моментов:

  • Телефоны не загружают корректно кириллицу в конфигурации с TFTP, но понимают UTF-8 при загрузки с HTTP
  • Младшие телефоны (все SNR) в действительности не работают с кодеком G.722, так как не правильно объявляют его в SDP. В DLink'е G722 просто убрали из списка выбора кодеков
  • Atcom AG198 тоже имеют прошивку как на Fanvil'ах, а телефонные прошивки этого производителя — попытки скопировать настройки Linksys

автор igorg \\ теги: , , , , ,

В Asterisk достаточно давно есть механизм AJAM для работы с командами менеджера через HTTP/HTTPS. Хотя возможность эта уже не нова, но её использование в основном ограничивается Asterisk GUI, в реальной жизни используется редко.

Кроме аналогичных стандартному AMI функций AJAM позволяет и выполнить некоторые непривычные операции. Например, немногие знают, но Asterisk позволяет удаленно загружать файлы на сервер. Эта возможность, кстати, используется в панели телефонии 1С от МИКО для передачи факса. Для истории опишу, какие шаги нужно выполнить чтобы загрузить файл через AJAM на сервер астериска.

Далее »

автор igorg \\ теги: , , , , , , ,