А вообще к дизе доступ лучше давать через Callback.
В ffreepbx уже все готовое для этого есть.
bolshoy_plohish ( 2013-12-13 05:19:55 +0400 )редактироватьЗдравствуйте, меня интересует такой вопрос.
Есть DISA, есть список callerid с passcode. Возможно ли в DISA, проверять входящий звонок по callerid, и автоматически подставлять passcode?
exten => _000000,1,Answer
exten => _000000,2,Authenticate(pin)
exten => _000000,3,DISA(passcode,context)
Или оно так не умеет и необходимо каждый раз набирать этот passcode на тел. аппарате?
вообщето если в чемто несилен,надо нанимать консультанта. но вообещ както так.
extconfig.conf
disa_cids=>mysql,general
resconfigmysql.conf - вписать доступ к базе.
в базу выложить табличку
CREATE TABLE disa_cids
( id serial,
cid varchar(20) not null unique,
accountcode varchar(20),
context varchar(20) default 'disaout'
);
extensions.conf
[disa_cid_base]
exten =>s,1,Noop(disa cid check CID=${CALLERID(num)})
;REALTIME_FIELD(family,fieldmatch,matchvalue,fieldname)
exten =>s,n,Set(account=${REALTIME_FIELD(disa_cids,cid,${CALLERID(num)},accountcode)
exten =>s,n,GotoIF($[ "${account}" == "" ]?disa_simple,1)
exten =>s,n,Set(context=${REALTIME_FIELD(disa_cids,cid,${CALLERID(num)},context)
exten =>s,n,Set(CDR(accountcode)=${account}); записываем аккаунт для биллинга
exten =>s,n,Disa(no-password,${context});запрашиваем номер(можно через Read/dial)
exten => disa_simple,1,Noop; тут пишите что делать если не сошлось по cid
А еще есть старая добрая пауза при наборе (P).
Работает со всеми сервисами где необходимо проходить аутентификацию.
А вообще к дизе доступ лучше давать через Callback.
В ffreepbx уже все готовое для этого есть.
bolshoy_plohish ( 2013-12-13 05:19:55 +0400 )редактироватьприложение DISA вообще не имеет смысла, хз зачем его вообще сделали. Его функции легко реализуются диалпланом:
[first]
;эти без пароля
exten => 000000/9177514345,1,goto(second,s,1)
;эти с паролем
exten => 000000,1,Answer
exten => 000000,n,BackGround(exterPin)
exten => 000000,n,WaitExten(10)
;тут пароли
exten => 123,1,goto(second,s,1)
exten => 334,1,goto(second,s,1)
exten => 219,1,goto(second,s,1)
[second]
exten => s,1,BackGround(ExterNumber)
exten => s,n,WaitExten(10)
exten => _XXX,1,GoTo(From-internal,${EXTEN},1)
Задан: 2013-12-11 15:53:38 +0400
Просмотрен: 520 раз
Обновлен: Dec 13 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Проверку CallerID, как я понял, можно сделать при помощи GotoIf(), а вот как потом автоматически сравнить в файле этот CallerID с passcode ему принадлежащем и подставить этот passcode, пока что непонятно.
Vlvoi ( 2013-12-11 16:47:44 +0400 )редактироватьиспользовать базу. если вы против базы - использовать через odbc базы в файлах. или AGI
meral ( 2013-12-11 19:54:14 +0400 )редактироватьБазу я только думаю вводить, пока что не силен в такой связке. Вот если бы посмотреть на приблизительный пример, был бы благодарен.
Vlvoi ( 2013-12-12 15:54:44 +0400 )редактировать