aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2009-01-19don't logon twiceHarald Welte1-2/+2
2009-01-18add bs11_config as LMT alternativeHarald Welte2-1/+374
2009-01-18abis_nm_reset_resource is a bs11 specific functionHarald Welte1-3/+3
2009-01-18Implementation of GSM12.21 LOAD SOFTWARE (BS11 dialect thereof)Harald Welte1-14/+300
2009-01-18add BTS TYPE field to facilitate future non-BS11 BTS supportHarald Welte1-0/+1
2009-01-18abis_nm: use correct length in 08.59 OML header for all messagesHarald Welte1-14/+9
2009-01-18abis_nm: more BS11 specific messages for configurationHarald Welte1-11/+44
2009-01-18* prefix all BS11 specific OML functions with proper nameHarald Welte2-12/+83
* add more BS11 specific OML commands (TRX power, logon, OML TEI, ...)
2009-01-18add some more BS11 specific OML definitions Harald Welte1-1/+1
2009-01-11fix typoHarald Welte1-1/+1
2009-01-10If there is already a subscriber and it does not equal to us -> moanHarald Welte1-0/+5
And unreference the gsm_subscriber object otherwise we would leak.
2009-01-10Make mi_to_string parse the TMSI we generate, finish CM Service Request ↵Harald Welte1-10/+27
implementation The TMSI encoding is up to us but generate_mid_from_tmsi and mi_to_string did not agree on the encoding. Adjust mi_to_string to properly decode the TMSI generated by generate_mid_from_tmsi. Check that the four bits are '1111' and that the length is five. Memcpy the bytes to tmsi (to work with ARM or such) and convert the number to host order... Implement the CM Service Request. Try to get the subscriber from the TMSI and assign it to the gsm_lchan. There is a small issue that will be fixed in the next commit. (done by z.)
2009-01-10Start working on CM Service RequestHarald Welte1-5/+51
Be able to send Accept/Reject the Service Request. Use mi_string instead of the the msgb buffer (even if it is memsetted and such)... The TMSI allocation seems to be a bit problematic and needs some further checking. The rough idea is that we try to find the subscriber for a CM Service Request and then decide based on the subscriber if we want to handle the call.
2009-01-09Reset the use_count to zero in chan_freeHarald Welte1-0/+5
It is possible that the BTS is closing the channel even when our upper layers are doing work. Reset the use_count add a fixme to call cancellations for pending operations. Cancellation of the call state (state machines in general) and such come into mind...
2009-01-09Use use_lchan/put_lchan for call handling to keep the channel upHarald Welte1-1/+6
Increase when the refcount of the lchan when we initiate a call, get a SETUP message and put it when we want to release the call... Once we have proper Q.931 support the use/put needs to be improved, e.g. we currently do not allow to hangup from the network, and it will ring until the end of time...
2009-01-09Print the refcount of the lchan as wellHarald Welte1-1/+2
2009-01-06[paging] Page pagegroup one...Harald Welte1-0/+19
Currently we get OVERLOAD (8.6.3 of 08.58) and no CCCH LOAD INDICATION... we will have to handle the OVERLOAD somehow...
2009-01-06Hook the paging code into bsc_hack.c and telnet_interface.cHarald Welte3-2/+54
Wrote and test code to add and remove paging requests... This will be using the fact that the linux list is building a circle on each tick we can send one/x paging requests and continue round robin...
2009-01-06Start creating a paging layer...Harald Welte2-1/+84
You can request to open a channel to a MS and the paging layer will call you once the channel is allocated. Internally the CCCH Load Indication will be handled and retry to page a terminal.
2009-01-06Handle TMSI reallocation complete by printing the subscriberHarald Welte1-1/+6
It looks like that certain phones that send their old TMSI from a different network and we assign them a new one with LOCATION UPDATING ACCEPT will send us a TMSI Reallocation Complete. Print out the the imsi.
2009-01-06Allow to set a different ARFCNHarald Welte1-3/+24
Add the -f option to use a different channel. This is done by patching the various tables before the OML and RSL is brought up. It looks like it is working... Patch by Harald, moving of the patch_tables invocation by zecke
2009-01-06Tabs no Spaces... at least hereHarald Welte1-1/+1
2009-01-05add initializer function for subchan_demuxHarald Welte1-0/+13
2009-01-05* add function to change c-bits in TRAU frame from uplink to downlinkHarald Welte1-4/+118
* add function to re-encode an exploded TRAU frame into a bit-per-byte stream
2009-01-05handle IDLE speech frames in trau_frame codeHarald Welte1-0/+3
2009-01-05make sure we build (even if not use) subchan_demux and trau_frame codeHarald Welte1-1/+2
2009-01-05add (untested) TRAU frame decoder with support for FR/EFR and AMRHarald Welte1-0/+115
2009-01-05add (untested) 16kbit E1 sub-channel demux with TRAU frame syncHarald Welte1-0/+166
2009-01-04Make gcc happy and remove a couple of warningsHolger Freyther9-299/+49
Remove the callbacks from gsm_network for now. A set of different callbacks will be back. E.g. when the paging is completed, when the Q.931 like call handling is there... Remove var's or move them into #if 0, remove unused stuff that looks like we do not need it anytime soon or #if 0 them, move stuff around.
2009-01-04Be able to initiate paging from the telnet interfaceHolger Freyther2-4/+32
The actual paging by subscriber needs to be implemented
2009-01-04Fix warningHolger Freyther1-1/+1
2009-01-04Export the gsm0411 alloc and send functionHolger Freyther1-2/+2
2009-01-04Some simple size check. We would not overflow but would send garbageHolger Freyther1-0/+7
Check the size
2009-01-04make use of new functions to print string chreq reason and lchan typeHarald Welte1-2/+3
2009-01-04use get_[lp]chan_name() functions for telnet interfaceHarald Welte1-4/+4
2009-01-04functions to convert lchan/pchan type into human-readable stringHarald Welte1-0/+50
2009-01-04Add some functions to CREATE OBJECTs in the BS-11 internal databaseHarald Welte1-0/+39
2009-01-04Implement sending custm GSM 04.08 commandsHolger Freyther1-2/+24
First you would page the IMSI and then send GSM 04.08 commands to the MS. This should help when testing new commands
2009-01-04Make gsm48_sendmsg public as wellHolger Freyther1-1/+1
2009-01-04Make gsm48_msgb_alloc public and usable for the telnet_interfaceHolger Freyther1-1/+1
2009-01-04Implement the call command...Holger Freyther1-1/+12
Passing of an origin is missing this will need work in gsm_04_08.
2009-01-04Implement put_channel/get_channel, save on which bts we currently operateHolger Freyther1-2/+42
Allow to change the refcount for a given channel. Store which bts is our primary bts. A command to switch the primary bts will be added as well. This makes entering and parsing of commands more easy.
2009-01-04Add implementation to find a lchan by the struct gsm_subscriberHolger Freyther1-0/+16
Really compare pointers to check if the one gsm_subscriber is equal to the other... gsm_subscriber should be unique for a given IMSI so comparing the pointers should be fine.
2009-01-04Define the gsm_subscriber getter functions in the headerHolger Freyther1-2/+2
2009-01-04Add a show command to list the channel allocationHolger Freyther2-0/+65
Example output show BTS #0 on link 0 LOC: 1 TRX: 1 CCCH0: arfcn:123,#0 TRX: 0 ARFCN: 123 TS: #0 pchan: 2 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #1 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #2 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #3 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #4 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #5 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #6 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil) TS: #7 pchan: 0 flags: 0 LCHAN: #0 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #1 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #2 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #3 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #4 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #5 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #6 type: 0 subscriber: na/na/na use: 0 loc: (nil) LCHAN: #7 type: 0 subscriber: na/na/na use: 0 loc: (nil)
2009-01-03define and use enum values for BS11 (or Siemens?) specific OML message typesHarald Welte1-3/+3
2009-01-03use NM_MT_* enum instead of hard-coded valuesHarald Welte1-2/+2
2009-01-03Make wireshark happy.Holger Freyther1-1/+1
Removing the P Bit from the fake LAPD frame will make wireshark run the data through the GSM RSL dissector with the right SAPI and LAPD preference setting.
2009-01-03Go through del_timer otherwise in_list will not be reset leading to crashes...Harald Welte1-1/+1
2009-01-03Readd the dummy lapd header... this gives valid TEI/SAPI informationHarald Welte1-2/+22
Besides that the header is spoofed, we lose the information about the channel (we will have to add our own encap type)