标题所说的“呼叫认证”,是指CallManager、PBX等语音处理系统在发送语音呼叫之前,对需要授权许可的呼叫号码进行认证的一种方式,只有通过了认证,系统才会将呼叫号码路由出去。
        在Cisco的CallManager中,有两种方式可以很方便地实现上述功能,CMC(Client Matter Codes)和FAC(Forced Authorization Codes)。当用户拨打了需要授权许可的拨号规则内的电话号码,系统都会提示输入许可密码进行认证,通过后再将所拨号码路由出语音网关,进而建立通话连接。但在CallManager Express(CCME)中,并没有CMC和FAC功能。虽然可以通过COR(Class Of Restriction)实现本地、国内长途或国际长途的拨号限制,但无法实现认证授权功能。简而言之,你可以为不同的用户IP Phone赋予不同的拨打权限,例如规定用户A的电话只能打本地电话,用户B的可以打本地和国内长途,用户C可以打本地、国内和国际长途。但是如果A趁B不在时,可以拿B的电话打国内长途;同样的,他也可以用C的电话打国际长途。这对公司而言,是个问题。
         如果你遇到这样的项目,估计十有八九甲方会问你有没有什么解决方法?我在遇到这个问题时的第一反应是没有,除非上CallManager。不过后来仔细想了想,发现有一个办法可以起到类似的功能——Call Blocking Override。Call Blocking是限制用户在设定的某个时间内呼叫某些号码,具体的配置不详细说了,可以到Cisco网站上搜索到相关的Config & Examples。这里要提的是,Call Blocking为用户提供的一个Overide功能,用户通过输入电话的PIN码,可以在一段时间内不受Call Blocking规则的影响,呼叫受限制的号码。举个例子,管理员设定了在周一到周五的8:00-18:00这段时间内,不能拨打"0"和"00"开头的电话号码,即国内长途和国际长途。但如果用户用自己的PIN码Login,那么他的电话就可以在受限制的时间段内拨叫国内长途和国际长途了。打完电话后,可以手动Login out或在系统设定的timeout时间后自动login out。这样,其他用户因为不知道PIN码,就无法再借用他人电话拨打未授权的电话了。
        与之有关的配置只有一处,即在 telephony-service中,增加 "login timeout 10"这条命令,启用IP电话的Login功能。每台电话的PIN码可以通过CLI和GUI方式设置,用户也可用GUI进行个人修改,确保PIN码的私密性。
        虽然比起CallManager的CMC和FAC稍嫌繁琐,但效果还是可以的。如果有遇到,不妨一试。