asterisk freepbx conference timeout - принудительное отключение пользователей конференции.

Метки: Asterisk

задача не сложная, надо сделать примерно следующее, если у вас просто астериск:)

exten => 111,1,Set(TIMEOUT(absolute)=3600)
exten => 111,n,MeetMe(222,d)

но если вы используете freepbx ситуация немного меняется...
надо найти functions.inc.php который лежит тут /var/www/html/admin/modules/conferences

найти блок:

                                        // entry point
                                        $ext->add($contextname, $roomnum, '', new ext_macro('user-callerid'));
                                        $ext->add($contextname, $roomnum, '', new ext_setvar('MEETME_ROOMNUM',$roomnum));
                                        $ext->add($contextname, $roomnum, '', new ext_setvar('MAX_PARTICIPANTS', $roomusers));
                                        $ext->add($contextname, $roomnum, '', new ext_setvar('MEETME_MUSIC',$music));
          $ext->add($contextname, $roomnum, '', new ext_gosub('1','s','sub-record-check',"conf,$roomnum," . (strstr($room['options'],'r') !== false ? 'always' : 'never')));
                                        $ext->add($contextname, $roomnum, '', new ext_gotoif('$["${DIALSTATUS}" = "ANSWER"]',($roomuserpin == '' && $roomadminpin == '' ? 'USER' : 'READPIN')));
                                        $ext->add($contextname, $roomnum, '', new ext_answer(''));
                                        $ext->add($contextname, $roomnum, '', new ext_wait(1));

и добавить в него строку, чтобы выглядело так:

                                        // entry point
                                        $ext->add($contextname, $roomnum, '', new ext_macro('user-callerid'));
                                        $ext->add($contextname, $roomnum, '', new ext_setvar('MEETME_ROOMNUM',$roomnum));
                                        $ext->add($contextname, $roomnum, '', new ext_setvar('MAX_PARTICIPANTS', $roomusers));
                                        $ext->add($contextname, $roomnum, '', new ext_setvar('MEETME_MUSIC',$music));
          $ext->add($contextname, $roomnum, '', new ext_gosub('1','s','sub-record-check',"conf,$roomnum," . (strstr($room['options'],'r') !== false ? 'always' : 'never')));
                                        $ext->add($contextname, $roomnum, '', new ext_gotoif('$["${DIALSTATUS}" = "ANSWER"]',($roomuserpin == '' && $roomadminpin == '' ? 'USER' : 'READPIN')));
                                        $ext->add($contextname, $roomnum, '', new ext_set('TIMEOUT(absolute)=1800'));
                                        $ext->add($contextname, $roomnum, '', new ext_answer(''));
                                        $ext->add($contextname, $roomnum, '', new ext_wait(1));

перечитать конфиг через freepbx и смотреть dialplan show чтобы убедиться что все ок.

Tags for asterisk freepbx conference timeout - принудительное отключение пользователей конференции.
Вход в систему
Image CAPTCHA
Enter the characters shown in the image.