Home

items tagged with FreeSwitch

Building freeswitch on Opensolaris Nevada
Written By: Michal Bielicki
Section:

Category:

2008-07-28 10:51:37

Sponsored by: 

OpenSolaris Nevada

This is the distribution from the opensolaris.org guys, do not mix that up with os200805 which is the new OpenSolaris based distro from SUN.

  • Select your development user. I will assume for the time being that the user is called freeswitch
  • Create the target directory for freeswitch
mkdir /opt/freeswitch
chown freeswitch /opt/freeswitch
  • Give your build and development user software installation rights
usermod -P "Software Installation" freeswitch
  • log out and log back in as the freeswitch user (so that the new permissions become active)
  • download and unpack the new jds-cbe beta package:
/usr/sfw/bin/wget http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-x86.tar.bz2
gtar xvfz desktop-cbe-1.7.0-rc1-x86.tar.bz2"

 

Install JDS-CBE 

 

cd desktop-cbe-1.7.0-rc1
./cbe-install
  • leave everything as default. Select the SunStudio compiler as your default compiler.
  • Download the spec-files-extra repository into a subdirectory called SFE
svn co https://pkgbuild.svn.sourceforge.net/svnroot/pkgbuild/spec-files-extra/trunk SFE
  •  Load the jds-cbe environment 
. /opt/dtbld/bin/env.sh
  • Compile and install SFEunixodbc
cd SFE
pkgtool --download build SFEunixodbc.spec
  • Download freeswitch trunk
svn co http://svn.freeswitch.org/svn/freeswitch/trunk fstrunk
  • Prepare the freeswitch sources
cd fstrunk
./bootstrap.sh
  • and edit the modules.conf file to select which modules you would like to have installed
vim modules.conf
  • Configure freeswitch sources for 64bit and let the c compiler apply some optimization
CFLAGS="-m64 -fast" CXXFLAGS="-m64 -fast" LDFLAGS="-m64" ./configure --prefix=/opt/freeswitch \

--enable-core-odbc-support --enable-core-libedit-support \

--enable-64 --with-openssl=/usr/sfw

 

  •  or for 32bit
CFLAGS="-m32 -fast" CXXYFLAGS="-m32 -fast" LDFLAGS="-m32" ./configure --prefix=/opt/freeswitch \

--enable-core-odbc-support --enable-core-libedit-support \

--with-openssl=/usr/sfw 
  • Drink a cup of coffee
  • run make :)
gmake
  • Install freeswitch into its target directory
gmake install

 

You are done :)

 



Instalacja i konfiguracja kart Sangomy w Freeswitchu
Written By: Lukasz Kutkowski
Section:

Category:

2008-04-14 07:10:21

Sponsored by:

W celu umożliwienia użytkownikom FreeSwitcha korzystania z kart TDM stworzony został moduł OpenZAP.

Środowisko testowe:

* Wanpipe 3.2.5 (wersja stabilna)
* Centos 5.1 - kernel 2.6.18-53.1.14
* Freeswitch svn rev - XXXX (RC4)
* Sanogma A101D

 

Kolejne kroki w celu instalacji karty A101D w Freeswitchu

1. Instalacja karty sangoma
2. Instalacja Freeswitcha i modulu OpenZAP
3. Konfiguracja karty
4. Konfiguracja modułu OpenZAP w Freeswitchu
5. Konfiguracja parametrów wychodzącego połączenia (BC, TON itp)
6. Konfiguracja testowego Dial Planu
7. Diagnozowanie problemów
 

1. Instalacja karty Sangoma

W czasie pisania tego arytkułu Freeswitch świadczył wsparcie tylko dla kart: A10X, A200 i A400.

Wymagane pakiety

yum install ncurses-devel libtermcap-devel patch perl byacc flex bison kernel-devel 

Jeśli wykonany został update kernela naleźy pamiętać o restarcie komputera. Dobrym nawykiem jest równieź sprawdzenie czy pakiety kernel i kernel-devel odnoszą sie do tej samej wersji tzn.

[root@blackbox ~]# uname -r
2.6.18-53.1.14.el5
[root@blackbox ~]# rpm -qa |grep kernel
kernel-2.6.18-53.el5
kernel-2.6.18-53.1.14.el5
kernel-headers-2.6.18-53.1.14.el5
kernel-devel-2.6.18-53.1.14.el5
 

Sprwdzamy zgodność dla wesji krenla którą wskazuje "uname -r"

Następnie naleźy ściągnąć sterowniki ze strony, rozpakować je i rozpocząć instlacje

cd /usr/src
wget ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-3.2.5.tgz
tar zxvf wanpipe-3.2.5.tgz
cd wanpipe-3.2.5
./Setup install
 

W trakcie konfiguracji naleźy wybrać następujące opcje:

Proceed to build WANPIPE kernel modules ? [y] (y/n) y

----------------------------------------------------------

WANPIPE v3.2.5 Installation Script

Copyright (c) 1995-2008, Sangoma Technologies Inc.

----------------------------------------------------------

Please Select Compilation Mode

1. WAN Protocols Support

Protocols: Frame Relay, CHDLC, PPP, ATM, X25, ADSL, TDM API

Default for: Wan Routing, Data & Voice API devel.

2. TDM Voice (Zaptel) Support

Protocols: TDMV (Zaptel), TDM API on AFT adatpers.

Default for: Asterisk & CallWeaver

3. TDM Voice (Zaptel) + WAN Protocol Support

4. SMG (SS7) (Default for Asterisk/CallWeaver SMG/SS7 install)

5. SMG (SS7) + TDM Voice (Zaptel)

Default for: Asterisk/CallWeaver SS7 + PRI

6. TDM API

Protocols: TDM API on AFT adapters:

Default for: FreeSwitch, Yate, Sunrise

Custom voice development

7. Custom Compilation Mode

Specify protocols to be added into the WANPIPE

kernel drivers.

Please select (1,2,3,4,5,6 or 7) [Default: 1]: 6

 

2. Instalacja Freeswitcha i modulu OpenZAP

W tym punkcie zostaną skompilowane wszystkie elementy niezbędne dla parawdiłowego działania karty Sangoma pod kotrola oprogramowania jakim jest Freeswitch.

Wymagane pakiety

yum install subversion autoconf automake libtool gcc-c++ ncurses-devel
 

Ściągnięcie z repozytorium najnowszych źródeł Freeswitch'a

cd /usr/src
svn checkout http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch
 

Przejść do katalgu z kodem żródłowym Freeswitch'a i wykonać skrypty niezbędne dla prawidłowej kompilacji

cd freeswitch
./bootstrap.sh
./configure
 

Jeśli powyźsze skrypty wykonały się bez błędów to naleźy dodać moduł mod_openzap do gupy modułów budowanych podczas kompilacji

vi modules.conf
 

i zamienić linie

#../../libs/openzap/mod_openzap
 

na

../../libs/openzap/mod_openzap
 

Ostatnim krokiem jest wywołanie komendy mak czyli:

make all install
make samples
make sounds-install
make moh-install
 

3. Konfiguracja karty

W celu prawidłowej konfiguracji porów w karcie naleźy wywołać polecenie:

/usr/sbin/wancfg_tdmapi
 

Uwaga!!! W przypadku pytania "Select signalling mode for port 1 on 10X" naleźy wybrać "CCS". Pozostałe odpowiedzi powinny być zgodne z parametrami podłączonego łącza.

4. Konfiguracja modułu OpenZAP w Freeswitchu

Poniźsza przykładowa konfiguracja jest w oparciu o kartę A101D z jednym portem E1.

mkdir /etc/openzap

cd /etc/openzap

 

vi openzap.conf


[span wanpipe]
name => OpenZAP
number => 1
trunk_type => E1
b-channel => 1:1-15
d-channel => 1:16
b-channel => 1:17-31

 

vi wanpipe.conf

 

 

[defaults]
codec_ms => 20
wink_ms => 150
flash_ms => 750

 

vi /usr/local/freeswitch/conf/autoload_configs/openzap.conf.xml

 

<configuration name="openzap.conf" description="OpenZAP Configuration">
<settings>
<param name="debug" value="0"/>
</settings>
<pri_spans>
<span id="1">
<param name="mode" value="user"/>
<param name="dialect" value="euro"/>
<param name="dialplan" value="XML"/>
<param name="context" value="default"/>
</span>
</pri_spans>
</configuration>
 

chmod 644 /usr/local/freeswitch/conf/autoload_configs/openzap.conf.xml

vi /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml i zamienić linie

<!-- <load module="mod_openzap"/> -->

na

<load module="mod_openzap"/>

 

5. Konfiguracja parametrów wychodzącego połączenia (BC, TON itp)

W tej chwili nie ma moźliwości konfiguracji parametrów dla połączeń wychodzących z poziomu plików konfigurcyjnych. W celu zmiany któregoś z poniższych parametrów naleźy wyedytować plik zap_isdn.c, doknać zmian i dokonać kompilacji całego modułu mod_openzap.

 

Uwaga!!! Dokonane zmiany są globalne co oznacza że będą widoczne dla wszystkich skonfigurowanych spanów.

 

Bearer Capability

Coding Standard = ITU-T
Information Transfer Capability = Speech
Transfer Mode = Circuit
Information Transfer Rate = 64k
 

Calling Number

Type of number = National number
Numbering Plan = ISDN/telephony numbering plan (E.164)
Presentation indicator = Presenation Allowed
Screening Indicator = User-provided, not screened
 

Called Number

Type of number = National number
Numbering Plan = ISDN/telephony numbering plan (E.164)
 

6. Konfiguracja testowego Dial Planu

Połączenie Telco -> Freswitch (OpenZAP)

Dialplan dla testowego połączenia przychodzącego od operatora do FS jest domyślnie gotowy. Wystaczy wybrać numer 5000 aby cieszyć sie połączeniem z przykładowym IVRem.

Uwaga!!! Jeśli nie słychać zapowiedzi naleźy sprawdzić czy w punkcie 2 zostały wykonane komendy:

make sounds-install
make moh-install
 

Połączenie Freeswitch (OpenZAP) -> Telco

Dialplan dla wykonywania połączeń wychodzących z FS do operatora musi zostać stworzony. Przykładowy dialplan dla połączeń wychodzących na numery 123456XX został przedstawiony poniżej.

 

<extension name="openzap_test">
<condition field="destination_number" expression="^(123456..)$">
<action application="answer"/>
<action application="bridge" data="OpenZAP/1//$1"/>
</condition>
</extension>
 

Powyźszy dialplan pozwoli na wykonanie połączenia wychodzącego - 1 span, pierwszy wolny kanał B z grupy dostępnych kanałów.

Dozwolone konfiguracje:

 

OpenZAP/<SPAN>/<CHANNEL>/<DESTINATION_NUMBER>
 

<SPAN> - numer spanu na który naleźy wysłać połączenie (brak wartości oznacza wybierz dowolny span na którym są wolne szczeliny).

<CHANNEL> - numer kanału na który naleźy wysłać połączenie lub zostawić pustą wartość jeśli ma zostać wybrany dowolny kanał z puli dostępnych (wolnych) kanałów.

<DESTINATION_NUMBER> - numer abonenta docelowego.

 

7. Diagnozowanie problemów

Lista komend przydatnych w diagnozowaniu stanu i problemów związanych z modułem OpenZAP.

 

 

 

 

 



Konfiguracja Polycom 320/330
Written By: Lukasz Kutkowski
Section:

Category:

2008-04-29 08:55:48

Sponsored by:

Konfigurację telefonu Polycom można podzielić na dwa etapy:

1. Konfiguracja parametrów siecowych np. adres IP, maska sieci itp

2. Konfiguracja parametrów SIP telefonu np. nazwa użytkownika, hasło.

 

1. Konfiguracja parametrów siecowych

 

1.1. Dostęp do konfiguratora parametrów sieciowych

 

Aby móc wykonać konfiguracje parametrów sieciowych telefonu naleźy najpierw znależć się w odpowiednim menu. Dostęp do menu można uzyskać na 2 sposoby:

 

* podczast startu telefonu
* podczas normalnej pracy telefonu

 

Dostęp podczas startu telefonu 

 

Podczas gdy telefon  jest włączany lub rebootowany na ekranie pojawi się przycisk Setup. Po wciśnięciu tego przycisku i wprowadzeniu hasła (domyślnie 456) znajdziemy sie w menu konfigratora. 

 

Dostęp podczas normalnej pracy telefonu 

 

Nacisnąć następującą sekwencje klawiszy:

 

Menu -> 3. Settings -> 2. Advanced
 

a następnie wprowadzić hasło administratora (domyślnie 456).

 

Następnie wybrać

 

1. Admin Settings -> Network Configuration

 

1.2. Konfiguracja parametrów sieciowych 

 

W celu statycznej konfiguracji parametrów sieciowych telefonu wymagane są następujące ustawienia:

 

DHCPCLient:
Disabled
 
Phone IP Addr:
10.2.6.6
 
SubnetMask:
255.255.0.0
 
IP Gateway:
10.2.0.1

 

Następnie ustawienia należy zapisać. Telefon po restarcie powinien być dostępny pod skonfigurowanym adresem IP. 

 

2. Konfiguracja parametrów SIP

 

Najłatwiejszym i najwygodniejszym sposobem konfiguracji parametrów siecowych jest konfiguracja poprzez stronę WWW. W tym celu należy wpisać w przeglądarce adres IP telefonu (w naszym przykładzie 10.2.6.6). 

 

Domyślny login: Polycom
Domyślne hasło: 456 

 

 Po zalgowaniu kliknąć na zakładke "Lines".

 

Wprowadzić dane:

 

 Line1

Identification

Display Name: 100
Address: 100
Auth User ID: 100
Auth Password: 1234

 

Server 1

Address: 10.2.6.5
Transport: UDPonly
Expires:60
Register:1 
 

Wypełnienie tych pól powinno wystarczyć aby móc korzystać z telefonu z większością opensourcowych rozwiązań korzystających z SIP.

 

 

Bardzo często niezbędnym moźe okazać sie zmiana koeljności używanych kodeków. W celu zmiany preferowanych kodeków naleźy przejść do zakładki

General -> Audio Proccessing 

Poniżej przykład konfiguracji gdzie jedynym używanym kodekiem bedzię kodek G.711A.

  

Zobacz również strony z konfiguracja polycoma pod zastosowanie z:

* Freeswitch
* OpenSER
* Patton
* Callweaver 
* Asteriskim 

 



Performance of 8E1s Sangoma Netborder Express Gateway
Written By: Krzysztof Konopka
Section:

Category:

2008-09-22 12:21:53

Performance of 8E1s Sangoma Netborder Express Gateway

Sponsored by:

 

Required Level: novice, accomplished, adept, master

Abstract:

Sangoma's NetBorder Express is a complete SIP-compliant VoIP to TDM Media Gateway solution that is user friendly and works under Windows operating system . Product consist of Sangoma A10(1/2/4/8) cards (max  32xE1) and dedicated software+drivers.  In the article we present results of performance test of this product (8xE1 setup) with FreeSWITCH as a SIP terminating PBX. Tests took place in VoiceWorks laboratory. 

Goals:

Test CPU and RAM memory usage in two scenarios :

Purpose of this test is to measure performance of the latest Sangoma's product under Windows platform.

Lab Setup :

Fig. 1 - Netboard test setup schema 1 (centralized)
 
 
 
Fig. 2 - Netboard test setup schema  (distributed)

Methodology:

Call scenarios for both setups are the same. We start with empty system and add a new call every 3 seconds untill all chanells are occupied. Then during the period of 5 minutes we drop a random call (every 375 ms) and than replace it with the a new one. Below there is the description of a single call flow:

  1. G.711 SIP call is originated from FreeSWITCH to Sangoma's Netborder Express,
  2. Netbord forwards the call to Patton,
  3. Patton loops the call back to Netboard,
  4. Netbord forwards the call back to FreeSWITCH,
  5. FreeSWITCH answers the call and exectues "Echo" application.
Basically every call occupies 2 time slots.

During the tests we monitor CPU utilization (Total and for every Core), memory usage and HD activity. All the parameters on Windows machine are monitored by build in Performance Monitor. To achieve maximum performance  we are disabling all debugs on the Netboard machine.

Patton boxes are also used to check if Sangoma's new products is fully compliant with Euro-ISDN standards.  

Configuration:

 FreeSWITCH config files:

  • default.xml (dialplan)
  • sofia.conf.xml
  • switch.conf.xml

 Netboard Express Gateway config files:

  • routing-rules.xml

 

Results:

 

 
Fig. 3 - CPU Usage  (centralized setup) 
 
 
 
Fig. 4 - CPU Usage  (distributed setup) 
 
 
 System Setup
 RAM Used - Idle state (MB)
 RAM Used - Full load state (MB)
 Centralized 79
183
 Distributed61
 100
 Fig. 5 - Memory Usage  (distributed setup)
 

 

Conclusions:

Tests showed that there is a lot of spare resources for increasing capacity of the system or building complex logic when FreeSWITCH is running under Windows even on everyday desktop computer. Both setups are able to easily handle 8E1s and uses less than 1/4 of the CPU. Simple extrapolation confirms that distributed setup could handle at least 32xE1 on a single machine. CPU load is evenly distributed between cores which guarantees optimal resources usage. 

This lab setup also hits at solution for all Open-Source integrators that are faced with obstacles like Windows environment or strict ISDN compliance requirements for their installs.

Sangoma's Netborder Express comes with certification from huge number of vendors opening doors to every possible tender. When coupled with FreeSwitch, the ultimate Open-Source telephony integration tool, running along on the same Windows machine one gets an unbeatable combo in the market segment previously reserved only for selected players.





Polycom 320/330 and Freeswitch installation
Written By: Lukasz Kutkowski
Section:

Category:

2008-01-31 16:13:29
Sponsored by
 
Prerequisites:
  • OS: Centos 5.1
  • Freeswitch
    • svn version:
    • IP addres: 10.2.6.5
  • Polycom:
    • Firmware: 2.2.0
    • Bootrom: 4.0
Step 1. Polycom 330 configuration
Step 2. Freeswitch installation
Step 3. Freeswitch configuration
 

Step 1. Polycom 320/330 configuration

See article "Polycom 320/330 configuration guide" (only polish for now)

Step 2. Freeswitch installationFreeswitch prerequirements packages

yum install subversion autoconf automake libtool gcc-c++ ncurses-devel

Freeswitch source code download 

cd /usr/src
svn checkout http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch
 

Freeswitch compilation and installation

cd freeswitch
./bootstrap.sh
./configure
make all install
make samples 
 
Step 3. Freeswitch configuration
 

Create accounts for sip endpoints

<include>
<user id="100">
<params>
<param name="password" value="1234"/>
</params>
</user>
<user id="101">
<params>
<param name="password" value="1234"/>
</params>
</user>
</include>

You will have to create registration.xml file (every user/phone account could be in separate xml file) in ........ directory.

Create dial plan for internal calls

vi /usr/local/freeswitch/conf/dialplan/default.xml

<extension name="internal">
<condition field="destination_number" expression="^10.$">
<action application="bridge" data="sofia/default/${destination_number}%10.2.6.5"/>
</condition>
</extension>





There are 6 items tagged with FreeSwitch. You can view all our tags in the Tag Cloud

<< Start < Previous 1 2 Next > End >>
Page 1 Of 2
 
English (Angielski)