프로젝트 소개
jiofiber-bridge는 JioFiber(Jio Fiber Voice / JioCall over broadband) 유선 전화를 일반 SIP 소프트폰으로 발신 및 수신할 수 있게 해주는 템플릿 프로젝트입니다. Jio는 일반적으로 ISP 라우터나 JioCall 앱에서만 실행되는 JUICE라는 독점 클라이언트를 통해 IMS 코어로 음성을 전달합니다. 이 프로젝트는 라우터와 동일한 LAN에서 소규모 헤드리스 브리지를 실행하여, 실제 JioCall 디바이스처럼 IMS 코어에 등록하고 해당 회선을 일반 SIP 트렁크로 재제공합니다. Asterisk를 해당 트렁크에 연결하면 Zoiper, Groundwire 또는 Linphone과 같은 소프트폰으로 어떤 네트워크에서나 유선 전화로 통화하고 수신할 수 있습니다.
아키텍처: 브리지는 B2BUA로, IMS 코어가 라우터와만 통신하고 RTP가 LAN 인터페이스에서 시작해야 하므로 가정 LAN에 있어야 합니다. 한쪽은 라우터와 JUICE/IMS(TLS 시그널링, AMR/AMR-WB 오디오)로 통신하고, 다른 쪽은 pjproject의 컨퍼런스 브리지를 통한 AMR-to-PCMU 트랜스코딩을 포함하는 일반 SIP/PCMU 트렁크입니다. Asterisk는 폰이 등록하는 작은 공개 VPS에서 실행되며, 다이얼된 번호를 정규화하고 인바운드 시 폰을 울리며 발신자 ID를 전달합니다. 브리지와 Asterisk는 프라이빗 오버레이 네트워크(Tailscale 또는 WireGuard)로 연결되므로 가정에서 SIP 포트가 노출되지 않고 VPS는 폰용 레지스트라만 노출합니다.
README는 세 가지 어려운 문제를 강조합니다. 첫째, ID: JUICE 등록은 특정 형식(대문자, urn:uuid: 접두사 없음)의 +sip.instance를 사용하는 RFC 5626 아웃바운드와 디바이스별 회전 비밀번호, OTP 플로우를 통해 화이트리스트된 디바이스를 사용합니다. stock pjsua는 instance를 다르게 포맷하여 코어가 REGISTER를 조용히 드롭합니다. 둘째, 미디어: 코어는 mode-set으로 AMR/AMR-WB를 제공하며 SDP에 이를 에코하여 기대하며, 그렇지 않으면 약 1~2분 후 통화가 종료됩니다. 셋째, 인바운드 포킹: 코어는 완전한 RCS/MMTEL 기능 태그 세트와 JioCall 유사 User-Agent를 광고한 연락처만 울립니다. mmtel만으로 등록하면 아웃바운드는 작동하지만 인바운드는 절대 울리지 않습니다.
요구 사항에는 root 권한이 있는 가정 LAN의 상시 실행 Linux 머신, Asterisk 18+용 작은 공개 VPS, 오버레이 네트워크, AMR 코덱 개발 헤더가 포함된 빌드 도구, IMS 계정 세부 정보(공개 ID, 인증 사용자 이름, realm, 레지스트라/라우터 주소), 제공업체의 디바이스 추가 OTP를 트리거할 수 있는 능력이 포함됩니다. 저장소는 B2BUA 소스 파일, 3개의 pjproject 패치(AMR mode-set, +sip.instance 형식, contact_params 누적 가드), 빌드 구성, bridge.env.example, 등록 및 헬스체크 스크립트, 정적 업스트림 IMS 다이제스트 비밀번호용 자격 증명 복구 헬퍼, Asterisk pjsip/extensions/rtp 구성, 브리지 및 2분 헬스 타이머용 systemd 유닛을 제공합니다.
설정 단계에는 패치된 pjproject 빌드, bridge.env 구성, 디바이스 프로비저닝(화이트리스트 및 매 시작 시 회전 비밀번호 가져오기), 서비스로 브리지 실행, Asterisk 엔드포인트 및 트렁크 구성, 소프트폰 등록, 브리지를 재시작하고 ntfy 알림을 게시할 수 있는 헬스체크로 모니터링이 포함됩니다. README는 또한 번호 정규화(오프넷 모바일에는 STD 0 접두사가 필요하거나 코어가 484 Address Incomplete를 반환함), RFC 4733 DTMF 릴레이, X-Jio-Caller 및 P-Asserted-Identity/Remote-Party-ID 헤더를 통한 인바운드 발신자 ID, WAV 형식 및 절대 경로 주의 사항이 있는 선택적 인바운드 IVR, Grandstream UCM 및 FreePBX(IVR는 초기 미디어 재생 대신 응답해야 함)와 같은 다른 PBX에 대한 가이드, EARLY_ANSWER 이스케이프 해치를 문서화합니다. 특이 사항 섹션은 조용한 REGISTER 드롭, 1~2분 후 통화 종료, 장시간 업타임 후 PJ_ETOOSMALL, 멀티호밍 RTP로 인한 단방향 오디오, 기능 태그 누락으로 인한 인바운드 미울림 등 증상을 원인과 매핑합니다. 모든 것은 실제 번호, IP, 비밀번호 또는 제공업체 호스트네임이 없는 템플릿이며, 프로젝트는 MIT 라이선스이며 면책 조항을 포함합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.