在SIP中,re-invite和update都是用来修改变session参数的。不同的是,update对dialog的状态没有影响,而re-invite会改变对话的状态。所以update可以在第一个invite被应答之前发送(即收到invite的200ok之前)。也就是说,update可以被用来控制早期媒体。而re-invite只能在第一个invite杯应答之后发送(即在通话已经建立之后)。
一般来说,在通话建立以后用update和re-invite改变session参数都可以。但是此时多用re-invite。因为update要立即被响应。这样,如果session参数的修改需要用户参与的话,用update就不合适了。大多数时候,呼叫建立起来之后再修改session参数的话,都需要用户的参与,比如点一个同意对话框,所以用re-invite就更普遍一些。
===================================================================================
SIP的UPDATE(RFC3311)消息是SIP扩展的一种机制,用以在通话尚未建立的时候更新媒体流状态的一种机制。那么Update的应用前提是early media,也就是说在应答之前通过临时响应(101-199)实现了SDP的第一次Offer/Answer,并建立了媒体流。在此之后并在应答前的后续媒体流变更,通过UPDATE实现。在应答之后的后续媒体流变更,是通过Re-invite实现。