[asterisk-users] Multi-tenant parking broken in 1.6.1.1?
John A. Sullivan III
jsullivan at opensourcedevel.com
Wed Jul 1 01:53:43 CDT 2009
On Wed, 2009-07-01 at 02:17 -0400, John A. Sullivan III wrote:
> Hello, all. With the assistance of very helpful folks, our brand new
> multi-tenant setup seems to be working smoothly from start to finish
> with just a bump or two. The biggest is parking. Now that we got most
> kinks worked out, I'm a little more comfortable in trying to resolve
> this.
>
> There seem to be two problems:
> 1. Parking assigns parking spaces from the default group no matter
> what we do.
> 2. When the parked call timer expires, the callback to the original
> callee fails because a | delimiter is used in the Dial()
> function.
>
> Perhaps we have configured it incorrectly. Here is the pertinent
> section from features.conf:
>
> [parkinglot_a10] ; EBC
> context => a10parking
> parkpos => 101-110
> ;parkext => 100
> findslot => next
>
> [parkinglot_a100] ; SSI
> context => a100parking
> ;parkext => 1000
> parkpos => 1001-1020
> findslot => next
>
> If I understand this correctly, the parkinglog_a100 would be the channel
> variable and a100parking the context into which parking extensions are
> placed.
>
> We set the channel parameter in sip.conf:
>
> [a100](!,common)
> context=a100
> vmext=999
> parkinglot=parkinglot_a100
> subscribecontext=a100
> accountcode=a0000-0100
> fromdomain=ssiservices.biz
>
> [userx](a100)
> mailbox=yyy at a100,xxx at a100
> secret=something
> callerid=John A. Sullivan III <xxx>
> fromuser=userid
>
> and we included the context in extensions.conf:
>
> [a100] ; SSI
> exten => 911,1,Macro(emergency-US,xxxxxxxxxx)
> exten => 9911,1,Macro(emergency-US,xxxxxxxxxx)
>
> exten => 9999,1,VoiceMailMain(${CALLERID(num)}@a100) ; Direct mail
> retrieval
> include => a100pub
> include => a100conf
> include => a100parking
> include => US-international
> include => dial-uri
>
> We also tried Set(CHANNEL(parkinglot)=parkinglot_a100). We also tried
> creating our own parking which yielded interesting data but not
> solution.
>
> Here is the console output using the regular setup described:
>
> Call comes in and is answered:
>
> -- SIP/gss-cc01c918 answered SIP/localhost-cc002cf8
> -- Native bridging SIP/localhost-cc002cf8 and SIP/gss-cc01c918
> -- Started music on hold, class 'default', on SIP/localhost-cc002cf8
> == Using SIP RTP TOS bits 176
> == Using SIP RTP CoS mark 5
>
> Call is parked:
>
> -- Executing [700 at a100:1] Park("SIP/gss-cc05ceb8", "") in new stack
> == Parked SIP/gss-cc05ceb8 on 701 (lot default). Will timeout back to extension [a100] s, 1 in 60 seconds
> -- Added extension '701' priority 1 to parkedcalls (0x2aaaacca3f70)
> -- <SIP/gss-cc05ceb8> Playing 'digits/7.ulaw' (language 'en')
> -- <SIP/gss-cc05ceb8> Playing 'digits/0.ulaw' (language 'en')
> -- <SIP/gss-cc05ceb8> Playing 'digits/1.ulaw' (language 'en')
> -- Started music on hold, class 'default', on SIP/gss-cc05ceb8
>
> I'm not sure what is happening here but I think this is the original
> callee releasing the call. I don't know what the ZOMBIE extension is
> about:
>
> == Spawn extension (a100, s, 1) exited non-zero on 'Parked/SIP/gss-cc05ceb8<ZOMBIE>'
> -- Auto fallthrough, channel 'Parked/SIP/gss-cc05ceb8<ZOMBIE>' status is 'UNKNOWN'
> -- Executing [h at a100:1] Answer("Parked/SIP/gss-cc05ceb8<ZOMBIE>", "0.5") in new stack
> == Spawn extension (a100, h, 1) exited non-zero on 'Parked/SIP/gss-cc05ceb8<ZOMBIE>'
> -- Stopped music on hold on SIP/gss-cc05ceb8
> -- Stopped music on hold on SIP/localhost-cc002cf8
> -- Started music on hold, class 'default', on SIP/localhost-cc002cf8
> == Spawn extension (macro-common, s, 1) exited non-zero on 'SIP/gss-cc05ceb8<ZOMBIE>' in macro 'common'
> == Spawn extension (a100pub, 314, 2) exited non-zero on 'SIP/gss-cc05ceb8<ZOMBIE>'
> == Using SIP RTP TOS bits 176
> == Using SIP RTP CoS mark 5
>
> Then we see the destination callee attempting to pick up the call and is
> the output of our routine to catch misdialed/unknown extensions:
>
> -- Executing [701 at a100:1] GotoIf("SIP/jasiii-cc05ceb8", "0?:_.,1") in new stack
> -- Goto (a100,_.,1)
> -- Executing [_. at a100:1] Answer("SIP/jasiii-cc05ceb8", "0.5") in new stack
> -- Executing [_. at a100:2] Playback("SIP/jasiii-cc05ceb8", "im-sorry") in new stack
> -- <SIP/jasiii-cc05ceb8> Playing 'im-sorry.ulaw' (language 'en')
> -- Executing [_. at a100:3] Wait("SIP/jasiii-cc05ceb8", "0.0.5") in new stack
> -- Executing [_. at a100:4] Playback("SIP/jasiii-cc05ceb8", "you-dialed-wrong-number") in new stack
> -- <SIP/jasiii-cc05ceb8> Playing 'you-dialed-wrong-number.ulaw' (language 'en')
> -- Executing [_. at a100:5] Wait("SIP/jasiii-cc05ceb8", "0.4") in new stack
> -- Executing [_. at a100:6] Playback("SIP/jasiii-cc05ceb8", "vm-goodbye") in new stack
> -- <SIP/jasiii-cc05ceb8> Playing 'vm-goodbye.ulaw' (language 'en')
> -- Executing [_. at a100:7] Hangup("SIP/jasiii-cc05ceb8", "") in new stack
> == Spawn extension (a100, _., 7) exited non-zero on 'SIP/jasiii-cc05ceb8'
> -- Executing [h at a100:1] Answer("SIP/jasiii-cc05ceb8", "0.5") in new stack
> == Spawn extension (a100, h, 1) exited non-zero on 'SIP/jasiii-cc05ceb8'
>
> We then see the park timeout and fail to return to the original callee:
>
> -- Stopped music on hold on SIP/localhost-cc002cf8
> -- Added extension 'SIP0gss' priority 1 to park-dial (0x2aaaacca2050)
> == Timeout for SIP/localhost-cc002cf8 parked on 701 (default). Returning to park-dial,SIP0gss,1
> -- Executing [SIP0gss at park-dial:1] Dial("SIP/localhost-cc002cf8", "SIP/gss|30|") in new stack
> [Jul 1 01:54:56] WARNING[6401]: pbx.c:953 pbx_exec: The application delimiter is now the comma, not the pipe. Did you forget to convert your dialplan? (Dial(SIP/gss|30|))
> == Using SIP RTP TOS bits 176
> == Using SIP RTP CoS mark 5
> [Jul 1 01:54:57] WARNING[6401]: chan_sip.c:4526 create_addr: No such host: gss|30|
> [Jul 1 01:54:57] WARNING[6401]: app_dial.c:1518 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
> == Everyone is busy/congested at this time (1:0/0/1)
> -- Auto fallthrough, channel 'SIP/localhost-cc002cf8' status is 'CHANUNAVAIL'
>
> Have I misconfigured anything or have I stumbled into a bug?
>
> We next tried to create our own park channel. We did this by adding the
> following to extensions.conf:
>
> [a100parking]
> exten => 1000,1,Set(CHANNEL(parkinglot)=parkinglot_a100)
> exten => 1000,n,Park()
>
> This gives us interestingly different results. First we see the call
> come in:
>
> -- SIP/gss-1a513628 answered SIP/localhost-cc002cc8
> -- Native bridging SIP/localhost-cc002cc8 and SIP/gss-1a513628
> -- Started music on hold, class 'default', on SIP/localhost-cc002cc8
> == Using SIP RTP TOS bits 176
> == Using SIP RTP CoS mark 5
>
> We next see the call parked but this time using extensions from the
> parkinglot_a100 parking lot:
>
> -- Executing [1000 at a100:1] Set("SIP/gss-1a56d498", "CHANNEL(parkinglot)=parkinglot_a100") in new stack
> -- Executing [1000 at a100:2] Park("SIP/gss-1a56d498", "") in new stack
> == Parked SIP/gss-1a56d498 on 1001 (lot parkinglot_a100). Will timeout back to extension [a100] s, 1 in 45 seconds
> -- Added extension '1001' priority 1 to a100parking (0x1a512180)
> -- <SIP/gss-1a56d498> Playing 'digits/1.ulaw' (language 'en')
> -- <SIP/gss-1a56d498> Playing 'digits/0.ulaw' (language 'en')
> -- <SIP/gss-1a56d498> Playing 'digits/0.ulaw' (language 'en')
> -- <SIP/gss-1a56d498> Playing 'digits/1.ulaw' (language 'en')
> -- Started music on hold, class 'default', on SIP/gss-1a56d498
>
> We next see that section I don't understand with the ZOMBIE and s
> extensions:
>
> == Spawn extension (a100, s, 1) exited non-zero on 'Parked/SIP/gss-1a56d498<ZOMBIE>'
> -- Auto fallthrough, channel 'Parked/SIP/gss-1a56d498<ZOMBIE>' status is 'UNKNOWN'
> -- Executing [h at a100:1] Answer("Parked/SIP/gss-1a56d498<ZOMBIE>", "0.5") in new stack
> == Spawn extension (a100, h, 1) exited non-zero on 'Parked/SIP/gss-1a56d498<ZOMBIE>'
> -- Stopped music on hold on SIP/gss-1a56d498
> -- Stopped music on hold on SIP/localhost-cc002cc8
> -- Started music on hold, class 'default', on SIP/localhost-cc002cc8
> == Spawn extension (macro-common, s, 1) exited non-zero on 'SIP/gss-1a56d498<ZOMBIE>' in macro 'common'
> == Spawn extension (a100pub, 314, 2) exited non-zero on 'SIP/gss-1a56d498<ZOMBIE>'
> == Using SIP RTP TOS bits 176
> == Using SIP RTP CoS mark 5
>
> Now we see the destination callee try to pickup the parked call only to
> be told there is no call parked on extension 1001:
>
> -- Executing [1001 at a100:1] ParkedCall("SIP/jasiii-1a56d498", "1001") in new stack
> -- <SIP/jasiii-1a56d498> Playing 'pbx-invalidpark.ulaw' (language 'en')
> -- Channel SIP/jasiii-1a56d498 tried to talk to nonexistent parked call 1001
> == Spawn extension (a100, 1001, 1) exited non-zero on 'SIP/jasiii-1a56d498'
> -- Executing [h at a100:1] Answer("SIP/jasiii-1a56d498", "0.5") in new stack
> == Spawn extension (a100, h, 1) exited non-zero on 'SIP/jasiii-1a56d498'
>
> Finally, we see the same failure to return after the timeout:
>
> -- Stopped music on hold on SIP/localhost-cc002cc8
> -- Added extension 'SIP0gss' priority 1 to (0x1a50e110)
> == Timeout for SIP/localhost-cc002cc8 parked on 1001 (parkinglot_a100). Returning to ,SIP0gss,1
> -- Executing [SIP0gss@:1] Dial("SIP/localhost-cc002cc8", "SIP/gss|30|") in new stack
> [Jul 1 02:06:42] WARNING[6432]: pbx.c:953 pbx_exec: The application delimiter is now the comma, not the pipe. Did you forget to convert your dialplan? (Dial(SIP/gss|30|))
> == Using SIP RTP TOS bits 176
> == Using SIP RTP CoS mark 5
> [Jul 1 02:06:42] WARNING[6432]: chan_sip.c:4526 create_addr: No such host: gss|30|
> [Jul 1 02:06:42] WARNING[6432]: app_dial.c:1518 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
> == Everyone is busy/congested at this time (1:0/0/1)
> -- Auto fallthrough, channel 'SIP/localhost-cc002cc8' status is 'CHANUNAVAIL'
>
> What's going on and how do I fix it? This is our last major hurdle. The
> other is segfaulting when we use IMAP storage in Zimbra but that's an
> option rather than a requirement. Thanks - John
dialplan show is interesting:
pbx01*CLI> dialplan show
[ Context '' created by 'features' ]
'SIP0gss' => 1. Dial(SIP/gss|30|)
[features]
'SIP0jasiii' => 1. Dial(SIP/jasiii|30|)
[features]
pbx01*CLI>
[ Context 'a10parking' created by 'features' ]
[ Context 'a100-parking' created by 'features' ]
'700' => 1. Park()
[features]
[ Context 'a10-parking' created by 'features' ]
'700' => 1. Park()
[features]
[ Context 'parkedcalls' created by 'features' ]
'700' => 1. Park()
[features]
It shows the invalid SIP channels being created by features. Is also
shows extension 700 in context a100-parking and a10-parking which we
deleted long ago but not present in a10parking and a100parking which
exist! - John
--
John A. Sullivan III
Open Source Development Corporation
+1 207-985-7880
jsullivan at opensourcedevel.com
http://www.spiritualoutreach.com
Making Christianity intelligible to secular society
More information about the asterisk-users
mailing list