Страница 6 из 7

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 19:45
Glukinho
А еще попробуйте поставить телефонам ТОЛЬКО G711a, а транку - ТОЛЬКО G711u. Будет ли транскодинг?

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 19:49
Vlad1983
транскодинг будет

не во всякой железяке можно ограничить до одного кодека
бывает можно только приоритет выставить

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 20:15
byy
ded писал(а):А какие, говорите, аппараты?
Проверьте - возможно, когда с аппаратов - кодек идёт Федот, да не тот.
А именно, с битами silent suppression + comfort noise
https://tools.ietf.org/html/rfc3389
Appendix II to Recommendation G.711 (02/2000) - A comfort noise
payload definition for ITU-T G.711 use in packet-based
multimedia communication systems.
Asterisk такой не поймёт.
grandstream 1610/1620
вот тут моих знаний пока не хватает. ищу информацию по VAD. скудно как-то с ней
Vlad1983 писал(а):попробовать выставить

Код: Выделить всё

preferred_codec_only=yes
посмотрю, спасибо. но не совсем пока понятна суть этого параметра.
между телефоном и * кодек выбирается же раньше, нежели между * и провайдером. реинвайтов нет -> транскодинг.
Glukinho писал(а):А еще попробуйте поставить телефонам ТОЛЬКО G711a, а транку - ТОЛЬКО G711u. Будет ли транскодинг?
не будет. потому что провайдер просто не поднимет канал, т.к. он не принимает ulaw.

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 20:36
byy
ded писал(а):А какие, говорите, аппараты?
Проверьте - возможно, когда с аппаратов - кодек идёт Федот, да не тот.
А именно, с битами silent suppression + comfort noise
https://tools.ietf.org/html/rfc3389
Appendix II to Recommendation G.711 (02/2000) - A comfort noise
payload definition for ITU-T G.711 use in packet-based
multimedia communication systems.
Asterisk такой не поймёт.
так. почитал в общем про технологии. в телефонах VAD выключен, ну и плюс, если бы он был включен - проблемы бы были со всеми звонками?!
плюс указано, что работает только с g729, g723 (в grandstream)

пакетов с payload type 13 нет

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 20:51
Glukinho
byy писал(а):
Glukinho писал(а):А еще попробуйте поставить телефонам ТОЛЬКО G711a, а транку - ТОЛЬКО G711u. Будет ли транскодинг?
не будет. потому что провайдер просто не поднимет канал, т.к. он не принимает ulaw.
Ну так попробуйте наоборот, я же это имею в виду - жестко задать разные кодеки с двух сторон.

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 20:58
byy
Ну так попробуйте наоборот, я же это имею в виду - жестко задать разные кодеки с двух сторон.
с софтфона все нормально. с аппаратов будет односторонняя слышимость. но завтра ради интереса ткну) хотя тут без вариантов. alaw(beeline)-*-ulaw(client-phone) -> односторонняя слышимость..

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 21:08
Glukinho
Кажется, я понял, в чем дело. Вот моя теория:
1. От телефона приходит в SDP:

Код: Выделить всё

...
[b]m=audio 5004 RTP/AVP 0 8 18 9 2 101[/b]
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:9 G722/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:101 telephone-event/8000
То есть телефон как бы говорит нам: жду на порту 5004 либо G711A, либо G711U, либо еще другие кодеки, нам они не важны.


2. Далее, от Билайна приходит в SDP:

Код: Выделить всё

m=audio 12444 RTP/AVP 8 101
a=rtpmap:101 telephone-event/8000
a=rtpmap:8 PCMA/8000
Билайн ждет от нас только G711A, без вариантов.


3. Рассматриваем поток от телефона к Билайну: телефон шлет G711U, Билайну нужен G711A. Астериску ничего не остается, кроме как заниматься транскодингом, что видно на дампе: пришло от телефона U, ушло в Билайн A. С этим потоком все в порядке, что мы и видим (со стороны города слышно).


4. Рассматриваем поток от Билайна к телефон: Билайн шлет G711A (потому что в пире Билайна и в SDP прописано alaw,ulaw):

Код: Выделить всё

m=audio 13356 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
Астериск получает G711A, но знает, что телефону нужно либо A, либо U (см. пункт 1). Таким образом, заниматься транскодингом астериску не нужно, раз телефон все устраивает (зачем делать лишнюю работу). Астериск отправляет телефону поток как есть, в G711A.
Скорее всего, телефон ненормально отрабатывает ситуацию, когда "входящий" кодек не соответствует "исходящему", и вообще не воспроизводит входящий поток, что мы и видим (мы не слышим город).


5. А вот софтфон это умеет и поэтому нормально воспроизводит входящий поток.


Выводы из всего этого следующие:
1) оказывается, бывает так, что RTP "туда" и "обратно" бывает в разных кодеках. И для астера эта ситуация нормальна. Я этого не знал до сих пор. Вот уж, век живи...
2) как видим, излишняя свобода в выборе кодеков, маршрутов и прочего поведения системы только вредит. Поставьте всем G711A и не парьтесь, третий раз пишу ))
3) Астер не виноват. Виноват телефон. Попробуйте обновить паршивку ради интереса или взять другой телефон (хотя вы это уже сделали с помощью софтфона).

Фух... Пойду поем.

Re: односторонняя слышимость при исходящих

Добавлено: 03 мар 2016, 21:25
byy
крайне сомневаюсь, что * так пропускает. из чисто теоретической логики - если между * и телефоном уже поднят ulaw, приходящий не ulaw поток в любом случае должен пройти транскодинг в кодек целевого потока. открыл сейчас дамп астериск-телефон, от телефона идет шум в ulaw, от * приходит вызывной сигнал в ulaw, дальше происходит поднятие трубки и эти два потока обрываются появляется alaw от сервера к телефону в котором просто тишина.
прошу помощи гуру, ничего не понятно с ситуацией..

прошивка последняя, в наличии только грандстримы..

Re: односторонняя слышимость при исходящих

Добавлено: 04 мар 2016, 16:26
byy
я ошибался.
провел сейчас тест - второй провайдер, только alaw, телефон только ulaw. односторонняя слышимость.
но если меняем, провайдер только ulaw, телефон только alaw - все работает.

Re: односторонняя слышимость при исходящих

Добавлено: 05 мар 2016, 13:36
byy
посмотрел дампы, снятые вчера
получается следующее:
когда разные кодеки между телефоном и * и провайдером и *, то телефон передает к * звук в своем кодеке, а * к телефону в кодеке которым общается с провайдером
https://yadi.sk/d/TMcui_67pvmWL

в sip show channels соответственно указаны разные кодеки для клиента и провайдера во время разговора.
но почему * отдает клиенту в первоначальном кодеке(кодеке провайдера), а не в кодеке клиента. не понимаю, почему так происходит.

ded, что вы на этот счет можете сказать? хочется все же разобраться в этом..