AgeCommit message (Collapse)AuthorFilesLines
2016-03-25WIP.. send the rtp connectzecke/wip/sip-invite-cancelHolger Hans Peter Freyther1-1/+57
2016-03-25WIOP... connect call.. and handle other parts of it tooHolger Hans Peter Freyther2-2/+185
2016-03-24WIP..Holger Hans Peter Freyther6-4/+120
2016-03-24mncc: Refactor and reduce some code clones for sanity checksHolger Hans Peter Freyther1-44/+28
Not every message might have the size of gsm_mncc and the size check is done inside each routine. Routines that relate to calls now share the code to check the size and the look-up to find the leg.
2016-03-24mncc: Prepare alerting and and connecting the callHolger Hans Peter Freyther2-2/+67
What is not done is to actually set-up rtp that it can flow to the now confirmed remote.
2016-03-24mncc: Handle disconnect and release the callHolger Hans Peter Freyther1-0/+55
Send a release request and release the leg on conformation
2016-03-24mncc: In case of an unexpected REL.IND inform the other leg about itHolger Hans Peter Freyther3-1/+20
I had modified my code to do nothing after having sent the PROCEEDING message. First the MS will issue a DISCONNECT.IND (which I ignored) and then there will be REL.IND. Let's inform the other leg about this event and let's assume the call will then be terminated.
2016-03-24call: Change to past tense and move code after the freeHolger Hans Peter Freyther1-1/+2
Reading the "releasing" log output sounded like one more message had been sent and this code is waiting for something. Take a copy of the call id and then print that the call has been released.
2016-03-24mncc: Log commands in hex to find the name more easily in mncc_protocol.hHolger Hans Peter Freyther1-2/+3
In the long run we should print these by name and not by the number but as the table is in OpenBSC and I did not want to copy it we will have to cope with the numbers a little longer.
2016-03-24call/mncc: Set proceeding and deal with release based on this stateHolger Hans Peter Freyther2-0/+46
Let's inform the MS that we have collected everything to move forward with the call. A new way to release the call is required in this state.
2016-03-24call: Re-order includes from local to osmocom to systemHolger Hans Peter Freyther1-1/+2
Let's follow the self first, local next, osmocom, system order of include files.
2016-03-24app: Release the call by releasing the initial requestHolger Hans Peter Freyther1-1/+1
This will then go through the release procedure of the relevant call instead of letting it timeout on the initial leg.
2016-03-24mncc: Extract the RTP port information before continuingHolger Hans Peter Freyther2-1/+17
These need to be used by the SIP leg to move forward.
2016-03-23call: Continue up to the point of call routingHolger Hans Peter Freyther3-2/+58
We accept the call on MNCC and ask the core to select/create the second leg of the call.
2016-03-23mncc: Add a timeout when issuing a MNCC commandHolger Hans Peter Freyther2-0/+36
2016-03-23mncc: Remember the IMSI as wellHolger Hans Peter Freyther2-0/+2
2016-03-23mncc: Add logging messages about the leg on all pointsHolger Hans Peter Freyther1-7/+18
With a bit more code the logging will print: <0001> mncc.c:233 Created call(5001) with MNCC leg(2147483659) IMSI(274018000000001) <0001> mncc.c:178 RTP set-up continuing with call with leg(2147483659) <0001> mncc.c:65 Got response, stopping timer on leg(2147483659) <0002> call.c:51 call(5001) releasing. Use %zu for size_t arguments, e.g. returned from sizeof.
2016-03-23doc: Update with some requirements and limitationsHolger Hans Peter Freyther1-0/+16
2016-03-22call: Add a backpointer from leg to call and drop the argumentHolger Hans Peter Freyther4-19/+18
Simplify the structure by either working with a call or just a leg of it. No need to carry both pointers all the time.
2016-03-22mncc: Dispatch setup and issue rtp create in response then continueHolger Hans Peter Freyther4-0/+205
The code is not tested and might be broken. Parse the setup request of a MO call, create a new "call" with a MNCC leg and then issue the call to create a RTP socket. Once this has been done, release the call as the code to open a second leg has not been written yet.
2016-03-22mncc: Handle the hello message from NITBHolger Hans Peter Freyther2-6/+63
Make a simple version comparison and close the socket in case of a version mismatch. Begin to dispatch messages coming from the NITB and log (all) unhandled messages.
2016-03-22call/app: Hook the MNCC disconnect event in the app and release callsHolger Hans Peter Freyther7-0/+104
In case the MNCC server is crashing we need to release all calls, use the event emitted by the MNCC connection and iterate over all calls and call the release function.
2016-03-22call: Introduce a structure for representing a callHolger Hans Peter Freyther4-1/+73
Right now a call has two legs, the initial one and the remote. In general this will allow a SIP to SIP, SIP to MNCC and MNCC to MNCC structure in the future.
2016-03-22sip: Introduce source file to setup sofia sipHolger Hans Peter Freyther5-8/+103
This code is capable of creating an agent that will bind on the configured local address. The next steps are to configure the library in terms of allowed features and prepare call handling.
2016-03-21mncc: Add code to manage the mncc connection for CCHolger Hans Peter Freyther7-17/+135
Connect, re-connect and read messages from the MNCC socket. Dispatch the event in case the system got disconnected. Move the app definition to app.h and use it everywhere. Begin with a new call for mncc.
2016-03-21mncc: Add the protocol description from OpenBSCHolger Hans Peter Freyther1-0/+219
2016-03-21vty: Work on configuration of the MNCC to SIP gatewayHolger Hans Peter Freyther4-3/+210
We will add addressing by IMSI but right now let's focus on the minimum of what needs to be there.
2016-03-21telnet: Use the dynamic interface for binding the VTYHolger Hans Peter Freyther1-1/+4
This way one can bind the interface to another ip address.
2016-03-21logging: Define default logging categoriesHolger Hans Peter Freyther2-1/+25
2016-03-21Initial commit for a MNCC to SIP gateway (and maybe auth GW too)0.0.1Holger Hans Peter Freyther12-0/+1141
* It is written in C and using libosmovty and other data structures * It is using sofia-sip for the SIP handling as a good library for such a task * It is using glib for the sofia-sip event loop integration. In the future we can write our own root context but right now that looks like a necessary evil. No glib usage is allowed in this code and only sofia-glib is linked.