Алло, кто звонит или определение номера в Asterisk

    Учитывая специфику телефонных сетей на территории России, проблемы с определением номера при настройке аналоговых линий ГТС на Asterisk возникают довольно часто. Разнообразие ГАТС и качество телефонных линий смонтированных еще во времена СССР всегда преподносят проблемы для интеграторов IP АТС.
    image

    Была установлена IP АТС Asterisk, и успешно использовалась. Через некоторое время появилась возможность подключить определитель номера, т.к. городские линии перевели на цифровую ГАТС с поддержкой CallerID, до этого линии были подключены к аналоговой ГАТС (да, аналоговые АТС еще живы), но определение номера не заработало.

    Для начала рассмотрим небольшую теоретическую информацию, какие стандарты определения телефонного номера бывают.

    Теория определения номера

    АОН (также называют Русский АОН) — работа советских аналоговых ГАТС, был распространен в начале 90-х, но все еще встречается. Информация о номере вызывающего абонента передаётся в виде кода, носящего название «Безынтервальный Пакет». Не является услугой, как таковой, т. к. не предназначался для абонентов. Телефонный номер передается в виде 7 цифр. Телефонный аппарат, поддерживающий АОН при входящем звонке «снимает трубку» и считывает служебные сигналы телефонной станции, при этом для вызывающего абонента имитируется вызывной сигнал. На Asterisk данный вид определителя номера заставить заработать не удастся.

    CallerID (он же Евро АОН) — услуга предоставляемая на цифровых ГАТС. Метод для отправки запроса и получения Caller ID информации в интервале между звонками. То есть, в отличии от АОН здесь не происходит «снятия трубки». В CallerID распространено несколько стандартов:

    Bellcore-стандарт используется в США, Канаде, Австралии, Китае, Гонконге, Сингапуре, Италии и некоторыми телефонными компаниями Великобритании.

    DTMF-стандарт: цифры номера передаются таким же способом, как и тональный набор номера — короткими двухчастотными посылками.

    FSK-стандарт: Поток данных передаётся частотной модуляцией перед первым или перед вторым звонком на линии. Как показал опыт, большинство цифровых ГАТС Ростелекома работают по этому стандарту.

    Практика, или почему ничего не работает

    Для определения номера в каналах DAHDI в большинстве случаев достаточно добавления следующих строчек в chan_dahdi.conf:

    chan_dahdi.conf
    usecallerid=yes ; включаем CallerID
    
    callerid=asreceived ; передаем callerid в неизменном виде
    

    Если определение номера не заработало, рекомендую для начала подключить обычный телефонный аппарат с поддержкой CallerID и посмотреть работает ли на нем определение. В нашем случае, номер на ТА определялся без проблем, а на Asterisk никак не хотел. Более того, при подключении ТА параллельно астериску опеределение переставало работать и на телефоне.

    Переходим к дальнейшему анализу. Запишем аудио канал линии и проанализируем в аудио редакторе запись. В нем попробуем найти данные CallerID.

    Запись первого dahdi канала осуществляется следующей командой:

    dahdi_monitor 1 -v -r streamrx.wav

    Запускаем команду записи и звоним на нашу линию. После этого останавливаем выполнение dahdi_monitor, в итоге у нас появится файл streamrx.wav. Копируем его себе и открываем его в аудиоредакторе (например Audacity).

    image

    Как видно никаких данных callerid нам не приходит. Поскольку обычный телефон номер определяет, то можно предположить что проблемы с оборудованием (платой или модулем FXO).

    Ставим заведомо рабочий модуль FXO в плату и проверяем еще раз.

    image

    Теперь определение номера работает без проблем, на записи видим данные CallerID в стандарте FSK. Как видно, в этом случае была проблема с модулем.

    Ремонт FXO модуля

    FXO модули разных производителей для аналоговых карт построены практически по одной и той же схеме на базе двух микросхем: SI3019 и SI3050.

    Пример схемы с даташита на Si3050 Si3018/19:

    image

    На данной схеме линия подключается к контактам RING и TIP. На какие элементы следует обратить внимание при проблемах с работой модуля?

    — Диодный мост D1 (также может быть выполнен в виде двух сборок по 2 диода). Иногда из строя на линиях аналоговых АТС и при превышении допустимого напряжения. При этом сам модуль может оставаться работоспособным, но часть диодов не работают. Проверяются после выпаивания со схемы.
    — Динистор RV1 (275 V, 100 A). В нашем случае он оказался работоспособным.
    — Резисторы R30, R32 (15 M?, 1/8 W, 5%), R31, R33 (5.1 M?, 1/8 W, 5%), R8, R7 (20 M?, 1/8 W). С ними тоже оказалось все в порядке.

    Проблема оказалась в микросхеме Si3019. Сопротивление в точке подключения пина Ring1 было в два раза меньше, чем на рабочем модуле. После замены микросхемы Si3019 все заработало без проблем.

    Также в грозовой период, при отсутствии внешней защиты, часто выходит из строя стабилитрон Z1 (43 V, 1/2 W). Симптомы при этом следующие: модуль не видит входящий вызов, при попытке позвонить через данный канал кроме тишины никаких действий. Решается заменой стабилитрона.
    Метки:
    • +19
    • 7,3k
    • 5
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 5
    • 0
      CallerID (он же Евро АОН) — услуга предоставляемая на цифровых ГАТС

      Т.е., у Ростелекома (беру его как самого массового оператора) это платно?
      • 0
        Да.
        За обычный АОН они тоже, вроде, пытались деньги драть — в те же времена, что и за факсы и модемную связь.
      • 0
        Надо заметить, что если очень хочется, то прикрутить «Русский АОН» к Asterisk все же можно (хотя вряд ли нужно). Давно пробовал это «just for fun» — заставить телефоны с Русским АОНом определять номера, идея очень проста:
        1. Пишем утилиту, принимающую номер телефона и выдающую «безинтервальный пакет» в поддерживаемом Asteriskом формате
        2. Проверку запроса 500Гц можно проигнорировать, и проигрывать вызываемому этот «безинтервальный пакет» всегда сразу после соединения.

        В другую сторону (пробовать определять Русский АОН на Asterisk), то же можно (но вот точно не нужно, хотя бы, из за автоподнятия). Но, понятно, написать анализ двухтональных посылок несколько сложнее чем их генерацию.
        • 0
          — Диодный мост D1 (также может быть выполнен в виде двух сборок по 2 диода). Иногда из строя на линиях аналоговых АТС и при превышении допустимого напряжения. При этом сам модуль может оставаться работоспособным, но часть диодов не работают. Проверяются после выпаивания со схемы.


          Проверяется путём смены полярности подключённой линии — сэкономит время )
          • 0
            где-то эту доку находил полтора года назад. По ней настроил свой определитель. Но прикол в том, что моя АТС дает именно АОН и для получения callerid нашел в инете платку, которая осуществляла преобразование. Жизнь показала что такая связка глючная — разрывы соединения в произвольный момент времени. Пришлось убрать и вчера отключил АОН в РТК. Такая у нас провинция.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.