sip.conf
Материал из Xgu.ru
sip.conf — конфигурация протокола SIP для программной АТС Asterisk.
Находится по адресу /etc/asterisk/sip.conf.
Пример очень простого файла sip.conf[1]:
bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) context=default ; Default context for incoming calls [2000] type=friend secret=1234 host=dynamic [2001] type=friend secret=1234 host=dynamic
Здесь описывается два пира (2000 и 2001), которые могут регистрироваться на сервере и пользоваться его услугами. При условии, что диалплан уже настроен, они могут звонить друг другу и на другие номера, описанные в диалплане. Пиры не имеют постоянных IP-адресов, они определяются сервером каждый раз при регистрации.
Другой пример.
Здесь описано три пира (4442,4443,4444)
с динамическими адресами и два пира (1xxx и 2xxx) с постоянными.
В качестве последних могут быть, например, серверы Астериск,
которые обрабатывают звонки для номеров, начинающихся на 1 и 2
(логика маршрутизации должна быть описана в диалплане).
[general] context=default ; Default context for incoming calls allowoverlap=no ; Disable overlap dialing support. (Default is yes) bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) srvlookup=yes ; Enable DNS SRV lookups on outbound calls [authentication] [1xxx] type=friend context=demo1 host=192.168.7.1 nat=no canreinvite=no disallow=all allow=gsm allow=ulaw allow=alaw [2xxx] type=friend context=demo1 host=192.168.7.2 nat=no canreinvite=no disallow=all allow=gsm allow=ulaw allow=alaw [4444] type=friend context=demo1 regexten=4444 callerid="Igor Chubin" host=dynamic nat=no canreinvite=no disallow=all allow=gsm allow=ulaw allow=alaw [4443] type=friend context=demo1 regexten=4443 callerid="Yark0" host=dynamic nat=no canreinvite=no disallow=all allow=gsm allow=ulaw allow=alaw [4442] type=friend context=demo1 regexten=4442 callerid="Igor Chubin (softwone)" host=dynamic nat=no canreinvite=no disallow=all allow=gsm allow=ulaw allow=alaw
Транк между астерисками:
[general] context=default register => dnepr:password@192.168.2.1/kiev [kiev] type=friend secret=password host=dynamic canreinvite=no username=dnepr
Киев:
[general] context=default register => kiev:password@192.168.3.1/dnepr [dnepr] type=friend secret=password host=dynamic canreinvite=no username=kiev
Обратите внимание, где пишется kiev, а где dnepr. Это очень важно. |
При неправильной настройке транка возможны ошибки вида:
[May 25 17:06:06] NOTICE[11022]: chan_sip.c:12412 handle_response_invite: Failed to authenticate on INVITE to '"Soft Phone" <sip:303@192.168.3.1>;tag=as291d35f0'
Пример подключения внешнего провайдера (в данном случае sipnet) в качестве пира:
[sipnet] type=friend secret = MEGAPASSWORD username = NUMBER trunkname = sipnet callerid = CALLERID hasexten = no hassip = yes hasiax = no registeriax = no registersip = yes ; если не нужно принимать входящие вызовы, то можно поставить No ; использование одновременно с этим директивы register= в sip.conf не требуется! host = sipnet.ru context = sipnet-in ; контекст с таким именем должен существовать в dialplan’е (файл extensions.conf) insecure = invite fromuser = NUMBER fromdomain = sipnet.ru contact = 100 ; В качестве contact может быть указан внутренний номер Asterisk’а, на который должны попадать ; входящие звонки. Если этот параметр не используется, то все входящие вызовы попадут на псевдономер s. ; В любом случае, либо этот номер, либо символ s должны присутствовать в dialplan’е ; (файл extensions.conf) в соответствующем этому транку контексте. ; Значение параметра contact будет отображаться в Личном Кабинете в списке подключенного ; (зарегистрированного) оборудования. ; disallow=all allow = alaw allow = ulaw allow = g729 nat = no canreinvite = nonat dtmfmode = info
Конфигурационный файл sip.conf (как и другие конфигурационные файлы Asterisk)
можно хранить в базе данных. Для этого используется расширение Realtime Asterisk.
Подробнее: [1].
Содержание |
[править] Вопросы и ответы
[править] Количество одновременных звонков между пирами
Один звонок:
call-limit=1 limitonpeers=yes
[править] Можно ли использовать шаблоны в sip.conf?
Да.
Пример:
[local-phones](!) ; Шаблон type=friend qualify=yes host=dynamic canreinvite=no [my-phones](!,local-phones) ; Шаблон context=default [boss-phones](!,local-phones) ; Шаблон context=fullaccess [201](my-phones) ; Абонент 201 username=201 secret=1111 [202](my-phones) ; Абонент 202 username=202 secret=2222 [999](boss-phones) ; Абонент 999 username=999 secret=999999
[править] Как мониторить связь с пиром?
Добавить
qualify=yes
в sip.conf.
[править] Как сделать чтобы callerd id от перенаправляемых звонков автоматически копировался в исходящий звонок?
Нужно вставить
sendrpid=pai
в sip.conf.
Для того чтобы эта поция заработала в диалплане нужно ещё к звонку добавить заголовок P-Asserted-Identity.
exten => _XXX,n,SipAddHeader(P-Asserted-Identity: <sip:${CALLERIDNUM}>)
[править] Дополнительная информация
- http://www.voip-info.org/wiki/view/Asterisk+config+sip.conf
- Файл конфигурации sip.conf (рус.)
- Seven Steps to Better SIP Security with Asterisk (англ.) —
- Описание, примеры, параметры sip.conf (рус.)
некоторые советы по повышению безопасности использования протокола SIP с Астериском