Конфигурация PJSIP-транка в Asterisk: регистрируем номер ZuteSIP

Обновлено 2026-09-30 · Команда ZuteSIP (ZuteSIP Inc.)

Коротко: Чтобы подключить Asterisk к ZuteSIP, добавьте в pjsip.conf пять секций для одного транка: registration, указывающую на sip.zutesipdialer.com, auth с вашими SIP-логином и паролем, aor, endpoint с кодеками только ulaw и alaw и identify, сопоставляющую наш сервер. Затем направьте DID в extensions.conf и звоните наружу через endpoint.

Это вариант для «чистого» Asterisk — для тех, кто правит конфигурационные файлы напрямую. Он повторяет структуру транка из официальных примеров res_pjsip с подставленными значениями ZuteSIP.

01

Что понадобится

  • ✓ Номер ZuteSIP и его SIP-логин и пароль со страницы номера в личном кабинете.
  • ✓ Asterisk с загруженным res_pjsip (любая поддерживаемая сейчас версия).
  • ✓ Доступ к оболочке для правки /etc/asterisk/pjsip.conf и extensions.conf и Asterisk CLI для тестов.
02

Значения ZuteSIP в конфигурации

ПараметрЗначение
SIP-сервер / регистратор / доменsip.zutesipdialer.com
Транспорт и портUDP или TCP 5060; TLS 5061
Имя пользователя<SIP_USERNAME> (на странице номера в личном кабинете)
Пароль<SIP_PASSWORD> (на той же странице)
АутентификацияDigest (логин + пароль), с регистрацией
КодекиG.711 µ-law (PCMU) и G.711 A-law (PCMA)
DTMFRFC 2833 (RTP-события) или SIP INFO
Входящий DID<YOUR_NUMBER> в формате E.164
03

pjsip.conf: транспорт и транк

Вставьте это в pjsip.conf и замените заполнители. Пропустите блок transport, если UDP-транспорт у вас уже есть. Для TCP или TLS создайте соответствующий транспорт и используйте порт 5061 для TLS.

Identify сопоставляет по адресу источника нашего SIP-трафика; Asterisk разрешает имя хоста при загрузке конфигурации.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
; behind NAT also set:
; external_media_address=<PUBLIC_IP>
; external_signaling_address=<PUBLIC_IP>
; local_net=192.168.0.0/16

[zutesip]
type=registration
transport=transport-udp
outbound_auth=zutesip-auth
server_uri=sip:sip.zutesipdialer.com:5060
client_uri=sip:<SIP_USERNAME>@sip.zutesipdialer.com
contact_user=<YOUR_NUMBER>
retry_interval=60

[zutesip-auth]
type=auth
auth_type=userpass
username=<SIP_USERNAME>
password=<SIP_PASSWORD>

[zutesip]
type=aor
contact=sip:sip.zutesipdialer.com:5060
qualify_frequency=60

[zutesip]
type=endpoint
transport=transport-udp
context=from-zutesip
disallow=all
allow=ulaw,alaw
dtmf_mode=rfc4733
outbound_auth=zutesip-auth
aors=zutesip
from_user=<SIP_USERNAME>
from_domain=sip.zutesipdialer.com
callerid=<YOUR_NUMBER>
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes

[zutesip]
type=identify
endpoint=zutesip
match=sip.zutesipdialer.com
04

extensions.conf: входящий и исходящий диалплан

Входящие звонки попадают в контекст from-zutesip с вашим номером в качестве набранного extension. Исходящий шаблон отправляет через транк номера, набранные с плюсом в начале.

В исходящей строке ${EXTEN} — канальная переменная Asterisk с набранным номером. Замените 1001 на свой внутренний номер или группу вызова.

[from-zutesip]
; inbound: DID = your ZuteSIP number
exten => <YOUR_NUMBER>,1,NoOp(Inbound call on ZuteSIP DID)
 same => n,Dial(PJSIP/1001,30)
 same => n,Hangup()
; catch other DID formats (with or without +)
exten => _X.,1,Goto(from-zutesip,<YOUR_NUMBER>,1)

[from-internal]
; outbound: dial +<country code><number>
exten => _+X.,1,Set(CALLERID(num)=<YOUR_NUMBER>)
 same => n,Dial(PJSIP/${EXTEN}@zutesip,60)
 same => n,Hangup()
05

Пошагово: загрузка и проверка

  1. 1Сохраните оба файла и выполните pjsip reload и dialplan reload в Asterisk CLI (asterisk -rvvv).
  2. 2Выполните pjsip show registrations и убедитесь, что zutesip в статусе Registered.
  3. 3Выполните pjsip show endpoint zutesip, чтобы проверить кодеки, контакт aor и совпадение identify.
  4. 4Позвоните на номер ZuteSIP с другого телефона и наблюдайте за CLI: звонок должен войти в from-zutesip и вызвать внутренний номер 1001.
  5. 5Наберите международный номер с внутреннего номера в формате +код страны и убедитесь, что вызываемый абонент видит ваш номер ZuteSIP.
06

Caller ID при исходящих звонках

Задайте Caller ID равным номеру, которому принадлежит SIP-аккаунт, — либо через callerid на endpoint, либо через CALLERID(num) в диалплане, как показано. Он должен совпадать с данными на транке. Исходящие звонки расходуют 1,000 включённых минут номера в месяц.

07

Устранение проблем

  • ✓ Регистрация 401/403: не совпадают логин или пароль, либо секция auth не привязана через outbound_auth. Выполните pjsip set logger on и посмотрите обмен REGISTER.
  • ✓ Входящие отклоняются как анонимные или с ошибкой «No matching endpoint found»: нет секции identify или адрес источника не совпадает. Проверьте, что имя хоста разрешается на вашем сервере, и перезагрузите конфигурацию.
  • ✓ Звук в одну сторону: задайте external_media_address, external_signaling_address и local_net на транспорте, оставьте включёнными rtp_symmetric и force_rport и откройте в брандмауэре диапазон портов из rtp.conf.
  • ✓ 488 Not Acceptable Here: несовпадение кодеков. Оставьте allow=ulaw,alaw.
  • ✓ DTMF не распознаётся: оставьте dtmf_mode=rfc4733 (метод RTP-событий, описанный в RFC 2833); используйте info, только если другая сторона требует SIP INFO.
FAQ

Частые вопросы

Нужны ли и registration, и identify?
Да. Registration сообщает ZuteSIP, куда отправлять ваши звонки, а identify позволяет Asterisk сопоставить эти входящие звонки с endpoint zutesip.
rfc4733 — это то же самое, что DTMF по RFC 2833?
Да. RFC 4733 обновил RFC 2833 и описывает тот же метод RTP-событий, который использует настройка rfc4733 в Asterisk.
Можно ли использовать chan_sip вместо PJSIP?
chan_sip удалён из актуальных версий Asterisk, поэтому поддерживаемый путь — PJSIP. Сервер, учётные данные и кодеки те же.
Можно ли использовать TLS с Asterisk?
Да. Создайте TLS-транспорт, укажите в registration и aor порт 5061 и сошлитесь на этот транспорт. Шифрование медиа SRTP не предоставляется.
Как добавить второй номер ZuteSIP?
Продублируйте секции registration, auth, aor, endpoint и identify под новым именем с данными этого номера и добавьте его DID в диалплан.
Есть ли у ZuteSIP API для Asterisk?
Нет. Клиентского API и вебхуков нет; Asterisk подключается по стандартному SIP с учётными данными каждого номера.
→
SRC

Источники

✓

Всё включено в каждый номер

  • ✓ Безлимитные входящие SMS
  • ✓ Безлимитные входящие звонки
  • ✓ 500 исходящих SMS в месяц
  • ✓ 1000 исходящих минут в месяц
  • ✓ SIP-доступ для любого софтфона или АТС
  • ✓ Переадресация на любой телефон
  • ✓ Веб-звонилка в личном кабинете
  • ✓ Номер ваш столько, сколько захотите
  • ✓ 7-дневная гарантия замены — бесплатный новый номер

Цена $1.80/мес · оплата за год ($21.60).

7-дневная гарантия замены

Если номер вам не подошёл — например, приложение его не принимает или коды не приходят, — в течение 7 дней после покупки вы можете бесплатно заменить его на новый номер в той же стране одним кликом в личном кабинете. Замена доступна до 2 раз, независимо от того, пользовались ли вы номером. А если номер не использовался ни для звонков, ни для SMS, можно вместо этого получить полный возврат денег.

Все номера →

Регистрация и оплата доступны только на английском языке.