Javascript Roaming

From YateBTS
Jump to: navigation, search

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:

telnet 127.0.0.1 5038

You can:

Reload configurations

reload roaming

List neighbors

roaming 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