AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Передача CallerID через 2 астериска

Asterisk GUI 8 сообщений -
#1

Добрый день,
Схема: ( PBX -- шлюзE1-- *1 -- *2 -- телефон). При звонках с PBX надо на телефоне иметь CID звонящего. Но звонки проходят только в случае "Force Trunk CID" и всегда получаем CID = 2211. Не подскажете, как передать исходный CID?
Транки:
*1:
Код:
PEER rsp
host=192.168.16.20
username=2211
secret=pwd1
type=peer
context=from-internal

USER 8288
type=user
secret=pwd2
context=from-internal


*2:
Код:
PEER rb
host=192.168.16.141
username=8288
secret=pwd2
type=peer
context=from-internal

USER 2211
type=user
secret=pwd1
context=from-internal
#2

Ну для таких действий прежде всего надо знать теорию
и прежде всего понять что вы посылаете в INVITE в сторону E1 и что E1 посылает в INVITE в сторону телефонов
поиграйте параметрами SendRPID - потом смотрите INVITE пакеты что посылается и где теряется

_________________
платный суппорт по мере возможностей
#3

awsswa @ Ср Авг 31, 2016 17:43 писал(а):
Ну для таких действий прежде всего надо знать теорию
и прежде всего понять что вы посылаете в INVITE в сторону E1 и что E1 посылает в INVITE в сторону телефонов
поиграйте параметрами SendRPID - потом смотрите INVITE пакеты что посылается и где теряется

С E1 все в порядке. На телефонах, подключенных к *1, CID имеется. Если не ставить FORCE TRUNK CID, он передается в *2, где звонок отбивается:
Connected to Asterisk 13.9.1 currently running on raspbx (pid = 1776)
[2016-09-01 09:01:26] WARNING[1865][C-00000004]: chan_sip.c:17091 check_auth: username mismatch, have , digest has
[2016-09-01 09:01:26] NOTICE[1865][C-00000004]: chan_sip.c:26125 handle_request_invite: Failed to authenticate device "8233" ;tag=as2ea5cc27

Задача еще проще. Не могу передать CID между двумя серверами астериск: (Аб1 -- *1 -- *2 -- Аб2), связь только с TRUNK CID. Где копать?
#4

Первая * должна авторизовываться на второй. В вашем случае этого не происходит.
#5

xelas @ Чт Сен 01, 2016 10:23 писал(а):
Первая * должна авторизовываться на второй. В вашем случае этого не происходит.

Если я ставлю FORCE TRUNK CID, происходит. И CID у Аб2 соответственно транка, а не Аб1
#6

Совершенно верно. Вы просто плохо представляете себе как происходит выбор пира и авторизация в астериск.
Когда вы включаете force cid у вас в INVITE идет From:вашузернаме, и астериск правильно может сматчить этот инвайт.
Когда вы передаете другой CID == этого не происходит, а происходит именно то, что у вас написано в логах:

[2016-09-01 09:01:26] WARNING[1865][C-00000004]: chan_sip.c:17091 check_auth: username mismatch, have , digest has
[2016-09-01 09:01:26] NOTICE[1865][C-00000004]: chan_sip.c:26125 handle_request_invite: Failed to authenticate device "8233" ;tag=as2ea5cc27

Попробуйте включить глобальную опцию: match_auth_username=yes

;match_auth_username=yes ; if available, match user entry using the
; 'username' field from the authentication line
; instead of the From: field.
#7

Если ваши астериски в маршрутизируемой сети . зачем вообще всякие авторизации ?
Код:
host=Remote_AST
type=peer
context=from-Incoming
insecure=invite,port
qualify=yes
disallow=all
allow=alaw
canreinvite=no


полет нормальный.
#8

xelas @ Чт Сен 01, 2016 10:38 писал(а):


Попробуйте включить глобальную опцию: match_auth_username=yes

;match_auth_username=yes ; if available, match user entry using the
; 'username' field from the authentication line
; instead of the From: field.


Супер! Получилось как надо. Пытаюсь добавить вам карму, не получается, попробую еще. Спасибо.