Страница 1 из 1
Аутентификация для межгорода
Добавлено: 21 июн 2012, 10:24
malder
Здравствуйте. Имеется asterisk 1.4.42, 2 десятка аналоговых аппаратов включеных через АТА, 6 ip-телефонов. Есть необходимость прикрутить возможность звонить на "8" с использованием личных кодов (как любят выражаться сотрудники), причём со своим кодом - с любого аппарата.
Вижу возможность сделать через команду Authenticate и брать все коды из файла, но в этом случае звонок будет уходить с callerid аппарата. Необходимо же, чтобы каждому коду соответствовал свой callerid. Возможно ли это реализовать? Подскажите, пожалуйста.
Re: Аутентификация для межгорода
Добавлено: 21 июн 2012, 11:12
zzuz
Подсказываю. Это реализовать возможно.
Re: Аутентификация для межгорода
Добавлено: 21 июн 2012, 11:41
malder
отлично, а не подскажете, в какую сторону курить?
Re: Аутентификация для межгорода
Добавлено: 21 июн 2012, 12:40
zzuz
вся необходимая информация есть в файле extensions.conf.sample .
Re: Аутентификация для межгорода
Добавлено: 22 июн 2012, 07:57
malder
zzuz писал(а):вся необходимая информация есть в файле extensions.conf.sample .
в extensions.conf.sample нет ни слова про команду authenticate
пока что в голове лишь вариант для каждого пира сделать отдельный экстеншн вида
Код: Выделить всё
exten => _8XXXXXXXXXX,1,Authenticate(XXX)
exten => _8XXXXXXXXXX,n,Set(CALLERID(all)=${CALLERID(name)} <${CALLERID(num)}>)
exten => _8XXXXXXXXXX,n,Dial(SIP/7${EXTEN:1}@10.0.0.2,120)
exten => _8XXXXXXXXXX,n,Hangup()
но в этом случае возможно будет звонить с определенным кодом только с отдельного аппарата, если я правильно понимаю, да и не хотелось бы плодить экстеншны.
предполагаю, что можно каким-то образом связать auth-password и callerid. в правильном направлении ли я думаю, и если да, помогите пожалуйста это реализовать.
Re: Аутентификация для межгорода
Добавлено: 22 июн 2012, 09:15
pan-user
забыть на время про Authenticate и воспользоваться старым добрым Read + AstDB
Re: Аутентификация для межгорода
Добавлено: 25 июн 2012, 07:31
malder
ТУ немного поменялось, стало необходимо кодировать "8" каждому аппарату(пиру) отдельно. Если кому интересно - назначил по переменной $CODE каждому пиру в sip.conf. При звонке Read'ом собирается последовательность $PASS, сравнивается с переменной $CODE, если совпали - звоним, не совпали - отбой.
sip.conf:
Код: Выделить всё
[990]
username=111
secret=111
callerid=<111>
setvar=CODE=1234
extensions.conf
Код: Выделить всё
exten => _8XXXXXXXXXX,1,Read(PASS,/var/lib/asterisk/sounds/beep,4,,,5)
exten => _8XXXXXXXXXX,2,GotoIf($["${PASS}" = "${CODE}"]?3:5)
exten => _8XXXXXXXXXX,3,Set(CALLERID(all)=<${CALLERID(num)}>)
exten => _8XXXXXXXXXX,4,Dial(SIP/7${EXTEN:1}@10.0.0.2,120)
exten => _8XXXXXXXXXX,5,Hangup()