We've had a regular Park function in the past but recently I found the ParkAndAnnounce() application and I love the idea behind it. Here's a snip from the wiki (http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+ParkAndAnnounce) so that we're all talking the same language: || ParkAndAnnounce(announce:template|timeout|dial|return_context) || || Park a call into the parkinglot and announce the call over an extension. || || announce template: colon seperated list of files to announce, the word || PARKED will be replaced by a say_digits of the ext the call is parked in || timeout: time in seconds before the call returns into the return context. || dial: The app_dial style resource to call to make the announcement. || Console/dsp calls the console. || return_context: the goto style label to jump the call back into after timeout. Perhaps someone has accomplished these enhancements in the dialplan already (if you have, please share!), but here's what I would like to modify ParkAndAnnounce to do, if I were a skilled coder: SYNTAX: ParkAndAnnounce2(announce:template|timeout|dial|return_context|options) OPTIONS: a = Asterisk would insert SIP header of "Call-Info: Answer-After: 0" to the dial command. This would allow the announcement to happen over the target phone's speaker and not require answering a ringing call. Only affects announcement, not call park return p = automatically make announcements to whomever originated the parking and return parked calls to same. Caller ID Name will read 'Call Park at XXX' during announcement and 'Call Park Return' during return. Currently it just says 'asterisk' EXAMPLE: exten => 700,1,Answer exten => 700,2,Wait(1) exten => 700,3,ParkAndAnnounce2(pbx-transfer:PARKED|60|ignore|ignore|ap) In this example, let's assume that an outside caller reaches me at extension 101. I blind-transfer on my SIP phone to extension 700. The caller hears music-on-hold and is parked in the next available slot (let's say 701). The app would then add the auto-answer header (thanks to the 'a' option) needed for our GXP-2000's and then place the call to SIP/101 (the device that originated the parking) with the CallerID Name set to 'Call Park at 701'. The call is auto-answered at the SIP phone (thanks to the SIP header) and then the dial plan plays "pbx-transfer", reads out the digits, and hangs up. After 60 seconds, the caller is returned to SIP/101 (this time without the auto-answer SIP header) with the CallerID Name set to 'Call Park Return'. Notice that when the 'p' option is used, the 'dial' and 'return' parameters are ignored. Does anyone else think this is interesting/valuable enough to submit to Mantis as a feature request? Or am I just off on my own little world?
Steven: I'm assuming your using IP phones registered to Asterisk in this example. I don't do that but I use ParkandAnnounce for IP phones registering to a SER server. To handle the call back part of your question I use a snipet like: exten => _700,5,SIPGetHeader(REFBY=Referred-By) exten => _700,6,ParkAndAnnounce(parkedcall16:PARKED|7200|SIP/${REFBY:5:5}@<SER proxy IP>|default|${EXTEN}|3) -Steve Steven Andres wrote:>We've had a regular Park function in the past but recently I found the >ParkAndAnnounce() application and I love the idea behind it. Here's a snip >from the wiki >(http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+ParkAndAnnounce) >so that we're all talking the same language: > >|| ParkAndAnnounce(announce:template|timeout|dial|return_context) >|| >|| Park a call into the parkinglot and announce the call over an extension. >|| >|| announce template: colon seperated list of files to announce, the word >|| PARKED will be replaced by a say_digits of the ext the call is parked >in >|| timeout: time in seconds before the call returns into the return context. >|| dial: The app_dial style resource to call to make the announcement. >|| Console/dsp calls the console. >|| return_context: the goto style label to jump the call back into after >timeout. > > >Perhaps someone has accomplished these enhancements in the dialplan already >(if you have, please share!), but here's what I would like to modify >ParkAndAnnounce to do, if I were a skilled coder: > >SYNTAX: > ParkAndAnnounce2(announce:template|timeout|dial|return_context|options) > >OPTIONS: > a = Asterisk would insert SIP header of "Call-Info: Answer-After: 0" to > the dial command. This would allow the announcement to happen > over the target phone's speaker and not require answering a > ringing call. Only affects announcement, not call park return > p = automatically make announcements to whomever originated the > parking and return parked calls to same. Caller ID Name will read > 'Call Park at XXX' during announcement and 'Call Park Return' > during return. Currently it just says 'asterisk' > >EXAMPLE: > exten => 700,1,Answer > exten => 700,2,Wait(1) > exten => 700,3,ParkAndAnnounce2(pbx-transfer:PARKED|60|ignore|ignore|ap) > >In this example, let's assume that an outside caller reaches me at extension >101. I blind-transfer on my SIP phone to extension 700. The caller hears >music-on-hold and is parked in the next available slot (let's say 701). The >app would then add the auto-answer header (thanks to the 'a' option) needed >for our GXP-2000's and then place the call to SIP/101 (the device that >originated the parking) with the CallerID Name set to 'Call Park at 701'. >The call is auto-answered at the SIP phone (thanks to the SIP header) and >then the dial plan plays "pbx-transfer", reads out the digits, and hangs up. >After 60 seconds, the caller is returned to SIP/101 (this time without the >auto-answer SIP header) with the CallerID Name set to 'Call Park Return'. >Notice that when the 'p' option is used, the 'dial' and 'return' parameters >are ignored. > > >Does anyone else think this is interesting/valuable enough to submit to >Mantis as a feature request? Or am I just off on my own little world? > >_______________________________________________ >--Bandwidth and Colocation provided by Easynews.com -- > >Asterisk-Users mailing list >To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > >
I just tried this out and it didn't work, Steve. Using: exten => 700,1,NoOp(Park and Announce) exten => 700,n,Set(REFBY=${SIP_HEADER(Referred-By)}) exten => 700,n,NoOp(Referred-By: ${REFBY}) exten => 700,n,ParkAndAnnounce(pbx-transfer:PARKED|20|SIP/${REFBY:5:5}|office,${EXTEN},1) The Referred-By header doesn't exist so I can't use it: -- Executing Set("SIP/4159524515-03b1", "REFBY=") in new stack -- Executing NoOp("SIP/4159524515-03b1", "Referred-By: ") in new stack And when the call timesout after 20 seconds, it returns to ${EXTEN} which is '700'. I want it to return to the phone that originally put the call on hold. Darn, thought I had a solution. Back to the drawing board... ----- Original Message ----- From: "Steve Blair" <blairs@isc.upenn.edu> To: "Asterisk Users Mailing List - Non-Commercial Discussion" <asterisk-users@lists.digium.com> Sent: Friday, February 24, 2006 2:58 PM Subject: Re: [Asterisk-Users] ParkAndAnnounce2 Feature Request Steven: I'm assuming your using IP phones registered to Asterisk in this example. I don't do that but I use ParkandAnnounce for IP phones registering to a SER server. To handle the call back part of your question I use a snipet like: exten => _700,5,SIPGetHeader(REFBY=Referred-By) exten => _700,6,ParkAndAnnounce(parkedcall16:PARKED|7200|SIP/${REFBY:5:5}@<SER proxy IP>|default|${EXTEN}|3) ________________________________________________________ Steven Andres wrote:>Perhaps someone has accomplished these enhancements in the dialplan already >(if you have, please share!), but here's what I would like to modify >ParkAndAnnounce to do, if I were a skilled coder: > >SYNTAX: > ParkAndAnnounce2(announce:template|timeout|dial|return_context|options) > >OPTIONS: > a = Asterisk would insert SIP header of "Call-Info: Answer-After: 0" to > the dial command. This would allow the announcement to happen > over the target phone's speaker and not require answering a > ringing call. Only affects announcement, not call park return > p = automatically make announcements to whomever originated the > parking and return parked calls to same. Caller ID Name will read > 'Call Park at XXX' during announcement and 'Call Park Return' > during return. Currently it just says 'asterisk' > >EXAMPLE: > exten => 700,1,Answer > exten => 700,2,Wait(1) > exten => 700,3,ParkAndAnnounce2(pbx-transfer:PARKED|60|ignore|ignore|ap) > >In this example, let's assume that an outside caller reaches me at >extension >101. I blind-transfer on my SIP phone to extension 700. The caller hears >music-on-hold and is parked in the next available slot (let's say 701). The >app would then add the auto-answer header (thanks to the 'a' option) needed >for our GXP-2000's and then place the call to SIP/101 (the device that >originated the parking) with the CallerID Name set to 'Call Park at 701'. >The call is auto-answered at the SIP phone (thanks to the SIP header) and >then the dial plan plays "pbx-transfer", reads out the digits, and hangs >up. >After 60 seconds, the caller is returned to SIP/101 (this time without the >auto-answer SIP header) with the CallerID Name set to 'Call Park Return'. >Notice that when the 'p' option is used, the 'dial' and 'return' parameters >are ignored.