Проброс аналоговых линий по VoIP. Абонентский вынос на Grandstream, метод Port Mapping.

Обновлено: добавлены скриншоты из Web-интерфейсов устройств и трейс-файлы общения по SIP-протоколу, подтверждающие корректную работу схемы.
Дано:
(см. схему)
1. 4 линии от внутренней аналоговой мини-АТС или ТФОП
2. 4х портовые шлюзы FXO и FXS производства компании Grandstream (GXW4104 и GXW4004 соответственно).
3. Доступ в Интернет, выделенный «белый» IP-адрес в каждом из офисов

В качестве шлюза в главный офис выбран 4-х портовый FXO шлюз Grandstream GXW4104.
Настройки для него будут иметь следующий вид (не забываем про установку статического IP-адреса для WAN-порта):

FXO Lines
Stage Method: ch1-4:2;
Unconditional Call Forward to VoIP:
User ID: ch1:911;ch2:922;ch3:933;ch4:944;
SIP Server: @ch1-4:p1;
SIP Destination Port: ch1-4:5060++;

Channels
Phone Number settings
Channel(s)    SIP User ID    Authenticate ID    Authenticate Password    Profile ID

1            1                    911                                                                    1
2            2                    922                                                                    1
3            3                    933                                                                    1
4            4                    944                                                                    1

Port Scheduling Schema (VoIP -> PSTN)
1. Round-robin and/or Flexible: rr:1;rr:2;rr:3;rr:4;

Profile 1
SIP Server: 78.62.240.20 (IP-адрес FXS-шлюза)
User ID is phone number: Yes
SIP Registration: No

Не забываем сохранять изменения и при необходимости перезагружать шлюз.

Скриншоты из Web-интерфейса с необходимыми изменениями в параметрах:

В дополнительный офис для установки выбран 4-х портовый FXS шлюз Grandstream GXW4004.
Аналогично не забываем про задание статического IP-адреса для WAN-порта и остальные настройки для него будут выглядеть так:

PROFILE 1
Primary SIP Server: 92.141.81.201 (IP-адрес FXO-шлюза)
Outgoing Call without Registration: Yes
SIP Registration: No
Dial Plan: {x+}

FXS Ports
User Settings

Port #   SIP User ID    Authenticate ID   Password    Name   Profile    Hunting Group
1                    911                                                                 1 None
2                    922                                                                 1 None
3                    933                                                                 1 None
4                    944                                                                 1 None

Port #    Offhook Auto-dial    Map to FXO Port    Map to FXO Gateway IP    and Port
1                        911                        1                        92.141.81.201                5060
2                        922                        2                        92.141.81.201                5062
3                        933                        3                        92.141.81.201                5064
4                        944                        4                        92.141.81.201                5066

Не забываем сохранять изменения и при необходимости перезагружать шлюз.

Скриншоты из Web-интерфейса с необходимыми изменениями в параметрах:

Общая логика работы следующая:
при поднятии трубки со стороны FXS шлюза будет осуществляться отправка SIP сообщения с соответствующим User ID, при этом явно на IP-адрес FXO шлюза, конкретный порт FXO на нём, конкретный порт SIP. При получении данного сообщения FXO шлюз будет задействовать конкретную FXO линию на мини-АТС. Причём, исходя из настройки Port Scheduling Schema (VoIP -> PSTN), задействована будет только требуемая линия, а не любая из свободных. И дальше можно осуществлять набор номер уже исходя из внутренних правил мини-АТС.

При поступлении звонка на конкретный номер (линию) мини-АТС, FXO шлюз будет безусловно перенаправлять (Unconditional Call Forward to VoIP) его на конкретный заданный User ID и сопоставленный SIP Destination Port (для порта 1 FXS шлюза — 5060, для порта 2 — 5062 и т.д.).
Для наглядности прикладываю zip-архив с двумя трейс-файлами (*.pcap), содержащими SIP-пакеты двух вызовов: с телефона, подключенного к мини-АТС (call-from-fxo.pcap) на телефон, подключенный к FXS-шлюзу и обратно (call-from-fxs.pcap) —> traces

Также актуально для Grandstream GXW4108 + GXW4008, GXW4104 + HT704

Проброс аналоговых линий по VoIP. Абонентский вынос на Grandstream, метод Port Mapping.: 41 комментарий

  1. Не работает данная схема проверено сегодня =( при попытке прозвонится происходит сигнал занято, оба шлюза находятся в одной подсети, друг друга пингуют.

    1. Неоднократно проверял в условиях лабы и на готовых инсталляциях. Значит где-то что-то упустили. Шлюзы на последней версии ПО? Нет ли на пути sip трафика фаерволов/прокси?

  2. Не могли бы Вы скрины всех страниц работающей схемы выложить? Делаем по схеме, но что-то ничего не выходит.

    1. Прошу прощения за длинную паузу. На следующей неделе постараюсь выкроить время и собрать схему ещё раз, сделать скриншоты.

    2. После очередного тайм-аута, обновил статью — добавил скриншоты. Проверил на стенде с GXW4104 + HT704 (по сути тот же GXW4004), снял трейс-файлы, показывающие корректное прохождение вызовов.

  3. Сделал по представленым скриншотам-не работает. Оборудование GXW 4104 и HT702. Удалось дозвониться только до одного телефона из двух. ОТ 702 дозвониться нельзя вообще.

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

      1. Схема такая-атс-> 2 линии в GXW4104-> локальная сеть->HT702-> два телефонных аппарата. Удалось добиться следующего: на оба телефона можно дозвониться по своему номеру, с телефонов можно дозвониться куда нужно но звонок идет не с нужного мне порта 4104 а с того, который первый указан в Round-robin. В НТ702 нет пункта меню маппинг порт. Кк сделать чтобы звонок с первого ТА шел по через первый порт 4104 а со второго-через второй? Спасибо заранее за помощь

        1. Михаил, под рукой нет HT702, чтобы подтвердить отсутствие возможности мапинга. Попробуйте воспользоваться вариантом без мапинга, описанном мною в другой статье: http://antidot.ru/?p=431. Обратить внимание надо на указание портов SIP Destination Port в виде 5060++ на FXO шлюзе и наличие финта в диалплане в виде < =99$P>.

  4. Попробовал по другой статье. Теперь при снятии трубки на ТА на АТС занимается одна из внешних линий. :-) может как нибудь в аську или по почте связаться? Чтобы быстрее дело пошло :-)

    1. Извиняюсь, пропал на работе.
      Черканите на \\email удалён\\ с пометкой «Для Андрея», постараюсь ответить оперативно.

    2. Проверил схему с шлюзом HT702 в ней. В нём отсутствует Port Mapping, как в GXW4004, GXW4008, HT704, поэтому реализовать задачу занимать линию на АТС при поднятии трубки со стороны FXS-шлюза не получится.
      Настроить звонки порт в порт — можно, сделал скриншоты. Могу выслать.

  5. Кто-то спрашивал насчет занятости линии. Устранить удалось.

    1. Включите линию в тональный набор.
    2. Пропишите правильные тоны.

    В статье Antidot Stage Method: ch1-4:2; У меня работает Stage Method: ch1-4:1; Иначе нет набора.

    Я тестировал с 4008 и 4104. С работой одного телефона проблем нет. Но вот при двух и более никак не удалось организовать схему прозвонки. Подозреваю, что проблема в разнобое оборудования. Буду проверять.

    1. Вадим, в данном случае схема организована таким образом, чтобы при поднятии трубки со стороны FXS шлюза происходило занятие линии на АТС. Поэтому режим набора должен быть двухстадийным (Stage Method: 2), иначе задача не будет решена правильно.

  6. Излагаю :)))

    Вышлите, пожалуйста, скриншоты для конфигурации порт-порт gxw4104-gxw4004. Т.е. когда все четыре внешних телефона работают независимо друг от друга: знонки на заданный порт FXO поступают на заданный порт FXS и наоборот. Т.е. соседние порты никак друг с другом не связаны.

    Настроил шлюзы, работа по одной линии идет. Но на более линиях начинается путаница с прозвоном и использованием линий.

    Спасибо.

    1. Вадим, на днях по рабочим задачам как раз собирал схему на gxw4104+gxw4004, всё работает корректно по описанному тут методу. Скриншоты тоже в наличии. Если не требуется занятие линии на АТС при поднятии трубки со стороны FXS, то можно воспользоваться методом без Port Mapping, который описан тут: http://antidot.ru/?p=431
      Для упрощения диагностики и «разбора полётов» рекомендую использовать возможности логирования на syslog-сервер на шлюзах, анализаторы трафика (tcpdump,tshark,wireshark). Если причины проблемы не будет видно в сообщениях SIP в трафике,то точно будет в логах со шлюзов.

  7. Возможно у меня проблема с настройкой из версией прошивки на железках.

    У меня на 4104 Software Version Program 1.3.4.13,
    на 4004 1.0.6.13 (не самая свежая).

  8. Поменял прошивку для 4008 до последней 1.0.9.1. Звонки с порта FXO 4104 за конкретным номером поступают на соответствующий порт 4008 FXS!

    Но вот обратное соответствие не работает. Звонок с порта FXS занимает «свободную линию» — линию порта АЧЩ старшего по номеру. Отсюда эффект: звонок на некоторые номера, подключенные к FXO невозможен: линия занята под задачу быть свободной, т.е. через нее на нее идет вызов!

    Так вот, как сделать прозвон так, чтобы звонок с FXS1 занимал FXO1 и т.д.

    Может кто подскажет? Вероятно надо поиграться с Round-robin and/or Flexible?

    1. Вадим, используйте Port Mapping или финт в диал плане FXS шлюза в виде < =99$P>. В первом случае Round Robin надо менять на rr:1;rr:2;rr:3;rr:4; (для GXW4104, например), а во втором его трогать не надо, т.е. rr:1-4;

      При настройке девайсов крайне рекомендую в первую очередь обновляться до последней доступной прошивки — экономит массу времени.

  9. Мужик статья реально хорошая. Собрал лабу все работает. Правильно заметил, проблема с прошивками либо на пути следования трафика стоят прокси либо фаерволы.

  10. Спасибо, заработала прозвонка с выбором порта FXO (через префиксы). Поледнее, что можно еще желать — это запретить выбирать не свой порт FXO!

    Как тут быть?

    С уважением!

    1. Вадим, порт FXO же фиксируется через диаплан на FXS-шлюзе или через указание номера порта через Port Mapping. В чём проблема? Поясните, пожалуйста.

  11. Antidot, спасибо. сейчас идет набор номера портв через префикс 99.

    Например, выбрать превый порт FXO так: 991, второй 992 и т.д. При этом можно ТА находиться на любом проту FXS.

    Как разрешить выбор с определеннго FXS порта только определенных FXO-портов. Именно в этом вопрос. Не нахожу связующей оба устройста (4001 и 4101) конфигурации. Подскажите, пожалуйста.

    1. Вадим, задайте в Dial Plan на FXS-шлюзе шаблон выбора порта {< =99$P>x+} и Stage Method: 1 на FXO-шлюзе. В этом случае в сторону FXO шлюза будет улетать комбинация жесткого выбора порта, т.е. звонящий со стороны FXS-шлюза не сможет использовать другой порт.
      Можно задать варианты: {991x+} {992x+}, например. То есть, будет возможен набор номер только начиная с 991 или 992 и любого количества различных цифр после.

  12. Вадим.
    Та же самая ситуация…
    Можно увидеть Ваши финальные (работающие) скриншоты?

  13. Я остановился на префиксном выборе каалов т.е. 991номер, 992номер и т.д.

    Если желаете, то вышлю на почту. Куда?

  14. Собрали данную схему , вызовы проходят но голоса нет .Подскажите пожалуйста в чем причина.

    1. Подскажите пожалуйста , данная схема будет работать если на одной стороне интернет 3g со статическим адресом , а на другой нормальная статика от провайдера? Заранее спасибо!

      1. Всё будет зависеть от схемы реализации сети операторов. Если мы говорим «статика» и подразумеваем «белый», «прямой» IP-адрес, маршрутизируемый в сети Интернет и никакой блокировки портов нет, то проблем для работы схемы я не вижу.
        Если же это какой-то адрес из локальной сети оператора за NAT, то без проброса портов работать нормально не будет. Настроить теоретически можно, но стабильность и качество будут существенно хромать.

    2. Евгений, с большой долей вероятности виноват NAT и закрытые порты для RTP.

      Если на участке между шлюзами есть доп. устройства — маршрутизаторы, прокси, фаерволы, то надо выполнить их настройку для открытия/проброса требующихся портов в сторону шлюзов.
      Традиционно это порты UDP 5060,5062,5064 и т.д. для SIP и UDP 5004,5006,5008 и т.д. для RTP

  15. Добрый день.
    Купил 2 шлюза gxw4104 и gxw4004.
    Оба офиса в Москве, необходима помощь в настройке. Есть ли у Вас возможность помочь с настройкой?

  16. Добрый день.
    Большое спасибо за отличную статью. Все, что описано, работает, как надо в связке головного офиса и двух удаленных подразделений уже в течение полутора лет. Однако имеется одна неприятная особенность — если во время установленных голосовых соединений (одного или нескольких) происходит пропадание интернета на любом конце соединения, на шлюзе FXO (GXW4104 или GXW4108) остается один или несколько зависших портов. Ни через WEB интерфейс, ни через telnet (reboot) сбросить ситуацию не удается. Только через перезагрузку по питанию.
    Быть может в настройках шлюза можно установить какой-нибудь таймер, который бы сбрасывал порты по истечению какого-либо временного интервала? Или есть другое решение?
    Спасибо

    1. Анатолий, здравствуйте.
      Пожалуйста. Рад, что информация была полезной.
      По поводу зависших портов — нет ли проблем с зависанием портов в обычном режиме работы в случае, если вызываемый абонент через порт FXO занят или не доступен?
      Таймера, насколько я знаю, нет.
      Решения, которые мне приходят в голову: корректно настроить определение сигнала занято в шлюзе (согласовать параметры с PSTN/ТФОП PBX/УПАТС параметрами); поставить на каждый порт аппаратный детектор отбоя.

      1. Здравствуйте.
        FXO порты подключены к внутренним портам TDA100D. Сегодня пытался подключаться к занятым номерам, — все нормально — получаю сигнал занято, могу подключиться в режиме мониторинга, завершение соединения — в норме, после окончания разговора порт на FXO в режиме: Connetcted idle — свободен и готов к обслуживанию следующего вызова.
        Послушаю монитором зависший порт, когда появится такой — если получится, конечно. С обнаружением busy в шлюзе поиграюсь позже, после мониторинга.
        Спасибо.

  17. Добрый день.

    Собрал схему из одного FXO и нескольких FXS. Для каждого FXS создал аккаунты на FXO и настроил также, как описано в статье. Итог: исходящие вызовы от тел на FXS проходят, входящие с тел, подключённых напрямую к АТС проходят только до телефонов FXS, которая описана в первом аккаунте.

    Настройка FXO
    Channels Settings
    DTMF Methods(1-7):ch1-8:2;

    Local SIP Listen Port:
    ch1-8:5060++;

    Unconditional Call Forward to Following:
    User ID:
    ch1:442;ch2:414;ch3:448;ch4:449;ch5-8:;
    SIP Server:
    ch1:p1;ch2-3:p2;ch4:p3;ch5-8:p1;
    SIP Destination Port:
    ch1-8:5060++;

    Настройки FXS1-3 — аналогичны настройкам в статье.
    Я так понимаю, FXO при поступлении звонка с АТС смотрит на канал, на который этот самый звонок поступил, по номеру канала определяет какому FXS и т.д.

  18. Добрый день. Помогите пожалуйста. Не могу заставить нормально работать данную схему. У меня 4008 и 4108, панас тда200.
    1 — когда снимаю трубку на стороне fxs шлюза всегда занимается первая свободная
    2 — после того как положил трубку, телефон начинает звонить, снимаю ее, а там или короткие гудки или я куда-то звоню, причем до fxo шлюза сигнал не доходит. приходится ребутать по питанию.
    3 — до этого работал отлично dialplan method, но не работал hook flash, как собственно и на port mapping. помогите пожалуйста или победить 3 пункт на dialplan method или победить весь port mapping.
    Спасибо.

    1. Здравствуйте.
      По поводу п.1-2 очень похоже на то, что где-то упустили параметры мапинга на FXS или не поменяли Port-Scheduling Shema на FXO шлюзе.
      По поводу п.3 — предполагаю, что дело может быть в самих аналоговых аппаратах и параметров таймеров в них. Сталкивался с такими — в некоторых есть винтики, позволяющие выполнить тюнинг — часто спасало. Но в иных случаях — только замена аппарата.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *