I am the CTO and development lead at VoIP.co.uk. We work on our in-house C++ SIP platform based slightly around the IMS concepts, and develop standards related to SIP within the IETF.
[ SIP Status Codes ] [ SIP Timers ] [ boost ] [ DTMF Standards ]
Our maintained sipuacap.xml file is here.
A SIP validator
We sometimes blog just here
CoreCore Updates
SDP
Misc SIP
Resource Management
RTP/RTCP/SRTP/RTSP
Media Control
DIAMETERNetwork
Extension Methods
Event Packages / Event Notification
Presencing / PIDF
Important Drafts
|
IANA Registry
URI schemasDocument/Storage (e.g XCAP)
Privacy Related
Transports/Routing
Extension Parameters
Authentication
Extension Headers
Extension Content Types
Extension Content Dispositions
Conferencing
Caller Preferences
Misc
Extensions
Signalling Compression
TLS/SSL/Crypto
MSRP
|
None of these items come with no garuntee of working until integrated with a VoIP.co.uk or Synergy Networking product.
Links mostly for my teams use.
100 Trying
180 Ringing
181 Call Is Being Forwarded
182 Queued
183 Session Progress
200 OK
202 Accepted [RFC3265]
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
305 Use Proxy
380 Alternative Service
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
410 Gone
412 Conditional Request Failed [RFC3903]
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Unsupported URI Scheme
417 Unknown Resource-Priority [RFC4412]
420 Bad Extension
421 Extension Required
422 Session Interval Too Small [RFC4028]
|
423 Interval Too Brief
428 Use Identity Header [RFC4474]
429 Provide Referrer Identity [RFC3892]
436 Bad Identity-Info [RFC4474]
437 Unsupported Certificate [RFC4474]
438 Invalid Identity Header [RFC4474]
480 Temporarily Unavailable
481 Call/Transaction Does Not Exist
482 Loop Detected
483 Too Many Hops
484 Address Incomplete
485 Ambiguous
486 Busy Here
487 Request Terminated
488 Not Acceptable Here
489 Bad Event [RFC3265]
491 Request Pending
493 Undecipherable
494 Security Agreement Required [RFC3329]
500 Server Internal Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Server Time-out
505 Version Not Supported
513 Message Too Large
580 Precondition Failure [RFC3312]
600 Busy Everywhere
603 Decline
604 Does Not Exist Anywhere
606 Not Acceptable
|
| Timer | Value | Section | Meaning |
|---|---|---|---|
| T1 | 500ms default | 7.1.1.1 | RTT Estimate |
| T2 | 4s | 7.1.2.2 | The maximum retransmit interval for non-INVITE requests and INVITE responses |
| T4 | 5s | 7.1.2.2 | Maximum duration a message will remain in the network |
| Timer A | initially T1 | 7.1.1.2 | INVITE request retransmit interval, for UDP only |
| Timer B | 64*T1 | 7.1.1.2 | INVITE transaction timeout timer |
| Timer C | > 3min | 6.6 (B11) | proxy INVITE transaction timeout |
| Timer D | > 32s for UDP | 7.1.1.2 | Wait time for response for TCP/SCTP retransmits |
| Timer E | initially T1 | 7.1.2.2 | non-INVITE request retransmit interval, UDP only |
| Timer F | 64*T1 | 7.1.2.2 | non-INVITE transaction timeout timer |
| Timer G | initially T1 | 7.2.1 | INVITE response retransmit interval |
| Timer H | 64*T1 | 7.2.1 | Wait time for ACK receipt |
| Timer I | T4 for UDP, 0s for TCP/SCTP | 7.2.1 | Wait time for ACK retransmits |
| Timer J | 64*T1 for UDP, 0s for TCP/SCTP | 7.2.2 | Wait time for non-INVITE request retransmits |
| Timer K | T4 for UDP, 0s for TCP/SCTP | 7.1.2.2 | Wait time for response retransmits |
| Timer L | 64 * T1 | draft-sparks-sip-invfix | Wait time for accepted INVITE request retransmits |
| Timer M | 64 * T1 | draft-sparks-sip-invfix | Wait time for retranmission of 2xx to INVITE or additional 2xx from other branches of a forked INVITE |
Includes fixes in draft-sparks-sip-invfix
IST SM |INVITE
|pass INV to TU
INVITE V send 100 if TU won't in 200ms
send response+-----------+
+--------| |--------+101-199 from TU
| | Proceeding| |send response
+------->| |<-------+
| | Transport Err.
| | Inform TU
| |--------------->+
+-----------+ |
300-699 from TU | |2xx from TU |
send response | |send response |
+--------------+ +-------------+ |
| | |
INVITE V Timer G fires | |
send response+-----------+ send response | |
+--------| |--------+ | |
| | Completed | | | |
+------->| |<-------+ INVITE | |
+-----------+ - | |
| | ACK +-----+ | |
| | - | | V |
| +--+ | +------------+ |
| | | | | |
| V +->| Accepted | |
Timer H fires | +-----------+ | | |
or | | | +------------+ |
Transport Error | | Confirmed | | ^ | |
Inform TU | | | +--+ | | |
| +-----------+ | +-----+ |
| | | 2xx from TU |
| | Timer I fires | send response |
| | - | |
| | | Timer L fires |
| | | - |
| | V |
| | +------------+ |
| +---->| | |
+---------->| Terminated |<--------------+
| |
+------------+
|
NIST SM |Request received
|pass to TU
V
+-----------+
| |
| Trying |-------------+
| | |
+-----------+ |200-699 from TU
| |send response
|1xx from TU |
|send response |
| |
Request V 1xx from TU |
send response+-----------+send response|
+--------| |--------+ |
| | Proceeding| | |
+------->| |<-------+ |
+<--------------| | |
|Trnsprt Err +-----------+ |
|Inform TU | |
| | |
| |200-699 from TU |
| |send response |
| Request V |
| send response+-----------+ |
| +--------| | |
| | | Completed |<------------+
| +------->| |
+<--------------| |
|Trnsprt Err +-----------+
|Inform TU |
| |Timer J fires
| |-
| |
| V
| +-----------+
| | |
+-------------->| Terminated|
| |
+-----------+
|
ICT SM |INVITE from TU
Timer A fires |INVITE sent Timer B fired
Reset A, V or Transport Err
INVITE sent +-----------+ inform TU
+---------| |--------------------------+
| | Calling | |
+-------->| |-----------+ |
300-699 +-----------+ 2xx | |
ACK sent | | 2xx to TU | |
resp. to TU | |1xx | |
+-----------------------------+ |1xx to TU | |
| | | |
| 1xx V | |
| 1xx to TU +-----------+ | |
| +---------| | | |
| | |Proceeding | | |
| +-------->| | | |
| +-----------+ 2xx | |
| 300-699 | | 2xx to TU | |
| ACK sent, +--------+ +---------------+ |
| resp. to TU| | |
| | | |
| V V |
| +-----------+ +----------+ |
+------------->| |Transport Err. | | |
| Completed |Inform TU | Accepted | |
+--| |-------+ | |-+ |
300-699 | +-----------+ | +----------+ | |
ACK sent| ^ | | | ^ | |
| | | | | | | |
+----+ | | | +-----+ |
|Timer D fires | Timer M fires| 2xx |
|- | - | 2xx to TU |
+--------+ | +-----------+ |
NOTE: V V V |
transitions +------------+ |
labeled with | | |
the event | Terminated |<-----------------------+
over the action | |
to take +------------+
|
NICT SM |Request from TU
|send request
Timer E V
send request +-----------+
+---------| |-------------------+
| | Trying | Timer F |
+-------->| | or Transport Err.|
+-----------+ inform TU |
200-699 | | |
resp. to TU | |1xx |
+---------------+ |resp. to TU |
| | |
| Timer E V Timer F |
| send req +-----------+ or Transport Err. |
| +---------| | inform TU |
| | |Proceeding |------------------>|
| +-------->| |-----+ |
| +-----------+ |1xx |
| | ^ |resp to TU |
| 200-699 | +--------+ |
| resp. to TU | |
| | |
| V |
| +-----------+ |
| | | |
| | Completed | |
| | | |
| +-----------+ |
| ^ | |
| | | Timer K |
+--------------+ | - |
| |
V |
+-----------+ |
| | |
| Terminated|<------------------+
| |
+-----------+
|
DSM for INVITE dialog usage (caller)
INV +-----------------------------------------------+
--->| Preparative |
+-----------------------------------------------+
| | |
| 3xx-6xx | 1xx-tag | 2xx
| | |
| | 1xx-tag |
| V w/new tag |
| +-----------------+ [new DSM] |
| 3xx-6xx | | | (new DSM |
+<--------| Early | | instance |
| | |<--+ created) |
| +-----------------+ |
| | | | 2xx w/new tag
| | BYE | 2xx | [new DSM]
| | +------------>+<-+ | (new DSM
| | | | instance
+-----C------------C-----+ +-----------C------+ | created)
| | Terminated | | | Confirmed | | |
| | +<----C---------| | | |
| | | | BYE(sr) | | | |
| | V | | V | |
| 2xx | +-----------+ | | +-----------+ | |
| +---C--| |---C-+ | | | | |
| | | | Mortal | | | BYE(r)| | Moratorium|<-C--+
| +---C->| |<--C-+ | | | |
| ACK | +-----------+ | | +-----------+ |
| | | | | | |
| | | Timeout | | | ACK |
| | | | | | |
| V V | | V |
| +---------------+ | | +-----------+ |
| | | | | | |--C-+
| | Morgue | | | |Established| | | 2xx,ACK
| | | | | | |<-C-+
| +---------------+ | | +-----------+ |
| | | |
+------------------------+ +------------------+
(r): indicates that only reception is allowed.
Where (r) is not used as an indicator, "response" means
receive, and "request" means send.
(sr): indicates that both sending and reception are allowed.
|
DSM for INVITE dialog usage (callee) INV +-----------------------------------------------+
--->| Preparative |
+-----------------------------------------------+
| | |
| 3xx-6xx | 1xx-tag | 2xx
| | |
| V |
| +------------------+ |
| 3xx-6xx | | |
+<--------| Early | |
| | | |
| +------------------+ |
| | | |
| |BYE/487(INV) | 2xx |
| | +------------>+<-+
| | |
+-----C------------C-----+ +-----------C------+
| | Terminated | | | Confirmed | |
| | +<----C---------| | |
| | | | BYE(sr) | | |
| | V | | V |
| | +------------+ | | +-----------+ |
| | | |---C-+ | | |--C-+
| | | Mortal | | | BYE | | Moratorium| | | 2xx
| | | |<--C-+ | | |<-C-+ if ACK not
| | +------------+ | | +-----------+ | received
| | | | | | |
| | | Timeout | | | ACK |
| | | | | | |
| V V | | V |
| +---------------+ | | +-----------+ |
| | | | | | | |
| | Morgue | | | |Established| |
| | | | | | | |
| +---------------+ | | +-----------+ |
| | | |
+------------------------+ +------------------+
(sr): indicates that both sending and reception are allowed.
Where (sr) is not used as an indicator, "response" means send,
and "request" means receive.
|
We also provide SIP consultancy services; for an example of our skills, please see my CV. If you would like further information about our technical services, please contact theo@voip.co.uk.