Опция fromuser= и передача CID
Прошу помочь ибо похоже перестал видеть у себя под ногами.
Задача следующая принять звонок на промежуточный сервер, в зависимости от CID передать его дальше по транку.
Чтобы понятнее было так :
Golden -> SIP TRUNK -> Aster 1 -- > Astrer 2
Не работает связка между Aster 1 -- > Astrer 2. Вернее все работает, но не могу корректно передать CID.
Делаю так:
Примем от провайдера:
| Код: |
| [432XXXXXX] username=4326XXXX fromuser=43260XXXX secret=secret type=friend qualify=no maxexpiry=120 insecure=invite host=XX.XX.XX.XX defaultexpiry=60 context=from-0432 allow=alaw allow=ulaw rustrpid=no sendrpid=no dtmfmode=rfc2833 canreinvite=no [from-0432] exten => _X.,1,Noop(--------- Incoming from trunk ${EXTEN}) same => n,Set(STARTTIME=${SHELL(date +%s)} ) same => n,GotoIf($[${LEN(${EXTEN})} = 9 ]?NOCUT:CUT) same => n(CUT),Set(DTRUNK=${EXTEN:0:-2}) same => n,Goto(COPLETE) same => n(NOCUT),Set(DTRUNK=${EXTEN}) same => n(COPLETE),Set(GROUP(vinnitsa)=public) same => n,Macro(user-callerid,) same => n,Dial(SIP/14-208Return/${DTRUNK},300,r) same => n,Hangup() [macro-user-callerid] exten => s,1,Set(CALLERID(number)=${CALLERID(number):0:40}) same => n,Set(CALLERID(name)=${CALLERID(name):0:40}) same => n,Set(CALLERID(num)=${CALLERID(number)}) same => n,Set(CALLERID(name)=${CALLERID(name)}) same => n,Set(CALLERID(all)="${CALLERID(name)}" ) same => n,MacroExit() ;Транк отправки на aster1 [14-208Return] fromuser=14-208Return type=peer secret=qwerty22 host=192.168.8.208 trunk=yes notransfer=yes ;Транк приема на aster2 [14-208Return] fromuser=14-208Return username=14-208Return context=from-trunk-custom type=user secret=qwerty22 host=192.168.8.14 dtmfmode=rfc2833 |
Вот собственно проблема, когда в Транк отправки на aster1 есть "fromuser=14-208Return", звонок проходит. Но в качестве CID высвечивается "14-208Return"
Если убираю опцию то звонок не проходит.
| Код: |
| : Failed to authenticate on INVITE to ';tag=as050ebb3f |
0432YYYYY - номер с которого звоню, те он подставляется в fromuser.
Добавлении опции insecure=port,invite в "Транк приема на aster2" ничего не дает, хотя во большинстве документации написано что должен.
Что я делаю не так ТКНИТЕ КАК КОТЕНКА. Второй день сижу ....
Понимаю что тема поднималась и не раз, заранее прошу прощения за флуд. Но не могу дойти.
| Код: |
| [moscowoffice] type=friend context=from-moscow host=telegk.mydomain.ru dtmfmode=auto disallow=all allow=alaw directmedia=no qualify=yes ignoresdpversion=yes deny=0.0.0.0/0.0.0.0 permit=ХХХ.ХХХ.XXX.XXX/255.255.255.255 secret=userspboffice auth=spbsip:userspboffice@mydomain.ru |
на другом:
| Код: |
| [spbsip] type=friend context=lan-phones host=XXX.XXX.XXX.XXX dtmfmode=auto disallow=all allow=alaw directmedia=no qualify=yes ignoresdpversion=yes deny=0.0.0.0/0.0.0.0 permit=XXX.XXX.XXX.XXX/255.255.255.255 secret=userspboffice auth=moscowoffice:userspboffice@mydomain.ru |
authuser=14-208Return
Все одно благодарю.
И еще забыл сказать, что в [general] sip.conf-а у меня
| Код: |
| match_auth_username=yes |
sterisk 11.4.0
-- > Astrer 2
1.6
[authentication]
; Global credentials for outbound calls, i.e. when a proxy challenges your
; Asterisk server for authentication. These credentials override
; any credentials in peer/register definition if realm is matched.
;
; This way, Asterisk can authenticate for outbound calls to other
; realms. We match realm on the proxy challenge and pick an set of
; credentials from this list
; Syntax:
; auth = :@
; auth = #@
; Example:
;auth=mark:topsecret@digium.com
;
; You may also add auth= statements to [peer] definitions
; Peer auth= override all other authentication settings if we match on realm
Впрочем, работает -- и хорошо. Но разобраться бы надо.