注册失败:
注释掉://m.InsertHeader(new Header("", "Authorization"));
并在public virtual bool Authenticate(Message response, Transaction transaction)中添加了
if (request.Headers.ContainsKey("Authorization"))//主要是添加了这样一句,否则不包含Authorization时执行下面的语句会报错
{
foreach (Header h in request.Headers["Authorization"])
{
拨打失败:
//添加了下面这一句:msheng 20171215 解决天波公司拨打失败的问题
body += Environment.NewLine + "a=x-rtp-session-id:" + Guid.NewGuid().ToString("N") + Environment.NewLine;
branch必须以z9hG4bK开头
called 和branch必须是唯一的,除此之外貌似没别的用处。
基本方法是:用软终端进行拨打,抓取拨打成功的报文,然后追踪流,看发过去的是什么内容,然后抓取后台的包并追踪流,将得到的与正常发送的内容进行比对,并进行补充。
经验发现:优先补充缺少的内容删除多余的内容,而不是修改已存在的header,会加快开发进度。
缺少的内容和多出来的内容才是真正影响语音拨测成功失败的关键所在
当然:首要是从github上搞一个开源的客户端下来