自建 voip 求助

2019-12-23 09:05:39 +08:00
 ys0290
问题背景:由于年少无知,几年间办了多张手机卡用来填资料收短信,通过自建 freepbx 加 usb dongle 将短信电话转接到常用手机上,这样免去同时携带多部手机的困扰。目前在使用 iOS 设备,装了 Linphone,usb dongle 的电话会转接到手机的 Linphone,由于 iOS 的特性,软件退出前台后很快就挂掉,只能通过官方推送唤醒(这是外行的我所理解的机制),必须走 linphone 自己的 sip 渠道才能及时接到电话,所以我把 usb dongle 的电话转到了 sip.linphone.org ,自己注册了 linphone 的账号

问题来了:这个服务是在国外的,我能接听到电话,但是通话质量奇差,要么听不见要么听不清。
问题 1,我上面的问题可以通过优化设置改善吗?
问题 2,如果问题 1 不能,国内有没有类似的 sip 服务商?
问题 3,如果国内没有类似服务或者有但不能改善状况,我能不能自建一个能推送 iOS 的服务?(企业证书什么的不要不要的)
问题 4,大家有没有更好的解决方案,前提是不随身带这几个手机卡,也不交给别人,也不换安卓(太折腾)
问题 5,迫于家人总是默认静音接不到电话,搭车问一下,我淘一个二手 voip 座机是不是插上网线登陆账号就可以了,和在自己手机设置软件有没有什么区别

thanks in advance :)
5965 次点击
所在节点    问与答
23 条回复
czwstc
2019-12-23 10:09:38 +08:00
simbox ?
songzvz1
2019-12-23 10:16:30 +08:00
有段时间 1 楼说的 simbox 推广的挺猛的,貌似还可以.自己搜一下看看性能吧
ys0290
2019-12-23 10:24:11 +08:00
@czwstc
@songzvz1
感谢,我看看这个 simbox
pubby
2019-12-23 10:56:36 +08:00
我用 Bria (付费的,每月 7 元) 原理是把账号托管给 bria 的服务器,注册到你的 sip 上,有呼入电话就会走苹果的 callkit 推送唤醒 app 接听,通话时的 rtp 是直连你 sip 服务器的

安卓系统可以用 ZoiPer,有类似的机制(需付费)。或者阉割不严重的系统可以用自带的 SIP 电话功能。


我们这边没短信需求,没测试过短信功能。
ys0290
2019-12-23 11:27:49 +08:00
@pubby 感谢,我的短信是走微信的,现在问题在通话,我下来看看这个 bria
pubby
2019-12-23 11:52:42 +08:00
@ys0290 Bria 的推送服务里有个注册模式的设置,我选的是"标准",还有其他"单设备托管"之类的就是语音数据绕道 bria 服务器的。你可以自己尝试一下不同的模式
fvckDaybyte2
2019-12-23 13:04:56 +08:00
好巧,我也在研究这个,FreePBX 后面需要需要搭配 linphone 他们家的 flexisip 作为 push gateway,这样完全不需要走 linphone 服务器绕路国外也可以推送了,Bria 也是一样的原理,但是不提供开源的 push gateway,不过他们的服务器资源似乎更好,比较贵没用过。1 楼的 simbox 是完全集成了所有解决方案,包括 NAT 穿透,比较方便。缺点是他们服务器挂了或者跑路了整个设备就没用了。有兴趣可以加个联系方式一起学习😬
pubby
2019-12-23 15:39:05 +08:00
@fvckDaybyte2 NAT 处理确实蛋疼,最好用支持 SIP 协议的处理的路由器,只要不启用 TLS 加密,然后使用常规端口
haozxuan001
2019-12-23 15:45:38 +08:00
@ys0290 想请教下短信是怎么走微信的,我有一个场景需要接受手机验证码,目前是自己写了一个安卓 app 常住后台接受验证码上传到服务端,有没有更简单一些的。
ys0290
2019-12-23 15:46:00 +08:00
@pubby
感谢🙏我先试着在 linphone 基础上解决一下,毕竟不要钱😄
@fvckDaybyte2 方便的话同 id 加我一下,谢谢🙏
ys0290
2019-12-23 15:48:46 +08:00
@haozxuan001 确切的是走微信企业号,包装一下格式,调用官方 api,server 酱应该也可以。消息是用华为 e261 上网卡收到的,freepbx 收到后解码一下调用微信 api
5200
2019-12-23 16:26:46 +08:00
@haozxuan001 #9 自己用的话微信推送 Server 酱 挺香。
5200
2019-12-23 16:33:59 +08:00
@haozxuan001 #9 还有 wxpusher 也可以看看。
haozxuan001
2019-12-23 18:31:12 +08:00
@5200 emmmm,老实讲我这边不缺云服务,所以从拿到验证到服务端以及服务端后续的逻辑我都比较清晰。只是对于如何获取到验证码比较好奇,之前一直以为只有手机端(最低也要一个卡模块)才能收到验证码,在了解 freepbx 期望找到新的解决方案。
ys0290
2019-12-23 18:37:55 +08:00
@haozxuan001 在不能和运营商合作的前提下,只能找个落地的设备,不管是手机还是上网卡,或者那种猫池,或者 simbox 之类专用设备,和基站通讯是少不了的
haozxuan001
2019-12-23 18:48:27 +08:00
@ys0290 能否简单的描述下 freepbx 这个作用,树莓派+通信模块我可以理解,有最小系统+通信模块,可以实现接收短信+网络上传。你第一次提到的华为 e261 上网卡我查了下他好像类似于一个 u 盘的东西,插上电脑后可以分享出网络,但如何做到收到短信做处理?
ys0290
2019-12-23 20:01:07 +08:00
@haozxuan001 freepbx 是 asterisk 套了一个壳,华为上网卡带手机卡插到运行 asterisk 系统或者别的类似功能的系统以后,在 asterisk 的一个子模块 chan_dongle 配置文件填入手机卡的 IMEI 等信息,asterisk 会监听手机卡的短信和语音(语音功能需要另外设置),一旦有短信收到,模块会调用解码器将收到的 16 进制字符串解码成收件人发件人短信内容等,在这里可以写个脚本把这些信息钩出来自行处理,对于大于 140 个字符的短信,短信发出时就被截成若干段,所以收到的必然也是若干段,这时就需要在脚本中通过时间等逻辑关系把短信息拼起来,一条短信被分成了几条也在那个字符串里面写了。
Raynard
2019-12-23 20:14:39 +08:00
多卡宝的通话也极差
pubby
2019-12-23 20:47:39 +08:00
@ys0290 以前做短信对接业务时处理过长短信,GSM 规范有专门的短信封装格式的
ys0290
2019-12-23 21:58:15 +08:00
@pubby 是 PDU 编码,当时没有在网上找到合适的解码脚本,还吭哧吭哧的对照规范写了一套凑活能用的解码脚本😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/631359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX