Через что * с voip-платой лучше дружить будет?

Разработка и отладка Asterisk и его приложений.

Модераторы: Admins, Модераторы

Ответить
Vladimir_Luchko
Сообщения: 3
Зарегистрирован: 23 ноя 2007, 10:59

Через что * с voip-платой лучше дружить будет?

Сообщение Vladimir_Luchko » 23 ноя 2007, 11:19

Исходные данные:
1. Есть embedded платформа (mipsel), на которой крутится астериск.
2. Есть voip-плата, которая
- может кодировать поток
- встроен эходав
- имеет FXO / FXS каналы
- драйвер платы предоставляет интерфейс к ней через файлы устройств (каналов)
- мы можем с этих файлов читать события (on/offhook, ringing etc.)
- мы можем читать с них (или писать в них) данные в виде RTP-пакетов

Нужно подружить эту плату с астериск, реализовав возможноти:
1. Подключение к PSTN (через FXO-порты )
2. Подключение к обычным телефонам ( через FXS-порты )
3. Выход со всего этого в интернет.

Предполагаемые решения:
1. Использовать zaptel-интерфейс.
- Похоже, что в таком случае придётся переписывать во многом сам заптел да и драйвер платы переделывать довольно серьёзно. Плюс все фичи платы (кодеки и т.д.) через заптел будет довольно проблематично задействовать.
2. Писать прослойку в user-space, имитирующую софтовый телефон и потключаться через chan_sip
- Много чего писать, вроде как нужно использовать sip-stack, а он у * есть...
3. Ваш вариант.

P.S. Я в мире telecom совсем не давно, так что буду рад вашим советам - как лучше сделать то, что мне нужно.

ys
Модератор
Сообщения: 688
Зарегистрирован: 28 апр 2005, 10:00
Откуда: Петербург
Контактная информация:

Сообщение ys » 23 ноя 2007, 12:03

Что за плата?
Есть ли к ней API (kernel API)?
Проще (IMHO) написать модуль к zaptel, сам zaptel не нужно переписывать.

Vladimir_Luchko
Сообщения: 3
Зарегистрирован: 23 ноя 2007, 10:59

Сообщение Vladimir_Luchko » 23 ноя 2007, 18:34

Что за плата?
Плата собственного производства. На борту чипы VINETIC-2CPE от Infineon плюс всяческая к ним обвязка.
Есть ли к ней API (kernel API)?
Конечно есть. Но драйвер на чип, а не на плату - я его дорабатывать ещё буду.
Проще (IMHO) написать модуль к zaptel, сам zaptel не нужно переписывать.
Насколько я успел ознакомиться с заптел, я увидел следующие трудности:
1. В CHUNKS пишется поток в x-law, что делает проблематичным использовать хардварные кодеки самой платы.
2. Чип генерит RTP-пакеты (их же и на входе канала ожидает), так что для коннекта с заптелом придётся RTP заголовки то резать, то самому рисовать... вобщем не по-людски это как-то :)
Для решения этих проблем необходимо будет (имхо) изрядно порезать заптел. Хотя возможно я крупно ошибаюсь. Как уже говорил - опыта в этом ноль.. :(

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 24 ноя 2007, 07:25

У диджиума есть платы с кодеками для Zaptel, советую посмотреть на codec_zap.c, возможно что-то для решения проблемы найдется. Ещё советую, если английский позволяет, написать непосредственно в почтовые списки рассылки.

PS. anest, как бы все-таки организовать раздел форума для общения по вопроспам разработки? А то уже много набирается тех, кто озадачен этими вопросами. А? Сделать доступ для разработчиков и модераторов... Остальные пусть читают, учатся...
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 24 ноя 2007, 07:40


Vladimir_Luchko
Сообщения: 3
Зарегистрирован: 23 ноя 2007, 10:59

Сообщение Vladimir_Luchko » 26 ноя 2007, 05:09

IgorG писал(а):У диджиума есть платы с кодеками для Zaptel, советую посмотреть на codec_zap.c, возможно что-то для решения проблемы найдется.
Я пользую asterisk-1.2.1 (такой уж в openwrt сейчас интегрирован). И, соответственно zaptel-1.2.12. В сорцах астериска нету ./codecs/codec_zap.c

Что посоветуете в этом случае? :)

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 26 ноя 2007, 09:04

Я бы посоветовал смотреть на текущую ветку, в которой ведется разработка:
http://svn.digium.com/view/asterisk/trunk/
Интересующий файл вот:
http://svn.digium.com/view/asterisk/tru ... iew=markup

Вообще для OpenWRT я видел собранный 1.4. 1.2.1 уж очень старая версия, со множеством багов. Вообще ведь плата не в OpenWRT втыкается, зачем привязываться? Веди разработку на обычном PC.
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Ответить