#21#呼叫转移怎么设置
作者:值友4742943423
购买理由
由于最近工作生活的地区联通信号极差,移动信号却还尚可,但笔者主力卡又是联通,所以需要转发联通卡的通话和短信到移动的手机。搜索发现,之前的方案均需要安装在手机上,且都只能转发短信,对通话还是无法实现。为了解决上述的这些问题,本文笔者基于树莓派和EC20和东拼西凑的软件,实现了基于其他即时通讯软件的短信转发,并通过SIP客户端从互联网呼出和接听电话。
其他方案
GOIP设备
笔者在调研的时候发现很多推荐GOIP设备的,但再继续搜索之后发现能买到的价格实在太贵,而且好像这个设备因为一些特殊原因正在被下架
GSM Dongle
还有一些基于2g的通话网络的usb dongle也能实现通话的呼叫转移,但现在已经2023年了,5G都已经很完善了,似乎2G貌似在逐渐退网,现阶段VoLTE还是有必要的所以这个方案也被放弃了。
三方SIM托管服务
在搜索过程中发现早些年运营商自己和一些三方服务提供商都有这类的服务,但也是由于种种原因现在已经不对外提供服务了,所以这条路也就断了
选择方案介绍
首先是价格要便宜,能够旧物利用就最好,笔者最后选用了落灰已久的树莓派3b加Quectel EC20(移远出品的一款4G卡,支持LTE Cat4,使用Snapdragon X5 LTE Modem,这个卡有很多个版本,有部分版本只带上网功能,不能接打电话和发短信。如果需要收发短信和打电话,请尽量购买最高级的EC20CEFAG-512-SGNS,买mini-pcie接口的 ,移远的淘宝店买大概200一片,闲鱼购买大约50-60一片)的方案。
树莓派安装FreePBX+Asterisk,配置SIP服务进行网络通话的实现。
实现过程
关闭SIM卡的PIN,插入卡座,把EC20接上天线并通电,此时应该可以在/dev里看到若干个ttyUSB端口:
ttyUSB0
ttyUSB1 PCM语音,GPS信号
ttyUSB2 控制命令
ttyUSB3
使用minicom打开ttyUSB2端口
minicom -D /dev/ttyUSB2
# 输入ATI看一下EC20的版本号:
ATI
Quectel
EC20F
Revision: EC20CEFAGR06A15M4G
如果一切正常的话,可以先重置一遍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",1825
AT+QENG="servingcell"
+QENG: "servingcell","NOCONN","LTE","FDD",460,01,XXXXXXXXXX
开启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 说明没有激活
安装依赖
apt update
apt install vim minicom adb git autoconf automake libsqlite3-dev build-essential libasound2-dev alsa-utils
安装驱动
apt-get install raspberrypi-kernel-headers
git clone bacnh85/Quectel_Linux_USB_Driver.git
cd Quectel_Linux_USB_Driver/
make
make install
asterisk-chan-quectel
git clone IchthysMaranatha/asterisk-chan-quectel
cd asterisk-chan-quectel
./bootstrap
./configure --with-astversion=16
make
make install
随后把uac/quectel.conf复制到/etc/asterisk里。并通过systemctl restart asterisk重启asterisk。
输入asterisk -rvvv进入asterisk的cli界面并输入quectel show devices即可看到识别到的dongle了,也能看到dongle的imei和SIM卡的imsi:
asterisk -rvvv
Asterisk 16.21.1, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
Created by Mark Spencer
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.21.1 currently running on raspbx (pid = 3900)
-- Remote UNIX connection
raspbx*CLI> quectel show devices
ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number
quectel0 0 Free 20 0 0 CHN-UNICOM EC20F EC20CEFAGR06A17M4 86XXXX XXX +861XXXXXX
配置dailplan
直接参考驱动作者写的文章,下载文章里的sipext压缩包,解压后修改一下extensions.conf(请不要直接照抄!根据自己的实际情况和驱动作者的文章修改)然后粘贴到/etc/asterisk/extensions.conf 最后面:
全部修改完重启一次系统
在FreePBX网页上添加分机号
在 Applications-Extensions 里,点击add extension- SIP [pjsip_chan] extension,加一个200的extension(号码随意,只要不和asterisk虚拟机里的号码撞上了就行)
添加Trunk
添加之前,先按照本文前面的说明,修改/etc/asterisk/sip_custom.conf,把最底下70分机的host=192.168.x.x改成树莓派的IP,重启。
在FreePBX的Connectivity-Trunks里添加一个(pj)SIP Trunk,配置如下,其他默认:
Connectivity-Outbound Routes
Connectivity-Inbound Routes
测试通话
载一个免费版的zoiper,添加账户的时候用户名输入分机号@freepbx的IP,密码即上面设置的密码(注意不要输错了,freepbx默认有打开fail2ban,输错SIP密码也会触发fail2ban,还需要手动去删除iptables规则)。
确认注册上了之后可以尝试通过zoiper呼出到10010或者是自己的电话,测试一下语音和按键的DTMF音有被识别到。如果是外部呼入dongle里的号码的电话,呼入到freepbx之后会被直接转移给分机,此时zeoiper会有提示,直接点接听即可。
使用感受
在不打开SIP客户端时,打到dongle上的电话会提示用户忙,Zoiper付费版是支持push notification服务的,可以实现来电推送通知,用户点击通知进入Zoiper注册分机并接听,减少因为长时间待机的大量电池消耗。
总结
整体配置下来花了不到100元的成本基本满足了通话呼叫转移的目的,使用体验还可以继续完善,这里先挖个坑,后面慢慢填。
","force_purephv":"0","gnid":"9d10bd1146ee41d19","img_data":[{"flag":2,"img":[{"desc":"","height":"152","title":"","url":"https://p0.ssl.img.360kuai.com/t01eb298b491d3007e9.jpg","width":"600"},{"desc":"","height":"209","title":"","url":"https://p0.ssl.img.360kuai.com/t019342983cde7a5523.jpg","width":"600"},{"desc":"","height":"211","title":"","url":"https://p0.ssl.img.360kuai.com/t01a709e4f99653fbb9.jpg","width":"600"},{"desc":"","height":"214","title":"","url":"https://p0.ssl.img.360kuai.com/t01f3b263c47965568a.jpg","width":"600"},{"desc":"","height":"222","title":"","url":"https://p0.ssl.img.360kuai.com/t011ed9f5e30f95a483.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1678012831000,"pure":"","rawurl":"http://zm.news.so.com/dc35386c042ca0ee71f2b0543969d04a","redirect":0,"rptid":"a23e6f8d70bb7c14","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"DIY自己的电话呼叫转移
程英娄4735怎样取消苹果手机呼叫转移 -
经衬宝17683019933 ______ 如需取消呼叫转移,在手机拨号界面输入##002#再拨打,即可取消所有呼叫转移,成功后屏幕会提示操作成功.
程英娄4735苹果手机怎么设置呼叫转移 -
经衬宝17683019933 ______ 设置-电话-呼叫转移要想多功能的转移那就注:输入完这些,一定要按呼叫具体如下:所有来电查询状态:*#21# 呼叫设置转移:**21*转移到的电话号码#取消转移:##21#无应答的来电:查询状态:*#61#..
程英娄4735手机有几种方法设定呼叫转移 -
经衬宝17683019933 ______ 设定方法 功 能 设 置 取 消 查 询 无条件转移 **21*电话号码# ##21# *#21# 无信号转移 **62*电话号码# ##62# *#62# 无应答转移 **61*电话号码*10*响铃时间# ##61# *#61# 遇忙转移 **67#电话号码# ##67# *#67# 优惠的资费 · 客户呼叫转移至留...
程英娄4735如何设置手机呼叫转移? -
经衬宝17683019933 ______ 手机的呼叫转移里有四个选项:占线、无应答、占线/无应答、无条件(子菜单有无效、有效).选哪一个?我想转到另一个手机上,只需要在自己的手机上设定吗?其他就不用操作了?选择了无条件之后又说“输入转移号码:*72”在*72后面直接输入要转移的号码吗? 或者更直接的方式,打10086按0进人工服务
程英娄4735请问如何打开呼叫转移?? -
经衬宝17683019933 ______ 搬运工:大家都知道,wp7和ios一样,在电话本身功能部分是没法跟symbian比的,比如呼叫转移,就只有一个简单的全转或者不转,但是很多时候大家需要的是条件转移,比如关机了转开机不转等等. 按照电信的标准协议,上述设置可以直接...
程英娄4735怎么设置来电转移 -
经衬宝17683019933 ______ 呼叫转移是指当您不能接听电话时,可把来电转移到您预先设定的语音信箱、移动秘书、另一移动电话、固定电话、BP机等上的业务. . 使用方式 呼叫转移可按手机的菜单方式设置,也可按编码方式设置,两种设置方式的效果是一样的,您可...
程英娄4735我想呼叫转移怎么弄. -
经衬宝17683019933 ______ 拨打**21*想要转移的号码#
程英娄4735手机打电话如何设置转接 -
经衬宝17683019933 ______ 呼叫转移你可以在手机通话设置中设置. 手动设置呼叫转移方式: 无条件转移:**21*XXXXXXXXXXX#按通话键即可. 无应答转移:**61*XXXXXXXXXXX#按通话键即可. 关机或. 无信号转移::**62*XXXXXXXXXXX#按通话键即可. 遇忙时转移:**67*XXXXXXXXXXX#按通话键即可. 手动取消呼叫转移方式: 取消无条件转移:##21#按通话键即可. 取消无应答转移:##61#按通话键即可. 取消关机或. 无信号转移::##62#按通话键即可. 取消遇忙时转移:##67#按通话键即可. 其中XXXXXXXXXXX为你想要转移到的固定电话号码或其它手机号码.
程英娄47355s呼叫转移怎么设置 -
经衬宝17683019933 ______ iphone5S呼叫转移步骤:1、点击打开2、下拉页面,找到电话.3、点击打开,一眼即可看到呼叫转移,点击打开.4、载入呼叫转移,需要5S左右.5、呼叫转移开启,有全部通话和自定义两类.6、选择合适的类别,点击打开,输入号码即可.