Commit Graph

523 Commits

Author SHA1 Message Date
Harald Welte 4669f3d9c8 fix compile warning in db.c 2009-12-09 19:19:45 +01:00
Harald Welte 24766091d8 mark lchan2chan_nr() using a 'const' parameter
which fixes some compile warnings at some callers.
2009-12-09 19:18:32 +01:00
Harald Welte 7bcb893eb7 remove execute permission from abis_nm.c 2009-12-06 12:23:47 +05:30
Harald Welte 1085c097e3 location updating reject cause now specified on VTY rather than command line argument 2009-12-06 12:22:59 +05:30
Holger Hans Peter Freyther f49fac2785 [bsc_hack] Ignore the sigpipe...
We might read or write on the OML link when the BTS is
reset and will get SIGPIPE interrupt and be gone... Just
ignore the SIGPIPE we will get the "exception" on the next
run of bsc_select and kill the (old) OML link.
2009-12-06 04:25:05 +01:00
Steffen Neubauer ad69d7f8b2 [sms] trivial: Removed unneeded double check in unbcdify 2009-12-05 12:07:12 +05:30
Harald Welte a897bf3ded [system_information] fix BCCH list generation for GSM900
We have to make sure to skip the global list header
2009-12-05 11:58:24 +05:30
Harald Welte 1dfd0e254a [BS11] don't put invalid channel combination into the config file 2009-12-04 11:23:12 +05:30
Harald Welte d6575f9d29 ip.access: add nanoBTS channel combination constraints 2009-12-02 02:45:23 +05:30
Harald Welte 0603c9d9e5 ip.access speech mode for TCH/H channels 2009-12-02 01:58:23 +05:30
Harald Welte 2c82899135 move RTP socket information from timeslot to lchan
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot
(lchan), not just one per on-air timeslot.  This is quite different from
a classic BTS where the TRAU frames of the two TCH/H channels would be
part of the same 16k sub-slot in a E1 timeslot.
2009-12-02 01:56:49 +05:30
Harald Welte a43f789a0a Replace template-based SYSTEM INFORMATION with real implementation
Before this commit, OpenBSC used templates for the SYSTEM INFO
1, 2, 3, 4, 5 and 6 messages.  Those templates were patched in
various places to reflect the network config like ARFCN.

Now, we actually generate those SI messages ourselves, using
values from the configuration file, and even calculating neighbor
cell lists.

All bts'es that you have configured in OpenBSC will end up in
the neighbor cell list - which should be more than sufficient for
the current small-single-site networks.
2009-12-01 18:04:30 +05:30
Harald Welte 29b9cf8446 make use of new S_GLOBAL_SHUTDOWN signal to properly close pcap_fd
This avoids broken pcap files with partial packets due to non-flushed
buffers.
2009-12-01 17:58:32 +05:30
Harald Welte 3961fcc031 Introduce new S_GLOBAL_SHUTDOWN signal
This is used to notify various parts of OpenBSC that we're shutting
down.
2009-12-01 17:58:26 +05:30
Harald Welte b84ddfc22f Assign default values for T3101 and T3113
Without those default values, old config files will no longer work
after commit 23975e718f
2009-12-01 17:36:54 +05:30
Harald Welte dbb1d88359 [handover] export measurement reports via signal
This patch introduces the S_LCHAN_MEAS_REP signal which is used to export
measurement reports as input to the yet-to-be-written handover algorithm.
2009-11-30 19:16:47 +01:00
Harald Welte 798418a068 [handover] Implement handover control logic
Code to implement handover control logic.  A yet-to-be-implemented
handover algorithm will call bsc_handover_start(old_lchan, new_bts)
to start the handover process.
2009-11-29 22:56:14 +01:00
Harald Welte d011e8b958 [handover] Introduce new handover related LCHAN signals
This introduces the signals S_LCHAN_ACTIVATE_{ACK,NACK} and
S_LCAN_HANDOVER_{FAIL,COMPL,DETECT} as well as code that actually issues
those signals.  The signals are relevant for a yet-to-be-written handover
control logic.
2009-11-29 22:45:52 +01:00
Harald Welte 8c83af65c1 [handover] Implement 04.08 HANDOVER COMMAND
This is needed by a yet-to-be-implemented handover algorithm, after
it has allocated a new lchan for the MS.  Also missing: handling
the actual HANDOVER COMPLETE / FAIL messages in response.
2009-11-29 20:02:53 +01:00
Harald Welte ccd5a8892d print debug statement in case of HANDOVER COMPLETE or HANDOVER FAILED 2009-11-29 20:02:20 +01:00
Harald Welte 3c7dc6ed50 New complete measurement result/report handling
This patch extends struct gsm_meas_rep into a complete structure containing all
information from both uplink and downlink measurement results/reports.

This is a first step to provide this complete measurement data as a C structure
into a to-be-implemented handover decision algorithm.
2009-11-29 19:07:28 +01:00
Harald Welte 1a79d36440 RSL: catch inconsistent parameters ofr channel_mode_from_lchan() 2009-11-27 08:55:16 +01:00
Steffen Neubauer f326267fb7 [SMS] Implement TP-VPF-ENHANCED
While doing so, we also restructure/reorganize the vailidity period
parsing in general.
2009-11-26 12:28:41 +01:00
Holger Hans Peter Freyther 2d501ea26a [vty] Add option to disable RF on a given TRX.
- Make sure that on runtime the Radio Carrier can be
  locked and unlocked. The vty code calls into the
  Abis NM to lock/unlock the channel and the state is
  stored there.

- Make sure that on start the Radio Carries remains
  offline and we are not starting it. On start the
  radio carrier is either locked or unlocked. This means
  the RSL will not connect until the RF is unlocked. It
  will connect then. To see RSL bringup failures one
  needs to parse the RSL nack message.

- When the TRX is locked on startup the RSL link will
  only be established after it will be unlocked.
2009-11-24 13:08:50 +01:00
Holger Hans Peter Freyther 1ce10f3854 [bsc_init] Activate the RC and the RSL link from the Software Activated Callback
On cold start the RSL link will not be brought up. Wait for the
Software to be Activated before starting the RSL link. This is
working reliable on the BTS I have tested with.

This is a partial revert of 8406ec2437 and
was discussed on the mailinglist.
2009-11-24 10:49:59 +01:00
Holger Hans Peter Freyther 4642d4917f [network] Make use of T3113 for paging
Add it to the configuration files and make use
of it in the the paging.c.
2009-11-22 05:28:24 +01:00
Holger Hans Peter Freyther 23975e718f [network] Add config option for the remaining network timers
There are all set to 0 and not used within the code yet but
should be used in the future.
2009-11-22 05:28:23 +01:00
Holger Hans Peter Freyther c4d88ad971 [network] Make T3101 configurable and use it in abis_rsl 2009-11-22 05:28:23 +01:00
Holger Hans Peter Freyther d61654cf54 [chan] Alloc SDCCH for certain reserved types
Follow notes:
    2.) Allocate a SDCCH for type "LMU"
    2a.)Allocate a SDCCH for the three reserved types
    2b.)Pick LCHAN type none to "ignore" the request
2009-11-22 05:28:23 +01:00
Holger Hans Peter Freyther a8816dd9c7 [talloc] Provide a copy of strnlen on OSX
The implementation is taken from a blogspot and I don't think
it is copyrightable...
2009-11-22 05:28:14 +01:00
Holger Hans Peter Freyther 7466351026 [misc] Fix the make distcheck
Mention the two new header files, do not list isdnsync twice
2009-11-20 17:58:52 +01:00
Holger Hans Peter Freyther 4ec389e58f [mgcp] Make the number of endpoints configurable...
Allow to configure the number of endpoints at start. Currently
this will not be changed at runtime but one needs to save the
config and restart the system.
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 8ea4b5688a [mgcp] The nanoBTS is not binding a RTCP port
Do not guess the RTCP port as it might be the RTP port
of another connection.
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 39e94ebbd2 [mgcp] The initialisation is done inside CRCX, remove here 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 48ecad48c7 [mgcp] Do not forward or find the BTS if the endpoint is unused
Forget where the bts and network is located on DLCX and CRCX otherwise
we would have forwarded BTS data to the wrong endpoint and would have
not tried to discover the BTS again.

In the case of early bind we might get data from the BTS before
the CRCX and after DLCX... just ignore it then
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 17e791666d [mgcp] Add a show command for the mgcp... 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 5fddf475d5 [mgcp] Fix writing the configuration file 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 338fa562c0 [mgcp] Add telnet interface for mgcp. 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 1cf9cf3eeb [mgcp] MGCP... update config file to use AMR 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 138b7ecd5e [mgcp] Add option to route audio back to both ends
This is a simple echo functionality in the MGCP... it
will send the audio back to the network|bts..
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther f67945f004 [mgcp] Add a simple mgcp gateway used for the BSC
The python script is a simple call-agent driving the
client. Currently it is sending a AuditEndpoint message
and is printing the result.

The bsc_mgcp.c is a standalone process that will implement
a MGCP Gateway for the MSC. On call handling the Call-Agent
will ask the Gateway to "CreateConnection" and then this
gateway needs to communicate with OpenBSC.

Currently CreateConnection,ModifiyConnection,DeleteConnection
and Endpoint auditing is implemented.

[mgcp] Send RSIP on start and on first receive of any message

Ignore the first request and send a RSIP. We do that because
we might tunnel UDP through some other things and have no direct
way to connect to the call-agent.
Also the transaction is not checked and we ignore the response
from the call-agent, actually we print the '200 ' or any other
value as unhandled...

[mgcp] Print the MGCP command next to the response code

This allows to see which commands were sent by the server

mgcp: Terminate it with a new line

[mgcp] Make number of endpoints static...

For now this is fixed to the number of endpoints as of the GSM
specification...

[mgcp] The endpoint names seem to be base 16... use strtoul to parse

Use strtoul to parse the base 16 number from the mgw string.

[mgcp] Log the endpoints as hex numbers...

[mgcp] Only send the RSIP on the first incoming message..

Remove call_agent option (also remove the number from the getopt
call).

[mgcp] Start couting at 1 for the mgcp

[mgcp] Slight attempt to improve the grammar of the strings

[mgcp] Share validation routines between DLCX and MDCX

[mgcp] Remove help for dead config options

[mgcp] Specify a different IN addr in the SDP records

In case of NAT traversal be able to listen on a given
interface (like 127.0.0.1) but claim to receive data
at the beginning of the tunnel.

[mgcp] Fix the static copy of the SDP file

WIP verify out factoring broken..

[mgcp] Introduce VTY to the mgcp for config file parsing...

Parse the MGCP config file via the VTY framework.

[mgcp] Handle SDP parameters through VTY..

Currently the payload type, name and rate can be specified
in the config file.

[mgcp] Add an option to bind all rtp ports early

This can be useful for testing and in deployment to make sure
no runtime resource limit can be hit.

[mgcp] Add some API doc comment

[mgcp] Convert the packets of the example server to ascii

This will allow to easily patch the call id... to run the
server in a loop and make it work with the mediagateway

[mgcp] Assign CI_UNUSED... to be more obvious...

[mgcp] Use DEBUG and not DEBUGPC and specially not printf

Improve the logging a bit in the mgcp

[mgcp] Change the fake server to change the call id

This assume the call-agent will just increment the id
as well.... this is true for our implementation

[mgcp] Generate the transaction id dynamically..

This way wireshark will be more happy about it...

[mgcp] Recognize responses from the network..

This is just recognizing the response code and
then is doing nothing with it. Also change the
script to generate response messages...

[mgcp] Improve debug messages for CRCX/MDCX..

Log on which ports the media gateway is listening
and where the other (server) gateway is located
2009-11-20 14:05:04 +01:00
Holger Hans Peter Freyther 3b9516e0d8 [sccp] Implement sending the Inactivity Test on a connection..
Currently this will send a dummy inactivity test message,
there is currently no parsing or API to receive the messages.

The sequencing and credit entries are empty as sequencing
is currently not used at all.

The test is currently limited to send the message and see
if the application is crashing or not.
2009-11-20 13:09:15 +01:00
Holger Hans Peter Freyther ac96770ad7 [sccp] Implement parts of ITU SCCP for use in the A-Interface
include/sccp/sccp_types.h contain Q.713 and GSM definitions
include/sccp/sccp.h is the application interface resembling
                    the esentials of the UNIX socket interface.

src/sccp.c is the actual implementation of SCCP featuring
           connection and UDT1 support.

tests/sccp/sccp.c is testing connection creation and formating
                  of the SCCP messages used by the A-interface. And
                  it contains a simple fuzzing test to test the
                  robustnes of the implementation.
2009-11-20 13:09:15 +01:00
Holger Hans Peter Freyther ff5fa4e455 [debug] Add a debug area for the MGCP code of On Waves 2009-11-20 13:07:02 +01:00
Holger Hans Peter Freyther 32201c50a5 [debug] Add a debug area for MSC 2009-11-20 13:06:44 +01:00
Holger Hans Peter Freyther ed0a47b9c5 [debug] Add a debug area for SCCP 2009-11-20 13:06:28 +01:00
Holger Hans Peter Freyther f926ed6b6f [vty] Remove tab to make the cell_identity nicely indent 2009-11-19 17:33:01 +01:00
Holger Hans Peter Freyther d54c337a83 [vty] Write out the neci configuration 2009-11-19 17:32:47 +01:00
Holger Hans Peter Freyther ea52802762 [lchan] RSL and RR need the multirate config, place it in the lchan
Both GSM 04.08 RR and GSM 08.58 RSL need the multirate config
in the channel modify. Place the config in the lchan, change
the gsm48 methods to not take the argument, change the RSL
implementation to make use of it with the right IE.

The other code should use the t(l)v_put routines as well but
were left untouched for now.
2009-11-19 11:42:03 +01:00
Holger Hans Peter Freyther 45b0243a41 [lchan] Fix the SAPI reset in the chan allocation...
Reset the whole array instead of just the first element.
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther 25b1e25dd4 [gsm48] Send the IPA CRCX after the chan modify ack
Change the CRCX after the channel has been modified.
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther 231163d365 [ipa] Change names of RTP methods to follow MGCP naming
IPA is naming these functions CRCX, MDCX, DLCX to follow
the naming of the MediaGatewayControlProtocol. Change the
code to go from BIND to CRCX (create connection) and from
CONNECT to MDCX (modify connection).

Connect indicates that it is only possible to call it once
while it is possible to call it more than once to modify
the audio parmaters and such. So the IPA terminology is
making a bit more sense here (now that we know it).
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther 25f30ba00a misc: Add routine to generate backtrace from within the application
E.g. to analyze the subscr_get/subscr_put behavior one can place
the generate_backtrace into the functions, recompile and then filter
the output with contrib/bt.py to get the function name, file and line.
2009-11-19 09:40:03 +01:00
Harald Welte a8dffc512b Merge remote branch 'origin/master' 2009-11-18 09:23:11 +01:00
Harald Welte 61a83b2aec max_power_limit: the limit is 24 dB ! 2009-11-18 09:20:22 +01:00
Holger Hans Peter Freyther a6bcc74716 [gsm48] When picking AMR we need to supply the multirate config
On channel mode modify and assignment command when using
the a multirate code the multirate configuration must be
present in the packet.
Add a parameter and add a warning when using it in a
broken way.
2009-11-17 18:20:17 +01:00
Holger Hans Peter Freyther 135a7c65cd [neci] Separate handling of chan requested for paging any
Allow to handle the channel requested differently based
on the NECI value for the "paging any" case. This will allow
to open a TCH/H, TCH/F depending on the neci mode.
2009-11-17 18:19:25 +01:00
Holger Hans Peter Freyther 843b44d261 [neci] Use the correct length when going over the array
Use the correct length when going over the array instead
of using the neci0 values. Remove the fixme from the method
as well as the issue has been addressed by adding a parameter
to the method.
2009-11-17 18:19:19 +01:00
Holger Hans Peter Freyther fe9da827fd [paging] In expiration handling remove the request before doing the callback
Not doing this could lead to a double deletion due the paging
request being removed during the callback and afterwards as
well. Change the code to save the callback data, remove the
request, do the callback.

A patch was proposed by Andreas Eversberg and this one is
based on it.
2009-11-17 10:16:46 +01:00
Andreas.Eversberg 1059deb782 Fix configuration file generation
Assign the encryption status to the right variable.

Signed-off-by: Holger Freyther <zecke@selfish.org>
2009-11-17 09:55:26 +01:00
Holger Hans Peter Freyther f7d752f7ac [si] Make it possible to set the NECI value...
Allow to configure the NECI value... and change code
that is relying on the NECI value.
2009-11-17 09:46:33 +01:00
Holger Hans Peter Freyther 0fef39a8ac [rsl] Improve error message when the lchan allocation is failing 2009-11-17 09:46:33 +01:00
Holger Hans Peter Freyther 057fec5336 ipaccess-config.c: Spelling fix in the config mode 2009-11-17 09:46:33 +01:00
Holger Hans Peter Freyther c7df7c6e42 [ipaccess] Fix spelling in the comment 2009-11-17 09:46:33 +01:00
Holger Hans Peter Freyther e723eac5a3 [telnet] Remove unused variables from the telnet interface
These became unused when the interface was switched to
use the vty module. It is about time to remove these.
2009-11-17 09:46:33 +01:00
Harald Welte 986c3d76db fix some more compiler warnings 2009-11-17 06:12:16 +01:00
Harald Welte d8cfc90e22 [abis_nm] avoid integer-to-pointer casting and associated gcc warnings 2009-11-17 06:09:56 +01:00
Harald Welte b54d950ac1 silent call: add header file for function prototypes 2009-11-17 06:00:23 +01:00
Harald Welte 20f9831168 VTY (silent sms / sms): better error reporting 2009-11-14 10:11:45 +01:00
Harald Welte af8c7b497e silent sms: make it silent again (type 64), fix subscriber refcount leak 2009-11-14 10:10:54 +01:00
Harald Welte a148233b5e Add "silent call" feature to OpenBSC
This allows the administrator to use the vty interface to issue a silent
call to a given subscriber by using
	"subscriber extension XXXX silent call start"
and stopping that silent call with
	"subscriber extension XXXX silent call stop"
2009-11-14 10:08:40 +01:00
Harald Welte 98f9c75094 [VTY] restructure sms and silent sms commands 2009-11-14 08:00:53 +01:00
Harald Welte 793a1355d6 [VTY] Add feature to send silent SMS from console
"Silent SMS" is a SMS that is delivered (and confirmed) but
not shown on the display of the phone.  You can now send
such SMS by using
	sms send silent extension 12345 text
or
	sms send silent imsi 123451234512345 text
2009-11-14 06:11:14 +09:00
Harald Welte cf01b8ff56 ipaccess-config: Print BCCH info test reports
This will print test rep[orts that look like:
<0020> ipaccess-config.c:91 TEST REPORT: test_no=0x43 test_res=PARTIAL
<0020> ipaccess-config.c:140 ==> ARFCN 37, RxLev 24, RxQual  0: 262-1, LAC 13830 CI 10759
2009-11-13 14:43:15 +01:00
Harald Welte 654c9df3c8 [OML] don't hexdump bcch info 2009-11-13 14:42:52 +01:00
Harald Welte aff237d739 [OML] fix bugs in BCCH info parser for ip.access 2009-11-13 14:41:52 +01:00
Harald Welte 999549d9ae [OML] more verbose error reporting in case object instance unknown 2009-11-13 12:10:18 +01:00
Harald Welte b40a38ff46 [ip.access] Parse cell global ID as part of BCCH info 2009-11-13 11:56:05 +01:00
Harald Welte 5bde51b91e make ipaccess-config compile again (remove duplicate testres_name definition) 2009-11-13 11:23:16 +01:00
Harald Welte 0f255857d4 ip.access: Introduce parser function for BCCH Info test result 2009-11-12 14:48:42 +01:00
Harald Welte ccda96517c move 'struct value_string' and 'get_value_string()' to gsm_data 2009-11-12 22:28:18 +09:00
Steffen Neubauer 5727cf4ea7 [SMS] implement GSM340_TP_VPF_ABSOLUTE
- Added function "gsm340_scts" to decode the service center time stamp
  into a UTC/GMT timestamp
- in function gsm340_validity_period: can now decode validity period
  format absolute.
2009-11-11 23:02:07 +09:00
Harald Welte d409be7fae change some identifiers from u_int64_t to unsigned long long
makes printf much easier on 64bit platforms...
2009-11-07 00:06:19 +09:00
Holger Hans Peter Freyther ccf53c60c5 [mncc] Fix possible transaction/subscriber and real life subscriber leak
In the case a transaction has been already scheduled return 0 was
called but the subscriber and transaction would leak. Fix it by
calling subscr_put and trans_free.

After claiming the channel also remove the reference on the subscr.
2009-11-06 23:38:34 +09:00
Holger Hans Peter Freyther e33966cec2 vty: Do not leak the gsm_subscriber 2009-11-06 23:33:59 +09:00
Harald Welte 9aa6fd90ca Merge remote branch 'origin/master' 2009-10-30 09:18:31 +01:00
Sylvain Munaut d7d1c99a53 ip.access: Header has a 16bit length in network byte order
This is confirmed by looking at the source of their dissector.
The length can go up to 273 bytes apparently (again, according
to the source of their dissector).
2009-10-29 16:33:59 +01:00
Holger Hans Peter Freyther 5ba6f48092 [lchan] Keep track which SAPIs has been established with the BTS
Keep track of which SAPIs have been established either by the
BTS (from the MS) or by us. This can be used by the on-waves
BSC code to figure out if a new request should be made.
2009-10-29 04:20:21 +01:00
Holger Hans Peter Freyther 5ea731338d [misc] Use talloc_zero instead of talloc and later memset 2009-10-29 02:29:45 +01:00
Holger Hans Peter Freyther ba92587cd5 misc: Use NULL instead of integer value for a NULL pointer 2009-10-27 10:42:53 +01:00
Holger Hans Peter Freyther 67b596199d input/ipaccess.c: clang says ret might be uninitialized
and it appears to be right that for the "default" case ret
will not be assigned and we return ret.
2009-10-27 10:08:38 +01:00
Holger Hans Peter Freyther 423bfe915c abis_nm.c: Remove duplicate entry from the table 2009-10-27 10:08:20 +01:00
Holger Hans Peter Freyther f520e6439a [gsm48] Handle the RR CHAN MODIFY ACK in the gsm04_08_utils
Move the handling code to the gsm_04_08_utils.c and add a
note that the method value needs to be checked.
2009-10-27 04:52:30 +01:00
Holger Hans Peter Freyther ff3f260e4f [gsm48] Move RR CHANNEL MODIFY to gsm_04_08_utils.c
Be able to send RR CHANNEL MODIFY from the BSC/MSC code
as well. Move the method that knows about the IPAccess RTP
and issues the "bind" to the utils tool
2009-10-27 04:52:29 +01:00
Holger Hans Peter Freyther e81a6109f9 [gsm48] Add generation of ASSIGNMENT COMMAND to the 0408 utils
Add code to generate an assignment command for a given lchan. It
is expected that the lchan is modified already and the mode will
be picked up from their. Currently only the mandantory items
are supported.
2009-10-27 04:52:29 +01:00
Holger Hans Peter Freyther 55aac6e868 ipaccess-config: Introduce stream-id/oml_tei to make it work again
ipaccess-config stopped working after the introduction of
multi-TRX/RSL stream id support in commit 8175e95222.

Set the oml_tei to 0xff by default and add an option to set
a different stream id.
2009-10-27 03:41:09 +01:00
Harald Welte 8c8f791dbe [USSD] more whitespace fixes 2009-10-26 20:42:55 +01:00
Harald Welte 17e5f97958 [USSD] whitespace fixes
This is a purely cosmetic patch
2009-10-26 20:42:07 +01:00
Mike Haben 2449b37dfe [USSD] various USSD improvements
- Improved handling of extension-number string (as per review)
- Guard against a buffer-overflow if mobile sends a too-long USSD
- declare some function-parameters const
- fix gsm_ts_name function to display the right BTS number (bts->nr rather than bts->bts_nr)
2009-10-26 20:39:26 +01:00
Mike Haben dc329a6cdb [USSD] eliminate static global variables
This patch removes the need of static global variables and introduces a new,
caller-allocated 'struct ussd_request' that needs to be passed to the various
functions.
2009-10-26 20:39:26 +01:00