Реализация работы Callback на Asterisk+FreePBX (без кучи макросов)

Статью об установке FreePBX+Asterisk решил не писать, потому как в интернете их не просто уйма — а реально прямо гора, так же решил не писать и статью про подключении\прошивки GSM модема Huawei для работы с Asterisk, поэтому, расскажу лишь свою реализацию Callback в Asterisk+FreePBX.

Начну с того, что знаний в работе с Asterisk у меня не так уж и много, зачастую, все крутиться вокруг FreePBX без прямого влезания в конфиги Asterisk с целью прописать какой-нибудь сложный макрос. Но, моих знаний хватает чтобы управлять 50 телефонами, 30 из которых раскиданы по России :) итак, реализация такова:

У меня есть 2 модема huawei:

первый — исключительно для определения номера телефона абонента (чтобы далее понимать что с ним делать)

второй — для исходящих звонков на билайновские номера (используется в качестве транка), таких абонентов у меня большая часть так как билайн является нашей корпоративной связью.

Предположим, что модемы мы уже настроили и они видятся в Asterisk:

2

Для начала, создадим 2 Outbound Route, в моем случае — часть звонков пойдет через билайн (на билайновские мобильники сотрудников), оставшаяся часть на других операторов через sip (pctel/zadarma в моем случае). Перейдем в Outbound Routes:

4

Далее, путем нажатия на Add Route создадим новый маршрут, в котором укажем имя — Route Name, как нам удобно, в моем случае outtogsm-beeline (для звонков на билайновские номера) затем в dial patterns делаем все как на картинке, то есть, при вводе префикса 0608 у нас можно набрать любой номер, при звонке через префикс будет подставляться +7 в номере телефона, в качестве транков укажем сначала наш GSM модем, а если он занят/сломался, то далее идем zadarma-rezerv-channel (sip транк на провайдера zadarma), нажимаем Submit Changes для применения маршрута:

5

После чего, создадим такой же маршрут для всех остальных абонентов (не билайновских), он отличается лишь префиксом набора — 0598 и добавлением ещё одного транка (вместо GSM-modem-beeline мы добавили pctel).

6

Безусловно, можно было обойтись одним префиксом и наверное это было бы идеально, условно, прописав все коды DEF билайна на префикс 0608… но, я не особо мучался, потому как ещё раз повторюсь — у меня 90% абонентов — абоненты билайн.

Далее, создадим Callback, там же в FreePBX, для этого, в меню Applications -> Callback (если нет — устанавливаем модуль Callback в FreePBX — если не знаете как — раскажу :) ) :

7

Справа нажимаем Add Callback и создаем новый Callback вот с такими параметрами:

Там где, Callback Description — название нашего кабблека, Callback Number — вот ту повнимательней, почему именно «060${CALLERID(num)}» — мы создали префикс 0608, потому как, при входящем звонке на наш модем, лично у меня номер телефона определяется в формате 89051234567 (именно с 8-кой впереди), а обратный звонок нам надо подать с номером +79051234567, соответственно при звонке на 06089051234567 у нас 8-ка замениться на +7 и в итоге номер наберется нормально. Так как этот callback мы впоследствии будем использовать для абонентов билайн, мы в префиксе указываем 060…

В качестве Destination after Callback в моем случае выбрана линия FXO шлюза, абоненты попадут напрямую в мою аналоговую мини-атс (у меня Eltex шлюз, на 4 линии, кто-то назовет наверное извращением, но, устроенно так — если занят 8161 то звонок идет на 8162 (вторая линия), если она занята то на 8163… 8164.. и опять по кругу), если Вам нужен доступ напрямую в Asterisk, то, можно воспользоваться не перекидкой звонка на Extension, а, к примеру закинуть его в DISA (для доп безопасности можно установить PIN код) или сделать маломальский IVR (условно при наборе 1 — звонок поступает абоненту такому-то.. при наборе 2.. такому-то), вобщем — как Вам удобней:

8

Второй Callback (для абонентов кроме билайн) у меня создан таким образом, так же по аналогии — с вышеуказанным соединением, только префикс набора номера 059:

9

Далее, настрою что делать с входящими звонками, для этого, в FreePBX зайду в пункт Connectivity — Inbound Routes:

1

Где создам первое правило нажав Add Incoming Route:

Где Description — описание для себя, что значит это правило, DID Number — IMEI нашего модема (который можно посмотреть как на модеме, так и в консоле asterisk’а (на первом скриншоте этой темы видно команду — datacard show devices), в Set Destination я указываю Terminate Call -> Hangup, чтобы все звонки по умолчанию скидывались (если номер не прописан в Incoming Route), и нажимаем кнопку «Submit», тоже самое делаю со вторым модемом (соответственно в поле DID Number уже прописывая другой IMEI):

3

Далее, запросив мобильные номера телефонов удаленных сотрудников (работающих не в офисе) я прописал их номера добавляя новые Incoming Routes, в Description указан условно from-mts-kazan-imya-familiya-abonenta (дабы было легче найти в случае необходимости сменить номер\удалить абонента), в DID Number — все так же, IMEI нашего модема, в CallerID Number — номер телефона абонента (начиная с 8-ки), в Set Destination указываю Callback -> «callback-with-beeline-abonents»  для абонентов билайн и callback-in-office для других абонентов, таким образом, получается что экономлю на связи с билайновскими абонентами (к примеру подключая тариф «Все за 150» — который дает 100 минут в день на номера билайн России) :

10

Вот так мы обошлись без сложных, непонятных макросов и прописали все не отходя от интерфейса FreePBX :) можете проверить, прописать свой номер в Incoming Route, позвонить, через некоторое время Вам будет звонок с обратного соединения.

P.S. Если интересно — могу все же рассмотреть установку Asterisk+FreePBX на Debian, плюс привязку модемов к Asterisk.

comments powered by HyperComments