Сравнение FreeSWITCH и Asterisk
![]()
Мир VoIP (Voice over IP) многогранен. На рынке существует целое множество решений для построения корпоративных систем связи – IP – АТС. Нас интересуют программные «open source» решения, поэтому, сегодня мы сравним две популярные телефонные платформы и ответим на вопрос: что круче, FreeSWITCH или Asterisk? 🙂
Про Asterisk
Давайте немного теории: Asterisk — программная автоматическая телефонная станция (АТС) на базе протокола IP, которая способна предложить богатый, с точки зрения телефонии, инструментарий для офиса. Asterisk, будучи одной из первых программных IP-АТС был создан в 1999 году как решение с открытым кодом (open source). При поддержке компании Digium в 2005 году IP – АТС увидела свет и была выпущена в «продакшн». Реализация происходит под двумя лицензиями: GNU GPL (General Public License) и патентная лицензия для разработки собственных решений на базе Asterisk, рассчитанных на дальнейшую продажу. Более миллиона пользователь радуются IP – АТС Asterisk каждый день по всему миру 🙂
Но не все так гладко (удар молнии за окном). Исторически, Asterisk имеет ряд проблем, связанных с масштабируемостью, нестабильностью работы при повышении нагрузки. С учетом особенностей лицензирования, многие пользователи (в том числе компании — разработчики) искали новый продукт.
Про FreeSWITCH
В 2006 году группа бывших разработчиков Asterisk приняли решение разработать альтернативное решение – на свет появился FreeSWITCH. Вдохновленные модульной структурой веб – сервера Apache, команда разработчиков преследовала цель улучшить параметры масштабируемости и стабильности работы на разных платформах.
FreeSWITCH создан по модели состояний, вследствие чего, каждый вызов(канал) работает по отдельному потоку данных. Для построения структуры, использовались компоненты open – source решений, такие как, например, Sofia SIP – SIP UA с открытым исходным кодом, созданный компанией Nokia.
Что под капотом?
Asterisk – модульная структура. Во время работы, Asterisk использует общие ресурсы, включая программные потоки – это главная проблема при большой интенсивности вызовов.
Несмотря на сложность и многогранность программного кода, на котором написан Asterisk, он находит огромное множество применений в сети. С другой стороны, FreeSWITCH написан на C, структура которого более понятна и прозрачна. Потоки процессов выполняются последовательно и отдельно для каждого канала, что безусловно отличает Фрисвитч от Asterisk. При этом, как правило, по этой причине FreeSWITCH требует больший объем оперативной памяти (RAM)
Отметим, что FreeSWITCH имеет хорошо документированный API (Application Programming Interface), сегментированный по ролям. Такая структура обеспечивает безопасное подключение к API в отличие от Asterisk, где более открытая конструкция API допускает вероятность внесения багов и ошибок.
Asterisk базируется на текстовых конфигурационных файлах, в то время как FreeSWITCH использует файлы формата .xml. Безусловно, с точки зрения работы с конфигами для админа, файлы текстового формата проще редактировать, однако, плюсы формата .xml всплывают на этапе автоматизации различных процессов.
Требования к железу
Оценить общие требования к IP – АТС достаточно сложно, так как в каждой инсталляции используется разный набор фичей и целей эксплуатации. Однако, в таблице ниже сконцентрированы минимальные требования к серверу, на котором будет развернут Asterisk и FreeSWITCH для работы 15 телефонными аппаратами и 5 одновременными вызовами. Сравните их:
| Параметр | FreeSWITCH | Asterisk |
|---|---|---|
| CPU | Одно ядро, частота процессор 1 гГц | Одно ядро, частота процессор 700 мГц |
| RAM | 1 ГБ | 512 МБ |
| HDD | 10 ГБ | 10 ГБ |
| OS | Linux, 32/64 бит | Linux, 64 бит |
Как видно, FreeSWITCH потребляет больше RAM. О причине этого мы писали ранее – это связано с архитектурой.
Функционал
С точки зрения базового набора функций, АТС идентичны. Голосовая почты, IVR, маршрутизация, intercom и другие опции доступны для обоих лагерей пользователей.
Рассмотрим преимущества, которые интересны для профессионального и более глубокого использования платформ. Начнем, пожалуй, с возможности FreeSWITCH создавать мульти – площадки. Фрисвич нативно (из коробки) умеет сегментировать площадки пользователей, разные домены и суб – домены. Это означает, что пользователи одной площадки не смогут дозвониться до пользователей другой по внутренним номерам. Другими словами, обеспечивается полнофункциональная сегрегация пользователей.
Так же, безусловным преимуществом FreeSWITCH стоит отметить возможность кластеризации (объединения нескольких серверов), где каждый хост в кластере будет выполнять свою определенную роль.
Итог
Подведем итоги. Мы составили таблицу с результатами, чтобы вам было проще ориентироваться:
| Функция | FreeSWITCH | Asterisk |
|---|---|---|
| Малое потребление ресурсов сервера, включая ресурсы процессора и оперативной памяти | ✕ | ✓ |
| Документация и поддержка: решение проблем, форму, гайды, сильное комьюнити проекта | ✕ | ✓ |
| Богатый базовый функционал: конференции, видеозвонки, IVR, голосовая почта и так далее | ✓ | ✓ |
| Возможность реализации функций мульти — площадок (поддержка отдельных телефонных доменов с полной сегрегацией пользователей) | ✓ | ✕ |
| Внутренние механизмы устойчивости к повышению нагрузки, связанной с повышением количества одновременных вызовов | ✓ | ✕ |
| Объединение серверов в кластер, с последующим разделением ролей | ✓ | ✕ |
Freeswitch: по пути наименьшего сопротивления
Сколько помню себя в кресле системного администратора (а общий стаж приближается уже годам к 15), столько вопросы офисной телефонии воспринимались мной строчкой из Californication калифорнийских же RHCP: hard core soft porn. Телефония всегда казалась параллельным измерением, в ее администрирование и настройку я старался не лезть. Точнее, вообще обходить все эти телефоновопросы по широкой дуге, скидывая все подобные задачи на «специально обученных людей».
Однако, как часто бывает, сколько веревочке не виться, а конец один… После трудоустройства в новой организации я стал «счастливым» администратором прекрасной связки из цифро-аналоговой АТС Ericsson и «маршрутизатора с интегрированными сервисами» Cisco 2911. Более сотни аналоговых телефонов, три десятка цифровых Ericsson’ов и два-три десятка IP-телефонов Cisco и Ericsson. Все это великолепие некогда было настроено теми самими спецами по hard core soft porn, и как оно работает, я и по сей день представляю лишь в общих чертах. Однако, как бы то ни было, что такое extension, как организовывается условная и безусловная переадресация, как устроен IVR, что такое DID и прочее, узнать мне все же пришлось. И я не был в восторге от обретенных знаний (да-да, не все полезное интересно и приятно). Лишь циска, после усвоения мною логики ее настройки, стала более или менее приятной железякой.
В какой-то момент пришло смирение, что телефония все же неотъемлемая часть хозяйства системного администратора.
И грянул гром
Организация, в которой я работаю, переезжает в другое здание. Разумеется, все аналоговое и цифровое хозяйство остается по месту вечной прописки. Цисковский VoIP в приготовлении 2911 обеспечивает 50 линий, да и ценник на телефонные аппараты циско совершенно негуманный. И то ли благодаря уже пришедшему смирению, то ли благодаря врожденной тяге к знанию, то ли благодаря сочетанию этих двух факторов я решил, что на новом месте телефонию я подниму сам.
Требования были простые: дешево, а лучше бесплатно, а, в идеале, чтобы нам доплачивали, обеспечить базовый функционал (прямые городские номера у сотрудников, IVR, переадресация, конференции, перевод вызова), от 150 линий и выше. Первое слово, пришедшее в голову, было «SIP», второе «Asterisk», третье «Гугл».
Был скачан и развернут AsteriskNOW. Ошалело потыкался в веб-интерфейсе. Оценил в который раз hardcornsoftporn’овскую логику телефонистов и снова отправился гуглить. И случайно натолкнулся на слово «FreeSWITCH». Новое слово, новые поисковые запросы. Хвалебные оды устойчивости, легкости настройки (всюду XML), нетребовательности к ресурсам, плюс работа «из коробки», плюс «у людей» без нареканий работает в виртуальном окружении с сотнями и даже тысячами линий без искажений голоса (хотя разработчики и не рекомендуют виртуальное окружение в связи с отсутствием доступа к CPU в реальном режиме времени). Ок. Пробуем.
Поднимаем виртуальную машину под рекомендованным Debian 8 x64, 1 ядро 2ГГц, 2 гига оперативки, 16 гиг диск. Выполняем установку в соответствии с инструкцией (тыц). Настраиваем софтфон (мне понравился 3CX’овский тыц).
Софтфон зарегистрировался. Тестовые звонки пошли. Ляпота. Ericsson Dialog 4422 тоже зарегистрировался, звонит, голос слышен в обе стороны. Ляпота. Аппарату Cisco 7945 была поставлена прививка прошивкой с поддержкой SIP, и, после относительно непродолжительных танцев с настройкой SCCP, аппарат так же зарегистрировался и звонки пошли без нареканий. Ляпота. FreeSWITCH в продакшн!
Хватит лирики
Оборудование коммутационной первого этажа:
- Коммутатор в собственности МТС, на котором нам выделена группа портов. С него мы забираем инет и будем забирать SIP-телефонию. Трафик тегирован vlan4
- Коммутатор наш, у него выделена группа портов, которым назначены vlan. В эти порты приходит инет от МТС (порт 2 — vlan2), инет от Miralogic (порт 3 — vlan3), SIP от МТС (порт 4 — vlan4). Так же выделен порт 1 под trunk, кабель уходит в серверную четвертого этажа.
- Коммутатор, принимающий trunk с первого этажа. Порт 1 — trunk входящий (с первого этажа. Порт 2 — trunk исходящий (к серверу).
- Сервер, на нем VMware vSphere 6. На этом хосте гостевая машина с Mikrotik RouterOS, выполняющая роль шлюза и файервола. Так же на этом хосте гостевая машина с FreeSWITCH. На хосте настроен vSwitch и добавлены порты с соответствующим тегированием трафика: vlan2, vlan3, vlan4.
Добрый день! Реквизиты SIP транка Порт на коммутаторе 9 Номер 5555555 ip-адрес: 172.16.160.154 маска: 255.255.255.252 шлюз: 172.16.160.153 соединение без регистрации, точка - точка sip-сервер: 172.16.253.3, port: 5060 UDP media-сервер: 172.16.253.4, port: 10000 - 30000 UDP кодеки: G711a/u протокол передачи DTMF: rfc-2833
Машина с FreeSWITCH имеет один сетевой интерфейс, сетевые настройки:
IP: 172.18.253.1 Netmask: 255.255.0.0 GW: 172.18.1.254
Полетели, Mikrotik
Гасим гостевую машину с Mikrotik’ом и добавляем еще один сетевой интерфейс, назначаем ему vlan4. Включаем гостевую машину, Mikrotik загружается, видим, что новый интерфейс появился.
Настройка интерфейса в Mikrotik
Выводим список имеющихся интерфейсов:
/interface ethernet print
Видим, что свежедобавленный интерфейс это интерфейс с именем ether6
Переименовываем его в if-sip:
/interface ethernet set [ find default-name=ether6 ] name=if-sip
Настраиваем адрес:
/ip address add address=172.16.160.154/30 comment=mts-sip interface=if-sip network=172.16.160.152
Настраиваем маршрутизацию в Mikrotik
Настраиваем mangle (чтобы трафик маркировался как мы захотим, и чтобы трафик ходил только через нужный нам интерфейс на основе этих меток):
/ip firewall mangle add action=mark-routing chain=prerouting comment=»mark sip traffic» new-routing-mark=sip src-address=172.18.253.1
Настраиваем маршрутизацию:
/ip route add comment=mts-sip distance=1 dst-address=172.16.0.0/16 gateway=172.16.160.153 routing-mark=sip
Настраиваем файервол и NAT в Mikrotik
Настраиваем отсутствие фильтрации файерволом (на этом этапе я не боюсь злых хакеров из SIP-транка с PAN-адресов МТС):
/ip firewall filter
add chain=forward comment=»allow any to mts-sip» dst-address=172.16.0.0/16 in-interface=if-local out-interface=if-sip src-address=172.18.253.1
add chain=forward comment=»allow any from mts-sip» dst-address=172.18.253.1 in-interface=if-sip out-interface=if-local src-address=172.16.0.0/16
Убедитесь, что эти два разрешающих правила расположены в самом верху списка правил. Это снизит нагрузку на файервол.
Для себя я решил, что мой SIP-шлюз будет находиться в локальной сети, чтобы:
- Не иметь трахомудии с нежеланием отдельных телефонных аппаратов работать со шлюзом, находящимся за NAT.
- Внутренний трафик в десятки раз превышает исходящий и входящий вместе взятые,
ни к чему его гонять через Mikrotik. - И вообще, настроить один раз шлюз будет дальновидней, чем в дальнейшем воевать с множеством телефонных аппаратов (сотни) с разными прошивками, а то и разных производителей.
Пингуем шлюз (172.16.160.153), пингуем SIP-шлюз (172.16.253.3), пингуем Media-шлюз (172.16.253.4). Пинги ходят. Прекрасно.
На этом легкая и понятная часть закончилась.
Полетели, FreeSWITCH
- Указать, какие IP-адреса и где использовать FreeSWITCH’у для установления соединений.
- Указать код региона и абонентский номер, выделенный оператором.
- Создать extension — абонентский номер. Из коробки FreeSWITCH имеет преднастроенные 30 абонентских номеров. Мы создадим еще один.
- Создать шлюз. Это не то, что вы подумали. Шлюз — это именованный набор настроек, необходимый для соединения с предоставленным SIP-транком. Мы же этого делать не будем,
мы изменим настройки дефолтового шлюза - Настроить dialplan. В транслитерации ужасно звучащее слово. В правильном произношении звучащее еще хуже. Мне не нравится. В устоявшемся написании и произношении «диалплан». Означает набор сценариев. Из этого набора в зависимости от сработавшего условия FreeSWITCH выполняет то или иное действие. Диалпланы создаются для исходящих и входящих вызовов.
- Настроить ACL для сетей и доменов, откуда разрешены звонки.
Disclaimer: предполагается, что FreeSWITCH установлен в папку по умолчанию: /etc/freeswitch
Самое первое, что делаем, меняем дефолтный пароль. Но опять не потому, почему вы подумали. Хотя и поэтому тоже. Пароль проверяется диалпланом, и если пароль совпадает с дефолтным, то перед соединением вставляется пауза 10 сек. Поэтому сначала меняем пароль.
Файл: /etc/freeswitch/vars.xml
Как вариант, если вам так уж нравится пароль «1234», то можете убрать паузу из диалплана, просто отредактировав соответствующий блок.
Файл: /etc/freeswitch/dialplan/default.xml
/vars.xml and change default password."/>
Настройки IP-адресов
Файл: /etc/freeswitch/sip_profiles/external.xml
Региональные настройки
Файл: /etc/freeswitch/vars.xml
Реквизиты от оператора
Файл: /etc/freeswitch/vars.xml
Ремарка самым внимательным
Вы, наверное, только что заметили, что значение параметра default_provider_register немного не вяжется с теми настройками, что выдал оператор (соединение без регистрации, точка — точка). Однако, в случае с МТС, регистрация все же понадобилась, без нее не проходили вызовы извне внутрь. При том, что без регистрации вполне можно было звонить изнутри наружу. Эта особенность выпила мне немало крови, прежде, чем я врубился и отловил ее.
Характерным признаком того, что требуется авторизация, является ошибка 407 Proxy Authentication Required.
Отлавливается эта ошибка включением SIP-трассировки:
sofia global siptrace on
Выключается трассировка, соответственно:
sofia global siptrace off
Добавляем абонентский номер (extension)
Создаем xml-файл с любым именем в папке /etc/freeswitch/directory/default. Я создал файл с именем, совпадающим с номером.
Файл: /etc/freeswitch/directory/default/4545.xml
Создаем шлюз
Скорее всего, после того, как вы выполнили настройки IP-адресов и заполнили поля в vars.xml реквизитами, выданными оператором, регистрация на шлюзе оператора состоится без проблем.
У меня же «без проблем» не получилось, поскольку МТС реквизиты выслал, а абонентский номер (extension) 3435555555 не завел. Прежде, чем я заподозрил оператора в подставе, я успел перебрать миллион вариантов настройки шлюза. Однако в итоге оператор у себя на SIP-шлюзе абонентский номер создал, и все завелось если и не с дефолтными настройками, то с близкими. Привожу листинг файла mts.xml, который был получен путем переименования файла external.xml.
Файл: /etc/freeswitch/directory/default/mts.xml
Теперь добавляем разрешения на домен и на сети, чтобы наш FreeSWITCH не блокировал попытки установить соединения из домена и из сетей оператора. И да, на данном этапе я так же просто разрешаю все. Моя задача — позвонить уже наконец за пределы организации.
Файл: /etc/freeswitch/autoload_configs/acl.conf.xml
Так делать нельзя
- ACL предназначен только для доменов и сетей провайдеров. Список domains должен быть по умолчанию deny. Использования переменной domain следует избегать, вместо нее следует использовать cidr и IP-адрес шлюза оператора с маской /32. Невыполнение этих базовых правил приводит к неожиданным последствиям в виде попыток заставить шлюз провайдера авторизоваться по пользователю и паролю при входящих звонках (Digest-авторизация), к попаданию внутренних абонентских номеров в неверный контекст (например, external, как следствие — переход к авторизации по ACL, вместо Digest) и нарушению работы диалпланов, etc.
- Это не файервол. Фильтрации трафика не происходит. Это списки доступа к сервисам FreeSWITCH’а.
Поздравляю! Можно посмотреть, что у нас (не) получилось.
Запускаем консоль FreeSWITCH’а:
fs_cli -rRS
Перезагружаем xml’ки:
reloadxml или жмакаем F6.
Перезагружаем ACL:
reloadacl
Перезагружаем модуль Sofia, отвечающий за телефонные соединения:
reload mod_sofia
Смотрим, что у нас с соединениями со шлюзами.
Славно. Регистрация на шлюзе оператора прошла успешно.
Смотрим подробности:
sofia status gateway 172.16.253.3
freeswitch@phone> sofia status gateway 172.16.253.3
==============================================================
Name 172.16.253.3
Profile external
Scheme Digest
Realm 172.16.253.3
Username 3432788299
Password yes
From
Contact
Exten 73435555555
To sip:3435555555@172.16.253.3
Proxy sip:172.16.253.3
Context public
Expires 600
Freq 600
Ping 0
PingFreq 0
PingTime 0.00
PingState 0/0/0
State REGED
Status UP
Uptime 3932s
CallsIN 1
CallsOUT 1
FailedCallsIN 0
FailedCallsOUT 0
==============================================================
Дело встало за малым.
Диалпланы
Для звонков наружу создаем файл mts.xml с нуля, все остальные файлы в папке /etc/freeswitch/dialplan/default можно переименовать со сменой расширения/перенести в другое место/грохнуть.
Файл: /etc/freeswitch/dialplan/default/mts.xml
"/> "/> /8$$1"/> "/> "/> /8$1"/> "/> "/> /810$1"/>
Для звонков снаружи внутрь создаем файл mts_inbound.xml в папке /etc/freeswitch/dialplan/public. Остальное в этой папке по аналогии выше можно переименовать в *.bck или в *.noload
Файл: /etc/freeswitch/dialplan/public/mts_inbound.xml
Ну что. Скрестили пальцы, проверяем.
Снова запускаем консоль FreeSWITCH’а:
fs_cli -rRS
Перезагружаем xml’ки:
reloadxml или жмакаем F6
Перезагружаем модуль dialplan, отвечающий за телефонные соединения:
reload mod_dialplan_xml
Пробуем дозвон изнутри наружу. Пробуем дозвон снаружи внутрь. Радостно повторяем тестовое «раз-раз, два-два», убеждаемся, что звук ходит в обе стороны. Проверяем прохождение сигналов отбоя в обе стороны.
Радуемся, что приобщились к soft porn.
P.S.: Я сознательно избегал расшифровки значения тех или иных правок. Отчасти, потому что имена параметров и системных переменных очень уж хорошо говорят за себя. Отчасти, чтобы не превращать турбо-запуск телефонии в нудятину с оправданиями каждого пука.
P.P.S.: Написание сего текста было продиктовано ужасом от того, что я так и не смог найти внятный мануал слитным текстом, где решалась бы такая же задача: максимально просто, максимально быстро поднять телефонию с авторизацией точка-точка. Обилие документации почему-то не сопровождается обилием обсуждений и живых примеров. Или просто так получилось, что я допетрил до всего быстрее, чем нагуглил «тот самый пример», который бы сработал у меня. Так или иначе, пусть это будет шпаргалкой для меня и коллег на будущее.
- Системное администрирование
- Asterisk
- Разработка систем связи
FreeSWITCH
FreeSWITCH — открытая телефонная платформа, распространяемая в исходных кодах, созданная для удовлетворения потребности в управляемых голосом или текстом систем, масштабируемых от софтфонa до софтсвичa. FreeSWITCH может быть использован в качестве коммутатора, АТС, медиа шлюза или медиа сервера для приложений IVR, использующих простые или XML скрипты для управления алгоритмом обработки звонка. FreeSWITCH поддерживает разные протоколы, такие как SIP, H.323, IAX2 и Google Talk, что позволяет взаимодействовать c sipX, OpenPBX, Bayonne, YATE, или Asterisk.
FreeSWITCH поддерживает много продвинутых возможностей SIP, таких как присутствие/BLF/SLA, TCP TLS и sRTP. Он может использоваться как прозрачный прокси-сервер с проксированием медиапотоков или без такового, работать с (англ.) T.38 (проксирование и преобразование T.38 в T.30 и обратно) и другие протоколы.
FreeSWITCH поддерживает узко- и широко- полосные кодеки, что делает его идеальным мостом старых устройств в будущее. Голосовые каналы и конференции могут работать на частотах 8, 16, 32 и 48 kHz и позволяют объединять каналы с разными частотами.
Платформа
FreeSWITCH работает на Windows, Mac OS X, BSD, Solaris и Linux на 32-х и 64-х битных платформах.
Разработчики FreeSWITCH принимают участие в других open source проектах и осуществляют свой вклад в другие проекты, такие как openSER, sipX, Asterisk и CallWeaver.
Ссылки
- Свободное программное обеспечение для VoIP
Wikimedia Foundation . 2010 .
Freeswitch
Freeswitch — это очень гибкий и навороченный сервер IP телефонии, основанный на SIP сигнализации. Данная статья описывает предварительную настройку сервера Freeswitch, для получения более подробной документации рекомендуется обратиться к первоисточнику — официальной документации проекта Freeswitch.
Всё описанное ниже протестировано на Sisyphus конца марта 2016 года
Установка
apt-get install freeswitch-daemon freeswitch-sounds-ru-ru-elena-32000 freeswitch-sounds-music-32000 freeswitch-lang-ru
Настройка демонстрационного профиля vanilla
Основной конфигурационный каталог freeswitch расположен в /etc/freeswitch По умолчанию, сразу после установки, вам доступна демонастрационная конфигурация vanilla, с массой включенных функций, которые могут не понадобится в реальной жизни.
Для замены конфигурации по умолчанию — удалите содержимое /etc/freeswitch и скопируйте нужную вам из /usr/share/doc/freeswitch-daemon-1.6.6/conf/
Смена пароля по умолчанию
Переменные с настройками по умолчанию в профиле vanilla находятся в файле /etc/freeswitch/vars.xml: Первым делом поменяйте значение переменной
Это очень важно — в интернете существует сеть ботов, которые разыскивают серверы IP телефонии со слабыми паролями по умолчанию и используют аккаунты из них для осуществления звонков.
Вы можете сгенерировать сильный пароль командой
pwgen 12
Настройка внешнего аккаунта SIP (на примере sipnet)
Для звонков в традиционную сеть телефонии необходимо будет приобрести какой-то аккаунт SIP телефонии, позволяющий на возмездной основе возможность осуществления звонков. Для примера можно воспользоваться сетью Sipnet, у которой довольно неплохие условия выхода в мир для частных лиц.
После регистрации в сети sipnet у вас появится номер SIP аккаунта и пароль. Их необходимо будет вписать в файле vars.xml в переменные, начинающиеся с default_provider:
Для sipnet данные переменные необходимо заполнить следующим образом:
рецепты fs_cli
клиентские устройства за NAT
добавить в /etc/freeswitch/sip_profiles/internal.xml
freeswitch увидя такой флаг будет включать вызов для абонента, в контакте которого есть серый адрес — через IP, с которого этот абонент регистрируется. При включении этой опции не нужен SIP ALG, его рекомендуется отключать, оставляя только nf_conntrack_sip на шлюзах с NAT’ом.
осуществление звонков из fs_cli
Для создания вызова из fs_cli нужно использовать команду originate. Пример:
originate sofia/gateway/rostelecom/88002008686 88002008686 XML default 1001 1001
Просто проверить идёт абоненту звонок или нет:
originate user/530 &park()