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

voip.rus.net : Файл конфигурации sip.conf

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

Jump to Content
| language
Найти
Весь сайт
Страницы Wiki
Файлы
Форумы
Каталог ссылок
Файл конфигурации sip.conf
Файл конфигурации sip.conf - определяет каналы SIP.
Файл конфигурации для каналов
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

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

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