Author Topic: Setting Rejection Code  (Read 18110 times)

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Setting Rejection Code
« on: March 28, 2017, 12:49:13 AM »
Hi all, I've currently followed the project set out at the page:

https://blog.strcpy.info/2016/04/21/building-a-portable-gsm-bts-using-bladerf-raspberry-and-yatebts-the-definitive-guide/

All seems to be working well, handsets can connect, calls can be made, sms' sent etc.
I'm wanting to set the rejection code to 13, roaming not allowed in this LA. I've had a look at the following thread:
http://forum.yate.ro/index.php?topic=296.0

I'm afraid I don't understand just what I'm supposed to change/set within the ybts:cpp, I understand this is the field, YBTSMM::locUpdTerminated(), but don't get where/what I'm supposed to do with it. I was going to try to reject all except for subscribers in List Subscribers field in NIB.

I've changed and re-compiled the nib.js file but that doesn't seem to be giving me much love there either, my lack of java knowledge wouldn't be helping my cause!

Anyone able to steer me in the right direction, or if you encountered the same, how did you resolve the issue?

Monica Tepelus

  • Administrator
  • Full Member
  • *****
  • Posts: 198
    • View Profile
Re: Setting Rejection Code
« Reply #1 on: March 29, 2017, 01:28:31 AM »
You don't need to change anything. If subscribers are defined and you are using nib mode, all other registrations will be rejected.

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #2 on: March 29, 2017, 06:54:03 PM »
Of course, complete mind blank on my part  :o :o

Thanks a lot for the answer, I'll give it a go and report back.

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #3 on: May 22, 2017, 08:35:53 PM »
Been a bit time poor lately, getting back on to configuring this thing. 

I've set subscribers, but non subscribers just continuously get rejected by my BTS without going back to the real network.  Is there a workaround for this? Setting a rejection code to ensure they don't come back?

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #4 on: May 23, 2017, 07:23:46 PM »
Also had issues running the yate shutdown command.

Unit goes through shutdown procedure, shuts down but then re initializes, and goes through this loop until I unplug it. Any ideas on this? I'd put it down to USB 2.0 on the pi.

Monica Tepelus

  • Administrator
  • Full Member
  • *****
  • Posts: 198
    • View Profile
Re: Setting Rejection Code
« Reply #5 on: May 24, 2017, 01:55:42 AM »
Hi,

How did you shut it down? Can you post a log with what happens after command is given?

marian

  • Hero Member
  • *****
  • Posts: 513
    • View Profile
Re: Setting Rejection Code
« Reply #6 on: May 24, 2017, 04:54:41 AM »
Hi
If you are using the command 'mbts shutdown' this only stops the mbts application.
The BTS module will detect it stopped and will restart it!

If you want to stop/start the BTS use:
ybts start
ybts stop

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #7 on: May 24, 2017, 05:10:02 PM »
brilliant marian, thank you very much. I will give it a try today.

Also may have solved my rejection issue. The code that's being issued is code 13, I think the lack of GSM network here was leaving the handset with nowhere else to go.

For reference I was issuing the command

yate shutdown

To attempt to shutdown the bts.
« Last Edit: May 24, 2017, 07:13:41 PM by shorty123 »

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #8 on: May 24, 2017, 08:26:52 PM »
Hi,

How did you shut it down? Can you post a log with what happens after command is given?

Sorry Monica, didn't see your reply at first. This is the log, it just goes on a loop until power is pulled. I attempted the ybts start/stop as marian suggested, however was met with
Code: [Select]
bash: ybts: command not found
My usual (unsuccessful) shutdown procedure is below.

Code: [Select]
root@raspberrypi:/home/pi# yate shutdown
Yate (6261) is starting Wed May 24 05:16:54 2017
Loaded module Call Forker
Loaded module GSM - based on libgsm-1.0.10
Loaded module iLBC - based on iLBC reference library
Loaded module YSOCKS
Loaded module YIAX
Loaded module Analyzer
Loaded module CdrFile
Loaded module Javascript
Loaded module GVoice
Loaded module CdrCombine
Loaded module DumbChannel
Loaded module ExtModule
Loaded module iLBC - based on WebRTC iLBC library version 1.1.1
Loaded module SIP Channel
Loaded module MUX
Loaded module ToneDetector
Loaded module MOH
Loaded module FileInfo
Loaded module RegexRoute
Loaded module Call Generator
Loaded module PBX
Loaded module CdrBuild
Loaded module YJingle
Loaded module YSTUN
Loaded module YRTP
Loaded module MsgSniffer
Loaded module RManager
Loaded module File Transfer
Loaded module WaveFile
Loaded module ZLib - using zlib library version 1.2.8
Loaded module Conference
Loaded module iSAC floating point - based on WebRTC iSAC library version 4.3.0 (SPL version 1.2.0)
Loaded module ToneGen
Loaded module Event Logs
Loaded module SIP Features
Loaded module CCongestion
Loaded module MRCP
Loaded module DbWave
Loaded module Presence
Loaded module MGCP-CA
Loaded module Users Management
Loaded module CallCounters
Loaded module GSM Transceiver
Loaded module Queues
Loaded module SNMP Agent
Loaded module Late Router
Loaded module Registration from file
Loaded module Accounts from file
Loaded module Queues Notify
Loaded module Heartbeat
Loaded module Radius client
Loaded module Cpu
Loaded module Monitoring
Loaded module Analog Detector
Loaded module Subscriptions
Loaded module Cache
Loaded module Clustering
Loaded module Call Parking
Loaded module SigTransport
Loaded module Cisco SM
Loaded module Signalling Channel
Loaded module Register for database
Loaded module YBTS
Loaded module PBX for database
Loaded module Analog Channel
Loaded module MGCP-GW
Loaded module Jabber Server
Loaded module Jabber Server Features
Loaded module DummyRadio
Loaded module BladeRF using libusb 1.0.19.10903 desc='http://libusb.info'
Initializing plugins
Initializing module BladeRF
Initializing module DummyRadio
Initializing module Jabber Server Features
Initializing module Jabber Server
Initializing module Cisco SM
Initializing module SigTransport
Initializing module Clustering
Initializing module Subscriptions
Initializing module Analog Detector
Initializing module Cpu
Initializing module MGCP Call Agent
Initializing module DbWave
Initializing module Event Logs
Initializing module ZLib
Initializing module MUX
Initializing module Javascript
Initializing module CdrFile
Initializing module YSOCKS
Initializing module Call Forker
Initializing module YIAX
2017-05-24_05:16:55.294698 <iaxengine:WARN> Failed to bind socket on ':4569' - trying a random port. 98: 'Address already in use' [0x18b0cf8]
Initializing module Analyzer
Initializing module GVoice
Initializing module CdrCombine
Initializing module DumbChannel
DumbChannel initialized
Initializing module ExtModule
Initializing module iLBC webrtc
Initializing module SIP Channel
Initializing module ToneDetector
Initializing module MOH
2017-05-24_05:16:55.299509 <sip:WARN> Listener(UDP,'general') unable to bind on :5060 - trying a random port. 98 'Address already in use'
Initializing module FileInfo
Initializing module RegexRoute
Initializing module Call Generator
Initializing module PBX
Initializing module CdrBuild
Initializing module YJingle
Initializing module YSTUN
Initializing module YRTP
Initializing module MsgSniffer
Initializing module RManager
2017-05-24_05:16:55.305885 <RManager:GOON> Failed to bind to 127.0.0.1:5038 : Address already in use
Initializing module File Transfer
Initializing module WaveFile
Initializing module Conference
Initializing module iSAC
Initializing module ToneGen
Initializing module SIP Features
Initializing module CCongestion
Initializing module MrcpSpeech
Initializing module Presence
Initializing module Users Management
Initializing module GSM Transceiver
Initializing module Queues for database
Initializing module SNMP Agent
Initializing module Late Router
Initializing module Register from file
Initializing module Accounts from file
Initializing module Queues Notify
Initializing module Radius client
Initializing module Monitoring
Initializing module Cache
Initializing module Call Parking
Initializing module Signalling Channel
Initializing module Register for database
Initializing module YBTS
Initializing module PBX for database
Initializing module Analog Channel
Initializing module MGCP Gateway
2017-05-24_05:16:55.551748 <mgcp_gw:WARN> Failed to bind socket to :2427. Error: 98: Address already in use
Initialization complete
MBTS connected to YBTS
Yate-BTS MBTS Component
Copyright 2008, 2009, 2010 Free Software Foundation, Inc.
Copyright 2010 Kestrel Signal Processing, Inc.
Copyright 2011, 2012, 2013 Range Networks, Inc.
Copyright 2013, 2014 Null Team Impex SRL
Copyright 2014 Legba, Inc.
"OpenBTS" is a registered trademark of Range Networks, Inc.

Contributors:
  SC Null Team Impex SRL:
    Paul Chitescu
  Legba, Inc.
    David Burgess
  Range Networks, Inc.:
    David Burgess, Harvind Samra, Donald Kirker, Doug Brown,
    Pat Thompson, Kurtis Heimerl
  Kestrel Signal Processing, Inc.:
    David Burgess, Harvind Samra, Raffi Sevlian, Roshan Baliga
  GNU Radio:
    Johnathan Corgan
  Others:
    Anne Kwong, Jacob Appelbaum, Joshua Lackey, Alon Levy
    Alexander Chemeris, Alberto Escudero-Pascual
Incorporated L/GPL libraries and components:
  libusb, LGPL 2.1, various copyright holders, www.libusb.org
Incorporated BSD/MIT-style libraries and components:
  A5/1 Pedagogical Implementation, Simplified BSD License,
    Copyright 1998-1999 Marc Briceno, Ian Goldberg, and David Wagner
Incorporated public domain libraries and components:
  sqlite3, released to public domain 15 Sept 2001, www.sqlite.org


This program comes with ABSOLUTELY NO WARRANTY.

Use of this software may be subject to other legal restrictions,
including patent licensing and radio spectrum licensing.
All users of this software are expected to comply with applicable
regulations and laws.  See the LEGAL file in the source code for
more information.

Release 5.0.1 formal build date Mar 23 2017 rev
Starting MBTS...
2017-05-24_05:16:55.852013 <bladerf/1:WARN> Failed to open USB device: Failed to claim the interface (-6 'LIBUSB_ERROR_BUSY') [0x754009f0]
2017-05-24_05:16:55.852551 <gsmtrx:GOON> Failed to create radio interface: failure
ALERT 1996423168 05:16:55.8 TRXManager.cpp:135:sendCommand: RESET failed with status 2
ALERT 1996423168 05:16:55.8 OpenBTS.cpp:250:main: Failed to reset transceiver
2017-05-24_05:16:55.853645 <mbts:WARN> TRXManager.cpp:135:sendCommand: RESET failed with status 2
2017-05-24_05:16:55.854000 <mbts:WARN> OpenBTS.cpp:250:main: Failed to reset transceiver
Yate engine is initialized and starting up on raspberrypi
Executing initial commands
null
MBTS connected to YBTS
Transceiver(gsmtrx) status: [0x75411ae0]
-----
RadioClock:     955 119/3
LastSyncUpper:  116 14/4
TxTime:         946 118/2
TxBursts:       886
RxBursts:       892
ARFCN[0]
  UplinkLastOutTime:    935 116/7
  DownlinkLastInTime:   981 122/5
  RxBursts:             872
  RxDroppedBursts:      721 LowSNR=496 LowPeakMin=225
  DownlinkInBursts:     659 (81/72/68/68/92/94/92/92)
  TxMissSyncOnSend:     4
  TxExpiredOnSend:      18
  TxExpiredOnRecv:      12
  TxFutureOnRecv:       0
  TxDupOnRecv:          0
-----
Yate-BTS MBTS Component
Copyright 2008, 2009, 2010 Free Software Foundation, Inc.
Copyright 2010 Kestrel Signal Processing, Inc.
Copyright 2011, 2012, 2013 Range Networks, Inc.
Copyright 2013, 2014 Null Team Impex SRL
Copyright 2014 Legba, Inc.
"OpenBTS" is a registered trademark of Range Networks, Inc.

Contributors:
  SC Null Team Impex SRL:
    Paul Chitescu
  Legba, Inc.
    David Burgess
  Range Networks, Inc.:
    David Burgess, Harvind Samra, Donald Kirker, Doug Brown,
    Pat Thompson, Kurtis Heimerl
  Kestrel Signal Processing, Inc.:
    David Burgess, Harvind Samra, Raffi Sevlian, Roshan Baliga
  GNU Radio:
    Johnathan Corgan
  Others:
    Anne Kwong, Jacob Appelbaum, Joshua Lackey, Alon Levy
    Alexander Chemeris, Alberto Escudero-Pascual
Incorporated L/GPL libraries and components:
  libusb, LGPL 2.1, various copyright holders, www.libusb.org
Incorporated BSD/MIT-style libraries and components:
  A5/1 Pedagogical Implementation, Simplified BSD License,
    Copyright 1998-1999 Marc Briceno, Ian Goldberg, and David Wagner
Incorporated public domain libraries and components:
  sqlite3, released to public domain 15 Sept 2001, www.sqlite.org


This program comes with ABSOLUTELY NO WARRANTY.

Use of this software may be subject to other legal restrictions,
including patent licensing and radio spectrum licensing.
All users of this software are expected to comply with applicable
regulations and laws.  See the LEGAL file in the source code for
more information.

Release 5.0.1 formal build date Mar 23 2017 rev
Starting MBTS...
Transceiver(gsmtrx) status: [0x75411ae0]
-----
RadioClock:     0 0/0
LastSyncUpper:  0 0/0
TxTime:         0 0/0
TxBursts:       0
RxBursts:       0
ARFCN[0]
  UplinkLastOutTime:    0 0/0
  DownlinkLastInTime:   0 0/0
  RxBursts:             0
  RxDroppedBursts:      0
  DownlinkInBursts:     0 (0/0/0/0/0/0/0/0)
  TxMissSyncOnSend:     0
  TxExpiredOnSend:      0
  TxExpiredOnRecv:      0
  TxFutureOnRecv:       0
  TxDupOnRecv:          0
-----
ALERT 1995530240 05:17:04.0 TRXManager.cpp:135:sendCommand: STATISTICS failed with status -1
2017-05-24_05:17:04.019498 <mbts:WARN> TRXManager.cpp:135:sendCommand: STATISTICS failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:669:getFactoryCalibration: READFACTORY failed with status -1
2017-05-24_05:17:04.019710 <mbts:WARN> TRXManager.cpp:669:getFactoryCalibration: READFACTORY failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:432:tune: RXTUNE failed with status -1
2017-05-24_05:17:04.020399 <mbts:WARN> TRXManager.cpp:432:tune: RXTUNE failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:518:setTSC: SETTSC failed with status -1
2017-05-24_05:17:04.029966 <mbts:WARN> TRXManager.cpp:518:setTSC: SETTSC failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:562:setMaxDelay: SETMAXDLY failed with status -1
2017-05-24_05:17:04.030098 <mbts:WARN> TRXManager.cpp:562:setMaxDelay: SETMAXDLY failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:575:setRxGain: SETRXGAIN failed with status -1
2017-05-24_05:17:04.030548 <mbts:WARN> TRXManager.cpp:575:setRxGain: SETRXGAIN failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:485:powerOn: POWERON failed with status -1
2017-05-24_05:17:04.031368 <mbts:WARN> TRXManager.cpp:485:powerOn: POWERON failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:504:setPower: SETPOWER failed with status -1
2017-05-24_05:17:04.031445 <mbts:WARN> TRXManager.cpp:504:setPower: SETPOWER failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.031526 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.040337 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.042315 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.044328 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.046461 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.048404 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.050180 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
2017-05-24_05:17:04.052110 <mbts:WARN> TRXManager.cpp:550:setSlot: SETSLOT failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:135:sendCommand: STATISTICS failed with status -1
ALERT 1995530240 05:17:04.0 TRXManager.cpp:504:setPower: SETPOWER failed with status -1
2017-05-24_05:17:04.054001 <mbts:WARN> TRXManager.cpp:135:sendCommand: STATISTICS failed with status -1
2017-05-24_05:17:04.054350 <mbts:WARN> TRXManager.cpp:504:setPower: SETPOWER failed with status -1
MBTS ready
ALERT 1962669136 05:17:10.0 TRXManager.cpp:504:setPower: SETPOWER failed with status 4
2017-05-24_05:17:10.055177 <mbts:WARN> TRXManager.cpp:504:setPower: SETPOWER failed with status 4
^CALERT 1995530240 05:17:14.0 TRXManager.cpp:135:sendCommand: STOP failed with status -1
2017-05-24_05:17:14.036553 <mbts:WARN> TRXManager.cpp:135:sendCommand: STOP failed with status -1
MBTS exiting
Yate engine is shutting down with code 0
Unloading module MGCP-GW
Unloading module Analog Channel
Unloading module PBX for database
Unloading module YBTS
Unloading module Register for database
Unloading module Signalling Channel
Unloading module Call Parking
Unloading module Cache
Unloaded module Monitoring
Unloaded module Radius client
Unloading module Heartbeat
Unloading module Queues Notify
Unload module Registration from file
Unloading module Late Router
2017-05-24_05:17:14.336006 <GOON> Unloading 'ysnmpagent' removed 0 out of 1 plugins
Unloading module Queues
2017-05-24_05:17:14.337164 <GOON> Unloading 'gsmtrx' removed 0 out of 1 plugins
Unloading module CallCounters
Unloaded module Users Management
Unloaded module Presence
Unloading module MRCP
Unloading module CCongestion
Unloading module SIP Features
Unloading module ToneGen
Unloading module iSAC with 0 codecs still in use
Unloading module Conference
Unloading module RManager
Unloading module YRTP
Unloading module YSTUN
2017-05-24_05:17:14.348041 <GOON> Unloading 'yjinglechan' removed 0 out of 1 plugins
Unloading module CdrBuild
Unloading module PBX
Unloading module Call Generator, clearing 0 calls
Unloading module FileInfo
Unloading module MOH
2017-05-24_05:17:14.349950 <GOON> Unloading 'tonedetect' removed 0 out of 1 plugins
2017-05-24_05:17:14.350116 <GOON> Unloading 'ysipchan' removed 0 out of 1 plugins
Unloading module iLBC webrtc with 0 codecs still in use
Unloading module ExtModule
Unloading module DumbChannel
Unloading module CdrCombine
Unloading module GVoice
Unloading module Analyzer
Unloading module YIAX
Unloading module iLBC with 0 codecs still in use
Unloading module GSM with 0 codecs still in use
Unloading module Call Forker
2017-05-24_05:17:14.354344 <GOON> Unloading 'ysockschan' removed 0 out of 1 plugins
Unloading module CdrFile
2017-05-24_05:17:14.354717 <GOON> Unloading 'javascript' removed 0 out of 1 plugins
Unloading module MUX
Unloading module File Transfer
Unloading module ZLib
Unloading module Event Logs
2017-05-24_05:17:14.356476 <GOON> Unloading 'mgcpca' removed 0 out of 1 plugins
Unloading module Cpu
Unloading module Analog Detector
Unloading module Subscriptions
Unloading module Clustering
Unloading module SigTransport
Unloading module Cisco SM
Unloading module Jabber Server
Unloading module Jabber Server Features
Unloading module DummyRadio
Unloading module BladeRF
2017-05-24_05:17:14.360435 <GOON> Exiting with 0 locked mutexes and 8 plugins loaded!
Yate (6261) is stopping Wed May 24 05:17:14 2017
Unloaded module SNMP Agent
Unloading module GSM Transceiver
Unloading module MGCP-CA
Unloading module YJingle
Unloading module ToneDetector
Unloading module SIP Channel
Unloading module Javascript
Unloading module YSOCKS

marian

  • Hero Member
  • *****
  • Posts: 513
    • View Profile
Re: Setting Rejection Code
« Reply #9 on: May 25, 2017, 12:57:54 AM »
See 'Failed to bind ....'  messages: you have another yate running!
Make sure you are running o instance only.

The commands I gave you must be typed in a telnet console.
See http://docs.yate.ro/wiki/Rmanager

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #10 on: May 25, 2017, 04:44:51 AM »
Ahh, thank you marian. I was starting yate from the pi home directory. I'm not able to telnet into it before starting the bts, then telnet into it and can stop and start it. Is this normal?

marian

  • Hero Member
  • *****
  • Posts: 513
    • View Profile
Re: Setting Rejection Code
« Reply #11 on: May 25, 2017, 05:00:49 AM »
I'm not sure I understand.
What do you mean by: I'm not able to telnet into it before starting the bts?

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #12 on: May 25, 2017, 05:40:06 AM »
If I log into the pi, I can't telnet into the bladeRF.

Code: [Select]
root@raspberrypi:/home/pi# telnet 127.0.0.1 5038
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

But if I run the command:
Code: [Select]
root@raspberrypi:/home/pi# yate -sd -vvvvv
root@raspberrypi:/home/pi# telnet 127.0.0.1 5038
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Yate 5.5.1-develi r (http://YATE.null.ro) ready on raspberrypi.
ybts stop

That is the workaround I have for telnet. It also won't let me use the mbts rawconfig from within telnet without having ybts start first.

marian

  • Hero Member
  • *****
  • Posts: 513
    • View Profile
Re: Setting Rejection Code
« Reply #13 on: May 25, 2017, 05:44:52 AM »
telnet opens a connection to specified ip and port. Someone must listen on it!
Yate binds on 127.0.0.1:5038 by default
You must start yate in order to be able to connect to it!

shorty123

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Setting Rejection Code
« Reply #14 on: May 25, 2017, 06:29:49 AM »
Ahh ok, so what I'm doing is right?

Thank you for your help and patience with me!

I'm finally starting to learn my way around the software, and enjoying it!