Hi all,
im trying to work with the pickup groups on the new TL versions.
i have made my pickup groups, and a feature code:
pickupgroups.include:
[pickup0-Bob_PriveTest]
exten => s,1,PickupChan(SIP/10-Bob_PriveTest,SIP/21-Bob_PriveTest,SIP/22-Bob_PriveTest,SIP/23-Bob_PriveTest)
scripts.include:
[macro-tl-pickupgroup-pickup]
exten => s,1,Goto(pickup${MACRO_EXTEN:${ARG1}}${TL_DASH}${tenant})
extensions.conf:
[from-outside-redir]
#include pickupgroups.include
[feature-extensions-Bob_PriveTest]
exten => _*7.,1,Macro(tl-pickupgroup-pickup,2) ; cp
I call to extension 21, and on extension 22 i dial *70, creating the following log and error:
-- Called 21-Bob_PriveTest
-- SIP/21-Bob_PriveTest-000009a3 is ringing
-- Executing [*70@from-inside-Bob_PriveTest:1] Macro("SIP/22-Bob_PriveTest-000009a4", "tl-set-variables2|from-inside-redir-Bob_PriveTest|Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:1] Set("SIP/22-Bob_PriveTest-000009a4", "__tenant=Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:2] Set("SIP/22-Bob_PriveTest-000009a4", "CDR(userfield)=Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:3] Set("SIP/22-Bob_PriveTest-000009a4", "__FROM_INSIDE=1") in new stack
-- Executing [s@macro-tl-set-variables2:4] Set("SIP/22-Bob_PriveTest-000009a4", "__MOH=") in new stack
-- Executing [s@macro-tl-set-variables2:5] GotoIf("SIP/22-Bob_PriveTest-000009a4", "0 ?setmoh") in new stack
-- Executing [s@macro-tl-set-variables2:6] Set("SIP/22-Bob_PriveTest-000009a4", "__MOH=default-Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:7] SetMusicOnHold("SIP/22-Bob_PriveTest-000009a4", "default-Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:8] Goto("SIP/22-Bob_PriveTest-000009a4", "from-inside-redir-Bob_PriveTest|*70|1") in new stack
-- Goto (from-inside-redir-Bob_PriveTest,*70,1)
== Channel 'SIP/22-Bob_PriveTest-000009a4' jumping out of macro 'tl-set-variables2'
-- Executing [*70@from-inside-redir-Bob_PriveTest:1] Macro("SIP/22-Bob_PriveTest-000009a4", "tl-pickupgroup-pickup|2") in new stack
-- Executing [s@macro-tl-pickupgroup-pickup:1] Goto("SIP/22-Bob_PriveTest-000009a4", "pickup0-Bob_PriveTest") in new stack
[Mar 29 10:47:59] NOTICE[10202]: pbx.c:1910 pbx_extension_helper: No such label 'pickup0-Bob_PriveTest' in extension 's' in context 'macro-tl-pickupgroup-pickup'
[Mar 29 10:47:59] WARNING[10202]: pbx.c:6454 ast_parseable_goto: Priority 'pickup0-Bob_PriveTest' must be a number > 0, or valid label
== Spawn extension (macro-tl-pickupgroup-pickup, s, 1) exited non-zero on 'SIP/22-Bob_PriveTest-000009a4' in macro 'tl-pickupgroup-pickup'
== Spawn extension (from-inside-redir-Bob_PriveTest, *70, 1) exited non-zero on 'SIP/22-Bob_PriveTest-000009a4'
-- Executing [h@from-inside-redir-Bob_PriveTest:1] Hangup("SIP/22-Bob_PriveTest-000009a4", "") in new stack
== Spawn extension (from-inside-redir-Bob_PriveTest, h, 1) exited non-zero on 'SIP/22-Bob_PriveTest-000009a4'
anyone can tell me what went wrong?
pickup group
Yes, there was a problem with the script - regression in the code, fixed and uploaded - without version change.
Thanks Erik!
edited the context, now i get
edited the context, now i get the following:
-- SIP/21-Bob_PriveTest-00000009 is ringing
-- Executing [*70@from-inside-Bob_PriveTest:1] Macro("SIP/22-Bob_PriveTest-0000000a", "tl-set-variables2|from-inside-redir-Bob_PriveTest|Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:1] Set("SIP/22-Bob_PriveTest-0000000a", "__tenant=Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:2] Set("SIP/22-Bob_PriveTest-0000000a", "CDR(userfield)=Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:3] Set("SIP/22-Bob_PriveTest-0000000a", "__FROM_INSIDE=1") in new stack
-- Executing [s@macro-tl-set-variables2:4] Set("SIP/22-Bob_PriveTest-0000000a", "__MOH=") in new stack
-- Executing [s@macro-tl-set-variables2:5] GotoIf("SIP/22-Bob_PriveTest-0000000a", "0 ?setmoh") in new stack
-- Executing [s@macro-tl-set-variables2:6] Set("SIP/22-Bob_PriveTest-0000000a", "__MOH=default-Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:7] SetMusicOnHold("SIP/22-Bob_PriveTest-0000000a", "default-Bob_PriveTest") in new stack
-- Executing [s@macro-tl-set-variables2:8] Goto("SIP/22-Bob_PriveTest-0000000a", "from-inside-redir-Bob_PriveTest|*70|1") in new stack
-- Goto (from-inside-redir-Bob_PriveTest,*70,1)
== Channel 'SIP/22-Bob_PriveTest-0000000a' jumping out of macro 'tl-set-variables2'
-- Executing [*70@from-inside-redir-Bob_PriveTest:1] Macro("SIP/22-Bob_PriveTest-0000000a", "tl-pickupgroup-pickup|2") in new stack
-- Executing [s@macro-tl-pickupgroup-pickup:1] Goto("SIP/22-Bob_PriveTest-0000000a", "pickup0-Bob_PriveTest|s|1") in new stack
-- Goto (pickup0-Bob_PriveTest,s,1)
== Channel 'SIP/22-Bob_PriveTest-0000000a' jumping out of macro 'tl-pickupgroup-pickup'
[Mar 30 07:49:07] WARNING[22860]: pbx.c:1849 pbx_extension_helper: No application 'PickupChan' for extension (pickup0-Bob_PriveTest, s, 1)
== Spawn extension (pickup0-Bob_PriveTest, s, 1) exited non-zero on 'SIP/22-Bob_PriveTest-0000000a'
http://www.voip-info.org/wiki
http://www.voip-info.org/wiki/view/Asterisk+cmd+Pickup
pickupchan for asterisk 1.6 only?
stil running 1.4 over here.
any problems i might encounter when editing the command to pickup?
correct, it was introduced in
correct, it was introduced in 1.6.2 so you'll want to start the process in evaluating what it will take to upgrade to 1.8 more than likely.
Im using tl-multidevice-exten
Im using tl-multidevice-exten and i setup pickupgroup4 but got the following error is it posible that pickup group isnt working with multi device extensions if it isn't how about device based hunt lists (i have not tested it
following is the cli of the call
-- Executing [s@macro-tl-userexten-base:163] Dial("SIP/MTE1-000000b1", "SIP/101-8885551212&SIP/104-88855511212,35,rtTw") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
== Using SIP VRTP TOS bits 136
== Using SIP VRTP CoS mark 6
-- Called 101-88855511212
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
== Using SIP VRTP TOS bits 136
== Using SIP VRTP CoS mark 6
== Extension Changed 101[local-extensions-88855511212] new state Ringing for Notify User 103-88855511212
-- Called 104-88855511212
== Extension Changed 104[local-extensions-88855511212] new state Ringing for Notify User 103-88855511212
-- Nobody picked up in 20000 ms
-- Executing [s@macro-tl-userexten-base:164] Goto("SIP/MTE1-000000aa", "s-orig-NOANSWER,1") in new stack
-- Goto (macro-tl-userexten-base,s-orig-NOANSWER,1)
-- Executing [s-orig-NOANSWER@macro-tl-userexten-base:1] Goto("SIP/MTE1-000000aa", "s-NA,1") in new stack
-- Goto (macro-tl-userexten-base,s-NA,1)
-- Executing [s-NA@macro-tl-userexten-base:1] GotoIf("SIP/MTE1-000000aa", "0?s-exit,1") in new stack
== Extension Changed 102[local-extensions-7189430613] new state Idle for Notify User 101-7189430613
-- Executing [s-NA@macro-tl-userexten-base:2] GotoIf("SIP/MTE1-000000aa", "1?s-NA-VOICEMAIL,1") in new stack
-- Goto (macro-tl-userexten-base,s-NA-VOICEMAIL,1)
== Extension Changed 102[local-extensions-7189430613] new state Idle for Notify User 104-7189430613
-- Executing [s-NA-VOICEMAIL@macro-tl-userexten-base:1] Answer("SIP/MTE1-000000aa", "") in new stack
-- Executing [s-NA-VOICEMAIL@macro-tl-userexten-base:2] Wait("SIP/MTE1-000000aa", "2") in new stack
-- SIP/101-88855511212-000000b3 is ringing
-- SIP/104-88855511212-000000b4 is ringing
a few lines down i have a busy system so i had to cut some lines out
-- Executing [*94@from-inside-88855511212:1] Macro("SIP/102-88855511212-000000b8", "tl-set-variables2,from-inside-redir-88855511212,88855511212") in new stack
== Extension Changed 102[local-extensions-88855511212] new state InUse for Notify User 103-88855511212
-- Executing [s@macro-tl-set-variables2:1] Set("SIP/102-88855511212-000000b8", "__tenant=88855511212") in new stack
-- Executing [s@macro-tl-set-variables2:2] Set("SIP/102-88855511212-000000b8", "CDR(userfield)=88855511212") in new stack
-- Executing [s@macro-tl-set-variables2:3] Set("SIP/102-88855511212-000000b8", "__FROM_INSIDE=1") in new stack
-- Executing [s@macro-tl-set-variables2:4] Set("SIP/102-88855511212-000000b8", "__MOH=default-88855511212") in new stack
-- Executing [s@macro-tl-set-variables2:5] GotoIf("SIP/102-88855511212-000000b8", "1 ?setmoh") in new stack
-- Goto (macro-tl-set-variables2,s,7)
-- Executing [s@macro-tl-set-variables2:7] Set("SIP/102-88855511212-000000b8", "CHANNEL(musicclass)=default-88855511212") in new stack
-- Executing [s@macro-tl-set-variables2:8] Goto("SIP/102-88855511212-000000b8", "from-inside-redir-88855511212,*94,1") in new stack
-- Goto (from-inside-redir-88855511212,*94,1)
== Channel 'SIP/102-88855511212-000000b8' jumping out of macro 'tl-set-variables2'
-- Executing [*94@from-inside-redir-88855511212:1] Macro("SIP/102-88855511212-000000b8", "vo-pickupgroup-pickup,2") in new stack
-- Executing [s@macro-vo-pickupgroup-pickup:1] Goto("SIP/102-88855511212-000000b8", "pickup4-88855511212,s,1") in new stack
-- Goto (pickup4-88855511212,s,1)
== Channel 'SIP/102-88855511212-000000b8' jumping out of macro 'vo-pickupgroup-pickup'
-- Executing [s@pickup4-88855511212:1] PickupChan("SIP/102-88855511212-000000b8", "SIP/101-88855511212,SIP/102-88855511212,SIP/103-88855511212,SIP/104-88855511212") in new stack
[Apr 12 20:03:27] NOTICE[4576]: app_directed_pickup.c:291 pickupchan_exec: No target channel found for SIP/101-88855511212,SIP/102-88855511212,SIP/103-88855511212,SIP/104-88855511212.
BTW i have changed the mecro
BTW i have changed the mecro to
[macro-vo-pickupgroup-pickup]
exten => s,1,Goto(pickup${MACRO_EXTEN:${ARG1}}${TL_DASH}${tenant},s,1)
otherwise i had the previous error,
FYI Im running 6.1.1.7 asterisk SVN-branch-1.6.2-r313047
Having the same problem. i
Having the same problem.
i think the problem is that
PickupChan("SIP/101,SIP/102,SIP/103,SIP/104")
should be
PickupChan("SIP/101&SIP/102&SIP/103&SIP/104")
If we change , for & it works, but when you change something in the web interface and you apply the changes, our configuration is overwritten.
We also had to change
[macro-vo-pickupgroup-pickup]
exten => s,1,Goto(pickup${MACRO_EXTEN:${ARG1}}${TL_DASH}${tenant},s,1)
Regards
no the output of 'core show
no the output of 'core show application pickupchan' shows the following
[Syntax]
PickupChan(channel[,channel2[,...][,options]])
so our syntax is correct.. perhaps your version of asterisk is bugged.
that not in compliance with
that not in compliance with asterisk 1.8 or the 'core show application pickupchan' output. Did you bother to test in 1.8 before you made this change? 1.6.1 is dead, 1.6.2 is dead, 1.4 is dead. They no longer exist and are unsupported.Why on earth would you deliberately break the ONLY supported version of asterisk without first checking on this? I know for a fact that comma separated works as I'm the one who did the testing and development of it. Perhaps whoever reported this either did NOT test it with 1.8 or did not bother to make sure they tested it on several versions in the event of a bug in asterisk. When I designed this feature we agreed it was for 1.8 only... its not meant for any other branch.
Its time to stop looking backwards at unsupported branches. If someone wants to use it they need to upgrade to 1.8. You certainly should not be breaking the UI for everyone actually using the only supported branch in existence. That's a bit like expecting Toyota to magically make your 2005 Prius magically become a plug-in hybrid. Sure theyre the same make of car but the extra batteries and the plug-in outlet arent going to suddenly appear just because the new models have that feature.
meanwhile I am creating a
meanwhile I am creating a Jira issue with digium to either stop accepting the ampersand or to change their documentation because there can't be a conflict. Even the 1.6 code says use a comma which we know isn't working.
ok, in asterisk 1.8.5 they're
ok, in asterisk 1.8.5 they're using the same channel separator that they use in Pickup() (its the same merged file now... app_directed_pickup.c)
while (!ast_strlen_zero(args.channel) && (pickup = strsep(&args.channel, "&")))
stand by for me to unleash on digium for screwing up their documentation again and making a change mid branch.
Hold up on your modification
Hold up on your modification to check asterisk versions...
Im trying to patch their app_directed_pickup.c but they're already using the comma as an argument separator and then sending the string to a second parser to separate channels. Its probably better to hold off and see what the hell digium is going to do now that I've bugged it. The function they use to separate arguments is a common shared function. If you follow the philosophy of taking the path of least resistance then theres a strong change that digium will decide its far easier to change the syntax output of the documentation than it is to change the rest of the code.
OK check this out.. apply
OK check this out.. apply this patch and run 'core show application pickupchan' .. you tell me which way you think digium is going to vote?
diff -ur asterisk-1.8.5.0-old/apps/app_directed_pickup.c asterisk-1.8.5.0/apps/app_directed_pickup.c
--- asterisk-1.8.5.0-old/apps/app_directed_pickup.c 2011-06-09 12:31:53.000000000 -0400
+++ asterisk-1.8.5.0/apps/app_directed_pickup.c 2011-07-16 19:55:54.000000000 -0400
@@ -76,7 +76,7 @@
Pickup a ringing channel.
-
+
Hi Im new to asterisk (and TL
Hi
Im new to asterisk (and TL for that matter), though i have about 15 years multi-vendor experience in voice. I have been spending the past few weeks evaluating TL (6.1.1.11 dist) in the hopes of getting it to production. I have read several threads relating to difficulties with the pickup group feature. I apologise in advance if this debate has moved on. Firstly i think this function is fundamental. I have comissioned over 2000 systems and can firmly state that this function holds alot of weight. Please dont tell me that you can use directed call pickup - thats nonsense, group pickup is whats required and it needs to work perfectly.
My question is related to the script 'tl-pickupgroup-pickup'. From what i have seen, it seems that the pickupchan() application will not work with consistency if the extension calling this application is also defined as a member of the pickup group. in other words pickupchan() wont work (all the time) if one of its arguments is the same channel that it was being called on.
Whats TL's position on this script? from what i can tell (correct me if im wrong) it is the only way bywhich to setup multiple pickup groups under the same tenancy.
its the only way to have
its the only way to have _any_ pickup groups in multi-tenant. the sip.conf entry of pickupchan is limited in such a way that it is destructive to MTE and creates lots of errors once you've created the 63rd unique tenant.
from my testing I didnt run into a problem where SIP/101-tenant were to execute
exten => s,1,PickupChan(SIP/101-tenant&SIP/102-tenant&SIP/103-tenant&SIP/104-tenant)
have you checked all versions of asterisk to rule out version-specific bugs? what version of asterisk are you using?
Hi Erik Asterisk version is
Hi Erik
Asterisk version is 1.8.7.1 PBX Manager is 6.1.1.11, perhaps i should be doing my testing on the latest TL distribution.
Its interesting that you are using the '&' instead of a coma between channels. PBX Manager 6.1.1.11 builds the pickup group with PickupChan() having coma seperated arguments. Maybe thats making the difference. I will try editing the code and advise if it has made any difference.
Relating to the sip.conf group pickup parameters. if you were to manually edit these parameters (ie. pickupgroup= and callgroup= ) PBX Manager would just overwrite your modifications next time you reloaded (which is what id expect it to do).
the comma was a coding
the comma was a coding problem in asterisk. It didnt actually work so I submitted a patch change to fix it. 6.1.1.12 definitely writes the dialplan to include the comas.
you do not want to use pickupgroup and callgroup.. its hard coded to be 0 - 63. Even if you left it at 1 per tenant based on tenant index number, the 63rd tenant ID would be the last time you could use it. If you consider most people waste the first 5 or 6 tenant id's testing the creation and deletion of tenants, its not a good solution for MTE.
ok did some testing (still
ok did some testing (still using the same versions as indicated previously). Setup three extensions 201,202 and 203.
Call placed from 202 to 203. '*80' was dialed from extension 201 which invokes tl-pickupgroup-pickup script.
When the described test is conducted with the following in pickupgroups.include as built by PBX Manager:
[pickup0-thirdlane]
exten => s,1,PickupChan(SIP/201-thirdlane,SIP/202-thirdlane,SIP/203-thirdlane)
then call pickup fails and the following appears in the trace:
NOTICE[7398]: app_directed_pickup.c:364 pickupchan_exec: Cannot pickup your own channel SIP/201-thirdlane.
If pickupgroups.include is modified as follows:
[pickup0-thirdlane]
exten => s,1,PickupChan(SIP/201-thirdlane&SIP/202-thirdlane&SIP/203-thirdlane)
then pickup will work everytime (for any call scenario involving 201,201 and 203).
So welcome to 7/16/2011. If
So welcome to 7/16/2011. If you finish reading this whole thread you might catch up to present day :). This is not an ongoing problem. Do some updates. :-)
Im glad to hear that its not
Im glad to hear that its not an ongoing issue, however i upgraded to asterisk 1.8.11.0 and i still get the same outcome as described in my previous post (Fri, 04/06/2012 - 08:12 ). TL MTE version is 6.1.1.11
i.e NOTICE[28127]: app_directed_pickup.c:363 pickupchan_exec: Cannot pickup your own channel SIP/201-thirdlane.
pickupgroups.include
[pickup0-thirdlane]
exten => s,1,PickupChan(SIP/201-thirdlane,SIP/202-thirdlane,SIP/203-thirdlane)
any ideas?
your doing something terribly
your doing something terribly terribly wrong.. is your license up to date? You should probably just hire me to fix this for you.. the amount of time its not been working would justify the expense by now, I would suspect.
[macro-tl-pickupgroup-pickup]
exten => s,1,Goto(pickup${MACRO_EXTEN:${ARG1}}${TL_DASH}${tenant})
needs to be
[macro-tl-pickupgroup-pickup]
exten => s,1,Goto(pickup${MACRO_EXTEN:${ARG1}}${TL_DASH}${tenant},s,1)