ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

FreePBX intra-company route преобразование кодеков

Обо всем касательно TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 10 дек 2010, 09:51

Здравствуйте!
Нарисовалась вот такая немного странная проблема.
Дано:
- Asterisk 1.8, FreePBX 2.8
- SIP-транк от оператора с входящим многоканальным номером
- Dahdi-E1-транк на офисную АТС LG-LDK
- Входящие с SIP-транка разруливаются через IVR. В [ivr-N-custom] внесены строки include => outrt-N и include => ext-meetme, для прямого набора номеров LG LDK и конференций.
- В настройках outrt-N стоит флаг Intra-company route для сохранения CallerID при передаче звонка на LG.
Все это дело отлично работало до тех пор пока на провайдерском sip-транке был установлен кодек alaw
Проблема:
После смены кодека на транке на g729 перестали ходить звонки в сторону LG, т.е. я вижу набор номера в нее, она тоже видит входящий звонок, который тут же обрывается. При этом дозвоны до sip телефонов и конференций проходят нормально. Более того снятие галки Intra-company восстанавливает нормальное прохождение звонков, но тут мы теряем входящий CallerID.
Если вернуть на sip-транк кодек alaw, всё начинает работать как и раньше
Вывод
При установленной галке Intra-company и соединении двух транков, asterisk не делает транскодирование g729(sip-trunk)<->alaw(DAHDI), хотя сама галка заявлена только как сохраняющая CallerID при транзите звонка.
Вопрос
Можно ли как-то обойти проблему с сохранением g729 на транке?
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

Re: FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 10 дек 2010, 10:53

Лыжа не мудит, снятая галка тут же возвращает работу маршрута, прописал на транке outbound cid аналогичный входящему, работает.
В лыжовом дебаге все хорошо, звонок от астера приходит, потом allerting, потом нормальный обрыв и астер говорит "все линии заняты". возвращаю на sip-транк alaw - звонки проходят.
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

Re: FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 10 дек 2010, 11:39

switch писал(а):сравнивайте работу диалплана в обоих вариантах

знать бы что искать
пока вижу только это:
Код: выделить все
....
exten => s,n(nomax),GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid)
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS})
exten => s,n,Macro(outbound-callerid,${DIAL_TRUNK})
exten => s,n(skipoutcid),GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1)
exten => s,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER})
exten => s,n,Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)})
exten => s,n,ExecIf($[$["${MOHCLASS}" != "default"] & $["${MOHCLASS}" != ""]]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS}))
exten => s,n(gocall),Macro(dialout-trunk-predial-hook,)
exten => s,n,GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1)
exten => s,n,GotoIf($["${custom}" = "AMP"]?customtrunk)
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS})
...

по флагу intra-company идет пропуск двух строк, дальше без изменений
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

Re: FreePBX intra-company route преобразование кодеков

Сообщение ded » 10 дек 2010, 12:25

Смотри не сам код сначала, а прохождение звонки при включенном intra-company route.
И хорошо бы sip debug при этом включить. Там будет расписано всё подробно, кто какие приоритеты кодеков задаёт.
ded
 
Сообщений: 15838
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 10 дек 2010, 13:45

ded писал(а):Смотри не сам код сначала, а прохождение звонки при включенном intra-company route.
И хорошо бы sip debug при этом включить. Там будет расписано всё подробно, кто какие приоритеты кодеков задаёт.

На кой ляд включать sip debug? Я, когда транк на g729 перевожу, явно отключаю остальные и включаю его. sip show channels показывает g729 на транке. По-моему, если и нужно что-то включать, то pri set debug span, потому, что обрыв происходит после того как астер и лыжа обменялись приветствиями в d-канале, астер сообщил вызываемый и вызывающий номер и линия перешла в состояние alerting, вот тут как раз должен подключаться один из голосовых каналов транка, но происходит обрыв.
Кроме того если я звоню с одного из sip-телефонов внутренних, кои тоже g729, то звонок в лыжу проходит, хотя, по сути при наборе с сип-транка и с сип-фона, звонок, после передачи его в контекст outrt-N, проходит одинаковым маршрутом.
Подглюкивает где-то связка sip-транк->ivr->outrt(intra-company), как будто астер где-то "забывает" каким кодеком ему позвонили и отдает звонок в E1 как есть, без трансляции.
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

Re: FreePBX intra-company route преобразование кодеков

Сообщение ded » 10 дек 2010, 14:01

На кой ляд полностью процитирован последний пост?
На кой ляд спрашивать тут, если ты знаешь где подглюкивает и как дебажить?
ded
 
Сообщений: 15838
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 10 дек 2010, 14:29

Просто все это проверено еще вчера и перепроверено сегодня. В какой бубен стучать не знаю уже
Вот sip debug
Код: выделить все
   -- Executing [580408@from-sip-external:1] NoOp("SIP/192.168.65.100-000001c9", "Received incoming SIP connection from unknown peer to 580408") in new stack
    -- Executing [580408@from-sip-external:2] Set("SIP/192.168.65.100-000001c9", "DID=580408") in new stack
    -- Executing [580408@from-sip-external:3] Goto("SIP/192.168.65.100-000001c9", "s,1") in new stack
    -- Goto (from-sip-external,s,1)
    -- Executing [s@from-sip-external:1] GotoIf("SIP/192.168.65.100-000001c9", "1?checklang:noanonymous") in new stack
    -- Goto (from-sip-external,s,2)
    -- Executing [s@from-sip-external:2] GotoIf("SIP/192.168.65.100-000001c9", "0?setlanguage:from-trunk,580408,1") in new stack
    -- Goto (from-trunk,580408,1)
    -- Executing [580408@from-trunk:1] Set("SIP/192.168.65.100-000001c9", "__FROM_DID=580408") in new stack
    -- Executing [580408@from-trunk:2] Set("SIP/192.168.65.100-000001c9", "CHANNEL(language)=ru") in new stack
    -- Executing [580408@from-trunk:3] Gosub("SIP/192.168.65.100-000001c9", "cidlookup,cidlookup_3,1") in new stack
    -- Executing [cidlookup_3@cidlookup:1] ExecIf("SIP/192.168.65.100-000001c9", "1?Set(CALLERID(name)=Tokarev)") in new stack
    -- Executing [cidlookup_3@cidlookup:2] Return("SIP/192.168.65.100-000001c9", "") in new stack
    -- Executing [580408@from-trunk:4] ExecIf("SIP/192.168.65.100-000001c9", "0 ?Set(CALLERID(name)=XXXXXXXXXXX)") in new stack
    -- Executing [580408@from-trunk:5] Set("SIP/192.168.65.100-000001c9", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [580408@from-trunk:6] Set("SIP/192.168.65.100-000001c9", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [580408@from-trunk:7] Goto("SIP/192.168.65.100-000001c9", "ivr-6,s,1") in new stack
    -- Goto (ivr-6,s,1)
    -- Executing [s@ivr-6:1] Set("SIP/192.168.65.100-000001c9", "MSG=ru/zdravstujte&ru/dial-exten-tone") in new stack
    -- Executing [s@ivr-6:2] Set("SIP/192.168.65.100-000001c9", "LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-6:3] Set("SIP/192.168.65.100-000001c9", "__DIR-CONTEXT=") in new stack
    -- Executing [s@ivr-6:4] Set("SIP/192.168.65.100-000001c9", "_IVR_CONTEXT_ivr-6=") in new stack
    -- Executing [s@ivr-6:5] Set("SIP/192.168.65.100-000001c9", "_IVR_CONTEXT=ivr-6") in new stack
    -- Executing [s@ivr-6:6] GotoIf("SIP/192.168.65.100-000001c9", "0?begin") in new stack
    -- Executing [s@ivr-6:7] Answer("SIP/192.168.65.100-000001c9", "") in new stack
Audio is at 5060
Adding codec 0x100 (g729) to SDP
Adding non-codec 0x1 (telephone-event) to SDP

<--- Reliably Transmitting (no NAT) to 192.168.65.100:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.65.100:5060;branch=z9hG4bK1db953b3;received=192.168.65.100;rport=5060
From: "XXXXXXXXX" <sip:XXXXXXXXXX@192.168.65.100>;tag=as0cd9a891
To: <sip:580408@192.168.50.248:5060>;tag=as4f172675
Call-ID: 1e742b070e1a84d01c2a953b4d133fd0@192.168.65.100
CSeq: 102 INVITE
Server: Asterisk PBX 1.8.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:580408@192.168.50.248:5060>
Content-Type: application/sdp
Content-Length: 261

v=0
o=root 1241781591 1241781591 IN IP4 192.168.50.248
s=Asterisk PBX 1.8.0
c=IN IP4 192.168.50.248
t=0 0
m=audio 18052 RTP/AVP 18 101
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

<------------>

<--- SIP read from UDP:192.168.65.100:5060 --->
ACK sip:580408@192.168.50.248:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.65.100:5060;branch=z9hG4bK24caf21b;rport
Max-Forwards: 70
From: "XXXXXXXXX" <sip:XXXXXXXX@192.168.65.100>;tag=as0cd9a891
To: <sip:580408@192.168.50.248:5060>;tag=as4f172675
Contact: <sip:XXXXXXXX@192.168.65.100>
Call-ID: 1e742b070e1a84d01c2a953b4d133fd0@192.168.65.100
CSeq: 102 ACK
User-Agent: SVTK IP PBX www.svtk.ru
Content-Length: 0

<------------->
--- (10 headers 0 lines) ---
    -- Executing [s@ivr-6:8] Wait("SIP/192.168.65.100-000001c9", "1") in new stack
    -- Executing [s@ivr-6:9] Set("SIP/192.168.65.100-000001c9", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3.000
    -- Executing [s@ivr-6:10] Set("SIP/192.168.65.100-000001c9", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10.000
    -- Executing [s@ivr-6:11] Set("SIP/192.168.65.100-000001c9", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-6:12] ExecIf("SIP/192.168.65.100-000001c9", "1?Background(ru/zdravstujte&ru/dial-exten-tone)") in new stack
    -- <SIP/192.168.65.100-000001c9> Playing 'ru/zdravstujte.alaw' (language 'ru')
    -- <SIP/192.168.65.100-000001c9> Playing 'ru/dial-exten-tone.alaw' (language 'ru')
  == CDR updated on SIP/192.168.65.100-000001c9
    -- Executing [100@ivr-6:1] Macro("SIP/192.168.65.100-000001c9", "user-callerid,SKIPTTL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/192.168.65.100-000001c9", "AMPUSER=XXXXXXXXX") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/192.168.65.100-000001c9", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/192.168.65.100-000001c9", "1?Set(REALCALLERIDNUM=XXXXXXXXXXX)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/192.168.65.100-000001c9", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/192.168.65.100-000001c9", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/192.168.65.100-000001c9", "1?report") in new stack
    -- Goto (macro-user-callerid,s,10)
    -- Executing [s@macro-user-callerid:10] GotoIf("SIP/192.168.65.100-000001c9", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [s@macro-user-callerid:19] NoOp("SIP/192.168.65.100-000001c9", "Using CallerID "Tokarev" <XXXXXXXX>") in new stack
    -- Executing [100@ivr-6:2] NoOp("SIP/192.168.65.100-000001c9", "Calling Out Route: LDK-exten") in new stack
    -- Executing [100@ivr-6:3] Set("SIP/192.168.65.100-000001c9", "INTRACOMPANYROUTE=YES") in new stack
    -- Executing [100@ivr-6:4] Set("SIP/192.168.65.100-000001c9", "MOHCLASS=default") in new stack
    -- Executing [100@ivr-6:5] ExecIf("SIP/192.168.65.100-000001c9", "1?Set(TRUNKCIDOVERRIDE=XXXXXXXXXX)") in new stack
    -- Executing [100@ivr-6:6] Set("SIP/192.168.65.100-000001c9", "_NODEST=") in new stack
    -- Executing [100@ivr-6:7] Macro("SIP/192.168.65.100-000001c9", "record-enable,,OUT,") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/192.168.65.100-000001c9", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("SIP/192.168.65.100-000001c9", "1?MacroExit()") in new stack
    -- Executing [100@ivr-6:8] Macro("SIP/192.168.65.100-000001c9", "dialout-trunk,3,100,") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("SIP/192.168.65.100-000001c9", "DIAL_TRUNK=3") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/192.168.65.100-000001c9", "0?sub-pincheck,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/192.168.65.100-000001c9", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("SIP/192.168.65.100-000001c9", "DIAL_NUMBER=100") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("SIP/192.168.65.100-000001c9", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("SIP/192.168.65.100-000001c9", "OUTBOUND_GROUP=OUT_3") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/192.168.65.100-000001c9", "0?nomax") in new stack
    -- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/192.168.65.100-000001c9", "0?chanfull") in new stack
    -- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/192.168.65.100-000001c9", "1?skipoutcid") in new stack
    -- Goto (macro-dialout-trunk,s,12)
    -- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/192.168.65.100-000001c9", "1?sub-flp-3,s,1") in new stack
    -- Executing [s@sub-flp-3:1] ExecIf("SIP/192.168.65.100-000001c9", "0?Set(TARGET_FLP43=7100)") in new stack
    -- Executing [s@sub-flp-3:2] GotoIf("SIP/192.168.65.100-000001c9", "0?match") in new stack
    -- Executing [s@sub-flp-3:3] ExecIf("SIP/192.168.65.100-000001c9", "1?Return()") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("SIP/192.168.65.100-000001c9", "OUTNUM=100") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("SIP/192.168.65.100-000001c9", "custom=DAHDI/g0") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/192.168.65.100-000001c9", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Ttr)") in new stack
    -- Executing [s@macro-dialout-trunk:16] Macro("SIP/192.168.65.100-000001c9", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/192.168.65.100-000001c9", "") in new stack
    -- Executing [s@macro-dialout-trunk:17] GotoIf("SIP/192.168.65.100-000001c9", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/192.168.65.100-000001c9", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:19] Dial("SIP/192.168.65.100-000001c9", "DAHDI/g0/100,300,Ttr") in new stack
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called g0/100
    -- Hungup 'DAHDI/i1/100-10e'
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:20] NoOp("SIP/192.168.65.100-000001c9", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 0") in new stack
    -- Executing [s@macro-dialout-trunk:21] Goto("SIP/192.168.65.100-000001c9", "s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("SIP/192.168.65.100-000001c9", "RC=0") in new stack
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("SIP/192.168.65.100-000001c9", "0,1") in new stack
    -- Goto (macro-dialout-trunk,0,1)
    -- Executing [0@macro-dialout-trunk:1] Goto("SIP/192.168.65.100-000001c9", "continue,1") in new stack
    -- Goto (macro-dialout-trunk,continue,1)
    -- Executing [continue@macro-dialout-trunk:1] GotoIf("SIP/192.168.65.100-000001c9", "1?noreport") in new stack
    -- Goto (macro-dialout-trunk,continue,3)
    -- Executing [continue@macro-dialout-trunk:3] NoOp("SIP/192.168.65.100-000001c9", "TRUNK Dial failed due to CHANUNAVAIL HANGUPCAUSE: 0 - failing through to other trunks") in new stack
    -- Executing [continue@macro-dialout-trunk:4] Set("SIP/192.168.65.100-000001c9", "CALLERID(number)=") in new stack
    -- Executing [100@ivr-6:9] Macro("SIP/192.168.65.100-000001c9", "outisbusy,") in new stack
    -- Executing [s@macro-outisbusy:1] Progress("SIP/192.168.65.100-000001c9", "") in new stack
    -- Executing [s@macro-outisbusy:2] GotoIf("SIP/192.168.65.100-000001c9", "0?emergency,1") in new stack
    -- Executing [s@macro-outisbusy:3] GotoIf("SIP/192.168.65.100-000001c9", "1?intracompany,1") in new stack
    -- Goto (macro-outisbusy,intracompany,1)
    -- Executing [intracompany@macro-outisbusy:1] Playback("SIP/192.168.65.100-000001c9", "all-circuits-busy-now&pls-try-call-later, noanswer") in new stack
    -- <SIP/192.168.65.100-000001c9> Playing 'all-circuits-busy-now.alaw' (language 'ru')
    -- <SIP/192.168.65.100-000001c9> Playing 'pls-try-call-later.alaw' (language 'ru')

<--- SIP read from UDP:192.168.65.100:5060 --->
BYE sip:580408@192.168.50.248:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.65.100:5060;branch=z9hG4bK049c6c7d;rport
Max-Forwards: 70
From: "XXXXXXXXXX" <sip:XXXXXXXXXX@192.168.65.100>;tag=as0cd9a891
To: <sip:580408@192.168.50.248:5060>;tag=as4f172675
Call-ID: 1e742b070e1a84d01c2a953b4d133fd0@192.168.65.100
CSeq: 103 BYE
User-Agent: SVTK IP PBX www.svtk.ru
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
Content-Length: 0

<------------->
--- (11 headers 0 lines) ---
Sending to 192.168.65.100:5060 (no NAT)
Scheduling destruction of SIP dialog '1e742b070e1a84d01c2a953b4d133fd0@192.168.65.100' in 32000 ms (Method: BYE)

<--- Transmitting (no NAT) to 192.168.65.100:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.65.100:5060;branch=z9hG4bK049c6c7d;received=192.168.65.100;rport=5060
From: "XXXXXXXX" <sip:XXXXXXXXXX@192.168.65.100>;tag=as0cd9a891
To: <sip:580408@192.168.50.248:5060>;tag=as4f172675
Call-ID: 1e742b070e1a84d01c2a953b4d133fd0@192.168.65.100
CSeq: 103 BYE
Server: Asterisk PBX 1.8.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0


<------------>
  == Spawn extension (macro-outisbusy, intracompany, 1) exited non-zero on 'SIP/192.168.65.100-000001c9' in macro 'outisbusy'
  == Spawn extension (ivr-6, 100, 9) exited non-zero on 'SIP/192.168.65.100-000001c9'
    -- Executing [h@ivr-6:1] Hangup("SIP/192.168.65.100-000001c9", "") in new stack
  == Spawn extension (ivr-6, h, 1) exited non-zero on 'SIP/192.168.65.100-000001c9'
Really destroying SIP dialog '1e742b070e1a84d01c2a953b4d133fd0@192.168.65.100' Method: BYE

<--- SIP read from UDP:192.168.65.100:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.50.248:5060;branch=z9hG4bK52fca98e;received=192.168.50.248
From: <sip:10199@voip.svtk.ru>;tag=as497afbfc
To: <sip:10199@voip.svtk.ru>;tag=as7ad4932a
Call-ID: 07db779166f0ec4e344aa11f2f477e22@192.168.50.248
CSeq: 104 REGISTER
Server: SVTK IP PBX www.svtk.ru
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="2b502d0d"
Content-Length: 0

<------------->
--- (11 headers 0 lines) ---

<--- SIP read from UDP:192.168.65.100:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.50.248:5060;branch=z9hG4bK43fb6b29;received=192.168.50.248
From: <sip:10199@voip.svtk.ru>;tag=as7c2c22b7
To: <sip:10199@voip.svtk.ru>;tag=as7ad4932a
Call-ID: 07db779166f0ec4e344aa11f2f477e22@192.168.50.248
CSeq: 105 REGISTER
Server: SVTK IP PBX www.svtk.ru
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Expires: 120
Contact: <sip:s@192.168.50.248:5060>;expires=120
Date: Fri, 10 Dec 2010 09:51:05 GMT
Content-Length: 0

<------------->
--- (13 headers 0 lines) ---

Теперь тоже самое по pri
Код: выделить все

    -- Executing [580408@from-sip-external:2] Set("SIP/192.168.65.100-000001c3", "DID=580408") in new stack
    -- Executing [580408@from-sip-external:3] Goto("SIP/192.168.65.100-000001c3", "s,1") in new stack
    -- Goto (from-sip-external,s,1)
    -- Executing [s@from-sip-external:1] GotoIf("SIP/192.168.65.100-000001c3", "1?checklang:noanonymous") in new stack
    -- Goto (from-sip-external,s,2)
    -- Executing [s@from-sip-external:2] GotoIf("SIP/192.168.65.100-000001c3", "0?setlanguage:from-trunk,580408,1") in new stack
    -- Goto (from-trunk,580408,1)
    -- Executing [580408@from-trunk:1] Set("SIP/192.168.65.100-000001c3", "__FROM_DID=580408") in new stack
    -- Executing [580408@from-trunk:2] Set("SIP/192.168.65.100-000001c3", "CHANNEL(language)=ru") in new stack
    -- Executing [580408@from-trunk:3] Gosub("SIP/192.168.65.100-000001c3", "cidlookup,cidlookup_3,1") in new stack
    -- Executing [cidlookup_3@cidlookup:1] ExecIf("SIP/192.168.65.100-000001c3", "1?Set(CALLERID(name)=Tokarev)") in new stack
    -- Executing [cidlookup_3@cidlookup:2] Return("SIP/192.168.65.100-000001c3", "") in new stack
    -- Executing [580408@from-trunk:4] ExecIf("SIP/192.168.65.100-000001c3", "0 ?Set(CALLERID(name)=XXXXXXXXX)") in new stack
    -- Executing [580408@from-trunk:5] Set("SIP/192.168.65.100-000001c3", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [580408@from-trunk:6] Set("SIP/192.168.65.100-000001c3", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [580408@from-trunk:7] Goto("SIP/192.168.65.100-000001c3", "ivr-6,s,1") in new stack
    -- Goto (ivr-6,s,1)
    -- Executing [s@ivr-6:1] Set("SIP/192.168.65.100-000001c3", "MSG=ru/zdravstujte&ru/dial-exten-tone") in new stack
    -- Executing [s@ivr-6:2] Set("SIP/192.168.65.100-000001c3", "LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-6:3] Set("SIP/192.168.65.100-000001c3", "__DIR-CONTEXT=") in new stack
    -- Executing [s@ivr-6:4] Set("SIP/192.168.65.100-000001c3", "_IVR_CONTEXT_ivr-6=") in new stack
    -- Executing [s@ivr-6:5] Set("SIP/192.168.65.100-000001c3", "_IVR_CONTEXT=ivr-6") in new stack
    -- Executing [s@ivr-6:6] GotoIf("SIP/192.168.65.100-000001c3", "0?begin") in new stack
    -- Executing [s@ivr-6:7] Answer("SIP/192.168.65.100-000001c3", "") in new stack
    -- Executing [s@ivr-6:8] Wait("SIP/192.168.65.100-000001c3", "1") in new stack
    -- Executing [s@ivr-6:9] Set("SIP/192.168.65.100-000001c3", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3.000
    -- Executing [s@ivr-6:10] Set("SIP/192.168.65.100-000001c3", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10.000
    -- Executing [s@ivr-6:11] Set("SIP/192.168.65.100-000001c3", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-6:12] ExecIf("SIP/192.168.65.100-000001c3", "1?Background(ru/zdravstujte&ru/dial-exten-tone)") in new stack
    -- <SIP/192.168.65.100-000001c3> Playing 'ru/zdravstujte.alaw' (language 'ru')
    -- <SIP/192.168.65.100-000001c3> Playing 'ru/dial-exten-tone.alaw' (language 'ru')
  == CDR updated on SIP/192.168.65.100-000001c3
    -- Executing [100@ivr-6:1] Macro("SIP/192.168.65.100-000001c3", "user-callerid,SKIPTTL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/192.168.65.100-000001c3", "AMPUSER=XXXXXXXXX") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/192.168.65.100-000001c3", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/192.168.65.100-000001c3", "1?Set(REALCALLERIDNUM=XXXXXXXXX)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/192.168.65.100-000001c3", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/192.168.65.100-000001c3", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/192.168.65.100-000001c3", "1?report") in new stack
    -- Goto (macro-user-callerid,s,10)
    -- Executing [s@macro-user-callerid:10] GotoIf("SIP/192.168.65.100-000001c3", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [s@macro-user-callerid:19] NoOp("SIP/192.168.65.100-000001c3", "Using CallerID "Tokarev" <XXXXXXXXX>") in new stack
    -- Executing [100@ivr-6:2] NoOp("SIP/192.168.65.100-000001c3", "Calling Out Route: LDK-exten") in new stack
    -- Executing [100@ivr-6:3] Set("SIP/192.168.65.100-000001c3", "INTRACOMPANYROUTE=YES") in new stack
    -- Executing [100@ivr-6:4] Set("SIP/192.168.65.100-000001c3", "MOHCLASS=default") in new stack
    -- Executing [100@ivr-6:5] ExecIf("SIP/192.168.65.100-000001c3", "1?Set(TRUNKCIDOVERRIDE=3519438177)") in new stack
    -- Executing [100@ivr-6:6] Set("SIP/192.168.65.100-000001c3", "_NODEST=") in new stack
    -- Executing [100@ivr-6:7] Macro("SIP/192.168.65.100-000001c3", "record-enable,,OUT,") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/192.168.65.100-000001c3", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("SIP/192.168.65.100-000001c3", "1?MacroExit()") in new stack
    -- Executing [100@ivr-6:8] Macro("SIP/192.168.65.100-000001c3", "dialout-trunk,3,100,") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("SIP/192.168.65.100-000001c3", "DIAL_TRUNK=3") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/192.168.65.100-000001c3", "0?sub-pincheck,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/192.168.65.100-000001c3", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("SIP/192.168.65.100-000001c3", "DIAL_NUMBER=100") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("SIP/192.168.65.100-000001c3", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("SIP/192.168.65.100-000001c3", "OUTBOUND_GROUP=OUT_3") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/192.168.65.100-000001c3", "0?nomax") in new stack
    -- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/192.168.65.100-000001c3", "0?chanfull") in new stack
    -- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/192.168.65.100-000001c3", "1?skipoutcid") in new stack
    -- Goto (macro-dialout-trunk,s,12)
    -- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/192.168.65.100-000001c3", "1?sub-flp-3,s,1") in new stack
    -- Executing [s@sub-flp-3:1] ExecIf("SIP/192.168.65.100-000001c3", "0?Set(TARGET_FLP43=7100)") in new stack
    -- Executing [s@sub-flp-3:2] GotoIf("SIP/192.168.65.100-000001c3", "0?match") in new stack
    -- Executing [s@sub-flp-3:3] ExecIf("SIP/192.168.65.100-000001c3", "1?Return()") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("SIP/192.168.65.100-000001c3", "OUTNUM=100") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("SIP/192.168.65.100-000001c3", "custom=DAHDI/g0") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/192.168.65.100-000001c3", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Ttr)") in new stack
    -- Executing [s@macro-dialout-trunk:16] Macro("SIP/192.168.65.100-000001c3", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/192.168.65.100-000001c3", "") in new stack
    -- Executing [s@macro-dialout-trunk:17] GotoIf("SIP/192.168.65.100-000001c3", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/192.168.65.100-000001c3", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:19] Dial("SIP/192.168.65.100-000001c3", "DAHDI/g0/100,300,Ttr") in new stack
1 -- Making new call for cref 32952
    -- Requested transfer capability: 0x00 - SPEECH
1
1 > DL-DATA request
1 > Protocol Discriminator: Q.931 (8)  len=45
1 > TEI=0 Call Ref: len= 2 (reference 184/0xB8) (Sent from originator)
1 > Message Type: SETUP (5)
1 TEI=0 Transmitting N(S)=85, window is open V(A)=85 K=7
1
1 > Protocol Discriminator: Q.931 (8)  len=45
1 > TEI=0 Call Ref: len= 2 (reference 184/0xB8) (Sent from originator)
1 > Message Type: SETUP (5)
1 > [04 03 80 90 a3]
1 > Bearer Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer capability: Speech (0)
1 >                              Ext: 1  Trans mode/rate: 64kbps, circuit-mode (16)
1 >                                User information layer 1: A-Law (35)
1 > [18 03 a9 83 81]
1 > Channel ID (len= 5) [ Ext: 1  IntID: Implicit  Other(PRI)  Spare: 0  Exclusive  Dchan: 0
1 >                       ChanSel: As indicated in following octets
1 >                       Ext: 1  Coding: 0  Number Specified  Channel Type: 3
1 >                       Ext: 1  Channel: 1 Type: NET]
1 > [28 07 54 6f 6b 61 72 65 76]
1 > Display (len= 7) [ Tokarev ]
1 > [6c 0c 21 81 39 35 31 32 35 31 30 34 32 30]
1 > Calling Number (len=14) [ Ext: 0  TON: National Number (2)  NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
1 >                           Presentation: Presentation permitted, user number passed network screening (1)  'XXXXXXXXX' ]
1 > [70 04 91 31 30 30]
1 > Called Number (len= 6) [ Ext: 1  TON: International Number (1)  NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)  '100' ]
1 > [a1]
1 > Sending Complete (len= 1)
1 q931.c:5039 q931_setup: Call 32952 enters state 1 (Call Initiated).  Hold state: Idle
    -- Called g0/100
1 q931_hangup: other hangup
1 NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Call Initiated, peerstate Call Present, hold-state Idle
1 q931.c:4845 q931_disconnect: Call 32952 enters state 11 (Disconnect Request).  Hold state: Idle
1
1 > DL-DATA request
1 > Protocol Discriminator: Q.931 (8)  len=9
1 > TEI=0 Call Ref: len= 2 (reference 184/0xB8) (Sent from originator)
1 > Message Type: DISCONNECT (69)
1 TEI=0 Transmitting N(S)=86, window is open V(A)=85 K=7
1
1 > Protocol Discriminator: Q.931 (8)  len=9
1 > TEI=0 Call Ref: len= 2 (reference 184/0xB8) (Sent from originator)
1 > Message Type: DISCONNECT (69)
1 > [08 02 81 90]
1 > Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0  Location: Private network serving the local user (1)
1 >                  Ext: 1  Cause: Normal Clearing (16), class = Normal Event (1) ]
    -- Hungup 'DAHDI/i1/100-10c'
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:20] NoOp("SIP/192.168.65.100-000001c3", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 0") in new stack
    -- Executing [s@macro-dialout-trunk:21] Goto("SIP/192.168.65.100-000001c3", "s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)


Никакой ругани, тишь да гладь.
ПОэтому и туплю
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

Re: FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 10 дек 2010, 15:48

Код: выделить все
asterisk*CLI> core show translation recalc 10
         Recalculating Codec Translation (number of sample seconds: 10)

         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

           g723   gsm  ulaw  alaw g726aal2 adpcm  slin lpc10  g729 speex  ilbc  g726  g722 siren7 siren14 slin16  g719 speex16 testlaw
     g723     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
      gsm     -     -   799   700     3298  1098   699  3798  4798     -     -  3298  1498      -       -   2797     -       -     700
     ulaw     -  2000     -     1     2600   400     1  3100  4100     -     -  2600   800      -       -   2099     -       -       2
     alaw     -  2099   100     -     2699   499   100  3199  4199     -     -  2699   899      -       -   2198     -       -     101
g726aal2     -  3098  1199  1100        -  1498  1099  4198  5198     -     -  3698  1898      -       -   3197     -       -    1100
    adpcm     -  2099   200   101     2699     -   100  3199  4199     -     -  2699   899      -       -   2198     -       -     101
     slin     -  1999   100     1     2599   399     -  3099  4099     -     -  2599   799      -       -   2098     -       -       1
    lpc10     -  3898  1999  1900     4498  2298  1899     -  5998     -     -  4498  2698      -       -   3997     -       -    1900
     g729     -  3398  1499  1400     3998  1798  1399  4498     -     -     -  3998  2198      -       -   3497     -       -    1400
    speex     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
     ilbc     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
     g726     -  3098  1199  1100     3698  1498  1099  4198  5198     -     -     -  1898      -       -   3197     -       -    1100
     g722     -  3198  1299  1200     3798  1598  1199  4298  5298     -     -  3798     -      -       -   1299     -       -    1200
   siren7     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
  siren14     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
   slin16     -  4597  2698  2599     5197  2997  2598  5697  6697     -     -  5197  1399      -       -      -     -       -    2599
     g719     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
  speex16     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -     -       -       -
  testlaw     -  2099   200   101     2699   499   100  3199  4199     -     -  2699   899      -       -   2198     -       -       -

Еще раз повторюсь. звонки sipphone(g729)->Dahdi проходят.
Звонки с сип-транка, на dahdi со снятой intra-company, проходят
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

Re: FreePBX intra-company route преобразование кодеков

Сообщение ded » 10 дек 2010, 18:18

Дело не в кодеках, а в трансляции/подстановке CallerID. Не смущает, что входящий в формате National диалплана, а в стоорону 100-го уже International?

1 > Calling Number (len=14) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
1 > Presentation: Presentation permitted, user number passed network screening (1) 'XXXXXXXXX' ]
1 > [70 04 91 31 30 30]
1 > Called Number (len= 6) [ Ext: 1 TON: International Number (1) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) '100' ]
1 > [a1]
1 > Sending Complete (len= 1)
1 q931.c:5039 q931_setup: Call 32952 enters state 1 (Call Initiated). Hold state: Idle
-- Called g0/100

При соединении ясно видно, что имеет место запрос на Disconnect

1 q931_hangup: other hangup
1 NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Call Initiated, peerstate Call Present, hold-state Idle
1 q931.c:4845 q931_disconnect: Call 32952 enters state 11 (Disconnect Request). Hold state: Idle
поэтому и ругани не видно.
Когда ставишь птичку inter-company route - то нет подмены CallerID.

-- Hungup 'DAHDI/i1/100-10c' - ну и это заинтересовало. Был Dial(DAHDI/g0/100 а стал DAHDI/i1/100

А что заставило ставить именно 1.8 + 2.8 в далёком морозном Магнитогорске? Почему прыжок вверх от проверенных надёжных решений?
ded
 
Сообщений: 15838
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX intra-company route преобразование кодеков

Сообщение Eugene » 11 дек 2010, 07:26

ded писал(а):Дело не в кодеках, а в трансляции/подстановке CallerID. Не смущает, что входящий в формате National диалплана, а в стоорону 100-го уже International?
...
При соединении ясно видно, что имеет место запрос на Disconnect


Как бы вам сказать, смущало бы, если б звонки в сторону LG не проходили совсем, однако они проходят с внутренних сипфонов астера, установке кодека сип-транка в alaw или снятии галки intra-company. Сменил на National, разницы никакой
...Когда ставишь птичку inter-company route - то нет подмены CallerID...

intra-company совершенно верно, нету, но я тупо поставил на исходящем маршруте CallerID совпадающим с входящим, то бишь даже при снятой галке, лыжа получала Calling Party точно такой же как оригинальный и звонки тем не менее проходили, следовательно формат CallerID значения не имеет.
-- Hungup 'DAHDI/i1/100-10c' - ну и это заинтересовало. Был Dial(DAHDI/g0/100 а стал DAHDI/i1/100

Всегда так, до версии 1.8, это выглядело как Dahdi/1-1/100, то бишь dial шёл в группу g0, в коей выбирался первый свободный канал. С версией 1.8 сменилась версия LibPRI и отображение канала немного изменилось.
А что заставило ставить именно 1.8 + 2.8 в далёком морозном Магнитогорске? Почему прыжок вверх от проверенных надёжных решений?

Нет пределов совершенству :)
Собственно, никаких глюков переход не вызвал.
Да и описываемый выше глюк не особо парит, на alaw все работает замечательно, просто хотелось как-то прояснить его природу.
Eugene
 
Сообщений: 24
Зарегистрирован: 19 ноя 2010, 08:13

След.

Вернуться в Готовые VoIP дистрибутивы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH