Объединяем два офиса: Oktell и Asterisk

Неоднократно приходись делать объединение офисной АТС на базе Asterisk с call-центром Oktell или просто интегрировать два номерных плана удаленных офисов на Oktell IP PBX и Asterisk. В общем, нет ничего сложного, посмотрим как это все работает на простом примере.

У нас есть 2 офиса: в одном прекрасно работает Oktell IP PBX (номерной план 1хх и 2хх), а в другом со своей задачей отлично справляется Asterisk (номерной план 3хх и 4хх). У каждой из АТС имеются свои городские номера, только еще на Asterisk установлен GSM-шлюз. Каждая из АТС имеет белый внешний адрес (или VPN между офисами). Задача сделать прозрачное объединение двух номерных планов, что бы сотрудник не задумываясь набирал номер, а так же дать возможность сотрудникам за Oktell звонить через GSM-шлюз. Рассмотрим как это решается.

На стороне Asterisk (адрес в сети 10.0.0.1).
Будем использовать подключение к Oktell без регистрации, для этого создаем peer в sip.conf

[oktell]
type=friend
host=10.0.0.2
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
allow=gsm
context=oktell-in
qualify=no
regseconds=0
rtpkeepalive=0

Все входящие звонки будут обрабатываться в dialplan контекстом oktell-in, задача которого просто позвонить на набранный внутренний номер. Другое дело исходящие на сотрудников за Oktell (номерной план 1хх и 2хх), для них мы в dialplan прописываем:

exten => _1XX,1,Dial(SIP/${EXTEN}@oktell)
exten => _2XX,1,Dial(SIP/${EXTEN}@oktell)

На стороне Oktell (адрес в сети 10.0.0.2).
На карте сети просто создаем внешний шлюз без регистрации на 10.0.0.1

Остальное – это настройка сценариев на свой вкус 🙂

Главный сценарий: если приходит звонок с нашего шлюза – маршрутизируем на внутренние номера
Маршрутизация внутренних звонков: если набрали (3 или 4)хх, а так же любой сотовый номер – отправляем на Asterisk.

Думаю, что мой небольшой пост должен помочь в решение этой задачи.

11 Comments on "Объединяем два офиса: Oktell и Asterisk"


  1. После непродолжительной потери связи перестали проходить звонки из октелла в астериск, причем из астериска звонки идут. Есть какой либо механизм у октелла возобновить транк?
    Спасибо.


  2. Подскажите пожалуйста как это реализовать?
    (Главный сценарий: если приходит звонок с нашего шлюза – маршрутизируем на внутренние номера)

    плохо шарю в сценариях. Буду благодарен подробного описания.


  3. Уважаемый Виталий.
    Соединил астериск с октелом согласно Вашей статьи. Все работает, однако когда из номер октела звонят номерам астериск номер определяется как 100. Это нормально или связано с неправильной настройкой.
    Прошу помочь с данной задачой.


  4. На внешнем шлюзе без регистрации установлен CallerID 100, скорее всего он и уходит на asterisk. Вам нужно в самой компоненте сценария oktell передавать callerId абонента, тогда он и уйдет на asterisk.


  5. Виталий не подскажете где имеено настраивается данная настройка? в каких параметрах?


  6. и еще один вопросик:
    В Вашей статье при создании внешного шлюза указан этот caller id, без него нельзя как то?


  7. На вики написано:

    CallerId – Подставляемый для звонка номер. При отсутствии или некорректном значении будет взят номер по умолчанию для канала.

    Вам нужно выбрать служебную переменную CallerId в этом поле


  8. Добрый день!
    Исходящие с Asterisk работают хорошо.

    А вот проблема с входящими из Oktell на Asterisk.
    CLI> NOTICE[56450][C-0000001d]: chan_sip.c:26273 handle_request_invite: Call from ‘oktell’ (192.168.0.0:5060) to extension ‘623’ rejected because extension not found in context ‘oktell-in’.

    Не находит сценарий в extensions.conf, на сколько я понимаю.
    Но в extensions.conf прописано:
    exten => oktell,n,Dial(SIP/623)


  9. Что-то комментарий не остается(
    Писал так долго

Leave a Reply

Your email address will not be published. Required fields are marked *