2013-08-21 3 views
5

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

Попытка создать небольшую/минималистичную сборку FreeSWITCH, которая должна работать на довольно старом ноутбуке (Celeron 1GHz, 512MB RAM, 20GB HDD, уже запущена Debian «Wheezy») и настроена как 6- порт GSM-SIP/Jabber. Таким образом, под «малым» и «минималистичным» я имею в виду тот, у которого нет модулей/дополнительного программного обеспечения, которое не является абсолютно необходимым (например, нет необходимости в объявлениях IVR или интеграции Skype) - чтобы сохранить максимальную занимаемость памяти и занимают меньше объектов на жестком диске.

Грубая идея состоит в том, чтобы иметь 6 портов GSM (через «GSM-open module», аналогично chan_dongle) в сторону общественной телефонной сети и около 60 расширений SIP, а также поддерживать до 6 вызовов с использованием портов GSM и около 6 SIP -SIP-вызовы (внутри PBX), на этой настройке. Я прочитал, что накладные расходы процессора модуля GSMopen довольно низки, поэтому я предполагаю, что это возможно.

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

У меня есть пример IVR для python в https://github.com/olivecoder/freeswitch-ivr – olivecoder

ответ

4

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

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

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

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

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

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

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

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

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

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

Простейший режим работы заключается в том, что ваш скрипт Lua/JS/Perl/Python запускается из диалплана: затем он получает объект «session», и вы можете делать все, что хотите, с помощью вызова: звуки воспроизведения, мост, вперед, сделать новый звонок и объединить их вместе и так далее. Here in my blog есть немного практического примера.

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

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

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

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

+0

Отличный ответ, и да, это помогает. Я отметил ваш skype и gtalk id из вашего блога. Это очень мило с вашей стороны, чтобы предложить помощь. – jay

1

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

[email protected]:~$ uname -a 
Linux vx03 2.6.32-5-xen-amd64 #1 SMP Thu Nov 3 05:42:31 UTC 2011 x86_64 GNU/Linux 
[email protected]:~$ 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 

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

+0

также, книга является обязательным для чтения. Он быстро доведёт вас до уровня понимания системы и ответа на ваши вопросы: http://www.packtpub.com/freeswitch-1-2/book –

+0

Спасибо @Stanislav. Это очень обнадеживает. В предварительно созданном списке пакетов Debian я не нашел упоминания о mod_gsmopen, и именно поэтому я сам пытался его создать. Не могли бы вы подтвердить ? Кроме того, Debian показывает около 10-12 пакетов для Freeswitch. Не был уверен, что все это будет минимальным. Что касается этой книги, я вижу, что дело идет о формате ebook, поэтому я немедленно пойду и куплю! Спасибо за совет. – icarus74

+0

Вы правы, модуль gsmopen еще не упакован. Но не стоит строить его из источников. На вашем скромном аппаратном уровне для компиляции может потребоваться около получаса. –

Смежные вопросы