且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

多部话机共享同一个号码的各种情况分析

更新时间:2022-08-20 14:18:57

多部话机共享同一个号码的各种情况分析

 

这里主要是针对几个话机共享一个号码的情况来进行分析。多个话机共享一个号码的主要应用场景比如是前台,前台有多部电话一起工作,一个call来了之后,可以有多个人进行响应。或者说如果有人在响应这个号码,再有人打进来的话,可以让其他人来接。接下来会介绍多种共享号码的方法,每一种对应的情况和产生的效果都不同,具体的用途可以自己去想。图1是本次试验的拓扑图。

 

1

图中,IP_Phone1的号码是1001IP_Phone2的号码是2001IP_Phone2其实是两个电话,号码都是2001。由于有很多图片,所以文章显得比较长,语音的基本配置就不做过多的讲解了,只针对于号码管理。

 

首先这里先来介绍一个自动给注册的IP电话分配号码的方法。一般我们知道,通过ephone-dn 配置了号码之后,通过ephone 选择话机,然后通过button命令来给话机分配号码,比如button 1:1就可以将dn1分配给话机的第一个按钮。现在告诉大家一个自动给话机分配dn的方法。在telephony-service下使用auto assign命令

R2(config-telephony)#autoassign start-dn to end-dn [type  type]

就可以按顺序,从start-dnend-dn来分配号码给依次注册的话机。比如从dn1dn3的话,就是第一个话机注册上来就给他分配dn1,第二个分配dn2

当然,从show run上来看的话,还是相当于是配置了button

 

让多部电话拥有一个号码主要有以下几种方式:

一.1dn,多个ephonebutton对应

我们来看如下配置

ephone-dn 1  dual-line

 number 2001

ephone  1

 mac-address0050.56C0.0008

 type CIPC

 button  1:1

ephone  2

 mac-address14DA.E9E9.CFE7

 type 7960

 button  1:1

在这里将ephone1ephone2button都设置成1:1。我们观察下ephone的情况

R2#sh ephone

ephone-1 Mac:0050.56C0.0008 TCP socket:[2]activeLine:0 REGISTERED in SCCP ver 15 and Server in ver 8

mediaActive:0 offhook:0 ringing:0 reset:0reset_sent:0 paging 0 debug:0 caps:8

IP:192.168.2.2 4142 CIPC   keepalive 51 max_line 8

button 1: dn 1 number 2001 CH1   IDLE         CH2  IDLE         shared

 

ephone-2 Mac:14DA.E9E9.CFE7 TCP socket:[3]activeLine:0 REGISTERED in SCCP ver 4 and Server in ver 3

mediaActive:0 offhook:0 ringing:0 reset:0reset_sent:0 paging 0 debug:0 caps:5

IP:192.168.2.2 4498 Telecaster 7960  keepalive 16 max_line 6

button 1: dn 1 number 2001 CH1   IDLE         CH2  IDLE         shared

 

对比R1show ephone,我们可以发现shared关键字被显示了

R1#sh ephone

ephone-1 Mac:000C.29D8.8E57 TCP socket:[1]activeLine:0 REGISTERED in SCCP ver 15 and Server in ver 8

mediaActive:0 offhook:0 ringing:0 reset:0reset_sent:0 paging 0 debug:0 caps:8

IP:192.168.1.1 3686 CIPC   keepalive 43 max_line 8

button 1: dn 1 number 1001 CH1   IDLE    

 

那么实际上的电话在拨打的过程中,当1001拨打2001的时候,两部电话都会振铃,当其中一部电话摘机之后,另一部电话则会停止振铃,同时上面会显示另一个设备正在使用这个号码进行通话。如图2所示,当1001拨打2001时,两台设备同时振铃。

 

                                                                                                   2

而且当其中一部电话摘机之后,另一台设备会显示2001正在被使用,1001此时无法呼入,显示busy。即使有一台设备实际上正在空闲。

 

二.配置两个dn,两个dn都使用同一个号码,dn的优先级相同

ephone-dn 1  dual-line

 number 2001

ephone-dn  3

 number 2001

ephone  1

 mac-address0050.56C0.0008

 type CIPC

 button  1:1

ephone  2

 mac-address14DA.E9E9.CFE7

 type 7960

 button  1:3

此时观察下ephone的情况:

R2#sh ephone

ephone-1 Mac:0050.56C0.0008 TCP socket:[1]activeLine:0 REGISTERED in SCCP ver 15 and Server in ver 8

mediaActive:0 offhook:0 ringing:0 reset:0reset_sent:0 paging 0 debug:0 caps:8

IP:192.168.2.2 3619 CIPC   keepalive 24 max_line 8

button 1: dn 1 number 2001 CH1   IDLE         CH2  IDLE        

 

ephone-2 Mac:14DA.E9E9.CFE7 TCP socket:[3]activeLine:0 REGISTERED in SCCP ver 4 and Server in ver 3

mediaActive:0 offhook:0 ringing:0 reset:0reset_sent:0 paging 0 debug:0 caps:5

IP:192.168.2.2 3807 Telecaster 7960  keepalive 5 max_line 6

button 1: dn 3 number 2001 CH1   IDLE

可以看见两台设备都是number2001,不同的只是dn3single-linedn1dual-line

 

那么此时1001拨打2001是一个什么效果呢,我们看图3

 

3

只有一台电话在振铃(该电话是第一台设备,也就是ephone1)。如果ephone1在忙(此处是按了免提),那么再拨打的时候,就是ephone2在响了。见图4

 

4

 

三.配置两个dn,两个dn都使用同一个号码,dn的优先级不同

以上的方式所带来的明显问题是无法控制想要先响应的话机。如果想可控的让其中一部话机先振铃的话,那么就需要使用preference来控制,preference越大的,优先级越小。dn默认的优先级是0。修改配置为

ephone-dn 1  dual-line

 number 2001

 preference 2

ephone-dn  3

 number 2001

 preference 1

ephone  1

 mac-address0050.56C0.0008

 type CIPC

 button  1:1

ephone  2

 mac-address14DA.E9E9.CFE7

 type 7960

 button  1:3

从以上的配置可以看出,如果此时1001呼叫2001的话,那么应该是ephone2来应答。见图5ephone1没有在忙,但是是ephone2振的铃。

5

那么此时如果ephone2 busy的话,是不是ephone1就会振铃呢。结果是错误的,见图6ephone2在忙,ephone1没有收到电话

6

原因在于什么。因为dn默认是配有huntstop的。什么是huntstophuntstopCME检查该dn正在忙,无法呼叫时,会阻止继续寻找下一个dn。那么dn1也就无法被呼叫。导致ephone2dn3 无法呼叫时,ephone1dn1也不能工作。

 

四.配置两个dn,两个dn都使用同一个号码,dn的优先级不同,使用nohuntstop

R2增加如下配置,为dn3添加no huntstop

R2(config)#ephone-dn 3

R2(config-ephone-dn)#no hunts

R2(config-ephone-dn)#no huntstop

R2(config-ephone-dn)#exit

 

此时ephone2摘机,1001呼叫2001,结果见图7

 

7

修改配置之后,可见ephone2在忙时,ephone1可以振铃,帮助接听

 

在以上的情况中,dn1dual-linedn3single-line。那么如果同样的方法用在dn1上,是不是也可以成功呢,答案是不行。因为dn1dual-line,有两个通话通道,一个通道被占用了还是可以继续打进来。修改配置,将dn1 preference设置为0(默认不显示),并加上no huntstop

ephone-dn 1  dual-line

 number 2001

 no huntstop

ephone-dn  3

 number 2001

 preference 1

此时ephone1 2002拨打通话之后。由1001再次拨打2001,可以发现ephone1还是会响应,而ephone2依然没有响应。见图8

 

8

 

五.配置两个dn,两个dn都使用同一个号码,dn的优先级不同,使用nohuntstop+huntstop channel

dn1修改配置如下,增加huntstop channel

ephone-dn 1  dual-line

 number 2001

 huntstop channel

 no huntstop

此时ephone1 2002拨打通话之后。由1001再次拨打2001,可以发现ephone1没有响应该呼叫,而是转为ephone2来响应该呼叫。见图9

 

9

 

六.配置两个dn,两个dn都使用不同号码,使用ephone-hunt

ephone-hunt 1 sequential

 pilot 2012

 list 2001,2002

 

ephone-dn 1  dual-line

 number 2001

 huntstopchannel

 no huntstop

 

ephone-dn  2

 number 2002

 

ephone  1

mac-address 0050.56C0.0008

button  1:1

ephone  2

mac-address 14DA.E9E9.CFE7

type 7960

button  1:2

ephone2的号码改为2002, 创建一个ephone-hunt ,选择sequential选项,这个选项可以在无人接听的时候选择顺序让后面配置的list中的号码振铃。这时ephone1拨打2012这个号码的时候,主叫电话上面会先显示拨打2012,后来变为拨打2001。然后后面的ephone12001就会响,此时按住DnD建略过这次呼叫,呼叫就会转移到ephone22002上。见图10和图11

 

10

此时ephone1被呼叫,按下DnD

 

11

ephone1按下DnD键之后,显示1 NewMissed Call。号码随后拨到2002上面。如果list上面所以的话机全部都DnD处理的话,主叫电话上会显示Busy。此处ephone-hunt 1sequential 的子选项里面可以选择timeout 选择,后面跟秒。这个选项是可以设置在多少秒之内,如果话机没有应答的话,就转到下一台list的设备上。一次振铃是3s钟,所以设置为3的倍数的话,可以实际上变为振铃多少次之后转移到下一个话机振铃。这个很有意思,可以试试。

 

本文转自 bilinyee博客,原文链接:     http://blog.51cto.com/ericfu/1767682   如需转载请自行联系原作者