In case 100rel is disabled on SEMS' side, but UAC requires it, SEMS
would reject the INVITE, drop further processing on the session, but
still keep it. If INVITE is first in session, UAC would clear the
dialog, but SEMS would still keep it.
But spotted and explained by Stefan S.
In the context of multihomed servers, the signaling interface can be selecetd by the application. By default, the signaling interface is determined automatically. The media interface can also be set manually, there is however no automatic selection. In the case it is not set by the application, the default interface (the first one defined) is used instead.
- add reliable_1xx REL100_IGNORED, where all rel100 stuff is ignored
- set B2B sessions as reliable_1xx=REL100_IGNORED
- translate RAck Cseq
- for this: adds rack_method and rack_cseq to sip request (should possibly be reworked to use some dynamic field)
- relay Rseq (if exist)
- change the way RSeq accounting is done: changed signed data type to
unsigned, at expense of adding two more vars to AmSipDialog; this
should make AmSipDialog more replication friendly.
- b/f: if 100rel is disabled and an inbound request asks support for it,
reply with 420.
The 100rel logic moved in great part to AmSipDialog; this way, it can be
hooked directly to request/reply processing routines, the ones on top of
the transactional layer (::updateStatus(..)).
This allows to:
- better control when to push the messages into the AmSession's
onSipRequest/~Reply, fixing some issues with applications that received
replies, but without sending themselves the requests
- insert needed headers, no matter which request function is used
(::invite() vs. ..sendRequest())
- B2BUA app with SIP Session Timer (SST) now can also use UPDATE
(see session_refresh_method in sst_b2b.conf)
- if re-INVITE is used, normal SDP OA (INVITE+SDP/200+SDP) is done
using last established SDP (instead of delayed SDP negotiation
and SDP ping-pong)
- SDP is compared only after o= line (no SDP ping-pong with UAs which
always increase SDP version)
- introduced outbound_proxy+force_outbound_proxy at the SIP dialog level (AmSipDialog)
- outbound_proxy+force_outbound_proxy is configurable in the sems.conf
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1818 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- moved 200 ACK from sipctrl into the UA.
- [request|dialog].next_hop ("host:port") can be used to set the outbound host/port.
- 200 ACKs are passed to the UA.
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1460 8eb893ce-cfd4-0310-b710-fb5ebe64c474
some fix with CRLF on refer-to
some fix with content_type on announce_transfer
based on patch by Balint Kovacs
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1388 8eb893ce-cfd4-0310-b710-fb5ebe64c474
o moved adding Max-Forwards from ctrl plugins to AmSipDialog
o moved adding User-Agent from ctrl plugins to AmSipDialog
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@760 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- splits the interface to the outer world from the core:
- use binrpcctrl plugin for SASI interface, or
- unixsockctrl for the good old unix socket interface.
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@568 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- on RTP timeout, AmSession::onRtpTimeout is called
- session can be removed from media processor (detached)
by AmMediaProcessor::removeSession
- removing session from MediaProcessor and clearing audio
is AmMediaProcessor::clearSession (default action on
RTP error)
- added detach from media processor to conf_auth and ann_b2b
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@209 8eb893ce-cfd4-0310-b710-fb5ebe64c474
* new methods onSipRequest/onSipReply, the whole AmSipReply/AmSipRequest structure is passed to python
SipDialog
* state is changed only on reply to INVITE, not other requests
* made pin_collect work
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@189 8eb893ce-cfd4-0310-b710-fb5ebe64c474