Asterisk и IP-телефония

sip.conf [asterisk-pbx.ru]

Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.

asterisk-pbx.ru
О Asterisk
Новости
Статьи
Документация
Контакт
Установка, настройка и обслуживание Asterisk
Интерфейсные карты E1 ISDN PRI для Asterisk от
8910
рублей
FXS/FXO
900
рублей за порт
(812) 321-61-11
Вы посетили:
sip.conf
популярное
Программы для Asterisk
Call Center Asterisk
Установка Asterisk
Настройка Asterisk
NAT, SIP и Asterisk
Настройка FreePBX
Факс сервер на Asterisk
Skype SIP транк
Звонок с сайта - Web Callback
Установка AsterCRM Call Center
Asterisk Phonebook
Voip-GSM шлюз на HUAWEI
RSS
Ссылки сюда
Все страницы
Войти
Google bookmarks
Twitter
Facebook
Содержание
sip.conf
Asterisk в роли SIP клиента
Конфигурация SIP - секция general
Конфигурация SIP - клиенты и пиры
Примеры
Замечания
Пример 1
Пример 2 -Использование Asterisk в связке с SIP прокси SER
Управление sip.conf из внешних источников
sip.conf
Файл конфигурации для каналов SIP в Asterisk, как для входящих, так и для исходящих вызовов.
Каждый SIP клиент или сервер определяется в этом файле как текстовый блок, по типу приведенного ниже:
[xxx]
type=yyy
parameter1=value
parameter2=value
Где xxx - это имя, ассоциируемое с SIP клиентом, или это может быть произвольным именем SIP устройства, на которое можно ссылаться из других конфигурационных фалов. Обычно, если SIP телефон имеет номер екстеншена 123, тогда, соответствующие ему настройки в этом файле начинается со строки [123] . Обратите внимание, что для того, чтобы можно было позвонить на этот экстеншен 123, вы должны описать его в Вашем плане набора. Тип SIP клиента может быть: «user», «peer» или «friend».
Сервер Asterisk определяет соответствие входящего вызова с именем устройства, для клиентов с type=user, основываясь на заголовке From: имя пользователя (игнорируя SIP домен). Другой путь обработки входящих SIP запросов - это определение их соответствия секции [xxx] в этом файле, используя IP адрес поступившего запроса для определения того, от кого этот запрос поступил, и поиск подходящего значения параметра Host= в секции пользователя [xxx] . Если этот параметр задан как Host=dynamic, тогда не будет подходящих совпадений, до того как SIP клиент не зарегистрируется на сервере.
Asterisk в роли SIP клиента
В файле конфигурации sip.conf в секции [general] добавьте определение register:
Формат:
register => user [:secret[:authuser]] @host [:port] [/extension]
Пример:
; Зарегистрировать 2345 у sip провайдера, как номер 1234 на нашей стороне.
register => 2345:password@mysipprovider.com/1234
user
- идентификатор пользователя, используемый для SIP сервера (например, 2345)
authuser
- не обязательное имя пользователя для авторизации на SIP сервере
secret
- пароль пользователя
host
- имя домена или хоста SIP сервера. Этот SIP сервер должен быть определен в своей секции файла sip.conf, где должны быть заданы его параметры (mysipprovider.com).
port
- на какой номер порта посылать запросы на регистрацию на сервере host. По умолчанию - 5060
/1234
- номер екстеншена для приема вызовов в Вашем Asterisk. 1234 - вставляется в SIP заголовок contact, SIP запроса на регистрацию. Этот екстеншен используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Вашего Asterisk. Смотри примеры, приведенные ниже. По умолчанию, используется контекстный «s».
Это, конечно, все хорошо, но использование незашифрованных паролей в текстовом файле - не самая удачная идея, но что же можно еще сделать теперь.
Вам необходимо регистрироваться, только если: a) должна быть возможность позвонить к Вам, и b) одна из сторон имеет динамический IP адрес. Проверить, удачно ли зарегистрировался Ваш сервер, можно с помощью CLI команды: «SIP SHOW REGISTRY», аналогично, можно получить список клиентов, зарегистрированных на Вашем сервере, с помощью команды: «SIP SHOW PEERS». Вы можете просмотреть более детальную информацию о зарегистрированном клиенте, при помощи команды: «SIP SHOW PEER <NAME>». Выполните команду «HELP SIP» в CLI консоли, чтобы получить список дополнительных команд.
Определение сервера, для совершения исходящих вызовов, должно быть примерно таким:
[mysipprovider-out]
type=peer
secret=password
username=2345
host=sipserver.mysipprovider.com
fromuser=2345
fromdomain=fwd.pulver.com
nat=yes
context=from-mysipprovider ; этот контест должен быть определен в extensions.conf
В файле extensions.conf, для совершения исходящих вызовов, у Вас должно присутствовать правило набора, примерно такого вида:
exten => _9.,1,Dial(SIP/${EXTEN:1}@mysipprovider-out,30,r)
Обратите внимание, что конструкция ${EXTEN:1} извлекает все содержимое переменной, в которой содержится вызываемый екстеншен (совпавший с шаблоном), за исключением первой цифры , в данном случае: 9 + набор цифр. Обратитесь к разделу по работе с подстроками в описании переменных Asterisk, для более подробной информации.
Далее приводиться секция (файла extensions.conf), которая принимает вызовы от sip провайдера и направляет его в нужное Вам место:
[from-mysipprovider]
exten => 1234,1,Answer ; 1234 - екстеншен из контактной информации , по умолчанию - "s"
exten => 1234,2,Dial(SIP/111,25,Ttr) ; входящий вызов перенаправляем на SIP телефон с номером 111
exten => 1234,3,Hangup
Конфигурация SIP - секция general
Секция [general] , файла sip.conf, включает в себя следующие переменные:
allow
= codec : Разрешенные кодеки, порядок выбора кодека, задается порядком их описания в этой команде (Сначала используйте: DISALLOW=ALL, перед тем, как разрешить какие то конкретные кодеки)
allowtransfer
?= yes | no: Появилась, начиная с версии 1.4.0. При установке в значение 'no' - запрещает все виды перевода вызовов. (за исключением тех, что разрешены в описании настроек пользователя).
disallow
=all :Запрещает использование всех кодеков (глобальная настройка)
allowguest
= yes (по умолчанию) | no: Разрешить или запретить гостевые вызовы (по умолчанию - yes, в качестве значения можно указать параметр 'osp', если asterisk собран с поддержкой OSP)
Autocreatepeer
= yes | no: Если разрешено, кто угодно может использовать сервер в качестве пира (без проверки на возможность доступа; может быть удобно, при работе с SER SIP прокси).
bindaddr
= 0.0.0.0 :IP адрес, на который Asterisk будет принимать IP пакеты SIP вызовов
bindport
=5060 :номер порта, на который Asterisk будет принимать IP пакеты SIP вызовов
callerid
= <строка>: Информация для Сaller*Id, используется, когда нет ничего из того, что можно было бы использовать в качестве этого значения. По умолчанию - «asterisk». (Возможность переназначить значение по умолчанию есть в версии Asterisk 1.0.9. Насчет других версий нет полной уверенности.)
canreinvite
= update | yes | no (глобальная настройка). По некоторым причинам, значение по умолчанию - 'Yes', будьте внимательны…
context
= <contextname> :Это используемый контекст по умолчанию, который используется, когда для клиента не определен свой контекст. Этот контекст, определенный для клиента, используется для маршрутизации вызовов от этого клиента до нужного места назначения. Содержимое контекста описывается в файле плана набора - extensions.conf.
defaultexpirey
=120 :Продолжительность периода входящей или исходящей регистрации.
dtmfmode
: inband | info | rfc2833 (глобальная настройка)

Материал сокращён при переносе в новую базу знаний. Полная версия сохранена в архиве старого сайта.

Позвонить +7 (343) 382-33-16