Алло, хто дзвонить або визначення номера в Asterisk

  1. Теорія визначення номера
  2. Практика, або чому нічого не працює
  3. Ремонт FXO модуля

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

До нас звернувся клієнт, якому була встановлена ​​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).

Як видно ніяких даних callerid нам не приходить. Оскільки звичайний телефон номер визначає, то можна припустити що проблеми з обладнанням (платою або модулем FXO).
Ставимо свідомо робочий модуль FXO в плату і перевіряємо ще раз.

Тепер визначення номера працює без проблем, на записи бачимо дані CallerID в стандарті FSK.

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

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

Приклад схеми з даташіта на Si3050 Si3018 / 19:

На даній схемі лінія підключається до контактів 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). Симптоми при цьому такі: модуль не бачить вхідний дзвінок, при спробі зателефонувати через даний канал крім тиші ніяких дій. Вирішується заміною стабилитрона.

На які елементи слід звернути увагу при проблемах з роботою модуля?
M ?
M ?
M ?