尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

chan_sip还是chan_pjsip?Browser Phone适配Asterisk的2种配置方案深度对比

chan_sip还是chan_pjsip?Browser Phone适配Asterisk的2种配置方案深度对比 chan_sip还是chan_pjsipBrowser Phone适配Asterisk的2种配置方案深度对比【免费下载链接】Browser-PhoneA fully featured browser based WebRTC SIP phone for Asterisk项目地址: https://gitcode.com/gh_mirrors/br/Browser-PhoneBrowser Phone 是一款功能完整的基于浏览器的 WebRTC SIP 电话专为 Asterisk PBX 设计。打开网页即自动通过 WebSocket 连接 Asterisk 并注册分机号无需安装任何客户端。而 Asterisk 的 SIP 通道驱动分为 chan_sip 与 chan_pjsip 两套Browser Phone两种都兼容但同一安装中只能二选一。本文将从新手视角深度对比这两种配置方案的差异、写法与选型建议帮你快速选对方案。一、两种SIP通道驱动有何本质区别 在动手配置之前先理解两者的定位差异对比维度chan_sipchan_pjsip项目定位传统通道驱动已进入维护状态新一代主力驱动持续积极开发主配置文件config/sip.confconfig/pjsip.conf配置风格每个用户一个扁平的 peer 段拆分为 endpoint / aor / auth 三段式模板开启 WebSocket加一行websocket_enabledyes需显式定义wss传输transportWebRTC 支持基础支持视频呼叫偶有怪异行为原生支持 DTLS-SRTP、ICE、Opus浏览器友好版本建议Asterisk 13 上表现良好推荐 Asterisk 1613 上存在视频 SDP 缺陷长期维护性逐渐被取代官方主推一句话概括chan_sip 简单直接chan_pjsip 规范且面向未来。Browser Phone 的核心依赖Opus 音频编解码、DTLS 媒体加密、ICE在 chan_pjsip 下体验更完整。二、chan_sip 方案sip.conf 三步配置法适合场景已有 chan_sip 环境的存量用户或使用 Asterisk 13 快速搭 Demo。开启 WebSocket 服务在 config/sip.conf 的[general]段加入websocket_enabledyesmaxcallbitrate5120启用 SIP 文本消息Browser Phone 的短信功能依赖它accept_outofcall_messageyesoutofcall_message_contexttextmessages添加浏览器用户为浏览器用户创建一个引用webrtc模板的 peer并配好callerid与secret账号密码。chan_sip 的写法非常平铺直叙——一个[User1]段就是一套完整账号新手几乎没有学习成本。三、chan_pjsip 方案模板化配置 pjsip.conf适合场景新建系统、长期使用、需要更完善的 WebRTC 能力。chan_pjsip 采用模板template 引用的写法核心在于 config/pjsip.conf 中的两个关键模板[wss_transport]WebSocket Secure 传输浏览器正是通过它注册进来[webrtc_endpoint]WebRTC 端点模板内置allowopus,ulaw,vp9,vp8,h264、media_encryptiondtls、ice_supportyes、rtcp_muxyes等浏览器通话必备参数。之后定义每个用户时只需一行User1把模板套上再补上typeendpoint、auth、aors三个字段即可。✅ 看起来繁琐但模板只写一次后续每加一个分机号都只需三行比 chan_sip 更易批量管理。四、关键一步modules.conf 中互斥加载⚠️ 这是最容易踩的坑chan_sip 和 chan_pjsip 不能同时启用必须在 config/modules.conf 中禁用另一方的模块。走chan_sip方案 → 屏蔽chan_pjsip.so、res_pjsip.so、res_pjsip_session.so等相关模块走chan_pjsip方案 → 屏蔽chan_sip.so。修改后重启 Asterisk 或执行模块重载module reload res_pjsip.so/sip reload即可生效。五、两种方案的共同配置拨号计划与 HTTPS 部署无论选择哪种驱动config/extensions.conf 的拨号计划结构基本一致只需把Dial(SIP/…)换成Dial(PJSIP/…)[from-extensions]分机互拨入口[subscriptions]分机在线状态hint订阅[textmessages]SIP 文本消息路由。另外两个公共必做项HTTPS 静态部署浏览器要求安全上下文才能访问麦克风/摄像头需按 config/http.conf 开启 TLS 并把 Phone/ 目录下的网页放入 Asterisk 的 static-http 目录部署时可先git clone https://gitcode.com/gh_mirrors/br/Browser-Phone获取全部配置与网页文件。Opus 编解码模块浏览器端使用 Opus 音频ARM 平台需拷贝 modules/ast-13/codec_opus_arm.so 或 modules/ast-16/codec_opus_arm.so 到 Asterisk 模块目录Asterisk 16 还需同步修正 so 文件内的校验和。六、如何快速做选择选型决策清单 使用Asterisk 13建议选chan_sip。官方明确提示 Asterisk 13 的 chan_pjsip 存在缺陷——无论呼叫内容SDP 都会带上mvideo导致所有语音呼叫都被显示为视频呼叫。 使用Asterisk 16强烈建议chan_pjsipWebRTC 体验完整DTLS 加密媒体、ICE 打洞、Opus 语音且是官方长期维护方向。存量 chan_sip 系统Browser Phone 可平滑接入无需迁移但规划新项目时别再依赖 chan_sip。团队规模较大chan_pjsip 的模板化 ACL 统一管理更便于扩展。七、新手常见问题 FAQQ1两种驱动可以共存吗不行。必须通过 modules.conf 屏蔽其一否则会出现注册行为混乱、模块相互干扰的问题。Q2浏览器打不通电话先查哪里按顺序排查HTTPS 是否正常WebSocket 需要安全上下文→ WebSocket 是否开启 → 用户账号密码是否一致 → Opus 编解码是否加载成功。Q3Asterisk 16 下 Opus so 模块加载失败Asterisk 16 会校验模块文件的校验和需按 README 指引把buildopts.h中的AST_BUILDOPT_SUM值写入 so 文件后重试。Q4除了通话还有哪些功能Browser Phone 还支持三方会议呼叫、转接盲转/协助转接、通话详单、音视频录制、视频呼叫中共享屏幕/白板详见 README.md。八、相关配置文件速查文件作用config/sip.confchan_sip 方案的 SIP 账号与 WebSocket 配置config/pjsip.confchan_pjsip 方案的 endpoint / aor / auth 配置config/extensions.conf拨号计划分机互拨、状态订阅、文本消息config/modules.conf模块加载/屏蔽实现驱动互斥config/http.confAsterisk 内建 HTTPS 静态网页服务Phone/浏览器电话的全部前端资源总结老环境用 chan_sip 快速跑通新环境直接上 chan_pjsip Asterisk 16是 Browser Phone 适配 Asterisk 的最佳实践路径。【免费下载链接】Browser-PhoneA fully featured browser based WebRTC SIP phone for Asterisk项目地址: https://gitcode.com/gh_mirrors/br/Browser-Phone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表