Asterisk与Call Manager的整合

几个月前就完成了这个工作。可是因为工作的需要,一直重装不同版本的Call Manager,然后再回头配置集成。痛定思痛,决定把过程写下来,自己找起来也方便。

Asterisk上的配置
Step 1 在sip.conf中添加如下配置,简单的说就是添加一个SIP User.

[callman01]
type=friend
context=xiuxiu
host=10.0.0.1
disallow=all
allow=ulaw
allow=alaw
nat=no
canreinvite=yes
qualify=yes


Step 2
在extensions.conf你需要用到Call Manager的Context按照如下方法使用。基本和普通的SIP User都是一样的,就是要对SIP Header稍微做一些处理。

[macro-dialout-callmanager]
exten => s,1,ChanIsAvail(SIP/callman02&SIP/callman01)
exten => s,2,Dial(${CUT(AVAILCHAN||1)}/${ARG1})
exten => s,3,Hangup
exten => s,102,Congestion
[outgoing]
exten => _XXXX,1,Macro(dialout-callmanager,${EXTEN})
exten => _9NXXXXXX,1,Macro(dialout-callmanager,${EXTEN})
exten => _91NXXNXXXXXX,1,Macro(dialout-callmanager,${EXTEN})
exten => i,1,Congestion

Call Manager上的配置
Step 1 配置 SIP Trunk
1)在菜单中选择 Device -> Trunk -> Add New
2)点”Add New”
3)选择Trunk Type: SIP Trunk, Device Protocol: SIP
4)选择Device Pool(默认的就可以), Destination Address: Asterisk服务器的地址

Step 2 修改 SIP Trunk Security Profile (我用的是CUCM 7.1,所以需要这个修改)
1)在菜单中选择System > Security Profile > SIP Trunk Security Profile
2)在列表中选择你之前填写的Security Profile
3)将Outgoing Transport Type修改成UDP

Step 3 配置Route Pattern
1)在菜单中选择Call/Routing -> Route/Hunt -> Route Pattern
2)点Add New
3)Route Pattern: 8XXX, Gateway/Route List: 之前创建的SIP Trunk(按照你的需求设置,例如这里就是8开头的四位电话号码转到Asterisk上)

OK,基本就这些了,用你的X Lite 给Call Manager打个电话吧。

参考地址:Asterisk Cisco CallManager Integration

 

AXL vs JTAPI

Tags: , , ,
从Call Manager Programming Guide里下了好几篇。
感觉下来AXL和JTAPI属于比较实用的两种接口。
说到底也就是后台那上百张表的事情。
不过从目前所知两者还是有一些区别。
 
AXL的精华就是ExecuteSQLQuery和ExecuteSQLUpdate。
其他都是基于这两个接口的具体应用。
通过Web Services将这些接口暴露出来。
客户端可以通过WSDL实现客户端,与Call Manager实现通讯进行查询和数据操作。
 
JTAPI是Sun推出的Call Control的API。
Call Manager实现了它,并且针对Call Manager的功能进行了扩展。
它的主要主要实现方式是Event,Observer.
通过实现JTAPI的接口,为Terminal,Address添加Observer来监控各种数据信息。
 
AXL的实现方式是目前流行的Web Services,
但是实现的比较糟糕。。。ExecuteSQLQuery,ExecuteSQLUpdate两个根本没办法直接用,骂人了。
 
JTAPI是Sun的标准,不过据说本身比较乱。
通过/plugins/jtapi.jar来实现编程调用。
 
感觉上AXL针对的是比较静态的配置信息。
JTAPI可以通过Event更好的获取动态设备信息。
 
-。-随便说说,等回去了玩玩看JTAPI的Demo.

 

CallManager和Phone的接口总结

Tags: ,
1CallManager
1.1 AXL(很烂的Web Services,看了半天其实最有用的只有两个接口,query,update…,前提要熟悉DB Schema)
1.2 Servicability,包括Ris,Perfmon,ControlCenterService,LogCollection,CDRonDemond,DimeGetFile)暂时没有时间熟悉
1.3 Extension Mobility暂时没有时间熟悉
1.4 WebDialer暂时没有时间熟悉
 
2Phone
2.1Phone Service
2.2Phone Service Push(Status和Execute,主动通过/CGI/Execute发送给phone)
2.3Phone Service Application API(用于扩展基本的Phone Service,使得Service Application更加可控)
2.4Phone Service Steam API(Push Service的扩展,使得Application更好的控制Audio
2.5URI Features(Excute的扩展,通过URI执行Phone内置的命令)
2.6SIP Messages(至今不太明朗。。。)

 

无觅相关文章插件,快速提升流量