diversion module implements the Diversion extensions as per draft-levy-sip-diversion-08. The diversion extensions are useful in various scenarios involving call forwarding. Typically one needs to communicate the original recipient of the call to the PSTN gateway and this is what the diversion extensions can be used for, and this can be controlled from OpenSER as well.
Diversion example
The following example shows a Diversion header field added to INVITE message. The original INVITE received by the user agent of sip:[email protected] is:
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 1.2.3.4:5060
From: "mark" <sip:[email protected]>;tag=ldgheoihege
To: "Bob" <sip:[email protected]>
Call-ID: [email protected]
CSeq: 3 INVITE
Contact: <sip:[email protected]>
Content-Length: 0
The INVITE message is diverted by the user agent of sip:[email protected] because the user was talking to someone else and the new destination is sip:[email protected] :
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 5.6.7.8:5060
Via: SIP/2.0/UDP 1.2.3.4:5060
From: "mark" <sip:[email protected]>;tag=ldgheoihege
To: "Bob" <sip:[email protected]>
Call-ID: [email protected]
CSeq: 3 INVITE
Diversion: <sip:[email protected]>;reason=user-busy
Contact: <sip:[email protected]>
Content-Length: 0