Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Разработка / Непонятная проблемка с кодеком G.711

Непонятная проблемка с кодеком G.711

Сообщений: 104

Непонятная проблемка с кодеком G.711

Пишется собственный SIP-клиент. Пишется на Дельфи. На настоящий момент реализован SIP и RTP стек, работаю над кодеками.
Начал с самого простого - с G.711. Кодирует-декодирует нормально. Сам себе посылаю RTP-стрим - все Ок. Кодек реализован втупую - берем буфер, снятый с микрофона (8 kHz, 16 bit mono) и загоняем в muLaw (получается 8 kHz, 8 bit mono). Но при работе с Астериском начинаются проблемы. Тестирую эхо-тест. Голос барышни слышно нормально, но присутствует небольшой треск. (при звонке Phoner-ом всё Ок.) После того, когда барышня заканчивает говорить, я слышу свой голос, но треск конкретно усиливается. Анализ сигнала показал, что ровно через 500 семплов (в раскодированном виде) в сигнале присутствуют 4 семпла (8 байт) значением 31612, т.е. почти максимум, что и приводит к треску. Судя по системности этого сигнала это какие-то метки, но какие именно, и как их обрабатывать, я пока не нашел. ITU-T G.711 имеется, включая оба приложения, но пока ничего не ясно. Может кто из гуру подскажет, в каком направлении копать?
2005-10-14 18:23

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Непонятная проблемка с кодеком G.711

Ты крут. :cool:
А зачем свой писать с нуля? Почему не взял один из открытых проектов?
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2005-10-14 23:25

Сообщений: 104

Re: Непонятная проблемка с кодеком G.711

Изначально стояла задача реализовать офисную IP телефонию именно на Дельфи. Почему именно на дельфи - долго обьяснять Сначала бросились искать по всяким torry.net и файлопомойкам на предмет того, что есть под дельфи. Результат - нет ни-че-го. Есть полтора проекта, использующих open h.323 в качестве подключаемых dll, и написаных ОЧЕНЬ криво. Купили одну, и получилось как в той поговорке "Не мала баба клопоту та купила порося". Предложения написать на С++ (на том же Билдере, VCL все-таки) начальством отметались сразу. Вот и пришлось залезать в "глубину наших глубин". :-) Кроме того, и самому интересно было, как оно внутри устроено. Сначала прорыл носом исходники и документацию H.323 и SIP и остановился на последнем, поскольку RTP тот же, а сигналлинг проще. Чтобы реализовать H.323, для начала надо реализовать свой ASN.1 компилер и всю иерархию классов, а уже потом приступать собственно к протоколу. Естествнно ASN.1 компилеров под Дельфи тоже нет. Все заточены под С++, в лучшем случае - под жабу. Точнее есть один, но он ОЧЕНЬ сырой, и не поддерживает полный синтаксис ASN.1. Если ему скормить .asn файл из open h.323, он загнется. Да и написан тоже... не очень. Выполнен в качестве аддона к ИДЕ Дельфи, встраемого в редактор, и без саппорта я в нем разобраться не смог. Начал писать свой парсер-компилер, но пока забросил - сначала SIP закончу, потом, если это еще будет актуально, реализую и Н.323 на Паскале :-)
2005-10-16 16:19

Сообщений: 104

Re: Непонятная проблемка с кодеком G.711

Проблема решена :-) Я лопухнулся с длиной RTP-заголовка. Там в конце идет массив из одного элемента типа u_int32_t, и я честно отвел под него 4 байта, а на самом деле если массив пуст, длина у него нулевая. Уменьшил на 4 байта - всё заработало, как часики
2005-10-17 10:47

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru