125 lines
4.2 KiB
Plaintext
125 lines
4.2 KiB
Plaintext
== Configuring OsmoMGW
|
|
|
|
A basic configation of OsmoMGW mainly consists of specifying the IP address
|
|
and port on which to listen to MGCP commands, but changing the port range at
|
|
which the RTP streams terminate as well as limiting operation to a single call
|
|
agent can be done as well as changing the number of endpoints.
|
|
|
|
=== Configuring MGCP
|
|
|
|
By default OsmoMGW listens for MGCP on port 2427 on any IP address. If a call
|
|
agent address is configured then OsmoMGW will only answer MGCP commands from
|
|
that IP port 2727, otherwise all sources are handled. A domain can be
|
|
specified
|
|
|
|
.Example: MGCP configuration
|
|
----
|
|
OsmoMGW(config-mgcp)# bind ip 127.0.0.1
|
|
OsmoMGW(config-mgcp)# bind port 2427
|
|
OsmoMGW(config-mgcp)# call-agent ip 127.0.0.1
|
|
OsmoMGW(config-mgcp)# domain mgw-bsc
|
|
OsmoMGW(config-mgcp)# local ip 127.0.0.1
|
|
----
|
|
|
|
=== Configuring the trunk
|
|
|
|
The first trunk is considered a virtual trunk in OsmoMGW. All
|
|
endpoints of type "rtpbridge" are routed here. The virtual trunk is configured
|
|
in the config-mgcp context.
|
|
|
|
All other trunks are configured in the config-mgcp-trunk context, but the
|
|
commands used are identical. Right now trunks are considered only for "ds/e1"
|
|
type endpoints.
|
|
|
|
.Example: MGCP trunk configuration
|
|
----
|
|
OsmoMGW(config-mgcp)# number endpoints 63 <1>
|
|
OsmoMGW(config-mgcp)# rtp bind-ip 10.0.0.1 <2>
|
|
OsmoMGW(config-mgcp)# rtp port-range 12000-14000 <3>
|
|
----
|
|
<1> Maximum number of endpoints that can be allocated at once
|
|
<2> Use this IP when binding RTP endpoints
|
|
<3> Use ports in this range when binding RTP endpoints
|
|
|
|
There are some options to tweak how RTP forwarding behaves in OsmoMGW:
|
|
|
|
.Example: MGCP trunk rtp options
|
|
----
|
|
OsmoMGW(config-mgcp)# rtp keep-alive 30 <1>
|
|
OsmoMGW(config-mgcp)# rtp-patch ssrc <2>
|
|
OsmoMGW(config-mgcp)# rtp-patch timestamp <3>
|
|
----
|
|
<1> Send dummy UDP packets periodically to RTP destination
|
|
<2> Hide SSRC changes
|
|
<3> Ensure RTP timestamp is aligned with frame duration
|
|
|
|
NOTE: Changes to trunks that affect resource allocation, such as newly created
|
|
trunks or a change of the number of available endpoints, require a full restart
|
|
of osmo-mgw!
|
|
|
|
=== E1 trunk considerations
|
|
|
|
While the RTP bridge trunks are natively based on IP no special considerations
|
|
are required during setup. E1 trunks are mapped on a physical E1 line, which has
|
|
to be configured as shown below.
|
|
|
|
.Example: E1 line setup
|
|
----
|
|
OsmoMGW(config-e1_input)# e1_line 0 driver dahdi <1>
|
|
OsmoMGW(config-e1_input)# e1_line 0 port 2 <2>
|
|
----
|
|
<1> Name of the libosmo-abis driver implementation ("dahdi")
|
|
<2> Port number of the physical E1 port to use (2)
|
|
|
|
In osmo-mgw the e1_input node is used to configure the physical E1 line. The
|
|
line number will be used internally to identify the configured E1 line. The
|
|
port number is the physical E1 connector (sometimes called 'span') at the E1
|
|
hardware. Per trunk an individual E1 line will be needed. Beware that the E1
|
|
driver may also need configuration settings that are not discussed here.
|
|
|
|
.Example: E1 trunk setup
|
|
----
|
|
OsmoMGW(config-mgcp)# trunk 0 <1>
|
|
OsmoMGW(config-mgcp-trunk)# line 0 <2>
|
|
----
|
|
<1> Creation of a trunk (0)
|
|
<2> Reference to the E1 line to use (0)
|
|
|
|
The E1 trunk is created along with a number, typically starting at 0, but if
|
|
required any number from 0-64 is allowed. The E1 trunk configuration concerning
|
|
the IP related aspects is nearly identical to the configuration of the virtual
|
|
trunk. However, it is important that the user assigns one of the E1 line numbers
|
|
that were configured under the e1_input node.
|
|
|
|
.Example: A typical configuration with one E1 trunk
|
|
----
|
|
e1_input
|
|
e1_line 0 driver dahdi
|
|
e1_line 0 port 2
|
|
mgcp
|
|
bind ip 127.0.0.1
|
|
rtp net-range 6000 6011
|
|
rtp net-bind-ip 192.168.100.130
|
|
rtp ip-probing
|
|
rtp ip-dscp 46
|
|
no rtp keep-alive
|
|
bind port 2428
|
|
number endpoints 30
|
|
loop 0
|
|
force-realloc 1
|
|
osmux off
|
|
rtp-patch rfc5993hr
|
|
trunk 0
|
|
rtp keep-alive once
|
|
no rtp keep-alive
|
|
line 0
|
|
----
|
|
|
|
NOTE: One E1 trunk always covers a whole E1 line. All subslots (I.640) will be mapped
|
|
to individual MGCP endpoints. As long as the endpoints remain unused the
|
|
underlying E1 timeslot is not used.
|
|
|
|
NOTE: The E1 trunk implementation also works with T1 lines, however since T1 has
|
|
24 instead of 31 usable timeslots only the endpoints that fall into that 1-24 timeslot
|
|
range will be useable.
|