From: <sb...@us...> - 2007-09-12 14:25:20
|
Revision: 1120 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1120&view=rev Author: sbalea Date: 2007-09-12 07:25:23 -0700 (Wed, 12 Sep 2007) Log Message: ----------- Call transfer improvements: - add argument error checking to iaxc_blind_transfer - add iaxc_setup_call_transfer API, that wraps iax_setup_transfer with some error checking Patch provided by Erik Bunce Modified Paths: -------------- trunk/lib/iaxclient.h trunk/lib/iaxclient_lib.c Modified: trunk/lib/iaxclient.h =================================================================== --- trunk/lib/iaxclient.h 2007-09-10 17:57:17 UTC (rev 1119) +++ trunk/lib/iaxclient.h 2007-09-12 14:25:23 UTC (rev 1120) @@ -295,6 +295,7 @@ EXPORT void iaxc_send_busy_on_incoming_call(int callNo); EXPORT void iaxc_answer_call(int callNo); EXPORT void iaxc_blind_transfer_call(int callNo, const char * number); +EXPORT void iaxc_setup_call_transfer(int sourceCallNo, int targetCallNo); EXPORT void iaxc_dump_all_calls(void); EXPORT void iaxc_dump_call(void); EXPORT void iaxc_reject_call(void); Modified: trunk/lib/iaxclient_lib.c =================================================================== --- trunk/lib/iaxclient_lib.c 2007-09-10 17:57:17 UTC (rev 1119) +++ trunk/lib/iaxclient_lib.c 2007-09-12 14:25:23 UTC (rev 1120) @@ -1439,9 +1439,23 @@ EXPORT void iaxc_blind_transfer_call(int callNo, const char * dest_extension) { + if ((callNo < 0) || + !(calls[callNo].state & IAXC_CALL_STATE_ACTIVE)) + return; + iax_transfer(calls[callNo].session, dest_extension); } +EXPORT void iaxc_setup_call_transfer(int sourceCallNo, int targetCallNo) +{ + if ((sourceCallNo < 0) || (targetCallNo < 0) || + ((calls[sourceCallNo].state & IAXC_CALL_STATE_ACTIVE) == 0) || + ((calls[targetCallNo].state & IAXC_CALL_STATE_ACTIVE) == 0)) + return; + + iax_setup_transfer(calls[sourceCallNo].session, calls[targetCallNo].session); +} + static void iaxc_dump_one_call(int callNo) { if (callNo < 0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |