Difference between revisions of "Bering-uClibc 4.x - User Guide - Advanced Topics - Setting Up a VOIP Server"

From bering-uClibc
Jump to: navigation, search
(Added link to location of Asterisk Alpha-Test Source)
(Checked and enhanced Yate content for Bering-uClibc 4.x)
Line 10: Line 10:
  
 
==Yate==
 
==Yate==
'''This material copied directly from http://leaf.sourceforge.net/doc/bucu-voip.html - needs to be checked/updated for Bering-uClibc 4.x!'''<br>[[User:Davidmbrooke|Davidmbrooke]] 20:46, 16 November 2010 (UTC)
 
  
 
===Introduction===
 
===Introduction===
Line 16: Line 15:
  
 
===Requirements===
 
===Requirements===
To install Yate on Bering-uClibc based system the following packages are required:
+
To install Yate on a Bering-uClibc based system the following Packages are required:
 +
* <code class="filename">yate.lrp</code>
 +
* <code class="filename">libcxx.lrp</code>
 +
* <code class="filename">libm.lrp</code>
 +
* <code class="filename">lpthread.lrp</code>
  
{| class="simplelist" summary="Simple list"
+
===Yate Basics===
| yate.lrp
+
====Startup and Shutdown====
|-
+
The Yate processes are stopped and started via init script <code class="filename">/etc/init.d/yate</code>. This is executed automatically at boot time, or the Yate processes can be started manually with the following command:
| libcxx.lrp
+
svi yate start
|-
+
| libm.lrp
+
|-
+
| lpthread.lrp
+
|}
+
  
===Configuration===
+
====Logging====
To allow SIP clients to register set ''<code>registrar=yes</code>'' in <code class="filename">ysipchan.conf</code>. You have to set the username and passwords for those clients in <code class="filename">regfile.conf</code> like this:
+
Log output is sent to <code class="filename">/var/log/yate.log</code>
 +
By default the logging is fairly minimal.
 +
Extra log output can be configured by adjusting the <tt>[debug]</tt> settings in <code class="filename">/etc/yate/yate.conf</code> or by using the Remote Manager.
  
  [someusername]
+
====Test Numbers====
  password=something
+
Yate comes pre-configured with some test numbers, which are specified at the end of <code class="filename">/etc/yate/regexroute.conf</code>:
 +
  ; The following are for testing purposes                                       
 +
  ^99991001$=tone/dial                                                           
 +
^99991002$=tone/busy                                                           
 +
^99991003$=tone/ring                                                           
 +
^99991004$=tone/specdial                                                       
 +
^99991005$=tone/congestion                                                     
 +
^99991006$=tone/outoforder                                                     
 +
^99991007$=tone/milliwatt
 +
For example, after dialling <tt>99991003@192.168.1.254</tt> (assuming that is the IPv4 address of your Yate server) you should hear a ring tone.
  
 +
===Configuration Recipes===
 +
Yate has a number of configuration files in directory <code class="filename">/etc/yate/</code> and listed in the Yate section of the LEAF configuration menu.
 +
 +
====SIP Client Registration====
 +
To allow SIP clients to register edit file <code class="filename">ysipchan.conf</code> and un-comment the <tt>registrar</tt> entry.
 +
; registrar: bool: Allow the SIP module to receive registration requests       
 +
registrar=enable
 +
 +
You have to set the username and passwords for those clients in <code class="filename">regfile.conf</code> like this:
 +
[''someusername'']
 +
password=''something''
 +
 +
====Call Routing Configuration====
 
The regexroute module provides a simple way of routing telephony calls inside Yate. This module describes the routes using a configuration file in which each number is matched using regular expressions. The config file is named <code class="filename">regexroute.conf</code> and contains numerous examples.
 
The regexroute module provides a simple way of routing telephony calls inside Yate. This module describes the routes using a configuration file in which each number is matched using regular expressions. The config file is named <code class="filename">regexroute.conf</code> and contains numerous examples.
  
 +
====Accounts====
 
The accfile module allows Yate to act as a SIP or AIX client, this can be used to connect Yate to an other VOIP server or provider.
 
The accfile module allows Yate to act as a SIP or AIX client, this can be used to connect Yate to an other VOIP server or provider.
  
Line 62: Line 85:
 
==Asterisk==
 
==Asterisk==
 
===Status===
 
===Status===
As of February 2011 Asterisk version 1.8.2.3 (the latest upstream version) is in the process of being ported to [[Bering-uClibc 4.x]].
+
As of March 2011 Asterisk version 1.8.2.3 (the latest upstream version) is in the process of being ported to [[Bering-uClibc 4.x]].
 
This is currently at "Alpha Test" status and is '''NOT''' included in any of the Bering-uClibc 4.0 Beta releases.
 
This is currently at "Alpha Test" status and is '''NOT''' included in any of the Bering-uClibc 4.0 Beta releases.
  

Revision as of 09:15, 13 March 2011

Advanced Topics - Setting Up a VOIP Server
Prev Bering-uClibc 4.x - User Guide Next


Yate

Introduction

This Howto describes a Voice-over-IP (VoIP) solution based on Yate. Yate is a small but powerful IP telephony engine.

Requirements

To install Yate on a Bering-uClibc based system the following Packages are required:

  • yate.lrp
  • libcxx.lrp
  • libm.lrp
  • lpthread.lrp

Yate Basics

Startup and Shutdown

The Yate processes are stopped and started via init script /etc/init.d/yate. This is executed automatically at boot time, or the Yate processes can be started manually with the following command:

svi yate start

Logging

Log output is sent to /var/log/yate.log By default the logging is fairly minimal. Extra log output can be configured by adjusting the [debug] settings in /etc/yate/yate.conf or by using the Remote Manager.

Test Numbers

Yate comes pre-configured with some test numbers, which are specified at the end of /etc/yate/regexroute.conf:

; The following are for testing purposes                                        
^99991001$=tone/dial                                                            
^99991002$=tone/busy                                                            
^99991003$=tone/ring                                                            
^99991004$=tone/specdial                                                        
^99991005$=tone/congestion                                                      
^99991006$=tone/outoforder                                                      
^99991007$=tone/milliwatt 

For example, after dialling 99991003@192.168.1.254 (assuming that is the IPv4 address of your Yate server) you should hear a ring tone.

Configuration Recipes

Yate has a number of configuration files in directory /etc/yate/ and listed in the Yate section of the LEAF configuration menu.

SIP Client Registration

To allow SIP clients to register edit file ysipchan.conf and un-comment the registrar entry.

; registrar: bool: Allow the SIP module to receive registration requests        
registrar=enable 

You have to set the username and passwords for those clients in regfile.conf like this:

[someusername]
password=something

Call Routing Configuration

The regexroute module provides a simple way of routing telephony calls inside Yate. This module describes the routes using a configuration file in which each number is matched using regular expressions. The config file is named regexroute.conf and contains numerous examples.

Accounts

The accfile module allows Yate to act as a SIP or AIX client, this can be used to connect Yate to an other VOIP server or provider.

[test_sip]
 enabled=yes
 protocol=sip
 username=me
 description=Test SIP account
 ;interval=600
 formats=alaw,mulaw
 password=1234
 ;number=1234
 ;domain=somewhere.org
 registrar=10.0.0.1:5060
 ;outbound=10.0.0.1:5061
 ;localaddress=auto

An example on how to connect Yate to FWD (Free World Dialup) can be found in yate's wiki.

Firewall settings

In most situations you don't install a firewall VoIP server itself. If you install a VoIP server behind a firewall you need to open a SIP and a RTP range.

SIP uses udp port 5060, RTP (udp) ports are not hard defined but depends very much upon the application. In Yate the range of ports can be defined in yrtpchan.conf.


Asterisk

Status

As of March 2011 Asterisk version 1.8.2.3 (the latest upstream version) is in the process of being ported to Bering-uClibc 4.x. This is currently at "Alpha Test" status and is NOT included in any of the Bering-uClibc 4.0 Beta releases.

Experimental versions of the various Asterisk Packages can be downloaded from davidMbrooke's "devel" directory in SourceForge CVS.
(Developers only: the corresponding buildtool Source definitions are here.)

See also LEAF Trac ticket #5.

Update 2011-02-24: The asterisk executable seems to segfault early in the startup process unless the "-p" command-line argument is specified (or "highpriority = yes" is specified in /etc/asterisk/asterisk.conf).

Packages

The Asterisk distribution is divided into four .lrp Packages, based on the structure adopted for Asterisk 1.2 on Bering-uClibc 3.x but somewhat extended. The Packages are:

asterisk.lrp 
The main Package, with the Asterisk executables installed into directory /usr/sbin/ and also all of the Asterisk modules installed into directory /usr/lib/asterisk/modules/
astsmpls.lrp 
The sample configuration files which are installed into directory /etc/asterisk/
astsnds.lrp 
The sound files which are installed into directory /var/lib/asterisk/sounds/
This file is big - 1.7MB - and once installed the files occupy over 2.25MB of disk space
astmoh.lrp 
The music-on-hold files which are installed into directory /var/lib/asterisk/moh/
This file is very big - 14.6MB - and once installed the files occupy over 17MB of disk space

The following Packages are pre-requisites:

  • libm.lrp
  • libssl.lrp
  • libcrpto.lrp
  • lpthread.lrp
  • ncurses.lrp

Configuration

The standard Asterisk version 1.8 documentation is located here.



Prev Up Next