Best SIP client soft phone is GS Wave

I have tried almost every VOIP soft phone app on Google Play. Before I found GS Wave, I reckoned Zoiper app was the best soft phone, thus I paid for its premium version to get its premium feature of video call.

However I never got this feature working. I wanted to see the video from my video door phone on my mobile with Zoiper. My video door phone supports H264 video codec but Zoiper supports VP8 unless I pay Zoiper again just for H264 codec . Unlike audio codec while a VOIP server can translate audio codec between clients, video codec is said to be P2P. (There may be a way of video codec translation, but I don’t know how.)

I had video calls working between my video door phone and desktop SIP phones which are “hard phones” with H264 built in. And I had audio calls working on all devices. So I was not desperate for video on Zoiper.

Zoiper has a major defect. It cannot stay online 24/7 on latest Android version (I tested on two Huawei Mate 8 and one P9) or iOS. Many times status bar shows it is online but actually it is not reachable. Zoiper was reliable on Android 4.x.x. I guess Zoiper “forgets” to re-register itself when OS goes into sleep. For above reasons I am reluctant to pay Zoiper any more money.

Recently I visited Fanvil website and discovered Fanvil had developed a soft phone called “Vdroid” for free download. To my surprise, Vdroid integrated G729 audio codec and H264 video codec. They are premium codec as on Zoiper. (Later on I learnt G729 patent expired on 1st Jan, 2017 but Zoiper is still selling G729 for money. I knew nothing about H264.) However Vdroid has too many bugs and is not a mature software.

Then I thought other VOIP device manufacturers might have their own soft phones for public. I checked Grandstream, Yealink and Cisco but only found Grandstream generously offering GS Wave. GS Wave has both Android and iOS version, and both works reliably, and both has G729 and H264 built in for free! I cannot wait any longer to recommend GS Wave to everyone. Google Play is overwhelmed by other apps for search results of “sip” or “voip”, and GS Wave is nowhere in the ranking. But trust me, it is the best one.

 

Our TVs were not connected to aerial for two years

两周之前来了一对夫妇客人,非常喜欢我们酒店的服务,回去以后还写邮件来表示感谢,我客套地回了信。之后他们又去 booking.com 给了满分评价,我看到了,连忙再发信表示感谢。他们见我态度积极,才跟我说,他们看其他台没问题,但看 BBC 1 台电视信号不太好,当时他们怀疑是暴雨所致,但第二天清晨暴雨停息,电视信号还是不好,直到他们退房前一刻才好。

我一看又是电视信号问题,就郁闷了。因为这个房间信号时好时不好由来已久,一般也是 BBC 1 台和 2 台有马赛克现象。每次我更换一个接头、或更换一根房间内的线缆、或重拉房间到分线盒的线缆、或更换分线盒,每次更换似乎当时都能得到相当好的电视信号,但是没过多久又变不好了。三、四个月前还劳师动众重铺了从楼顶信号放大器到分线盒的线缆,当时我说,经过这一轮,这条线路上除了天线和放大器,全部被我换成新的了,再也不会被信号不好所困扰了。

其实天线也装了不到两年,安装那天我不在,叫来一个“专业”电视天线安装公司装的。至于放大器好不好,每次我怀疑它不好,就替换法测试,它能让其他房间有很好的信号,所以我不认为放大器有问题。如今客人又说信号不好,我实在不知道该换什么了,能不郁闷吗?!

但是我还是决定换点什么看看。我有几个超级强悍的放大器,去年 Wickes clearance 时预存的货,但是由于新放大器采用更可靠的 F type 接口,而老放大器用的是普通 TV 插头,换放大器意味着全部线头要重做。我想放大器失效的可能性较小,同时也想偷懒,所以这次先换天线。我认为当初电视天线安装公司装的天线不够灵敏,才造成这信号时好时不好的问题。经过一番挑选,买了一款高增益、体积也是巨无霸型的天线。

今天趁着天好,和维修工爬到屋顶,拆下了旧天线,接上新天线。然后我回到房间观察信号强度,维修工留在屋顶不停调整天线角度。非常奇怪的是,随着角度变换,电视信号强度也在 0 到 5 格满格之间变化。

为什么我说“非常奇怪”?因为当我们找到一个最佳角度以后,维修工把天线固定好,然后固定线缆。这根线缆之前接在旧天线上,线缆一头接天线,另一头插进了一片瓦片,当时我以为是通到位于阁楼的放大器。瓦片缝里还露有另一根线缆光头,丢弃在一边,当时我以为这根弃用的线缆是更早的时候用来连接天线和放大器的。维修工扯了扯连着天线的线缆,结果整根线缆就拉出来了,它的另一端就是丢弃在一边的线缆光头。原来之前的天线根本没有连到任何地方!

为什么没有天线还能接收信号,只是有时信号不好?我猜这栋楼里的连接各房间电视的线缆组成了一个低质量的天线(由此可见这个城市的电视信号很强——这么差的接收系统还能磕磕碰碰地看了两年电视)。

为什么新天线没有接入放大器,还能影响电视信号?我猜它的角度是能改变周围电磁场的分布(由此可见新天线的干扰能力很强大,接收能力也应该很强大)。

我很不满当年的电视天线安装公司。它要么就是不够专业,装了天线也不测试一下有没有连接成功;要么就是故意糊弄人。

整栋楼的电视居然没有天线。这个重大缺陷我居然花了两年才发现。这也是我不愿接手别人做的系统,宁愿自己装修的原因。

Insert regular hexagon in Word

坑爹的 Word 插入的六边形竟然不是正六边形,即使按住 Shift 键拖出来的也不是正六边形。当然我也有责任,Word 在插入六边形时从来没说这是正六边形(Word 插入五边形时提示是正五边形)。

虽然不是正六边形,但在没有尺子、没有参照物的情况下,我也没发现它不是正六边形。我是在画一个以正六边形为基本形状的 logo 草图,以便向设计师传达我的想法。陆陆续续画了两天,发现某两条边总是不相等——如果是在正六边形上作图,这两条边会等长。

我以为我的平面几何知识已经退化成零,一遍又一遍地验算一道只有初一几何题难度的 logo 分解图,始终不能把两条边调成等长。我甚至怀疑我的显示器纵横比出问题了,耗了两天才想起来去量一量 Word 一开始插入的六边形是不是正六边形。一量,不是,晕厥!

My hotel logo draft
My hotel logo draft

知道它不是正六边形,把它调整为正六边形就很简单了——先插入一个六边形,不用按住 Shift,按住也没用,插入的宽高比不是 1:1,也不是正六边形的应有的√3/2,必须手动调整一下宽高比成 0.866 左右。作一条水平线,再旋转 30 度,以之为基准,按住六边形的黄点,拖动直到六边形的某边与基准线重合或平行。

List all orphaned files in Google Drive

我们办公室里曾经用 Google Drive 做文件管理,我们需要文件共享、本地编辑、云同步这几个主要的特性。理论上 Google Drive 能做到,但实际使用中并不理想,它只有 Windows 版的同步程序,经常为一个文件同步出好几份拷贝,引起混淆。我觉得病根在于 Windows 和 Linux/Unix 文件结构的差异性,如果有 Linux 版的同步程序会好一些,可是一直没等到。

其实我也太折腾 Google Drive:我把 Google Drive Sync 安装在一台 Windows PC,设定的同步文件夹在 NAS 的 Simba 共享上(否则绕不开 Sync 对文件的权限设定,无法让多人使用)。这种非常规的设置一直用得磕磕绊绊,直到某一天,我意识到 Google Drive 不是为多人多地共享设计的,于是改用 FreeNAS。

其实今天扯远了。今天是讲我发现 Google Drive 可以列出所有的 orphaned files,搜索条件就是“is:unorganized owner:me”。这些孤儿文件就是在别人的共享文件夹创建的,在宿主文件夹被删除以后,其下的文件因属主不同不会被删除,而是成了没有宿主文件夹的孤儿。

这些文件除了在属主的帐户里搜索,没有其他办法被找到。日积月累,孤儿文件越来越多,之前一直缺少一个办法列出所有的孤儿文件,问了 Google 几次无果,搞得我都想自己写一个搜索程序(当然还没动手),今天发现有办法了。

但懂得搜索“is:unorganized owner:me”可算是高级技巧了,我觉得 Google Drive 可以搞一个类似“Shared with me”的“Orphaned”标签,或者允许删除文件夹时一并删除其下有写权限文件,不论属主(这样也是安全的——既然创建者把文件创建在共享文件夹里允许别人修改,就也应该允许别人删除)。

VPS that has fast connection with mainland China

由于众所周知的原因,中国内地访问国外网站的速度受很多不可控因素的影响。服务器提供商有各种各样的宣传,比如 CN2 专线、中港双线、三线直连,我试过,大概是专线资源太过昂贵,最终用户分配到的带宽有限,效果还不如百兆或千兆普通国际线路。多年来我一直在找事实上连接飞快的服务器,不管它配不配专线、做不做优化。

最近学到一招,可以在购买服务器之前量化评估线路速度:上 ipip.net,选“实用工具”>>“TraceRoute”,选择一个关心的线路,输入服务器提供商提供的测试 IP,如果所有节点的反应在 100ms 以内,就可以算连接飞快。

我测了无数家 VPS 提供商的 IP,目前就只发现一家符合连接飞快的要求。因为我还没买,所以暂时不公布。哪天我把芳草苑迁移过去了,你们自然也知道了。

My experience on Wi-Fi distribuion

我深刻理解一个 WiFi 全覆盖的宾馆环境对当代的旅行者是多么的重要,我看中了馈线系统,下决心用它来改善客人的入住体验。但我在电子领域非常无知,如今摸着石子过了河,非常乐意跟大家分享我的心得。

  • 尽量使用柔性馈线。我的馈线总长不超过30米,却用了不易弯曲的直径10mm的 LMR400,给安装带来了很大的困难,对比使用直径 5mm 的柔性馈线所节省的损耗,不太值得。
  • 尽量使用密集天线。我为了少安装几个天线,每楼层过道使用了一个“工业级”的高增益天线,个头大,样子怪怪的,但穿墙效果同样不好,不如每个房间里装一个微型天线。
  • 尽量备齐转接头,英国的转接头又是杀猪价,这种配件能从中国买就不要从英国买。我经验不足,前瞻不够,这小小的工程用了十几种转接头,前后反复采购近十次,走了很多弯路。
  • 其他东西可以从中国买,馈线倒可以在英国采购。在中国买所谓的进口馈线也很贵,还不知真假。英国馈线当然贵,但清仓价很实惠,我想着以后会复制我的成功经验,就多囤了一些货。
  • 标称为 800 – 2500 Mhz 的功分器完全能用在 5800 Mhz 的 WiFi,估计缺点是损耗较大,但短程传输完全可以忽略这些不利因素。
  • 我的双频 AP 的双天线分别传输 2.4G 和 5.8G WiFi。如果馈线只接一路,比如接 2.4G 这一路,那么 2.4G 覆盖完成,另一路的 5.8G 信号强度也会很大(满格),但信号质量很差,无法在 5.8G 传输数据,这让我深刻理解了信号强度和信号质量是完全两个概念,没有正比关系。当时还闹了一个笑话:因为调试时我不知道接的是哪一路信号,发现 5.8G 这一路上不了网,我问 Google “信号强度大但信号质量差是怎么回事”,Google 指示可能是“信号干扰”。因为铺设的馈线跟电力线并行,我暗想精挑细选的 LMR400 线缆屏蔽性这么差,后来查明真正的原因,发现错怪 LMR400 了。
  • 贯穿楼层我只铺了一根馈线,当发现 AP 的双频是分路输出后,我开始寻找双频合路的元器件。可是这么专业的东西不好找啊,万能的淘宝确实有卖,但只有一家,似乎卖家已黄了,总不在线。百度百科上说功分器就是合路器,我就尝试反用了腔体功分器将双频合路,激动地发现这么廉价的元器件和简单的方法也能成功合路传输双频信号。于是感慨三件事:百度也有靠谱的时候、便宜也有好货、实践出真知。前二者未必总是为真,但第三者永远正确。

花了这么大精力学做无线分布,为什么不用市面上唾手可得的 WiFi extender?好吧,给你们科普一下:家用级的 WiFi extender 不稳定,三天两头重启,商业级的 WiFi extender 也很贵,不如花点时间来布线。另外 WiFi extender 存在同频竞争、无法无缝漫游等问题。为什么不用 ACAP 来实现无缝漫游?还是成本、稳定性、带机量三方面的考虑,ACAP 方案还是留给更大的项目吧。

POP3 error resolved

一年多以前,我的 Gmail 邮箱就无法再从另一个中国方的邮箱 POP 收取邮件了。当时我以为是中国方的邮箱不再允许 Gmail 服务器连接到它的服务器去收取邮件,我就不再去管它,一是因为我管不了,二是这个中国方邮箱我已基本不用。但每次 Gmail 尝试 POP 失败,主界面里都有一个弹窗提示,很烦人。

就这样被烦了一年多,最近得知这样 POP 错误,是因为邮箱有某封信,把它删了就好了。于是我清空了收件箱,果然,Gmail 就成功 POP 收取了两封新邮件。

原来不是中国方邮箱不喜欢 Gmail 而设置的障碍,我想多了。

POP3 error history
POP3 error history

Why my phone only ring once?

因为刚换了华为新手机,这两天摆弄手机比较多。

今天无意发现,我拿另一台旧手机打给它,只响一声就被挂断,我一度怀疑是因为手机开启了防骚扰功能(中国特色,英国暂时还没有这种困惑)。可是关闭防骚扰功能以后,仍然只能铃响一声。

我开始怀疑华为的智能来电识别(也算是防骚扰的一部分)仍在起作用。是不是旧手机号码对应的联系人信息有某种关键词符合骚扰特征?于是我删除了该号码对应的联系人,号码裸奔了,可仍然只能响一声。

我开始怀疑旧手机 07585 开头的号码在中国视为无效区号,于是把新手机语言和区域改为英国,可是还是只响一声。无语了。这时又发现反过来用新手机打给旧手机也是只响一声。于是我怀疑是手机死机了。

于是把新旧手机都重启了一下。手机重启的时候,我戴着的华为 B2 手环振了一下,这是手环的蓝牙连接断开的提示。这个振动提示提醒了我,B2 手环同时连接新旧两个手机,正是一个手机蓝牙的去电被另一个手机蓝牙的来电掐断,就这么简单。我关闭其中一个手机的蓝牙测试了一下,铃响正常了。

OpenVPN cannot resolve the host

Bhost 介绍了一款 OpenVPN 安装神器,它使得建立和维护 OpenVPN 服务器的工作量大大减少。我在一台服务器试用后,觉得很满意,又把它装在另一台服务器上。可是没多久,其中一台的 OpenVPN 不工作了,具体症状是:能建立 OpenVPN 连接,但客户端无法解析域名,也就无法访问 Internet。虽然可以在客户端手动添加路由就可以让客户端联网,但我总想找到是什么原因让好端端的 OpenVPN 坏掉——印象中我没有修改 OpenVPN 任何设置,它就莫名其妙坏了。

可我找不出原因,只好把 OpenVPN 删除,又重新装了一遍,这下 OpenVPN 恢复正常。可是另一台的 OpenVPN 立马又坏了,症状相同。

我就纳闷了,难道两台服务器有关联,只能有一台正常工作?!躺上床把当天的操作过程细想了一下,突然想到我在安装一台服务器的 OpenVPN 时,会习惯性地清理一遍另一台服务器的 OpenVPN 失效用户,用的也是 OpenVPN 安装神奇内置的 Revoke existing user cert 选单。难道是 Revoke existing user cert 有问题造成了 OpenVPN 不工作?我专门就此测试了一下,似乎又不是这个原因。但严格地说,我也不是完全没有改动过 OpenVPN 服务器配置,尽管用的都是 OpenVPN 安装神器来维护,可能是 OpenVPN 安装神器的脚本有 bug。

【2016 年 1 月 18 日更新】之前将 OpenVPN 突然不能解析的原因归咎于 openvpn_install.sh 进行了一些添加删除用户的操作,今天看来不是很恰当。今天在 Windows 8.1 客户端与两台不同地域的 OpenVPN 服务器进行了多次连接测试,结果如下:

  • Windows 标准用户,利用 OpenVPN GUI 调用存放在 config 目录下的 ovpn 配置文件,连接任何一台服务器都有问题:能完成连接,但无法解析域名。
  • Windows 标准用户,右击 ovpn 文件,选单 Start OpenVPN on this config file,连接一台服务器无问题,连接另一台有问题:能完成连接,但无法解析域名。
  • Windows 管理员,利用 OpenVPN GUI 调用存放在 config 目录下的 ovpn 配置文件,连接任何一台服务器都无问题。虽然连接过程中有很多行显示“write UDPv4: No Route to Host (WSAEHOSTUNREACH) (code=10065) ”,但不影响最终成功连接。
  • Windows 管理员,右击 ovpn 文件,选单 Start OpenVPN on this config file,连接任何一台服务器都有问题:连接后能解析域名,但 IP 仍为原 IP——连了跟没连一样。

上述四种情况下都会有“write UDPv4: No Route to Host (WSAEHOSTUNREACH) (code=10065) ”出现。我曾尝试以此为线索解决无法解析域名的问题,有人说“changing the MTU value of the bridge interface to 1492”,可以在 Linux 下解决解析问题,但在 Windows 下仍无法解析。我觉得即使在 Linux 下能行,也是瞎猫碰到了死老鼠,真正原因未必是 MTU。

不管怎么说,Windows 下,即使你用管理员权限把 ovpn 放入了 config,OpenVPN 连接仍需要管理员权限。如果你不小心用普通用户连接成功,那是运气,换一台机子未必能复制这种运气。OpenVPN 对管理员权限的严重依赖也是我不喜欢的,在这种状况不改善之前,我不想过多使用 OpenVPN。

Huawei Mate 8 and Google

自从知道华为应用市场里有谷歌框架安装神器,我就不再等华为 Mate 8 国际版的上市,买了一个行货全网通尝鲜。

Mate 8 的谷歌框架很顺利,但是我碰到了两个非常规的问题:

一是 Google Contacts 没有被同步到手机电话簿。后来发现还需要在华为应用市场上找“联系人同步服务”来安装,安装以后还要在权限管理里赋予“Google 联系人同步”这个应用所有的通讯录权限,之前是“提示”,要改为“允许”。最后重启才正常。

二是只能添加一个 Google 帐号。后来发现可以在某些 Google 应用的 GUI 里添加第二个帐号,我在 Maps 里添加里第二个 Google 帐号,通过这种“曲线救国”的方式,达到在设置里添加第二个 Google 帐号同样的效果。

虽然 Mate 8 终于连上了 Google 服务,但行货手机的一些细节方面用起来实在别扭,总的来说,如果有后悔药,我选择等待 Mate 8 国际版的上市。