Jörn Stenkamp
2012-Jun-26 19:35 UTC
[asterisk-users] asterisk > 1.6.2.0, ODBC and meetme -> no musiconhold
Hello together! I'm trying to migrate my actual asterisk with adhoc conference bridge functionality to another server, but I don't get the MusicOnHold function running in combination with MeetMe on the new server. Beside the asterisk version (1.6.2.0-1 vs 1.6.2.9-2) the new server is using on 64bit architecture (i386 vs x86_64) there are no bigger differences. In the past I tried several times to update the asterisk version 1.6.2.0-1 to something newer, but then I had always stability problems with the MeetMe function. The new server: Server: Intel(R) Xeon(TM) CPU 2.80GHz Ram: 2GB OS: Debian 6.0.5 x86_64 Kernel: 2.6.32 Asterisk: Asterisk 1.6.2.9-2+squeeze6 So let me briefly describe the concept on the working server: A call comes in to the asterisk server. The user will be asked to enter the conference number (max 6 digits and max 3 retries) The user get an announcement of the entered digits and will be placed into his conference If the user is the only person in this conference MusicOnHold will be played (MeetMe,M) Server: Intel(R) Xeon(TM) CPU 2.80GHz Ram: 3GB OS: Debian 6.0.5 i386 Kernel: 2.6.33.11 Asterisk: 1.6.2.0-1 Asterisk has been setup to accept adhoc conferencing identified by numbers from 0000-999999. The confno are stored in a mySQL database, because a meetme.conf flat file won't work with such amount of numbers. ODBC has been setup correctly and is working. cat res_odbc.conf [asterisk] enabled => yes dsn => asterisk username =>asterisk password => xxxxxxx ;loguniqueid = yes pre-connect => yes cat func_odbc.conf [VALID] dsn=asterisk read=select count(*) from meetme where confno=${ARG1}; cat extconfig.conf meetme => odbc,asterisk,meetme extensionf.conf exten => 5029,1,NoOp(***INCOMING CALL***) exten => 5029,n,Set(CHANNEL(language)=en_GB) exten => 5029,n,Answer() exten => 5029,n,Ringing() exten => 5029,n,Wait(6) exten => 5029,n,Set(RETRIES=0) exten => 5029,n,Read(CONFNO,conf-getpin,6) exten => 5029,n(retry),GotoIf($[${LEN(${CONFNO})}<4]?invalid) exten => 5029,n,GotoIf(${ODBC_VALID(${CONFNO})}?valid) exten => 5029,n(invalid),GotoIf($[${RETRIES}>2]?goodby) exten => 5029,n,Set(RETRIES=$[${RETRIES}+1]) exten => 5029,n,Read(CONFNO,conf-invalid,6) exten => 5029,n,Goto(retry) exten => 5029,n(valid),NoOp exten => 5029,n,Playback(conf-enteringno) exten => 5029,n,SayDigits(${CONFNO}) exten => 5029,n,MeetMe(${CONFNO},Mcs) exten => 5029,n,Hangup exten => 5029,n(goodby),Playback(vm-goodbye) exten => 5029,n,Hangup DATABASE STUFF: mysql> use asterisk; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +--------------------+ | Tables_in_asterisk | +--------------------+ | meetme | +--------------------+ 1 row in set (0.00 sec) mysql> describe meetme; +-------------------+-------------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+-------------+------+-----+---------------------+-------+ | confno | varchar(80) | NO | PRI | 0 | | | bookId | char(50) | YES | | NULL | | | starttime | datetime | NO | PRI | 0000-00-00 00:00:00 | | | endtime | datetime | YES | | NULL | | | pin | char(30) | YES | | NULL | | | opts | char(100) | YES | | NULL | | | adminpin | char(30) | YES | | NULL | | | adminopts | char(100) | YES | | NULL | | | members | int(11) | NO | | 0 | | | maxusers | int(11) | NO | | 0 | | | recordingfilename | char(255) | YES | | NULL | | | recordingformat | char(10) | YES | | NULL | | +-------------------+-------------+------+-----+---------------------+-------+ 12 rows in set (0.01 sec) On the asterisk CLI I got... on the old server: == Parsing '/etc/asterisk/meetme.conf': == Found -- Created MeetMe conference 1022 for conference '01233' -- <SIP/sip-lab-00000079> Playing 'conf-onlyperson.alaw' (language 'en_GB') -- Started music on hold, class 'default', on channel 'SIP/sip-lab-00000079' on the new server: == Parsing '/etc/asterisk/meetme.conf': == Found -- Created MeetMe conference 1023 for conference '123456' > Found confno column with type 12 with len 80, octetlen 80, and numlen (0,0) > Found bookId column with type 1 with len 50, octetlen 50, and numlen (0,0) > Found starttime column with type 93 with len 19, octetlen 19, and numlen (0,10) > Found endtime column with type 93 with len 19, octetlen 19, and numlen (0,10) > Found pin column with type 1 with len 30, octetlen 30, and numlen (0,0) > Found opts column with type 1 with len 100, octetlen 100, and numlen (0,0) > Found adminpin column with type 1 with len 30, octetlen 30, and numlen (0,0) > Found adminopts column with type 1 with len 100, octetlen 100, and numlen (0,0) > Found members column with type 4 with len 10, octetlen 10, and numlen (0,10) > Found maxusers column with type 4 with len 10, octetlen 10, and numlen (0,10) > Found recordingfilename column with type 1 with len 255, octetlen 255, and numlen (0,0) > Found recordingformat column with type 1 with len 10, octetlen 10, and numlen (0,0) -- <SIP/sip-lab-0000000e> Playing 'conf-onlyperson.alaw' (language 'en_GB') -- Hungup 'DAHDI/pseudo-1126792154' If I enter in meetme.conf conf => 123456 it works fine == Parsing '/etc/asterisk/meetme.conf': == Found -- Created MeetMe conference 1023 for conference '123456' -- <SIP/sip-lab-00000000> Playing 'conf-onlyperson.alaw' (language 'en_GB') -- Started music on hold, class 'default', on channel 'SIP/sip-lab-00000000' -- Stopped music on hold on SIP/sip-lab-00000000 -- Started music on hold, class 'default', on channel 'SIP/sip-lab-00000000' -- Stopped music on hold on SIP/sip-lab-00000000 -- Hungup 'DAHDI/pseudo-121792888' Any idea? Best regards Joern