Hello,
I know now after some testing that there is no dynamic call parking.
Also explains why you find no example when searching the internet : no
one has a working example.
I have now the following working case :
features.conf :
[general]
parkeddynamic = yes
[parkinglot_770000]
findslot => first
dialplan :
[Jul 3 13:47:50] -- Executing [891@from-770000:4]
NoOp("SIP/SipT01-00000000", "") in new stack
[Jul 3 13:47:50] -- Executing [891@from-770000:5]
Set("SIP/SipT01-00000000", "PARKINGDYNEXTEN=891") in new stack
[Jul 3 13:47:50] -- Executing [891@from-770000:6]
Set("SIP/SipT01-00000000", "PARKINGDYNPOS=890-891") in new stack
[Jul 3 13:47:50] -- Executing [891@from-770000:7]
Set("SIP/SipT01-00000000", "PARKINGDYNCONTEXT=parked_770000") in new stack
[Jul 3 13:47:50] -- Executing [891@from-770000:8]
Park("SIP/SipT01-00000000", "40000,,,,,parkinglot_770000") in new stack
[Jul 3 13:47:50] -- Registered extension context 'parked_770000';
registrar: features
[Jul 3 13:47:50] -- Added extension '891' priority 1 to parked_770000
[Jul 3 13:47:50] -- Added extension '890' priority -1 to parked_770000
[Jul 3 13:47:50] -- Added extension '891' priority -1 to parked_770000
[Jul 3 13:47:50] == Parked SIP/SipT01-00000000 on 890 (lot
parkinglot_770000). Will timeout back to extension [from-770000] s, 1 in
40 seconds
[Jul 3 13:47:50] -- Added extension '890' priority 1 to parked_770000
Remarks :
The park position (890) is not announced, so you have no idea.
PARKINGDYNEXTEN does nothing, could not find out what it is for.
PARKINGDYNPOS creates parking positions, but if you change this in the
dialplan, there is no dynamical change in the parkinglot. You need to
restart Asterisk for changes to take effect.
PARKINGDYNCONTEXT dynamically creates a context for hints, but don't
understand fully what else it is for.
The function Park() when using it without extra parameters always seems
to park in the default (defining PARKINGDYNAMIC, PARKINGEXTEN,
PARKINGDYNEXTEN, PARKINGDYNPOS, PARKINGDYNCONTEXT changes nothing)
When you use the function Park() with the parking lot parameter (here :
parkinglot_770000) then this context for parking calls is used ! So this
works (as you can see in the dialplan)
For every change you make in the dialplan (say you change
PARKINGDYNCONTEXT=parked_707070) , you need to restart Asterisk to take
effect. Unless you restart Asterisk, calls stay in the context
parked_707070. A simple 'reload' makes no changes. Nothing dynamic here.
Hints :
Hints are automatically created if you use 'parkinghints = yes' but you
need to issue a 'dialplan reload' AFTER the first call is parked because
before a call has been parked, the context is not created inside the
dialplan.
So if you include for example the context [parked_770000] you will get
an error when you issue a 'dialplan reload'' because you try to include
a context that does not exist (it will exist once you have at least
parked 1 call)
My conclusion : Call Parking still remains very static. Creating call
parking inside the dialplan is not possible, you still need to use
features.conf and restart Asterisk after every change.
Kind regards,
Jonas.
On 03-07-14 03:05, Richard Mudgett wrote:
On Wed, Jul 2, 2014 at 4:39 AM, Jonas Kellens
<[email protected] <mailto:[email protected]>> wrote:
Hello,
I am trying to create a dynamic call parking lot using
https://wiki.asterisk.org/wiki/display/AST/Application_Park
But this manual is not enough to fix my problem : Asterisk keeps
trying to park the call in the default parking lot :
[Jul 2 11:32:14] -- Executing [3333@from-770000:5]
Set("SIP/testacc77000-00000002", "PARKINGDYNAMIC=parkinglot_test")
in new stack
[Jul 2 11:32:14] -- Executing [3333@from-770000:6]
Set("SIP/testacc77000-00000002", "PARKINGEXTEN=3300") in new stack
[Jul 2 11:32:14] -- Executing [3333@from-770000:7]
Set("SIP/testacc77000-00000002", "PARKINGDYNEXTEN=110") in new stack
[Jul 2 11:32:14] -- Executing [3333@from-770000:8]
Set("SIP/testacc77000-00000002", "PARKINGDYNPOS=111-120") in new stack
[Jul 2 11:32:14] -- Executing [3333@from-770000:9]
Set("SIP/testacc77000-00000002",
"PARKINGDYNCONTEXT=contextfromtestpark") in new stack
[Jul 2 11:32:14] -- Executing [3333@from-770000:10]
Park("SIP/testacc77000-00000002", "") in new stack
[Jul 2 11:32:14] WARNING[28618]: features.c:1291
park_space_reserve: PARKINGEXTEN=3300 is not in default (701-750).
[Jul 2 11:32:14] -- <SIP/testacc77000-00000002> Playing
'pbx-parkingfailed.alaw' (language 'nl')
I have the following in features.conf :
[parkinglot_test]
context => testparkinglot
findslot => next
This parking lot is invalid because it does not have any defined
parking spaces. As
a result it does not exist. Check you log for error messages when
Asterisk loaded.
Alternately, you can issue the CLI "module reload features" command
and see the errors.
Only the default parking lot has default parking spaces defined. All
other parking lots
configured in features.conf must specify the parking spaces.
I read that [parkinglot_test] will be used as a template to create
the dynamic call park. So all necessary parameters are given
inside the dialplan (PARKINGDYNAMIC, PARKINGEXTEN,
PARKINGDYNEXTEN, PARKINGDYNPOS, PARKINGDYNCONTEXT).
So why does Asterisk always uses the default ? I clearly create
the dynamic call park inside the dialplan.
{quote}
If you set the |PARKINGDYNAMIC| variable and this parking lot exists
then it will be used as
a template for the newly created dynamic lot. Otherwise, the default
parking lot will be used.
{quote}
Since parkinglot_test does not exist due to a configuration error, the
default parking lot is used.
Richard
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
http://www.asterisk.org/hello
asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users