Вы прекрасно знаете, что Oktell не поддерживает протокол H.323, только SIP. А мне вот нужно подключить к нему именно H.323! Некоторые скажут: купи шлюз или поставь Asterisk. Для Aterisk нужен отдельный Linux сервер, а шлюз еще нужно поискать и купить… Будем делать все на том же сервере где и Oktell с помощью YATE.
Для начала нам нужно собрать на Windows библиотеку OpenH323. Для этого нам понадобится MS Visual Studio 2003 .NET и вот такой набор:
1. Создаем директорию: C:\TOOLS, куда копируем GNU bison:
В C:\TOOLS» лежат «FLEX.EXE», «BISON.EXE», и в «C:\TOOLS\SHARE» у нас «BISON.SIMPLE», «BISON.HAIRY»
В среде VS.net, выбираем «Options» из меню «Tools» и добавляем » C:\TOOLS» в executable directory.
2. Устанавливаем pwlib-v1_11_0 в C:\TOOLS\PWLIB\ и пропишем путь в VS.net:
C:\TOOLS\PWLIB\INCLUDE — Include directory
C:\TOOLS\PWLIB\LIB — Executable directory
C:\TOOLS\PWLIB\LIB — Library directory
3. Запускаем VS.net и открываем проект C:\TOOLS\PWLIB\PWLIB.SLN. Переводим его в RELEASE и начинаем сборку в такой последовательности:
- Console
- Console Components
- PTLib
4. Устанавливаем openh323-v1_19_0_1 в C:\TOOLS\PWLIB\ и пропишем путь в VS.net:
C:\TOOLS\OPENH323\INCLUDE — Include directory
C:\TOOLS\OPENH323\LIB — Executable directory
C:\TOOLS\OPENH323\LIB — Library directory
5. Запускаем VS.net и открываем проект C:\TOOLS\OPENH323\OPENH323.SLN. Переводим его в RELEASE и начинаем сборку в такой последовательности:
- OpenH323Lib
- OpenH323dll
После этого можем собирать нужные кодеки.
6. Качаем и устанавливаем YATE на том же сервере с Oktell.
7. Конфигурация YATE.
h323chan.conf
[general] external_rtp=yes passtrough_rtp=yes [codecs] default=no mulaw=yes alaw=yes g723=on g729=on [ep] faststart=on
ysipchan.conf
[general] port=5070 ;изменяем стандартный порт [codecs] default=off mulaw=yes alaw=yes g723=yes
regexroute.conf
[default] ${rtp_forward}possible=;rtp_forward=yes ${formats}^\([^,]*\)=;formats=\1 ${module}^sip$=h323/${called}@10.10.10.3 ${module}^h323$=sip/sip:${called}@10.10.10.1 .*=-;error=forbidden;reason=Protocol not allowed
Теперь весь H.323 трафик с 10.10.10.3 пойдет на SIP 10.10.10.1, а SIP с 10.10.10.1 на H.323 на сервере 10.10.10.3.
8. Переходим к серверу Oktell и создаем внешний шлюз без регистрации на 10.10.10.1:5070
9. Можно звонить! 🙂
есть куча софтсвечей которые это делаю гораздо быстрей и проще. А тащить yate для этой задаче,извините, но глупо. Если только ради прикола
Возможно, глупо! 🙂 Но, чем YATE с отключенными всеми другими модулями не softswitch? Пока прикол удался и работает…
У меня не было времени поискать, попрошу Вас, если не сложно, выложить линки на другие softswitch, которые работают под Windows и подойдут для этой задачи. Буду рад их протестить…
Точно, YATE — это и есть софтсвич, где одна из задач: H.323< ->SIP Proxy
http://yate.null.ro/pmwiki/
Permalink
Можно все проще, только пункты: 6, 7, 8 и 9 😉
Сегодня проверил!
Получается подобным образом можно решить проблемы nat у oktell’a?
Поделитесь опытом:)
Да, можно решить 🙂
Я что то в Yate не нашел настроек для NAT 🙁 Не подскажешь ? 😉