[asterisk-commits] mvanbaak: trunk r122493 - /trunk/channels/chan_skinny.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jun 13 06:20:48 CDT 2008
Author: mvanbaak
Date: Fri Jun 13 06:20:47 2008
New Revision: 122493
URL: http://svn.digium.com/view/asterisk?view=rev&rev=122493
Log:
Implement call parking in chan_skinny.
(closes issue #11342)
Reported by: DEA
Patches:
chan_skinny-park.txt uploaded by DEA (license 3)
chan_skinny-park-v2.diff.txt uploaded by mvanbaak (license 7)
Tested by: DEA, mvanbaak
Modified:
trunk/channels/chan_skinny.c
Modified: trunk/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_skinny.c?view=diff&rev=122493&r1=122492&r2=122493
==============================================================================
--- trunk/channels/chan_skinny.c (original)
+++ trunk/channels/chan_skinny.c Fri Jun 13 06:20:47 2008
@@ -4297,9 +4297,25 @@
}
break;
case STIMULUS_CALLPARK:
+ {
+ int extout;
+ char message[32];
+
if (skinnydebug)
ast_verb(1, "Received Stimulus: Park Call(%d/%d)\n", instance, callreference);
- /* XXX Park the call */
+
+ if ((sub && sub->owner) && (sub->owner->_state == AST_STATE_UP)){
+ c = sub->owner;
+ if (!ast_masq_park_call(ast_bridged_channel(c) , c, 0, &extout)) {
+ snprintf(message, sizeof(message), "Call Parked at: %d", extout);
+ transmit_displaynotify(s, message, 10);
+ } else {
+ transmit_displaynotify(s, "Call Park failed", 10);
+ }
+ } else {
+ transmit_displaynotify(s, "Call Park not available", 10);
+ }
+ }
break;
case STIMULUS_DND:
if (skinnydebug)
@@ -5319,9 +5335,25 @@
/* XXX determine the best way to pull off a conference. Meetme? */
break;
case SOFTKEY_PARK:
+ {
+ int extout;
+ char message[32];
+
if (skinnydebug)
ast_verb(1, "Received Softkey Event: Park Call(%d/%d)\n", instance, callreference);
- /* XXX Park the call */
+
+ if ((sub && sub->owner) && (sub->owner->_state == AST_STATE_UP)){
+ c = sub->owner;
+ if (!ast_masq_park_call(ast_bridged_channel(c) , c, 0, &extout)) {
+ snprintf(message, sizeof(message), "Call Parked at: %d", extout);
+ transmit_displaynotify(s, message, 10);
+ } else {
+ transmit_displaynotify(s, "Call Park failed", 10);
+ }
+ } else {
+ transmit_displaynotify(s, "Call Park not available", 10);
+ }
+ }
break;
case SOFTKEY_JOIN:
if (skinnydebug)
More information about the asterisk-commits
mailing list