DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 15.04.25 16:44
Оценка:
Уже много лет пользуюсь SIP, звоню с телефона под Android через SipDroid и CSipSimple. Раньше, пока везде были тоновые меню, DTMF нормально работал. Последний год пользоваться DTMF не приходилось, а несколько дней назад приспичило, и такое ощущение, что оно не работает — роботы не реагируют на посылки, продолжая талдычить дальше по порядку.

В CSipSimple есть выбор способа отправки событий DTMF — RTP, SIP, in-band. Перепробовал все — без толку.

Есть ли какие-нибудь способы проверить, как эти посылки воспринимаются на той стороне?

Если звонить на обычный телефон, то абонент слышит тональные посылки, но непонятно, в каком месте они преобразуются в звук.
Re: DTMF через SIP
От: Stanislaw K СССР  
Дата: 16.04.25 18:03
Оценка: 16 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Уже много лет пользуюсь SIP, звоню с телефона под Android через SipDroid и CSipSimple. Раньше, пока везде были тоновые меню, DTMF нормально работал. Последний год пользоваться DTMF не приходилось, а несколько дней назад приспичило, и такое ощущение, что оно не работает — роботы не реагируют на посылки, продолжая талдычить дальше по порядку.


ЕМ>В CSipSimple есть выбор способа отправки событий DTMF — RTP, SIP, in-band. Перепробовал все — без толку.


ЕМ>Есть ли какие-нибудь способы проверить, как эти посылки воспринимаются на той стороне?


ЕМ>Если звонить на обычный телефон, то абонент слышит тональные посылки, но непонятно, в каком месте они преобразуются в звук.



RTP(rfc2833) и SIP шлются в виде метаданных до коммутатора/PBX, и передаст ли он DTMF дальше зависит от настроек коммутатора/PBX.

in-band генерирует тон на клиенте и шлет его как голос (как если бы вы воспользовались blue box аппаратным тон генератором и попищали в микрофон трубки).
Может "не проходить", из-за сжатия в используемых кодеках и перекодировании по пути из одного в другой.

по возможности перейти на G.711 (a-law)
Все проблемы от жадности и глупости
Re[2]: DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 16.04.25 20:53
Оценка:
Здравствуйте, Stanislaw K, Вы писали:

SK>RTP(rfc2833) и SIP шлются в виде метаданных до коммутатора/PBX, и передаст ли он DTMF дальше зависит от настроек коммутатора/PBX.


А в каком виде шлются эти посылки при звонке с мобильника? Коммутатор или PBX может быть настроен так, чтобы вести себя по-разному при звонках по GSM и SIP?

SK>in-band генерирует тон на клиенте и шлет его как голос (как если бы вы воспользовались blue box аппаратным тон генератором и попищали в микрофон трубки).


Это я в курсе.

SK>Может "не проходить", из-за сжатия в используемых кодеках и перекодировании по пути из одного в другой.


Настолько, что речь не искажена, но тоновые посылки искажаются?

SK>по возможности перейти на G.711 (a-law)


Ни один из моих клиентов его не поддерживает. Есть только PCMA, PCMU, speex, G.722, BV16, GSM, SILK, AMR, AMR-WB, ISAC, ISBC.
Re: DTMF через SIP
От: Слава  
Дата: 16.04.25 21:59
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Есть ли какие-нибудь способы проверить, как эти посылки воспринимаются на той стороне?


ЕМ>Если звонить на обычный телефон, то абонент слышит тональные посылки, но непонятно, в каком месте они преобразуются в звук.


А при звонке с обычного мобильника тоновые сигналы на том же роботе работают?
Re[3]: DTMF через SIP
От: Stanislaw K СССР  
Дата: 17.04.25 05:33
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

SK>>RTP(rfc2833) и SIP шлются в виде метаданных до коммутатора/PBX, и передаст ли он DTMF дальше зависит от настроек коммутатора/PBX.


ЕМ>А в каком виде шлются эти посылки при звонке с мобильника?


С мобильника dtmf дублируется in-band и RTP. На мобильник in-band.

ЕМ>Коммутатор или PBX может быть настроен так, чтобы вести себя по-разному при звонках по GSM и SIP?


С большой вероятностью оно так и настроено — по SIP один набор кодеков, в GSM другой.

SK>>in-band генерирует тон на клиенте и шлет его как голос (как если бы вы воспользовались blue box аппаратным тон генератором и попищали в микрофон трубки).

ЕМ>Это я в курсе.

Этот вариант можно проверить. (попищать в трубку программным тон генератором).

SK>>Может "не проходить", из-за сжатия в используемых кодеках и перекодировании по пути из одного в другой.

ЕМ>Настолько, что речь не искажена, но тоновые посылки искажаются?

Да.

SK>>по возможности перейти на G.711 (a-law)

ЕМ>Ни один из моих клиентов его не поддерживает. Есть только PCMA, PCMU, speex, G.722, BV16, GSM, SILK, AMR, AMR-WB, ISAC, ISBC.

PCMА название одного из варианта реализации.

Больше нужно смотреть не потенциальные возможности клиента, а что поддерживается со стороны PBX, и что (из совпавшего) они решили использовать в этот раз.

По простому — на клиенте отключить заведомо не нужные кодеки и перезапустить его.
Все проблемы от жадности и глупости
Re[2]: DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.25 08:16
Оценка:
Здравствуйте, Слава, Вы писали:

С>А при звонке с обычного мобильника тоновые сигналы на том же роботе работают?


Да.
Re[4]: DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.25 09:11
Оценка:
Здравствуйте, Stanislaw K, Вы писали:

SK>С большой вероятностью оно так и настроено — по SIP один набор кодеков, в GSM другой.


Кодеки могут влиять на DTMF именно в плане обработки посылок в цифровом (кодированном в протоколе) формате? Я очень сильно сомневаюсь, что существуют кодеки, пропускающие мало-мальски разборчивую речь, но необратимо портящие DTMF.

SK>попищать в трубку программным тон генератором


Попищал — не срабатывает.

ЕМ>>Настолько, что речь не искажена, но тоновые посылки искажаются?


SK>Да.


Как это может получаться технически? Вы это наблюдали непосредственно, сравнивая волны/спектры, или просто предполагаете?

SK>PCMА название одного из варианта реализации.


Попробовал его — ничто не меняется.
Re[5]: DTMF через SIP
От: Stanislaw K СССР  
Дата: 17.04.25 09:23
Оценка: 16 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

SK>>С большой вероятностью оно так и настроено — по SIP один набор кодеков, в GSM другой.


ЕМ>Кодеки могут влиять на DTMF именно в плане обработки посылок в цифровом (кодированном в протоколе) формате? Я очень сильно сомневаюсь, что существуют кодеки, пропускающие мало-мальски разборчивую речь, но необратимо портящие DTMF.


Большинство кодеков портят DTMF. на стороне слушающей даже костыль придумали опцию "relax dtmf" расширяющую критерии детекции тонов (частоту/длительность).

SK>>попищать в трубку программным тон генератором

ЕМ>Попищал — не срабатывает.

Но сомнения остались?

ЕМ>>>Настолько, что речь не искажена, но тоновые посылки искажаются?

SK>>Да.
ЕМ>Как это может получаться технически? Вы это наблюдали непосредственно, сравнивая волны/спектры, или просто предполагаете?

До такой глубины анализа не доходил, ибо бессмысленно. портится оно на стороне мне не подконтрольной.

SK>>PCMА название одного из варианта реализации.

ЕМ>Попробовал его — ничто не меняется.

При этом другие кодеки нужно запретить.

А что в дебаг логах sip клиента? Если в клиенте нет логов то wireshark поанализировать сессию. он автоматически разложит на sip диалог и медиатрафик (если не шифрован) можно послушать.
Все проблемы от жадности и глупости
Re[6]: DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.25 12:24
Оценка:
Здравствуйте, Stanislaw K, Вы писали:

SK>Большинство кодеков портят DTMF.


Как именно портят? Я работаю со звуком не один десяток лет, и не представляю, как можно испортить тоновые посылки с частотами до 2 кГц, не испортив при этом речь.

Ну, или алгоритм распознавания посылок должен быть предельно дубовый, вроде поиска чистых фрагментов волны на фоне полной тишины, вместо анализа спектра.

SK>на стороне слушающей даже костыль придумали опцию "relax dtmf" расширяющую критерии детекции тонов (частоту/длительность).


Подозреваю, что ее придумали как раз для крайне дубовых алгоритмов, чтоб не переделывать их.

ЕМ>>Попищал — не срабатывает.


SK>Но сомнения остались?


А куда им деваться? Я ж пока не понял, в каком виде оно попадает (если вообще попадает) к тому роботу, что отвечает на том конце.

SK>До такой глубины анализа не доходил, ибо бессмысленно. портится оно на стороне мне не подконтрольной.


Стоило бы посмотреть, что именно приходит на Вашу сторону, хотя бы ради интереса. А на слух это как звучало?

ЕМ>>Попробовал его — ничто не меняется.


SK>При этом другие кодеки нужно запретить.


Зачем? Клиент отображает использование именно PCMA, на другие кодеки не переходит.

SK>А что в дебаг логах sip клиента?


Если DTMF настроен на "протокольный" режим — пишет, что отправляет соответствующие цифры. Если in-band — ничего не пишет.

В аудиозаписях звонков тонов DTMF нет даже в режиме in-band. То есть, код клиентов ленится их туда замешивать.

Сейчас попробовал в последнем MicroSIP под виндой — такая же хрень, в том числе с единственным кодеком G.711 a-law.

Какой-то весь этот клиентский софт явно кривой.

>wireshark поанализировать сессию. он автоматически разложит на sip диалог и медиатрафик (если не шифрован) можно послушать.


Руки дойдут — попробую.
Re[7]: DTMF через SIP
От: Stanislaw K СССР  
Дата: 17.04.25 15:35
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

SK>>Большинство кодеков портят DTMF.


ЕМ>Как именно портят? Я работаю со звуком не один десяток лет, и не представляю, как можно испортить тоновые посылки с частотами до 2 кГц, не испортив при этом речь.


Причины те же, по которым VoIP не работали голосовые модемы и факсы. Детали можно почитать на форумах телефонистов, за период широкого начала распространения IP телефонии 2000-2010 года.

ЕМ>Ну, или алгоритм распознавания посылок должен быть предельно дубовый, вроде поиска чистых фрагментов волны на фоне полной тишины, вместо анализа спектра.


Сдвиг частот +-5% человеческим ухом воспринимается нормально, а детектор двухтональной мультчастотной модуляции детектит запрещенные некоректные сочетания. Например ждет "*472#58", получает "52A10D5" и конечно такая посылка молча отбрасывается.

ЕМ>>>Попищал — не срабатывает.

SK>>Но сомнения остались?
ЕМ>А куда им деваться? Я ж пока не понял, в каком виде оно попадает (если вообще попадает) к тому роботу, что отвечает на том конце.

SK>>До такой глубины анализа не доходил, ибо бессмысленно. портится оно на стороне мне не подконтрольной.

ЕМ>Стоило бы посмотреть, что именно приходит на Вашу сторону, хотя бы ради интереса. А на слух это как звучало?

Звучало не нормально, но у меня не музыкальный слух.

ЕМ>>>Попробовал его — ничто не меняется.

SK>>При этом другие кодеки нужно запретить.
ЕМ>Зачем? Клиент отображает использование именно PCMA, на другие кодеки не переходит.

У меня нет веры в честность sip клиентов.

SK>>А что в дебаг логах sip клиента?

ЕМ>Если DTMF настроен на "протокольный" режим — пишет, что отправляет соответствующие цифры. Если in-band — ничего не пишет.

ЕМ>В аудиозаписях звонков тонов DTMF нет даже в режиме in-band. То есть, код клиентов ленится их туда замешивать.


Клиент может не писать часть потока.

ЕМ>Сейчас попробовал в последнем MicroSIP под виндой — такая же хрень, в том числе с единственным кодеком G.711 a-law.

ЕМ>Какой-то весь этот клиентский софт явно кривой.

Весь SIP кривой, особенно кривой когда один из концов не под твоим контролем.

>>wireshark поанализировать сессию. он автоматически разложит на sip диалог и медиатрафик (если не шифрован) можно послушать.

ЕМ>Руки дойдут — попробую.
Все проблемы от жадности и глупости
Re[8]: DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.25 17:18
Оценка:
Здравствуйте, Stanislaw K, Вы писали:

SK>Причины те же, по которым VoIP не работали голосовые модемы и факсы.


Причины не могут быть теми же. Модемы/факсы используют всю доступную в телефонии полосу, и намного более чувствительны к фазовым искажениям. DTMF использует полосу в несколько раз уже голосовой.

SK>Сдвиг частот +-5% человеческим ухом воспринимается нормально, а детектор двухтональной мультчастотной модуляции детектит запрещенные некоректные сочетания.


Для чего кодеку сдвигать частоты на 5%?

SK>Звучало не нормально, но у меня не музыкальный слух.


Для такого достаточно и технического.

SK>У меня нет веры в честность sip клиентов.


Если клиент обманывает, отображая текущий кодек, то что ему помешает обманывать, используя запрещенный?

ЕМ>>В аудиозаписях звонков тонов DTMF нет даже в режиме in-band. То есть, код клиентов ленится их туда замешивать.


SK>Клиент может не писать часть потока.


Ну да — он, судя по всему, смешивает то, что идет с микрофона, с тем, что идет на динамик, а добавлять туда посылки, генерируемые для линии, то ли забывает, то ли не считает нужным.
Re[9]: DTMF через SIP
От: Stanislaw K СССР  
Дата: 18.04.25 09:19
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

SK>>Причины те же, по которым VoIP не работали голосовые модемы и факсы.


ЕМ>Причины не могут быть теми же. Модемы/факсы используют всю доступную в телефонии полосу, и намного более чувствительны к фазовым искажениям. DTMF использует полосу в несколько раз уже голосовой.


Модемы и факсы не могли связаться даже понизив протокол до v.22 1200 mnp4/mnp6. (пакеты 32 бит, адаптивная скорость 300-9600)

SK>>Сдвиг частот +-5% человеческим ухом воспринимается нормально, а детектор двухтональной мультчастотной модуляции детектит запрещенные некоректные сочетания.

ЕМ>Для чего кодеку сдвигать частоты на 5%?

не думаю что это делается специально.

SK>>У меня нет веры в честность sip клиентов.

ЕМ>Если клиент обманывает, отображая текущий кодек, то что ему помешает обманывать, используя запрещенный?

Если кодек запрещен, в процессе рукопожатия он не анонсируется на другую сторону, она не жмет в него и не принимает (отбрасывает) такие пакеты.
и на него не перейдут, если клиент\сервер умеют адаптивно менять кодеки в течении сессии.

ЕМ>>>В аудиозаписях звонков тонов DTMF нет даже в режиме in-band. То есть, код клиентов ленится их туда замешивать.

SK>>Клиент может не писать часть потока.
ЕМ>Ну да — он, судя по всему, смешивает то, что идет с микрофона, с тем, что идет на динамик, а добавлять туда посылки, генерируемые для линии, то ли забывает, то ли не считает нужным.
Все проблемы от жадности и глупости
Re[10]: DTMF через SIP
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.25 09:51
Оценка:
Здравствуйте, Stanislaw K, Вы писали:

SK>Модемы и факсы не могли связаться даже понизив протокол до v.22 1200


Да хоть до 300 — в v.22 тоже фазовая модуляция. Именно фаза в первую очередь страдает при сжатии.

SK>>>Сдвиг частот +-5% человеческим ухом воспринимается нормально, а детектор двухтональной мультчастотной модуляции детектит запрещенные некоректные сочетания.

ЕМ>>Для чего кодеку сдвигать частоты на 5%?

SK>Если кодек запрещен, в процессе рукопожатия он не анонсируется на другую сторону


Я уже и запрещать пробовал, без толку.
Re[11]: DTMF через SIP
От: Stanislaw K СССР  
Дата: 18.04.25 10:12
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

SK>>Модемы и факсы не могли связаться даже понизив протокол до v.22 1200


ЕМ>Да хоть до 300 — в v.22 тоже фазовая модуляция. Именно фаза в первую очередь страдает при сжатии.


Да. Но после роста производительности CPU и перехода на G.711 alaw аналоговые модемы начали соединятся over VoIP на 14400.

SK>>>>Сдвиг частот +-5% человеческим ухом воспринимается нормально, а детектор двухтональной мультчастотной модуляции детектит запрещенные некоректные сочетания.

ЕМ>>>Для чего кодеку сдвигать частоты на 5%?
SK>>Если кодек запрещен, в процессе рукопожатия он не анонсируется на другую сторону

ЕМ>Я уже и запрещать пробовал, без толку.


С нашей стороны мы проверили всё. Теперь дело за техподдержкой оператора связи SIP аккаунта.
Все проблемы от жадности и глупости
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.