Чтение онлайн

на главную - закладки

Жанры

Asterisk™: будущее телефонии Второе издание
Шрифт:

– - Executing VoiceMail("SIP/odbc_test_user-10228cac", "1000@default") in new stack

– - Playing 'vm-intro' (language 'en') -- Playing 'beep' (language 'en') -- Recording the message -- x=0, open writing: /var/spool/asterisk/voicemail/default/1000/tmp/dlZunm format: wav49, 0x101f6534 -- User ended message by pressing # -- Playing 'auth-thankyou' (language 'en') == Parsing '/var/spool/asterisk/voicemail/default/1000/INBOX/msg0000.txt': Found

Теперь можно снова использовать приложение psql и убедиться, что запись в базу данных действительно осуществляется:

# psql -h localhost -U asterisk asterisk

Password:

С

помощью запроса SELECT проверим наличие некоторых данных в таблице voicemessages:

localhost=# SELECT id,dir,callerid,mailboxcontext, recording FROM voicemessages;

id | dir | callerid | mailboxcontext | recording —+ + + +

1 | /var/spool/asterisk/ | +18005551212 | default | 47395

voicemail/default/1000/INBOX (1 row)

Если запись была помещена в базу данных, должна быть возвращена соответствующая строка. Вы заметите, что в столбце recording имеется номер (он, скорее всего, будет отличаться от приведенного здесь), который на самом деле является идентификатором большого объекта, хранящегося в системной таблице. Давайте проверим существование большого объекта в этой системной таблице с помощью команды lo_ list:

localhost=# \lo_list Large objects

ID | Description +

47395 | (1 row)

Проверяем, соответствует ли ID объекта в таблице voicemessages указанному в системной таблице больших объектов. Также можно извлечь информацию из базы данных и сохранить ее на жестком диске, чтобы воспроизвести и убедиться, что сообщение было сохранено правильно: localhost=# \lo_export 47395 /tmp/voicemail-47395.wav lo_export

Теперь проверьте аудиозапись, используя свое любимое приложение для работы с аудиоданными, например приложение play: # play /tmp/voicemail-47395.wav

Input FilenameInput Filename /tmp/voicemail-47395.wav
Sample Size 8-bits
Sample Encoding wav
Channels 1
Sample Rate 8000

Time: 00:06.22 [00:00.00] of 00:00.00 ( 0.0%) Output Buffer: 298.36K Done.

И теперь, когда мы убедились, что все было сохранено в базе данных правильно, можно попытаться прослушать запись с помощью приложения VoicemailMain, позвонив на добавочный номер 200:

*CLI>

– - Executing VoiceMailMain("SIP/odbc_test_user-10228cac", "1000@default")

in new stack -- Playing 'vm-password' (language 'en') -- Playing 'vm-youhave' (language 'en') -- Playing 'digits/1' (language 'en') -- Playing 'vm-INB0X' (language 'en') -- Playing 'vm-message' (language 'en') -- Playing 'vm-onefor' (language 'en') -- Playing 'vm-INB0X' (language 'en') -- Playing 'vm-messages' (language 'en') -- Playing 'vm-opts' (language 'en') -- Playing 'vm-first' (language 'en') -- Playing 'vm-message' (language 'en') == Parsing '/var/spool/asterisk/voicemail/default/1000/INB0X/msg0000.txt': Found

Заключение

В

данной главе мы рассмотрели несколько областей интеграции Asterisk с реляционной базой данных. Это полезно для систем, в которых необходимо реализовать масштабирование через кластеризацию нескольких серверов Asterisk, работающих с общей централизованной информацией, или когда требуется создавать внешние приложения для изменения информации без перезагрузки системы (то есть без необходимости изменения плоских файлов).13

Управление системой Asterisk

Это не будет рассматриваться в книге. Исходный код тоже должен на что-то сгодиться, в конце концов.

– Ларри Уолл

Вы наверняка полны массой интересных идей, которые собираетесь реализовать с помощью своей новой замечательной системы Asterisk, но есть и некоторые базовые, неинтересные, осмелимся даже сказать, скучные аспекты, которые необходимо обсудить.

Запись параметров вызовов

Даже без всяких указаний Asterisk предполагает, что вы хотите сохранять информацию CDR1.

По умолчанию Asterisk создает CSV-файл и помещает его в папку /var/log/asterisk/cdr-csv/2. На первый взгляд в этом файле ничего не

CDR (Call Detail Record) - запись параметров вызова. В телекоммуникационной сфере это файл, содержащий информацию о работе оборудования, такую как идентификатор источника звонка, идентификатор назначения, длительность и стоимость каждого звонка, общее время работы за тарифицированный период, оставшееся время и списанная за данный период сумма. Формат CDR определяется телекоммуникационным оператором или программой. Некоторые программы позволяют конфигурирование формата CDR пользователем.
Примеч. науч.ред.

Файл в формате с разделяющими запятыми (Comma Separated Values, CSV) - общепринятый метод представления данных в текстовом файле. CSV-файл можно открыть в любом текстовом редакторе, но большинство программ обработки крупноформатных таблиц и баз данных также будут читать такие файлы и правильно разбивать их на строки и столбцы.

понятно1. Однако, если разделить его на строки соответственно расположению запятых, можно заметить, что в каждой строке содержится информация об отдельном вызове и что запятые разделяют следующие значения:

accountcode

Присваивается, если оно задано для канала в конфигурационном файле канала (то есть в sip.conf). Код счета задается для каждого канала. Это значение можно также менять из диалплана, задавая

CDR(accountcode).

Полученный идентификатор вызывающего абонента (строка, 80 символов).

Вызываемый добавочный номер.

dcontext

Вызываемый контекст.

clid

Идентификатор вызывающего абонента с текстом (80 символов).

Поделиться:
Популярные книги

Эволюционер из трущоб. Том 4

Панарин Антон
4. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 4

Измена. Возвращение любви!

Леманн Анастасия
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Возвращение любви!

Газлайтер. Том 14

Володин Григорий Григорьевич
14. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 14

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Адвокат вольного города 3

Кулабухов Тимофей
3. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Адвокат вольного города 3

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Шайтан Иван 2

Тен Эдуард
2. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван 2

На границе империй. Том 8

INDIGO
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8

Измена. Жизнь заново

Верди Алиса
1. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Жизнь заново

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Око василиска

Кас Маркус
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Око василиска

Жена моего брата

Рам Янка
1. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Жена моего брата

Государь

Кулаков Алексей Иванович
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Государь

Законы Рода. Том 8

Flow Ascold
8. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 8