SIP Error 480 Temporarily Unavailable: причины и методы устранения
- Вызывающий абонент слышит сигнал «Занято» или сообщение «Абонент временно недоступен».
- Сервер или терминал отвечает
SIP/2.0 480 Temporarily Unavailableна входящийINVITE. - В логах АТС фиксируется статус
CHANUNAVAILилиEndpoint is unreachable/offline. - Телефон физически включен в сеть, но вызовы до него не доходят.
1. Первичная диагностика доступности Endpoint в Asterisk
Проверьте статус регистрации и доступности пира по протоколу SIP OPTIONS:
# Для chan_pjsip:
asterisk -rx "pjsip show endpoints" | grep -E "(Endpoint|Contact|Status)"
asterisk -rx "pjsip show endpoint 101"
# Для chan_sip:
asterisk -rx "sip show peers"Статусы Unavailable, Unreachable или NonQualified означают, что сервер не может доставить вызов до устройства из-за разрыва соединения, сбоя NAT или отсутствия регистрации.
2. Проверка режима «Не беспокоить» (DND) на аппарате
Если телефон находится в сети и отвечает 480 самостоятельно, проверьте:
- Активирован ли режим DND (Do Not Disturb) на самом аппарате (на экране горит значок запрета).
- Включен ли статус DND в базе данных АТС (AstDB):
asterisk -rx "database show DND"Для отключения DND для номера 101:
asterisk -rx "database del DND 101"3. Устранение проблем с тайм-аутами NAT и Qualify
Если телефон за NAT теряет доступность через несколько минут после регистрации, добавьте в /etc/asterisk/pjsip.conf:
[101]
type=aor
max_contacts=1
qualify_frequency=30 ; Опрос каждые 30 секунд для удержания NAT-сессии
[101]
type=endpoint
rewrite_contact=yes
rtp_symmetric=yes
force_rport=yes4. Проверка очередей и переадресаций (FollowMe / Call Forward)
Если ошибка 480 возвращается при звонке в очередь, проверьте наличие свободных операторов:
asterisk -rx "queue show support_queue" Частые вопросы (FAQ)
Чем отличается SIP 480 от SIP 486 Busy Here?
SIP 486 означает, что абонент занят другим разговором или отклонил вызов вручную. SIP 480 означает, что абонент в данный момент не может принять вызов по техническим или логическим причинам (оффлайн, DND, сбой сети, тайм-аут поиска).
Может ли заголовок Retry-After присутствовать в ответе 480?
Да, RFC 3261 рекомендует серверу указывать заголовок 'Retry-After: <секунды>', сообщая клиенту, через какое время целесообразно повторить попытку вызова.
Почему 480 ошибка возникает при межсетевых вызовах на мобильные номера?
Оператор мобильной связи возвращает 480 (маппинг из ISUP/Q.850 Cause 18/20), если телефон вызываемого абонента выключен, находится вне зоны действия базовых станций или находится в режиме полета.
Как настроить голосовую почту при получении статуса 480 в диалплане?
В extensions.conf проверьте переменную DIALSTATUS после выполнения команды Dial: exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL" | "${DIALSTATUS}" = "NOANSWER"]?voicemail).