=== Адресная книга в Asterisk. Подстановка Caller Name при входящем звонке ===
Друзья согласитесь что при входящем вызове приятнее видеть не просто номер телефона, а при этом как то идентифицировать человека. Для этого я решил придумать небольшой сценарий для адресной книги. Так же сразу добавлю распределение вызова на того или иного сотрудника.
Суть будет такой, мы создаем таблицу в базе, в которой будут следующие поля:
ID - Уникальный порядковый номер \\
PHONE - Номер телефона клиента\\
NAME - Имя клиента\\
AGENT - Внутренний номер сотрудника\\
После создания таблицы с этими полями можно будет
Добавляем запрос в //**func_odbc.conf**// \\
[GET_DATA_FB]
dsn=aster
read=SELECT phone,name,agent FROM имя_базы.таблица WHERE phone="${CALLERID(num)}"
Далее правим входящий звонок //**extensions.conf**//
[IN]
exten => _X.,1,Answer()
exten => _X.,2,Set(ARRAY(PHONE,NAME,AGENT)=${ODBC_GET_DATA_FB(${CALLERID(num)})}") ; Построение массива номеров из БД FB
exten => _X.,3,Set(CALLERID(name)=${NAME}) ; При имеющемся совпадении задается имя контакта
exten => _X.,4,GotoIf($["${AGENT}"!=""]?dialagent) ; Проверка задан ли агент в базе FB
exten => _X.,5,Dial(SIP/5553)
exten => _X.,n(dialagent),Dial(SIP/${AGENT},25,tTm(hold))
exten => _X.,n,HangUp()
Для удобства заполнения номеров, накидал небольшую форму.
Создаем файл //**connect.php**//
Ошибка подключения к базе данных! " . mysql_error() . "
Ошибка выбора базы данных! ". mysql_error() . "
"); ?> Создаем файл //**form.php**//
Ну и завершающий файл //**fb.html**//
Untitled Document