Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2016-05-05 15:00:21 +0400

mike.forbs Gravatar mike.forbs

Как запретить отправку REGISTER?

Коллеги,

Подключаюсь к провайдеру. Мне не дали логин с паролем, сказали только 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, т.к. меня уверяют, что у всех такая же конфигурация работает на ура.

Как запретить отправку REGISTER?

Коллеги,

Подключаюсь к провайдеру. Мне не дали логин с паролем, сказали только 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
#

Как запретить отправку REGISTER?

Коллеги,

Подключаюсь к провайдеру. Мне не дали логин с паролем, сказали только 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 провайдеру:

        if (!ast_strlen_zero(peer->callback)) { /* build string from peer info */
                char *reg_string;
                if (ast_asprintf(&reg_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?

Коллеги,

Подключаюсь к провайдеру. Мне не дали логин с паролем, сказали только 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(&reg_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 регистрации прекратились. Проблема решена.

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.