Hi All,
I am using sipxCallTransfer function to transfer a call between two parties.
A - Transfer Agent
B - Transferee
C - Transfer Target
The process goes as follows. (The calls are not in a conference)
1. A creates a call to B (call is connected; Source Call)
2. A created a call to C (call is connected; Target Call)
3. A transfer the call from B to C using "sipxCallTransfer"
The transfer happens successfully. i.e, B & C get connected successfully.
However A doesn't get the final TRANSFER_SUCCESS event.
sipXtapi.h indicates that the following event sequence should be there for
Transfer Agent.
<h3>Transfer Controller (this user agent):</h3>
*
* <pre>
* Source Call: CALLSTATE_TRANSFER_EVENT::CALLSTATE_CAUSE_TRANSFER_INITIATED
* Source Call: CALLSTATE_REMOTE_HELD
* Source Call: MEDIA_LOCAL_STOP
* Source Call: MEDIA_REMOTE_STOP
* Source Call: CALLSTATE_TRANSFER_EVENT::CALLSTATE_CAUSE_TRANSFER_ACCEPTED
* Source Call: CALLSTATE_TRANSFER_EVENT::CALLSTATE_CAUSE_TRANSFER_SUCCESS
* Source Call: CALLSTATE_TRANSFER_EVENT::CALLSTATE_DISCONNECTED
* Source Call: CALLSTATE_TRANSFER_EVENT::CALLSTATE_DESTROYED
* </pre>
*
* <pre>
* Target Call: CALLSTATE_REMOTE_HELD
* Target Call: MEDIA_LOCAL_STOP
* Target Call: MEDIA_REMOTE_STOP
* Target Call: CALLSTATE_DISCONNECTED
* Target Call: CALLSTATE_DESTROYED
* </pre>
In my case, transfer agent (A) receives the events up to TRANSFER_ACCEPTED for
Source Call. Thereafter no events are received for the Source Call. No problem
with Target Call.
When I analyzed the traces in proxy, the NOTIFY sent by B to A (after the
acceptance of REFER) get the reply from proxy saying "481 Subscription does not
exist". Thereafter no messages are passed between A & B. I think this is the
problem.
Can anybody who knows this, please help me?
And there's another thing I want to know.
Once this transfer is done as above, the original calls (Source Call of A-B,
Target Call of A-C) with transfer agent get disconnected. Thus, after
successful transfer, the transfer agent will not have any connection with other
two parties.
I want to know whether there's a way to get a message to transfer agent when
either party (B or C in this case) hangs up or drop the call (i.e drop of the
call between B & C).
In my requirement, transfer agent has to do some action if either party (B or
C) drops the new call created through transfer.
Is there a way in sipX to implement the feature I want?
Thanks.
---------------------------------
Looking for a deal? Find great prices on flights and hotels with Yahoo!
FareChase._______________________________________________
sipxtapi-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/