diff options
author | Mark Spencer <markster@digium.com> | 2003-08-07 05:35:45 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2003-08-07 05:35:45 +0000 |
commit | 9f51b3590d237674347545c11ed61686703ea1e9 (patch) | |
tree | 8a2569d40e5aaf1cc5c8aa014e70dd28f7bbedce /res/res_parking.c | |
parent | 01fcb9779aa48bdf31c222dd58e1cbe5c6077dfd (diff) |
Make parking resume properly when in macro
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_parking.c')
-rwxr-xr-x | res/res_parking.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/res/res_parking.c b/res/res_parking.c index 13bdbaf6b..821dcee79 100755 --- a/res/res_parking.c +++ b/res/res_parking.c @@ -137,9 +137,18 @@ int ast_park_call(struct ast_channel *chan, struct ast_channel *peer, int timeou *extout = x; /* Remember what had been dialed, so that if the parking expires, we try to come back to the same place */ - strncpy(pu->context, chan->context, sizeof(pu->context)-1); - strncpy(pu->exten, chan->exten, sizeof(pu->exten)-1); - pu->priority = chan->priority; + if (strlen(chan->macrocontext)) + strncpy(pu->context, chan->macrocontext, sizeof(pu->context)-1); + else + strncpy(pu->context, chan->context, sizeof(pu->context)-1); + if (strlen(chan->macroexten)) + strncpy(pu->exten, chan->macroexten, sizeof(pu->exten)-1); + else + strncpy(pu->exten, chan->exten, sizeof(pu->exten)-1); + if (chan->macropriority) + pu->priority = chan->macropriority; + else + pu->priority = chan->priority; pu->next = parkinglot; parkinglot = pu; ast_pthread_mutex_unlock(&parking_lock); |