Задача для начала следующая - есть тачка и есть хардварный айпи-телефон HOP-1002. Надо чтобы с телефона заработала демка. При наборе 1000, если я правильно понял,
РедХат 9 поставил. С иксами пока, Звуковая работает.
Астериск скомпилился вроде succesfully.
Однако, при запуске вылазят ворнинги.
Sep 15 17:17:04 WARNING[4087]: chan_skinny.c:2587 reload_config: Unable to get our IP address, Skinny disabled
== Registered channel type 'Skinny' (Skinny Client Control Protocol (Skinny))
[chan_oss.so] => (OSS Console Channel Driver)
Sep 15 17:17:04 WARNING[4087]: chan_oss.c:458 soundcard_init: Unable to open /dev/dsp: Device or resource busy
== No sound card detected -- console channel will be unavailable
== Turn off OSS support by adding 'noload=chan_oss.so' in /etc/asterisk/modules.conf
Проблема в том, как в sip.conf занести телефон. То есть телефон при включении в сеть должен подключится к серверу аутентифицироваться и дальше уже работать, как всё описано в Dial plan?
Телефону дал айпишник из то же подсети что и комп с астериксом разумеется. В настройках выбрал номер 1001. Протокол SIP. Есть поле service addr. Туда поставил ип компа с астериксом. Еще поставил порт 5060, как написано в мануале.
Прописал account и password - haha.
Есть еще галочка use service. Если ставишь. то телефон пытается логинится при включении. Если не ставить то он сразу переходит в состояние Ready for calling.
Что надо прописать в sip.conf? Я по примеру сделал так:
[1001]
type=friend
secret=haha
language=ru
host=dynamic
disallow=all
allow=ulaw
Ну естественно ничего не работает. Телефон пишет Log On Failed. А в консоле Астериска тоже ничего нету. Судя по всему я вообще не понимаю в корне что происходит, потому что дурак, т.к. уже много времени потерял на чтение документации и так не понял. Вот, например, если убрать в телефоне галку use service, то телефон никуда не пытается логиниться. Но если набрать 1000 то в консольке астериска начинает происходить действие. Он начинает выполнять команд, проигрывать демку, но идут ворнинги
-- Executing BackGround("SIP/0.0.0.0-0813d6c0", "demo-congrats") in new stack
-- Playing 'demo-congrats' (language 'en')
Sep 15 18:29:19 WARNING[4121]: chan_sip.c:695 retrans_pkt: Maximum retries exceeded on call d64GOH2gZeKF3XN6@0.0.0.0 for seqno 1 (Non-critical Response)
Sep 15 18:29:22 WARNING[4121]: chan_sip.c:695 retrans_pkt: Maximum retries exceeded on call d64GOH2gZeKF3XN6@0.0.0.0 for seqno 1 (Non-critical Response)
Sep 15 18:29:25 WARNING[4121]: chan_sip.c:695 retrans_pkt: Maximum retries exceeded on call d64GOH2gZeKF3XN6@0.0.0.0 for seqno 1 (Non-critical Response)
Sep 15 18:29:28 WARNING[4121]: chan_sip.c:695 retrans_pkt: Maximum retries exceeded on call d64GOH2gZeKF3XN6@0.0.0.0 for seqno 1 (Non-critical Response)
Sep 15 18:29:31 WARNING[4121]: chan_sip.c:695 retrans_pkt: Maximum retries exceeded on call d64GOH2gZeKF3XN6@0.0.0.0 for seqno 1 (Non-critical Response)
-- Executing BackGround("SIP/0.0.0.0-0813d6c0", "demo-instruct") in new stack
-- Playing 'demo-instruct' (language 'en')
-- Timeout on SIP/0.0.0.0-0813d6c0
Вот так.
иначе - ты для * прописал пользователя 1001, а в телефоне - совсем другой.
А вызов на телефон - exten=> 1001,1,Dial(SIP/haha)
тебе следует сначала с сеткой разобраться я думаю.
как физически всё подключено? хаб, роутер, свич? или линукс как рутер настроен (несколько сетевух) ? кто разадёт ip в сетке?
разберешься с сеткой - куча проблем отпадут сами собой
насчет варнингов по звуку - последняя строчка тобой приведенная и есть ответ подразумевающий действие которое ты должен сделать
| Код: |
| Turn off OSS support by adding 'noload=chan_oss.so' in /etc/asterisk/modules.conf |
дословный перевод:
"Выключи поддержку OSS добавлением строчки 'noload=chan_oss.so' в файл /etc/asterisk/modules.conf"
тоесть ты должен в файле /etc/asterisk/modules.conf прописать 'noload=chan_oss.so'
внимание - там уже есть эта строчка но она load= тебе нужно просто две буквы туда приписать - noload
впрочем это не критично
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
Но,,, с сеткой вроде просто. Телефон и комп воткнуты в один хаб. От линукса используется только астериск и всё. Статика, Телефон-то я пингую и по вебе его настройки править могу. ИПы у меня 0.237. у телефона 0,238
Ща еще потанцую с бубном, а потом попробую отобрать виндовую тачку у кого-нибудь и софтовым фоном попробовать.
Вот ща команду выполнил:
sip show peers
Name/username Host Dyn Nat ACL Mask Port Status
1001 (Unspecified) D 255.255.255.255 0 Unmonitored
Что-то не то, по-моему.
1. ifconfig
2. sip.conf
Там есть параметр nat traversal. Вот он был включен. а адрес не прописан.
Выключил - логин прошел.
Спасибо за помощь.
Буду еще вопросы задавать, надеюсь чутка поумнее
Типа один телефон звонит на другой, за которым сидит секретарь и далее секретарь перенапрявляет человека куда угодно, музычку дает послушать и т.п.
смотреть в features.conf
вобщем смотри на voip-info.org встроенным поиском по сайту команду Dial и будет там ключики разные типа t T и тд. Обрати на них внимание
подставишь в команду и будет тебе щастье
секретарь сможет перенаправлять звонки нажимая на # и потом номер -> куда. всё просто.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
В гугле че-то как-то не особо ищется.
загляни в раздел Скачать на этом сайте
еще посмотри сюда (мож пригодится)
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
Че-то я про этот сайт забыл.
Зато пока посмотрел на CAGI, с Си я дело имел, а вот с перлом еще ни разу. Но пишут все на перле, как я понял.
Еще у меня тут была проблема с soxmix в RH9, он "случайно" не ставится вместе с соксом. Этот баг описан в сайте redhat. Ну я решил поставить последнюю версию sox 12.17.7-3. Он потребовал glibc новый версии (2.3.4), а эта потребовала новый glibc-common, в свою очередь эта потребовала tzdata. А при попытке обновления tzdata пишет что "glibc-common
Самое забавное, что если скормить тестовый AGI скрипт астериску без установленного asterisk-perl, то он работает кое-как, циферки произносит
ЗЫ Ща какое-то ЧП случилось. Почему-то консоль перестала выводить русские буквы вдруг, когда даю man rpm, то есть ваще вместо них пусто
я дал ссылку на свою статейку - дык там полностью рабочая последовательность - в результате все собирается и главное работает!
методом проб и ошибок нашел пакет от федоры который встает как родной.
wget ftp://fr2.rpmfind.net/linux/fedora/core/ ... 1.i386.rpm
rpm -Uhv sox-12.17.4-2.1.i386.rpm
игры же с glibс и вообще с зависимостями ни к чему хорошему не приводят. кирилица думаю первый тому симптом.
вобщем вот моя рекомендация: ставить редхат9 после этого юм. юмом и апдейтить то что вам нужно. он зависимости фиксит очень коректно. после чего выкачиваете свежий кернель (я ставлю 2.4.xx) и компиляете. всё.
нет... не всё. еще можно поставить iptables+iproute2+IMQ+QOS+etc патчи и перекомпилять второй раз кернель. после этого настраиваете QoS и радуетесь качеству связи (если у вас астериск стоит на шлюзе - в малых офисах так и делают - всё на одной машине) - независимо от того качает ли ктото торентом или в кваку по инету рубится. голос в трубке всегда будет суперский.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
Решил попробовать oh323. Без гейткипера.
Запутался в итоге. Не понятно, что есть alias, что есть prefix и как это работает. Просто искал доку, чтобы было разжевано и не нашел.
Поставил NetMeeting на винде. С ниго на сип и на него с сипа звонит, но это как-то всё не так
Получается, что в данном случае никакой аутентификации нету, т.к. нет гейткипера? То есть любой юзер поставив тот же нетмитинг сможет использовать указанный дефолтовый контекст? Ведь в нетмитинге даже номер не указывается...
a alias это типа номер? если поставить context=test alias=100, то набрал 100 попадешь в test. Вроде так получилось только что.