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

g729 под FreeBSD 4.11

Asterisk IP PBX 16 сообщений -
#1

Поставил. Скачал отсюда модуль, положил к модулям, поставил порт devel/ngpt, и сделал следующие магические пассы:
Код:
cd /usr/lib/; ln -s libm.so.2 libm.so.3
Работает, по крайней мере с X-Pro по g729 общается. Как дружит с cisco не пробовал, но думаю пойдёт.
#2

X-Pro это SIP... там пробелм и не было... а вот H323
#3

Chris писал(а):
X-Pro это SIP... там пробелм и не было... а вот H323

У меня с циской g711 прекрасно дружит.
#4

FreeBSD 4.6.2-RELEASE, asterisk-0.9.0_2
Машина находится далеко, физического доступа к драйвам и кнопкам нет, переставить OC не могу.

Подскажите где взять libpthread.so.1 ? (libiconv?)

Последовал рекоммедациям don_oles, получил при загрузке *:
[codec_g729.so]May 1 05:03:55 WARNING[135065600]: loader.c:240 ast_load_resource: Shared object "libpthread.so.1" not found
#5

/usr/compat/linux/lib > ls -al libpth*
-rwxr-xr-x 1 root wheel 247381 Sep 20 1999 libpthread-0.8.so
lrwxr-xr-x 1 root wheel 17 Oct 1 2002 libpthread.so.0 -> libpthread-0.8.so
#6

я сделал просто
ln -s libpthread.so.10 libpthread.so.1
насчет с 8-й - не знаю Wink
#7

aleksey писал(а):
FreeBSD 4.6.2-RELEASE, asterisk-0.9.0_2
Машина находится далеко, физического доступа к драйвам и кнопкам нет, переставить OC не могу.

Подскажите где взять libpthread.so.1 ? (libiconv?)

именно /usr/ports/devel/ngpt делает у меня libpthread.so.10 в /usr/local/lib/
#8

Спасибо, нашёл свеженькую libpthread.so.10 в /usr/local/lib/

/usr/local/lib >ln -s libpthread.so.10 libpthread.so.1
/usr/local/lib > ls -al libpth*
-rw-r--r-- 1 root wheel 125310 May 1 04:34 libpthread.a
-rw-r--r-- 1 root wheel 657 May 1 04:34 libpthread.la
lrwxr-xr-x 1 root wheel 16 May 1 04:34 libpthread.so -> libpthread.so.10
lrwxr-xr-x 1 root wheel 16 May 1 11:47 libpthread.so.1 -> libpthread.so.10
-rwxr-xr-x 1 root wheel 102985 May 1 04:34 libpthread.so.10
/usr/local/lib >asterisk -vvvc
......................
[codec_g729.so]May 1 11:54:47 WARNING[135065600]: loader.c:240 ast_load_resource: /usr/local/lib/libpthread.so.1: Undefined symbol "__sys_write"
May 1 11:54:47 WARNING[135065600]: loader.c:408 load_modules: Loading module codec_g729.so failed!

Где взять "__sys_write" ?
Какая версия ngpt использовалась ?
У меня ngpt-1.0.1.
Можно ли ёшё что-нибудь сделать?

Заранее спасибо за помощь.


ports/devel/ngpt/work/ngpt-1.0.1 > grep sys_write *
uthread_spinlock.c: __sys_write(2,str,strlen(str));
Binary file uthread_spinlock.lo matches
Binary file uthread_spinlock.o matches
ports/devel/ngpt/work/ngpt-1.0.1 >

uthread_spinlock.c:
/*
* Try to grab the lock and loop if another thread grabs
* it before we do.
*/
while(_atomic_lock(&lck->access_lock)) {
cnt++;
if (cnt > 100) {
char str[256];
snprintf(str, sizeof(str), "%s - Warning: Thread %p attempted to lock %p from %s (%d) was left locked from %s (%d)\n", __progname, curthread, lck, fname, lineno, lck->fname, lck->lineno);
__sys_write(2,str,strlen(str));
__sleep(1);
cnt = 0;
}
}
#9

Какая версия кодека использовалась ?
Я взял ...-gcc-pentium2.so
Может тот что запустился не пытался сделать "__sys_write" ?
#10

У меня работает на 3-х машинах, все либо 4.10 либо 4.11. Селероны 800 и 1000, и один PIII 500. ngpt-1.0.1. Запускал только для pentium и pentium2, остальные падали illegal instruction. ngpt использует libc_r, а та в свою содержит
Код:
__sys_write(int, const void *, size_t);

Код:
root# grep -R __sys_write /usr/lib
Binary file /usr/lib/libc_r.a matches
Binary file /usr/lib/libc_r.so.4 matches
Binary file /usr/lib/libc_r.so matches
Binary file /usr/lib/libc_r_p.a matches
#11

Кстати и с Cisco дружит этот кодек Только с одной не подружился - с 1751 с иосом 12.2.13 каким-то, он, сцуко, пихает 40 мсек 40 байт в один RTP пакет, и астериск не понимает такой. И тишина...
#12

Sad А где же взять правильный libc_r ?
Ну и проблеммы с антиквариатом.
Код:

/usr/lib > grep -R __sys_write /usr/lib/libc_*
/usr/lib > ls -al libc_*
-r--r--r-- 1 root wheel 1456994 Aug 14 2002 libc_pic.a
-r--r--r-- 1 root wheel 1475464 Aug 14 2002 libc_r.a
lrwxrwxrwx 1 root wheel 11 Oct 1 2002 libc_r.so -> libc_r.so.4
-r--r--r-- 1 root wheel 684108 Aug 14 2002 libc_r.so.4
/usr/lib > uname -a
FreeBSD xxx 4.6.2-RELEASE ...


Есть у меня еще одна удалённая машина FreeBSD 4.1-RELEASE #0
Там тоже нет __sys_write
(Я бы поверил что ее снесли имено в 4.6.2 их-за срочного security update, но в 4.1 тоже нет, а в 5.3 есть, и насколько я поняд в 4.11 есть)
Откуда же она появилась ? Очень хочу.
Вроде системная, должна быть из /usr/src/lib/libc_r/
Смотрю на
Код:
http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi/projects/compat-fbsd/compat4x.i386/Attic/libc_r.so.4.gz.uu
, думаю как машину не положить - поднимать некому.
Версия 1.4 уже не запускается (/usr/libexec/ld-elf.so.1: /usr/lib/libc_r.so.4: unsupported file layout)
Версии ниже при загрузке * останавливаются на
Код:
[chan_sip.so]May 1 16:52:35 WARNING[135065600]: loader.c:240 ast_load_resource: /usr/local/lib/asterisk/modules/chan_sip.so: Undefined symbol "strnstr"
May 1 16:52:35 WARNING[135065600]: loader.c:408 load_modules: Loading module chan_sip.so failed!

Можно это как-то исправить дистанционно без доступа к консоли ?
Не могу понять как победить эти грабли.
Или забыть про G729 на * под 4.6.2 (это не 4.11 жаль, машина в хорошем месте стоит).
Ну очень нужно. (запаковать амениканский телефон из 711 в 729, т.к. местный траффик у нас считают и он дорог, а по 711, так дороже местных операторов получается)
#13

Ну я же не волшебник. Тут ничем не помогу. Хотя могу помочь сделать доброе дело. У меня есть что-то похожее на искходники g729с, вроде настоящие. Не хочешь сделать нормальный пиратский модуль? Razz
#15

Я говорю об иту референс имплементейшн.
#16

don_oles писал(а):
Я говорю об иту референс имплементейшн.


Можешь ссылочку кинуть напосмотреть на itu'шную реализацию?