AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

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

Asterisk-Dev 7 сообщений -
#1

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


Исходные данные:
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 совсем не давно, так что буду рад вашим советам - как лучше сделать то, что мне нужно.
#2

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

_________________
ys
http://voip.rus.net/
#3

Цитата:

Что за плата?

Плата собственного производства. На борту чипы VINETIC-2CPE от Infineon плюс всяческая к ним обвязка.
Цитата:

Есть ли к ней API (kernel API)?

Конечно есть. Но драйвер на чип, а не на плату - я его дорабатывать ещё буду.
Цитата:

Проще (IMHO) написать модуль к zaptel, сам zaptel не нужно переписывать.

Насколько я успел ознакомиться с заптел, я увидел следующие трудности:
1. В CHUNKS пишется поток в x-law, что делает проблематичным использовать хардварные кодеки самой платы.
2. Чип генерит RTP-пакеты (их же и на входе канала ожидает), так что для коннекта с заптелом придётся RTP заголовки то резать, то самому рисовать... вобщем не по-людски это как-то Smile
Для решения этих проблем необходимо будет (имхо) изрядно порезать заптел. Хотя возможно я крупно ошибаюсь. Как уже говорил - опыта в этом ноль.. Sad
#4

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

PS. anest, как бы все-таки организовать раздел форума для общения по вопроспам разработки? А то уже много набирается тех, кто озадачен этими вопросами. А? Сделать доступ для разработчиков и модераторов... Остальные пусть читают, учатся...

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#6

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

Я пользую asterisk-1.2.1 (такой уж в openwrt сейчас интегрирован). И, соответственно zaptel-1.2.12. В сорцах астериска нету ./codecs/codec_zap.c

Что посоветуете в этом случае? Smile
#7

Я бы посоветовал смотреть на текущую ветку, в которой ведется разработка:
http://svn.digium.com/view/asterisk/trunk/
Интересующий файл вот:
http://svn.digium.com/view/asterisk/trun ... 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