smalltalk
/
osmo-st-all
Archived
1
0
Fork 0
Commit Graph

795 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 0d9e38cc4e test: Make the smoke test run again 2011-07-15 10:06:52 +02:00
Holger Hans Peter Freyther 0e699fdee2 callagent: Improve the logging and remove the printNl. 2011-07-06 20:34:57 +02:00
Holger Hans Peter Freyther 907409c0c9 callagent: Handle the BYE Request to close down a connection.
Handle the incoming request, in case of the BYE close down the
session...
2011-07-06 20:34:20 +02:00
Holger Hans Peter Freyther 93f816ea4f callagent: Introduce the SIPSessionBase, prepare handling Requests
The name session base is a bit misleading as it is not the session
that holds the initial dialog, the confirmed dialog, the UAS and then
also the session when it is setup. When the dialog gets confirmed we
will register it with the useragent and then will be called for new
requests. On hangup/cancel the dialog will be scheduled for removal.
2011-07-06 19:45:34 +02:00
Holger Hans Peter Freyther 44efac4f5b callagent: Big performance improvement, cache the parser
Constructing a PetitParser is an expensive operation (Object>>becomeForward:)
we can keep the parser in the class. For the SIPTransactions we keep it as
a global, it is assumed that all SIPTransactions operate through the same
process and will not run into concurrency issues.
2011-07-06 19:25:04 +02:00
Holger Hans Peter Freyther 29fdd40b85 callagent: Add some more tests to the Via parsing. 2011-07-06 18:47:07 +02:00
Holger Hans Peter Freyther faf842cf21 callagent: Handle the the ip address properly... fold/flatten it 2011-07-06 18:39:09 +02:00
Holger Hans Peter Freyther 22f6836925 timer: Try to avoid copying the entire timerlist all the timer
Make sure that we only remove from one process, this way we can
check if the list is empty without having a lock. The list is sorted
so even if we get interrupted between the [condition] whileFalse: [res]
and someone adds an older timer, it is okay to use this timer.
2011-07-06 16:56:09 +02:00
Holger Hans Peter Freyther 117fba25ef callagent: Remove the transaction 60s after we think it should go
Do not allow to keep the transaction alive after we decided it
should go.
2011-07-06 15:04:48 +02:00
Holger Hans Peter Freyther e9a9647cad EXAMPLE: Use the new SIPCall class in the example 2011-07-06 10:13:42 +02:00
Holger Hans Peter Freyther 47034082bb Update the DESIGN document for this code 2011-07-06 10:10:07 +02:00
Holger Hans Peter Freyther 6f2c4e98c7 dispatcher: Run the dispatch queue with a higher priority
We want the dispatching to happen faster, change the priority
and see how things will turn out.
2011-07-06 09:58:13 +02:00
Holger Hans Peter Freyther f997ab4fbc callagent: Work on canceling a transaction..
This is still more complicated (and wrong) then it should be,
when we CANCEL an INVITE we can either send a CANCEL or we need
to wait for a 100. Now the CANCEL could be too late (the server
already sent a 200), in that case we would get a 200 for the
INVITE and pass this to the higher levels (which we probably
should).
2011-07-05 20:27:22 +02:00
Holger Hans Peter Freyther 9aa3efa1f4 callagent: Fix the SIPVia parsing with optional parameters 2011-07-05 17:14:12 +02:00
Holger Hans Peter Freyther 857486d616 callagent: Fix Contact, SIPCall state, leave the transaction
When sending a result, it might get lost and we will get
another request to reply to, allow to change to the same
state, fix the contact header.
2011-07-05 15:44:43 +02:00
Holger Hans Peter Freyther 3a503338e0 callagent: Provide an easy method to either cancel or hangup 2011-07-05 14:25:43 +02:00
Holger Hans Peter Freyther 12b320f012 callagent: Work on call Call Control, setup the call properly...
- Stop the retransmit timer after we checked the From/To
- Add proper state transitions to SIPCall...
- Support not sending an ACK...
2011-07-05 14:20:57 +02:00
Holger Hans Peter Freyther e3960bea3f callagent: Check if two SIPDialog's are compatible 2011-07-05 12:06:36 +02:00
Holger Hans Peter Freyther 6bc4e9826d callagent: Remove unused variable in the test code. 2011-07-05 11:21:00 +02:00
Holger Hans Peter Freyther ef1cab4bf3 callagent: The SDP file is not part of the dialog but of the session
Do not keep the SDP file inside the dialog, it would be part of
the session.
2011-07-05 11:18:34 +02:00
Holger Hans Peter Freyther 8304e862f0 callagent: Add code to create a SIPDialog from the request/response
The code only tests this with the response but it should work for
the request as well. Depending on this one needs to switch from/to
but this needs to happen on a higher level.
2011-07-05 11:14:55 +02:00
Holger Hans Peter Freyther 9caf52cdcc callagent: Fix the string for logging the state transition 2011-07-05 11:14:10 +02:00
Holger Hans Peter Freyther accd04e522 callagent: Change the CSeq code
The CSeq only needs to be unique within a dialog, so we can have
a global function to generate a valid CSeq start (< 2^31) and then
handle cseq's within the dialog.
2011-07-05 11:08:48 +02:00
Holger Hans Peter Freyther 23c2a9ca8b misc: Document some more issues with the routing set 2011-07-05 11:06:35 +02:00
Holger Hans Peter Freyther bba8bd1bc2 callagent: Provide a proper Contact header for this service 2011-07-05 09:32:20 +02:00
Holger Hans Peter Freyther d188d2afed callagent: Introduce high level SIP Call
Introduce a high level class that can create multiple transactions,
handles the sequence numbers, the dialogs, the opened session and
provides a nice call, hangup, cancel, terminate interface.
2011-07-04 22:30:14 +02:00
Holger Hans Peter Freyther 44bea36041 callagent: Timeout fixes, pass the dialog along...
This is fixing a previous commit, fixes the timed out handling, attempts
to change the initial dialog -> confirmed dialog handling (but still
gets it wrong, it should compare the dialog, or just get a new dialog
from the response and check if it is compatible with the initial dialog).
2011-07-04 22:23:29 +02:00
Holger Hans Peter Freyther ef0823526f transaction: Remember if an INVITE has been canceled.
Only the INVITE transaction can be canceled, when it gets
canceled we might or might not get a confirmation or we might
be too late to cancel things. With this flag we will be able
to do something sensible when we get a late final response.
2011-06-30 12:11:53 +02:00
Holger Hans Peter Freyther f720f9ea0a transaction: Make the callbacks pass the dialog
The transaction now work on something called an initial dialog, e.g.
during a INVITE we go from an initial dialog to a confirmed dialog and
maybe create a session. Prepare the code to support this.

It is still not clear how callbacks, dialog confirmation and session
creation will be handled but it will somehow fit together.
2011-06-30 12:08:50 +02:00
Holger Hans Peter Freyther 276fdb54b3 parser: Add the parsing to the From tag as well 2011-06-30 12:05:27 +02:00
Holger Hans Peter Freyther 12a83f9fad parser: Create the test data using a WriteStream 2011-06-30 11:41:50 +02:00
Holger Hans Peter Freyther b41d170320 parser: Extract the generic_param/to_param provide access to the tag
Parse every generic_param (or specialized) into a SIPGenericParam,
provide a asFoldedString implementation, tell the folding code about
it, create a SIPToFromParam that holds the list of params.
2011-06-30 11:36:57 +02:00
Holger Hans Peter Freyther 59d476b5cd grammar: Add the category for the display_name selector 2011-06-30 11:36:57 +02:00
Holger Hans Peter Freyther 105718a17b grammar: Flatten the display_name to not do it later
For now we do not need to have fine grained access
to the string and it is easier to flatten things here
than later.
2011-06-30 11:36:57 +02:00
Holger Hans Peter Freyther 460b67e743 grammar: Parse the Contact header properly 2011-06-30 11:36:57 +02:00
Holger Hans Peter Freyther ed42decd4a grammar: Parse the To/From header according to the grammar
Right now the UTF8 support for the displayname is still
missing and needs to be added later. The to_spec is not
part of the RFC but it makes our code more happy if things
look like the from_spec.
2011-06-30 11:36:57 +02:00
Holger Hans Peter Freyther c386b9f147 callagent: Dispatch received data with OsmoDispatcher
Dispatch the data from thre socket in a new context. This assures
that we will not run into locking issues. One day where we will have
VMs that can use multiple cores we might have a dispatcher set in
each transaction/session. The we could establish a rule that each
transaction is dispatched in the right/same queue.
2011-06-30 11:36:57 +02:00
Holger Hans Peter Freyther 6e2cea1f6c callagent: Introduce timers, change locking, all work in progress
The idea is to introduce locking, but not within the callbacks,
allow to set a different SIPDialog, work on retransmit for simple
messages.
2011-06-30 11:36:56 +02:00
Holger Hans Peter Freyther 2a7a1bb3cb callagent: Fix the SIPRequests>>#addDefaults: with the OrderedCollection 2011-06-30 11:36:56 +02:00
Holger Hans Peter Freyther dac5de9a28 callagent: Use symbols for the states to have them easily printable 2011-06-30 11:36:56 +02:00
Holger Hans Peter Freyther 889461ca7f callagent: Allow multiple Via tags by having an OrderedCollection 2011-06-30 11:36:56 +02:00
Holger Hans Peter Freyther b6e8dd15c6 grammar: Remove inspect messages, no real value in them 2011-06-30 11:36:56 +02:00
Holger Hans Peter Freyther acef6cb076 bsc: Implement queuing of MGCP messages
Introduce a queue of MGCP messages, this way we can just schedule
MDCX, MDCX, DLCX without having to worry about when things will be
executed. The assumption is that MDCX/DLCX will not be scheduled when
CRCX is in-fly and then if things timeout.
2011-06-29 14:43:07 +02:00
Holger Hans Peter Freyther 039cb8a337 mo-call: Second part of the GSM48CCStatus handling
If we did something wrong, log it somewhere and close
the transaction.
2011-06-29 14:25:19 +02:00
Holger Hans Peter Freyther b8730c4fc7 mo-call: Use Symbols for the name of the state 2011-06-29 14:18:37 +02:00
Holger Hans Peter Freyther 3b6deba99f bsc: Dispatch IPA messages using the OsmoDispatcher
Handle the incoming IPA message in the OsmoDispatcher
context. This way we don't need to care about locking.
2011-06-29 14:16:46 +02:00
Holger Hans Peter Freyther e84e9ce915 callagent: Change the command to set the SDP file as such. 2011-06-29 10:28:26 +02:00
Holger Hans Peter Freyther a0dbcd42e2 callagent: Make it possible to stop/start the MGCPCallAgent
Remember the IP/Port, on start allocate the socket.
2011-06-29 10:08:14 +02:00
Holger Hans Peter Freyther 49c376dbf6 timer: Dispatch the whole timer in the main block. 2011-06-29 00:32:27 +02:00
Holger Hans Peter Freyther 95097f2e10 mo-call: Handle incoming GSM CC Status in case we did something wrong
GSM CC Status will inform us about stuff we didn't do correctly,
keep it and log it.
2011-06-28 21:30:48 +02:00