vs145

На Пикабу
поставил 501 плюс и 335 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
5 лет на Пикабу
13К рейтинг 119 подписчиков 98 подписок 5 постов 4 в горячем

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе

Итак, как и обещал, завершаю историю про подключение ведомственной АТС Panasonic KX-TDA600 и Asterisk.Начало тут: Краткие заметки по дружбе OpenVox D110P (Digium Wildcard TE110P) и Астериск в 2022 году

По немногочисленным руководствам из интернетов начал ковырять АТС Panasonic. В деле настройки АТС я полный ноль, поэтому на быстрый результат не рассчитывал. Нашу АТС лет 10 назад кто то настроил (по слухам - приглашённый специалист), и с тех пор она работала, работала и работала. Надёжная штука.

Скопировал себе содержимое SD карточки что бы откатиться к исходным настройкам если вдруг чо.

Поставил переключатели на плате PRI30 в нужные позиции и вставил плату в АТС.

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

Для RJ45 ставим переключатель на лицевой планке в положение 120 Ом. (Кстати, разъём для ISDN PRI не RJ45 на самом деле, а RJ47, господа связисты быстро начинают глумиться на форумах, если вдруг RJ47 для E1 назвал привычным RJ45. RJ45 кстати вполне подходит, и все в основном его и используют, но сам факт показать свою значимость и осведомлённость - бесценен. Я на связных форумах называл его осторожно - 8p8c :)))).

Переключатель на плате указывает, какой кабель используем - прямой или кросс. А - прямой, B - кросс. Для E1 используются 1,2 - первая пара, 4,5 - вторая.

Т.е. прямой кабель - 1 - бело-оранжевый, 2 - оранжевый, 4 - бело-зелёный, 5 - зелёный. Второй конец так же.

Кросс - 1 - бело-оранжевый, 2 - оранжевый, 4 - бело-зелёный, 5 - зелёный. С другой стороны - 1 - бело-зелёный, 2 - зелёный, 4 - бело-оранжевый, 5 - оранжевый.

Я использовал кросс.

Инструкция строго рекомендует на кабель вешать феррит. Хз, я не вешал.


Естесственно, при попытке захода на Панасоник пароль не подошел. Гуглим.

Натыкаемся на ЭТОТ форум, где человек спрашивает про сброс пароля и ему господа связисты, а именно НачШтаба рекомендует обратится к нему и он-де сбросит пароль за деньги. При этом говорит что вы, сисадмины весьма самонадеянны и считаете, что вам всё по плечу. А связь - "это вам не это". Понятно... - подумал я и продолжил гуглёж.

И на второй странице выдачи гугла нашел вот это руководство. Программа отработала на 5+, и я попал на нашу АТС. Проинициализировал плату PRI30.

По мотивам Вот этого руководства я настроил взаимодействие с Астериском, и... ничего не заработало. Ожидаемо.

Проверил ещё раз. Не заработало.

Сбрасываем всю АТС. Я не видел проблем, ибо у нас она в минимальной конфигурации - набита платами ESLC16, ну и добавилась PRI30. Ничего сложного.

Выключаем АТС. Переводим тумблер на процессорном модуле в положение инициализации, включаем. Ждём когда зелёный индикатор заморгает на корпусе АТС, ждём для верности ещё секунд 10, и переводим переключатель в режим normal.

АТС инициализируется где то 2 минуты и встаёт в работу.

Но номерной план сбит. У нас были трёхзначные номера от 100 до 212 (7 плат внутренних абонентов по 16 номеров). По умолчанию же АТС выставляет четырёхзначные 1001-1112.

Идём в 2.6.1 maitenance console и во вкладке Внутренние линии меняем 10 на 1, итд. Сохраняем и внутренние звонки пошли.

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

Далее опять обращаемся к тому же руководству из интернетов. Приведу его здесь.

1.1. Коннектимся к АТС с помощью консоли администрирования (KX-TDA Maintenance Console)

открываем пункт 1.1 (Slot).


1.2. Видим установленную плату PRI30.


1.3. Если она в режиме "INS" ("In Service" ), то переводим ее в режим "OUS", кликнув по ней правой кнопкой мыши и выбрав соответствующий пункт ("Out-of-service"). (В режиме INS Panasonic не дает править настройки платы).


1.4. Снова кликаем по ней мышкой и выбираем пункт "Port Property" ("Свойства порта").


1.5. Там выставляем Port Type (тип порта) в "QSIG-Master" (если плата в Asterisk у нас в режиме Slave.

Принципиально, чтобы на разных концах были разные значения, однако эмпирически получилось, что если ставить плату на Asterisk в Master (pri_net), то Panasonic постоянно отваливается, так что Master должен быть Panasonic).


1.6. CRC4 Mode (Режим CRC4) в "Disable". (Или enable, в зависимости от того как мы его выставили в Asterisk, опять же эмпирика показывает, что panasonic как-то криво обрабатывает этот пункт, лучше ставить в disable).


На этом настройка платы закончена, включаем плату (ПКМ - INS) и все должно заработать на уровне физики. Переходим на уровень логики.


Объединяем линии платы PRI30 в отдельную транковую группу:

2.1. открываем пункт "10.1" (CO Line Settings).

В таблице слева видим номер слота и номер порта. Справа можем задавать номер транковой группы (TRG) от 1 до 64. Выбираем любой неиспользуемый номер и присваиваем его всем 30-ти линиям платы.

Я поставил всем 2.
Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

2.2. Объявляем эту транковую группу локальной (в том смысле, что не "внешней") для данной АТС. Для этого идем в пункт "9.1" (TIE Table). Думаем что бы написать в графе "Leading Number". Это такие цифры, при наборе которых АТС будет "отдавать" звонок в транковую группу, то есть нам на астериск. Тогда в Leading Number я пишу "3XX" и "4XX". В графе "Trunk Group" ("Группа внешних линий") указываем тот номер, который мы задали на предыдущем шаге, в пункте 10.1 консоли. При этом запоминаем номер строки таблицы, в который мы все это вписали (!). Это важно!

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

2.4 Идём в пункт "2.6.1Numbering Plan, Main", (План нумерации, Основное) на вкладку "Other PBX Extension" (Внутренняя линия другой УАТС), пишем первую цифру нумерации Asterisk (у меня - 3 и 4 соответственно). ВАЖНО, чтобы строка была та же, что и в пункте 9.1.

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

Добавляем настройки порта платы PRI30 для работы АОН на астериске.

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

И генерируем CLIP

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост

Для меня - всё. У меня нет городских линий на АТС. Весь город я заведу на Asterisk. Мне с ним проще. Во-первых, море информации. Во вторых - дружелюбное сообщество.


Настраиваем Астериск. Начинаем с DAHDI.

/etc/dahdi/system.conf

loadzone=ru

defaultzone=ru

#span = 1,1,0,ccs,hdb3,crc4

span = 1,1,0,ccs,hdb3

# Параметры по порядку:

# 1 - Номер порта (спана) - 1 для 1-й карты

# 2 - Мастер(0) и слейв (1) - 1

# 3 - для стабилизации на длинных линиях. У нас линия короткая - 0

# 4 Fraiming

# 5 Coding

# 6 - необязательный - вкл CRC. Полезно опять же на длинных линиях. Наверное.

bchan = 1-15,17-31

dchan = 16

#alaw=1-15,17-31

Обратите внимание, тут комментарии экранируются решёткой #. В конфигах астериска  - точка с запятой (;).


/etc/asterisk/chan_dahdi.conf

[trunkgroups]


[channels]

language=ru

context=from-panas

switchtype=qsig  ;euroisdn

nationalprefix=8

overlapdial=yes

signalling=pri_cpe

rxwink=300

usecallerid=yes

cidsignalling=bell

;bell: bell202 as used in US (default)

;v23: v23 as used in the UK

;v23_jp: v23 as used in Japan

;dtmf: DTMF as used in Denmark, Sweden and Netherlands

;smdi: Use SMDI for caller ID. Requires SMDI to be enabled

;cidstart=ring ;Determine signals the start of caller ID. The options supported by Asterisk are:

;ring: A ring signals the start (default)

;polarity: Polarity reversal signals the start

;polarity_IN: Polarity reversal signals the start, DTMF dialtone detection in India

;dtmf: DTMF Caller ID spill begins only with DTMF, at various times before the ring.

;This causes Asterisk to constantly listen for DTMF CallerID signals on the specified channels

;If cidstart is configured to use dtmf, the energy level on the line may need to be

;tuned to properly identify the DTMF tones.

; This tuning is done with the dtmfcidlevel configuration option.

; The specified value is compared to the average over a packet of audio level

;of the absolute value of 16 bit signed linear samples.

; The default is set to 256, but this is completely arbitrary.

;It must be set high enough to prevent false detections, while low

;enough to ensure no dtmf spills are missed.

;hidecallerid=no

;callwaiting=yes

usecallingpres=yes

callwaitingcallerid=yes

transfer=yes

canpark=no

cancallforward=yes

callreturn=no

echocancel=no

echocancelwhenbridged=no

rxgain=0.0

txgain=0.0

group=1

callgroup=1

pickupgroup=1

immediate=no

busydetect=yes

busycount=8

channel => 1-15,17-31

/etc/asterisk/extensions.conf

[from-panas]  ; Звонки с панасоника

exten => _[34]XX,1,NoOp()

same => n, Dial(PJSIP/${EXTEN},30,tT)

same => n, Hangup()


[sip-local] ; Звонки с сипофонов и шлюзов там всяких

exten => _[34]XX, 1, NoOp()  ; Звонки с сипофонов на сипофоны

same => n, DIAL(PJSIP/${EXTEN},30,tT)

same => n, Hangup()


exten => _[12]XX, 1, NoOp()  ; Звонки с сипофонов на панасоник

same => n, Dial(Dahdi/g1/${EXTEN},,tT)

same => n, Hangup()

Ну и настраиваем авторизацию PjSIP. В этой версии астериска он основной. Можно конечно убрать, но на форумах убеждают, что несмотря на возросшую сложность конфигурирования - за ним будущее. Хз, чтож уж. Пробуем.

Настраиваем два сипофона - с номерами 301, 302 и паролями "5825".


/etc/asterisk/pjsip.conf

[udp-transport]

type = transport

protocol = udp

bind = 0.0.0.0

; ---------------------------------------300

[300]

type=endpoint

context=sip-local

disallow=all

allow=alaw

transport=udp-transport

auth=auth300

aors=300


[auth300]

type=auth

auth_type=userpass

password=5825

username=300


[300]

type=aor

max_contacts = 1


;---------------------------------------301

[301]

type=endpoint

context=sip-local

disallow=all

allow=alaw

transport=udp-transport

auth=auth301

aors=301


[auth301]

type=auth

auth_type=userpass

password=5825

username=301

[301]

type=aor

max_contacts = 1

И внезапно при запуске asterisk выясняем что кучи функций нет. Если ставим asterisk из репозиториев убунты, то том в конфигураторе модулей стоит разрешение загружать всё, за исключением пары модулей.

Здесь же, внезапно, наоборот.


Поэтому вот Вам мой файл /etc/asterisk/modules.conf Жаль, под кат нельзя убрать.

[modules]

autoload = no

; This is a minimal module load. We are loading only the modules

; required for the Asterisk features used in the "Super Awesome

; Company" configuration.

; Applications

load = app_bridgewait.so

load = app_dial.so

load = app_playback.so

load = app_stack.so

load = app_verbose.so

load = app_voicemail.so

load = app_directory.so

load = app_confbridge.so

load = app_queue.so

; Bridging

load = bridge_builtin_features.so

load = bridge_builtin_interval_features.so

load = bridge_holding.so

load = bridge_native_rtp.so

load = bridge_simple.so

load = bridge_softmix.so

; Call Detail Records

load = cdr_custom.so

; Channel Drivers

load = chan_bridge_media.so

load = chan_pjsip.so

load = chan_dahdi.so

;load = chan_sip.so

; Codecs

load = codec_gsm.so

load = codec_resample.so

load = codec_ulaw.so

load = codec_g722.so

; Formats

load = format_gsm.so

load = format_pcm.so

load = format_wav_gsm.so

load = format_wav.so

; Functions

load = func_callerid.so

load = func_cdr.so

load = func_pjsip_endpoint.so

load = func_sorcery.so

load = func_devstate.so

load = func_strings.so

; Core/PBX

load = pbx_config.so

; Resources

load = res_http_websocket.so

load = res_musiconhold.so

load = res_pjproject.so

load = res_pjsip_acl.so

load = res_pjsip_authenticator_digest.so

load = res_pjsip_caller_id.so

load = res_pjsip_dialog_info_body_generator.so

load = res_pjsip_diversion.so

load = res_pjsip_dtmf_info.so

load = res_pjsip_endpoint_identifier_anonymous.so

load = res_pjsip_endpoint_identifier_ip.so

load = res_pjsip_endpoint_identifier_user.so

load = res_pjsip_exten_state.so

load = res_pjsip_header_funcs.so

load = res_pjsip_logger.so

load = res_pjsip_messaging.so

load = res_pjsip_mwi_body_generator.so

load = res_pjsip_mwi.so

load = res_pjsip_nat.so

load = res_pjsip_notify.so

load = res_pjsip_one_touch_record_info.so

load = res_pjsip_outbound_authenticator_digest.so

load = res_pjsip_outbound_publish.so

load = res_pjsip_outbound_registration.so

load = res_pjsip_path.so

load = res_pjsip_pidf_body_generator.so

load = res_pjsip_pidf_digium_body_supplement.so

load = res_pjsip_pidf_eyebeam_body_supplement.so

load = res_pjsip_publish_asterisk.so

load = res_pjsip_pubsub.so

load = res_pjsip_refer.so

load = res_pjsip_registrar.so

load = res_pjsip_rfc3326.so

load = res_pjsip_sdp_rtp.so

load = res_pjsip_send_to_voicemail.so

load = res_pjsip_session.so

load = res_pjsip.so

load = res_pjsip_t38.so

load = res_pjsip_transport_websocket.so

load = res_pjsip_xpidf_body_generator.so

load = res_rtp_asterisk.so

load = res_sorcery_astdb.so

load = res_sorcery_config.so

load = res_sorcery_memory.so

load = res_sorcery_realtime.so

load = res_timing_timerfd.so


; Do not load res_hep and kin unless you are using HEP monitoring

; <http://sipcapture.org> in your network.


noload = res_hep.so

noload = res_hep_pjsip.so

noload = res_hep_rtcp.so


; ------------Добавляю свои


load = res_clioriginate.so

load = app_originate.so

load = app_echo

load = app_stream_echo.so


; -----------------------------------------Отладка

load = app_agent_pool.so

load = app_alarmreceiver.so

load = app_amd.so

load = app_attended_transfer.so

load = app_audiosocket.so

load = app_authenticate.so

load = app_blind_transfer.so

load = app_bridgeaddchan.so

load = app_cdr.so

load = app_celgenuserevent.so

load = app_chanisavail.so

load = app_channelredirect.so

load = app_chanspy.so

load = app_controlplayback.so

load = app_dictate.so

load = app_directed_pickup.so

load = app_dtmfstore.so

load = app_dumpchan.so

load = app_exec.so

load = app_externalivr.so

load = app_festival.so

load = app_flash.so

load = app_followme.so

load = app_forkcdr.so

load = app_jack.so

load = app_mf.so

load = app_milliwatt.so

load = app_minivm.so

load = app_mixmonitor.so

load = app_morsecode.so

load = app_mp3.so

load = app_page.so

load = app_playtones.so

load = app_privacy.so

load = app_read.so

load = app_readexten.so

load = app_record.so

load = app_reload.so

load = app_sayunixtime.so

load = app_senddtmf.so

load = app_sendtext.so

load = app_sf.so

load = app_sms.so

load = app_softhangup.so

load = app_speech_utils.so

load = app_stasis.so

load = app_system.so

load = app_talkdetect.so

load = app_test.so

load = app_transfer.so

load = app_userevent.so

load = app_waitforcond.so

load = app_waitforring.so

load = app_waitforsilence.so

load = app_waituntil.so

load = app_while.so

load = chan_audiosocket.so
load = chan_rtp.so
load = codec_adpcm.so

load = codec_alaw.so

load = codec_dahdi.so

load = codec_g726.so

load = codec_ilbc.so

load = codec_lpc10.so

load = codec_speex.so

load = format_g719.so

load = format_g723.so

load = format_g726.so

load = format_g729.so

load = format_h263.so

load = format_h264.so

load = format_ilbc.so

load = format_mp3.so

load = func_blacklist.so

load = func_callcompletion.so

load = func_channel.so

load = func_config.so

load = func_cut.so
load = func_dialgroup.so

load = func_dialplan.so

load = func_enum.so

load = func_env.so

load = func_evalexten.so

load = func_extstate.so

load = func_frame_drop.so

load = func_frame_trace.so

load = func_global.so

load = func_groupcount.so

load = func_hangupcause.so

load = func_holdintercept.so

load = func_iconv.so

load = func_jitterbuffer.so

load = func_json.so

load = func_lock.so

load = func_logic.so

load = func_math.so

load = func_module.so
load = func_periodic_hook.so

load = func_pitchshift.so

load = func_pjsip_aor.so

load = func_pjsip_contact.so

load = func_presencestate.so

load = func_rand.so

load = func_realtime.so

load = func_sayfiles.so

load = func_scramble.so

load = func_shell.so
load = func_sprintf.so

load = func_srv.so

load = func_sysinfo.so

load = func_talkdetect.so

load = func_timeout.so

load = func_uri.so

load = func_version.so

load = func_vmcount.so

load = func_volume.so

load = pbx_ael.so

load = pbx_loopback.so
load = pbx_realtime.so

load = pbx_spool.so


load = res_aeap.so

load = res_ael_share.so

load = res_audiosocket.so

load = res_clialiases.so

load = res_convert.so

load = res_fax.so load = res_fax_spandsp.so

load = res_format_attr_celt.so

load = res_format_attr_g729.so

load = res_format_attr_h263.so

load = res_format_attr_h264.so

load = res_format_attr_ilbc.so

load = res_http_post.so

load = res_limit.so

load = res_manager_devicestate.so

load = res_manager_presencestate.so

load = res_mutestream.so

load = res_mwi_devstate.so

load = res_parking.so

load = res_phoneprov.so

load = res_pjsip_config_wizard.so

load = res_pjsip_dlg_options.so

load = res_pjsip_empty_info.so

load = res_pjsip_history.so

load = res_pjsip_sips_contact.so

load = res_realtime.so

load = res_resolver_unbound.so

load = res_rtp_multicast.so

load = res_security_log.so

load = res_smdi.so

load = res_snmp.so

load = res_sorcery_memory_cache.so

load = res_speech.so

load = res_speech_aeap.so

load = res_srtp.so

load = res_stasis.so

load = res_stasis_answer.so

load = res_stasis_device_state.so

load = res_stasis_playback.so

load = res_stasis_recording.so

load = res_stasis_snoop.so

load = res_statsd.so

load = res_stun_monitor.so

load = res_timing_dahdi.so

load = res_timing_pthread.so

load = res_tonedetect.so

Ваш набор модулей может быть меньше или больше. Я повыкидывал то, что мне точно не пригодится.


Вот и всё. Теперь будем канючить деньги на 24-портовый голосовой шлюз, что бы подключить удалённый офис. :)


Надеюсь мой опус поможет кому то не плясать по грабелькам.


Попозже может опишу, как я ставил VirtualBox на Ubuntu Server в консоли и настраивал проброс USB в гостевую систему из консоли. Это я делал для того, что бы подключить панасоник к компу с астериск, на комп поставить virtualBox, поставить на виртуалку W2K, и на W2K поставить maitenance console и настраивать панасоника не выходя из кабинета. Ибо заманался я бегать в другой корпус с ноутом, подстраивать мелочи всякие на панасе.

Меня приятно поразили консольные возможности VirtualBox'а.


Кстати, никто не знает, что за ошибка выскакивает на 2.10 - настройка АОН внутренних абонентов?

Panasonic KX-TDA600 и Asterisk. О их дружбе и недружбе Asterisk, Panasonic, Длиннопост
Показать полностью 8

Краткие заметки по дружбе OpenVox D110P (Digium Wildcard TE110P) и Астериск в 2022 году

Волей судеб не так давно досталась мне старенькая плата OpenVox D110P, делающая поток E1 PRI. И подумал я, а не подключить ли мне на работе Asterisk к старенькой АТС Panasonic?
Меня несколько увлекает вот этот мир IP телефонии, можно сказать, это моё хобби. Разбавляет суровые трудовыебудни. К тому же на работе потихоньку издыхает кабель между зданием с АТС, и зданием, где сидит основная толпа работников. И потихонечку умирают телефоны то у одного сотрудника, то у другого. 400 метров телефонного тридцатипарника стоит как то неадекватно дорого (от 200р/метр в магазинах и от 100р/метр на авито, итого - 40 000р - 80 000р),К тому же есть удалённые офисы, и хотелось бы и их привязать в общую сеть. Ну и между зданиями есть гигабитная оптика, загруженная максимум на 1%. Выделить VLAN на голосовую связь и гонять разговоры вообще ничего не мешает. Итого, посчитав плюсы и минусы кабельного и ип-телефонного направления дальнейшего развития я с этим вопросом пришёл к начальнику.
Ответ был ожидаем - ну дерзай, коль заняться нечем, сынку. И сынку устремился.
Для начала выбили 3000р денег для покупки на авито карты ISDN PRI 30 для АТС Panasonic TDA 600. И пока она ползёт с авито по необъятной родине, начинаем ставить астериск на старенький комп, собранный из списанного всякого, и настраивать карту.
В процессе установки я столкнулся с некоторыми трудностями, которые сейчас здесь и изложу. Может, кого то данная статейка избавит от душевных страданий, и сэкономит пару часов (или дней) времени.
Для начала я перечислю грабельки, на которые я наступил в процессе.
DAHDI - подсистема Digium, которая отвечает за взаимодействие всяких карточек (и USB устройств), предназначенных для взаимодействия непосредственно астериск с внешним миром. Карта потока E1 - из той же оперы.

Грабля №1 - DAHDI очень неохотно работает из виртуалки. DAHDI и OpenVox D110P (Digium Wildcard TE110P) из виртуалки не работают вообще никак. Даже скажу больше, если материнка повесила карту и какой нибудь USB на одно прерывание - то нормальной работы не будет. Если биос позволяет назначить прерывания ручками - хорошо. Если нет - ищем другую материнку. Вот тут товарисч, например, с такой картой развлекается, в каментах говорят, что подобные грабли бывают и на оригинальных картах.
http://asterisk-support.ru/question/66948/nastroika-karty-op...
Для себя сделал вывод, что карточки - это такое себе в плане надёжности, и если надо прям вот надёжную связь со старой АТС, то надо искать хороший шлюз E1 PRI в SIP. Все эти карты - это полупрофессиональные (и больше даже скажу, в сторону любительских) решения, но т.к. для меня это хобби, а к внутренней связи дофига требований не предъявляют, то почему бы и нет.

Грабля №2 - из репозитория а-ля apt-get install asterisk dahdi нифига ничего не работает. Т.е. астериск то работает, но поддержки dahdi в нём нет. И dahdi устанавливается какой то кривой. Как сервис не запускается, в init.d его нет, как то непонятно всё. Карточку видит, но подсовывает не тот драйвер (возможно потому, что OpenVox - это всё таки китайский аналог оригинала). Не тот драйвер мы конечно забанили в modprobe, но оно так и не взлетело. dahdi_tool карту не видит. Грусть-печаль. В итоге, когда нашёл таки норм dahdi, там всё сразу заработало, без этих вот забаниваний итд.

Грабля №3. Я давно уже живу с интернетами, зарегестрирован на куче форумов, везде плюс-минус достаточно адекватное общение. Но на форумах телефонии это прямо дичь какая то. Я там узнал о себе много нового. Даже мой командир в этих вот армиях не сумел так тонко раскрыть мой гнилой внутренний мир, как уважаемые телефонисты на профильных форумах. Так как объективно, классическая телефония отмирает, а эти люди посвятили ей свою жизнь, я так понял, им обидно, что никто не готов им платить 100$ за совет по настройке учрежденческой АТС панасоник. На форумах, таких, как http://forum.officeats.ru и прочих похожих есть весьма знающие люди, такие как НачШтаба, SergA, и т.д., но лет 5-10 назад они что то советовали, а ныне задают пару уточняющих вопросов, а потом рекомендуют обратиться за помощью к специалистам, либо просто мешают вопрошающего с говном. Либо , неточная цитата "Переведите мне 100$, я Вам за 5 мин всё настрою".
Вот еще пример: https://www.linux.org.ru/forum/general/14943017
Товарищи Turbid и NobleWolf тихонечко подъёбывают начинающего с высоты своего опыта, при это толком не говоря в чём проблема. В итоге когда их советы оказываются нерабочими, рекомендуют качать готовую сборку.
Ух, печёт от таких советчиков. И таких в мире телефонии оказалось прям вот много, что несколько затрудняет погружение в тему.

Грабля №4. В 2016 году примерно вышла 3-я версия dahdi. В ней исключили все  "старые" (по мнению digium) карты из поддержки. Т.е. моей карты там, блин, нет. Я пол-дня продрючился, пытаясь понять почему не грузится драйвер карты, перед тем, как понял что wcte11xp.so тупо нет в последней сборке dahdi. Ух, бля, негодяи. Ловля чёрной кошки в тёмной комнате как она есть.
Спасибо товарищу на каком то безымянном форуме, он указал на этот досадный факт.

Грабля №5. Начал под Ubuntu 20.04 собирать dahdi 2.xx - не собирается. Требует старые хедеры для сборки, под 20.04 я их не нашел, беда-печаль. Не хватило ква-квалификации для сборки старого dahdi. Кстати, из репозитория по " # apt install dahdi" ставится как раз dahdi 2.xx, но не работает. Ставится как то криво.
Но на сайте OpenVox (кто бы мог подумать, да) нашёлся всё же dahdi 3.1.0 с поддержкой старых карточек, и он нормально собрался в ubuntu 20.04. Алилуйя! А говорят - берите фирменное, нативное железо! Поддержка лучше, дольше. Ага, щаз. Китайская карта актуальна и поныне, в 2022г., а оригинал в 2016 сдох. Понятно, что и оригинал (Digium Wildcard TE110P) заведётся на опенвоксовских драйверах скорее всего, но сам факт вот этого плевка в душу от digium меня расстраивает.
Вот ссылочка: https://www.openvox.cn/pub/drivers/dahdi-linux-complete/

Ну и далее, укажу сейчас кратенький гайд, чего уж теперь тянуть то. Себе на память и добрым молодцам (и девицам так же) в помощь.
К коллайдеру!

Ставим ubuntu server 20.04 server. При установке ставим ssh.

$ sudo -s
# apt-get update && apt-get upgrade -y
# apt-get install mc wget build-essential git autoconf subversion pkg-config libtool -y
# mc
Смотрим, какое имя у нашей флешки
# fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/sdb4 * 256 31129599 31129344 14,9G c W95 FAT32 (LBA)
Монтируем флешку в папку /mnt
# mount /dev/sdb4 /mnt

Заходим mc в архив asterisk-18.tar.gz и копируем папку asterisk-src в домашнюю папку. У меня это /home/pbx


И извлекаем флешку

# umount /mnt

Ставим dahdi, dahdi-tools и libPRI:

# cd /home/pbx/asterisk-src/dahdi-linux-complete-3.1.0+3.1.0
# make
# make install
# cd ..

# cd dahdi-tools-3.1.0
# autoreconf -i
# ./configure
# make install
# make install-config
# dahdi_genconf modules
# cd ..

# cd libpri-1.6.0
# make
# make install
# cd ..
# cd dahdi-tool-distr
# cd ..
С помощью mc копируем бинарник dahdi_tool в /usr/sbin

Эта утилита почему то не компилируется с dahdi, хотя в исходниках она есть, и сообщений об ошибках в процессе не было, странно. Я тупо себе на флешку скопировал бинарник dahdi_tool из репозиторной установки, когда ещё ставил dahdi по apt-get. Он нормально заработал.


Ставим сам asterisk:

# cd asterisk-18
# contrib/scripts/get_mp3_source.sh
# contrib/scripts/install_prereq install
В середине процесса вводим телефонный код, или оставляем как есть, оно ни на что не влияет далее
Завершается вот так:
#######################################
## install completed successfully

#######################################

# ./configure

В конце будет ASCII логотип asterisk

# make menuselect

Выбрать format_mp3 и остальное по желанию. Убедиться, что помечен chan_dahdi в Chanel Drivers

# make
# make install
# make samples
# make basic-pbx
# make config
# ldconfig
# cd ..

Создаём пользователя asterisk без домашней папки, допускаем его к группам dialout, audio, и даём ему все права в папках с конфигами.

# adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk
# usermod -a -G dialout,audio asterisk
# chown -R asterisk: /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk /etc/dahdi
# chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk /etc/dahdi

Чтобы настроить Asterisk для запуска от имени вновь созданного пользователя asterisk, откройте файл /etc/default/asterisk

И добавьте либо раскомментируйте эти строчки:

AST_USER="asterisk"
AST_GROUP="asterisk"

Стартуем Asterisk:

# systemctl start asterisk

И ставим службу астериска в автозапуск:

# systemctl enable asterisk

Астериск установлен. Настраиваем конфиги DAHDI и ASTERISK


/etc/dahdi/system.conf

Основная строка выглядит так: span => <Number>,<Timing>,<Line BuildOut>,<Framing>,<Coding>[,Yellow]
Например, span = 1,1,0,ccs,hdb3,crc4
Number: номер платы
Timing:
0 - Порт является источником синхронизации (master)
1 - Получает синхронизацию с удаленной станции (slave)
2 - Receives secondary backup timing from remote end
3 - Receives tertiary backup timing from remote end
4 - Receives quaternary backup timing from remote en
При работе с "железной" АТС рекомендуется ставить АТС в мастер, а астериск в слейв, ибо с тактированием у этих карточек печально всё.
span = 1,1,0,ccs,hdb3,crc4
bchan = 1-15,17-31
dchan = 16
loadzone = ru
defaultzone = ru
или, как вариант:
span=1,1,0,ccs,hdb3
bchan=1-15,17-31
dchan=16
echocanceller=oslec,1-15,17-31
loadzone = ru
defaultzone = ru

/etc/asterisk/chan_dahdi.conf

[trunkgroups]
[channels]
language =ru
usecallerid =yes
callwaiting =yes
usecallingpres =yes
callwaitingcallerid =yes
threewaycalling =yes
transfer =yes
canpark =yes
cancallforward =yes
callreturn =yes
echocancel =yes
echocancelwhenbridged =yes
echotraining =yes
callerid =asreceived
group=1
;[E1]
context = from-internal
switchtype = qsig
signalling = pri_cpe
channel => 1-15,17-31

Включаем запуск модуля DAHDI в asterisk (добавляем строку в файл)

/etc/asterisk/modules.conf
load = chan_dahdi.so

На всякий случай ещё раз назначаем уровни доступа к файлам и владельцев, это на случай если конфиги создавали новые, а старые переименовывали. Мы ж всё из под рута делаем. А потом астериск ноет, что не могу загрузить файл конфигурации. Астериск то из под пользователя asterisk стартует. Перезагружаемся.
# chown -R asterisk: /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk /etc/dahdi
# chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk /etc/dahdi
# reboot

Заходим под суперюзера:

# sudo -s

И, волнительный момент, заходим в консоль Астериска:

# asterisk -rvvvv

Это распространённые команды Asterisk для dahdi:

*CLI> dahdi show channels

*CLI> dahdi show status

*CLI> dahdi restart

Так смотрим в каком состоянии находится поток E1

*CLI> pri show spans

PRI span 1/0: Up, Active

По нажатию "?" выпадает подсказка.

Так вот, если при наборе
*CLI> ?

Если вдруг в списке подсказок нет ни pri, ни dahdi, значит, либо dahdi не запускается, либо asterisk его не видит. Надо искать проблему.
Во первых, проверить, что сервис dahdi нормально стартует.
# service dahdi status

Должно выпасть сообщение, что dahdi запущен, модуль драйвера (wcte11xp - для моей карточки) запущен, или будет жаловаться на что то. Тут надо гуглить и разбираться.


# lspci -v
04:00.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: Device 795e:0001
Flags: bus master, medium devsel, latency 64, IRQ 17
I/O ports at d000 [size=256]
Memory at f7c00000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Kernel driver in use: wcte11xp
Kernel modules: netjet, wcte11xp
У меня OpenVox D110P. Он определяется так.
Видим лишний драйвер netjet. Его можно забанить в системе, если dahdi_hardware ругается на него. Я не стал.

# dahdi_hardware
pci:0000:04:00.0 wcte11xp+ e159:0001 Digium Wildcard TE110P T1/E1 Board
Вот если тут жалуется на netjet, тогда баним
Что бы забанить надо пойти в
/etc/modprobe.d/blacklist.conf
и там вбить
blacklist netjet

и перезагрузить систему


Позволяет смотреть сконфигурированные каналы dahdi:

# dahdi_tool

Смотрим прерывания:
# cat /proc/interrupts
17: 5727 7551876 IO-APIC 17-fasteoi wcte11xp
Драйвер висит на отдельном прерывании, всё ок. Функции ACPI не мешают. Но если на этом же прерывании висят какие нибудь USB, SATA, то нормальной работы карты можно не ждать. В современных биосах (хотя материнка с простым PCI это та ещё современность, да уж) нет настройки прерываний. Так что остаётся молиться и надеятся. Можно попробовать повесить обработку прерывания на другое ядро. Мне пришлось менять материнку.
Далее настраиваем диалплан в астериск, как обычно:
exten => s,1,Dial(Dahdi/g1/101,,tT)

это звонок в E1 на панасоник на номер 101, как пример

Вот такая вот история. Надеюсь, я изрядно повеселил Вас в это прекрасное субботнее утро. Тешу себя надеждой, что данное обобщение общесетевой мудрости кому то когда то пригодится. На очереди - борьба с АТС Панасоник, как только карта PRI30 дойдёт. Историю этой борьбы я так же изложу на пикабу.

Всем удачи, счастья, и т.д.
Показать полностью

И еще немного про элементы Пельтье

Решил тут себе замутить холодильничек. В автомобиль что бы можно было поставить, да на работу взять. Можно конешно и купить, но это не интересно же. К тому же с давних времен валялись у меня элементы Пельтье. И вот читаешь интернет, и все пишут, что разница в 30'С относительно комнатной это недостижимый результат. Поэтому я прям начал задумываться о двухступенчатых системах. И начал эксперименты. Главная задача - отвести тепло от горячей стороны элемента. И я думал, что лучше кулера на тепловых трубках и быть ничего не может. И собрал следующий стенд:

И еще немного про элементы Пельтье Элемент Пельтье, Холодильник, Своими руками, Длиннопост, Рукоделие с процессом

Кулер неплох, три тепловых трубки, должен отводить 150 ватт тепла. Для китайского элемента tec1-12715 вроде как в самый раз. Но в комнате +25, а на радиаторе всего +12.

И еще немного про элементы Пельтье Элемент Пельтье, Холодильник, Своими руками, Длиннопост, Рукоделие с процессом

Поэтому эксперимент был продолжен, и я решил попробовать водянку. В интернетах пишут о её неэффективности, что мол лучше тепловых трубок ничего ещё не придумано. Но практика - критерий истины, подумал я и из подручных материалов собрал стенд №2. В него вошли:
- радиатор от печки автомобиля Газель;
- насос от аквариума;
- блок с двумя элементами TEC1-12715;
- ПВХ трубки;
- термометр;
- вентилятор 220 В, никто не мешает использовать кулеры от компа.

И еще немного про элементы Пельтье Элемент Пельтье, Холодильник, Своими руками, Длиннопост, Рукоделие с процессом

Собираем всё это дело, заливаем воду, в комнате +24 'С.

И еще немного про элементы Пельтье Элемент Пельтье, Холодильник, Своими руками, Длиннопост, Рукоделие с процессом

И меньше чем за минуту температура проседает сперва до - 15'С, потом подрастает, так как вода в системе подогревается, и всё это стабилизируется на -10'С.

И еще немного про элементы Пельтье Элемент Пельтье, Холодильник, Своими руками, Длиннопост, Рукоделие с процессом

Что сказать, такого я не ожидал. Дешёвый китайский водоблок играючи отводит ~300 Вт тепла.

И еще немного про элементы Пельтье Элемент Пельтье, Холодильник, Своими руками, Длиннопост, Рукоделие с процессом

В этих наших интернетах умно рассуждают про водоблоки с микронасечками, дабы увеличить площадь теплоотдачи, взвешивают водоблок, что бы выяснить количество меди, а тут какой то люминиевый водоблок так себя показывает. Я потрясён, дамы и господа, я потрясён. Уже клею коробку из пенополистирола экструдированного, и скоро у меня будет портативный холодос. Ура.

Показать полностью 6

Raspberry Pi и новый Raspbian. Приятное удивление

Итак, я снова Вас приветствую на волнах пикабу. Устав обжираться салатиками я сдул пыль со своей третьей распберри пи и решил посмотреть как там поживает свежий распбиан. Скачал его (https://www.raspberrypi.org/downloads/raspbian/) с офф сайта, раскатал на микро SD карту, и...

Он поразил меня прямо в сердце. Новый распбиан с ядром Buster уже вполне может претендовать на полноценный компьютер. Если раньше (ядра Jessie и Stretch) это была дикая поделка для упоротых гиков, и я лично способен был использовать лишь как тонкий терминал на виндовс-машину (коннектился к ноуту жены с пропатченной семёркой на мульти-пользовательский режим и работал на нём), то на бастере уже можно жить.


Но этой статьи не было бы, если бы всё было так просто. Linux-way тернист, и полон чудных багов, которые приходится героически бороть. О них я и поведаю Вам  сегодня.


Для начала обновимся

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

1. Традиционная ошибка для распбиана - не работает переключатель раскладки клавиатуры. Поэтому на этапе начальной настройки при первом включении системы рекомендую выбрать английский язык в качестве умолчательного. Подключиться к домашнему wi-fi, и затем, после первоначальной настройки, уже донастроим русскую раскладку.

А. Если при настройке вы не выбрали русскую локализацию - теперь самое время. Я выбирал русскую локаль и английскую клавиатуру, поетому пропущу пункт А. Но Вам, возможно, пригодится.

Идем в меню Preferences—> Raspberry Pi configuration

Выбираем закладку Localisation.

Жмем кнопку Set Locale…

Напротив Language выбираем из списка ru (Russian).

Страна и набор символов настроятся автоматически.

Coutnry RU (Russia)

Character set UTF-8

Жмем OK, еще раз ОК и на запрос о перезагрузке нажимаем Yes.

Б. Добавляем апплет на Панель задач

Щелкаете правой кнопкой на Панель задач в любом свободном месте.

Выбираете Добавить/убрать элементы панели.

Нажимаете Добавить и ищете в списке Обработчик раскладки клавиатуры.

Выбираете его, и нажимаете Добавить.

Нажимаете OK.

На панели в правом углу появился британский (американский) флаг, это и есть переключатель.


Щелкаете по нему правой кнопкой мыши.

Выбираете самый первый пункт Обработчик клавиатуры Settings.

Снимаете галочку Сохранить системные раскладки.

В разделе Раскладки клавиатуры нажимаете Добавить.

Из списка выбираете ru Русская (или ту что вам по нужно) и нажимаете OK

Жмете кнопку с названием grp:shift_caps_toggle (кто-то из разработчиков поленился подписать её как Переключатель раскладки).

Выбираете удобные вам варианты переключения и нажимаете OK.

Теперь запишите с кнопки название переключателя например grp:ctrl_alt_toggle, поскольку на следующем шаге все равно настройки не сохраняются.

Щелкните x в правом верхнем углу окна, потому что кнопка закрыть не работает и настройки не сохраняются в файл, а работают только до завершения сеанса.


3. Чиним

Открываем Файловый менеджер и жмем Ctrl+H чтобы увидеть скрытые файлы.

По умолчанию он откроется в папке /home/pi.

Идем в папку .config -> lxpanel -> LXDE-pi -> panels и открываем файл panel

Ищем в самом конце раздел


Plugin {

type=xkb

Config {

Model=pc105

LayoutsList=gb

VariantsList=,

ToggleOpt=grp:shift_caps_toggle

}

}


И в разделе LayoutsList стираем gb и пишем us,ru

В разделе ToggleOpt заменяем значение на то которое вы переписали с кнопки.

В следующей строке добавляем параметр KeepSysLayouts=0

Получится что-то такое


Plugin {

type=xkb

Config {

Model=pc105

LayoutsList=us,ru

VariantsList=,

ToggleOpt=grp:ctrl_alt_toggle

KeepSysLayouts=0

}

}


Жмем Файл -> Сохранить

И перезагружаемся.


Итак, радость, счастье, русская раскладка.


В состав распбиана входит неплохой браузер, который покрыл все мои хотелки. Ютуб крутится, учи.ру у дочери запускается, вацап... А вот вацап предложил пройти прямо нахрен. Хромиум ему не нравится. Либо хром, либо огнелис, осёл, опера и посвежее, посвежее. Ну видимо дело в USER-agent подумал я. Так и есть.

Ставим дополнение User Agent Switcher

Raspberry Pi и новый Raspbian. Приятное удивление Rpi, Raspberry pi, Длиннопост

Меню - дополнительные инструменты - расширения.

Расширения (в левом верхнем углу) - открыть интернет-магазин Chrome - Поиск по магазину - вбиваем "User agent switcher" - Установить.

Переходим на вкладку chrome://extensions/

Жмем на плагине User Agent Switcher кнопку "подробнее"

Разрешить расширению просмотр и изменение ваших данных на посещаемых сайтах

- на выбранных сайтах, и вбиваем "https://web.whatsapp.com/*", ведь нам же не нужно что бы оно везде подменяло user-agent.

Закрываем вкладку.

Правой кнопкой теперь по иконке UAS на панельке инструментов хромиума - параметры.

И забиваем новый пресет

New User-agent name - Whatsapp

New User-Agent String - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36

Group - Whatsapp

Append? - Append

Indicator Flag - WA

Жмём "Add"

Выбираем наш пресет на иконке UAS, и идем на https://web.whatsapp.com/

Там сканируем QR-код, и вот у нас работает вацап. Возможно, потребуется почистить куки.


Так же в новом распбиане есть чудный VLC-плеер. Если ему скормить плейлист, то можно посмотреть телеканалы. Например вот этоту ссылку ему дать: https://smarttvnews.ru/apps/iptvchannels.m3u


Ну либре офисом никого нынче не удивить. Дочь-первоклассница сумела вполне спокойно сделать презенташку "как я провела зимние праздники" в школу.


Попутно решилась проблема примонтирования к сетевому диску по SAMBA. Видите ли тут теперь надо явно указывать версию, хоть в манах пишуть, что v1.0 - умолчательная. Врут.

Сперва открываем терминал.

sudo apt-get mc

Ну нравится он мне, предпочитаю делать всё через него.

sudo mc

ИИИ, F10 не работает как выход из mc

Меню LXTerminal Правка - параметры - расширенные - отключить горячую клавишу для меню (F10 по умолчанию) - ок

Урря!

Идём в mc в директорию /media и создаём там директорию, в которую будем монтировать наш сетевой диск. Например, 3000. Даём всем права на чтение запись и тагдалие. Файл-права(расширенные) - и всем ставим rwx.

Ну и вбиваем команду.

sudo mount -t cifs //192.168.7.1/3000 /media/3000 -o dom=WORKGROUP,username=vs145,password=pass,iocharset=utf8,file_mode=0777,dir_mode=0777,vers=1.0

размонтировать соответственно, наоборот:

sudo umount /media/3000

Если хотим, что бы оно примонтировалось при загрузке, то делаем так:

sudo nano /root/.smbcredentials
В этот новый файл добавьте две строки:
username=vs145
password=pass
где, соответственно, vs145 – имя пользователя с необходимыми правами доступа к ресурсу Windows, pass – пароль этого пользователя. Измените права созданного файла так, что редактировать и смотреть его смог только root, то есть сама система:
sudo chmod 700 /root/.smbcredentials
Сохраните изменения и переходите к редактированию файла /etc/fstab:
sudo nano /etc/fstab
И здесь в самом конце добавьте строку типа:
//192.168.7.1/3000 /media/3000 cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
Я так не делал, я просто создал 3000-подключить.sh и 3000-отключить.sh файл на рабочем столе и монтирую когда мне надо.


Ну а теперь самое приятное для меня.

В далёкие-далёкие времена, когда я был студентом я любил быдлокодить на делфи. Ибо в институте мы два года грызли гранит паскаля. И наконец то для АРМ вообще и для распбиан в частности есть лазарус. И ставится он наконец то без танцев с бубнами, а просто в две строки. О боже, я восхищён.

Всё описано здесь: https://wiki.freepascal.org/Lazarus_on_Raspberry_Pi

Для ЛЛ:

sudo apt-get install fpc
sudo apt-get install lazarus

И всё, мы снова падаем в прошлое, и вот он, перед нами почти тот же Делфи 8, за которым я провёл не одну бессонную ночь раскуривая делфийский хелп, ибо не было у меня тогда интернета.

Сразу же сдул пыль со своего любимого ляпника и наляпал моргалку светодиодами через контакты ввода-вывода (GPIO), которые есть на каждой распберри пи, и на оранж пи и даже на мааахонькой распбери пи зеро.

Raspberry Pi и новый Raspbian. Приятное удивление Rpi, Raspberry pi, Длиннопост

Пример с https://wiki.freepascal.org/Lazarus_on_Raspberry_Pi естественно, не работает. Я прослезился во второй раз и вспомнил книжки по делфи, в которых примеры были рабочими чуть меньше чем нихрена.


Если вдруг кому станет интересно, то могу рассказывать дальше о волнующих приключениях в мире быдлокодинга. В планах превратить свой сканер Epson Perfection 600 в крутейший Wi-Fi сканер с экранчиком, менюшкой, и прямой печатью на принтер. Для этого уже плывёт ко мне из далёкого китая RPI Zero W и micro-SD карточка на 8Гб U3. Этот сканер я купил на Авито за 500 рублей (потому что Epson последние драйвера сделала только для WindowsXP, и забила болтец, а sane из линукса поддерживает его до сих пор).


Короче, благодаря этой игрушке и так же свободному времени на праздниках я почувствовал себя вновь молодым. PIXEL (aka LXDE) сильно напомнил мне win98 своим аскетизмом, а lasarus - сильно смахивает на Delphi моей молодости.

Raspberry Pi и новый Raspbian. Приятное удивление Rpi, Raspberry pi, Длиннопост

Всем бобра, удачи в новом году и побольше, черт побери, позитива!

Показать полностью 3

Изготавливаем медиацентр на Raspbery Pi

Приветствую Вас, уважаемые читатели, и особенно приветствую моего единственного подписчика (тов. майор?). Сегодня, по просьбе товарища @system1024 я обрисую как сделать из микрокомпьютера Raspberry Pi домашний медиацентр. Вообще, медиацентр, в моём понимании, это не вещь в себе, это некая в первую очередь, сетевая инфраструктура. Локальная сеть, так сказать, для дома, для семьи.
Как выглядит сие у меня дома сейчас и как я планирую сделать.
На данный момент у меня центром домашней сети является интернет-центр ZyXel Keenetic Viva, купленный по случаю года 4 назад. Живёт он в антресольке в коридоре, вместе с принтером и USB-разветвителем и мощным блоком питания на 12В, который всё это кормит.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Вообще, мне нравятся кинетики, там, как мне кажется, именно максимальный функционал при домашней простоте настройки. Да, те же микротики на порядок более гибкие, но настроить сходу в микротике все функции, что мне нужны — ну так себе квест. А нужно мне следующее:
- Собственно роутер для домашней сети на гигабите. Ну и ви-фи, кудаж без него.
- Подключение принтера и жесткого диска. Доступ к жёсткому диску по протоколу самба.*
- Торрентокачалка.
- VPN** сервер.
Согласитесь, сходу поднять сие на микротике, или OpenWRT — задача для людей, которые хорошо представляют что делают. Кинетик же позволяет во многих случаях действовать по наитию.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Хемуль, преисполнясь жаждой мщения, взял и прорыл канал от своей ямки к Снорку.
- Это, Хемуль, знаешь что! - сказал Снорк, вскакивая в намокшем одеяле. - Вот уж не думал, что ты горазд на такие фигли-мигли!
- Я это по наитию! - радостно сообщил Хемуль. - Ну, что мы теперь будем делать?

*Samba – протокол, позволяющий получать через локальную сеть доступ к разнообразным сетевым ресурсам. К сетевым дискам, к принтерам и т.д. Рождён в Windows, потому широко распространён.
** VPN – Virtual Private Network «виртуальная частная сеть» - обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например Интернет). Смысл в том, что между Вашим устройством и роутером устанавливается шифрованное соединение, и вы, находясь вне дома, получаете доступ к домашним ресурсам, как будто сидите на диване через wi-fi. Шифрование, правда, так себе, но речь тут не об этом.

Итак, после описания домашней сети приступим, собственно, к медиацентру.

Собственно, медиакомбайном во всех дистрибутивах выступает программное средство KODI. Он есть на Windows, есть на линукс, есть на андроид. Оптимизированных под RPi достойных дистрибутива мне известно ровно два – LibreELEC и OpenELEC. Либра – это быстроразврывающийся дистрибутив, более свежее ПО, но я столкнулся с проблемой. После месяца работы отваливается плагин ютуба. А мне он то и нужен в основном. Дочери сидят и запускают с телефонов на большой экран видосики. Поэтому съехал на OpenELEC и полёт нормальный уже год как.
Итак, довольно слов

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Идём на сайт OpenELEC
https://openelec.tv/downloads
Раскрываем веточку Raspberry Pi Builds
И качаем для той платы, которая есть у нас. У меня RPi 2 B+ Соответственно выбираю
Raspberry Pi2 and Raspberry Pi3 Second-Generation quad core models (Model B 1024MB) ARM Builds
и выбираю stable версию – zip файл.

Пока качается – скачиваем средство для записи всего этого на micro-SD карту памяти. Это программка Win32DiskImager. Идём на ее сайт и качаем.
https://sourceforge.net/projects/win32diskimager/
Жмём огромную зелёную кнопку DOWNLOAD.
Качаем и устанавливаем.
Затем пишем образ на карту памяти. Вот тут хорошо описано, как.
http://wiki.amperka.ru/rpi:installation:sd

Внимание! Карта должна быть минимум класс 10 U1. Лучше U3. Хватит 8 гигов с головой.

После того, как записали карту, вставляем ее в наш Rpi. Подключаем по HDMI к телевизору, и подаём на него питание. Так же строго рекомендуется подключить хотя бы клавиатуру. Ну, чисто для удобства. Если всё сделано верно, то увидим такую заставку:

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Во время первого запуска система самонастроится и перезагрузится. Не надо ей в этом мешать. После перезагрузки появится мастер первоначальной настройки.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Жмем Next

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Здесь можно настроить сетевое имя нашего медиацентра

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Здесь можно настроить сеть. Я задам статический IP-адрес, что бы программа управления с телефона каждый раз его не искала. У меня RPi 2, поэтому беспроводной сети нет.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост
Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост
Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

SSH в принципе не нужен, а самба пригодится. Если что, тут предупреждают - пользователь - root, пароль - openelec. Если вдруг решили включить ssh не забудьте поменять потом пароль.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

И вот мы радостно видим главный экран медиаплеера. Увы, на английском. Идём в настройки (это та вон шестерёночка вверху-слева).

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Там идём в настройки интерфейса...

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Regional - Language - и там выбираем русский.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

И - оппа - всё на русском.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Выходим в главное меню, идём в раздел дополнения. Там надо установить поддержку ютуб и iptv. Выбираем "Установить из репозитория".

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Все репозитории...

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Клиенты PVR...

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

PVR IPTV Simple Client. Устанавливаем его и настраиваем.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост
Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост
Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост
Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Вбиваем сюда какой-нибудь общедоступный плейлист. Например вот:
https://smarttvnews.ru/apps/iptvchannels.m3u

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост
Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Вроде всё, но каналы появятся после перезагрузки.
А пока ставим плагин (дополнение) для Youtube.

Изготавливаем медиацентр на Raspbery Pi Raspberry pi, Медиацентр, Kodi, Длиннопост

Видеодополнения-Youtube-установить. Всё. Теперь можно устанавливать приложение на телефон. Тут подкралось ограничение Picabu на количество картинок в одном посте, но тут уже и так всё проще некуда. Идём на вашем телефоне в магазин приложений (у меня андроид, так что буду говорить за него), и находим в плеймаркете приложение ПДУ Kodi. Ставим его. Запускаем. Он сам найдёт Ваш медиацентр, останется только его выбрать.
Теперь открываем на телефоне приложение youtube. Ищем видосик, и не запуская его, жмем значок с тремя точками и выбираем "поделиться". И там находим "Отправить на Kodi". Всё.
У вас настроен ютуб и IPTV.

Показать полностью 25
Отличная работа, все прочитано!