600 просмотров
от (990 баллов) в категории Тонкая настройка
теги изменены от

Скажите плиз в 11 версии * существует функция Vm_info
( можно получить значение email владельца майлбокса )
Существует ли способ получить это значение в Аскозии?

от (123 тыс. баллов)
11 версии чего?
Askozia 2.2.2 основана на Asterisk 10ой версии.
от (990 баллов)
11 астериска
Я понимаю, что аскозия собрана на 10 версии
просто аналога Этой функции не знаю в 10 версии
поэтому таким образом и спросил

2 Ответы

от (123 тыс. баллов)

Вижу единственный вариант - распарсить файл
voicemail.conf

[default]
101 => 3957,Petr Ivanov,123@mail.ru,,delete

от (990 баллов)
редактировать от
Спасибо за совет нашел примерчик
http://asteriskrecipes.euscorp.com/?p=108
от (123 тыс. баллов)

Вот такой пример нашел в FreePBX (AsteriskNow 3.0):
/var/lib/asterisk/agi-bin/directory

<?php



        function parse_voicemailconf($filename, &$vmconf, &$section) {
            if (is_null($vmconf)) {
                $vmconf = array();
            }
            if (is_null($section)) {
                $section = "general";
            }

            if (file_exists($filename)) {
                $fd = fopen($filename, "r");
                while ($line = fgets($fd, 1024)) {
              if (preg_match("/^\s*(\d+)\s*=>\s*(\d*),(.*),(.*),(.*),(.*)\s*([;#].*)?/",$line,$matches)) {
                        // "mailbox=>password,name,email,pager,options"
                        // this is a voicemail line 
                        $vmconf[$section][ $matches[1] ] = array("mailbox"=>$matches[1],
                                            "pwd"=>$matches[2],
                                            "name"=>$matches[3],
                                            "email"=>$matches[4],
                                            "pager"=>$matches[5],
                                            );

                        // parse options
                        foreach (explode("|",$matches[6]) as $opt) {
                            $temp = explode("=",$opt);
                            if (isset($temp[1])) {
                                list($key,$value) = $temp;
                                $vmconf[$section][ $matches[1] ]["options"][$key] = $value;
                            }
                        }
                    } else if (preg_match("/^\s*#include\s+(.*)\s*([;#].*)?/",$line,$matches)) {
                        // include another file

                        if ($matches[1][0] == "/") {
                            // absolute path
                            $filename = $matches[1];
                        } else {
                            // relative path
                            $filename =  dirname($filename)."/".$matches[1];
                        }

                        parse_voicemailconf($filename, $vmconf, $section);

                    } else if (preg_match("/^\s*\[(.+)\]/",$line,$matches)) {
                        // section name
                        $section = strtolower($matches[1]);
                    } else if (preg_match("/^\s*([a-zA-Z0-9-_]+)\s*=\s*(.*?)\s*([;#].*)?$/",$line,$matches)) {
                        // name = value
                        // option line
                        $vmconf[$section][ $matches[1] ] = $matches[2];
                    }
                }
            }
        }


        $directory_file = '/etc/asterisk/voicemail.conf';
        $vmconf = array();
        $null = null;

        parse_voicemailconf($directory_file, $vmconf, $null);
        print_r($vmconf);
        ?>

вывод функции:

php -q /tmp/test.php

Array
(
    [general] => Array
        (
            [emailbody] => ${VM_NAME},\n\nThere is a new voicemail in mailbox ${VM_MAILBOX}:\n\n\tFrom:\t${VM_CALLERID}\n\tLength:\t${VM_DUR} seconds\n\tDate:\t${VM_DATE}\n\nDial *98 to access your voicemail by phone.\nVisit http://AMPWEBADDRESS/recordings/index.php to check your voicemail with a web browser.\n
        )

    [default] => Array
        (
            [104] => Array
                (
                    [mailbox] => 104
                    [pwd] => 123
                    [name] => 104
                    [email] => 04@mail.ru
                    [pager] => 
                    [options] => Array
                        (
                            [attach] => yes
                            [saycid] => yes
                            [envelope] => yes
                            [delete] => yes
                        )

                )

        )

)

далее можно обрабатывать массив

спросил 27 Март, 13 от (990 баллов) в категории Тонкая настройка
редактировать 28 Март, 13 от
Как(Когда) из переменной SENDNOTIFICATIONS получить email майлбокса?
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь битрикс24 провайдеры очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время bitrix24 факс модуль nat docker запись-разговора веб-интерфейс goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...