Не исключительно. Еще callbackextension может стоять, он в realtime используется.
glukinho ( 2016-05-06 17:49:35 +0400 )редактироватьКоллеги,
Подключаюсь к провайдеру. Мне не дали логин с паролем, сказали только IP, настройки кодека и т.п. Сказали, чтобы я убрал строчку register из sip.conf. Ок. Вот моя конфигурация к провайдеру:
[beeline]
type=peer
trunkname=beeline
host=X.X.X.X
context=from-trunk
callbackextension=from-beeline
insecure=port,invite
disallow=all
allow = alaw
nat = no
directmedia = no
dtmfmode = rfc2833
qualify=yes
Тем не менее, при такой конфигурации и входящие и исходящие работают. Но я также вижу постоянно в консоли ошибку:
[May 5 10:44:47] NOTICE[19224]: chan_sip.c:15732 sip_reg_timeout: -- Registration for '@X.X.X.X' timed out, trying again (Attempt #2)
-- Got SIP response 503 "Service Unavailable" back from X.X.X.X:5060
Уже чего только не пробовал. Посоветуйте как быть? Как запретить отправку REGISTER? У меня asterisk-13.8.2, по заголовкам видно что у провайдера Cisco-SIPGateway/IOS-12.x. Перезагрузка Астера не помогает. Я так полагаю, что это проблема самого Asterisk 13, т.к. меня уверяют, что у всех такая же конфигурация работает на ура.
# grep -ir register /etc/asterisk
#
UPDATE: проблему решил сам. Как и ожидалось, заглянув в исходники, стало ясно почему он регистрируется. Все из-за callbackextension, если он есть, chan_sip будет отправлять REGISTER провайдеру с Contact: <sip:from-beeline@myip:5060> для обратной связи:
if (!ast_strlen_zero(peer->callback)) { /* build string from peer info */
char *reg_string;
if (ast_asprintf(®_string, "%s?%s:%s@%s/%s", peer->name, peer->user
name, !ast_strlen_zero(peer->remotesecret) ? peer->remotesecret : peer->secret, peer->
tohost, peer->callback) >= 0) {
sip_register(reg_string, 0); /* XXX TODO: count in registry_co
unt */
ast_free(reg_string);
}
}
В принципе, на этом sip-trunk-е я обойдусь без него, поэтому убрав его и перезагрузив Asterisk регистрации прекратились. Проблема решена.
исходящая регистрация выполняется ИСКЛЮЧИТЕЛЬНО в случае наличия строчки
register=> user:pass@ip
в вашем конфиге.
Соответсвенно можно рекомендовать то же, что и суппорт провайдера - найти строчку register
кстати, для циско надо еще и qualify=no поставить.
Не исключительно. Еще callbackextension может стоять, он в realtime используется.
glukinho ( 2016-05-06 17:49:35 +0400 )редактироватьЗадан: 2016-05-05 15:00:21 +0400
Просмотрен: 327 раз
Обновлен: May 05 '16
SIP Proxy для нескольких организаций
Множественные запросы REGISTER
Регистрация в Asterisk по SIP-протоколу (самописный клиент)
Отчет о дате последней авторизации экстеншэна
Не регистрируется Planet VIP-156
Не регистрируется трубка,408 Request Timeout
Помогите новичку зарегистрировать номер в Elastix для входящих звонков
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Строчки register у меня нет, в глобальной конфигурации general в sip.conf, правда, есть вот это: registertimeout=60 registerattempts=0
mike.forbs ( 2016-05-05 15:13:50 +0400 )редактироватьПробовал убирать эти опции - не помогло.
mike.forbs ( 2016-05-05 15:19:03 +0400 )редактировать