Ийгиликтүү каттоо үн жөнүндө дээрлик эч нерсе айтпайды. Программалык телефон кеңседеги PBX менен сааттар бою жарактуу байланышты кармап, ошентсе да тынчтык жөнөтө алат. Туннель кимдир бирөө атайын жөнөткөн пакеттерди гана ташыйт, ал эми чалуу үч өзүнчө жолду колдонот: байланыш, диалог орнотуу жана RTP агымы. Аларды бөлгөндө, бузулуу VPN деген сөзгө эмес, бир жолго түшөт.

Үйдүн Wi-Fi тармагындагы ноутбуктун бекитилген туннель аркылуу кеңсе ички номерин тергенин элестетиңиз. PBX колдонуучуну аутентификациялайт, REGISTERди кабыл алат жана ички номер жеткиликтүү болуп көрүнөт, бирок чалуу бир багытта толук тынчтык менен туташат.

Каттоо контактны байланыштырат, медиа жолун эмес

REGISTER суроосу каттоочудан жазуу дареги менен бир же бир нече контакттык URI ортосундагы шайкештикти сактоону сурайт. Бул шайкештик жаңы диалогду азыр кайда жөнөтүү керек деген тар суроого жооп берет. Ал медианын кайда тиешелүү экени тууралуу эч нерсе айтпайт, жана кабыл алынган каттоо кийинки INVITE жеткиликтүү медиа дарегин алып жүрөрүн далилдебейт. Каттоолор таймер менен бүтөт, ошондуктан жаңыртууну токтоткон телефон туннели дагы эле соо көрүнсө да кирүүчү чалууларды жоготот. Туннелдин абалына эмес, контакттын мөөнөтүнө көңүл буруңуз.

Программалык телефон туннелдин артында турганда, контакт аталышы жеке даректи алып жүрүшү мүмкүн. Аны башка акыркы чекитке өткөрүп берүүчү PBX чакырылган тарап жете албаган тармакка багытталган диалог түзөт. PJSIP акыркы чекитинде rewrite_contact=yes жөндөө PBXти байкаган булак дареги менен алмаштырууга мажбурлайт, жана бул көбүнчө шакек үнү менен убакыт бүтүүнүн айырмасы.

INVITE эмнени сунуштайт жана аны ким колдоно алат

SDP денеси бар INVITE чалуучунун медианы кайда кабылдагысы келерин сунуштайт: дарек, порт жана кодектердин тизмеси. Чакырылган тарап өз дареги жана порту менен жооп берет, анан ар бир тарап экинчиси сунуштаган жерге RTP жөнөтөт. Эгер чалуучу үй тармагында гана бар 192.168.x.x дарегин сунуштаса, сигнал канчалык таза болбосун, чакырылган тараптын үн жөнөтө турган жери жок. Маскировка пакеттер маршрутизатордон чыкканда IP аталыштарын кайра жазат, бирок SDP денесинин ичиндеги текстти эч качан кайра жазбайт.

Бул ажырым классикалык бир багыттуу чалууну түшүндүрөт: сигнал эки акыркы чекит те PBXке жеткендиктен иштейт, ал эми үн бир акыркы чекитке башка NATтын артында гана болгон дарекке жөнөтүү айтылгандыктан ишке ашпайт.

PathWho picks the addressTypical failure
REGISTERSoftphone, rewritten by the registrar if configuredBinding expires or points at a private address
INVITE and SDPEach endpoint in its own offer or answerOffer names a media address nobody can route to
RTPPBX relay policy or the two endpointsPort range blocked, or no return path

Үндү ким ташыйт, бул конфигурациянын тандоосу

Сигнал жана медиа өзүнчө ролдор. Прокси бүткүл чалуу бою сигнал жолунда калып, бир да RTP пакетин кармабашы мүмкүн. PBX медиа релесине айланабы, бул конфигурацияга байланыштуу, туннелдин бардыгына эмес.

Түз медиа менен акыркы чекиттер RTPни өздөрү алмаштырат, бул бир LANда жакшы иштейт, ал эми бир тарап тар порт диапазонунун артында турса начар.

direct_media=no жөндөө PBXти медиа жолуна түртөт, ошентип эки бут тең ал көзөмөлдөгөн даректе бүтөт, бул болжолдуу даректөө үчүн өткөрүү жөндөмдүүлүгү менен процессорду алмаштырат. Реле кылганда PBX дагы эле жеткиликтүү даректи жарыялоого тийиш. Көп тармактуу хостто pjsip.conf ичиндеги external_media_address жана external_signaling_address SDPде жана Via аталыштарында эмне көрүнөрүн аныктайт. Аларды коюлбай калтырсаңыз, PBX өзүнүн LAN дарегин жалгыз жолу туннелдин алыс жагы болгон чалуучуга сунушташы мүмкүн.

Жөндөөлөргө тийиштин алдында ар бир багытты көзөмөлдөңүз

Чалуу активдүү кезде PBXтин сокет таблицасынан баштаңыз: ss -uanp | grep -E '5060|10000' RTP портторунун байланышканын жана кайсы жергиликтүү даректи колдонорун көрсөтөт. Медиа диапазонунда эч нерсе байланышпаса, реле катышпайт жана акыркы чекиттер түз сүйлөшөт. Андан кийин программалык телефон тарабында tcpdump -ni any -s0 udp portrange 10000-20000 -w rtp.pcap менен жазуу алыңыз. Кирүүчү пакеттерсиз чыгуучу пакеттер маселени кайтаруу жолуна же алыс тарапка колдонуу айтылган дарекке тарылтат, ал эми бош жазуу медиа туннелдин интерфейсине такыр жетпегенин билдирет. sngrep менен сигнал жазуусу экинчи жарымына SDP туташуу сабын жөнөтүлгөн калыбында көрсөтүү менен жооп берет.

Ошол туташуу сабындагы даректи алыс тарап чындыгында маршруттай алган дарек менен салыштырыңыз. Ушул бир салыштыруу бир багыттуу үн тууралуу отчеттордун көбүн кандайдыр бир конфигурация текшерүүсүнөн тезирээк чечет.

Шифрлөө туннелдин четине токтойт

TLS үстүндөгү SIP ал конфигурацияланган сигнал секириктерин коргойт, SRTP эки тарап келишкенде медианы коргойт, ал эми туннель өзүнүн акыркы чекиттеринин ортосундагы трафикти коргойт. Алардын эч бири калгандарын бербейт. Туннелдин ичинде шифрленген чалуу шлюзден PBXке карай ачык текст менен чыгышы мүмкүн, жана бул кемчилик эмес, долбоордук чечим.

Тикетти жаппас мурун үч нерсени ирети менен ырастаңыз: каттоо жаңы, SDP алыс тарап жете алган даректи алып жүрөт жана пакеттер медиа портторунда эки багытта да агып жатат. Ушулардын бири жалган болсо, маселе туннелде эмес. Ийгиликсиз болгон жолду оңдоп, анан өзгөртүүнү ырастоо үчүн ошол эле жазууну кайра иштетиңиз. Мурунку жана кийинки жазууларды сактоо кийинки бир багыттуу отчетту түткөн түштөн кийинкиге эмес, беш мүнөттүк текшерүүгө айландырат.

Тектеш макалалар