FreeSWITCH минимальная установка и выбор модуля

Как кто-то, кто очень плохо знаком с проектами PBX с открытым исходным кодом, как Asterisk а также FreeSWITCHЯ борюсь с некоторой информационной перегрузкой. Прочитал основные документы FreeSWITCH на Wiki, но все еще есть несколько вопросов. Поскольку я не очень знаком с терминологией, я постараюсь использовать близкие приближения.

Попытка создать небольшую / минималистичную сборку FreeSWITCH, которая должна работать на довольно старом ноутбуке (Celeron 1 ГГц, 512 МБ ОЗУ, 20 ГБ HDD, на котором уже установлен Debian "Wheezy"), и настроить его как 6-портовый GSM-SIP Джаббер шлюз. Итак, под "маленьким" и "минималистичным" я подразумеваю тот, у которого нет модулей / опционального программного обеспечения, которое не является абсолютно необходимым (например, нет необходимости в объявлениях IVR или интеграции в Skype) - чтобы уменьшить объем памяти, и занимают меньше недвижимости на жестком диске.

Грубая идея состоит в том, чтобы иметь 6 портов GSM (через "открытый модуль GSM", аналогичный chan_dongle) в направлении телефонной сети общего пользования, и около 60 расширений SIP, а также поддерживать до 6 вызовов с участием портов GSM и около 6 вызовов SIP-SIP (внутри АТС), на этой установке. Я читал, что загрузка ЦП модуля GSMopen довольно низкая, поэтому я предполагаю, что это возможно.

  1. Может ли кто-нибудь подтвердить, что это реальная цель?
  2. Какой минимальный набор модулей можно выбрать для минималистической сборки?
  3. Для модулей, не выбранных при первоначальной сборке, можно ли добавить их позже? Если это так, потребует ли я полностью перестроить FreeSWITCH, только модули или что все будет собрано, но потребуются только изменения конфигурации, чтобы обеспечить загрузку и настройку модулей?
  4. Есть ли приблизительная оценка максимальной скорости вызовов, которая может поддерживаться в такой конфигурации? Для звонков SIP-SIP? Учитывая недостаточную мощность процессора и небольшую оперативную память (согласно современным стандартам), я предполагаю, что оба они будут узкими местами, но добавление оперативной памяти все еще возможно (даже если это дорого и сложно).
  5. Я читал, что "ловушки" могут быть созданы с использованием Lua/Python/Java и т. Д. Однако, если кто-то поделится несколькими примерами того, что можно сделать с помощью таких ловушек, это сделает концепцию более ясной. Можно ли надеяться написать приложение типа "журнал пропущенных вызовов" или "перенаправить без ответа", используя эти хуки?

2 ответа

Решение

Может ли кто-нибудь подтвердить, что это реальная цель?

Да, это вполне реально. Вы должны нацеливаться как можно меньше на транскодирование, потому что именно там нужны ресурсы ЦП. Но даже с 1 ГГц Celeron 6 транскодированных сессий кажутся вполне реалистичными. Но это требует тестирования:)

Какой минимальный набор модулей можно выбрать для минималистической сборки?

Просто начните со списка модулей по умолчанию и добавьте gsmopen (у меня нет опыта работы со шлюзами gsm, я не могу помочь с этой частью). Объем памяти довольно низок, и некоторые из этих модулей вам могут понадобиться позже.

Для модулей, не выбранных при первоначальной сборке, можно ли добавить их позже?

насколько я помню, вики описывает этот процесс. Вы редактируете modules.conf и делаете конкретный модуль.

Есть ли приблизительная оценка максимальной скорости вызовов, которая может поддерживаться в такой конфигурации? Для звонков SIP-SIP? Учитывая недостаточную мощность процессора и небольшую оперативную память (согласно современным стандартам), я предполагаю, что оба они будут узкими местами, но добавление оперативной памяти все еще возможно (даже если это дорого и сложно).

Это действительно зависит от сложности вашего диалплана. Каждый контекст состоит из ряда условий, которые выполняют регулярное выражение для переменных канала. Таким образом, чем сложнее ваш диалплан, тем меньше CPS вы получаете. Но для 6-канального шлюза я не вижу в этом проблемы. Сеть GSM будет намного медленнее вашей коробки:)

Я читал, что "ловушки" могут быть созданы с использованием Lua/Python/Java и т. Д. Однако, если кто-то поделится несколькими примерами того, что можно сделать с помощью таких ловушек, это сделает концепцию более ясной. Можно ли надеяться написать приложение типа "журнал пропущенных вызовов" или "перенаправить без ответа", используя эти хуки?

Вы можете контролировать каждый аспект поведения FreeSWITCH с FreeSWITCH. Есть даже примеры, когда полный диалплан повторно реализуется внешней программой (это делает Kazoo).

Самый простой режим работы - это когда ваш скрипт Lua/JS/Perl/Python запускается из диалплана: тогда он получает объект "сеанса", и вы можете делать с вызовом все, что захотите: воспроизводить звуки, бридж, вперед, сделать новый звонок и соединить их вместе, и так далее. Здесь, в моем блоге, есть небольшой практический пример.

Затем вы можете создать внешнее приложение, которое подключается к сокету FS, отслеживает события и выполняет действия с активными вызовами.

Также это можно сделать в обратном направлении: вы запускаете сервер, и FS подключается к нему с помощью своей библиотеки сокетов.

Кроме того, у вас может быть служба HTTP, которая доставляет фрагменты конфигурации XML во FreeSWITCH и запрашивает их при каждом вызове (это будет наиболее ресурсоемким приложением). Таким образом, вы можете использовать FS из некоторой внутренней базы данных и создавать отказоустойчивые системы.

Надеюсь, это поможет:) Вы также можете найти меня в скайпе, если это необходимо.

FreeSWITCH не очень требователен к памяти, и вы можете просто начать с набора модулей по умолчанию (лучше всего использовать предварительно собранные пакеты Debian). Например, на моей 64-битной машине процесс FreeSWIITH занимает только 35 МБ памяти.

freeswitch@vx03:~$ uname -a
Linux vx03 2.6.32-5-xen-amd64 #1 SMP Thu Nov 3 05:42:31 UTC 2011 x86_64 GNU/Linux
freeswitch@vx03:~$ ps -p 11873 v
  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
11873 ?        S<l   10:29      0     0 258136 36852  2.3 /opt/freeswitch/bin/freeswitch -nc -rp -nonat -u freeswitch -g freeswitch

Я рассмотрю остальные ваши вопросы позже сегодня

Другие вопросы по тегам