Різний CID на транках – тимчасове рішення.

Після об’єднання внутрішніх обласних IP PBX транками для дзвінків між головними офісами залишилося невирішеним одне завдання. Це віддача правильного CID при дзвінку в інші області.

Згідно із затвердженою схемою нумерації, абонентам присвоюється 4-значний номер. Дзвінок в іншу область для всіх однотипний і виглядає як 8-ХХ-YYYY. Де ХХ – код області, а YYYY – номер абонента. Схема працює, дзвінки надходять, начебто все добре, але… вхідний дзвінок надходить з внутрішнім 4-значним номером і абсолютно не зрозуміло, звідки він надійшов. Відкриваємо список пропущених дзвінків і бачимо, хто нам дзвонив, але з якої області – незрозуміло. За такої схеми не працюватиме кнопка redial.

Отже, подивимося, що являє собою схема об’єднання наших станцій. Схема називається «зірка».

звезда

Перевага даної схеми – відправляй все на Київ, а там самі розберуться, куди доставити дзвінок. А головний недолік – у разі «відмови» центру – «ляже» все.

Розглянемо, як на даний момент проходить дзвінок з ГУ в ДСНС.

GUtoKIEV

Як бачимо, CID змінюється при проходженні через ДСНС на повний номер з кодом 8151190. Все це робить правило на АТС ДСНС за умови, що дзвінок йде на номери ДСНС. У разі, якщо дзвінок проходить транзитом через ДСНС в іншу область, то CID просто видаляється і абоненту відправляється Anonymous.

Щоб уникнути такої схеми, необхідно адміністраторам АТС в ГУ самостійно контролювати вихідний CID, а не покладатися на ДСНС, що цю роботу зробить хтось інший.

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

 Отже, приступимо.
1. У налаштуваннях розширення є поля Outbound CID і Emergency CID.

ext_cid

Для відомчої маршрутизації будемо використовувати поле Emergency CID. Прописуємо в ньому потрібний номер, тобто до існуючого номера додаємо спочатку «815».

2. Налаштовуємо вихідну маршрутизацію. Вибираємо необхідний маршрут.

out_route
addrouteВідзначаємо опцію Emergency.
toDon

Після чого, всі дзвінки, що йдуть за цим правилом, будуть брати CID з поля Emergency CID.
Ось так, досить просто можна вирішити цю проблему, але…

У нас залишається невирішена проблема транзитних дзвінків зі старих відомчих АТС, які також підключені до Asterisk. Я думаю, майже у всіх схожа схема об’єднання АТС.

trank

У моєму випадку абоненти, які дзвонять з АТС SIEMENS (наприклад, з номера 1650 на номер 8008193), пройдуть через PBX ASTERISK через транк на ДСНС з незмінним CID.

Як обійти такий варіант, я не знайшов легкого і простого способу, який можна використовувати штатною веб-мордою FreePBX. Якщо у Вас є рішення цієї ситуації – поділіться.

Звичайно, було б чудово, якби в FreePBX існувала штатна опція зміни CID при виході з транку – проблем би не було, але поки її немає – викручуємося як можемо.

Необхідно зупинитися додатково на схемі об’єднання обласних Asterisk. Зірка, з точки зору відмовостійкості, не годиться. Тому необхідно створити транки з усіма ГУ України. У налаштуваннях вказати, що першим транком буде використовуватися міжобласний, а в разі його виходу – транк ДСНС.

rezroute

За допомогою цієї схеми ми завжди залишаємося на зв’язку, незалежно від центрального вузла, і не навантажуємо центральний сервер.

Примітка. Всі налаштування виконувалися на FreePBX 2.11.0.11. В інших версіях можливі невеликі відмінності.

Ще один нюанс (можливо, у когось таке є). Так склалося, що наша відомча АТС SIEMENS має 4-значні номери внутрішніх абонентів, але після того, як в Україні перейшли на 3-значні номери екстрених служб, АТСку довелося переналаштувати на 3-значні номери. З цього моменту CID абонентів SIEMENS не збігається за розрядністю з прийнятим стандартом. Налаштувальник SIEMENS зробив правило, яке всередині SIEMENS додає перед номером цифру «1» і для абонентів SIEMENS нічого не змінилося. Але, коли з SIEMENS дзвонять на IP Asterisk, то вхідний CID 3-значний. Щоб привести до нормального вигляду необхідно зробити наступне:

1. У файлі extensions_custom.conf прописуємо додаткові правила обробки вхідних.

[from-pstn-custom]
exten => _X.,1,ExecIF($[${VALID_EXTEN(16XX-cid,${CALLERID(num)})}]?Gosub(16XX-cid,${CALLERID(num)},1))

[16XX-cid]
exten => _6XX,1,Set(CALLERID(num)=1${CALLERID(num)})
exten => _6XX,n,Set(CALLERID(ANI-all)=${CALLERID(num)})
exten => _6XX,n,Return()

Після чого до нас вже приходить нормальний CID.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *