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

37 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 6c57c968dd grammar: Speed-up quoted string parsing
On the sysmoBTS (ARM7TDMI) the parsing of a simple response
with quoted string takes up to 200ms. Parsing the single
digest line takes 40ms itself. Create a custom parser to
speed things up to avoid the backtracking between three
optional parsers that are combined in a choice.
2014-09-05 18:56:00 +02:00
Holger Hans Peter Freyther 24dbbc986c callagent: Avoid running into the EndOfStream exception 2014-06-02 21:34:22 +02:00
Holger Hans Peter Freyther b2099a8474 invite: First shot at handling the SIP Invite
Create a SIPIncomingCall and register the dialog. The "Via" and
remote handling is broken. The "respond with" is broken too. The
whole dialog/request passing to the UserAgent is broken and needs
to be fixed.
2014-05-28 11:53:17 +02:00
Holger Hans Peter Freyther 69810d6afa invite: Create a base class for the "call"
I nee to differentiate between incoming and outgoing calls. At
the same time a lot of logic can be shared. Specially at the
time the call is established the hangup will work the same on
both sides.
2014-05-27 18:21:18 +02:00
Holger Hans Peter Freyther a819a8b877 invite: Begin to handle the incoming INVITE from the network
Add a new test, inject a SIP Invite. Verify that the SIPUserAgent
rejects the invite.
2014-05-27 15:01:50 +02:00
Holger Hans Peter Freyther 1a634a1492 identity: Remove use the "contact" and userString from SIPIdentity
The code allows (and that looks like a good thing) to have a different
from and username in the authorization. The userString was not really
right as it was missing the URL part (sip/sips) and the splitting was
broken as well.
2014-04-22 14:39:42 +02:00
Holger Hans Peter Freyther 3779496a4a identity: Make the SIPSession work based on identity 2014-04-03 11:05:08 +02:00
Holger Hans Peter Freyther 72afcc72e4 identity: Introduce the concept of an identity to the useragent
The Transport to UserAgent relationship is a one to one. E.g. we
need this to generate unique branch and call-ids to make sure the
dialogues are different. To be able to use multiple identities I
introduce a SIPIdentity class. Currently the user agent has one
main identity but this could change over time.
2014-04-02 17:44:39 +02:00
Holger Hans Peter Freyther fd1d3829ad proxy: Handle ProxyAuthenticate/ProxyAuthorize
Add a testcase for testing ProxyAuthenticate and ProxyAuthorize,
extend the grammar and parser to handle the needed bits. Document
another error/failure with the dialog handling code and create a
testcase that fully connects a call.
2014-03-24 14:53:14 +01:00
Holger Hans Peter Freyther 5282dff121 register: Add an implementation for the register handling. 2014-02-25 17:00:01 +01:00
Holger Hans Peter Freyther 32cba85ab4 misc: Split CallAgent/UserAgent into two 2014-02-15 18:33:01 +01:00
Holger Hans Peter Freyther 91bfff21b7 misc: Split SIPParser into multiple files 2014-02-15 18:27:37 +01:00
Holger Hans Peter Freyther 812d164391 misc: Split SIPRandom into separate files 2014-02-15 18:05:37 +01:00
Holger Hans Peter Freyther 1e4cb83af0 misc: Split SIPCall.st into separate files 2014-02-15 18:03:31 +01:00
Holger Hans Peter Freyther 2454ca1372 misc: Split SIPtransactions.st into one file per class 2014-02-15 17:56:49 +01:00
Holger Hans Peter Freyther 19c98f3ec9 misc: Move tests into the test directory 2014-02-15 09:47:33 +01:00
Holger Hans Peter Freyther b739a69829 misc: Split SIPRequests.st into many files 2014-02-15 09:45:29 +01:00
Holger Hans Peter Freyther 150e7849df misc: Move the transport code to the transport directory 2014-02-15 09:40:12 +01:00
Holger Hans Peter Freyther ac05185999 misc: Move the auth related items to the authentication directory 2014-02-15 09:38:37 +01:00
Holger Hans Peter Freyther 13d4223a23 misc: Split the SIPParams into one class per file 2014-02-15 09:37:14 +01:00
Holger Hans Peter Freyther 903594e07d authorization: Create a class that can be added as parameter
We would need to have SIPParameter as a baseclass that works without
having a dataobject. Right now this is a duck-type as it implements
the used methods.
2014-02-14 17:01:24 +01:00
Holger Hans Peter Freyther fc2f937a60 callagent: Create a simple test that verifies creation of a call 2014-02-14 16:59:14 +01:00
Holger Hans Peter Freyther 193126c287 digest: Implement the digest authentication for SIP
This only implements one of the possible approaches for the digest
handling. This is a very simple test and the choiche of the same
username/password was a bit unfortunate.
2014-02-14 16:58:33 +01:00
Holger Hans Peter Freyther abc1a933fd transport: Move the two transport classes into separate files
Follow the one class per file rule and split things up.
2014-02-11 22:57:27 +01:00
Holger Hans Peter Freyther 6559cc6c1c pharo: Add a Makefile and begin with the porting.
* Change the category for the tests and extensions
* Rewrite usages of >>nl and >>cr
* There are still issues with the Socket code, Datagram handling
  and and expands.
2013-03-31 19:40:05 +02:00
Holger Hans Peter Freyther fad5328063 transport: Create a testcase for sending data through the transport 2012-09-07 14:58:08 +02:00
Holger Hans Peter Freyther 55765c9f0d callagent: Start to deal with requests in new dialogs
* This isn't doing proper routing (e.g. the via is not modified
  properly but we return it to the right address)
* An unknown BYE will be acked with a 481. The 'respondWith:...'
  includes the wrong 'Allow:' but it is good enough from the
  structure for now.
* Re-Order the loading of files as the SIPUserAgent is extended
  the SIPRequests.
* Add the port/ip to the SIPDialog so that responding to the
  request is possible.
2012-08-06 01:20:54 +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 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 2a7a1bb3cb callagent: Fix the SIPRequests>>#addDefaults: with the OrderedCollection 2011-06-30 11:36:56 +02:00
Holger Hans Peter Freyther becf8a9cd8 callagent: Rename SIPVia.st to SIPParam.st
SIPParams.st will hold multiple SIPParameter classes
2011-06-14 20:31:04 +02:00
Holger Hans Peter Freyther 7d0a7945c7 callagent: Parse the Via tag in depth to reach the branch
Add the grammar for the Via parameter, introduce a generic
array folding class to turn it into a string. Add a data holder
that returns the complete string but also the branch if that
is required.
2011-06-13 23:11:35 +02:00
Holger Hans Peter Freyther 3c3e759093 callagent: Test the parser a bit more 2011-06-13 19:57:31 +02:00
Holger Hans Peter Freyther 75722e9f84 callagent: SIPParser must come after SIPGrammar was loaded 2011-06-13 19:57:31 +02:00
Holger Hans Peter Freyther 1f14fda8b4 callagent: Implement a simple SIPParser on the grammar
Create a very simple parser based on the grammar. This way
we can easily parse and recreate the message.
2011-06-13 19:57:31 +02:00
Holger Hans Peter Freyther c9362c643e callagent: Add SIP UserAgent/Transport/Transaction code
The code is not yet fully working, it is missing sending
the request, dealing with timeouts, parsing the response,
callbacks and everything.
2011-06-13 14:00:21 +02:00
Holger Hans Peter Freyther c1457171fa sip: Add package.xml for the SIP code 2011-06-11 23:00:36 +02:00