Hi all,
I am facing the following problems with conferences and i was wondering if anyone knows anything:
1) I have no MOH in conferences even though normal MOH works ok. I am using a digium card for clocking.
2)DTMFs seem to work ok for pin input in conference but after the user gets into the conference , asterisk does not seem to receive the dtmf * when i press it so i can get the menu.
Any ideas will be deeply appreciated!
Would probably be more
Would probably be more useful to have the script actually read the options out of the database when it's run like it does when you go in through the manual prompted version. Although I can see where someone might want the shortcut script like that to override something going in, so it'd probably be better to make a new script that uses the database without prompting.
I cloned tl-dialconference-prompted and changed it to allow for a conference room number to optionally be passed in (and prompt for it if it's not)... here's that version:
[my-dialconference]
use=inbound,feature
friendlyname=Go to Conference (use DB options)
description
Provides access to a conference room prompting for a room number.
Allows to use per-conference configuration settings. Extra conference options can be added to the options specified in the conference configuration settings. Optional argument allows to prepend a text string to the caller id name.
This version skips prompting for a room number if one is passed in as an argument.
args=1,Extra conference options,text:2,Text to prepend to caller id name,text:3,Conference Number (optional - will prompt if not given),conference
body
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Set(CALLERID(name)=${ARG2}${CALLERID(name)})
exten => s,n,Set(attempts=0)
exten => s,n,Set(TIMEOUT(digit)=4)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Set(confno=${ARG3})
exten => s,n,GotoIf($["${confno}" != ""]?gotconf)
exten => s,n(getconf),Read(confno,conf-getconfno)
exten => s,n(gotconf),NoOp(confno = ${confno})
exten => s,n,NoOp(confno = ${confno})
;; check if conference exists and is enabled
exten => s,n,Set(status=${DB(TL/CONF/${confno}/status)})
exten => s,n,GotoIf($["${status}" != "1"]?confinvalid)
exten => s,n,Set(moh=${DB(TL/CONF/${confno}/moh)})
exten => s,n,Set(maxusers=${DB(TL/CONF/${confno}/maxusers)})
exten => s,n,Set(userpin=${DB(TL/CONF/${confno}/userpin)})
exten => s,n,Set(adminpin=${DB(TL/CONF/${confno}/adminpin)})
exten => s,n,Set(options=${DB(TL/CONF/${confno}/options)})
;; check if maxusers has been reached
exten => s,n,GotoIf($["${maxusers}" = ""]?pregetpin)
exten => s,n,MeetmeCount(${confno},count)
exten => s,n,GotoIf($[${count} >= ${maxusers}]?full:pregetpin)
exten => s,n(confinvalid),Playback(conf-invalid)
exten => s,n,Set(attempts=$[${attempts} + 1])
exten => s,n,GotoIf($[${attempts} = 3]?endconf) ; bail out after 3 attempts
exten => s,n,Goto(getconf)
exten => s,n(pregetpin),Set(attempts=0) ; reset the counter for pin prompt
; always ask for pin so admin could enter his or empty pin could be entered if not required
exten => s,n(getpin),Read(pin,conf-getpin)
exten => s,n,NoOp(pin = ${pin})
exten => s,n,GotoIf($["${pin}" = "${userpin}"]?getoptions) ; user pin matched
exten => s,n,GotoIf($["${pin}" = ""]?pininvalid) ; no empty admin pins
exten => s,n,GotoIf($["${pin}" = "${adminpin}"]?setadmin) ; admin pin matched
exten => s,n(pininvalid),Playback(conf-invalidpin)
exten => s,n,Set(attempts=$[${attempts} + 1])
exten => s,n,GotoIf($[${attempts} = 3]?endconf) ; bail out after 3 attempts
exten => s,n,Goto(getpin)
exten => s,n(setadmin),Set(adminoptions=Aa) ; additional options to pass to MeetMe for an admin
exten => s,n(getoptions),GotoIf($["${options}" != "" | "${ARG1}" != "" ]?startconf)
exten => s,n,Set(options=${DEFAULT_CONF_OPTS}) ; only if the conf didn't specify any
exten => s,n(startconf),SetMusicOnHold(${moh})
;; may need absolute path???
exten => s,n,Set(MEETME_RECORDINGFILE=conf-${confno}-${STRFTIME(,,%F-%T)}-${confno}${TL_DASH}${tenant})
exten => s,n,MeetMe(${confno},${options}${ARG1}${adminoptions},${pin})
exten => s,n(endconf),Playback(vm-goodbye)
exten => s,n,Wait(2)
exten => s,n,Hangup
exten => s,n(full),NoOp(Conference full)
;; record message for conference full
exten => s,n,Playback(vm-goodbye)
exten => s,n,Goto(getconf)
To use this, append the above onto the end of /etc/asterisk/user_scripts_source.include , then add this:
[macro-my-dialconference]
onto the end of user_scripts.include followed by everything in the first snippet after the line that says 'body'. Then go to the GUI and tell it to reload the config. (or type "reload" from the CLI).
Kinda wish there was an easier way to import saved scripts, but I sure can't find one.
justdave thank you for the
justdave thank you for the reply.
It would be nice though if this was done in generic scripts directly so in further upgrades of the pbx manager the scripts remain consinstent since scripts may be changed due to asterisk software changes, etc but the custom scripts remain unchanged.
Of course using custom scripts is good, I use them a lot but i consider the script tl-dialconference a basic script which should be working ok.
Hopefully its use would be
Hopefully its use would be temporary if Alex likes it, because then he can incorporate this into the next version and you can go back to using his. :) The one I posted above can be used interchangeably with tl-dialconference-prompted without changing any of its existing interface, so those changes could be added to tl-dialconference-prompted to get the extra functionality and avoid the duplication without disturbing anything it already does.
Another problem with
Another problem with conference is that the conference manager is not working! even though i have one person logged in to the conference , conference manager shows nothing.
Any ideas?
From CLI:
CLI> meetme list 350
User #: 01 314 conf_Kyriakos Mavrom Channel: SIP/314-00875ef0 (not talking) 00:01:39
1 users in that conference.
ok found the post regarding
ok found the post regarding the adobe policy thingy regarding the conference manager..
OK, as usual a while after posting I found the problem :P
It looks like the conference room options available in the Conference room tab , are not being included even though i choose them!
The issue now is why are they not included? Does anyone else face this?
This is the line for the inbound route for the conference
/etc/asterisk/inbound_actions.include:exten => 22693430,n(nomoh),Macro(tl-dialconference,350,,NOCconf)
As you can see there are no options included there. Normally, when choosing conference room from the dropdown list for tl-dialconference script , the options should be read and added during the creation of the above line.