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

Два SIP пира на одном IP adress:port

0

Добрый день Столкнулся со следующей проблемой Есть два Астериска - сервер и клиент На сервер выделено два экстеншена для клиента

[1234] 
disallow=all 
allow=ulaw 
allow=alaw 
type=peer 
host=dynamic 
context=first_trunk 
qualify=yes 
rtpkeepalive=5 
secret=secret

[4321] 
disallow=all 
allow=ulaw 
allow=alaw 
type=peer 
host=dynamic 
context=second_trunk 
qualify=yes 
rtpkeepalive=5 
secret=secret2

Также имеются два контекста

[first_trunk]
exten => _X.,1,NoOp(first)
exten => _X.,2,Dial(SIP/vendor_trunk/10${EXTEN})

[second_trunk]
exten => _X.,1,NoOp(second)
exten => _X.,2,Dial(SIP/vendor_trunk/20${EXTEN})

Сделано это чтобы разделить биллинг первого транка и второго. Теперь вопрос, когда от клиента приходит звонок с первого транка, все хорошо, а вот когда со второго, то пишет следующую ошибку

[2017-09-20 14:32:12] WARNING[19421][C-0001d90e]: chan_sip.c:17079 check_auth: username mismatch, have <1234>, digest has <4321>
[2017-09-20 14:32:12] NOTICE[19421][C-0001d90e]: chan_sip.c:26124 handle_request_invite: Failed to authenticate device "9999999999" <sip:9999999999@client_ip_adress>;tag=as704203c9

99999999999 - для примера, номер вызываемого абонента, т.е. наш ${EXTEN}

Если во втором транке прописать

insecure = invite

то все звонки приходят в контекст [second_trunk], и соответственно, разделение биллинга не происходит. От клиента в CallerID приходит номер, который подчтавляется для исходящей связи (это реализовано скриптом), т.е. опцию fromuser поставить не получится.

Подскажите, пожалуйста, где ошибка ?

удалить закрыть спам изменить тег редактировать

спросил 2017-09-20 15:39:38 +0400

A66aT Gravatar A66aT
29 15 10

обновил 2017-09-20 15:47:19 +0400

Comments

А 1234 и 4321 зарегистрированы на вашем сервере ?

zzuz ( 2017-09-20 23:46:07 +0400 )редактировать

Да, оба номера прописаны на клиентском Астере в register =>

A66aT ( 2017-09-21 13:54:17 +0400 )редактировать

2 Ответа

0

Используйте Remote-Party-ID для передачи CallerID, пропишите fromuser и уберите insecure = invite

На сервере:

trustrpid=yes

На клиенте:

sendrpid=yes
ссылка удалить спам редактировать

ответил 2017-09-21 13:17:39 +0400

Olpag Gravatar Olpag
2024 3 6 30

Comments

Спасибо за совет, попробую - отпишусь.

Только вопрос, разве для Remote-Party-ID нужно поле fromuser оставлять ?

A66aT ( 2017-09-21 14:13:38 +0400 )редактировать

fromuser и fromdomain меняют поля From и Contact в SIP-запросе INVITE. Если используете эти поля в процессе аутентификации, тогда - да, надо использовать fromuser.

Olpag ( 2017-09-21 16:35:58 +0400 )редактировать
0

Если все так сложно, то insecure и смотрите from поле в контексте, по нему разделяйте.

Но вообще так работает.

ссылка удалить спам редактировать

ответил 2017-09-21 08:33:25 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

там, к сожалению, у меня доступа к серверу нет, скриптом подставляется CallerID (num) и (name), В поле from проставляется то же. что и в CallerID, а если клиент не выбирает номер для подставления, то пакет приходит с from = "Anonymous"

A66aT ( 2017-09-21 13:57:25 +0400 )редактировать

это все беспредметно. вы администратор или погулять вышли? если администратор, где дебаг? если погулять - ищите администратора.

meral ( 2017-09-21 14:01:08 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2017-09-20 15:39:38 +0400

Просмотрен: 618 раз

Обновлен: Sep 21 '17

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