I am interested to know whether we can integrate CUCM and Asterisk seamlessly. My office uses Elastix as VoIP solution and all other offices outside my country (same firm) uses CUCM.
Elastix version used: 1.6 with Asterisk 1.4 integrated into it.
CUCM version Used: 6.xx
We have Polycom, thomson, some linksys and CISCO phones provisioned in our office. We would like to integrate the CUCM in other offices to our Elastix server.
I have read on forums about 2 different methods to connect these two.
1. Using SIP
2. Using H323
We do not have any gateway concept in our office right now (For that purpose, we use a thir party for bridging functionalities. We will be shortly buying gateway for our own use).
The way we read in forums, and blogs it seems the communication from CUCM to Asterisk is fine, but from asterisk to CUCM is not proper.
Anyone has any experience regarding this one? What is your take on this? We might be moving to CUCM V 8.XX shortly.
Also, does CUBE come into play in CUCM and Asterisk integration?
Hi Adarsh, how are you?
Do you can emulate a Cisco router with GNS3 to ensure this environment. I`m not sure if Cisco agree it, but you can test it.
When you use GNS3 you can emulate a Cisco router IOS and configure a H323 gateway.
Think about and let me know if you need some assistance.
Hi jefferson. I'm fine. hope you are doing good too.
We have cisco routers here. So I think we can skip the GNS3 part. Have you had any success with Asterisk/Elastix and CUCM? I have heard in forums that calls go from CUCM to Asterisk server, but not vice versa. I am a newbie at this. Any input will be much appreciated. Thanks
Hi Adarsh, thank you for asking.
No, but I believe that work of the same way. Do you must configure H323 connection to gateway from your Asterisk and on the H323 gateway you need configure some dial peers to send the call to CUCM.
Did you tried do it?
In theory, as long as Asterisk isn't voilating any SIP RFCs, you can get them to integarate with using a CUBE. Worst case scenario, you may need to configure a software MTP on CUBE and require it on the CM SIP trunk to CUBE.
I don't know if interop testing is done with a CM SIP trunk directly to Asterisk. If you want to try that, I'd probably have MTP required in that scenario, so that Asterisk doesn't get CMs 0.0.0.0:4000 re-invites when the call goes on hold, since it may or may not like that.
I didn't even know Asterisk could speak H323. If it can, I'd say that's the way to integrate, in my opinion. Since H323 is a concrete standard (versus a set of recommendations), both sides should behave the same way in their H323 stacks, and vendor interop is going to play nicer compared to SIP.
Here is teh link that says about H323 and Asterisk
With a SIP trunk, I'd personally invoke an MTP if integrating directly to any third party device. The reason is that the MTP will block certain supplementary service events from going out to the other side. From experience, some third party devices don't like the way CM handles some mid-call re-invites and supplementary services. Having an MTP or CUBE between CM and the SIP peer just increases the chances of more seamless interoperability, if they interpret/implement RFC 2543 and 3264. But like anything, try it first without an MTP in the lab and see how hold/resume/conference/transfer situations behave before adding that as a requirement, and see how things go. Maybe you won't need it and won't run into issues.
With H323, it's all defined by the ITU standard and CM will use an ECS, so you shouldn't need an MTP regardless of what is the remote peer.
But, Asterisk does not support H323 if I am correct??? How can we implement H323 in Asterisk/Elastix and
at the same time use h323 in CUCM to communicate between the two? Will the following work?
Here is the step by step guide for h323 trunk to cisco call manager.
(valid for both for asterisk and trixbox)
First of all do this:
cp /etc/asterisk-1.2.8-samples/ooh323.conf /etc/asterisk
Then apply the followings as stated.
A- Here is my working ooh323.conf file;
; Objective System's H323 Configuration example for Asterisk
; ooh323c driver configuration
; general section defines global parameters
; This is followed by profiles which can be of three types - user/peer/friend
; Name of the user profile should match with the h323id of the user device.
; For peer/friend profiles, host ip address must be provided as "dynamic" is
; not supported as of now.
; Syntax for specifying a H323 device in extensions.conf is
For Registered peers/friends profiles
; OOH323/name where name is the name of the peer/friend profile.
For unregistered H.323 phones
OOH323/ip:port OR if gk is used OOH323/alias where alias can be any H323
; For dialing into another asterisk peer at a specific exten
; OOH323/exten/peer OR OOH323/exten@ip
; Domain name resolution is not yet supported.
; When a H.323 user calls into asterisk, his H323ID is matched with the profile
; name and context is determined to route the call
; The channel driver will register all global aliases and aliases defined in
; peer profiles with the gatekeeper, if one exists. So, that when someone
; outside our pbx (non-user) calls an extension, gatekeeper will route that
; call to our asterisk box, from where it will be routed as per dial plan.
;Define the asetrisk server h323 endpoint
;The port asterisk should listen for incoming H323 connections.
;Default - 1720
;The dotted IP address asterisk should listen on for incoming H323
;Default - tries to find out local ip address on it's own
;This parameter indicates whether channel driver should register with
;gatekeeper as a gateway or an endpoint.
;Default - no
;Whether asterisk should use fast-start and tunneling for H323 connections.
;Default - yes
;H323-ID to be used for asterisk server
;Default - Asterisk PBX
;CallerID to use for calls
;Default - Same as h323id
;Whether this asterisk server will use gatekeeper.
;Default - DISABLE
;gatekeeper = DISCOVER
;gatekeeper = a.b.c.d
gatekeeper = DISABLE
;Location for H323 log file
;Default - /var/log/asterisk/h323_log
;Following values apply to all users/peers/friends defined below, unless
;overridden within their client definition
;Sets default context all clients will be placed in.
;Default - default
;Sets rtptimeout for all clients, unless overridden
;Default - 60 seconds
;rtptimeout=60 ; Terminate call if 60 seconds of no RTP activity
; when we're not on hold
;do not drop this below 3 nor increase much...other wise
;you will not able to call same number again for some time because
;it hangs.Now 3 seconds waiting is needed and it is acceptable.
;Type of Service
;Default - none (lowdelay, thoughput, reliability, mincost, none)
;amaflags = default
;The account code used by default for all clients.
;The codecs to be used for all clients.Only ulaw and gsm supported as of now.
;Default - ulaw
; ONLY ulaw, gsm, g729 and g7231 supported as of now
disallow=all ;Note order of disallow/allow is important.
; dtmf mode to be used by default for all clients. Supports rfc2833, q931keypad
; h245alphanumeric, h245signal.
;Default - rfc 2833
; User config options Peer config options
; ------------------ -------------------
; disallow disallow
; allow allow
; accountcode accountcode
; amaflags amaflags
; dtmfmode dtmfmode
; rtptimeout ip
;Define users here
;Section header is extension
ip=a.b.c.d ; UPDATE with appropriate ip address
port=1720 ; UPDATE with appropriate port
ip=10.0.0.82 ; UPDATE with appropriate ip address
port=1820 ; UPDATE with appropriate port
B-here is the trunk configuration to cisco call manager;
custom dial string:OOH323/$OUTNUMemail@example.com:1720
C-here is outbond routes
D-For cisco call manager
first create a h323 gateway with asterisk ip
then create route patern and route to this gateway
be carefull abaout regions codecs because you must allow these codecs in oh323.conf as i stated in the beginning conf file.
Brothers i recommend you update your trixbox to version 1.2.3
as described in update trixbox section in that way your addon versions will be change and you will have more stable h323 trunk in long term.(you will just change addon versions in the upper part.)