VM_INFO функция

254 просмотров
спросил 21 Март, 13 от const_55 (990 баллов) в категории Тонкая настройка
теги изменены 18 Апр, 13 от boffart

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

оставил комментарий 21 Март, 13 от boffart (50,240 баллов)
11 версии чего?
Askozia 2.2.2 основана на Asterisk 10ой версии.
оставил комментарий 22 Март, 13 от const_55 (990 баллов)
11 астериска
Я понимаю, что аскозия собрана на 10 версии
просто аналога Этой функции не знаю в 10 версии
поэтому таким образом и спросил

2 Ответы

0 голосов
ответил 22 Март, 13 от boffart (50,240 баллов)

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

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

оставил комментарий 22 Март, 13 от const_55 (990 баллов)
редактировать 23 Март, 13 от const_55
Спасибо за совет нашел примерчик
http://asteriskrecipes.euscorp.com/?p=108
0 голосов
ответил 26 Март, 13 от boffart (50,240 баллов)

Вот такой пример нашел в 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 от const_55 (990 баллов) в категории Тонкая настройка
редактировать 28 Март, 13 от nbek
Как(Когда) из переменной SENDNOTIFICATIONS получить email майлбокса?
Добро пожаловать на сайт Askozia Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

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

askozia провайдер запись-разговоров настройка ivr маршрут входящие-вызовы askozia6 маршрутизация очередь провайдеры askozia7 запись факс очередь-вызовов исходящие-звонки транк обновление переадресация веб-интерфейс ascozia история мобильный интеграция перехват-вызова провайдеров логи редактор разговоров goip аон callerid установка маршруты диалплан тишина smtp gsm панель-телефонии-1с перевод-вызова звонок nat лицензия панель askozia-5 переадресация-мобильный префиксы телефонная-книга голосовая почта парковка перевод vmware мультифон мегафон донабор настройка-провайдер статистика время голосовая-почта перехват вызовов номер asterisk skype ssh 2 web-интерфейс дополнительный-диск распределение проброс-портов настройка-исходящие-исходящих-вызов-вызовов подменю goip4 отправка-факса железо grandstream релиз beeline digium bruteforce взлом приложение исходящие fax web cdr времени pickup вызовы yealink ростелеком mango 8 шлюз количество не-слышно-звук перенос_конфигурации запись-разговора

1,410 вопросов

1,224 ответов

2,898 комментариев

1,717 пользователей

...