Asterisk телефон не зарегистрирован
Asterisk SIP trunk
Соединение обозначенное как user, это определение любой системы или оконечной точки (endpoint), которой мы разрешаем входящие вызовы на наш сервер Asterisk. Соединение type=user не обозначает никакого пользователя, а только создает канал и указывает контекст, для входа в диалплан аутентифицированных входящих вызовов.
Через соединение обозначенное как peer совершаются исходящие вызовы.
Asterisk Register String
register ⇒ sipuser[:secret[:authuser]]@host[:port][/extension]
sipuser - идентификатор пользователя на SIP сервере провайдера. authuser - не обязательное имя пользователя для авторизации на SIP сервере port - на какой порт посылать запросы регистрации серверу host. Если не задано, то по умолчанию - 5060 /extension - расширение для обработки вызовов в диалплане Asterisk. Extension - подставляется в SIP заголовок <contact>. Это значение используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Asterisk. Задайте в контексте транка соответствующее расширение, для обработки входящих вызовов, например: exten ⇒ _1234567,1,Queue(queuename), где 1234567 - extension. Если данный параметр не указан в строке регистрации, удаленный SIP сервер, вероятнее всего, использует параметр sipuser в качестве идентификатора вызова.Вышеприведенный пример, упрощенный вариант строки регистрации. Полный вариант содержит больше информации:
register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][
Обратите внимание на параметр transport, например tls:
register => tls://user:password@host
Строка регистрации имеет напрямую связанные с ней параметры [general]:
registertimeout=20 - повторять попытки регистрации каждые 20 секунд (по умолчанию) registerattempts=10 - кол-во неудачных попыток регистрации. По умолчанию - 0 (т.е. продолжать бесконечно) sip show peers - Отобразить все пиры и их статус. sip show peer <имя пира> - Показать конфигурацию определенного пира. sip show registry - Отобразить статус регистраций на удаленном UAS. sip reload - Перечитать конфигурационный файл. sip show settings - Показать текущую конфигурацию chan_sip.Для получения подробной информации о командах смотрите Asterisk CLI - интерфейс командной строки.
Пример вывода команды sip show registry в консоли Asterisk:
Возможные состояния (state):
Request Sent - запрос отправлен, ожидает ответа. No Authentication - ответ отрицательный, регистрация отвергнута.Asterisk SIP peer
Для совершения исходящих вызовов должен быть создан объект type=peer.
Нажмите, чтобы отобразить
Нажмите, чтобы скрыть
Asterisk не делает различий между внутренними и внешними линиями, любой вызов совершается через какой-либо канал. Когда SIP сервер провайдера, вызывает Asterisk, то он совершает вызов через peer, проходя аутентификацию у user.
friend: Запись, которая одновременно и user и peer. Этот тип, как правило, задается телефонам и другим оконечным устройствам. Для SIP пользователей этого типа Asterisk создаёт два объекта, один type=peer и один type=user, с одинаковыми именами.Приведенный пример, являет собой типовой, самый распространенный вариант конфигурации sip транка с регистрацией через публичную сеть:
В диалплане (extensions.conf ) можно использовать разнообразный синтаксис для вызова (dial ) SIP устройств.
В файле extensions.conf, для совершения исходящих вызовов, у Вас должно присутствовать правило набора, примерно такого вида:
Где from-siptrunk контекст заданный user или friend объекту.
Настройка SIP пира для регистрации внутренних абонентов
Как уже отмечалось Asterisk не делает особых различий между транками и абонентами, поэтому конфиг телефона будет похож на SIP транк, но все же немного другой.
Рассмотрим некоторые опции:
host - dynamic или ip адрес с которого подключается абонент. type - для абонентского пира это обычно friend secret - пароль, использование сложных паролей убережет вас от многих неприятностей, даже если вы считаете сеть безопасной, в дальнейшем все может измениться и ваша предусмотрительность окажется очень кстати. nat = force_rport - использовать rport, даже если его нет directmedia - направлять медиа поток (RTP трафик) через сервер или напрямую между каналами (пирами). port - порт SIP сигнализации устройства (не путайте c bindport asterisk, который для данного драйвера SIP в Asterisk может быть только один, 5060 по умолчанию, но для нового драйвера Asterisk pjsip.conf, может, или даже должен, быть назначен уникальный порт для каждого транспорта) deny - сети из которых запрещено подключение permit - сети из которых разрешено подключение (если абонент находится в локальной сети, назначьте ему параметр permit=192.168.1.0/255.255.255.0 и регистрация на этом пире будет разрешена только из этой подсети. ACL очень действенная мера безопасноcти. См. также Asterisk:acl.conf call-limit -сколько одновременных вызовов (concurrent calls) может производится через данный канал. Хорошая идея, как для локальных так и для удаленных абонентов. Если пир взломан, злоумышленники не смогут пропустить через канал больше указанного кол-ва вызовов зараз(ы). pickupgroup - Группа перехвата. Назначьте одинаковый номер группы для телефонов, которые должны перехватывать вызовы друг у друга при помощи featurecode - pickupexten, назначенного в features.confНастройка нескольких SIP пиров по шаблону
А затем определить уникальные свойства пиров, добавив рядом с именем каждого пира, имя общего шаблона в круглых скобках:
Полный список параметров general sip.conf
Следующие параметры используются в общей [general] секции sip.conf:
allowexternalinvites
allowguest
allowoverlap
Вкл. или Выкл набор по одной цифре (т.е. каждая набранная цифра будет сразу отправляться в канал)
allowsubscribe
allowtransfers
alwaysauthreject
autodomain
bindaddr and bindport
Вы можете задать независимые для UDP, TCP и TLS транспорта значения udpbindadd, tcpbindaddr и tlsbindaddr
buggymwi
callevents
checkmwi
Время в секундах, между проверками голосовой почты :
compactheaders
Использовать или нет компактные SIP заголовки.
defaultexpiry
Срок действия регистрации в секундах для входящих и исходящих регистраций. При входящей регистрации, этот параметр задается клиентской стороной, и заданное здесь значение используется, только если клиент не сообщил свое занчение. Для исходящих регистраций этот параметр сообщается удаленной стороне UAS (user agent server)
directrtpsetup
domain
dumphistory
externhost
externip
externrefresh
g726nonstandard
Значения: yes/no, по умолчанию: no. Если клиент собирается для сеанса связи «договориться» использовать звуковой кодек G726-32, с использованием компрессии AAL2, вместо RFC3551 (что требуется для аппаратов фирмы Sipura и шлюзов от Grandstream, и может другим). То это противоречит спецификации RFC3551, клиент должен вместо этого «договориться» использовать AAL2-G726-32
ignoreregexpire (global)
2)Realtime peers Когда peer сконфигурирован в режиме реального времени, информация о регистрации используется независимо от defaultexpiry
jbenable
jbforce
Принудительное использование jitter buffer принимающей стороной SIP канала.
jbimpl
jblog
jbmaxsize
Установите максимальную длину буфера в миллисекундах:
jbresyncthreshold
Джиттер буфер порог синхронизации. По умолчанию 1000:
icesupport
limitonpeers
Применять call-limit только для type=peer Это улучшит использование call-limit для устройств настроенных, как type=friend, отделив ограничение call-limit от входящих вызовов.
localnet
укажет серверу Asterisk какие подсети являются локальными, прозрачными для использования IP адресов сервера, SIP запросы к которым не требуют модификации поля Contact: c использованием externip или externhost
matchexterniplocally
maxexpiry
Максимальная продолжительность регистрации в секундах.
minexpiry
Минимальная продолжительность регистрации в секундах.
notifymimetype
notifyringing
Сообщать подписчикам о состоянии вызов (RINGING):
notifyhold
Сообщать подписчикам (subscribers) о состоянии удержание (HOLD):
pedantic
realm
recordhistory
Вкл. или Выкл историю sip для всех каналов.
registerattempts
registertimeout
Таймаут между попытками регистрации на другом устройстве.
relaxdtmf
rtautoclear
rtcachefriends
Если rtcachefriends включен, Asterisk будет кэшировать friends(реалтайм пиры), которые приходят из realtime engine, так же, как если бы они сконфигурированы в «sip.conf».
rtsavesysname
(global) Определяет, должен ли Asterisk сохранить SystemName в базе данных в режиме реального времени во время регистрации:
rtupdate
sipdebug
sendrpid
ОТправлять или нет Remote-Party-ID header:
srvlookup
transport
tcpenable
Включить поддержку TCP транспорта chan_sip Asterisk.
tcpbindaddr
Адрес на котором Asterisk «слушает» TCP подключения.
tcpauthtimeout
tcpauthtimeout указывает максимальное время в секундах данное клиенту на аутентификацию. Если за заданное время клиент не прошел проверку он отключается. (По умолчаннию 30 секунд)
tcpauthlimit
Максимальное кол-во неаутентифицированных сессий в момент любой времени.
t1min
subscribecontext
Ограничить запросы SUBSCRIBE только указанным контекстом, если не переопределено в настройках пира.
t38pt_udptl
tos_sip, tos_audio, andtos_video
trustrpid
Доверять или нет Remote-Party-ID header: Asterisk SIP trustrpid
useragent
Если вы не желаете сообщать, что используете Asterisk, напишите Cisco или Avaya, или abyrvalg v2.0.
usereqphone
usereqphone опция говорит Asterisk добавить «user=phone» в SIP URIs которые содержат действующий номер телефона:
Введение Внутренний номер не регистрируется. Введение Многие из вас сталкивались с трудностями, которые возникали при работе с астериском. Начиная от подключения внутреннего номера, заканчивая непонятными ошибками в консоли астериска. Обычно в таких ситуациях системные администраторы лезут в гугл, копают тонны информации, в поиске ответа и находят решение собирая по крупицам собранные сведения с разных источников. […]
Многие из вас сталкивались с трудностями, которые возникали при работе с астериском. Начиная от подключения внутреннего номера, заканчивая непонятными ошибками в консоли астериска. Обычно в таких ситуациях системные администраторы лезут в гугл, копают тонны информации, в поиске ответа и находят решение собирая по крупицам собранные сведения с разных источников. Поэтому была написана статья, в которой будет описаны основные проблемы и подводные камни, а также как обойти их и наладить работу.
Первой темой, которую мы рассмотрим — это будет подключение внутреннего номера. Условно, можно её можно разделить на несколько пунктов:
Начнем с рассмотрения самой распространенной проблемы, а именно с регистрации. Отсутствие регистрации вызвано:
- NAT
- Firewall
- Не верный пароль
- Не верные пермиты
- Не верный транспорт
- Fail2ban
Диагностика NAT: самое простое — это если между регистрируемым устройством и астериском у вас находится NAT устройство. В таком случае на АТС не будут приходить пакеты с запросом регистрации. Чтобы проверить приходят пакеты от устройства или нет, воспользуемся утилитой tcpdump.
Астериск находится в сети 10.17.0.0/24, а регистрируемый аппарат в сети 192.168.5.0/24Отладка: проверить настроен ли проброс SIP порта из сети аппарата в сторону сервера телефонии.
Проверить какой SIP порт использует астериск, можно проверить командой asterisk -rx “sip show settings”. Раздел Global Settings.Диагностика Firewall: когда в указанном пункте выше все настроено верно и при запущенном tcpdump вы видите приходящие пакеты REGISTER на порт 5060, но нет ответа на них, как на изображении ниже, то необходимо проверить настроенные привила iptables.
- Нет правила для порта 5060 UDP/TCP
- Нет разрешающего правила для подсети, откуда происходит регистрация
- Указано запрещающее правило для конкретного IP, как на изображении ниже.
Не верный пароль
Не верные пермиты
Не верный транспорт
Отладка: для исправления ошибок необходимо указать корректный пароль в настройках аппарата или указать правильную подсеть с которой регистрируется аппарат в поле permit в настройках sip.conf, или указать в настройках правильный транспорт используемый для соединения. Транспорт можно посмотреть в настройках sip.conf в параметре transport.
Некоторые модели телефонов и софтфонов не поддерживают пароли длиннее 10-12 символов (К примеру, некоторые модели телефонов granstream страдают от этого), учитывайте этот момент при регистрации нового телефона. Делайте пароль не длиннее 10-12 символов и учитывайте, что случайный пробел так же может быть воспринят системой как символ.Отладка: Если вы нашли свой IP адрес в бане на АТС, в одной из цепочек, разбаньте его командой
Решение:
Ответ Forbidden означает, что сервер принял запрос, но отказался его обслуживать.
Причины:
- Не корректно веден пароль. (Проверьте еще раз sip.conf)
- Некорректно указан SIP ID до @. (Проверьте еще раз sip.conf)
- Некорректно указан "Domain(сервер)" в sip.conf и убедитесь, что он соответствует SIP ID после @. Проверьте, что домен соответствует созданному в «Личном кабинете»
- Проверьте, что сотрудник создан правильно в «Личном кабинете».
2. Астериск отбивает входящий звонок.
Астериск отбивает входящий звонок кодом завершения TempNotAvailable (480) В консоли Asterisk’a(CLI) включаем режим отладки sip set debug on мы видим код завершения TempNotAvailable (480):Данная ошибка предполагает, что внутренний пользователь не в регистрации.
Проверьте это, написав команду sip show registry в консоли Asterisk*, также Вы можете закомментировать перевод на данного пользователя в extensions.conf
3. Астериск в регистрации, но входящие вызовы отбиваются.
Астериск в регистрации, но входящие звонки отбиваться 401 Unauthorized.В консоли Asterisk’a(CLI) включаем режим отладки sip set debug on мы видим код завешения 401 Unauthorized.
Данная проблема связана с тем что в настройках sip.conf тип подключения указан user или friend В данном случаи было: type=user а должно быть type=peer
4. Не проходит исходящий вызов на Asterisk
Решение:
Неправильно
В первом случае вы настроили звонок на номер XXXXXX. Если вам нужен шаблон то настройка задаются символом _
Для того чтобы попасть в консоль Asterisk’a(CLI) необходимо в консоли операционной системы ввести команду:
asterisk -rvvvvv
sip show peers – Отображение всех абонентов и транков SIP с указанием номера абонента, ip адреса, пинга и др.значений
sip show registry – отображение всех SIP регистраций.
sip reload – перезагружает модуль sip канала после внесения изменений в файл sip.conf
sip show channels – отображение активных SIP каналов с указанием пользователя, идентификатора звонка и хоста пира.
sip show settings – показывает глобальные настойки SIP
sip set debug – режим отладки, применяется с значениями on/off — отладка всей системы, ip – конкретный адрес, peer – абонент системы. К примеру «sip set debug peer 101»
dialplan show – текущий диалплан
dialplan reload – перезагрузка диалплана
dialplan save – сохранить текущий диалплан в файл. Имеет зависимость от параметров writeprotect=no и static=yes в файле extensions.conf
dialplan show globals – глобальные параметры диалплана
core show codecs – отображение информации о установленных кодеках в Asterisk
core restart gracefully – перезагрузка Asterisk после завершения всех разговоров.
Выберите вкладку Ext 1, с помощью которой мы выполним настройку первой линии. Выберите в меню следующие опции:
Конфигурация диалплана для выполнения тестирования
Чтобы ваш телефон мог звонить на другие телефоны (или, для многоканального телефона, звонить самому себе), необходимо внести изменения в файл extensions.conf. Взяв за основу то, что было сделано в разделе «Настройка диалплана для выполнения тестовых вызовов», добавим следующие строки в контекст [internal]: exten => 1000,1,Verbose(1|Extension 1000) exten => 1000,n,Dial(SIP/1000,30) exten => 1000,n,Hangup()
Если имеется два телефона или сконфигурировано несколько линий, можно продублировать предыдущие настройки, заменив 1000 на другой добавочный номер.
Asterisk: офисная АТС, создаваемая профессионалами
Asterisk: офисная АТС, создаваемая профессионалами Никогда за всю историю телекоммуникаций не существовало системы, настолько отвечающей нуждам бизнеса в любой ценовой категории. Asterisk - технология, предоставляющая новые возможности, и, как это было с Linux, скоро вряд ли можно
Сообщество разработчиков Asterisk
Сообщество разработчиков Asterisk Одна из неоспоримых сильных сторон системы телефонии Asterisk - сообщество энтузиастов, разработавших и поддерживающих его, руководит которым Марк Спенсер, основатель компании Digium. Сообщество остро осознает культурную значимость Asterisk и с
Рассылки по Asterisk
Википедия об Asterisk
Группы пользователей Asterisk
Группы пользователей Asterisk На многих сайтах по всему миру одинокие пользователи Asterisk начинают осознавать, что в их городах есть и другие люди, разделяющие их пристрастие. Группы пользователей Asterisk (Asterisk User Groups,AUGs) возникают повсюду. Хотя они никак официально не
Проект создания документации Asterisk
Проект создания документации Asterisk Проект создания документации Asterisk (Asterisk Documentation Proj ect) начали осуществлять Лейф Мадсен и Джаред Смит, но в нем участвовали и другие члены сообщества.Цель проекта - создание структурированного хранилища письменных источников по Asterisk. В
AstLinux и Asterisk на OpenWRT
AstLinux и Asterisk на OpenWRT Те, кто действительно прекрасно себя чувствует, работая с Linux на встроенных платформах, несомненно, захотят присоединиться к рассылке AstLinux и опробовать творение Кристиана Кайл- хофнера (Kristian Kielhofner) AstLinux, или приобрести Linksys WRT54GL и установить версию Asterisk,
Глава 3. Установка Asterisk
Глава 3. Установка Asterisk Я жажду решать большие и выдающиеся задачи, но представлять скромные задачи так, как будто они большие и выдающиеся, является обязанностью моего шефа. Мир продвигается вперед не только мощными рывками его героев, но и скромными усилиями всех
Получение исходного кода Asterisk
Получение исходного кода Asterisk Проще всего получить самую последнюю выпущенную версию с помощью программы
Компиляция Asterisk
Компиляция Asterisk После компиляции и установки пакетов zaptel и libpri (если они нужны), можно переходить к установке Asterisk. В этом разделе рассматривается стандартная установка и представлены некоторые альтернативные аргументы make, которые могут
Распространенные проблемы компиляции Asterisk
Распространенные проблемы компиляции Asterisk Существует множество проблем компиляции, с которыми часто сталкиваются пользователи. Далее рассматриваются некоторые самые распространенные из них и способы их решения.Сначала давайте рассмотрим некоторые ошибки, которые
Быстрая загрузка Asterisk и Zaptel
Быстрая загрузка Asterisk и Zaptel Если команда make config выполняется в папках исходного кода Asterisk или Zaptel, сценарии запуска, используемые для управления Asterisk или Zaptel, будут скопированы в папку /etc/rc.d/init.d/. Используя сценарии, можно упростить загрузку Asterisk и Zaptel. Эти сценарии также
Папки, используемые Asterisk
Глава 4 Исходная конфигурация Asterisk
Глава 4 Исходная конфигурация Asterisk Я не всегда понимаю, о чем говорю, но всегда уверен, что я прав. - Мухаммед Али После выполнения всех этапов, описанных в главе 3, должна быть получена рабочая система Asterisk. Если что-то не так, не пожалейте времени, вернитесь назад и еще раз
Базовая конфигурация SIP-телефонов в Asterisk
Базовая конфигурация SIP-телефонов в Asterisk Конфигурация SIP-телефона для работы с Asterisk не требует много усилий и времени. Однако здесь можно легко запутаться из-за обилия опций как в Asterisk, так и в конфигурации конкретного телефонного аппарата или программного телефона.
Если не проходит регистрация в SIP, возникает ошибка в приложении, а Вы уверены, что все настройки верные, необходимо проверить несколько параметров:
- Корректность SIP данных.
- Подключение к интернету.
Все верно, но подключение не удается?
В 99% случаев это связано с настройками сети и ее защитой. Предлагаем простой порядок действий.
Для диагностики нам понадобится любой софтфон, например, Zoiper, даже если необходимо настроить sip-трубку - для проверки сети потребуется приложение.
Устанавливаем его на компьютер, если есть возможность, то сразу на несколько устройств, и тут возможны следующие варианты:
1. Одно из устройств подключилось, а другое нет. Это значит, что на устройстве, которое не подключилось, стоят ограничения по обмену информации через порт 5060 по UDP. Как правило, это связано с межсетевыми экранами (стандартный брандмауэр Windows или антивирусы/Firewall). В данном случае нам необходимо настроить устройство, чтобы открыть порт на нем. Есть очень много информации по запросу в гугл "Как открыть порт", "Как открыть порт windows 10", "Как открыть порт в брандмауэре" и т.д.
2. Все устройства не подключаются в сети. Следует вычленять затруднения по одному. Первым действием следует позвонить провайдеру и уточнить, нет ли блокировок с их стороны по порту 5060 по UDP. Если есть, можно использовать другой порт для подключения. Если нет блокировок, необходимо подключиться напрямую или использовать другой тип соединения.
И тут также два пункта:
а) Не заработало. Смотрим пункт №1
б) Заработало. Блокировка идет со стороны роутера/сервера (или другого сетевого оборудования), значит, необходимо открыть порты на нем. Тут также поможет интернет, но запросы будут относиться уже к сетевому оборудованию: "Как открыть порт на роутере ваша_модель", "Как открыть порт маршрутизатора" и другие похожие запросы. По большинству из них Вы сможете найти не только полезные статьи, но видео.
Читайте также: