Через что * с 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 совсем не давно, так что буду рад вашим советам - как лучше сделать то, что мне нужно.
Есть ли к ней API (kernel API)?
Проще (IMHO) написать модуль к zaptel, сам zaptel не нужно переписывать.
_________________
ys
http://voip.rus.net/
| Цитата: |
| Что за плата? |
Плата собственного производства. На борту чипы VINETIC-2CPE от Infineon плюс всяческая к ним обвязка.
| Цитата: |
| Есть ли к ней API (kernel API)? |
Конечно есть. Но драйвер на чип, а не на плату - я его дорабатывать ещё буду.
| Цитата: |
| Проще (IMHO) написать модуль к zaptel, сам zaptel не нужно переписывать. |
Насколько я успел ознакомиться с заптел, я увидел следующие трудности:
1. В CHUNKS пишется поток в x-law, что делает проблематичным использовать хардварные кодеки самой платы.
2. Чип генерит RTP-пакеты (их же и на входе канала ожидает), так что для коннекта с заптелом придётся RTP заголовки то резать, то самому рисовать... вобщем не по-людски это как-то
Для решения этих проблем необходимо будет (имхо) изрядно порезать заптел. Хотя возможно я крупно ошибаюсь. Как уже говорил - опыта в этом ноль..
PS. anest, как бы все-таки организовать раздел форума для общения по вопроспам разработки? А то уже много набирается тех, кто озадачен этими вопросами. А? Сделать доступ для разработчиков и модераторов... Остальные пусть читают, учатся...
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
| IgorG писал(а): |
| У диджиума есть платы с кодеками для Zaptel, советую посмотреть на codec_zap.c, возможно что-то для решения проблемы найдется. |
Я пользую asterisk-1.2.1 (такой уж в openwrt сейчас интегрирован). И, соответственно zaptel-1.2.12. В сорцах астериска нету ./codecs/codec_zap.c
Что посоветуете в этом случае?
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