forked from RestComm/jain-sip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
executable file
·192 lines (143 loc) · 4.91 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
JAIN-SIP 1.2 Reference Implementation
--------------------------------------
CONTENTS
-------
See docs/index.html
BUILD Notes
-----------
Platforms:
---------
You need to install J2SE JDK 1.5 or above. You can
get the SDK from http://www.javasoft.com
Dependencies
------------
1. You need to install ant and the junit extension for ant on your machine.
2. You need to have junit.jar in your classpath.
3. You need to have log4j.jar in your classpath (included in this distribution).
There are versions of the dependent libraries in the lib directory.
For your build environment, please edit ant-build-config.properties.
YOU DO NOT need jdom.jar and ant.jar. These are strictly for buildng
the ant tools.
Building It from Scratch
-------------------------
The distribution is pre-built but should you feel inclined to make changes,
or run the examples, you may wish to rebuild everything.
ant make
Builds everything.
Building the TCK
----------------
Edit tck.properties and set the claspath to your implementation.
ant runtck
(builds a jar file containing the TCK and runs it).
Look in test-reports to see the results of your run.
Extensions
----------
IMS Headers, headers in gov.nist.javax.sip.extension and all the classes
that are suffixed with "Ext" in their name can be used without concern as
they will be included in the next generation of the API. These will not
change as a rule.
You should refrain from using any other internal classes. These are subject
to change without notice.
----------------------------------------------------------------------------
Running the examples
Please ensure that the directory classes (relative to where you have
built the distribution) is included in the classpath. Ant targets
are provided in each example directory to run the examples.
How to get Source Code Refreshes
--------------------------------
Cruise Control Snapshot
-----------------------
http://hudson.jboss.org/hudson/view/Mobicents/job/jain-sip/
----------------------------------------------------------------------------
SVN Access
----------
https://svn.java.net/svn/jsip~svn/
Please sign up as a java.net user in order to get svn access.
----------------------------------------------------------------------------
Credits
--------
Architecture / API design:
-------------------------
JAIN-SIP: Joint Spec Leads -- Phelim O'Doherty (BEA) and M. Ranganathan (NIST).
JAIN-SDP: The SDP API spec lead is Kelvin Porter from Cisco.
Sample Sequence diagram on how a request is processed:
![Alt text](http://g.gravizo.com/g?
@startuml;
autonumber;
actor UAC;
boundary UDPMessageProcessor;
control UDPMessageChannel;
control NISTSIPMessageHandImpl;
control EventScanner;
legend left;
Handling incoming UDP request;
endlegend;
note right of UDPMessageProcessor #aqua;
NIST SIP abstraction that maps to SIPListener;
end note;
note right of NISTSIPMessageFactoryImpl #aqua;
Created on stack init;
end note;
UAC -> UDPMessageProcessor : INVITE;
create UDPMessageChannel;
UDPMessageProcessor -> UDPMessageChannel;
activate UDPMessageChannel;
UDPMessageChannel -> StringMsgParser : parseSIPMessage;
UDPMessageChannel -> SIPTransactionStack: nesSIPServerRequest;
activate SIPTransactionStack;
SIPTransactionStack -> SIPTransactionStack : createTransaction;
SIPTransactionStack -> NISTSIPMessageFactoryImpl : newSIPServerRequest;
create NISTSIPMessageHandImpl;
deactivate SIPTransactionStack;
UDPMessageChannel -> NISTSIPMessageHandImpl : processRequest;
activate NISTSIPMessageHandImpl;
NISTSIPMessageHandImpl -> SIPTransactionStack : getDialog;
NISTSIPMessageHandImpl -> EventScanner : deliverEvent;
activate EventScanner;
EventScanner -> SIPListener : processRequest;
deactivate EventScanner;
deactivate NISTSIPMessageHandImpl;
deactivate UDPMessageChannel;
@enduml
)
![Alt text](http://g.gravizo.com/g?
@startuml;
actor User;
participant "First Class" as A;
participant "Second Class" as B;
participant "Last Class" as C;
User -> A: DoWork;
activate A;
A -> B: Create Request;
activate B;
B -> C: DoWork;
activate C;
C --> B: WorkDone;
destroy C;
B --> A: Request Created;
deactivate B;
A --> User: Done;
deactivate A;
@enduml
)
Implementation Lead:
---------------------
"M. Ranganathan" <[email protected]>
Implementation Team ( version 1.2)
----------------------------------
"M. Ranganathan" <[email protected]>
"Jeroen van Bemmel" <[email protected]>
TCK (version 1.2)
----------------
M. Ranganathan <[email protected]>
Jeroen van Bemmel <[email protected]>
---------------------------------------------------------------------------
LICENSE
-------
The implementation is public domain although the API itself is'nt.
See the license directory in this distribution for definitive information.
----------------------------------------------------------------------------
Substantial input by early adopters and fearless users.
See List of Contributions at:
file:./www/README.html
----------------------------------------------------------------------------