As Asterisk supports OOH323, MGCP & Skinny out of the box as well as SIP & IAX2 I have updated the 2.4.0.0 release /var/www/html/admin/modules/core/functions.inc.php to support these protocols for extensions.
Three new tables h323, mgcp & skinny need to be created in the asterisk database using the same format as the sip table and the standard set of conf files in /etc/asterisk with appropriate permissions need creating.
For H323 I have deliberately made all the references H323 apart from the dial command which is OOH323/ so that if the default H323 engine in Asterisk is changed only that value needs changing.
For Skinny I have deliberately not called it SCCP as their are a number of "competing" SCCP channel drivers and it appears unlikely that Asterisk will move away from Skinny.
I am not a "developer" and don't know how to create a patch so I just attach the modified file as per Philippe's advice.
There is one area of coding which is beyone me which is creating the dial string correctly for all 3 of these as they take the format of Protocol/LineNumber@Device (MGCP & Skinny) or Protocol/H323DeviceID@Host.
I have tested the MGCP & OOH323 implementation but do not have anything to test Skinny with.
Setting up H.323 Endpoints:-
As OOH323 does not support users or host=dynamic (Asterisk with OOH323 is an H323 Gateway not an H323 Gatekeeper so endpoints cannot register) the extensions must be setup as a friend (see notess) with an IP or DNS name (host or FQDN).
For OOH323 to scale the only viable and managable solutions is to use DDNS with the DHCP server making the DNS registrations on behalf of the endpoints (as not all endpoints have DNS registration capability)
The configuration below assumes using IP Addresses rather than DNS and should be used in the first instance to remove DNS issues from confusing communication & configuration issues.
On the endpoint:-
1) Make sure you only enable ulaw and gsm as these are the only 2 codecs currently supported
2) In "Use Service" this should NOT be enabled (This may also be called Register or similar)
3a) In Service Address enter the IP for the Asterisk Server & on the Service Port enter 1720
OR
3b) In Service Address enter the IP for the Asterisk Server :1720 ie (192.168.1.1:1720)
OR
3c) On Service Address enter the IP for the Asterisk Server
4) In H245 & RTP Ports enter 1722
5) In Q931 port enter 1720
6) In RTP Port enter 12100 (OOH323 listens between 12030 and 12230 by default
7) In account type choose local (or for local type choose account)
8) In DTMF choose RFC2833 (or h245 string or q931 keypad - this must match what is defined on the extension)
9) In Phone number and Account enter the Asterisk extension number for the device
10 Leave PIN blank !
The Dial string format is OOH323/<EndPointDomain?>@host where
<EndPointDomain?> is the IP, host name or FQSN of the device
For both simplicity and this implementation <EndPointDomain?> MUST be the same as the extension number
Asterisk CLI commands:-
ooh323 debug Enable OOH323 debugging
ooh323 no debug Disable OOH323 debugging
ooh323 show config Show details on global configuration of H.323 channel driver
ooh323 show peers Show defined OOH323 peers
ooh323 show peer Show details on specific OOH323 peer
ooh323 show users Show defined OOH323 users
ooh323 show user Show details on specific OOH323 user
Setting up MGCP Endpoints:-
_
1a) In Service Address enter the IP for the Asterisk Server & on the Service Port enter 2727
OR
1b) In Service Address enter the IP for the Asterisk Server :2727 ie (192.168.1.1:2727)
OR
1c) In Service Address enter the IP for the Asterisk Server
2) In Phone Number enter the extension number
3) In Endpoint ID enter aaln/1
4) In Domain enter the extension number
5) In Register Port enter 2427
6) In RTP Port enter 32766 (Likely to be the best value as it is the Cisco endpoint default)
The Dial string format is MGCP/<Line Number/1>/<Domain> (ie MGCP/aaln/1@3013) where
<Line Number/1> is the line in both Asterisk and the Endpoint
and
<Domain> is the MGCP Domain on both Asterisk and the Endpoint
For this implementation <Domain> is the extension number
Asterisk CLI commands
mgcp audit endpoint Audit specified MGCP endpoint
mgcp debug Enable MGCP debugging
mgcp no debug Disable MGCP debugging
mgcp reload Reload MGCP configuration
mgcp show endpoints Show defined MGCP endpoints
OOh323 Troubleshooting:-
OOH323 - Cannot assign address:
check /etc/hosts & /etc/sysconfig/network match up & only use ONE domain name !
OOH323 Notes:-
See /usr/src/asterisk-addons/asterisk-ooh323c/h323.conf.sample for options for configuring OOH323, changes should go into ooh323_general_custom.conf
Users, Peers & Friends
The difference between friend and peer is the same as defining both a user and a peer, since that is what 'type=friend' does internally in Asterisk.