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

DTMF потеря первой цифры в транке

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

DTMF потеря первой цифры в транке

Сообщение lb426.2 » 19 мар 2019, 16:39

проблема с набором DTMF в SIP транк
есть два астериска с вот такими настройками:
======================================================
sip.conf asterisk1
[AST1U0001]
secret=password
type=friend
context=inc
host=dynamic
dtmfmode=info
disallow=all
allow=alaw

[asterisk1]
type=peer
host=192.168.38.7
context=inc
disallow=all
allow=alaw
dtmfmode=info
sendrpid=yes
trustrpid=yes
==========================================================
sip.conf asterisk2

[AST2U0001]
secret=password
type=friend
context=inc
host=dynamic
dtmfmode=info
disallow=all
allow=alaw

[asterisk2]
type=peer
host=192.168.38.9
context=inc
disallow=all
allow=alaw
dtmfmode=info
sendrpid=yes
trustrpid=yes
====================================================
extensions.conf на asterisk1
[inc]
exten => 300,1,Dial(SIP/${EXTEN}@asterisk2)
====================================================
extensions.conf на asterisk2
[inc]
exten => 300,1,Answer()
same => n,Dial(SIP/AST2U0001)
same => n,Hangup()

при попытке набрать с asterisk1 на asterisk2 вызов происходит, трубка снимается,
на вызывающем телефоне (asterisk1) набираю 1 2 3
в консоли астериск1 вижу что нажатие 1 есть
в консоли астериск2 вижу 1 только когда наберу цифру 2 на астерик1
и т.д.
т.е. до астериск2 не доходит одна цифра.
lb426.2
 
Сообщений: 13
Зарегистрирован: 19 мар 2019, 10:11

Re: DTMF потеря первой цифры в транке

Сообщение april22 » 20 мар 2019, 09:30

Не доходит, или не распознает?
Своими вопросами , вы загоняете меня в ГУГЛЬ.
april22
 
Сообщений: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: DTMF потеря первой цифры в транке

Сообщение lb426.2 » 20 мар 2019, 09:38

asterisk1 DTMF распознаёт, в консоли я это вижу
но пока не нажмёшъ следующую цифру первая не прилетает на asterisk2
такое чувство что там какая-то очередь, хотя никаких очередей там нет, конфигурация упрощена по максимуму.
lb426.2
 
Сообщений: 13
Зарегистрирован: 19 мар 2019, 10:11

Re: DTMF потеря первой цифры в транке

Сообщение ded » 20 мар 2019, 11:21

У вас не два, а четыре Астериска прописано. Два type=friend, и два type=peer
Вы бы почитали книжки, теорию, примеры разные.
lb426.2 писал(а):при попытке набрать с asterisk1 на asterisk2 вызов происходит, трубка снимается,
на вызывающем телефоне (asterisk1) набираю 1 2 3
в консоли астериск1 вижу что нажатие 1 есть
в консоли астериск2 вижу 1 только когда наберу цифру 2 на астерик1
и т.д.
т.е. до астериск2 не доходит одна цифра.
Вы бы привели хоть контекст inc, в который попадает входящий звонок. И было бы понятно, что обработка диал-плана будет ровно такая, как там указано, а не то, что вы нажимаете.
Новичком (тут) считается только что прочитавший Книгу о будущем телефонии и (далее по тексту).
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: DTMF потеря первой цифры в транке

Сообщение lb426.2 » 20 мар 2019, 13:04

ded: книгу прочитал. книжки, теорию, примеры - вот делаю.
про четыре астериска - не понял, это конфиги с двух серверов.
=====================================
ASTERISK1
sip.conf
[general]
context=unauthenticated
allowguest=no
srvlookup=no
udpbindaddr=0.0.0.0
tcpenable=no
nat=no
prematuremedia=yes
progressinband=yes
dtmfmode=info

[office-phone](!)
type=friend
context=inc
host=dynamic
disallow=all
allow=alaw

[AST1U0001](office-phone)
secret=password

[AST1U0002](office-phone)
secret=password

[asterisk2]
type=peer
host=192.168.38.9
defaultuser=asterisk1
secret=apples
context=inc
disallow=all
allow=alaw

extensions.conf
[inc]
exten => _XXXX,1,Dial(SIP/${EXTEN}@asterisk2)
==============================================
ASTERISK2
sip.conf
[general]
context=unauthenticated
allowguest=no
srvlookup=no
udpbindaddr=0.0.0.0
tcpenable=no
nat=no
prematuremedia=yes
progressinband=yes
dtmfmode=info

[office-phone](!)
type=friend
context=inc
host=dynamic
disallow=all
allow=alaw

[AST2U0001](office-phone)
secret=password

[AST2U0002](office-phone)
secret=password

[asterisk1]
type=peer
host=192.168.38.7
defaultuser=asterisk2
secret=apples
context=inc
disallow=all
allow=alaw

extensions.conf
[inc]
exten => 101,1,Dial(SIP/AST2U0001)

exten => 102,1,Dial(SIP/AST2U0002)

exten => 6598,1,Goto(demo-menu,s,1)

[demo-menu]
exten => s,1,Progress()
same => n(loop),Background(press-1&or&press-2&or&press-4)
same => n,WaitExten()
exten => 1,1,Playback(you-entered)
same => n,SayNumber(1)
same => n,Goto(s,loop)
exten => 2,1,Playback(you-entered)
same => n,SayNumber(2)
same => n,Goto(s,loop)
exten => 4,1,Playback(you-entered)
same => n,SayNumber(4)
same => n,Goto(s,loop)
exten => t,1,Playback(wait-moment)
same => n,Goto(s,loop)
========================================================

это всё что есть в конфигах
lb426.2
 
Сообщений: 13
Зарегистрирован: 19 мар 2019, 10:11

Re: DTMF потеря первой цифры в транке

Сообщение ded » 20 мар 2019, 18:20

Читайте ещё.
Если не понимаете - ещё. Не получилось? Ещё читатьи пробовать. У вас проблемы в понимании. Вот например: конфик на одном Астериске:
Код: выделить все
[AST1U0001]
secret=password
type=friend
context=inc
host=dynamic
dtmfmode=info
disallow=all
allow=alaw

[asterisk1]
type=peer
host=192.168.38.7
context=inc
disallow=all
allow=alaw
dtmfmode=info
sendrpid=yes
trustrpid=yes
Здесь описаны два пира, или один? Я вижу - два, а предполагается только один, так называемый asterisk2
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: DTMF потеря первой цифры в транке

Сообщение lb426.2 » 21 мар 2019, 09:44

вы взяли конфиг который я привёл в начале поста.
чуть выше последний конфиг, сделанный в точности по книге "Asterisk The Definitive Guide 4th Edition 2013", только изменены имена клиентских устройств.
всё равно первая цифра набора не уходит.
может ли влиять на это контекст ?
я отправляю и клиентские вызовы и то что должно уходить в транк в один контекст.
lb426.2
 
Сообщений: 13
Зарегистрирован: 19 мар 2019, 10:11

Re: DTMF потеря первой цифры в транке

Сообщение ded » 21 мар 2019, 11:16

А зачем вы даёте избыточную или неправильную информацию?
Вам нужно тестировать - делать вызов, и смотреть в консоль второго астериска. Там будет всё написано - причины и следствия.
Иначе - тут просто можно поговорить за жизнь, даже очень долго.
Первая или вторая цифра набора - видно даже лучше в дебаге. Включите
sip set debug on
и разберитесь с пакетом INVITE.
В полях From: и To: должно быть ясно видно кто звонит и кому звонит.
Также имеет место т.н. диал-план на телефоне, с которго совершается вызов. Обычно всякие Linksys SPA имеют свой мутный диал-план, который не отправляет сервисные коды со звёздочки, или номера определённой значности.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: DTMF потеря первой цифры в транке

Сообщение lb426.2 » 21 мар 2019, 11:58

я пытался удалить лишнюю инфу - не смог отредактировать самое первое сообщение.
у меня звонок проходит, но первая цифра DTMF после установления соединения не уходит в канал.
первая цифра уходит только после того как я нажал вторую цифру.
====================================================================================================
вот это вижу в консоли asterisk1:
asterisk1*CLI>
== Using SIP RTP CoS mark 5
> 0x7f15d4004300 -- Strict RTP learning after remote address set to: 192.168.38.11:60946
-- Executing [6598@LocalSets:1] Dial("SIP/AST1U0001-0000000a", "SIP/6598@asterisk2") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/6598@asterisk2
> 0x7f15ec005e70 -- Strict RTP learning after remote address set to: 192.168.38.9:5320
-- SIP/asterisk2-0000000b answered SIP/AST1U0001-0000000a
-- Channel SIP/asterisk2-0000000b joined 'simple_bridge' basic-bridge <2e226916-d221-4b77-8eb0-7815ef47c5b3>
-- Channel SIP/AST1U0001-0000000a joined 'simple_bridge' basic-bridge <2e226916-d221-4b77-8eb0-7815ef47c5b3>
> Bridge 2e226916-d221-4b77-8eb0-7815ef47c5b3: switching from simple_bridge technology to native_rtp
> Remotely bridged 'SIP/AST1U0001-0000000a' and 'SIP/asterisk2-0000000b' - media will flow directly between them
> 0x7f15ec005e70 -- Strict RTP learning after remote address set to: 192.168.38.9:5320
> 0x7f15d4004300 -- Strict RTP switching to RTP target address 192.168.38.11:60946 as source
[Mar 21 10:55:09] DTMF[1854][C-00000006]: channel.c:3801 __ast_read: DTMF end '1' received on SIP/AST1U0001-0000000a, duration 250 ms
[Mar 21 10:55:09] DTMF[1854][C-00000006]: channel.c:3828 __ast_read: DTMF begin emulation of '1' with duration 250 queued on SIP/AST1U0001-0000000a
[Mar 21 10:55:11] DTMF[1854][C-00000006]: channel.c:3921 __ast_read: DTMF end emulation of '1' queued on SIP/AST1U0001-0000000a
[Mar 21 10:55:11] DTMF[1854][C-00000006]: channel.c:3801 __ast_read: DTMF end '2' received on SIP/AST1U0001-0000000a, duration 250 ms
[Mar 21 10:55:11] DTMF[1854][C-00000006]: channel.c:3828 __ast_read: DTMF begin emulation of '2' with duration 250 queued on SIP/AST1U0001-0000000a
-- Channel SIP/AST1U0001-0000000a left 'native_rtp' basic-bridge <2e226916-d221-4b77-8eb0-7815ef47c5b3>
[Mar 21 10:55:15] DTMF[1854][C-00000006]: bridge_channel.c:790 bridge_channel_settle_owed_events: DTMF end '2' simulated to bridge 2e226916-d221-4b77-8eb0-7815ef47c5b3 because SIP/AST1U0001-0000000a left. Duration 4226 ms.
-- Channel SIP/asterisk2-0000000b left 'native_rtp' basic-bridge <2e226916-d221-4b77-8eb0-7815ef47c5b3>
> 0x7f15ec005e70 -- Strict RTP learning after remote address set to: 192.168.38.9:5320
== Spawn extension (LocalSets, 6598, 1) exited non-zero on 'SIP/AST1U0001-0000000a'
asterisk1*CLI>
=======================================================================================================================
а вот это в консоли астериск2
asterisk2*CLI>
== Using SIP RTP CoS mark 5
> 0x7f0dfc0076e0 -- Strict RTP learning after remote address set to: 192.168.38.7:13802
-- Executing [6598@incoming:1] Goto("SIP/asterisk1-00000005", "demo-menu,s,1") in new stack
-- Goto (demo-menu,s,1)
-- Executing [s@demo-menu:1] Answer("SIP/asterisk1-00000005", "") in new stack
> 0x7f0dfc0076e0 -- Strict RTP learning after remote address set to: 192.168.38.11:60946
-- Executing [s@demo-menu:2] BackGround("SIP/asterisk1-00000005", "press-1&or&press-2&or&press-3") in new stack
-- <SIP/asterisk1-00000005> Playing 'press-1.alaw' (language 'en')
> 0x7f0dfc0076e0 -- Strict RTP qualifying stream type: audio
> 0x7f0dfc0076e0 -- Strict RTP switching to RTP target address 192.168.38.11:60946 as source
-- <SIP/asterisk1-00000005> Playing 'or.alaw' (language 'en')
-- <SIP/asterisk1-00000005> Playing 'press-2.alaw' (language 'en')
-- <SIP/asterisk1-00000005> Playing 'or.alaw' (language 'en')
-- <SIP/asterisk1-00000005> Playing 'press-3.alaw' (language 'en')
-- Executing [s@demo-menu:3] WaitExten("SIP/asterisk1-00000005", "") in new stack
> 0x7f0dfc0076e0 -- Strict RTP learning complete - Locking on source address 192.168.38.11:60946
[Mar 21 10:55:11] DTMF[19990][C-00000006]: channel.c:3801 __ast_read: DTMF end '1' received on SIP/asterisk1-00000005, duration 1818 ms
[Mar 21 10:55:11] DTMF[19990][C-00000006]: channel.c:3871 __ast_read: DTMF end passthrough '1' on SIP/asterisk1-00000005
-- Executing [1@demo-menu:1] Playback("SIP/asterisk1-00000005", "you-entered") in new stack
-- <SIP/asterisk1-00000005> Playing 'you-entered.alaw' (language 'en')
-- Executing [1@demo-menu:2] SayNumber("SIP/asterisk1-00000005", "1") in new stack
-- <SIP/asterisk1-00000005> Playing 'digits/1.alaw' (language 'en')
-- Executing [1@demo-menu:3] Goto("SIP/asterisk1-00000005", "s,loop") in new stack
-- Goto (demo-menu,s,2)
-- Executing [s@demo-menu:2] BackGround("SIP/asterisk1-00000005", "press-1&or&press-2&or&press-3") in new stack
-- <SIP/asterisk1-00000005> Playing 'press-1.alaw' (language 'en')
-- <SIP/asterisk1-00000005> Playing 'or.alaw' (language 'en')
-- <SIP/asterisk1-00000005> Playing 'press-2.alaw' (language 'en')
> 0x7f0dfc0076e0 -- Strict RTP learning after remote address set to: 192.168.38.7:13802
== Spawn extension (demo-menu, s, 2) exited non-zero on 'SIP/asterisk1-00000005'
asterisk2*CLI>
lb426.2
 
Сообщений: 13
Зарегистрирован: 19 мар 2019, 10:11

Re: DTMF потеря первой цифры в транке

Сообщение ded » 21 мар 2019, 12:15

Я не увидел такой проблемы тут в логе. С Астериска1 позвонили на Астериск2 - вызов номера 6598
SIP/6598@asterisk2
и всё там исполнилось строго по контексту
Код: выделить все
[demo-menu]
exten => s,1,Progress()
same => n(loop),Background(press-1&or&press-2&or&press-4)
same => n,WaitExten()
exten => 1,1,Playback(you-entered)
same => n,SayNumber(1)
same => n,Goto(s,loop)
exten => 2,1,Playback(you-entered)
same => n,SayNumber(2)
same => n,Goto(s,loop)
exten => 4,1,Playback(you-entered)
same => n,SayNumber(4)
same => n,Goto(s,loop)
-- Executing [6598@incoming:1] Goto("SIP/asterisk1-00000005", "demo-menu,s,1") in new stack
-- Goto (demo-menu,s,1)
и там была нажата 1
-- <SIP/asterisk1-00000005> Playing 'you-entered.alaw' (language 'en')
-- Executing [1@demo-menu:2] SayNumber("SIP/asterisk1-00000005", "1") in new stack
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

След.

Вернуться в Вопросы новичков

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

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

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