- База знаний
- Пример файла конфигурации XML для Cisco 8851 phone
- Пример файла конфигурации XML для Cisco 7970 phone
- Пример файла конфигурации XML для Cisco 9971
- Отладка VoIP звонка с Wireshark
- Книги
- Использование поля Diversion в SIP пакете
- Астериск и Н.323
- ISDN release cause codes
- Пример файла конфигурации голосового шлюза Cisco
- Пример конфигурации интерфейса E1 PRI в голосовом шлюзе Cisco
- Аналоговое зло
- Интернациональные телефонные коды стран
- Практикум по интеграции Астериск в комплексе с OpenBSC/Osmocom
- Факс по IP
Файл конфигурации 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
Определение сервера, для совершения исходящих вызовов, должно быть примерно таким:
[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=
: Разрешенные кодеки, порядок выбора кодека, задается порядком их описания в этой команде (Сначала используйте: 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 =
:Это используемый контекст по умолчанию, который используется, когда для клиента не определен свой контекст. Этот контекст, определенный для клиента, используется для маршрутизации вызовов от этого клиента до нужного места назначения. Содержимое контекста описывается в файле плана набора - extensions.conf. - defaultexpirey=120 :Продолжительность периода входящей или исходящей регистрации.
- dtmfmode: inband | info | rfc2833 (глобальная настройка)
- domain = domains : Список доменов, разделенных запятыми, за которые отвечает сервер Asterisk. (появилось в Asterisk 1.2.x)
- externip = 200.201.202.203 :IP адрес, который будет использоваться в SIP сообщениях, если наш сервер находиться за NAT.
- externhost = hostname.tld : (новый параметр в Asterisk 1.2.x)
- externrefresh = xxx : Этим параметром мы определяем, как часто будет производиться поиск записи в DNS имени хоста, определенном в параметре 'externhost' (новый параметр в Asterisk 1.2.x)
- localnet = 192.168.1.0/255.255.255.0 : определение локальной сети и ее маски.
- fromdomain=
: Установка домена по умолчанию в поле From: SIP сообщений, при работе в качестве SIP ua (клиента). - maxexpirey=3600: Максимально разрешенная продолжительность регистрации.
- minexpiry=60: (Переменная появилась, начиная с версии Asterisk 1.4.0) Минимально разрешенная продолжительность регистрации.
- nat= yes | no (установка для соединений с пирами) Обратите внимание, что в Asterisk 1.0.x, параметр nat может принимать значения: no | never | route | yes.
- notifymimetype=text/plain :Позволяет переопределить mime type в сообщениях MWI NOTIFY, используемых в сообщениях, которые отправляются системой голосовых ящиков Asterisk.
- pedantic = yes|no :Включить медленную, педантичную проверку полей Call-ID и всех строк в многострочном заголовке SIP сообщения и кодированных URI заголовков
- port =
: SIP порт, используемый по умолчанию. (это не тот порт, на котором Ваш Asterisk ждет IP пакеты. Смотри параметр: bindport) - promiscredir=yes | no: Включение поддержки сообщений 302 Redirects; (No - будет переадресовать все к локальному екстеншену, который получен в поле Contact, а не к екстеншену, который указан в поле назначения вызова.)
- realm = realm (Этой настройкой можно изменить realm для авторизации, со значения по умолчанию - Asterisk, на любое выбранное Вами. Работает, начиная с Asterisk версии 1.x)
- register =>
@ / :Зарегистрироваться на сервере SIP провайдера. - srvlookup = yes|no : Включить DNS SRV поиск для вызовов
- tos=
: Данный параметр удален, начиная с версии Asterisk 1.4.0. Установка параметров IP QoS для исходящих медиапотоков. - t1min=
: (Переменная появилась, начиная с версии Asterisk 1.4.0) Минимальная задержка прохождения сообщений до хоста и обратно (roundtrip time), для которого отслеживается состояние (monitored host). Значение по умолчанию - 100 ms. - tos_sip=
: (Переменная появилась, начиная с версии Asterisk 1.4.0) Установка параметров IP QoS для SIP пакетов. - tos_audio=
: (Переменная появилась, начиная с версии Asterisk 1.4.0) Установка параметров IP QoS для пакетов, передающих аудиоданные по протоколу RTP. - tos_video=
: (Переменная появилась, начиная с версии Asterisk 1.4.0) Установка параметров IP QoS для пакетов, передающих видео данные по протоколу RTP.
- videosupport=yes|no : Включает поддержку SIP видео
- useragent: Параметр позволяет изменить значение SIP заголовка "User-Agent".
- trustrpid = yes|no : Если включено, то полученному значению Remote-Party-ID можно доверять.
Конфигурация SIP - клиенты и пиры
Нижеприведенные переменные могут быть заданы в описании каждого SIP клиента:- accountcode: Пользователь может быть ассоциирован с неким кодом доступа (accountcode). Используется для билинга.
- allow - disallow: Разрешенные и запрещенные кодеки.
- amaflags: Категория для CDR записей. Можно выбрать: default, omit, billing, documentation. Смотри: билинг в Asterisk.
- allowoverlap: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: yes. Установка в "no" запрещает поддержку "overlap dialing".
- allowsubscribe: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Установка в "no" запрещает отслеживание состояние (subscriptions) данного клиента.
- allowtransfer: Начиная с версии 1.4.x. Разрешить (yes) или запретить (no) перевод вызова для этого пользователя.
- auth: Начиная с версии 1.4.x. Ссылка на запись из секции [authentication] (только для типа peer).
- autoframing: Начиная с версии 1.4.x. Включение (yes) или выключение (no) autoframing'a.
- buggymwi: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Cisco SIP firmware не полностью поддерживает RFC для индикации наличия новой голосовой почты (MWI). Установите значение этого параметра в "yes", чтобы не получать сообщения об ошибке, при отправке MWI телефонам с данной проблемой.
- callgroup: Определяет группу вызовов (call group) для вызовов через это устройство.
- callingpres: Начиная с версии 1.4.x. Режим публикации CallerId, значения смотри в файле doc/callingpres.txt из дистрибутива asterisk.
- call-limit: Начиная с версии 1.4.x__. Ограничение на кол-во вызовов для пользователя. Для типа "peer" - на исходящие, для "user" - на входящие.
- canreinvite: Включайте, если только на клиенте поддерживается функция: SIP re-invites.
- cid_number: Начиная с версии 1.4.x. Номерная часть поля CallerID.
- context: Контекст плана набора, в который попадают вызовы, поступающие от данного клиента.
- defaultip: IP адрес клиента по умолчанию, когда host= определен, как DYNAMIC. Используется, если клиент еще не зарегистрировался, при необходимости его вызова.
- dtmfmode: Как клиент обрабатывает сигнализацию DMTF.
- fromuser: Указываем имя пользователя для поля "from", когда происходит вызов с использованием этой записи.
- fromdomain=
: Установка домена по умолчанию в поле From:, SIP сообщений, когда происходит вызов с использованием этой записи. - fullname: Начиная с версии 1.4.x. Часть с именем, поля CallerID.
- g726nonstandard: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Если клиент собирается для сеанса связи "договориться" использовать звуковой кодек G726-32, с использованием компрессии AAL2, вместо RFC3551 (что требуется для аппаратов фирмы Sipura и шлюзов от Grandstream, и может другим). То это противоречит спецификации RFC3551, клиент _должен_ вместо этого "договориться" использовать AAL2-G726-32 :-(
- host: Как нам найти нашего клиента - IP адрес или имя хоста. Если Вам нужно, чтоб телефон самостоятельно зарегистрировался, используйте значение dynamic вместо IP адреса или имени хоста.
- incominglimit and outgoinglimit: Ограничение на число одновременных соединений с нашим SIP клиентом. Эти параметры устарели, в версии 1.4.x - не используются.
- insecure: very|yes|no|invite|port : Определяет как обрабатывать соединения с пирами. По-умолчанию значение 'no' (аутентификация для всех соединений включена). (invite и port добавлено в версии 1.2.x).
- language: Код языка, которые определены в файле indications.conf - где определяется язык приветствий и специфичные для каждой страны настройки сигналов телефонов.
- mailbox: Екстеншен голосового ящика (для работы индикатора новых сообщений)
- maxcallbitrate: Начиная с версии 1.4.x. Максимальный битрейт для видео в kbit/s. По умолчанию: 384 kbit/s.
- mohsuggest: Начиная с версии 1.4.x. Назначение см. в sip.conf.
- md5secret: MD5-Hash строки: "
:asterisk: " (может использоваться вместо параметра secret). - musiconhold: Устанавливает класс музыки ожидания (musiconhold) для вызовов с данного SIP телефона. Для вызовов, которые поступают на данный телефон, задание этого класса необходимо делать командой SetMusicOnHold, расположенной выше по приоритету (меньшее значение приоритета в плане набора), чем команда Dial в плане набора. Параметр MusicOnHold устанавливается для совершаемых вызовов, а не для телефонов, и если для обработки вызова для екстеншена используется команда SetMusicOnHold, то она переопределит, заданное этим параметром значение, для этого вызова.
- nat: Эта переменная изменяет образ действия сервера Asterisk для клиентов находящихся за файрволом с трансляцией адресов (NAT). Но этот параметр не решает проблемы, если сам Asterisk находится за таким файрволом, а клиент снаружи (в сети internet с нормальным IP адресом).
- outboundproxy: Адрес прокси сервера для исходящих вызовов (только для типа peer).
- permit, deny: Ограничения по IP адресу и IP сети для клиента. Примечание: в версии 1.4.x параметр mask уже не используется.
- pickupgroup: Группа для "pickup" вызовов поступающих вашим сослуживцам, используя комбинацию "*8" и приложение Pickup() для работы с екстеншеном *8.
- port: SIP порт клиента.
- progressinband: Начиная с версии 1.4.x. Значения: yes/no/never, по умолчанию: never. Должен ли asterisk генерировать самостоятельно звуковой сигнал вызова для вызывающего абонента (in-band ringing). Используйте значение 'never', чтобы никогда не производилась генерация этого сигнала, даже в случае, когда некоторые странные устройства не могут генерировать его самостоятельно.
- promiscredir: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Если установлено в значение "yes", то этим мы разрешаем отправлять SIP сообщения с кодом 302 или сообщения для переадресации вызова, для SIP клиентов с не локальными IP адресами. Стоит отметить, что поведение promiscredir при совершении переадресации вызова, который производиться в локальной системе, может привести к зацикливанию вызова, т.к. Asterisk не умеет обрабатывать "hairpin" вызовы.
- qualify: Периодическая проверка доступности клиента.
- restrictcid: (yes/no) Этот параметр не используется, вместо него используйте callingpres.
- rfc2833compensate: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Включение компенсации передачи DTMF сигналов с других серверов asterisk версии до 1.4.*. В данных случаях, Вы должны включить эту функцию или прием DTMF сигналов не будет работать должным образом.
- rtptimeout: Прерывать вызов, если нет активности RTP медиапотока более чем x секунд и если линия не находиться в режиме удержания (hold).
- rtpholdtimeout: Прерывать вызов, если нет активности RTP медиапотока более чем x секунд, в режиме удержания линии (hold) (значение должно быть больше, чем rtptimeout)
- secret: Если Asterisk выступает в роли SIP сервера, тогда данный SIP клиент должен автризироваться с данным паролем (shared secret). Если же Asterisk выступает в роли SIP клиента, работающим с удаленным SIP сервером, для которого требуется авторизация для запросов "SIP INVITE", тогда это поле будет использовано для авторизации в сообщениях "SIP INVITE", которые наш Asterisk будет отправлять удаленному SIP серверу.
- sendrpid: Отправлять или нет заголовок Remote-Party-Id этому SIP клиенту. Значения: yes/no, по умолчанию: yes.
- setvar: Начиная с версии 1.4.x. В значении указывается пара "переменная=значение" для переменной канала, при вызовах с данного девайса.
- subscribecontext: Начиная с версии 1.4.x. Указывается название контекста, в котором будут обрабатываться SIP запросы SUBSCRIBE.
- subscribemwi: Начиная с версии 1.4.x. Значения "yes" и "no". Назначение см. sip.conf.
- t38pt_udptl: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Включить/выключить поддержку T.38 для данного клиента.
- trustrpid: Значения: yes/no, по умолчанию: no. Устанавливается в "yes", если можно доверять полученному от SIP клиента Remote-Party-ID.
- type: Тип клиента - только исходящие вызовы, только входящий или все вместе?
- useclientcode: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no.
- usereqphone: Начиная с версии 1.4.x. Значения "yes" и "no". Добавить или нет ";user=phone" в URI, которое содержит нормальный вызываемый номер.
- username: Если Asterisk выступает в роли SIP клиента, работающим с удаленным SIP сервером, для которого требуется авторизация для запросов "SIP INVITE", тогда это поле будет использовано для авторизации в сообщениях "SIP INVITE", которые наш Asterisk будет отправлять удаленному SIP серверу. А также, для пиров, которые регистрируются на нашем сервере Asterisk, если это имя пользователя используется в сообщениях INVITE, до тех пор, пока он зарегистрирован на сервере.
- videosupport: Значения: yes/no, по умолчанию: yes. Параметр для включения поддержки SIP видео. Вам может понадобиться включить поддержку видео для конкретного SIP клиента, если, например, в глобальной части конфигурации она выключена, и Вы хотите выборочно ее включить только для конкретных пользователей.
- vmexten: Начиная с версии 1.4.x. Назначение см. sip.conf (только для типа peer).
Обратите внимание
- Asterisk (пока) не поддерживает протокол SIP через TCP транспорт. Поддерживается только SIP через UDP протокол.
- Для телефонов Grandstream : устанавливайте параметр dtmfmode=info, а для GXP2000 dtmfmode=inband
- Asterisk использует входящий RTP поток, в качестве источника для тайминга (timing) для отправки исходящего потока. Если входящий поток прерывается из-за работы функции подавления тишины (silence suppression), тогда качество музыки ожидания (musiconhold) будет очень плохим. Как следствие, Вы не можете использовать функцию подавления тишины в паузах (silence suppresion). Обязательно убедитесь, что у ВСЕХ SIP телефонов выключена возможность подавление тишины (silence suppression).
Примеры
Каждый SIP клиент, который должен работать с Asterisk, должен быть определен в файле SIP.CONF. Ниже приводиться несколько примеров:[grandstream1]
type=friend ; может быть: "friend" (это: peer+user), "peer" или "user"
context=from-sip
username=grandstream1 ; обычно, этот параметр совпадает с названием секции - section
fromuser=grandstream1 ; переназначает callerid, например,
; бывает необходимо для форварда вызовов - FWD
callerid=John Doe <1234>
host=192.168.0.23 ; У нас используется статический но интранетовский IP адрес
nat=no ; между нашим телефоном и Asterisk нет трансляции IP адресов (NAT)
canreinvite=yes ; заставляет весь голосовой RTP трафик проходить через Asterisk
dtmfmode=info ; может быть, как INBAND, так и INFO, например, для телефонов BudgeTone
mailbox=1234@default ; у клиента есть голосовой ящик 1234 в контексте голосовых ящиков: "default"
disallow=all ; необходимо задать disallow=al, перед тем, как использовать параметр allow=
allow=ulaw ; Обратите внимание: в клиентских секциях, порядок выбора кодека
; описанный в параметре allow= не имеет никакого значения!
;allow=alaw
;allow=g723.1 ; Asterisk поддерживает кодек g723.1 только в режиме pass-thru!
;allow=g729 ; Только в режиме Pass-thru , если у Вас нет лицензии на использование кодека g729
[xlite1]
- Выключите функцию подавления тишины (silence suppression) в клиенте X-Lite ("Transmit Silence"=YES)!
;Обратите внимание, что Xlite сам посылает NAT пакеты keep-alive, следовательно, надобности в qualify=yes нет.
type=friend
username=xlite1
callerid="Jane Smith" <5678>
host=dynamic
nat=yes ; клиент X-Lite находиться за роутером с трансляцией IP адресов (NAT)
canreinvite=no ; Обычно, устанавливается в 'NO', если клиент находиться за NAT
disallow=all
allow=gsm ; Кодек GSM требует намного меньшую полосу пропускания, тем ulaw.
allow=ulaw
allow=alaw
[user1_snomsip]
type=friend
secret=blah
host=dynamic
dtmfmode=inband ; Можно выбрать из: inband, rfc2833, или info
defaultip=192.168.0.59
mailbox=1234,2345 ; Голосовой ящик для работы индикатора "полученных новых сообщений"
disallow=all
allow=ulaw ; если режим для dtmf установлен 'inband',
allow=alaw ; то мы должны использовать только кодек g.711
[user2_pingtel]
type=friend
username=user2_pingtel
secret=blah
host=dynamic
qualify=1000 ; Рассматриваем клиента как неработающего,
; если ответ от него идет более 1 сек.
callgroup=1,3-4 ; Клиент является членом групп вызовов: 1, 3 и 4
pickupgroup=1,3-4 ; Мы можем совершать "pick-up" вызовов, нажатием *8,
; для вызовов из групп 1, 3 и 4
defaultip=192.168.0.60
disallow=all
allow=ulaw
allow=alaw
allow=g729
[user3_cisco]
type=friend
username=user3_cisco
secret=blah
nat=yes ; Этот телефон находиться за роутером с NAT
host=dynamic
canreinvite=no ; Аппараты Cisco иногда подвисают,
; через некоторое кол-во reinvite запросов
qualify=200 ; Рассматриваем пир как нерабочий,
; если отклик от него приходит дольше, чем 200ms
defaultip=192.168.0.4
disallow=all
allow=ulaw
allow=alaw
allow=g729
[user4_cisco1]
type=friend
username=user4_cisco
fromuser=markster ; Определяем имя пользователя, помещаемого в поле "from" вместо callerid
secret=blah
defaultip=192.168.0.4 ; используйте или host=dynamic или defaultip=...
amaflags=default ; Может быть: default, omit, billing, documentation
accountcode=markster ; Пользователь ассоциирован с accountcode для упрощения билинга.
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=g723.1
Нижеприведенное описание взято с Digium Asterisk handbook.
После того, как Вы определите эти SIP аккаунты для Ваших клиентов в файле SIP.conf, то у этих клиентов появляется возможность зарегистрироваться на сервере asterisk и совершать исходящие вызовы. Для того, чтоб они могли принимать вызовы, Вам необходимо описать екстеншены для них в Вашем файле плане набора extensions.conf. Пример:
exten => 1010,1, Dial(SIP/user3_cisco,10,t)
Если кто-нибудь совершит вызов на номер 1010, тогда будут совершена попытка вызвать SIP клиента, зарегистрированного как user3_cisco.
Замечания
- Переменная ${VXML_URL} может быть использована для добавления дополнительного элемента в заголовке SIP сообщения "To:". Значение этой переменной будет добавлено, через точку с запятой, в конец заголовка "To:" SIP сообщения. Обратите внимание, что предыдущее описание использования этой возможности содержало ошибки; использование этой переменной не имеет никакого эффекта при загрузке сообщений в телефон Cisco 7960 (что-то в данный момент отключено в SIP firmware телефонов Cisco). Это проблема описана в: author's e-mail
- Переменная ${ALERT_INFO} может использоваться для создания нового заголовка с именем "Alert-Info:", он может использоваться для задания определенного типа звонка на телефонных аппаратах фирмы Cisco, работающих с протоколом SIP, на которых установлено firmware версии 6.0 или выше. Для телефонов 7940/60, переменная ALERT_INFO может принимать следующие значения, для задания определенного встроенного сигнала вызова:
- Bellcore-Stutter
- Bellcore-MsgWaiting
- Bellcore-dr1
- Bellcore-dr2
- Bellcore-dr3
- Bellcore-dr4
- Bellcore-dr5
На данный момент нет возможности определить другой вызовов, можно выбрать только варианты проигрывания какого-либо вызова. Нужно весьма тщательно слушать, чтобы сказать, что сигналы вызова действительно чем-то отличаются. Существует багрепорт к Cisco: Cisco bug ID CSCec42938, в котором предлагается доделать возможность выбора сигналов вызова.
Пример 1
- John Todd, loligo.com: http://www.loligo.com/asterisk/current/sip.conf
Соединение с Free World Dialup (без использования NAT)
[ general ]disallow=all
allow=gsm
allow=ulaw
allow=alaw
context=from-sip
maxexpirey=180
defaultexpirey=160
tos=reliability
register =>
[ fwd.pulver.com ]
type=friend
secret=
username=
host=fwd.pulver.com
insecure=very ; необходимо для поддержки входящих FWD вызовов
Теперь идем к описанию файла extensions.conf, и смотрим как нам настроить контексты [from-sip] и [fwd-out] в плане набора.
Пример 2
Использование Asterisk в связке с SIP прокси SER
[ general ]
context=OUTGOING
autocreatepeer=yes
[ Provider ]
type=friend
username=XXXXX
secret=XXXXX
host=xxxxx.FakeProvider.com
Итак, теперь когда Asterisk получает вызов с SER, то он выполняет действие "autocreatepeer" и позволяет обработать этот вызов в контексте OUTGOING.
Управление sip.conf из внешних источников
- Asterisk Realtime Sip: использование механизма RealTime для SIP каналов.
Замечания для различных версий:
- Дополнительные возможности, добавленные, начиная с версии 0.7.2
- 2004-01-23: Добавлена CLI команда "sip reload", для перезагрузки sip канала, чтобы изменения внесенные в файл sip.conf вступили в силу, без перезагрузки сервера Asterisk.
- 2004-01-25: Поддержка хранения определений SIP пиров в базе данных. Хранение конфигурации в базе данных на этот момент было реализовано не полностью, но работает. Смотри: Asterisk Realtime Sip
- 2004-06: Поддержка хранения определений SIP пользователей в базе данных.
Ссылки по теме:
- Asterisk sip channels: Дополнительная документация по настройкам в SIP.conf
- SIP: Session Initiation Protocol
- Asterisk config extensions.conf: Описание конфигурации плана набора Asterisk
- Asterisk at large: Запуск SIP прокси сервера SER, перед сервером Asterisk
- Letting SIP clients connect directly without media through asterisk
- Файлы конфигурации Asterisk
- Asterisk SIP chan_sip2: Information about Olle E. Johansson's chan_sip2 project