文章来源:https://3x.58voip.com/analyzing-sip-call/

说明


本文档介绍了如何在3CX电话系统中建立SIP呼叫,以及将哪些事件写入3CX管理控制台中的“服务器活动日志”页面。使用此呼叫流程说明,并通过分析事件,您将能够更好地了解发生的情况并解决潜在问题。请注意,下面的呼叫流程对于呼入和呼出电话都是相同的。

步骤1:识别呼叫源
呼叫者通过拿起电话并发送SIP Invite来发起呼叫。当3CX电话系统从呼叫者收到SIP Invite时,呼叫历史记录事件“Incoming”将被写入服务器状态日志:

12:03:20.734| Log(2): | Incoming | c1 | “232” sip:232@192.168.0.2 | sip:900@192.168.0.2 | Incoming call (before routing)

条目“ 232” <sip:232@192.168.0.2>是呼叫者的SIP地址。地址可以解释如下:

“ 232”是呼叫者的“显示名称”;
232(在<sip:…之后)是其“用户名”(分机号码);
<number);(extension name’‘user its is)> IP地址或域名是其注册的主机或域。
条目<sip:900 @…>是呼叫目的地的SIP地址。

请注意,该事件称为呼入事件,即使它可以是入站呼叫也可以是出站呼叫。呼入是指PBX服务器正在接收来自呼叫者的请求,该请求可以是呼入或呼出。

步骤2:验证呼叫源

3CX电话系统现在将尝试解析呼叫源:

如果呼叫来自3CX电话系统上配置的线路(即,正在从PSTN或VOIP提供商线路接收到呼叫),则会记录以下事件:12:03:20.734| Log (2): | Call is incoming from line [#1234578 @Dlink],如果源主机/ IP与已知网关之一匹配,但是在为该网关定义的线路中找不到给定的线路号,则该呼叫将被拒绝,并出现以下警告消息:12:03:20.734| Warning( 1): | Incoming call appears to be from gateway DLink, but line number #12345678 is unknown to phone system.
不需要注册的VOIP提供商和VOIP网关线路。为了提供对网关和提供商的广泛支持(有时工作原理有时会有所不同),即使未注册来源,3CX电话系统也会发出或接收呼叫。
现在,3CX电话系统将检查呼叫是否来自在3CX电话系统中注册的分机。如果找到,则会将以下事件写入日志:12:03:20.734| Log (2): | Registrar resolved as as ,如果未找到分级名或未注册该分机,则会出现以下消息:12:03:20.734| Log (2): | Registrar can not resolve .
如果无法解析呼叫者的来源,则会生成“呼叫历史记录”事件“拒绝(Rejected)”:12:03:20.781| Log(2): | Rejected | c1 | “232” sip:232@192.168.0.2 | sip:900@192.168.0.2 | 尝试从电话系统未注册/未知的分机/线路呼叫,在这种情况下,呼叫发起者会收到SIP响应“ 403 orbidden”。 这将显示在他/她的SIP电话上。 此时,呼叫终止,并生成相应的“呼叫历史记录”事件:12:03:20.781| Log (2): | Terminated | c1 | “232” sip:232@192.168.0.2 | sip:900@192.168.0.2 | Call ended

步骤3:查找呼叫的目的地

如果已确定呼叫源,则下一步是找到该呼叫的目的地。

如果呼叫者来自PSTN或VOIP提供者线路,则使用关联的入站规则来查找将呼叫转接到的分机号。系统检查分机是否已在系统中注册。如果已知该分机并已注册,则会记录以下事件::……… Found destination for caller ,现在,电话系统会检查呼叫是否来自该分机的外呼电话。它通过将呼出规则应用于所拨打的号码来实现此目的。如果规则与号码匹配,则它是一个出站呼叫(例如,找到前缀0)。如果没有出站规则可以匹配,则假定目的地是内部号码(分机,振铃组,IVR等),并且系统将尝试在系统数据库中找到它。如果它是分机,但未注册此分机,则会在日志中写入以下警告:Destination has been found for , but it hasn’t been registered! Unable to complete call.
如果在系统数据库中找不到该号码,则该号码可能是振铃组,队列或会议呼叫。 如果是这样,我们继续进行下一步。
如果电话系统完全不知道所拨打的号码,则呼叫将被拒绝,并且以下事件将写入服务器状态日志中。14:21:58.840| Warn (1): | Dialed number 79306288 is not known to the phone system.
解决了源和目标之后,将发出以下“呼叫历史记录”事件:

14:20:42.762| Log (2): | Routed | c2 | “103” sip:103@192.168.0.2 | sip:079306288@192.168.0.2 | From: Ext:103; To: [#25405292 @phoneline.com.mt]

步骤4:3CX电话系统返回invite

现在知道源和目的地,3CX电话系统将返回invite:

3CX电话系统将INVITE发送到解析的目标地址,并将以下“呼叫历史记录”事件写入服务器状态日志:14:20:49.575| Log(2): | Calling | c2 | “103” sip:103@192.168.0.2 | sip:079306288@192.168.0.2| Send INVITE to [#25405292 @phoneline.com.mt]
如果30秒内未收到响应,则呼叫失败,并且以下“呼叫历史记录”事件将写入日志:14:21:29.903| Log (2): | Failed | c2 | “103” sip:103@192.168.0.2 | sip:079306288@192.168.0.2| Call failed, reason: Request Timeout
如果收到响应,则会记录以下“呼叫历史记录”事件:14:19:46.403| Log(2): | Got response from | sip:101@192.168.0.101:5060;cid=0;tag=b6edc8bfc47cda77 on invite from sip:103@192.168.0.103:5060;cid=0;tag=766caf3f. Response line: SIP/2.0 180 Ringing
现在将建立呼叫-被叫接听电话-或终止-呼叫者在应答前挂断电话。如果呼叫终止,则呼叫历史记录中的终止事件如下:14:19:52.059| Log (2): | Terminated | c1 | “103”sip:103@192.168.0.2 | sip:101@192.168.0.2 | Call ended
如果建立了呼叫,则会将以下“呼叫历史记录”事件写入日志:15:55:39.371| Log(2): | Established | c6 | “103”sip:103@192.168.0.2 | sip:101@192.168.0.2 | Call is established
当呼叫终止时(即呼叫者或被叫者挂断电话),将发出另一个“呼叫历史记录”事件。

分析3CX SIP呼叫相关推荐

  1. 如何配置3CX SIP中继线路的呼出显示号码

    文章来源:https://3x.58voip.com/how-to-configure-3cx-outbound-caller-id/ 背景: 我们在使用3CX SIP中继线路时,有些特别的需求,假设 ...

  2. 最常用的18个SIP呼叫业务流程详解(6~18)

    目录 6.Transfer - Instant Messaging 7.Call Forwarding Unconditional 8.Call Forwarding - Busy 9.Call Fo ...

  3. 关于sip呼叫成功后,对方立马挂断的情况说明

    最近在做SIP的接线员功能,类似于110这种,会有一些接线员提前上线:当外部人员拨打进来时,随机分配一个空闲的接线员来处理:若没有空闲的接线员,则系统自动发送一段系统正忙的声音给拨打方. 下面说说本人 ...

  4. 最常用的18个SIP呼叫业务流程详解(1~5)

    目录 1.Call Hold 2.Consultation Hold 3.Music on Hold 4.Transfer - Unattended 5.Transfer - Attended 在大部 ...

  5. android 点对点语音,使用Android SIP Stack进行点对点SIP呼叫?

    我一直被困在同样的问题上. 如果你可以在没有android sip api的情况下制作它,你可以查看rtp api,它为你提供了一些较低级别的工具来制作P2P VOIP应用程序,而无需服务器. To ...

  6. 解决asterisk sip呼叫 488 no acceptable here

    这两天实验了一下asterisk static realtime方案,将sip.conf的信息保存到mysql数据库里.但是呼叫的时候,总是 报 488  no acceptable here. 这是 ...

  7. pjsip java_使用PJSIP通过TCP进行SIP呼叫

    我正在使用PJSIP的pjsua拨号器(基于pjsua_app.c,PJSIP 2.0.1)与TCP传输和SIP中继来拨打移动电话 . 拨号器通过TCP向SIP服务器注册,并通过TCP发送INVITE ...

  8. Asterisk 1.8 sip 协议栈分析

    引用自:http://blog.csdn.net/z1623866465/archive/2011/01/02/6113057.aspx 看了一下 asterisk 1.8 ,chan_sip 更新了 ...

  9. 主叫基本呼叫流程分析

    1.摘机dsp driver线程 //上报摘机事件 SipDrv_EventRecvCb Drv_Event.CnxId = cnxId; Drv_Event.Data = data; Drv_Eve ...

最新文章

  1. VTK:InfoVis之SCurveSpline
  2. 深入理解ThreadLocal
  3. linux dhcp 服务(转)
  4. 前端学习(3180):ant-design介绍3
  5. 高级软件工程第一次作业--准备
  6. android 调用.net 的webservice .
  7. Java重写方法与初始化的隐患(转)
  8. 人工智能和大数据两者有什么联系
  9. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式...
  10. 国际版多时区设计方案【转】
  11. 在Arcgis中利用Python编写脚本批量化处理数据实例
  12. 微信支付开发文档说明
  13. 嵌入式-ADS和Proteus安装
  14. codesys工程ST语言学习笔记(一)建立工程与编译
  15. android 扫描动画效果图,RadarView之自定义雷达扫描动画效果。
  16. 实用网站汇总(不定期更新)
  17. 京东自动抢购茅台脚本
  18. Zynq Axidma linux下驱动axidmatest.c 驱动分析
  19. 2022年中国智能家居产业链图谱 | 产业链全景图
  20. ​​如何搭建自己的魔兽世界服务器

热门文章

  1. 命令行连接mysql时出现Authentication plugin ‘caching_sha2_password‘ cannot be loaded: 找不到指定的模块
  2. 微信支付 mysql_微信支付回调函数无法插入mysql数据
  3. win10系统多屏互动怎么使用
  4. Windows CE 创建快捷方式
  5. (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  6. D - RGB Coloring 2
  7. 性能分析之解析 RESAR 性能分析七步法
  8. [数字后端]LVT, RVT, HVT 的区别
  9. oracle11g:adr:packaging incidents(打包事件)
  10. 每日一练(day6)