Страница 84 из 157
type=friend
host=dynamic
secret=my_special_secret
context=hotdesk
qualify=yes
; КОНЕЦ ОПИСАНИЯ ПОЛЬЗОВАТЕЛЕЙ "ГОРЯЧИХ СТОЛОВ" Это два настольных телефона, звонки на которые обрабатываются в контексте [hotdesk] файла extensions.conf. Если вы хотите, чтобы эти устройства на самом деле работали, конечно, понадобится задать соответствующие параметры в самих устройствах, но это все рассматривалось в главе 4.
Для файла sip.conf это все. У нас уже есть два кусочка хлеба, но это еще не сэндвич.
Теперь давайте настроим базу данных (предполагаем, что коннектор ODBC базы данных создан и работает, как описывалось в предыдущих разделах данной главы). Сначала подключимся к консоли базы данных следующим образом: # su - postgres
$ psql -U asterisk -h localhost asterisk
Password:
Затем, используя следующий фрагмент кода, создадим таблицу: CREATE TABLE ast_hotdesk (
id serial NOT NULL, extension int8,first_name text, last_name text, cid_name text, cid_number varchar(10), pin int4, context text,
status bool DEFAULT false, "location" text,
CONSTRAINT ast_hotdesk_id_pk PRIMARY KEY (id)
)
WITHOUT OIDS;
После этого заполняем базу данных следующей информацией (некоторые значения изменятся лишь после выполнения диалплана, но мы приводим их здесь для примера). В консоли PostgreSQL выполните такие команды:
asterisk=> INSERT INTO ast_hotdesk ('extension', 'first_name', 'last_name', 'cid_name', 'cid_number', 'pin', 'context', 'location') VALUES (1101, 'Leif', 'Madsen', 'Leif Madsen', '4165551101', '555', 'longdistance', 'desk_1');
Повторите предыдущую строку и введите собственные значения VALUES для всех записей, которые вы желаете видеть в базе данных. Данные таблицы ast_hotdesk можно увидеть, выполнив простой запрос SELECT из консоли PostgreSQL:
asterisk=> SELECT * FROM ast_hostdesk; в результате чего будет получен примерно такой вывод:
Теперь у нас есть все ингредиенты, можно приниматься за диалплан. Вот здесь и начинается волшебство.
Прежде чем вы начнете писать программу, обращаем ваше внимание, что весь текст примера можно найти в приложении G. Хотя мы рекомендуем разобрать весь пример вместе с нами по шагам, в приложении вы можете увидеть его целиком (и скопировать его код, если у вас есть электронная версия данной книги).
В файле extensions.conf мы собираемся создать контекст [hotdesk]. Для начала определим шаблонный добавочный номер, который обеспечит возможность пользователям регистрироваться в системе:
; extensions.conf ; функция "горячих столов" [hotdesk]
; Регистрация "горячего стола"