И так немного сделаю заметок ,  как мне кажеться наиболее интересных переменных в конфиге :
Далее буду просто кидать выдержки и наиболее интересные мне переменные и описание этих переменных .

qualify = yes  - если стоит в yes , asterisk будит каждые 2 -3 секунды отправлять SIP сообщения OPTIONS  для проверки готовности . Тем самым можно сделать некий мониторинг доступности оборудования ( в том числе пиров ) , но стоить отметить , что это будит генерить не большой но все таки трафик .

Правила набора

X - любая цифра от 0-9
Z - любая цифра от 1-9
N - любая цифра от 2-9
[1237-9] -любая цифра или буква в скобках (в примере 1,2,3,7,8,9)
. - wildcard, один или более знак (не используется перед | или +)
| - удаляет префикс (9|3216111 - будет набрано 3216111)
+ - добавляет префикс к номеру (например шаблон 812+NXXXXXX при наборе 3216111, наберет 8123216111)

Варианты контектса  type :

peer - разрешены только исходящие звонки
user - разрешены только входящие звонки
friend - разрешены как входящие так и исходящие звонки

Перехват звонка :

И так в Asterisk для перехвата звонков реализовано 2 функции :
- в рамках указанной группы
- в  рамках конкретного номера
Что касаемо перевода звонков в рамках конкретного номера - для этого необходимо сделать :
*8#номер_звонящего_телефона - после чего звонок переводиться вам на телефон
Второй способ это перехват для группы
необходимо в SIP.CONF - где мы прописуем телефоны , в группу телефонов (номера телефонов которые будут считаться группой ) добавить след:
callgroup=1
pickupgroup=1
И далее необходимо добавить саму возможность перехвата  в файл  extensions.conf в тот контекст (в нашем случае это from-internal) в который входят данная группа номеров добавить

Вот  блок создания нового пользователя :

[1001]
deny=0.0.0.0/0.0.0.0
type=friend
secret=1001why
qualify=yes
port=5060
pickupgroup=1
permit=0.0.0.0/0.0.0.0
nat=yes
mailbox=1001@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/1001
context=from-internal
canreinvite=no
callgroup=1
callerid=device <1001>
accountcode=
call-limit=50

[1002]
deny=0.0.0.0/0.0.0.0
type=friend
secret=1002olb
qualify=yes
port=5060
pickupgroup=1
permit=0.0.0.0/0.0.0.0
nat=yes
mailbox=1002@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/1002
context=from-internal
canreinvite=no
callgroup=1

exten = > *8,1,PickUP()

вот собственно и все , далее в командной строке Asterisk даем команду перезагрузку модулей - module reload  и пользуемся данной функцией по типу *8 - и вы перехватуете звонок у вашего коллеги .

callerid="4956273690" <4956273690>   -  эта переменная говорит о том , что будет подстанавливаться вместо вашего номера , но стоит отметить , что провайдер обычно пропускает только те номера которые он предоставляет (если нет , тогда можно в этом поле указать любой номер и у вас на экране выстетиться именно он )

Отредактировано eXperT (2011-02-04 12:28:27)