首页
Search
1
中兴光猫修改mac和sn
930 阅读
2
VSOL V2802RH 2.5g光猫设置
919 阅读
3
牛市股票三个买点战法
785 阅读
4
中兴3.0与4.0光猫开启telnet方法
758 阅读
5
老毛子padavan固件路由实现电视盒子同时看IPTV和上外网
633 阅读
网络笔记
教程类
登录
Search
记忆の风
累计撰写
85
篇文章
累计收到
2
条评论
首页
栏目
网络笔记
教程类
页面
搜索到
85
篇与
的结果
2026-04-06
华为R23补全改公版&公版菜单补全(V271-20)
观看本教程前你需要知道以下知识: 1.R23及以上使用R24装备模式补全的设备,在启用装备模式的情况下直接shell进入的才是全功能,su后进入shell命令不全。 2.R23及以上使用R24装备模式补全的设备,在装备模式未启用的情况下,只有su才可以进入shell,进入shell后才可以启用装备。 3.无论任何版本,启用装备模式都是无法进入web的,这不是砖头了,只要你还能使用Telnet链接设备。 4.如果你使用的B866的企业设备,本教程基本于你无用,你可以关掉本页面。 5.以下教程涉及到文件传输,即TFTP命令,如果提示超时,你检查一下你的WIndows防火墙是否放行了TFTP的软件。 常用命令解释: tftp[p上传 g拉取 l本地文件名 r远端文件名] 例:上传hw_boardinfo到192.168.100.5[如果你不需要使本地远端名称不一样可是连写-pl -gl] tftp -pl hw_boardinfo 192.168.100.5 tftp -p -l hw_boardinfo -r hw_boardinfo 192.168.100.5 例:从192.168.100.5下载hw_boardinfo tftp -gl hw_boarinfo 192.168.100.5 tftp -g -r hw_boardinfo -l hw_boardinfo 192.168.100.5 R24装备文件启停: 启用:EquipMode.sh on 停用:EquipMode.sh off教程一只适用于需要修改定制信息为CHINA+COMMON的设备。如果您的设备无需修改为CHINA+COMMON,那么您的光猫华为界面为全功能。如果你缺少对应功能只需要在修改hw_hardinfo_feature文件,在其内添加你未显示的功能。教程二只为解决首页没有修改telecomadmin密码UI和无法修改telecomadmin密码的问题,如果你没有这个需求,那么本教程于你而言无任何用处。本教程测试设备为V271-20上海联通,版本为V5R023C10S300。教程一:补全shell开始,改华为公版界面开始前你需要准备:V271-20光猫,RJ45网线一条,Windows10/11电脑一台带RJ网口,软件ONT_V100R002C00SPC253.exe,软件HW Dollar2.exe,软件TFTP64/32,文件R23改华为shell。注意:使用过程中请保证TFTP软件和ONT_V100R002C00SPC253.exe的软件被防火墙放行。1.使用RJ45网线链接电脑和光猫LAN,启动光猫。2.待电脑获取到光猫分配的IP后且光猫启动未超过五分钟,打开ONT_V100R002C00SPC253.exe,维修使能,本地网选中光猫分配给电脑的IP,点击等启动。3.此时光猫的所有LED会开始闪烁,中途软件会提示失败,无需理会,等待光猫的所有LED灯不再闪烁(常亮或常灭)时,点击ONT_V100R002C00SPC253.exe的暂停。4.光猫断电重启,然后ONT_V100R002C00SPC253.exe选择升级,记得选中光猫分配给电脑的IP,本地网选中光猫分配给电脑的IP,升级文件选中R23改华为shell,点击升级。5.此时光猫的所有LED会开始闪烁,中途软件可能会提示失败(或者成功),无需理会,等待光猫的所有LED灯不再闪烁(常亮或常灭)时,点击ONT_V100R002C00SPC253.exe的暂停。6.断电重启光猫,进入控制面板设置链接光猫网口的IP为静态IP,192.168.100.X{X可以是2-254的任意值},子网掩码设置为255.255.255.0。如果你在设置里设置,需要设置网关和DNS,网关192.168.100.1,DNS114.114.114.114/8.8.8.8。7.打开Putty[或CMD]和TFTP64[或TFTP32],Telnt链接光猫。tftp下载hw_boardinfo。使用HW Dollar2.exe打开hw_boardinfo,修改其中0x0000001b和0x00000031。修改完成后点击保存。另存为其他名字[建议hw_boardinfo_new]。通过TFTP上传恢复。关闭装备模式。重启光猫。原值obj.id = "0x0000001b" ; obj.value = "COMMON";obj.id = "0x00000031" ; obj.value = "NOCHOOSE";修改为obj.id = "0x0000001b" ; obj.value = "CHINA";obj.id = "0x00000031" ; obj.value = "COMMON";以CMD为例具体输入值如下[具体过程如下,#为注释,不带#为你输入的]:telnet 192.168.100.1 root #用户名 admin #输入密码不显示,输入完成后按回车即可 shell cd mnt/jffs2 tftp -pl hw_boardinfo 192.168.100.x #下载原光猫hw_boardinfo文件 #使用下载原光猫hw_boardinfo文件进行修改,修改上述0x0000001b和0x00000031后保存为hw_boardinfo_new,192.168.100.x替换为你设置的静态IP tftp -g -r hw_boardinfo_new -l hw_boardinfo 192.168.100.x #上传hw_boardinfo_new并改名为hw_boardinfo tftp -g -r hw_boardinfo_new -l hw_boardinfo.bak 192.168.100.x #上传hw_boardinfo_new并改名为hw_boardinfo.bak EquipMode.sh off #关闭装备模式 reboot #重启 此时公版已经修改好了。默认后台地址为192.168.100.1默认普通密码为root/admin超级密码为telecomadmin/admintelecom注意:此方法修改公版和restorehwmode.sh效果一样。修改后所有网口的DHCP都是关闭,如果你需要启用请自行去二/三层口配置勾选所有网口。教程二:添加Telentcom密码修改,IPV6防火墙,IPv6端口转发在telnet里面操作,具体见以下代码telnet 192.168.100.1 root #用户名 admin #输入密码,输入完成后按回车即可 su #切换su后进入shell,启用装备模式,退出shell重启光猫[你也可以直接拔电源] shell EquipMode.sh on #启用装备模式 exit reset #重启,等待光猫重启完毕后,telnet重新输入账号密码链接。 telent 192.168.100.1 root admin shell #直接进入shell,不要在su进入shell,su进入命令补全。 #tftp下载配置参考文件,IP记得修改为你自己的。 tftp -pl /etc/wap/customize/china/spec_china.cfg 192.168.100.x #下载后把spec_china.cfg更改文件名为hw_hardinfo_spec。 #切换目录到mnt/jffs2,ls查看你所有文件 cd mnt/jffs2 ls #如果里面有hw_hardinfo_feature,下载下载做参考文件,(一般是没有)如果没有,就无需下载,直接用我的。IP记得修改为你自己的。 tftp -pl hw_hardinfo_feature 192.168.100.x #上传你根据参考文件修改的hw_hardinfo_spec和hw_hardinfo_feature以及我提供的hw_default_ctree.xml。[hw_default_ctree.xml非必须,我提供的文件我只在R23和R24测试可用。] #hw_hardinfo_feature和hw_hardinfo_spec必须上传两份,一份原始文件,一份备份,否则会被覆盖。 tftp -g -r hw_hardinfo_feature -l hw_hardinfo_feature 192.168.100.x tftp -g -r hw_hardinfo_feature -l hw_hardinfo_feature.bak 192.168.100.x tftp -g -r hw_hardinfo_spec -l hw_hardinfo_spec 192.168.100.x tftp -g -r hw_hardinfo_spec -l hw_hardinfo_spec.bak 192.168.100.x #可选步骤,该配置文件作用为固定WIFI密码和提供近端Linkhome的地址。复位会优先使用jffs2里的hw_default_ctree.xml。 tftp -gl hw_default_ctree.xml 192.168.100.x #关闭装备模式,重启光猫 EquipMode.sh off reboot至此,两个教程均已完成。以下提供hw_hardinfo_feature和hw_hardinfo_spec文件内容进行参考。hw_hardinfo_specspec.include="spec_china_base.cfg" spec.name = "SSMP_SPEC_CLI_USERGRP" spec.type="uint" spec.value="0x00004000" spec.name="SSMP_SPEC_CLI_REMOTETELNET" spec.type="uint" spec.value="1" spec.name="SSMP_SPEC_CLI_REDLINEVERSION" spec.type="uint" spec.value="1" spec.name="SSMP_SPEC_WEB_FRAME" spec.type="string" spec.value="frame_XGPON" spec.name="SSMP_SPEC_WEB_MENUXML" spec.type="string" spec.value="MenuSmartChina.xml" spec.name="SSMP_SPEC_WEB_LANGUAGE_SET" spec.type="string" spec.value="chinese" spec.name="SSMP_SPEC_WEB_LANGUAGE" spec.type="string" spec.value="chinese" spec.name="SSMP_SPEC_WEB_PWDENCRYPT" spec.type="uint" spec.value="3" spec.name = "BBSP_SPEC_FWD_SESSIONNUM" spec.type="uint" spec.value="60000" spec.name = "BBSP_SPEC_USR_CFG_ROUTE_MAXNUM" spec.type="uint" spec.value="1500" spec.name="SSMP_SPEC_PLUGIN_APILIST" spec.type="string" spec.value="plugin_api" spec.name="OSGI_SPEC_SYSBUNDLE_LIST" spec.type="string" spec.value="/etc/wap/customize/plugin_sys" spec.name="OSGI_SPEC_SECURITY_CFG" spec.type="string" spec.value="/etc/wap/customize/cpa.txt" spec.name="OSGI_SPEC_FORBID_PREBUNDLE_LIST" spec.type="string" spec.value="/etc/wap/customize/plugin_pre"hw_hardinfo_featurefeature.name="AMP_FT_WIFI_PWD_SHOW" feature.enable="1" feature.name = "FT_WEB_MODIFY_USER_PWD" feature.enable="1" feature.name="FT_WEB_RESET_USER_PWD" feature.enable="1" feature.name = "HW_SSMP_WEB_MODIFY_AMDIN_PWD" feature.enable="1" feature.name="FT_PON_UPPORT_CONFIG" feature.enable="1" feature.name="BBSP_FT_IPV6_PORTMAPPING" feature.enable="1"最后最后,提供下改光模命令查看你需要的模式类型set upport ?更改为XGPONset upport mode 5 upportid 0x102001更改为10G EPONset upport mode 6 upportid 0x102001更改为XGPON/10GEPON自适应set upport mode 12 upportid 0x102001
2026年04月06日
2 阅读
0 评论
0 点赞
2026-04-03
诺基亚贝尔XG-040G-MD 参数修改
默认超管账号CMCCAdmin密码aDm8H%MdA设置流程:1.改地区http://192.168.1.1/opid_setting.cgi2.开启telnet(打开telnet超级密码自己随时用命令可以改,超密变了也不怕)http://192.168.1.1/system.cgi?telnet3.查看配置文件http://192.168.1.1/dumpdatamodel.cgi查找su密码并解密(网上有工具自行搜索)XG-040G-XX SuPassword 解密工具 下载地址:https://f78fk.ysepan.com/ 解压密码:f78fk4.telnet修改SNritool set YPSerialNum NBEL5A01B711 (要修改的SN)ritool set MfrID NBEL (要修改的SN的前四位,应该是厂商代码)ritool set G984Serial 5A01B711 (修改的SN的8位)cfgcli -r (恢复出厂)至此SN修改完成,输入reboot重启光猫。重启后输入PASSWORD注册,如果没有自动下发,手动配置一下internet、iptv即可。其他命令修改root密码cfgcli -s InternetGatewayDevice.DeviceInfo.X_CT-COM_ServiceManage.SuPassword aDm8H%MdA (修改root密码为aDm8H%MdA)设置超级密码cfgcli -s InternetGatewayDevice.DeviceInfo.X_CT-COM_TeleComAccount.Password aDm8H%MdA (修改超级密码为aDm8H%MdA)关闭虚拟机cfgcli -s InternetGatewayDevice.SoftwareModules.ExecEnv.1.Enable falsecfgcli -s InternetGatewayDevice.SoftwareModules.ExecEnv.2.Enable false开启全锥形网络cfgcli -s InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.X_ASB_COM_FullconeNATEnabled true (第二个数字2看intetnet连接在第几,在第二条就不要动,在一条就改为1)RMS显示注册成功cfgcli -s InternetGatewayDevice.X_CT-COM_UserInfo.Status 0cfgcli -s InternetGatewayDevice.X_CT-COM_UserInfo.Result 1
2026年04月03日
5 阅读
0 评论
0 点赞
2026-03-03
光猫作为IPTV服务器兼旁路由注意点
注意点:1、防火墙WAN口,入站数据(拒绝)改 接受。2、接口,IPTV口使用网关跃点为50,旁路LAN口使用网关跃点为10.3、启动项---本地脚本,添加LAN旁路脚本跟tailscale联通网关脚本iptables -t nat -I POSTROUTING -o eth1 -j MASQUERADEiptables -I FORWARD -i eth1 -o tailscale0 -j ACCEPTiptables -I FORWARD -i tailscale0 -o eth1 -j ACCEPT
2026年03月03日
8 阅读
0 评论
0 点赞
2025-09-30
Grandstream HT503 语音网关 FreePBX14 配置
概述Grandstream HT503 是一款语音网关,比HT813老,但是功能是一样的。目前闲鱼价格很低,待机功耗很低,作为家庭语音网关来说,是挺划算的。支持 FXS 和 FXO 两种接口,可以连接传统的电话机和 PSTN 线路,也可以连接 VoIP 服务器。FreePBX 是一款开源的 IP 电话系统,支持 SIP 协议,可以用来搭建企业电话系统。我们准备搭建的系统包含以下元素:· 有一条中国电信的 PSTN 线路,用于接收来电和拨打外线· 有一部传统的电话机,用于拨打和接听电话· 有一台运行 FreePBX 的服务器,用于管理电话系统和接收来电· 局域网内有若干手机和电脑上的 SIP 软电话,用于拨打和接听电话希望实现以下功能:· 电话机和软电话有独立的分机号,可以互相拨打· 电话机和软电话可以通过 PSTN 线路拨打外线· PSTN 线路接收到来电时,所有电话机和软电话同时响铃,任意一台设备可以接听硬件准备HT503 上共有 5 个接口,分别为:12V 电源接口WAN 网络接口LAN 网络接口FXS 接口:连接传统电话机FXO 接口:连接 PSTN 线路HT503 具有 WAN 和 LAN 两个 RJ45 网络接口,自身可作为一台带有 NAT 功能的路由器。在本文中,我们不使用 HT503 的路由功能,将 HT503 的 WAN 接口和 LAN 接口配置成交换机模式,即 HT503 仅作为语音网关使用。HT503、FreePBX 服务器和所有 SIP 设备都连接到同一个局域网中。此模式下,HT503 的任何一个网络接口都可以用来连接局域网,另一个网口可再连接一个局域网内交换机或者其他设备。HT503 配置HT503 的 WAN 接口默认通过 DHCP 获取 IP 地址,LAN 接口作为一个 DHCP 服务器,分配 IP 地址给连接到 LAN 接口的设备。WAN 侧可通过路由器管理面板查看 HT503 的 IP 地址,如果二手 HT503 找不到 IP 地址,可以长按 HT503 的 RESET 按钮恢复出厂设置。局域网内浏览器访问 HT503 的 IP 地址,输入默认用户名和密码 admin 和 admin 登录。HT503 登陆界面HT503的首页基本设置页主要是网络配置和无条件呼叫转移设置。我设定的是wan口自动获取,lan口桥接,这样无论你插哪条线,都可以正常访问HT503。对了,记得 允许WAN端口回应ICMP请求:和设置WAN端口的HTTP/Telnet访问权限:要选择yes,这样才能充wan口端访问为了把外线呼入转移到 FreePBX,需要设置无条件呼叫转移。User ID 编一个特殊的号码,如 0123456789,SIP Server 设置成 FreePBX 的 IP 地址,教程里的freepbx IP为192.168.1.12.高级设置页没有需要特别设置的选项。最下面的备份和恢复功能可以备份 HT503 的配置,以防止配置丢失。注意只能导入 XML 格式的配置文件,如果要导入来自其他 HT503 的配置,需要把 XML 文件中的 MAC 地址改成当前 HT503 的 MAC 地址或者删掉 MAC 地址那一行。分机和FXS设置本例中 HT503 的 FXS 接口连接到传统电话机,在 FreePBX 侧看起来和一个 SIP 软电话一样是一个 Extension。FreePBX 安装后进到分机模块,我们需要在 FreePBX 中创建一个分机号为 1000, 用户名是 GM,类型为 PJSIP 的分机。Secret这行填密码,你自行设置就行。HT503 的 FXS 接口配置页面:认证密码:这边需要填写刚才分机里面设定的密码。本地SIP端口: 最好修改下。这两个地区选项可以改一下,这一页改完后点 保存,再点 生效。以上配置完成后,HT503 的状态页面上显示 FXS 接口已注册。中继和 FXO 配置FXO 接口在 FreePBX 中作为一个中继。我们中继用的是chan_sip方式接入,所以端口是5160。只留 PCMU 和 PCMA。增益可以设置+—2PSTN 挂断检测注意: 中国大陆的用户需要修改 FXO 挂断检测选项,否则不能检测到外线挂断,导致外线挂断后 FreePBX 持续响铃。此处不使用基于电流的挂断检测,而是使用基于忙音的挂断检测。按照上图的配置,中国大陆标准的忙音频率是 450Hz 单音,半周期为 350ms.f1=450@-32,f2=620@-32,c=350/350;注:这个非常重要,国内需要改 等待拨号音: NO 和 拨号模式 (1/2):1(非常重要)没有更改的话,是无法进行拨出电话的。这样在HT503的设置就已经完成了。接下去我们到freepbx设置中继、呼出路由与呼入路由。具体见图:创建一个 chan_sip 类型的中继:端点详细信息host=dynamicport=5062username=012345789secret=你之前设定的密码type=frienddisallow=allallow=ulawinsecure=port,invitequalify=yesdtmfmode=rfc2833canreinvite=no配到这里两边都应用设置之后,HT503状态页面上显示 FXO 接口已注册。入局线路:出局线路这样设置就ok了,感谢duanyll的博客,提供了帮助。https://duanyll.com/2024/10/5/HT813-FreePBX/
2025年09月30日
52 阅读
0 评论
0 点赞
2025-06-23
EC20模块使用asterisk及freepbx实现短信转发和网络电话
前提EC20型号:EC20CEFAG-512-SGNS(mini-pcie接口)额外配件:1、4G模块转接板Mini PCIE转USB的卡座,卡座上有插SIM的地方2、若干根IPEX转SMA转接线3、SMA接口的4G天线服务器:最好是虚拟机系统,如:exsi或者PVE。1、部署ubuntu18.04虚拟机2、安装Asterisk 16.233、安装Freepbx 16或者17正题1、PVE系统下检查EC20模块1、打开PVE系统,使用shell进入。关闭SIM卡的PIN,插入卡座,把EC20接上天线并通电,使用以下命令,查询EC20模块的usb端口ls /dev/ttyUSB*ttyUSB0 ttyUSB1 PCM语音,GPS信号 ttyUSB2 控制命令 ttyUSB3 安装picocom或者minicom软件与EC20模块进行通信apt install picocom或者apt install minicom命令如下picocom -b 115200 /dev/ttyUSB2 或者 minicom -D /dev/ttyUSB2输入ATI看一下EC20的版本号:ATI Quectel EC20F Revision: EC20CEFAGR08A03M4G非必要:如果一切正常的话,可以先重置一遍EC20,以防上一个用户在卡内设置了错误的配置(但不要经常重置EC20,重置操作对dongle的闪存有损耗)。重置模块at+qprtpara=3重启AT+CFUN=1,1重置并重启完后,可以通过以下命令检查一下SIM卡是否已经注册成功了(下面的例子是联通的,其他运营商同理):AT+COPS? +COPS: 0,0,"CHN-UNICOM",7 AT+QNWINFO +QNWINFO: "FDD LTE","46001","LTE BAND 3",1650 AT+QENG="servingcell" +QENG: "servingcell","CONNECT","LTE","FDD",460,01注:电信3g已拆除,只有打开4g volte才能查看到楼上数据,so电信卡需要先配置VOLET,不然是没信号的。配置VoLTE打开ims AT+QCFG="ims",1 查看dongle内的mbn文件 AT+QMBNCFG="List" +QMBNCFG: "List",0,1,1,"ROW_Generic_3GPP",0x05010824,201806201 +QMBNCFG: "List",1,0,0,"OpenMkt-Commercial-CU",0x05011510,201911151 +QMBNCFG: "List",2,0,0,"OpenMkt-Commercial-CT",0x0501131C,201911141 +QMBNCFG: "List",3,0,0,"Volte_OpenMkt-Commercial-CMCC",0x05012011,201904261 # 尽管这里列出了移动联通电信的VoLTE配置文件,但使用默认的自动选择CU/CT/CMCC并不能注册VoLTE,需要强制选择ROW_Generic_3GPP才能成功注册VoLTE。 关闭自动选择mbn文件 AT+QMBNCFG="AutoSel",0 反激活当前的mbn at+qmbncfg="deactivate" 强制选择3gpp AT+QMBNCFG="select","ROW_Generic_3GPP" 重启 AT+CFUN=1,1 可以再确认一下mbn的选择状态,如果ROW_Generic_3GPP的第二位和第三位都是1的话,说明dongle目前选择了这个配置 AT+QMBNCFG="List" +QMBNCFG: "List",0,1,1,"ROW_Generic_3GPP",0x05010824,201806201 +QMBNCFG: "List",1,0,0,"OpenMkt-Commercial-CU",0x05011510,201911151 +QMBNCFG: "List",2,0,0,"OpenMkt-Commercial-CT",0x0501131C,201911141 +QMBNCFG: "List",3,0,0,"Volte_OpenMkt-Commercial-CMCC",0x05012011,201904261 重启完后检查ims的状态 AT+QCFG="ims" 如果返回的是 +QCFG: "ims",1,1 即为激活,如果是+QCFG: "ims",1,0 说明没有激活 可选(激活UAC数字音频),最好打开在模块上启用 UAC,这是一个一次性设置,将在重启后继续有效AT+QCFG="USBCFG"如果未启用 UAC,将收到响应“+QCFG:“usbcfg”,0x2C7C,0x0125,1,1,1,1,1,0,0”请注意,产品代码后应有 7 位数字,可以是 1 或 0。最后一位是 UAC 参数,如果参数少于 7 位,则表示设备不支持 UAC。现在复制整个字符串,并将最后一位改为 1,然后发出新的命令。AT+QCFG="USBCFG",0x2C7C,0x0125,1,1,1,1,1,0,1现在 UAC 将启用。然后(按下 Ctrl-A,然后按 X,选择 Yes 退出 minicom)在ubuntu终端下输入aplay -L应该会向您显示一个新的声音设备,如hw:CARD=Android,DEV=0 Android, USB Audio使用新的 quectel.conf 文件,取消注释并设置 quec_uac=1,同时取消注释 alsadevice 行(以下步骤会复制/uac/quectel.conf过去,所以这步可以跳过)2、安装asterisk虚拟机安装asterisk和一些依赖首先更新系统并安装必要的依赖包:apt update && apt upgrade -yapt install -y wget build-essential subversion libedit-dev libjansson-dev libssl-dev libxml2-dev libncurses5-dev uuid-dev(1)下载并安装稳定的 Asterisk 16wget https://github.com/asterisk/asterisk/archive/refs/heads/16.23.zipunzip 16.23.zipcd asterisk-16.23(2)运行 Asterisk 提供的依赖安装脚本:contrib/scripts/install_prereq install(以下命令时,它可能会提示输入国家电话代码,您可以提供您想要的内容。此脚本会自动安装缺失的依赖项,如 libpjproject)(3)配置与编译./configure错误提示Downloading https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.10/pjproject-2.10.tar.bz2 to /tmp/pjproject-2.10.tar.bz2目前没有直接从githubusercontent下载,可以搜索githubusercontent加速,把raw.githubusercontent.com进行替换。替换后先进行下载手动下载 pjproject进入到/tmp(读取是在这个文件夹)cd /tmpwget https://加速站替换地址/asterisk/third-party/master/pjproject/2.10/pjproject-2.10.tar.bz2 to /tmp/pjproject-2.10.tar.bz2然后重新运行 configure./configure --with-pjproject=/tmp/pjproject-2.10.tar.bz2验证安装成功配置后你应该能看到:checking for PJPROJECT... yes接着再进行编译makemake installmake configcp configs/samples/. /etc/asteriskcd /etc/asteriskfind . -name "*.sample" -exec sh -c 'mv "$1" "${1%.sample}"' _ {} \;设置 chan_quectelcd wget https://github.com/IchthysMaranatha/asterisk-chan-quectel/archive/refs/heads/master.zip unzip master.zip cd asterisk-chan-quectel-master ./bootstrap ./configure --with-astversion=16.23 make make install现在使用 将 quectel.conf 复制到 /etc/asteriskcp uar/quectel.conf /etc/asterisk确保在 quectel.conf 中为您的设备正确设置了音频端口(前面已经进行设置了)重启asterisksystemctl restart asterisk进入asterisk的cli界面asterisk -rvvv输入quectel show devices即可看到识别到的dongle了,也能看到dongle的imei和SIM卡的imsi:# asterisk -rvvv Asterisk 16.16.1~dfsg-1+deb11u1, Copyright (C) 1999 - 2018, Digium, Inc. and others. Created by Mark Spencer <
[email protected]
> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 16.16.1~dfsg-1+deb11u1 currently running on debian-asterisk (pid = 1403) debian-asterisk*CLI> quectel show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number quectel0 0 Free 27 0 0 CHN-UNICOM EC20F EC20CEFAGR06A15M4 86XXXXX 46XXXXX Unknown debian-asterisk*CLI> 配置dialplan直接参考驱动作者写的帖子,下载帖子里的sipext.zip,解压后放到/etc/asterisk下,同时修改一下/etc/asterisk/extensions.conf和sip.conf (请不要直接照抄!根据自己的实际情况和驱动作者的帖子修改)。在 sip.conf 文件中,[70] 部分下,将主机 IP 地址更改为您 PC/笔记本电脑在家庭网络中的 IP 地址。然后将两个文件复制到 /etc/asterisk。以下为本人使用的配置(IP段为192.168.1.0/24,freepbxip192.168.1.111),可以直接在/etc/asterisk进行修改。里面这2个文件其实都有的。extensions.conf[incoming-mobile] #exten => _.,1,Dial(SIP/70/100) #same => n,Hangup() #exten => s,1,Set(CALLERID(name)=${CALLERID(num)}) #same => n,Dial(SIP/70) ; 来电处理 exten => s,1,NoOp(== 来电:${CALLERID(num)} ==) same => n,Set(CALLERID(name)=${CALLERID(num)}) same => n,Dial(SIP/70,50) ; 尝试拨打 SIP 分机 70,最多 50 秒 same => n,Playback(vm-goodbye) ; 播放语音提示(可选) same => n,Hangup() ; 短信处理 exten => sms,1,Verbose(SMS from ${CALLERID(num)}) same => n,System(/usr/local/bin/sms2bark.sh '${CALLERID(num)}' '${SMS_BASE64}') same => n,Hangup() ; USSD 处理(如果你用 AT+CUSD 发 USSD 查询) exten => ussd,1,Verbose(Incoming USSD: ${BASE64_DECODE(${USSD_BASE64})}) same => n,System(echo '${STRFTIME(${EPOCH},,%F %T)} - USSD: ${BASE64_DECODE(${$ same => n,Hangup() [Outbound-1001] exten => _.,1,Dial(Quectel/quectel0/${EXTEN}) same => n,Hangup()sip.conf[general] context=sip-default udpbindaddr=0.0.0.0:46000 tcpbindaddr=0.0.0.0:47000 tlsbindaddr=0.0.0.0:5063 tlscipher=ALL tlsclientmethod=tlsv1 accept_outofcall_message=yes allow=!all,slin,ulaw,alaw allowguest=no allowtransfer=yes alwaysauthreject=yes authfailureevents=no autoframing=no defaultexpiry=120 dumphistory=no dynamic_exclude_static=no faxdetect=no g726nonstandard=no jbenabled=no jbforce=no jbimpl=fixed language=en maxcallbitrate=384 maxexpiry=3600 minexpiry=60 notifycid=no notifyhold=no notifyringing=yes preferred_codec_only=no recordhistory=no rtpholdtimeout=300 rtptimeout=30 sipdebug=no srvlookup=no tonezone=us tos_audio=ef tos_sip=cs3 tos_video=af41 videosupport=no nat=force_rport,comedia websocket_enabled=false autodomain=no allowexternaldomains=yes tcpenable=yesy tlsenable=no tlsdontverifyserver=no localnet=192.168.1.0/255.255.255.0 useragent=VitalPBX callcounter=yes tos_text=af41 cos_sip=3 cos_audio=5 cos_video=4 cos_text=3 recordonfeature=one_touch_rec recordofffeature=one_touch_rec vmexten=*97 outofcall_message_context=messages auth_message_requests=no transport=udp [70] context=Outbound-1001 description=ext70 dtmfmode=rfc2833 allow=!all,slin,alaw,ulaw nat=force_rport,comedia host=192.168.1.111 port=5060 insecure=port,invite type=friend qualify=no修改完后再重启一次asterisk。systemctl restart asterisk设置BARK短信转发在extensions.conf设置中其实已经把bark转发的一点点配置加入进去了。现在我们需要做个bark转发脚本。在/usr/local/bin下面创建sms2bark.shcd /usr/local/binnano sms2bark.shsms2bark.sh#!/bin/bash # 来电号码(对方号码) SENDER="$1" # 短信内容(base64 编码) MESSAGE_BASE64="$2" # 你的手机号,用于标注“来自 xxx” MY_NUMBER="199xxxxxxxx" # Bark 推送地址(替换为你自己的推送 key) BARK_URL="https://api.day.app/你自己的推送key" # 解码短信内容 DECODED=$(echo "$MESSAGE_BASE64" | base64 -d 2>/dev/null) # 最终短信内容 + 你自己的标记 FINAL_MSG="$DECODED 来自 $MY_NUMBER" # 发起推送(title 是发信号码) curl -s -G \ --data-urlencode "title=$SENDER" \ --data-urlencode "body=$FINAL_MSG" \ "$BARK_URL" >/dev/null现在发条短信给你的ec20手机号码测试看看。。。不出意外,应该是可以成功收到。Freepxb部分去freepbx官网上下载freepbx的iso镜像(看起来是一个CentOS7):https://www.freepbx.org/downloads/。使用镜像安装系统,安装时选择freepbx 16 with asterisk 18。安装完后用浏览器访问虚拟机的IP,设置初始的管理员密码(最开始可以暂不打开防火墙,方便配置)。添加分机号在 Applications-Extensions 里,点击add extension- SIP extension,加一个200的extension(号码随意,只要不和asterisk虚拟机里的号码撞上了就行):剩下部分保持默认,点submit,并点击一下右上角的apply config。添加中继添加之前,先按照前面的帖子的指引,修改asterisk虚拟机里的/etc/asterisk/sip.conf,把最底下70分机的host=192.168.x.x改成freepbx虚拟机的IP,重启asterisk。在freepbx的中继里添加一个SIP(chan_pjsip)中继,配置如下,其他默认:名字随意,outbound CallerID改成asterisk虚拟机那边设置的数值(70)SIP server要改成asterisk虚拟机的IP,也就是将图片上10.16.X.X改成ubuntu18虚拟机的ip地址路由在出局线路里,新建路由,将出方向的路由都转发给前一步创建的SIP中继:在入局线路里,新建路由,将入方向的路由都转发给分机上面设置的分机号:如果未来连接了多个分机或者多个dongle,需要根据用户进行分流的话,可以详细配置上面的DID和CallerID来进行过滤。测试通话下载portsip uc,ios可以常驻后台配置很简单的。不解释了。其他使用模块上网(未设置验证)如果使用的手机卡包含流量,我们也可以一并配置模块的上网功能,以便在机器的有线/无线网络挂掉后,还能正常的转发短信和通话。首先,在连上串口后输入AT+QCFG="usbnet",1,设置usbnet模式为ECM(1是ECM,2是NDIS,3是RNDIS)接着,用AT+CFUN=1,1重启一下模块,随后查看ip a,应该能看到一个类似enxe2eeabcd123的接口,在这个接口上直接运行dhclient即可获取v4或v6地址。如果怕interface的名字经常变化,可以参考这个问题,把interface的名字根据MAC地址重命名成quectel-usbX这样方便管理的名字。3: quectel-usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether ff:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff inet 192.168.225.41/24 brd 192.168.225.255 scope global dynamic quectel-usb0 valid_lft 28802sec preferred_lft 28802sec inet6 2408::/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 fe80::/64 scope link valid_lft forever preferred_lft forever 该教程参考 使用EC20模块配合asterisk及freepbx实现短信转发和网络电话 ,感谢作者。{dotted startColor="#ff6c6c" endColor="#1989fa"/}Ubuntu 24系统下参考:https://myth.cx/p/asterisk-ec20/具体修改下以下部分。安装 Asterisk 和依赖sudo apt install asterisk asterisk-dev adb git autoconf automake libsqlite3-dev build-essential libasound2-dev alsa-utils编译安装 asterisk-chan-quectel 模块git clone https://github.com/IchthysMaranatha/asterisk-chan-quectelcd asterisk-chan-quectel笔者这里按照另一篇文章的说明,修改了 pdu.c 文件中 663 行左右的代码:原代码:int i = 0; int sca_digits = (pdu[i++] - 1) * 2; int field_len = pdu_parse_number(pdu + i, pdu_length - i, sca_digits, sca, sca_len);修改为:int i = 0; int sca_digits = (pdu[i++] - 1) * 2; if (pdu[i-1] == 0) { return i; } int field_len = pdu_parse_number(pdu + i, pdu_length - i, sca_digits, sca, sca_len);之后运行 asterisk -V,查看 Asterisk 版本号:Asterisk 20.6.0~dfsg+~cs6.13.40431414-2build5然后以下命令,编译安装 asterisk-chan-quectel 模块:./bootstrap./configure DESTDIR=/usr/lib/x86_64-linux-gnu/asterisk/modules --with-astversion=20.6.0makesudo make install之后,将 quectel.conf 复制到 /etc/asterisk/ 目录下。如果你之前激活了 UAC 数字音频,将配置文件末尾部分中的两行取消注释:cp quectel.conf /etc/asterisk/[quectel0] audio=/dev/ttyUSB1 ; tty port for Audio, set as ttyUSB4 for Simcom if no other dev present data=/dev/ttyUSB2 ; tty port for AT commands; no default value quec_uac=1 ; Uncomment line if using UAC mode alsadev=hw:CARD=Android,DEV=0 ; Uncomment if using UAC, set device name or index as reqd最后,运行命令重启 Asterisk 服务。sudo systemctl restart asterisk设置权限Ubuntu 安装的 Asterisk 默认使用 asterisk 用户运行,该用户无权访问 /dev/ttyUSB 设备。需要将该用户添加到 dialout 组:sudo usermod -aG dialout asterisk另外,Ubuntu 上默认安装的 modemmanager 也会干扰 EC20 模块的使用,将其禁用:sudo systemctl stop ModemManagersudo systemctl disable ModemManager之后重启系统。检查 EC20 模块状态重启后,运行 sudo asterisk -rvvv进入 Asterisk CLI,输入 quectel show device state quectel0检查模块状态:-------------- Status ------------- Device : quectel0 State : Free Audio : /dev/ttyUSB1 Data : /dev/ttyUSB2 Voice : Yes SMS : Yes Manufacturer : Quectel Model : EC20F Firmware : EC20CEFAGR08A03M4G IMEI : XXXXXX IMSI : XXXXXX GSM Registration Status : Registered, home network RSSI : 27, -59 dBm Mode : No Service Submode : No service Provider Name : CHN-CT Location area code : XXXXXX Cell ID : XXXXXX Subscriber Number : Unknown SMS Service Center : XXXXXX Use UCS-2 encoding : Yes Tasks in queue : 0 Commands in queue : 0 Call Waiting : Disabled Current device state : start Desired device state : start When change state : now Calls/Channels : 0 Active : 0 Held : 0 Dialing : 0 Alerting : 0 Incoming : 0 Waiting : 0 Releasing : 0 Initializing : 0以上内容说明已经成功注册到中国电信网络,并且 Asterisk 能够正常访问 EC20 模块。由于是电信卡,我们可以向 10000 发送一条免费短信进行测试:quectel sms quectel0 10000 "cxll"看到Successfully sent SMS message即表示发送成功。如果不出意外,几秒钟后可以在终端里看到运营商的回复短信。配置短信转发和语音通话同上面配置dialplan一样,主要修改/etc/asterisk/extensions.conf和sip.conf,还有配置bark转发脚本。
2025年06月23日
289 阅读
0 评论
0 点赞
1
2
...
17