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/

Reply via email to