Asterisk: как создать новый внутренний SIP номер в sip.conf или pjsip.conf
Когда необходима настройка:
- В офис пришел новый сотрудник и ему нужно выдать внутренний телефонный номер (например,
105). - Софтфон выдает ошибку
403 Forbiddenили404 Not Foundпри попытке зарегистрировать новый номер. - При звонке на новый добавочный номер вызов сразу завершается с фразой «Номер не существует».
Вариант 1. Добавление номера в современном драйвере PJSIP (pjsip.conf)
Откройте файл /etc/asterisk/pjsip.conf в текстовом редакторе:
nano /etc/asterisk/pjsip.confДобавьте в конец файла блок настроек для номера 105:
; ================= Номер 105 (Иван Иванов) =================
[105]
type=endpoint
context=from-internal
disallow=all
allow=alaw
allow=ulaw
auth=105-auth
aors=105-aor
[105-auth]
type=auth
auth_type=userpass
username=105
password=SuperSecretPassword105!
[105-aor]
type=aor
max_contacts=2Вариант 2. Добавление номера в старом драйвере SIP (sip.conf)
Если на вашем сервере используется классический модуль chan_sip, откройте /etc/asterisk/sip.conf:
[105]
type=friend
context=from-internal
host=dynamic
secret=SuperSecretPassword105!
defaultuser=105
disallow=all
allow=alaw
allow=ulaw
nat=force_rport,comedia
directmedia=noШаг 3. Добавляем номер в маршрутизацию звонков (extensions.conf)
Чтобы на номер 105 можно было позвонить с других аппаратов, откройте /etc/asterisk/extensions.conf и в секцию [from-internal] добавьте строку вызова:
; Для PJSIP:
exten => 105,1,Dial(PJSIP/105,30)
same => n,Hangup()
; Либо для старого chan_sip:
; exten => 105,1,Dial(SIP/105,30)
; same => n,Hangup()Шаг 4. Применяем конфигурацию без перезагрузки сервера
asterisk -rx "pjsip reload"
asterisk -rx "dialplan reload" Частые вопросы (FAQ)
Что означает параметр max_contacts=2 в pjsip.conf?
Он разрешает одновременно подключаться под одним и тем же номером с двух разных устройств (например, с физического настольного IP-телефона и с мобильного приложения на смартфоне).
Почему никогда нельзя использовать простые пароли вроде '105' или '123456'?
Интернет постоянно сканируют ботнеты в поисках незащищенных АТС. Простой пароль подберут за несколько секунд, после чего через ваш сервер начнут совершать дорогостоящие международные звонки.
Что делает параметр context=from-internal?
Контекст определяет права доступа номера: на какие внутренние и внешние номера сотруднику разрешено совершать звонки согласно правилам диалплана.
Как проверить, успешно ли зарегистрировался телефон?
Выполните команду в консоли: asterisk -rx 'pjsip show endpoints' (для PJSIP) или asterisk -rx 'sip show peers' (для SIP). Статус номера должен стать 'Available' или 'OK'.