Ченить типа такого :
http://habrahabr.ru/post/142895/
Я когда-то думал в эту сторону - чтобы экспедиторы фирмы, коих много, не торчали в общей очереди с клиентами.
То, что ниже НАПИСАНО БЕЗГРАМОТНО И НАВЕРНЯКА НЕ РАБОТАЕТ. Просто первые наброски, даже не тестил.
Особой необходимости не было, а баловаться на рабочей машине не стал.
Щаз местные белобородые закидают какашками. )))
Смысл подразумевался такой: входящие маршруты отправлять в Custom Destination "check-worker-numbers" -> Идет вызов функции запроса к БД 1С (справочник сотрудников) -> Если есть в базе - отправить "туда", если нет - отправить "сюда".
В Администратор - Custom Destination
Спецназначение: check-worker-numbers,s,1
В файле extension_custom.conf
Код: Выделить всё
[check-worker-numbers]
exten => s,1,NoOp(Проверка на принадлежность к сотрудникам)
exten => s,n,Set(telnum=${CALLERID(num)})
exten => s,n,Set(ret_func=${ODBC_CHECK_NUM(${telnum})})
exten => s,n,GotoIf($[${ret_func} = 0]?net:rab)
exten => s,n(rab),NoOp(${telnum} - это номер сотрудника)
exten => s,n,Hangup()
;exten => s,n,Goto(ext-group,600,1)
exten => s,n(net),NoOp(${telnum} - это НЕ номер сотрудника)
exten => s,n,Hangup()
;exten => s,n,Goto(ext-group,601,1)
;exten => s,n,Dial(SIP/198,30)
;exten => s,n,Hangup()
В файле func_odbc.conf
Код: Выделить всё
[CHECK_NUM]
dsn=1cDB
readsql=select count(*) from SC17120 (NOLOCK) where LEFT(LTRIM(SP17131),3)='1KZ' AND descr like '%${ARG1}'
Нижние параметры уже задействованы для Суперфекты для определения CID клиентов из той же базы 1С
res_odbc_custom.conf
Код: Выделить всё
[1cDB]
enabled=>yes
dsn=>1cDB
pooling=>no
limit=>1
pre-connect=>no
username=>sa
password=>xxxxxxxx
Ну и в etc/odbc.ini
Код: Выделить всё
[1cDB]
Description = MS SQL connection to '1C DB' database
Driver = FreeTDS
Database = NN_3
Server = x.x.x.x
UserName = sa
Password = xxxxxxx
Trace = No
#TDS_Version = 7.0
Port = 1433