User`s guide

Dialogic
®
System Release 6.0 PCI for Windows
®
Release Update, Rev 62 — January 30, 2008 203
Dialogic Corporation
Figure 15. SIP Call Transfer Failure - Party C Is Busy When Transfer Attempted
1.51.2 Enabling Call Transfer
The call transfer supplementary service is a feature that must be enabled at the time the
gc_Start( ) function is called. Both H.450.2 and SIP call transfer services are enabled at
the same time.
The INIT_IPCCLIB_START_DATA( ) and INIT_IP_VIRTBOARD( ) functions, which must
be called before the gc_Start( ) function, populate the IPCCLIB_START_DATA and
IP_VIRTBOARD structures, respectively, with default values. The default value of the
sup_serv_mask field in the IP_VIRTBOARD structure disables the call transfer service for
both H.323 and SIP protocols. The default sup_serv_mask field value must therefore be
overridden with the value IP_SUP_SERV_CALL_XFER for each Dialogic
®
IPT Board
device on which call transfer is to be enabled. The following code snippet provides an
example for two virtual boards:
A
(Transferring)
App
A
(Transferring)
IP CCLib
B
(Transferred)
App
B
(Transferred)
IP CCLib
C
(Transferred To)
App
C
(Transferred To)
IP CCLib
GCEV_REQ_
XFER(CRNp)
202 Accepted
GCEV_ACCEPT_
XFER(CRNp)
GCEV_
INVOKE_XFER_
ACCEPTED(CRNp)
NOTIFY(100 Trying)
Subscription-State=active; expires=300
200 OK
REFER
gc_InvokeXfer
(CRNp)
INVITE
gc_MakeCall
(CRNt, CRNp)
Party C is busy (not shown)
gc_AcceptXfer
(CRNp)
GCEV_DROPCALL
(CRNt)
gc_ReleaseCallEx
(CRNt)
GCEV_RELEASECALL
(CRNt)
GCEV_XFER_FAIL
(CRNp)
gc_DropCall(CRNt)
Parties A and B remain connected.
Party C also remains connected (to another party not shown).
Post condition:
Cause = IPEC_SIPReasonStatus486BusyHere
NOTIFY (486 Busy Here)
Subscription-State = terminated
200 OK
Cause = IPEC_SIPReasonStatus486BusyHere
GCEV_
INVOKE_XFER_
FAIL(CRNp, busy)
ACK
486 BusyHere
Primary call between parties A and B is connected (not shown).
Party C has call connected to another party (not shown).
Pre condition:
GCEV_DIALING
(CRNt)