To use YateBTS you can either use the Roaming mode or the NiPC mode. Both modes are represented by a Javascript application, namely roaming.js and nipc.js.
When using Roaming mode, the registrations, SMSs and calls from GSM subscribers are forwarded to an IMS server(Ex: our OpenVoLTE solution) or to a SIP server.
Note: You can only use a single mode at a time. You cannot have both NiPC and Roaming activated.
When in Roaming mode you can also use the Web GUI for configuration and to write a SIM card.
welcome.js can also be used in Roaming mode.
Roaming Mode Setup
ybts.conf
Configure ybts.conf to use the roaming script.
[ybts]
mode=roaming
Make sure you don’t have nipc.js loaded from javascript.conf before enabling roaming.js. The two modes can’t be used in the same time.
ysipchan.conf
Configure the SIP module by editing ysipchan.conf
[general]
lazy100=yes
transfer=no
privacy=yes
generate=yes
rtp_start=yes
auth_foreign=yes
autochangeparty=yes
update_target=yes
body_encoding=hex
async_generic=yes
sip_req_trans_count=5
useragent=YateBTS/5.0.1
[codecs]
default=disable
gsm=enable
[message]
enable=yes
auth_required=false
[options]
enable=no
[methods]
options=no
info=no
ybts.conf
Configuring the Roaming Script
Starting with svn rev. 387 the configuration for using YateBTS in Roaming mode were moved to [roaming] section in ybts.conf.
[roaming]
; This section configures parameters used by roaming.js when connecting
; YateBTS to a core network.
; expires: int: Expire time for registrations
;expires=3600
; reg_sip: string: ip:port where SIP requests are sent
; It is REQUIRED to set reg_sip or nodes_sip
; Example: reg_sip=192.168.1.245:5058
;reg_sip=sip.core.yatebts.com:5058
; nodes_sip: json object: node => ip:port of each openvolte server
; node is computed based on the tmsi received from the handset.
; This ensures that registrations are always sent to the same openvolte server
; It is REQUIRED to set reg_sip or nodes_sip
; Example: nodes_sip={“123″:”192.168.1.245:5058″,”101″:”192.168.1.176:5059”}
;nodes_sip=
; nnsf_bits: int: Number of bits to use for
; Non Access Stratum (NAS) Node Selection Function (NNSF)
;nnsf_bits=8
; my_sip: string: ip:port for local SIP listener
; Unless otherwise configured this is the IP of the machine
; where yatebts is installed.
; Example: my_sip=198.168.1.168
;my_sip=
; gstn_location: string: unique number that identies the cell in the national database
; associated to each base station by the network operator.
; REQUIRED!
;gstn_location=
Before svn rev. 387 this settings were read from roamingconf.js.
See the roamingconf.js from /usr/local/etc/yate or /etc/yate depending on how your YateBTS was installed.
The minimum configuration is my_sip – your local ip address – and reg_sip – the ip:port where the calls/SMSs/registration requests will be sent.
// Expire time for registrations
expires = 3600;
// ip:port where SIP requests are sent
reg_sip = “sip.core.yatebts.com:5058”;
// openvolte servers
// node => ip:port of each server
// node is computed based on the tmsi received from the handset.
// This ensures that registrations are always sent to the same openvolte server
//nodes_sip = {
// “123”:”192.168.1.2:5000″,
// “170”:”192.168.1.3:5001″
//};
//nnsf_bits = 8;
// ip:port for local SIP listener
// Unless otherwise configured this is the ip of the machine where yatebts is installed
// my_sip = “192.168.1.168”;
my_sip = “192.168.168.168”;
gstn_location = “40740123456”;
Handover Configuration
Handover is enabled by default. To configure it you need to set the neighbours for each base stations. You can do this in the handover section of ybts.conf.
[handover]
; This section configures handover parameters used by roaming.js
; enable: boolean: Globally enable handover functions
; Default is enabled
;enable=yes
; neighbors: string: Comma separated list of neighbor SIP addresses
; Each neighbor will be periodically queried for target handover availability
; Example: neighbors=10.0.0.1, 10.0.0.2, 10.0.0.3:5065
; Default is empty
;neighbors=
; reason: string: Text to place in the Reason SIP header
; An empty or boolean false value disables the Reason header
; Default: GSM;text=”Handover”
;reason=GSM;text=”Handover”
Roaming Mode Commands
Use Yate’s telnet interface to interact with the roaming.js and handover.js scripts. Yate’s default rmanager port is 5038 (port on which it accepts telnet connections).
From the console. type:
You can:
Reload configurations
List neighbors
Example output
Band ARFCN BSIC Cell ID Address Status
—- —– —- ————– ——————— ——-
192.168.168.208 Offline
850 130 2 0019003e9000b — Local YateBTS — Online
List nodes
roaming nodes
Example output
NRI Hex SIP Server (MSC/VLR)
—- — ———————
225 e1 192.168.168.225