首页
推荐
INYES图床
网盘
Search
1
牛市股票三个买点战法
441 阅读
2
中兴光猫修改mac和sn
422 阅读
3
VSOL V2802RH 2.5g光猫设置
378 阅读
4
中兴3.0与4.0光猫开启telnet方法
332 阅读
5
12代CPU在PVE8.0系统下启用硬件直通及核显虚拟SR-IOV vGPU
326 阅读
网络笔记
黑群晖
教程类
Docker小天地
cups技术
登录
Search
记忆の风
累计撰写
81
篇文章
累计收到
19
条评论
首页
栏目
网络笔记
黑群晖
教程类
Docker小天地
cups技术
页面
推荐
INYES图床
网盘
搜索到
81
篇与
的结果
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 将启用,并且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实现短信转发和网络电话 ,感谢作者。
2025年06月23日
6 阅读
0 评论
0 点赞
2025-06-09
电信天邑TEWA-1108V开telnet和改地区,su过程
1、超管账号无法登录,直接复位。复位后可以用超管登录了,这里用默认超管账号telecomadmin密码nE7jA%5m。登录超密后,开个标签http://192.168.1.1:8080/enableTelnet.html,来启动telnet打个钩保存一下就开启的了,然后就能进telnet2、进去之后可以不用su,用以下方法卡BUG获取root权限。很简单,首先按照常规方式登录Telnet,之后打一个;并回车,此时会报错:sh: syntax error: unexpected ";",不用管它,这时执行命令echo $USER,就发现我们是root了。3、获取su密码的话,直接用那个su工具telnet账号,密码填完后勾一下su密码就弹出来了,试了一下也能用获取超级密码
2025年06月09日
40 阅读
0 评论
0 点赞
2025-06-07
安装tailscale的一些小技巧(iStore OS与玩客云onepvm固件篇)
iStore OS篇1.安装tailscale点击iStore商店,直接搜索安装tailscale安装完成后,点击启用并允许组网。现在就可以到tailscale官网选择“Edit route settings”;在“192.168.1.0/24”这处打勾,再点“Save”;这样就可以了,但是如果需要iStore局域网的设备能访问其他节点的设备,就需要在iStore终端进行配置,命令如下:通过 SSH 登录 iStoreOS,执行以下命令:cat << 'EOF' > /etc/init.d/tailscale-nat #!/bin/sh /etc/rc.common START=99 STOP=10 start() { echo "[tailscale-nat] Enabling IP forwarding..." echo 1 > /proc/sys/net/ipv4/ip_forward echo "[tailscale-nat] Setting iptables rules..." iptables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE iptables -A FORWARD -i br-lan -o tailscale0 -j ACCEPT iptables -A FORWARD -i tailscale0 -o br-lan -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT } stop() { echo "[tailscale-nat] Cleaning up iptables rules..." iptables -t nat -D POSTROUTING -o tailscale0 -j MASQUERADE iptables -D FORWARD -i br-lan -o tailscale0 -j ACCEPT iptables -D FORWARD -i tailscale0 -o br-lan -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT } EOF赋予脚本执行权限,并启用开机启动:chmod +x /etc/init.d/tailscale-nat /etc/init.d/tailscale-nat enable /etc/init.d/tailscale-nat start重启测试,测试成功就可以收工了。{progress percentage="50" color="#ff6c6c"/}玩客云篇1.在 One-KVM 上安装 Tailscale 客户端:# 下载并执行安装脚本 curl -fsSL https://tailscale.com/install.sh | sh # 启动 Tailscale 并登录 tailscale up2.按照终端提示的链接完成授权登录:3.设置开机自启(可选) Tailscale 默认在启动时启动,如果你希望确保它总是启动,可以检查一下 systemd 服务状态:sudo systemctl enable tailscaled sudo systemctl start tailscaled最后重启验证注:退出Tailscale:tailscale logout 关闭Tailscale:tailscale down 检查Derp服务器:tailscale netcheck 检查Tailscale:tailscale status连接到 Tailscale 作为子网路由器安装 Tailscale 后,您需要将设备配置为子网路由器,方法是启用 IP 转发并通告要提供的子网路由。这些步骤会将标准 Tailscale 节点转换为其他网络的网关。要将 Linux 设备用作子网路由器,您需要完成两项基本配置:启用 IP 转发和通告子网路由。Linux 设备凭借其稳定性和强大的网络功能,非常适合用作子网路由器。启用 IP 转发。启用 IP 转发时,请确保防火墙默认拒绝流量转发。这是标准防火墙(例如ufw和 )的默认设置firewalld。默认阻止流量转发可防止意外的流量路由。要将 Linux 设备用作子网路由器,需要启用 IP 转发功能。此内核设置允许系统在接口之间转发网络数据包,本质上相当于路由器的功能。启用 IP 转发的过程因 Linux 发行版而异。不过,以下说明在大多数情况下都适用。如果您的 Linux 系统有一个/etc/sysctl.d目录,请使用:echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf sudo sysctl -p /etc/sysctl.d/99-tailscale.conf否则,使用:echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p /etc/sysctl.conf如果您的 Linux 节点使用firewalld,则可能需要由于已知问题而允许伪装。作为解决方法,您可以使用以下命令允许伪装:firewall-cmd --permanent --add-masquerade公布子网路由启用 IP 转发后,tailscale set使用该--advertise-routes标志运行。它接受以逗号分隔的子网路由列表。sudo tailscale set --advertise-routes=192.168.1.0/24请务必将上述示例中的子网替换为您的网络的正确子网。
2025年06月07日
50 阅读
0 评论
0 点赞
2024-11-18
牛市股票三个买点战法
Z哥实战技巧在牛市下,熊市非如此操作。买点--B1B2B3B1B1指的是日线KDJ的J值J到大负值(一般在-5以下才可考虑),才可作为短线抄底依据。--- (例外:前期已经涨幅特别大,然后跌下来。)潜伏等待反弹。B2B2指的是放量中阳线(或大阳线),突破颈线位,反弹当天。收盘前进入。隔天结合四分之三阴量线战法进行确认真假突破。B3B3指的是连续涨停后。一根涨停板之后一根无量的一字,第三天无量一字然后炸板,炸板后马上进去。(风险极高,建议做B1跟B2)B1输一根线,B2四分之三阴量线四分之三阴量线用来保护B2。看是真突破还是假突破。B2买入后隔天,收十字星、小阴线、中阴线的情况下,看成交量,阴线阴量是否在四分之三左右位置,90%以上是假突破。阳量不管。止损位设在当天最低点。直接出去。所谓涨停后缩量,是指在50%以内。
2024年11月18日
441 阅读
0 评论
1 点赞
2024-09-16
打印机驱动替代
HP LaserJet MFP M42523-M42625打印机替代驱动:HP LaserJet M4345 MFP - CUPS+Gutenprint v5.2.11
2024年09月16日
19 阅读
0 评论
0 点赞
1
2
...
17